Padre-1.00/0000755000175000017500000000000012237340741011144 5ustar petepetePadre-1.00/Artistic0000644000175000017500000001373711232343333012656 0ustar petepete The "Artistic License" Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder as specified below. "Copyright Holder" is whoever is named in the copyright or copyrights for the package. "You" is you, if you're thinking about copying or distributing this Package. "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as uunet.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) give non-standard executables non-standard names, and clearly document the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. You may embed this Package's interpreter within an executable of yours (by linking); this shall be construed as a mere form of aggregation, provided that the complete Standard Version of the interpreter is so embedded. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whoever generated them, and may be sold commercially, and may be aggregated with this Package. If such scripts or library files are aggregated with this Package via the so-called "undump" or "unexec" methods of producing a binary executable image, then distribution of such an image shall neither be construed as a distribution of this Package nor shall it fall under the restrictions of Paragraphs 3 and 4, provided that you do not represent such an executable image as a Standard Version of this Package. 7. C subroutines (or comparably compiled subroutines in other languages) supplied by you and linked into this Package in order to emulate subroutines and variables of the language defined by this Package shall not be considered part of this Package, but are the equivalent of input as in Paragraph 6, provided these subroutines do not change the language in any way that would cause it to fail the regression tests for the language. 8. Aggregation of this Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package. 9. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Padre-1.00/t/0000755000175000017500000000000012237340741011407 5ustar petepetePadre-1.00/t/files/0000755000175000017500000000000012237340741012511 5ustar petepetePadre-1.00/t/files/beginner/0000755000175000017500000000000012237340741014302 5ustar petepetePadre-1.00/t/files/beginner/my_argv.pl0000644000175000017500000000015111126105716016275 0ustar petepete#!perl use strict; use warnings; my @ARGV = ("one"); # problem: user should not declare @ARGV with my Padre-1.00/t/files/beginner/elseif.pl0000644000175000017500000000012111354455257016110 0ustar petepete#!/usr/bin/perl use 5.006; use strict; use warnings; if (1) { } elseif (2) { }Padre-1.00/t/files/beginner/chomp.pl0000644000175000017500000000033211125730172015737 0ustar petepete#!perl use strict; use warnings; my $line = "abc\n"; $line = chomp $line; print $line; # problem: chomp returns the number of characters removed and not the actual string # should be "chomp $line;" and nothing else.Padre-1.00/t/files/beginner/return_stronger_than_or.pl0000644000175000017500000000050111125752455021613 0ustar petepete#!/usr/bin/perl use strict; use warnings; print is_foo_or_bar(), "\n"; sub is_foo_or_bar { return foo() or bar(); } sub foo { return 0; } sub bar { return 42; } # problem: the above will print 0 despite it being false # that is because return has higher precedence than 'or' # || should be used instead of 'or' Padre-1.00/t/files/beginner/substitute_in_map.pl0000644000175000017500000000055611125752455020407 0ustar petepete#!perl use strict; use warnings; my @data = qw(foo bar baz); @data = map { s/./X/; } @data; print "@data\n"; # problem: s/// does not return the substituted string so the above should be written as # @data = map { s/./X/; $_ } @data; # substitute actually returns the number of substitutions which is of course will alway be 1 # unless we use global matching: /gPadre-1.00/t/files/beginner/else_if.pl0000644000175000017500000000012212137733173016244 0ustar petepete#!/usr/bin/perl use 5.006; use strict; use warnings; if (1) { } else if (2) { }Padre-1.00/t/files/beginner/split2.pl0000644000175000017500000000027011125711570016050 0ustar petepete#!perl use strict; use warnings; my @arg = ("abcdXezXq"); my @view = split ("X" , @arg ); print @view; # problem: @arg is in scalar context here so it returns the number of elements Padre-1.00/t/files/beginner/grep_always_true.pl0000644000175000017500000000027111125752455020217 0ustar petepete#!perl use strict; use warnings; my $arg = shift || 'boo'; my @valid = qw( goo moo foo voo doo poo ); print "$arg matches\n" if grep $arg, @valid; # problem this grep is always true Padre-1.00/t/files/beginner/unintented_glob.pl0000644000175000017500000000056111125752455020025 0ustar petepete#!/usr/bin/perl use strict; use warnings; my @names = qw(A B C); foreach my $name (<@names>) { print "$name\n"; } # problem: the user wants to iterate over strings # by mistake she creates a glob that returns the strings # she added # The annoying part here is that this works # despite being incorrect # the correct coude would be: # foreach my $name (@names) { Padre-1.00/t/files/beginner/match_default_scalar.pl0000644000175000017500000000064111125730172020761 0ustar petepete#!perl use strict; use warnings; my $x = 42; if ($x = /x/) { print "ok\n"; } # problem: # that will try to match $_ with /x/ if you are lucky you get # Use of uninitialized value $_ in pattern match (m//) at xx.pl line 32. # if you are unlicky $_ already had a value and the above will make # the mistake silently # The above code is legitimate and some people use it but beginners # usually write it by mistake.Padre-1.00/t/files/beginner/boolean_expression_pipes.pl0000644000175000017500000000031311125730172021726 0ustar petepete#!perl use strict; use warnings; my $user = 'foo'; if ($user eq 'bar' || 'baz') { print "$user is either bar or baz\n"; } # problem: user really meant to check if $user eq 'bar' || $user eq 'baz' Padre-1.00/t/files/beginner/SearchTask.pm0000644000175000017500000000143511556210020016660 0ustar petepetepackage Padre::Task::OpenResource::SearchTask; use 5.008; use strict; use warnings; # # Various code snippets that used to generate false positive errors # in the beginner error code checking # sub run { my $self = shift; if ( $self->_skip_using_manifest_skip ) { my $manifest_skip_file = File::Spec->catfile( $self->_directory, 'MANIFEST.SKIP' ); if ( -e $manifest_skip_file ) { require ExtUtils::Manifest; ExtUtils::Manifest->import(qw(maniskip)); my $skip_check = maniskip($manifest_skip_file); my $skip_files = sub { my ( $shortname, $path, $fullname ) = @_; return not $skip_check->($fullname); }; } } } # if my $x = 23; print "OK"; if ( my $y = 42 ) { print "OK"; } if ( $x =~ /42/ ) { print "OK"; } my $name = 'lang_perl5_beginner_elseif'; 1; Padre-1.00/t/files/beginner/split1.pl0000644000175000017500000000026611125700701016046 0ustar petepete#!perl use strict; use warnings; my @arg = ("abcdXezXq"); my @view = split "X" , @arg ; print @view; # problem: @arg is in scalar context here so it returns the number of elements Padre-1.00/t/files/beginner/boolean_expression_or.pl0000644000175000017500000000031211125730172021225 0ustar petepete#!perl use strict; use warnings; my $user = 'foo'; if ($user eq 'bar' or 'baz') { print "$user is either bar or baz\n"; } # problem: user really meant to check if $user eq 'bar' or $user eq 'baz'Padre-1.00/t/files/beginner/warning.pl0000644000175000017500000000013011125713504016272 0ustar petepete#!perl use strict; use warning; my $x = 23; # problem: warnings with an s at the end. Padre-1.00/t/files/plugins/0000755000175000017500000000000012237340740014171 5ustar petepetePadre-1.00/t/files/plugins/Padre/0000755000175000017500000000000012237340740015224 5ustar petepetePadre-1.00/t/files/plugins/Padre/Plugin/0000755000175000017500000000000012237340741016463 5ustar petepetePadre-1.00/t/files/plugins/Padre/Plugin/C.pm0000644000175000017500000000025611416766175017221 0ustar petepetepackage Padre::Plugin::C; use strict; use warnings FATAL => 'all'; use base 'Padre::Plugin'; our $VERSION = '0.01'; sub padre_interfaces { 'Padre::Plugin' => 0.66, } 1; Padre-1.00/t/files/plugins/Padre/Plugin/B.pm0000644000175000017500000000014211151765437017206 0ustar petepetepackage Padre::Plugin::B; use strict; use warnings FATAL => 'all'; our $VERSION = '0.01'; 1; Padre-1.00/t/files/plugins/Padre/Plugin/A.pm0000644000175000017500000000016711151765437017214 0ustar petepetepackage Padre::Plugin::A; use strict; use warnings FATAL => 'all'; our $VERSION = '0.01'; print $syntax_error; 1; Padre-1.00/t/files/no_strict.pl0000644000175000017500000000005411126350660015046 0ustar petepete#!/usr/bin/perl use warnings; $what = 42; Padre-1.00/t/files/perl_functions.pl0000644000175000017500000000104011643167641016101 0ustar petepetesub guess_indentation_style { if ( $indentation =~ /^m(\d+)/ ) { $style = { use_tabs => 1, tabwidth => 8, indentwidth => $1, }; } } sub guess_filename { my $self = shift; return; } # Abstract methods, each subclass should implement it # TO DO: Clearly this isn't ACTUALLY abstract (since they exist) sub get_calltip_keywords { return {}; } sub two_lines { return 1; } sub three_lines { return 1; } # This is a false __DATA__ that shouldn't result in a culled document '__DATA__'; sub after_data { return 1; } Padre-1.00/t/files/one_char.pl0000644000175000017500000000000111120526533014606 0ustar petepetecPadre-1.00/t/files/Debugger.pm0000644000175000017500000000043111362355314014571 0ustar petepetepackage t::files::Debugger; use strict; use warnings; sub new { my ($class, %args) = @_; my $self = bless \%args, $class; return $self; } sub set_xyz { my ($self, $value) = @_; $self->{xyz} = $value; return; } sub get_xyz { my ($self) = @_; return $self->{xyz}; } 1; Padre-1.00/t/files/method_declarator_2.pm0000644000175000017500000000045511434547562016764 0ustar petepete# From Method::Signatures t/examples/iso_date_example.t package Foo; use Method::Signatures; method new($class:@_) { bless {@_}, $class; } method iso_date( :$year!, :$month = 1, :$day = 1, :$hour = 0, :$min = 0, :$sec = 0 ) { return "$year-$month-$day $hour:$min:$sec"; } 1; Padre-1.00/t/files/error_near.pl0000644000175000017500000000011011254333553015175 0ustar petepeteuse strict; use warnings; my $string = 'tada'; kaboom my $length = 5; Padre-1.00/t/files/find_variable_declaration_2.pm0000644000175000017500000000023611162735022020417 0ustar petepeteuse strict; use warnings; my $j = 12; our @foo; if (1) { foreach my $i (1..10) { $i += $j; } for our $k (@foo) { $k += $j; } my $i = 2; } Padre-1.00/t/files/method_declarator_1.pm0000644000175000017500000000256611620472405016756 0ustar petepete# From http://contourline.wordpress.com/2010/01/27/better-post-on-moosexdeclare-method-signatures/ use strict; use warnings; use MooseX::Declare; class Holiday::California { use DateTime; use Carp; has '_ca_state_holidays' => ( 'is' => 'ro', 'isa' => 'HashRef', 'builder' => '_build__ca_state_holidays' ); method _build__ca_state_holidays { return { '2007/01/01' => q{New Year's Day}, '2007/01/15' => q{Martin Luther King Jr. Day}, '2007/02/12' => q{Lincoln's Birthday}, '2007/02/19' => q{Washington's Birthday}, '2007/05/28' => q{Memorial Day}, '2007/07/04' => q{Independence Day}, '2007/09/03' => q{Labor Day}, '2007/10/08' => q{Columbus Day}, '2007/11/12' => q{Veteran's Day (observed)}, '2007/11/22' => q{Thanksgiving Day}, '2007/11/23' => q{Day after Thanksgiving}, '2007/12/24' => q{Christmas Eve}, '2007/12/25' => q{Christmas Day}, }; } method is_holiday_or_weekend ( $dt ) { confess if (! $dt->isa('DateTime') ); if ( $dt->day_abbr =~ /sun|sat/isxm ) { return 1; } elsif ( defined $self->_ca_state_holidays->{ $dt->ymd('/') } ) { return 1; } return 0; } } 1; Padre-1.00/t/files/find_variable_declaration_1.pm0000644000175000017500000000746711625203073020433 0ustar petepetepackage Padre::TaskManager; use strict; use warnings; our $VERSION = '0.20'; # According to Wx docs, # this MUST be loaded before Wx, # so this also happens in the script. use threads; use threads::shared; use Thread::Queue; require Padre; use Padre::Task; use Padre::Wx; use Wx::Event qw(EVT_COMMAND EVT_CLOSE); # This event is triggered by the worker thread main loop after # finishing a task. our $TASK_DONE_EVENT : shared = Wx::NewEventType; # Timer to reap dead workers every N milliseconds our $REAP_TIMER; # You can instantiate this class only once. our $SINGLETON; sub schedule { my $self = shift; my $process = shift; if (not ref($process) or not $process->isa("Padre::Task")) { die "Invalid task scheduled!"; # TODO: grace } # cleanup old threads and refill the pool $self->reap(); $process->prepare(); my $string; $process->serialize(\$string); if ($self->use_threads) { $self->task_queue->enqueue( $string ); } else { # TODO: Instead of this hack, consider # "reimplementing" the worker loop # as a non-threading, non-queued, fake worker loop $self->task_queue->enqueue( $string ); $self->task_queue->enqueue( "STOP" ); worker_loop( Padre->ide->wx->main, $self ); } return 1; } =pod =head2 setup_workers Create more workers if necessary. Called by C which is called regularly by the reap timer, so users don't typically need to call this. =cut sub setup_workers { my $self = shift; return if not $self->use_threads; @_=(); # avoid "Scalars leaked" my $main = Padre->ide->wx->main; # ensure minimum no. workers my $workers = $self->{workers}; while (@$workers < $self->{min_no_workers}) { $self->_make_worker_thread($main); } # add workers to satisfy demand my $jobs_pending = $self->task_queue->pending(); my $n_threads_to_kill; # fake if (@$workers < $self->{max_no_workers} and $jobs_pending > 2*@$workers) { my $target = int($jobs_pending/2); $target = $self->{max_no_workers} if $target > $self->{max_no_workers}; $self->_make_worker_thread($main) for 1..($target-@$workers); $n_threads_to_kill *= 5;#fake } return 1; } =pod =head2 reap Check for worker threads that have exited and can be joined. If there are more worker threads than the normal number and they are idle, one worker thread (per C call) is stopped. This method is called regularly by the reap timer (see the C option to the constructor) and it's not typically called by users. =cut sub reap { my $self = shift; return if not $self->use_threads; @_=(); # avoid "Scalars leaked" my $workers = $self->{workers}; my @active_or_waiting; warn "No. worker threads before reaping: ".scalar (@$workers); foreach my $worker (@$workers) { if ($worker->thread->is_joinable) { my $tmp = $worker->thread->join; } else { push @active_or_waiting, $worker; } } $self->{workers} = \@active_or_waiting; warn "No. worker threads after reaping: ".scalar (@$workers); # kill the no. of workers that aren't needed my $n_threads_to_kill = @active_or_waiting - $self->{max_no_workers}; $n_threads_to_kill = 0 if $n_threads_to_kill < 0; my $jobs_pending = $self->task_queue->pending(); # slowly reduce the no. workers to the minimum $n_threads_to_kill++ if @active_or_waiting-$n_threads_to_kill > $self->{min_no_workers} and $jobs_pending == 0; if ($n_threads_to_kill) { # my $target_n_threads = @active_or_waiting - $n_threads_to_kill; my $queue = $self->task_queue; $queue->insert( 0, ("STOP") x $n_threads_to_kill ) unless $queue->pending() and not ref($queue->peek(0)); # We don't actually need to wait for the soon-to-be-joinable threads # since reap should be called regularly. #while (threads->list(threads::running) >= $target_n_threads) { # $_->join for threads->list(threads::joinable); #} } $self->setup_workers; return 1; } Padre-1.00/t/files/missing_semicolon.pl0000644000175000017500000000011211126350660016556 0ustar petepete#!/usr/bin/perl use strict; use warnings; my $x if ($x) { print "ok"; }Padre-1.00/t/files/lexically_rename_variable.pl0000644000175000017500000000017711253232250020225 0ustar petepete#!/usr/bin/perl use strict; use warnings; my $x = 23; { my $x = 42; { my $x = 19; print $x; } print $x; } print $x; Padre-1.00/t/files/missing_brace_1.pl0000644000175000017500000000014311172567434016100 0ustar petepete#!/usr/bin/perl use strict; use warnings; if (1) { } if (1) { if (2) { # } } if (1) { } Padre-1.00/t/files/error_stack.pl0000644000175000017500000000024211254333553015363 0ustar petepeteuse strict; use warnings; use diagnostics '-traceonly'; my $name; print "Hello $name\n"; sub dying { my $illegal = 10 / 0;} sub calling {dying()} calling(); Padre-1.00/t/files/hiding_errors.pl0000644000175000017500000000034011545155653015710 0ustar petepeteuse strict; use warnings; #use CGI::Carp qw(fatalsToBrowser); my no_such_sub # see ticket #1203 # if the # removed from line 3 te syntax checker of Padre shows # that there are errors but does not show the actual errors Padre-1.00/t/files/hello_with_warn.pl0000644000175000017500000000017611126350660016234 0ustar petepete#!/usr/bin/perl use strict; use warnings; my $name; print "Hello $name\n"; my $x = "2x"; print 3+$x, "\n"; print "done\n"; Padre-1.00/t/files/method_declarator_3.pm0000644000175000017500000000027211434547562016762 0ustar petepete# From Method::Signatures t/examples/strip_ws.t package Foo; use Method::Signatures; method strip_ws($str is alias) { $str =~ s{^\s+}{}; $str =~ s{\s+$}{}; return; } 1; Padre-1.00/t/files/debugme.pl0000644000175000017500000000060411362355314014456 0ustar petepeteuse strict; use warnings; # This script was written to allow us to check various features # of the debugger use t::files::Debugger; main(); sub main { my $fname = 'foo'; my $lname = 'bar'; print "$fname $lname"; my $f = factorial(4); # test a recursive functions print "$f\n"; } sub factorial { my $n = shift; return 1 if $n == 0 or $n == 1; return $n * factorial($n-1); } Padre-1.00/t/37_task_signal.t0000644000175000017500000000361711712346204014410 0ustar petepete#!/usr/bin/perl # Create the task manager use strict; use warnings; use Test::More; use Time::HiRes (); ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 16; } use Padre::Logger; use Padre::TaskManager (); use Padre::Task::Addition (); use Padre::Wx::App (); use t::lib::Padre::NullWindow (); use_ok('Test::NoWarnings'); # Do we start with no threads as expected is( scalar( threads->list ), 0, 'No threads' ); ###################################################################### # Basic Creation SCOPE: { my $wxapp = Padre::Wx::App->new; isa_ok( $wxapp, 'Padre::Wx::App' ); my $window = t::lib::Padre::NullWindow->new; isa_ok( $window, 't::lib::Padre::NullWindow' ); my $manager = Padre::TaskManager->new( conduit => $window ); isa_ok( $manager, 'Padre::TaskManager' ); is( scalar( threads->list ), 0, 'No threads' ); # Run the startup process ok( $manager->start, '->start ok' ); Time::HiRes::sleep(1); is( scalar( threads->list ), 1, 'The master threads exists' ); # Create the sample task my $addition = Padre::Task::Addition->new( x => 2, y => 3, ); isa_ok( $addition, 'Padre::Task::Addition' ); # Schedule the task (which should trigger it's execution) ok( $manager->schedule($addition), '->schedule ok' ); # Only the prepare phase should run (for now) is( $addition->{prepare}, 1, '->{prepare} is false' ); is( $addition->{run}, 0, '->{run} is false' ); is( $addition->{finish}, 0, '->{finish} is false' ); # Run the shutdown process ok( $manager->stop, '->stop ok' ); Time::HiRes::sleep(5); TODO: { local $TODO = "Padre currently exits with running threads most of the time, unknown source, doesn't harm."; is( scalar( threads->list ), 0, 'No threads' ); } } Padre-1.00/t/csharp/0000755000175000017500000000000012237340740012666 5ustar petepetePadre-1.00/t/csharp/functionlist.t0000644000175000017500000000545711647204622015611 0ustar petepete#!/usr/bin/perl # Tests the logic for extracting the list of functions in a C# program use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 9 ); } use t::lib::Padre; use Padre::Document::CSharp::FunctionList (); # Sample code we will be parsing my $code = <<'END_CS'; /** public static void Bogus(a, b) { } */ //public static void Bogus(a, b) { } public static void Main(string[] args) { } /// protected override void Init() // ticket #1351 public abstract void MyAbstractMethod(); public byte[] ToByteArray(); public static T StaticGenericMethod(arguments); public sealed List[] GenericArrayReturnType(); public virtual string[,] TwoDimArrayReturnType(); public abstract List GetList(); private int Subtract(int a, int b) { return a - b; } private int Add(int a, int b) { return a + b; } [Test()] public void TestMethod() { } END_CS ###################################################################### # Basic Parsing SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::CSharp::FunctionList', [ text => $code ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ Main MyAbstractMethod ToByteArray StaticGenericMethod GenericArrayReturnType TwoDimArrayReturnType GetList Subtract Add TestMethod } ], 'Found expected functions', ); } ###################################################################### # Alphabetical Ordering SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::CSharp::FunctionList', [ text => $code, order => 'alphabetical', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ Add GenericArrayReturnType GetList Main MyAbstractMethod StaticGenericMethod Subtract TestMethod ToByteArray TwoDimArrayReturnType } ], 'Found expected functions (alphabetical)', ); } ###################################################################### # Alphabetical Ordering (Private Last) SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::CSharp::FunctionList', [ text => $code, order => 'alphabetical_private_last', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ Add GenericArrayReturnType GetList Main MyAbstractMethod StaticGenericMethod Subtract TestMethod ToByteArray TwoDimArrayReturnType } ], 'Found expected functions (alphabetical_private_last)', ); } Padre-1.00/t/ruby/0000755000175000017500000000000012237340740012367 5ustar petepetePadre-1.00/t/ruby/functionlist.t0000644000175000017500000000402311647204622015276 0ustar petepete#!/usr/bin/perl # Tests the logic for extracting the list of functions in a Ruby program use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 9 ); } use t::lib::Padre; use Padre::Document::Ruby::FunctionList (); # Sample code we will be parsing my $code = <<'END_RUBY'; =begin def bogus(a, b): =end def initialize: return def subtract(a, b): return a - b def add(a, b): return a + b def _private: return END_RUBY ###################################################################### # Basic Parsing SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Ruby::FunctionList', [ text => $code ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ initialize subtract add _private } ], 'Found expected functions', ); } ###################################################################### # Alphabetical Ordering SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Ruby::FunctionList', [ text => $code, order => 'alphabetical', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ add initialize _private subtract } ], 'Found expected functions (alphabetical)', ); } ###################################################################### # Alphabetical Ordering (Private Last) SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Ruby::FunctionList', [ text => $code, order => 'alphabetical_private_last', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ add initialize subtract _private } ], 'Found expected functions (alphabetical_private_last)', ); } Padre-1.00/t/17_messages.t0000644000175000017500000000323111712362256013713 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; use Cwd qw(cwd); use File::Spec (); use t::lib::Padre; # a few sample strings some of them disappeard from messages.pot during the release of 0.82 # See ticket #1132 my @strings = ( q(msgid "Open in File Browser"), # File/Open/ q(msgid "&Clear Selection Marks"), # Edit/Select/ q(msgid "Full Sc&reen"), # View/ q(msgid "&Quick Menu Access..."), # Search/ q(msgid "&Check for Common (Beginner) Errors"), # Perl/ q(msgid "Find Unmatched &Brace"), # Perl/ q(msgid "&Move POD to __END__"), # Refactor/ q(msgid "&Run Script"), # Run/ q(msgid "Dump the Padre object to STDOUT"), # internal q("The file %s you are trying to open is %s bytes large. It is over the "), # Padre::Document q("arbitrary file size limit of Padre which is currently %s. Opening this file "), q("may reduce performance. Do you still want to open the file?"), q(msgid "%s - Crashed while instantiating: %s"), # Padre::PluginManager q(msgid "Default word wrap on for each file"), # Padre::Wx::Dialog::Preferences q(msgid "Any non-word character"), #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 ); plan tests => scalar @strings; my $messages_pot = File::Spec->catfile( cwd(), 'share', 'locale', 'messages.pot' ); open my $fh, '<', $messages_pot or die "Could not open '$messages_pot' $!"; my @messages = <$fh>; close $fh; foreach my $str (@strings) { ok grep( { $_ =~ /\Q$str/ } @messages ), "messages.pot has entry '$str'"; } Padre-1.00/t/09_search.t0000644000175000017500000000366311701174725013363 0ustar petepete#!/usr/bin/perl # Tests for the Padre::Search API use strict; use warnings; use Test::More tests => 11; use Test::NoWarnings; use File::Spec::Functions ':ALL'; use t::lib::Padre; use Padre::Search; my $FILENAME = catfile( 'lib', 'Padre.pm' ); ok( -f $FILENAME, "Test file $FILENAME exists" ); my $SAMPLE = <<'END_TEXT'; foo foo foobar foo bar barfoo bar foo foofoofoo END_TEXT ###################################################################### # Basics SCOPE: { my $search = Padre::Search->new( find_term => 'foo', ); isa_ok( $search, 'Padre::Search' ); # Find a count of matches my $count = $search->search_count( \$SAMPLE ); is( $count, 9, '->search_count ok' ); # Find the list of matches my @lines = $search->match_lines( $SAMPLE, $search->search_regex ); is_deeply( \@lines, [ [ 1, 'foo' ], [ 3, 'foo' ], [ 4, 'foobar' ], [ 5, 'foo bar' ], [ 6, 'barfoo' ], [ 7, 'bar foo' ], [ 8, 'foofoofoo' ], ], ); } SCOPE: { my $replace = Padre::Search->new( find_term => 'foo', replace_term => 'abc', ); isa_ok( $replace, 'Padre::Search' ); # Replace all terms my $copy = $SAMPLE; my $changes = $replace->replace_all( \$copy ); is( $changes, 9, '->replace_all ok' ); # There should now be 9 copies of abc in it instead my $abc = Padre::Search->new( find_term => 'abc', )->search_count( \$copy ); is( $abc, 9, 'Found 9 copies of the replace_term' ); } ###################################################################### # Regression Tests SCOPE: { my $replace = new_ok( 'Padre::Search' => [ find_term => 'Padre', replace_term => 'Padre2', ] ); # Load a known-bad file open( my $fh, '<', $FILENAME ) or die "open: $!"; my $buffer = do { local $/; <$fh> }; close $fh; # Apply the replace local $@; my $count = eval { $replace->replace_all( \$buffer ); }; is( $@, '', '->replace_all in unicode file does not crash' ); diag($@) if $@; ok( $count, 'Replaced ok' ); } Padre-1.00/t/05_project.t0000644000175000017500000000271611622750100013543 0ustar petepete#!/usr/bin/perl use warnings; use strict; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 16 ); } use File::Spec::Functions ':ALL'; use Test::NoWarnings; use t::lib::Padre; use Padre; my $padre_null = rel2abs( catdir( 't', 'collection', 'Padre-Null' ) ); ok( -d $padre_null, 'Found Padre-Null project' ); my $manager = Padre->new->project_manager; isa_ok( $manager, 'Padre::ProjectManager' ); ##################################################################### # Load a simple Padre project SCOPE: { my $simple = $manager->project($padre_null); isa_ok( $simple, 'Padre::Project' ); is( ref($simple), 'Padre::Project', 'Creates an actual Padre project' ); is( $simple->root, $padre_null, '->root ok' ); ok( -f $simple->padre_yml, '->padre_yml exists' ); # The project should have an empty config my $config = $simple->config; isa_ok( $config, 'Padre::Config' ); isa_ok( $config->host, 'Padre::Config::Host' ); isa_ok( $config->human, 'Padre::Config::Human' ); isa_ok( $config->project, 'Padre::Config::Project' ); is( scalar( keys %{ $config->project } ), 2, 'Project config is empty' ); ok( defined $config->project->fullname, '->fullname is defined' ); ok( -f $config->project->fullname, '->fullname exists' ); ok( defined $config->project->dirname, '->dirname is defined' ); ok( -d $config->project->dirname, '->dirname exists' ); } Padre-1.00/t/31_task_queue.t0000644000175000017500000000312011712346204014236 0ustar petepete#!/usr/bin/perl # Basic tests for Padre::TaskQueue use strict; use warnings; use Test::More; ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 12; } use Test::NoWarnings; use t::lib::Padre; use Padre::TaskQueue (); use Padre::Logger; # Check the null case my $queue = Padre::TaskQueue->new; isa_ok( $queue, 'Padre::TaskQueue' ); is( $queue->pending, 0, '->pending is false' ); SCOPE: { my @nb = $queue->dequeue_nb; is_deeply( \@nb, [], '->dequeue_nb returns immediately with nothing' ); } # Add a record and remove non-blocking $queue->enqueue( [ 'foo', 'bar' ] ); is( $queue->pending, 1, '->pending is true' ); SCOPE: { my @nb = $queue->dequeue_nb; is_deeply( \@nb, [ [ 'foo', 'bar' ] ], '->dequeue_nb returns the record' ); } # Add a record and remove blocking $queue->enqueue( [ 'foo', 'bar' ] ); is( $queue->pending, 1, '->pending is true' ); SCOPE: { my @nb = $queue->dequeue; is_deeply( \@nb, [ [ 'foo', 'bar' ] ], '->dequeue returns the record' ); } # Add a record and remove non-blocking $queue->enqueue( [ 'foo', 'bar' ] ); is( $queue->pending, 1, '->pending is true' ); SCOPE: { my $nb = $queue->dequeue1_nb; is_deeply( $nb, [ 'foo', 'bar' ], '->dequeue1_nb returns the record' ); } # Add a record and remove blocking $queue->enqueue( [ 'foo', 'bar' ] ); is( $queue->pending, 1, '->pending is true' ); SCOPE: { my $nb = $queue->dequeue1; is_deeply( $nb, [ 'foo', 'bar' ], '->dequeue1 returns the record' ); } Padre-1.00/t/36_task_eval.t0000644000175000017500000000473611741531315014065 0ustar petepete#!/usr/bin/perl # Spawn and then shut down the task worker object. # Done in similar style to the task master to help encourage # implementation similarity in the future. use strict; use warnings; use Test::More; use Test::Exception; ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 24; } use t::lib::Padre; use Padre::TaskHandle (); use Padre::Task::Eval (); use Padre::Logger; use_ok('Test::NoWarnings'); ###################################################################### # Run a straight forwards eval task via a handle SCOPE: { my $task = Padre::Task::Eval->new( prepare => '1 + 2', run => '3 + 4', finish => '5 + 6', ); isa_ok( $task, 'Padre::Task::Eval' ); is( $task->{prepare}, '1 + 2', '->{prepare} is false' ); is( $task->{run}, '3 + 4', '->{run} is false' ); is( $task->{finish}, '5 + 6', '->{finish} is false' ); # Wrap a handle around it my $handle = Padre::TaskHandle->new($task); isa_ok( $handle, 'Padre::TaskHandle' ); isa_ok( $handle->task, 'Padre::Task::Eval' ); is( $handle->hid, 1, '->hid ok' ); # Run the task is( $handle->prepare, 1, '->prepare ok' ); is( $task->{prepare}, 3, '->{prepare} is true' ); is( $handle->run, 1, '->run ok' ); is( $task->{run}, 7, '->{run} is true' ); is( $handle->finish, 1, '->finish ok' ); is( $task->{finish}, 11, '->{finish} is true' ); } ###################################################################### # Exceptions without a handle SCOPE: { my $task = Padre::Task::Eval->new( prepare => 'die "foo";', run => 'die "bar";', finish => 'die "baz";', ); isa_ok( $task, 'Padre::Task::Eval' ); # Do they throw normal exceptions throws_ok( sub { $task->prepare }, qr/foo/ ); throws_ok( sub { $task->run }, qr/bar/ ); throws_ok( sub { $task->finish }, qr/baz/ ); } ###################################################################### # Repeat with the handle SCOPE: { my $task = Padre::Task::Eval->new( prepare => 'die "foo";', run => 'die "bar";', finish => 'die "baz";', ); my $handle = Padre::TaskHandle->new($task); isa_ok( $task, 'Padre::Task::Eval' ); isa_ok( $handle, 'Padre::TaskHandle' ); # Do they throw normal exceptions is( $handle->prepare, '', '->prepare ok' ); is( $handle->run, '', '->run ok' ); is( $handle->finish, '', '->finish ok' ); } Padre-1.00/t/97_debug_debugger.t0000644000175000017500000000324612021411610015033 0ustar petepete#!/usr/bin/perl use strict; use warnings; # Turn on $OUTPUT_AUTOFLUSH $| = 1; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 55; use_ok( 'Debug::Client', '0.20' ); } use Test::NoWarnings; use t::lib::Padre; use Padre::Wx; use Padre; use_ok('Padre::Wx::Panel::Debugger'); # Create the IDE my $padre = new_ok('Padre'); my $main = $padre->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); # Create the debugger panel my $panel = new_ok( 'Padre::Wx::Panel::Debugger', [$main] ); ###### # let's check our subs/methods. ###### my @subs = qw( _bp_autoload _debug_get_variable _display_trace _get_bp_db _on_list_item_selected _output_variables _set_debugger _setup_db debug_perl debug_perl_show_value debug_quit debug_run_till debug_step_in debug_step_out debug_step_over display_value get_global_variables get_local_variables on_all_threads_clicked on_debug_clicked on_display_options_clicked on_display_value_clicked on_dot_clicked on_evaluate_expression_clicked on_list_action_clicked on_module_versions_clicked on_quit_debugger_clicked on_raw_clicked on_run_till_clicked on_running_bp_clicked on_show_global_variables_checked on_show_local_variables_checked on_stacktrace_clicked on_step_in_clicked on_step_out_clicked on_step_over_clicked on_sub_names_clicked on_trace_checked on_view_around_clicked on_watchpoints_clicked quit running set_up update_variables view_close view_icon view_label view_panel ); use_ok( 'Padre::Wx::Panel::Debugger', @subs ); foreach my $subs (@subs) { can_ok( 'Padre::Wx::Panel::Debugger', $subs ); } # done_testing(); 1; __END__ Padre-1.00/t/20_comment.t0000644000175000017500000000333211744002274013536 0ustar petepete#!/usr/bin/perl # Tests for the Padre::Comment module and the mime types in it use strict; use warnings; use Test::More; use Params::Util; use t::lib::Padre; use Padre::MIME; use Padre::Comment; BEGIN { # Calculate the plan automatically my $types = scalar Padre::MIME->types; my $tests = $types * 7 + 1; plan( tests => $tests ); } use Test::NoWarnings; # Some mime types do not need comments my %nocomment = ( 'text/plain' => 1, 'text/csv' => 1, 'text/rtf' => 1, 'text/x-patch' => 1, ); ###################################################################### # Basic tasks foreach my $type ( sort Padre::MIME->types ) { my $mime = Padre::MIME->find($type); isa_ok( $mime, 'Padre::MIME' ); is( $mime->type, $type, "$type: Found Padre::MIME" ); SKIP: { # We are only interested in cases where there are multiple comments my @path = map { $_->key } grep { defined $_ } map { Padre::Comment->get($_) } $mime->superpath; # Skip on various conditions if ( $mime->binary ) { skip( "$type: No comments in binary files", 5 ); } if ( $nocomment{$type} ) { skip( "$type: File does not support comments", 5 ); } ok( scalar(@path), "$type: Found at least one comment" ); # Look for nested duplicates my $bad = grep { $path[ $_ - 1 ] eq $path[$_] } ( 1 .. $#path ); is( $bad, 0, "$type: No duplicate comments in the path" ); # Can we find the comment object via the find method my $comment = Padre::Comment->find($type); isa_ok( $comment, 'Padre::Comment' ); my $comment2 = Padre::Comment->find($mime); isa_ok( $comment2, 'Padre::Comment' ); # Can we get the comment line detection regexp my $line = $comment->line_match; ok( Params::Util::_REGEX($line), "$type: ->is_line ok" ); } } Padre-1.00/t/21_sloc.t0000644000175000017500000000215411744002274013036 0ustar petepete#!/usr/bin/perl # Tests for the Padre::MIME module and the mime types in it use strict; use warnings; use Test::More tests => 4; use Test::NoWarnings; use t::lib::Padre; use Padre::SLOC; ###################################################################### # Basic tasks my $sloc = Padre::SLOC->new; isa_ok( $sloc, 'Padre::SLOC' ); # Check Perl 5 line count in the trivial case my $count = $sloc->count_perl5( \' ' ); is_deeply( $count, { 'application/x-perl blank' => 1, 'application/x-perl comment' => 0, 'application/x-perl content' => 0, 'text/x-pod blank' => 0, 'text/x-pod comment' => 0, }, 'Got expected Perl 5 line count', ); # Check Perl 5 line count $count = $sloc->count_perl5( \<<'END_PERL'); # A comment =pod =head1 NAME This is documentation =cut # Another comment print "Hello World!\n"; # comment exit(0); END_PERL is_deeply( $count, { 'application/x-perl blank' => 4, 'application/x-perl comment' => 2, 'application/x-perl content' => 2, 'text/x-pod blank' => 3, 'text/x-pod comment' => 4, }, 'Got expected Perl 5 line count', ); Padre-1.00/t/34_task_master.t0000644000175000017500000000164011741531315014416 0ustar petepete#!/usr/bin/perl # Start a worker thread from inside another thread #BEGIN { #$Padre::TaskWorker::DEBUG = 1; #$Padre::TaskWorker::DEBUG = 1; #} use strict; use warnings; use Test::More; ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } plan tests => 8; use Time::HiRes 'sleep'; use t::lib::Padre; use Padre::Logger; use_ok('Test::NoWarnings'); use_ok('Padre::TaskWorker'); is( scalar( threads->list ), 0, 'No threads exists' ); # Fetch the master, is it the existing one? my $master1 = Padre::TaskWorker->master; my $master2 = Padre::TaskWorker->master; isa_ok( $master1, 'Padre::TaskWorker' ); isa_ok( $master2, 'Padre::TaskWorker' ); is( $master1->wid, $master2->wid, 'Masters match' ); sleep 0.1; is( scalar( threads->list ), 1, 'One thread exists' ); Padre-1.00/t/95_edit_patch.t0000644000175000017500000000234111705147640014217 0ustar petepete#!/usr/bin/perl use strict; use warnings; # Turn on $OUTPUT_AUTOFLUSH $| = 1; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 27; } use Test::NoWarnings; use t::lib::Padre; use Padre::Wx; use Padre; use_ok('Padre::Wx::Dialog::Patch'); # Create the IDE my $padre = new_ok('Padre'); my $main = $padre->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); # Create the patch dialog my $dialog = new_ok( 'Padre::Wx::Dialog::Patch', [$main] ); # Check the radiobox properties my $against = $dialog->against; isa_ok( $against, 'Wx::RadioBox' ); # Check the file1 choice properties my $file1 = $dialog->file1; isa_ok( $file1, 'Wx::Choice' ); # Check the file2 choice properties my $file2 = $dialog->file2; isa_ok( $file2, 'Wx::Choice' ); ###### # let's check our subs/methods. ###### my @subs = qw( apply_patch current_files file1_list_svn file2_list_patch file2_list_type file_lists_saved filename_url make_patch_diff make_patch_svn new on_action on_against process_clicked run set_selection_file1 set_selection_file2 set_up test_svn); use_ok( 'Padre::Wx::Dialog::Patch', @subs ); foreach my $subs (@subs) { can_ok( 'Padre::Wx::Dialog::Patch', $subs ); } Padre-1.00/t/35_task_handle.t0000644000175000017500000000640211741531315014360 0ustar petepete#!/usr/bin/perl # Spawn and then shut down the task worker object. # Done in similar style to the task master to help encourage # implementation similarity in the future. use strict; use warnings; use Test::More; ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 41; } use Test::NoWarnings; use t::lib::Padre; use Padre::TaskHandle (); use Padre::Task::Addition (); use Padre::Logger; ###################################################################### # Check the raw task SCOPE: { my $addition = Padre::Task::Addition->new( x => 2, y => 3, ); isa_ok( $addition, 'Padre::Task::Addition' ); is( $addition->{x}, 2, '->{x} matches expected' ); is( $addition->{y}, 3, '->{y} matches expected' ); is( $addition->{z}, undef, '->{z} matches expected' ); # Run the task is( $addition->{prepare}, 0, '->{prepare} is false' ); is( $addition->prepare, 1, '->prepare ok' ); is( $addition->{prepare}, 1, '->{prepare} is true' ); is( $addition->{run}, 0, '->{run} is false' ); is( $addition->run, 1, '->run ok' ); is( $addition->{run}, 1, '->{run} is true' ); is( $addition->{finish}, 0, '->{finish} is false' ); is( $addition->finish, 1, '->finish ok' ); is( $addition->{finish}, 1, '->{finish} is true' ); is( $addition->{x}, 2, '->{x} matches expected' ); is( $addition->{y}, 3, '->{y} matches expected' ); is( $addition->{z}, 5, '->{z} matches expected' ); # Check task round-trip serialization my $string = $addition->as_string; ok( ( defined $string and !ref $string and length $string ), '->as_string ok', ); my $round = Padre::Task::Addition->from_string($string); isa_ok( $round, 'Padre::Task::Addition' ); is_deeply( $round, $addition, 'Task round-trips ok' ); } ###################################################################### # Run the task via a handle object SCOPE: { my $task = Padre::Task::Addition->new( x => 2, y => 3 ); my $handle = Padre::TaskHandle->new($task); isa_ok( $handle, 'Padre::TaskHandle' ); isa_ok( $handle->task, 'Padre::Task::Addition' ); is( $handle->hid, 1, '->hid ok' ); is( $handle->task->{x}, 2, '->{x} matches expected' ); is( $handle->task->{y}, 3, '->{y} matches expected' ); is( $handle->task->{z}, undef, '->{z} matches expected' ); # Run the task is( $task->{prepare}, 0, '->{prepare} is false' ); is( $handle->prepare, 1, '->prepare ok' ); is( $task->{prepare}, 1, '->{prepare} is true' ); is( $task->{run}, 0, '->{run} is false' ); is( $handle->run, 1, '->run ok' ); is( $task->{run}, 1, '->{run} is true' ); is( $task->{finish}, 0, '->{finish} is false' ); is( $handle->finish, 1, '->finish ok' ); is( $task->{finish}, 1, '->{finish} is true' ); is( $handle->task->{x}, 2, '->{x} matches expected' ); is( $handle->task->{y}, 3, '->{y} matches expected' ); is( $handle->task->{z}, 5, '->{z} matches expected' ); # Check handle round-trip serialisation my $array = $handle->as_array; is( ref($array), 'ARRAY', '->as_array ok' ); my $round = Padre::TaskHandle->from_array($array); isa_ok( $round, 'Padre::TaskHandle' ); is_deeply( $round, $handle, 'Round trip serialisation ok' ); } Padre-1.00/t/16_locale_format.t0000644000175000017500000000273711744002274014720 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More tests => 31; use Test::NoWarnings; use t::lib::Padre; use Padre::Locale::Format; ###################################################################### # Integers my @integer = ( '' => '', 'Hello' => 'Hello', '0' => '0', '1' => '1', '12' => '12', '123' => '123', '1234' => '1,234', '12345' => '12,345', '123456' => '123,456', '1234567' => '1,234,567', '-1' => '-1', '-12' => '-12', '-123' => '-123', '-1234' => '-1,234', '-12345' => '-12,345', '-123456' => '-123,456', '-1234567' => '-1,234,567', ); is( Padre::Locale::Format::integer(undef), '', "integer undef --> ''", ); while (@integer) { my $input = shift @integer; my $want = shift @integer; my $have = Padre::Locale::Format::integer($input); is( $have, $want, "integer $input --> $want" ); } ###################################################################### # Bytes my @bytes = ( '' => '', 'Hello' => 'Hello', '0' => '0B', '1' => '1B', '10' => '10B', '100' => '100B', '1000' => '1000B', '10000' => '9.8kB', '100000' => '97.7kB', '1000000' => '976.6kB', '10000000' => '9.5MB', ); is( Padre::Locale::Format::bytes(undef), '', "bytes undef --> ''", ); while (@bytes) { my $input = shift @bytes; my $want = shift @bytes; my $have = Padre::Locale::Format::bytes($input); is( $have, $want, "bytes $input --> $want" ); } Padre-1.00/t/93_padre_filename_win.t0000644000175000017500000000250511660200252015710 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; use Padre::File; if ( ( $^O ne 'MSWin32' ) and ( $^O ne 'cygwin' ) ) { plan( tests => 1 ); ok( 1, 'Skipped, only applies to Windows' ); exit; } plan( tests => 7 ); { local $TODO; $TODO = 'Failing this is no reason to stop install' unless $ENV{AUTOMATED_TESTING}; # The test file name is hard-coded because we need to play around with the pathname (/ or \): ok( open( my $fh, '>', 't/files/padre-file-test' ), 'Create test file' ); print $fh "foo"; close $fh; is( -s 't/files/padre-file-test', 3, 'Check test file size' ); my $file = Padre::File->new('t/files/padre-file-test'); ok( defined($file), 'Create Padre::File object' ); ok( $file->exists, 'File exists' ); # Now we have a Padre::File object and a testfile to play with... $file->{filename} = 'T/Files/Padre-File-Test'; $file->_reformat_filename; is( $file->{filename}, 't\files\padre-file-test', 'Correct wrong case' ); $file->{filename} = 'T\Files\Padre-File-Test'; $file->_reformat_filename; is( $file->{filename}, 't\files\padre-file-test', 'Correct wrong case' ); my $Crap = 'X:\foo\bar\padre-nonexistent\testfile'; $file->{filename} = $Crap; $file->_reformat_filename; is( $file->{filename}, $Crap, 'Keep the filename on nonexistent file' ); } END { unlink 't/files/padre-file-test'; } Padre-1.00/t/75_autocomplete.t0000644000175000017500000000467111622750100014607 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 12; } use Test::NoWarnings; use t::lib::Padre; use Test::MockObject; # Setup my $mock_editor = Test::MockObject->new(); $mock_editor->set_true('AutoCompSetChooseSingle'); $mock_editor->set_true('AutoCompSetSeparator'); $mock_editor->set_true('AutoCompShow'); my $mock_document = Test::MockObject->new(); $mock_document->mock( 'autocomplete', sub { return ( 1, 'abc', 'def' ) } ); $mock_document->set_always( 'editor', $mock_editor ); my $mock_config = Test::MockObject->new(); my $mock_main = Test::MockObject->new(); $mock_main->set_always( 'current', $mock_main ); $mock_main->set_always( 'document', $mock_document ); $mock_main->set_always( 'ide', $mock_main ); $mock_main->set_always( 'config', $mock_config ); $mock_main->fake_module( 'Wx::Event', EVT_KILL_FOCUS => sub { } ); use_ok('Padre::Wx::Main'); SCOPE: { # Test 'Set Single' turned on for autocomplete # GIVEN $mock_config->set_always( 'autocomplete_always', 0 ); # WHEN Padre::Wx::Main::on_autocompletion($mock_main); # THEN my ( $name, $args ); # Check AutoCompSetChooseSingle set ( $name, $args ) = $mock_editor->next_call(); is( $name, 'AutoCompSetChooseSingle', "AutoCompSetChooseSingle called" ); is( $args->[1], 1, "AutoCompSetChooseSingle set to true" ); # Check correct params passed to AutoCompShow ( $name, $args ) = $mock_editor->next_call(2); is( $name, 'AutoCompShow', "AutoCompShow called" ); is( $args->[1], 1, "Length passed to AutoCompShow" ); is( $args->[2], 'abc def', "World list passed to AutoCompShow" ); } SCOPE: { # Test 'Set Single' turned kept off when autocomplete_always is on # GIVEN $mock_config->set_always( 'autocomplete_always', 1 ); # WHEN Padre::Wx::Main::on_autocompletion($mock_main); # THEN my ( $name, $args ); # Check AutoCompSetChooseSingle set ( $name, $args ) = $mock_editor->next_call(); is( $name, 'AutoCompSetChooseSingle', "AutoCompSetChooseSingle called" ); is( $args->[1], 0, "AutoCompSetChooseSingle set to false" ); # Check correct params passed to AutoCompShow ( $name, $args ) = $mock_editor->next_call(2); is( $name, 'AutoCompShow', "AutoCompShow called" ); is( $args->[1], 1, "Length passed to AutoCompShow" ); is( $args->[2], 'abc def', "World list passed to AutoCompShow" ); } Padre-1.00/t/win32/0000755000175000017500000000000012237340741012351 5ustar petepetePadre-1.00/t/win32/002-menu.t0000644000175000017500000000225011741516712014002 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; eval { require Win32::GuiTest; import Win32::GuiTest qw(:ALL); }; if ($@) { plan( skip_all => 'Win32::GuiTest is required for this test' ); } use t::lib::Padre; require t::lib::Padre::Win32; my $padre = t::lib::Padre::Win32::setup(); ################################ plan tests => 5; my $menu = GetMenu($padre); # test File Menu my $submenu = GetSubMenu( $menu, 0 ); { my %h = GetMenuItemInfo( $menu, 0 ); # The next test is locale specific so we might skip # the whole thing if not in English? is $h{text}, '&File', "File Menu is ok"; } { my %h = GetMenuItemInfo( $submenu, 0 ); # New in the File menu is $h{text}, "&New\tCtrl-N", "New is the first menu item"; } my $subsubmenu = GetSubMenu( $submenu, 1 ); { my %h = GetMenuItemInfo( $subsubmenu, 5 ); is $h{text}, "Perl &6 Script", "Perl 6 Script in submenu"; } # test Edit { $submenu = GetSubMenu( $menu, 1 ); my %h = GetMenuItemInfo( $menu, 1 ); is $h{text}, '&Edit', 'Edit menu'; } # test View { $submenu = GetSubMenu( $menu, 3 ); my %h = GetMenuItemInfo( $menu, 3 ); is $h{text}, '&View', 'View Menu'; } SendKeys("%{F4}"); # Alt-F4 to exit sleep 1; Padre-1.00/t/win32/011-file-open.t0000644000175000017500000000166211732111566014720 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; use FindBin qw/$RealBin/; eval { require Win32::GuiTest; import Win32::GuiTest qw(:ALL); }; if ($@) { plan skip_all => 'Win32::GuiTest is required for this test'; } use t::lib::Padre; require t::lib::Padre::Win32; my $padre = t::lib::Padre::Win32::setup(); ############################## plan tests => 1; MenuSelect("&File|&Open"); sleep 1; my $dir = $RealBin; # Stupid Save box don't accpect '/' in the input $dir =~ s/\//\\/g; diag $dir; my $file = "$dir\\..\\files\\missing_brace_1.pl"; diag "File to open: $file"; SendKeys($file); SendKeys("%{O}"); sleep 1; # check if the missing_brace_1.pl is open. my @children = FindWindowLike( $padre, '', 'msctls_statusbar32' ); my $text = WMGetText( $children[0] ); like( $text, qr/missing_brace_1\.pl$/, 'get missing_brace_1.pl on statusbar' ); # Close it MenuSelect("&File|&Close"); SendKeys("%{F4}"); # Alt-F4 to exit sleep 1; Padre-1.00/t/win32/010-file-new.t0000644000175000017500000000430211732111566014541 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; use Win32; eval { require Win32::GuiTest; import Win32::GuiTest qw(:ALL); }; if ($@) { plan skip_all => 'Win32::GuiTest is required for this test'; } use t::lib::Padre; require t::lib::Padre::Win32; my $padre = t::lib::Padre::Win32::setup(); ############################ plan tests => 5; # diag "Window id $padre"; my $text = "If you're reading this inside Padre, "; $text .= "we might consider this test succesful. "; $text .= "Please wait......."; my $dir = Win32::GetLongPathName( $ENV{PADRE_HOME} ); diag "PADRE_HOME long path: '$dir'"; my $save_to = "$dir/$$.txt"; my $save_tox = "$dir/x$$.txt"; # Stupid Save box don't accpect '/' in the input $save_to =~ s{/}{\\}g; $save_tox =~ s{/}{\\}g; diag "Save to '$save_to'"; SCOPE: { MenuSelect("&File|&New"); sleep 1; unlink $save_to; SendKeys($text); MenuSelect("&File|&Save"); sleep 1; SendKeys($save_to); SendKeys("%{S}"); sleep 1; ok( -e $save_to, "file '$save_to' saved" ); my $text_in_file = slurp($save_to); is( $text_in_file, $text, 'correct text in file' ); } SCOPE: { my $t = "Text in second line..."; SendKeys("{ENTER}"); SendKeys($t); $text .= "\n$t"; SendKeys("^{s}"); # Ctrl-s sleep 1; my $text_in_file = slurp($save_to); is( $text_in_file, $text, 'correct text in file' ); } SCOPE: { SendKeys("{F12}"); # Save As sleep 1; SendKeys($save_tox); SendKeys("%{S}"); sleep 1; ok( -e $save_tox, "file '$save_tox' saved" ); my $text_in_file = slurp($save_tox); is( $text_in_file, $text, 'correct text in file' ); } MenuSelect("&File|&Close"); SendKeys("%{F4}"); # Alt-F4 to exit sleep 1; sub slurp { if ( open( my $fh, '<', $save_to ) ) { local $/; my $rv = <$fh>; close $fh; return $rv; } else { warn("Could not open file $save_to $!"); return; } } sub tree { my ( $id, $depth ) = @_; $depth ||= 0; my $LIMIT = 5; my @children = GetChildWindows($id); my $str = ''; if ( $depth >= $LIMIT ) { return ( ( "+" x $LIMIT ) . "Depth limit of $LIMIT reached\n" ); } foreach my $child (@children) { $str .= ( "+" x $depth ) . sprintf "Child: %8s %s\n", $child, GetWindowText($child); $str .= tree( $child, $depth + 1 ); } return $str; } Padre-1.00/t/win32/012-file-open-selection.t0000644000175000017500000000247211732111566016704 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; use FindBin qw/$RealBin/; eval { require Win32::GuiTest; import Win32::GuiTest qw(:ALL); }; if ($@) { plan skip_all => 'Win32::GuiTest is required for this test'; } use t::lib::Padre; require t::lib::Padre::Win32; my $padre = t::lib::Padre::Win32::setup(); ############################## plan tests => 2; SendKeys("{LEFT}"); # no selection SendKeys("^+{O}"); sleep 1; # TODO "Open Selection" window should be in the air my @current_windows = FindWindowLike( 0, "^Open selection" ); is( scalar @current_windows, 1, q{'Open Selection' window found} ); SendKeys("Padre::Document::Perl"); sleep 1; SendKeys("{ENTER}"); sleep 2; # if there is only one matching file then this will already open the file # if there are two matching files then we will have a window opened with # the list of files and we have to select # "Choose file" my @choose_file = FindWindowLike( 0, "Choose File" ); if (@choose_file) { diag "More than one files found"; SendKeys("{ENTER}"); sleep 2; } # check if the Padre.pm is open. my @children = FindWindowLike( $padre, '', 'msctls_statusbar32' ); my $text = WMGetText( $children[0] ); like( $text, qr/Document.*Perl\.pm$/, 'get filename on statusbar' ); # Close it MenuSelect("&File|&Close"); SendKeys("%{F4}"); # Alt-F4 to exit sleep 1; Padre-1.00/t/python/0000755000175000017500000000000012237340740012727 5ustar petepetePadre-1.00/t/python/functionlist.t0000644000175000017500000000377111647204622015647 0ustar petepete#!/usr/bin/perl # Tests the logic for extracting the list of functions in a Python program use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 9 ); } use t::lib::Padre; use Padre::Document::Python::FunctionList (); # Sample code we will be parsing my $code = <<'END_PYTHON'; """ def bogus(a, b): """ def __init__: return def subtract(a, b): return a - b def add(a, b): return a + b g = lambda x: x**2 END_PYTHON ###################################################################### # Basic Parsing SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Python::FunctionList', [ text => $code ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ __init__ subtract add g } ], 'Found expected functions', ); } ###################################################################### # Alphabetical Ordering SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Python::FunctionList', [ text => $code, order => 'alphabetical', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ add g __init__ subtract } ], 'Found expected functions (alphabetical)', ); } ###################################################################### # Alphabetical Ordering (Private Last) SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Python::FunctionList', [ text => $code, order => 'alphabetical_private_last', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ add g subtract __init__ } ], 'Found expected functions (alphabetical_private_last)', ); } Padre-1.00/t/38_task_manager.t0000644000175000017500000000570212013731623014541 0ustar petepete#!/usr/bin/perl # Create and test the task manager use strict; use warnings; use Test::More; use Storable (); use Time::HiRes (); ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 16; } use Padre::Logger; use Padre::Wx (); use Padre::Wx::App (); use Padre::Wx::Main (); use Padre::TaskManager (); use Padre::Task::Addition (); use t::lib::Padre::NullWindow (); use constant TIMER_POSTINIT => Wx::NewId(); use constant TIMER_LASTRESORT => Wx::NewId(); use_ok('Test::NoWarnings'); ###################################################################### # Main Test Sequence # We will need a running application so the main thread can # receive events thrown from the child thread. my $wxapp = Padre::Wx::App->new; isa_ok( $wxapp, 'Padre::Wx::App' ); # We also need a main window of some kind to handle events my $window = t::lib::Padre::NullWindow->new; isa_ok( $window, 't::lib::Padre::NullWindow' ); my $manager = Padre::TaskManager->new( conduit => $window ); isa_ok( $manager, 'Padre::TaskManager' ); # Schedule the startup timer Wx::Event::EVT_TIMER( $wxapp, TIMER_POSTINIT, \&startup ); my $timer1 = Wx::Timer->new( $wxapp, TIMER_POSTINIT ); # Schedule the failure timeout Wx::Event::EVT_TIMER( $wxapp, TIMER_LASTRESORT, \&timeout ); my $timer2 = Wx::Timer->new( $wxapp, TIMER_LASTRESORT ); # Start the timers $timer1->Start( 1, 1 ); $timer2->Start( 1000, 1 ); ###################################################################### # Main Process # We start with no threads is( scalar( threads->list ), 0, 'We start with No threads' ); # Enter the wx loop # $window->Show(1) if $window; $wxapp->MainLoop; # We end with no threads is( scalar( threads->list ), 0, 'We end with No threads' ); ###################################################################### # Basic Creation sub startup { # Run the startup process ok( $manager->start, '->start, startup process ok' ); Time::HiRes::sleep(1); is( scalar( threads->list ), 1, 'Three threads exists' ); # Create the sample task my $addition = Padre::Task::Addition->new( x => 2, y => 3, ); isa_ok( $addition, 'Padre::Task::Addition' ); # Schedule the task (which should trigger it's execution) ok( $manager->schedule($addition), '->schedule startup ok' ); is( $addition->{prepare}, 1, '->{prepare} startup is false' ); #should this be true as 1 is( $addition->{run}, 0, '->{run} startup is false' ); is( $addition->{finish}, 0, '->{finish} startup is false' ); } sub timeout { # Run the shutdown process $timer1 = undef; $timer2 = undef; ok( $manager->stop, '->stop timeout ok' ); # we appire to hang here ok( $manager->waitjoin, '->waitjoin timeout ok' ); # $window->Show(0) if $window; $wxapp->ExitMainLoop; } # done_testing(); 1; __END__ Padre-1.00/t/98_debug_breakpoints.t0000644000175000017500000000200111744002274015572 0ustar petepete#!/usr/bin/perl use strict; use warnings; # Turn on $OUTPUT_AUTOFLUSH $| = 1; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 22; } use Test::NoWarnings; use t::lib::Padre; use Padre::Wx; use Padre; use_ok('Padre::Wx::Panel::Breakpoints'); # Create the IDE my $padre = new_ok('Padre'); my $main = $padre->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); # Create the breakpoints panel my $panel = new_ok( 'Padre::Wx::Panel::Breakpoints', [$main] ); ####### # let's check our subs/methods. ####### my @subs = qw( _add_bp_db _delete_bp_db _setup_db _update_list on_delete_not_breakable_clicked on_delete_project_bp_clicked on_refresh_click on_set_breakpoints_clicked on_show_project_click set_up view_close view_icon view_label view_panel view_start view_stop ); use_ok( 'Padre::Wx::Panel::Breakpoints', @subs ); foreach my $subs (@subs) { can_ok( 'Padre::Wx::Panel::Breakpoints', $subs ); } # done_testing(); 1; __END__ Padre-1.00/t/39_task_nothreads.t0000644000175000017500000000537711712346204015131 0ustar petepete#!/usr/bin/perl # Create and test the task manager use strict; use warnings; use Test::More; use Storable (); use Time::HiRes (); ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 15; } use Padre::Logger; use Padre::Wx (); use Padre::Wx::App (); use Padre::Wx::Main (); use Padre::TaskManager (); use Padre::Task::Addition (); use t::lib::Padre::NullWindow (); use constant TIMER_POSTINIT => Wx::NewId(); use constant TIMER_LASTRESORT => Wx::NewId(); use_ok('Test::NoWarnings'); ###################################################################### # Main Test Sequence # We will need a running application so the main thread can # receive events thrown from the child thread. my $wxapp = Padre::Wx::App->new; isa_ok( $wxapp, 'Padre::Wx::App' ); # We also need a main window of some kind to handle events my $window = t::lib::Padre::NullWindow->new; isa_ok( $window, 't::lib::Padre::NullWindow' ); my $manager = Padre::TaskManager->new( threads => 0, conduit => $window, ); isa_ok( $manager, 'Padre::TaskManager' ); # Schedule the startup timer Wx::Event::EVT_TIMER( $wxapp, TIMER_POSTINIT, \&startup ); my $timer1 = Wx::Timer->new( $wxapp, TIMER_POSTINIT ); # Schedule the failure timeout Wx::Event::EVT_TIMER( $wxapp, TIMER_LASTRESORT, \&timeout ); my $timer2 = Wx::Timer->new( $wxapp, TIMER_LASTRESORT ); # Start the timers $timer1->Start( 1, 1 ); $timer2->Start( 10000, 1 ); ###################################################################### # Main Process # We start with no threads is( scalar( threads->list ), 0, 'No threads' ); # Enter the wx loop # $window->Show(1) if $window; $wxapp->MainLoop; # We end with no threads is( scalar( threads->list ), 0, 'No threads' ); ###################################################################### # Basic Creation sub startup { # Run the startup process ok( $manager->start, '->start ok' ); Time::HiRes::sleep(1); is( scalar( threads->list ), 0, 'Three threads exists' ); # Create the sample task my $addition = Padre::Task::Addition->new( x => 2, y => 3, ); isa_ok( $addition, 'Padre::Task::Addition' ); # Schedule the task (which should trigger it's execution) ok( $manager->schedule($addition), '->schedule ok' ); is( $addition->{prepare}, 1, '->{prepare} is false' ); is( $addition->{run}, 0, '->{run} is false' ); is( $addition->{finish}, 0, '->{finish} is false' ); } sub timeout { # Run the shutdown process $timer1 = undef; $timer2 = undef; ok( $manager->stop, '->stop ok' ); sleep(1); # $window->Show(0) if $window; $wxapp->ExitMainLoop; } Padre-1.00/t/96_help_about.t0000644000175000017500000000317511744002274014240 0ustar petepete#!/usr/bin/perl use strict; use warnings; # Turn on $OUTPUT_AUTOFLUSH $| = 1; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } # plan tests => 20; plan tests => 9; # Migration to FPB } use Test::NoWarnings; use t::lib::Padre; use Padre::Wx; use Padre; use_ok('Padre::Wx::FBP::About'); # Create the IDE my $padre = new_ok('Padre'); my $main = $padre->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); # Create the patch dialog my $dialog = new_ok( 'Padre::Wx::FBP::About', [$main] ); # Check the notebook properties my $notebook = $dialog->notebook; isa_ok( $notebook, 'Wx::Notebook' ); # Check the output properties my $output = $dialog->output; isa_ok( $output, 'Wx::TextCtrl' ); ## Check unicode translated names #SCOPE: { # use utf8; # # is( $dialog->creator->GetLabel, 'Gábor Szabó', 'Check utf8 name for Gabor Szabo' ); # is( $dialog->ahmad_zawawi->GetLabel, 'أحمد محمد زواوي', 'Check utf8 name for Ahmad Zawawi' ); # is( $dialog->jerome_quelin->GetLabel, 'Jérôme Quelin', 'Check utf8 name for Jerome Quelin' ); # is( $dialog->shlomi_fish->GetLabel, 'שלומי פיש', 'Check utf8 name for Shlomi Fish' ); #} # ######## ## let's check our subs/methods. ######## #my @subs = qw( _core_info _information _translation _wx_info new run ); # #use_ok( 'Padre::Wx::Dialog::About', @subs ); # #foreach my $subs (@subs) { # can_ok( 'Padre::Wx::Dialog::About', $subs ); #} # ####### ## let's test for image as it's our centre piece ####### use_ok('Padre::Util'); my $FILENAME = Padre::Util::splash; ok( -f $FILENAME, "Found image $FILENAME" ); Padre-1.00/t/13_findinfiles.t0000644000175000017500000000242011744002274014365 0ustar petepete#!/usr/bin/perl # Tests for Padre::Task::FindInFiles use strict; use warnings; use Test::More tests => 7; use Test::NoWarnings; use File::Spec (); use t::lib::Padre; use Padre::MIME (); use Padre::Project::Perl (); use Padre::Search (); use Padre::Task::FindInFiles (); ###################################################################### # Mainly check support for MIME filtering in Padre::Task::FindInFiles SCOPE: { my $output = []; my $task = Padre::Task::FindInFiles->new( project => Padre::Project::Perl->new( root => File::Spec->curdir, explicit => 1, ), mime => 'application/x-perl', maxsize => 1000000, search => Padre::Search->new( find_term => 'Foo', find_case => 1, ), output => $output, ); isa_ok( $task, 'Padre::Task::FindInFiles' ); # Execute the task in the foreground ok( scalar( $task->prepare ), '->prepare ok' ); ok( scalar( $task->run ), '->run ok' ); ok( scalar( $task->finish ), '->finish ok' ); # Between 10 and 30 Perl files (20 at time of writing) contain # the term Foo. You may need to adjust these numbers later. my $results = scalar @$output; ok( $results > 10, 'Found more than 10 files with Foo in it' ); ok( $results < 30, 'Found less than 30 files with Foo in it' ); } Padre-1.00/t/01_compile.t0000644000175000017500000000277611704756120013540 0ustar petepete#!/usr/bin/perl use 5.008; use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } plan( tests => 37 ); use Test::Script; use Test::NoWarnings; local $^W = 1; use_ok('Wx'); diag( "Tests find Wx: $Wx::VERSION " . Wx::wxVERSION_STRING() ); use_ok('t::lib::Padre'); use_ok('Padre::Util'); use_ok('Padre::Config'); use_ok('Padre::Config::Apply'); use_ok('Padre::Config::Project'); use_ok('Padre::DB::Timeline'); use_ok('Padre::DB'); use_ok('Padre::Project'); use_ok('Padre::Wx'); use_ok('Padre::Wx::HtmlWindow'); use_ok('Padre::Wx::Printout'); use_ok('Padre::Wx::Dialog::PluginManager'); use_ok('Padre::Wx::Dialog::Preferences'); use_ok('Padre::Wx::TextEntryDialog::History'); use_ok('Padre::Wx::ComboBox::History'); use_ok('Padre::Wx::ComboBox::FindTerm'); use_ok('Padre'); use_ok('Padre::Pod2HTML'); use_ok('Padre::Plugin::Devel'); use_ok('Padre::Plugin::My'); # Load all the second-generation modules use_ok('Padre::Task'); use_ok('Padre::TaskWorker'); use_ok('Padre::TaskHandle'); use_ok('Padre::TaskManager'); use_ok('Padre::Role::Task'); # Now load everything else my $loaded = Padre->import(':everything'); ok( $loaded, "Loaded the remaining $loaded classes ok" ); script_compiles('script/padre'); foreach ( qw{ 01_simple_frame.pl 02_label.pl 03_button.pl 04_button_with_event.pl 05_button_with_event_and_message_box.pl 21_progress_bar.pl 22_notebook.pl 30_editor.pl } ) { script_compiles("share/examples/wx/$_"); } Padre-1.00/t/15_locale.t0000644000175000017500000000170211622750100013327 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; use Capture::Tiny qw(capture); BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 7 ); } use Test::NoWarnings; use Test::Exception; use t::lib::Padre; use Padre; # Create the IDE instance my $app = Padre->new; isa_ok( $app, 'Padre' ); my $main = $app->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); # Change locales several times and make sure we don't suffer any # crashes or warnings. # using Capture::Tiny to eliminate a test failure using prove --merge my $res; my ( $stdout, $stderr ) = capture { $res = $main->change_locale('ar') }; # diag $stdout; # diag $stderr; is( $res, undef, '->change_locale(ar)' ); is( $main->change_locale('de'), undef, '->change_locale(de)' ); is( $main->change_locale('en-au'), undef, '->change_locale(en-au)' ); lives_ok { $main->change_locale } '->change_locale'; Padre-1.00/t/07_version.t0000644000175000017500000000077111622750100013563 0ustar petepete#!/usr/bin/perl use 5.006; use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } plan( tests => 4 ); # Search for Padre version use_ok('Padre'); ok( $Padre::VERSION, 'Check Padre module version' ); my $ext_vers = `$^X script/padre --version`; like( $ext_vers, qr/Perl Application Development and Refactoring Environment/, 'Version string text' ); like( $ext_vers, qr/$Padre::VERSION/, 'Version number' ); Padre-1.00/t/12_mime.t0000644000175000017500000000414112146406353013026 0ustar petepete#!/usr/bin/perl # Tests for the Padre::MIME module and the mime types in it use strict; use warnings; use Test::More tests => 758; use Test::NoWarnings; use File::Spec::Functions; use t::lib::Padre; use Padre::MIME; use Padre::Util::SVN; ###################################################################### # Basic checks # Check an known-bad type my $unknown = Padre::MIME->find('foo/bar'); isa_ok( $unknown, 'Padre::MIME' ); is( $unknown->name, 'UNKNOWN', '->name ok' ); # Check all of the created mime types foreach my $type ( sort Padre::MIME->types ) { ok( $type, "$type: Got MIME type" ); my $mime = Padre::MIME->find($type); isa_ok( $mime, 'Padre::MIME' ); is( $mime->type, $type, "$type: ->type ok" ); ok( $mime->name, "$type: ->name ok" ); ok( defined $mime->binary, "$type: ->binary ok" ); SKIP: { skip( 'Binary files are not supported', 1 ) if $mime->binary; ok( $mime->document, "$type: ->document ok" ); } } # Check all known file extensions map to real mime types foreach my $ext ( sort Padre::MIME->exts ) { ok( $ext, "$ext: Got file extension" ); my $type = Padre::MIME->detect( file => "file.$ext", ); ok( $type, "$ext: Got MIME type $type" ); my $mime = Padre::MIME->find($type); isa_ok( $mime, 'Padre::MIME' ); ok( $mime->type, "$ext: Resolved $type to " . $mime->type ); } # Detect the mime type of a sample file SCOPE: { my $file = catfile( 't', '12_mime.t' ); ok( -f $file, "Found test file $file" ); my $type = Padre::MIME->detect( file => $file, ); is( $type, 'application/x-perl', '->detect(file=>perl)' ); } # Detect the mime type using svn metadata SKIP: { skip( "Not an SVN checkout", 3 ) unless -e '.svn' and Padre::Util::SVN::local_svn_ver(); skip( 'svn not in PATH', 3 ) unless File::Which::which('svn'); my $file = catfile( 't', 'perl', 'zerolengthperl' ); ok( -f $file, "Found zero length perl file $file" ); my $type1 = Padre::MIME->detect( file => $file, ); is( $type1, 'text/plain', '->detect(zerolengthsvn)' ); my $type2 = Padre::MIME->detect( file => $file, svn => 1, ); is( $type2, 'application/x-perl', '->detect(zerolengthsvn)' ); } Padre-1.00/t/33_task_chain.t0000644000175000017500000000432611741531315014210 0ustar petepete#!/usr/bin/perl # Start a worker thread from inside another thread # BEGIN { # $Padre::Logger::DEBUG = 1; # $Padre::TaskWorker::DEBUG = 1; # $Padre::TaskWorker::DEBUG = 1; # } use strict; use warnings; use Test::More; ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } use Time::HiRes 'sleep'; use t::lib::Padre; use Padre::Logger; use Padre::TaskWorker (); plan tests => 21; use_ok('Test::NoWarnings'); # Do we start with no threads as expected is( scalar( threads->list ), 0, 'One thread exists' ); ###################################################################### # Single Worker Start and Stop SCOPE: { # Create the master thread my $master = Padre::TaskWorker->new->spawn; isa_ok( $master, 'Padre::TaskWorker' ); is( scalar( threads->list ), 1, 'Found 1 thread' ); ok( $master->thread->is_running, 'Master is_running' ); # Create a single worker my $worker = Padre::TaskWorker->new; isa_ok( $worker, 'Padre::TaskWorker' ); # Start the worker inside the master ok( $master->send_child($worker), '->add ok' ); TRACE("Pausing to allow worker thread startup...") if DEBUG; sleep 0.15; #0.1 was not enough is( scalar( threads->list ), 2, 'Found 2 threads' ); ok( $master->thread->is_running, 'Master is_running' ); ok( !$master->thread->is_joinable, 'Master is not is_joinable' ); ok( !$master->thread->is_detached, 'Master is not is_detached' ); ok( $worker->thread->is_running, 'Worker is_running' ); ok( !$worker->thread->is_joinable, 'Worker is not is_joinable' ); ok( !$worker->thread->is_detached, 'Worker is not is_detached' ); # Shut down the worker but leave the master running ok( $worker->send_stop, '->send_stop ok' ); TRACE("Pausing to allow worker thread shutdown...") if DEBUG; sleep 0.1; ok( $master->thread->is_running, 'Master is_running' ); ok( !$master->thread->is_joinable, 'Master is not is_joinable' ); ok( !$master->thread->is_detached, 'Master is not is_detached' ); # Join the thread $worker->thread->join; ok( !$worker->thread, 'Worker thread has ended' ); } is( scalar( threads->list ), 1, 'Thread is gone' ); Padre-1.00/t/83_autosave.t0000644000175000017500000000605111622750100013726 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More tests => 32; use FindBin qw($Bin); use File::Spec (); use File::Temp (); use Test::NoWarnings; use Padre::Autosave; my $dir = File::Temp::tempdir( CLEANUP => 1 ); my $db_file = File::Spec->catfile( $dir, 'backup.db' ); my $autosave = Padre::Autosave->new( dbfile => $db_file ); my $ts = qr/^\d{10}$/; isa_ok( $autosave, 'Padre::Autosave' ); ok( -e $db_file, 'database file created' ); SCOPE: { my @files = $autosave->list_files; is_deeply( \@files, [], 'no files yet' ); my $revs = $autosave->list_revisions('a.pl'); is_deeply( $revs, [], 'no revisions yet' ); } my @a_pl = ( "Some text\n", "Some text\nsecond line\n", "Some text changed\nsecond line\n", ); SCOPE: { $autosave->save_file( 'a.pl', 'initial', $a_pl[0] ); my @files = $autosave->list_files; is_deeply( \@files, ['a.pl'], 'a.pl in database' ); my $revs = $autosave->list_revisions('a.pl'); is( $revs->[0]->[0], 1, 'list revisions 1' ); like( $revs->[0]->[1], $ts, 'list revisions 2' ); is( $revs->[0]->[2], 'initial', 'list revisions 3' ); } SCOPE: { sleep 1; $autosave->save_file( 'a.pl', 'usersave', $a_pl[1] ); my @files = $autosave->list_files; is_deeply( \@files, ['a.pl'], 'a.pl in database' ); my $revs = $autosave->list_revisions('a.pl'); is( $revs->[0]->[0], 1, 'list revisions 1' ); like( $revs->[0]->[1], $ts, 'list revisions 2' ); is( $revs->[0]->[2], 'initial', 'list revisions 3' ); is( $revs->[1]->[0], 2, 'list revisions 4' ); like( $revs->[1]->[1], $ts, 'list revisions 5' ); is( $revs->[1]->[2], 'usersave', 'list revisions 6' ); } my $buffer_1 = 'buffer://1234'; my @buffer_1 = ( "Text in the unsaved buffer\n", "Text in the unsaved buffer\nwith a second line\n", ); SCOPE: { sleep 1; $autosave->save_file( $buffer_1, 'autosave', $buffer_1[0] ); sleep 1; $autosave->save_file( 'a.pl', 'autosave', $a_pl[2] ); $autosave->save_file( $buffer_1, 'autosave', $buffer_1[1] ); my @files = $autosave->list_files; is_deeply( \@files, [ 'a.pl', $buffer_1 ], 'a.pl and buffer in database' ); my $revs = $autosave->list_revisions('a.pl'); is( $revs->[0]->[0], 1, 'list revisions 1' ); like( $revs->[0]->[1], $ts, 'list revisions 2' ); is( $revs->[0]->[2], 'initial', 'list revisions 3' ); is( $revs->[1]->[0], 2, 'list revisions 4' ); like( $revs->[1]->[1], $ts, 'list revisions 5' ); is( $revs->[1]->[2], 'usersave', 'list revisions 6' ); is( $revs->[2]->[0], 4, 'list revisions 7' ); like( $revs->[2]->[1], $ts, 'list revisions 8' ); is( $revs->[2]->[2], 'autosave', 'list revisions 9' ); $revs = $autosave->list_revisions($buffer_1); is( $revs->[0]->[0], 3, 'list revisions 1' ); like( $revs->[0]->[1], $ts, 'list revisions 2' ); is( $revs->[0]->[2], 'autosave', 'list revisions 3' ); is( $revs->[1]->[0], 5, 'list revisions 4' ); like( $revs->[1]->[1], $ts, 'list revisions 5' ); is( $revs->[1]->[2], 'autosave', 'list revisions 6' ); } # TODO do we really need the 'initial' type ? # TODO the user saves the file that is in the buffer # TODO crash ? how to recognize unsaved files Padre-1.00/t/32_task_worker.t0000644000175000017500000000454411741531315014440 0ustar petepete#!/usr/bin/perl # Spawn and then shut down the task worker object. # Done in similar style to the task master to help encourage # implementation similarity in the future. # BEGIN { # $Padre::Logger::DEBUG = 1; # } use strict; use warnings; use Test::More; ###################################################################### # This test requires a DISPLAY to run BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 22; } use Test::NoWarnings; use t::lib::Padre; use Padre::TaskWorker (); use Padre::Logger; # Do we start with no threads as expected is( scalar( threads->list ), 0, 'One thread exists' ); ###################################################################### # Simplistic Start and Stop SCOPE: { # Create the master thread my $thread = Padre::TaskWorker->new->spawn; isa_ok( $thread, 'Padre::TaskWorker' ); is( $thread->wid, 1, '->wid ok' ); isa_ok( $thread->queue, 'Padre::TaskQueue' ); isa_ok( $thread->thread, 'threads' ); ok( !$thread->is_thread, '->is_thread is false' ); my $tid = $thread->thread->tid; ok( $tid, "Got thread id $tid" ); # Does the threads module agree it was created my @threads = threads->list; is( scalar(@threads), 1, 'Found one thread' ); is( $threads[0]->tid, $tid, 'Found the expected thread id' ); # Initially, the thread should be running ok( $thread->thread->is_running, 'Thread is_running' ); ok( !$thread->thread->is_joinable, 'Thread is not is_joinable' ); ok( !$thread->thread->is_detached, 'Thread is not is_detached' ); # It should stay running TRACE("Pausing to allow clean thread startup...") if DEBUG; sleep 0.1; ok( $thread->thread->is_running, 'Thread is_running' ); ok( !$thread->thread->is_joinable, 'Thread is not is_joinable' ); ok( !$thread->thread->is_detached, 'Thread is not is_detached' ); # Instruct the master to stop, and give it a brief time to do so. ok( $thread->send_stop, '->send_stop ok' ); TRACE("Pausing to allow clean thread stop...") if DEBUG; sleep 1; ok( !$thread->thread->is_running, 'Thread is not is_running' ); ok( $thread->thread->is_joinable, 'Thread is_joinable' ); ok( !$thread->thread->is_detached, 'Thread is not is_detached' ); # Join the thread $thread->thread->join; ok( !$thread->thread, '->thread no longer exists' ); } is( scalar( threads->list ), 0, 'One thread exists' ); Padre-1.00/t/41_editor.t0000644000175000017500000000422511744002274013367 0ustar petepete#!/usr/bin/perl # Tests for Padre::Wx::Editor use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 28 ); } use Test::NoWarnings; use t::lib::Padre; use Padre; # Create an IDE with an unused editor my $padre = Padre->new; isa_ok( $padre, 'Padre' ); my $main = $padre->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); $main->setup_editor; my $editor = $main->current->editor; isa_ok( $editor, 'Padre::Wx::Editor' ); ###################################################################### # Introspection and Search SCOPE: { # Test ->position is( $editor->position(), 0, '->position()' ); is( $editor->position(undef), 0, '->position(undef)' ); is( $editor->position(0), 0, '->position(0)' ); is( $editor->position(-1), 0, '->position(-1)' ); is( $editor->position(1), 0, '->position(1)' ); # Test ->line is( $editor->line(), 0, '->line()' ); is( $editor->line(undef), 0, '->line(undef)' ); is( $editor->line(0), 0, '->line(0)' ); is( $editor->line(-1), 0, '->line(-1)' ); is( $editor->line(1), 0, '->line(1)' ); # Test ->find_line $editor->SetText("A\nB\nC\nA\nE\nF\nA\nH"); is( $editor->find_line( -1 => 'A' ), 0, '->find_line(0,A)' ); is( $editor->find_line( 0 => 'A' ), 0, '->find_line(0,A)' ); is( $editor->find_line( 1 => 'A' ), 0, '->find_line(0,A)' ); is( $editor->find_line( 2 => 'A' ), 3, '->find_line(0,A)' ); is( $editor->find_line( 3 => 'A' ), 3, '->find_line(0,A)' ); is( $editor->find_line( 4 => 'A' ), 3, '->find_line(0,A)' ); is( $editor->find_line( 5 => 'A' ), 6, '->find_line(0,A)' ); is( $editor->find_line( 6 => 'A' ), 6, '->find_line(0,A)' ); is( $editor->find_line( 7 => 'A' ), 6, '->find_line(0,A)' ); is( $editor->find_line( 8 => 'A' ), 6, '->find_line(0,A)' ); # Test ->GetTextAt $editor->SetText("\n\n\nsub foo {\n\nsub foo {"); is( $editor->GetTextAt(1), "\n", '->GetTextAt(0)' ); is( $editor->GetTextAt(2), "\n", '->GetTextAt(1)' ); is( $editor->GetTextAt(3), 's', '->GetTextAt(2)' ); # Test ->find_function is( $editor->find_function('foo'), 3, '->find_function(foo)' ); } Padre-1.00/t/10_delta.t0000644000175000017500000001136711744002274013173 0ustar petepete#!/usr/bin/perl # Tests for the Padre::Delta module use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 14 ); } use Test::NoWarnings; use t::lib::Padre; use Padre; use Padre::Delta; ###################################################################### # Null Delta SCOPE: { my $null = Padre::Delta->new; isa_ok( $null, 'Padre::Delta' ); ok( $null->null, '->null ok' ); } ###################################################################### # Test the tidy method SCOPE: { my $delta = Padre::Delta->new( 'position', [ 1, 2, 'foo' ], [ 8, 9, 'bar' ], [ 6, 3, '' ], )->tidy; isa_ok( $delta, 'Padre::Delta' ); is_deeply( $delta->{targets}, [ [ 8, 9, 'bar' ], [ 3, 6, '' ], [ 1, 2, 'foo' ], ], 'Targets are tidied correctly', ); } ###################################################################### # Creation from typical Algorithm::Diff output SCOPE: { my $delta = Padre::Delta->from_diff( [ [ '-', 8, 'use 5.008;' ], [ '+', 8, 'use 5.008005;' ], [ '+', 9, 'use utf8;' ], ], [ [ '-', 36, "\t\tWx::gettext(\"Set Bookmark\") . \":\"," ], [ '+', 37, "\t\tWx::gettext(\"Set Bookmark:\")," ], ], [ [ '-', 36, "\t\tWx::gettext(\"Existing Bookmark\") . \":\"," ], [ '+', 37, "\t\tWx::gettext(\"Existing Bookmark:\")," ], ], ); isa_ok( $delta, 'Padre::Delta' ); ok( !$delta->null, '->null false' ); } ###################################################################### # Functional Test # Set up for the functional tests my $padre = Padre->new; isa_ok( $padre, 'Padre' ); my $main = $padre->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); $main->setup_editor; my $editor = $main->current->editor; isa_ok( $editor, 'Padre::Wx::Editor' ); my $FROM1 = <<'END_TEXT'; a b c d e f g h i j k END_TEXT my $TO1 = <<'END_TEXT'; a c d e f2 f3 g h i i2 j k END_TEXT # Create the FROM-->TO delta and see if it actually changes FROM to TO SCOPE: { # Create the delta my $delta = Padre::Delta->from_scalars( \$FROM1 => \$TO1 ); isa_ok( $delta, 'Padre::Delta' ); # Apply the delta to the FROM text $editor->SetText($FROM1); $delta->to_editor($editor); # Do we get the TO text my $result = $editor->GetText; is( $result, $TO1, 'Delta applied ok' ); } ###################################################################### # Regression Test my $FROM2 = <<'END_TEXT'; my $close_button = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); $close_button->SetDefault; my $bSizer471 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer471->Add( $self->{m_staticText6511}, 0, Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); my $bSizer4711 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer4711->Add( $self->{m_staticText65111}, 0, Wx::ALL, 5 ); $bSizer4711->Add( $self->{creator}, 0, Wx::ALL, 5 ); my $bSizer81 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer81->Add( $self->{m_staticline271}, 0, Wx::EXPAND | Wx::ALL, 5 ); $bSizer81->Add( $self->{m_staticText34}, 0, Wx::ALL, 5 ); $bSizer81->Add( $self->{m_staticText67}, 0, Wx::ALL, 5 ); $bSizer81->Add( $self->{m_staticText35}, 0, Wx::ALL, 5 ); my $bSizer17 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer17->Add( $self->{splash}, 0, Wx::ALIGN_CENTER | Wx::TOP, 5 ); $bSizer17->Add( $bSizer471, 0, Wx::EXPAND, 5 ); $bSizer17->Add( $bSizer4711, 0, Wx::EXPAND, 5 ); $bSizer17->Add( $bSizer81, 1, Wx::EXPAND, 5 ); $self->{padre}->SetSizerAndFit($bSizer17); $self->{padre}->Layout; END_TEXT my $TO2 = <<'END_TEXT'; my $close_button = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); $close_button->SetDefault; my $bSizer81 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer81->Add( $self->{m_staticText34}, 0, Wx::ALL, 5 ); $bSizer81->Add( $self->{m_staticText67}, 0, Wx::ALL, 5 ); $bSizer81->Add( $self->{m_staticText35}, 0, Wx::ALL, 5 ); my $bSizer17 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer17->Add( $self->{splash}, 0, Wx::ALIGN_CENTER | Wx::TOP, 5 ); $bSizer17->Add( $self->{m_staticText6511}, 0, Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); $bSizer17->Add( $self->{creator}, 0, Wx::ALL, 5 ); $bSizer17->Add( $self->{m_staticline271}, 0, Wx::EXPAND | Wx::ALL, 0 ); $bSizer17->Add( $bSizer81, 1, Wx::EXPAND, 5 ); $self->{padre}->SetSizerAndFit($bSizer17); $self->{padre}->Layout; END_TEXT # Create the FROM-->TO delta and see if it actually changes FROM to TO SCOPE: { # Create the delta my $delta = Padre::Delta->from_scalars( \$FROM2 => \$TO2 ); isa_ok( $delta, 'Padre::Delta' ); # Apply the delta to the FROM text $editor->SetText($FROM2); $delta->to_editor($editor); # Do we get the TO text my $result = $editor->GetText; is( $result, $TO2, 'Delta applied correctly' ); } Padre-1.00/t/03_db.t0000644000175000017500000000165211722571623012472 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 6; } use Test::NoWarnings; use t::lib::Padre; use Padre::DB (); SCOPE: { my @files = Padre::DB::History->recent('files'); is_deeply \@files, [], 'no files yet'; Padre::DB::History->create( type => 'files', name => 'Test.pm', ); Padre::DB::History->create( type => 'files', name => 'Test2.pm', ); @files = Padre::DB::History->recent('files'); is_deeply \@files, [ 'Test2.pm', 'Test.pm' ], 'files'; # test delete_recent @files = Padre::DB::History->recent('files'); is_deeply \@files, [ 'Test2.pm', 'Test.pm' ], 'files still remain after delete_recent pod'; ok( Padre::DB::History->delete_where( 'type = ?', 'files' ) ); @files = Padre::DB::History->recent('files'); is_deeply \@files, [], 'no files after delete_recent files'; } 1; Padre-1.00/t/43_frame_html.t0000644000175000017500000000107311712346204014216 0ustar petepete#!/usr/bin/perl # Simple test script for testing HTML dialogs use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 1; } use t::lib::Padre; use Padre::Wx::Frame::HTML (); my $html = <<'END_HTML'; Hello World! END_HTML # Create a new dialog object, but don't show it my $dialog = Padre::Wx::Frame::HTML->new( title => 'Test HTML Dialog', size => [ 200, 200 ], html => $html, ); isa_ok( $dialog, 'Padre::Wx::Frame::HTML' ); Padre-1.00/t/76_preferences.t0000644000175000017500000000277312076607403014424 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 10; } use Test::NoWarnings; use t::lib::Padre; use Padre::Wx; use Padre; use_ok('Padre::Wx::Dialog::Preferences'); # Create the IDE my $padre = new_ok('Padre'); my $main = $padre->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); # Create the Preferences 2.0 dialog my $dialog = new_ok( 'Padre::Wx::Dialog::Preferences', [$main] ); # Check the listview properties my $treebook = $dialog->treebook; isa_ok( $treebook, 'Wx::Treebook' ); #my $listview = $treebook->GetListView; #isa_ok( $listview, 'Wx::ListView' ); #is( $listview->, 8, 'Found siz items' ); #is( $listview->GetColumnCount, 0, 'Found one column' ); #is( $listview->GetColumnWidth(-1), 100, 'Got column width' ); # Load the dialog from configuration my $config = $main->config; isa_ok( $config, 'Padre::Config' ); ok( $dialog->config_load($config), '->load ok' ); # The diff (extracted from dialog) to the config should be null, # except maybe for a potential default font value. This is because # SetSelectedFont() doesn't work on wxNullFont. my $diff = $dialog->config_diff($config); if ($diff) { is scalar keys %$diff, 1, 'only one key defined in the diff' or diag explain $diff; ok exists $diff->{editor_font}, 'only key defined is "editor_font"'; } else { ok !$diff, 'null font loaded, config_diff() returned nothing'; ok 1, 'placebo to stick to the plan'; } Padre-1.00/t/11_svn.t0000644000175000017500000000155512146406353012712 0ustar petepete#!/usr/bin/perl # Tests for the Padre::MIME module and the mime types in it use strict; use warnings; use Test::More; BEGIN { if ( -d '.svn' || -d '../.svn' ) { plan tests => 4; } else { plan skip_all => 'Not in an SVN checkout'; } } use Test::NoWarnings; use File::Spec::Functions ':ALL'; use t::lib::Padre; use Padre::SVN; use Padre::Util::SVN; SKIP: { skip( "svn version 1.7.x is not supported by Padre::SVN", 3 ) if Padre::Util::SVN::local_svn_ver(); skip( 'svn not in PATH', 3 ) unless File::Which::which('svn'); my $t = catfile( 't', '11_svn.t' ); ok( -f $t, "Found file $t" ); # Find the property file my $file = Padre::SVN::find_props($t); ok( -f $file, "Found property file $file" ); # Parse the property file my $hash = Padre::SVN::parse_props($file); is_deeply( $hash, { 'svn:eol-style' => 'LF' }, 'Found expected properties', ); } Padre-1.00/t/08_style.t0000644000175000017500000000365411644250172013252 0ustar petepete#!/usr/bin/perl # Test the style subsystem use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } use Test::NoWarnings; use File::Spec::Functions ':ALL'; use t::lib::Padre; plan( tests => 21 ); my $dir = catdir( 'share', 'themes' ); ok( -d $dir, "Found theme directory $dir" ); my @styles = qw{ default night notepad ultraedit solarized_dark solarized_light }; ###################################################################### # Tests for the Style 2.0 API use_ok('Padre::Wx::Theme'); SCOPE: { # Search for the list of styles my $files = Padre::Wx::Theme->files; is( ref($files), 'HASH', 'Found style hash' ); ok( $files->{default}, 'The default style is defined' ); ok( -f $files->{default}, 'The default style exists' ); # Find the file by name my $file = Padre::Wx::Theme->file('default'); ok( $file, 'Found file by name' ); ok( -f $file, 'File by name exists' ); # Load the default style my $style = Padre::Wx::Theme->find('default'); isa_ok( $style, 'Padre::Wx::Theme' ); ok( scalar( @{ $style->mime } ), 'Found a list of methods' ); # Find the localised name for a style my $label = Padre::Wx::Theme->label( 'default', 'en-gb' ); is( $label, 'Padre', 'Got expected label for default style' ); # Find the localised name for all available styles my $labels = Padre::Wx::Theme->labels('de'); is( ref($labels), 'HASH', '->labels returns a HASH' ); is( $labels->{default}, 'Padre', '->labels contains expected default' ); is( $labels->{night}, 'Nacht', '->labels contains translated string' ); } ###################################################################### # Make sure all style files load my $files = Padre::Wx::Theme->files; foreach my $name ( sort keys %$files ) { my $style = Padre::Wx::Theme->find($name); isa_ok( $style, 'Padre::Wx::Theme', "Style '$name' loads correctly" ); } Padre-1.00/t/50_browser.t0000644000175000017500000000255111622750100013555 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; use Padre::Constant; BEGIN { require Win32 if Padre::Constant::WIN32; unless ( $ENV{DISPLAY} or Padre::Constant::WIN32 ) { plan skip_all => 'Needs DISPLAY'; exit 0; } if ( Padre::Constant::WIN32 ? Win32::IsAdminUser() : !$< ) { plan skip_all => 'Cannot run as root'; exit 0; } } plan tests => 14; use Test::NoWarnings; use File::Spec::Functions qw( catfile ); use File::Temp (); use URI; BEGIN { $ENV{PADRE_HOME} = File::Temp::tempdir( CLEANUP => 1 ); } use_ok('Padre::Browser'); use_ok('Padre::Task::Browser'); use_ok('Padre::Browser::Document'); my $db = Padre::Browser->new(); ok( $db, 'instance Padre::Browser' ); my $doc = Padre::Browser::Document->load( catfile( 'lib', 'Padre', 'Browser.pm' ) ); isa_ok( $doc, 'Padre::Browser::Document' ); ok( $doc->mimetype eq 'application/x-perl', 'Mimetype is sane' ); my $docs = $db->docs($doc); isa_ok( $docs, 'Padre::Browser::Document' ); my $tm = $db->resolve( URI->new('perldoc:Test::More') ); isa_ok( $tm, 'Padre::Browser::Document' ); ok( $tm->mimetype eq 'application/x-pod', 'Resolve from uri' ); cmp_ok( $tm->title, 'eq', 'Test::More', 'Doc title discovered' ); my $view = $db->browse($tm); isa_ok( $view, 'Padre::Browser::Document' ); ok( $view->mimetype eq 'text/xhtml', 'Got html view' ); cmp_ok( $view->title, 'eq', 'Test::More', 'Title' ); Padre-1.00/t/74_history_combobox.t0000644000175000017500000000264011672246740015507 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 7; } use Test::NoWarnings; use t::lib::Padre; use Test::MockObject; use Padre::Wx; # Startup my $mock_history_combobox = Test::MockObject->new(); $mock_history_combobox->set_isa('Wx::ComboBox'); use_ok('Padre::Wx::ComboBox::History'); SCOPE: { # Check item added to history when not already found # GIVEN $mock_history_combobox->set_always( 'FindString', Wx::wxNOT_FOUND ); $mock_history_combobox->set_always( 'GetValue', 'foo' ); $mock_history_combobox->{type} = 'test1'; # WHEN my $value = Padre::Wx::ComboBox::History::SaveValue($mock_history_combobox); # THEN is( $value, 'foo', "SaveValue returned correct value" ); my @history = Padre::DB::History->recent('test1'); is( scalar @history, 1, "One item in history list" ); is( $history[0], 'foo', "Correct value in history" ); } SCOPE: { # Check item not added to history when already exists # GIVEN $mock_history_combobox->set_always( 'FindString', 0 ); $mock_history_combobox->{type} = 'test2'; # WHEN my $value = Padre::Wx::ComboBox::History::SaveValue($mock_history_combobox); # THEN is( $value, 'foo', "SaveValue returned correct value" ); my @history = Padre::DB::History->recent('test2'); is( scalar @history, 0, "Item not recorded in history" ); } 1; Padre-1.00/t/perl/0000755000175000017500000000000012237340741012351 5ustar petepetePadre-1.00/t/perl/syntax.t0000644000175000017500000001463511647204622014076 0ustar petepete#!/usr/bin/perl # Checks that errors and warnings emitted by the Perl syntax highlighting # task have the correct line numbers. use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => $] <= 5.008009 ? 102 : 112 ); } use t::lib::Padre; use Storable (); use File::HomeDir (); use Padre::Document::Perl::Syntax (); # This should only be used to skip dependencies on Padre classes # while testing Padre::Document::Perl::Syntax $ENV{PADRE_IS_TEST} = 1; ###################################################################### # Trivial Tests # Check the null case my $null = execute(''); isa_ok( $null, 'Padre::Task::Syntax' ); is_deeply( $null->{model}, [], 'Null syntax returns null model' ); # A simple, correct, one line script my $hello = execute( <<'END_PERL' ); #!/usr/bin/perl print "Hello World!\n"; END_PERL is_deeply( $null->{model}, [], 'Trivial script returns null model' ); # A simple, correct, one line package my $package = execute( <<'END_PERL' ); package Foo; END_PERL is_deeply( $null->{model}, [], 'Trivial module returns null model' ); ###################################################################### # Trivially broken three line script SCOPE: { my $script = execute( <<'END_PERL' ); #!/usr/bin/perl print( END_PERL is_model_ok( model => $script->{model}, line => 3, message => 'syntax error, at EOF', type => 'F', test_name => 'Trivially broken three line script', ); } ###################################################################### # Trivially broken package statement, and variants SKIP: { skip 'Trivially broken package statement is perfectly valid on Perl <= 5.8.9', 4 if $] <= 5.008009; my $module = execute('package'); is_model_ok( model => $module->{model}, line => 1, message => 'syntax error, at EOF', type => 'F', test_name => 'Trivially broken package statement', ); } SKIP: { skip 'Trivially broken package statement is perfectly valid on Perl <= 5.8.9', 4 if $] <= 5.008009; my $module = execute("package;\n"); is_model_ok( model => $module->{model}, line => 1, message => 'syntax error, near "package;"', type => 'F', test_name => 'Trivially broken package statement', ); } ###################################################################### # Nth line error in package, and variants SCOPE: { my $module = execute( <<'END_PERL' ); package Foo; print( END_PERL is_model_ok( model => $module->{model}, line => 4, message => 'syntax error, at EOF', type => 'F', test_name => 'Error at the nth line of a module', ); } # With explicit windows newlines my $win32 = "package Foo;\cM\cJ\cM\cJprint(\cM\cJ\cM\cJ"; SCOPE: { my $module = execute($win32); is_model_ok( model => $module->{model}, line => 4, message => 'syntax error, at EOF', type => 'F', test_name => 'Error at the nth line of a module', ); } # UTF8 upgraded with windows newlines SCOPE: { use utf8; utf8::upgrade($win32); my $module = execute($win32); is_model_ok( model => $module->{model}, line => 4, message => 'syntax error, at EOF', type => 'F', test_name => 'Error at the nth line of a module', ); no utf8; } # Ticket 1136: The syntax checker often marks the wrong line in a package SCOPE: { my $module = execute( <<'END_PERL' ); package TestClass; use strict; lala; #error END_PERL is_model_ok( model => $module->{model}, line => 3, message => 'Bareword "lala" not allowed while "strict subs" in use', type => 'F', test_name => 'The syntax checker often marks the wrong line in a package', ); } # Syntax check off/on pragma block SCOPE: { my $module = execute( <<'END_PERL' ); use strict; ## no padre_syntax_check use Faulty::Module; # error ## use padre_syntax_check END_PERL is_deeply( $module->{model}, [], 'Syntax check off/on pragma' ); } # Syntax check off/on pragma block and then error SCOPE: { my $module = execute( <<'END_PERL' ); use strict; ## no padre_syntax_check use Faulty::Module; # error ## use padre_syntax_check lala; # error END_PERL is_model_ok( model => $module->{model}, line => 3, message => q{Bareword "lala" not allowed while "strict subs" in use}, type => 'F', test_name => 'Syntax check off/on pragma block and then error', ); } # Syntax check off pragma block SCOPE: { my $module = execute( <<'END_PERL' ); use strict; ## no padre_syntax_check use Faulty::Module; # error END_PERL is_deeply( $module->{model}, [], 'Syntax check off pragma' ); } # Syntax check off pragma misspelled SCOPE: { my $module = execute( <<'END_PERL' ); use strict; use warnings; ## no padre_syntax_checker lala; # error END_PERL is_model_ok( model => $module->{model}, line => 4, message => q{Bareword "lala" not allowed while "strict subs" in use}, type => 'F', test_name => 'Syntax check off pragma misspelled', ); } ###################################################################### # Support Functions sub execute { # Create a Padre document for the code my $document = Padre::Document::Perl::Fake->new( text => $_[0], ); isa_ok( $document, 'Padre::Document::Perl' ); # Create the task my $task = Padre::Document::Perl::Syntax->new( document => $document, ); isa_ok( $task, 'Padre::Document::Perl::Syntax' ); ok( $task->prepare, '->prepare ok' ); # Push through storable to emulate being sent to a worker thread $task = Storable::dclone($task); ok( $task->run, '->run ok' ); # Clone again to emulate going back $task = Storable::dclone($task); ok( $task->finish, '->finish ok' ); return $task; } sub is_model_ok { my %arg = @_; my $issues = $arg{model}->{issues}; is( $issues->[0]->{message}, $arg{message}, "message match in '$arg{test_name}'" ); is( scalar @$issues, 1, "model has only one message in '$arg{test_name}'" ); is( $issues->[0]->{line}, $arg{line}, "line match in '$arg{test_name}'" ); is( $issues->[0]->{type}, $arg{type}, "type match in '$arg{test_name}'" ); } CLASS: { package Padre::Document::Perl::Fake; use strict; use base 'Padre::Document::Perl'; sub new { my $class = shift; my $self = bless {@_}, $class; return $self; } sub text_get { $_[0]->{text}; } sub project_dir { File::HomeDir->my_documents; } sub filename { return undef; } 1; } Padre-1.00/t/perl/project.t0000644000175000017500000000052411647204622014206 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More tests => 2; use Padre::Project::Perl (); # Locate the test project directory my $root = File::Spec->catdir( 't', 'collection', 'Config-Tiny' ); ok( -d $root, 'Test project exists' ); # Create the project object my $project = new_ok( 'Padre::Project::Perl' => [ root => $root ] ); Padre-1.00/t/perl/starter.t0000644000175000017500000000270112030736255014222 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More tests => 8; use Test::NoWarnings; use Padre::Document::Perl::Starter (); use constant { Starter => 'Padre::Document::Perl::Starter', Style => 'Padre::Document::Perl::Starter::Style', }; ###################################################################### # Constructor SCOPE: { my $starter = new_ok(Starter); isa_ok( $starter->style, Style ); } ###################################################################### # Simple Perl files with default settings SCOPE: { my $starter = new_ok(Starter); my $script = $starter->generate_script; is( $script, <<'END_PERL', '->generate_script(default) ok' ); #!/usr/bin/perl use strict; use warnings; END_PERL my $module = $starter->generate_module( module => 'Foo::Bar' ); is( $module, <<'END_PERL', '->generate_module(default) ok' ); package Foo::Bar; use strict; use warnings; our $VERSION = '0.01'; sub new { my $class = shift; my $self = bless { @_ }, $class; return $self; } 1; END_PERL my $compile = $starter->generate_test_compile( module => 'Foo::Bar' ); is( $compile, <<'END_PERL', '=>generate_test_compile(default) ok' ); #!/usr/bin/perl use strict; use warnings; use Test::More tests => 1; require_ok('Foo::Bar'); END_PERL my $test = $starter->generate_test; is( $test, <<'END_PERL', '=>generate_test ok' ); #!/usr/bin/perl use strict; use warnings; use Test::More tests => 1; ok( 0, 'Dummy Test' ); END_PERL } Padre-1.00/t/perl/zerolengthperl0000644000175000017500000000410411710510723015331 0ustar petepete#!/usr/bin/perl # Tests the logic for extracting the list of functions in a program use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 9 ); } use t::lib::Padre; use Padre::Document::Perl::FunctionList (); # Sample code we will be parsing my $code = <<'END_PERL'; package Foo; sub _bar { } sub foo1 {} sub foo3 { } sub foo2{} sub foo4 { } sub foo5 :tag { } *backwards = sub { }; *_backwards = \&backwards; END_PERL ###################################################################### # Basic Parsing SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Perl::FunctionList', [ text => $code, ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ _bar foo1 foo3 foo2 foo4 foo5 backwards _backwards } ], 'Found expected functions', ); } ###################################################################### # Alphabetical Ordering SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Perl::FunctionList', [ text => $code, order => 'alphabetical', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ backwards _backwards _bar foo1 foo2 foo3 foo4 foo5 } ], 'Found expected functions', ); } ###################################################################### # Alphabetical Ordering (Private Last) SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Perl::FunctionList', [ text => $code, order => 'alphabetical_private_last', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ backwards foo1 foo2 foo3 foo4 foo5 _backwards _bar } ], 'Found expected functions', ); } Padre-1.00/t/perl/project_temp.t0000644000175000017500000000236011647204622015233 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More tests => 11; use Padre::Project::Perl (); use Padre::Project::Perl::Temp (); ###################################################################### # Simple Cases SCOPE: { my $string = <<'END_PERL'; package Foo; use strict; sub dummy { 2 } 1; END_PERL my $null = new_ok('Padre::Project::Perl::Temp'); my $simple = new_ok( 'Padre::Project::Perl::Temp' => [ files => { 'lib/Foo.pm' => $string, }, ] ); ok( $simple->run, '->run ok' ); ok( $simple->temp, '->{temp} ok' ); ok( -d $simple->temp, "->{temp} exists at $simple->{temp}" ); ok( -f File::Spec->catfile( $simple->temp, 'lib', 'Foo.pm', ), 'Created package Foo ok', ); } ###################################################################### # Project-Based Case SCOPE: { my $root = File::Spec->catdir(qw{ t collection Config-Tiny}); my $project = new_ok( 'Padre::Project::Perl' => [ root => $root, ] ); my $temp = new_ok( 'Padre::Project::Perl::Temp' => [ project => $project, files => {}, ] ); ok( -d $temp->temp, '->temp exists' ); ok( !ref $temp->{project}, '->{project} is flattened' ); ok( -d $temp->{project}, '->{project} directory exists' ); } Padre-1.00/t/perl/functionlist.t0000644000175000017500000000410411647204622015257 0ustar petepete#!/usr/bin/perl # Tests the logic for extracting the list of functions in a program use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 9 ); } use t::lib::Padre; use Padre::Document::Perl::FunctionList (); # Sample code we will be parsing my $code = <<'END_PERL'; package Foo; sub _bar { } sub foo1 {} sub foo3 { } sub foo2{} sub foo4 { } sub foo5 :tag { } *backwards = sub { }; *_backwards = \&backwards; END_PERL ###################################################################### # Basic Parsing SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Perl::FunctionList', [ text => $code, ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ _bar foo1 foo3 foo2 foo4 foo5 backwards _backwards } ], 'Found expected functions', ); } ###################################################################### # Alphabetical Ordering SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Perl::FunctionList', [ text => $code, order => 'alphabetical', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ backwards _backwards _bar foo1 foo2 foo3 foo4 foo5 } ], 'Found expected functions', ); } ###################################################################### # Alphabetical Ordering (Private Last) SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Perl::FunctionList', [ text => $code, order => 'alphabetical_private_last', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ backwards foo1 foo2 foo3 foo4 foo5 _backwards _bar } ], 'Found expected functions', ); } Padre-1.00/t/perl/general.t0000644000175000017500000002166511647204622014166 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 40 ); } use Test::NoWarnings; use File::Spec::Functions ':ALL'; # Padre can move the cwd around, so save in the location of the # test files early before that happens my $files = rel2abs( catdir( 't', 'files' ) ); use t::lib::Padre; use t::lib::Padre::Editor; use Padre; use Padre::Document; use Padre::PPI; use PPI::Document; # Create the object so that ide works my $app = Padre->new; isa_ok( $app, 'Padre' ); SCOPE: { my $editor = t::lib::Padre::Editor->new; my $file = catfile( $files, 'missing_brace_1.pl' ); my $doc = Padre::Document->new( filename => $file, ); $doc->set_editor($editor); $editor->set_document($doc); sub is_row_ok { my %arg = @_; my $row = $arg{row}; like( $row->{message}, $arg{message}, "message regex match in '$arg{test_name}'" ); is( $row->{line}, $arg{line}, "line match in '$arg{test_name}'" ); is( $row->{type}, $arg{type}, "type match in '$arg{test_name}'" ); } isa_ok( $doc, 'Padre::Document' ); isa_ok( $doc, 'Padre::Document::Perl' ); is( $doc->filename, $file, 'filename' ); } # first block of tests for Padre::PPI::find_variable_declaration # and ...find_token_at_location SCOPE: { my $infile = catfile( $files, 'find_variable_declaration_1.pm' ); my $text = do { local $/ = undef; open my $fh, '<', $infile or die $!; my $rv = <$fh>; close $fh; $rv; }; my $doc = PPI::Document->new( \$text ); isa_ok( $doc, "PPI::Document" ); $doc->index_locations; my $elem = find_var_simple( $doc, '$n_threads_to_kill', 137 ); isa_ok( $elem, 'PPI::Token::Symbol' ); $doc->flush_locations(); # TODO: This shouldn't have to be here. But remove it and things break -- Adam? #my $doc2 = PPI::Document->new( \$text ); my $cmp_elem = Padre::PPI::find_token_at_location( $doc, [ 137, 26, 26 ] ); ok( $elem == $cmp_elem, 'find_token_at_location returns the same token as a manual search' ); my $declaration; $doc->find_first( sub { return 0 if not $_[1]->isa('PPI::Statement::Variable') or not $_[1]->location->[0] == 131; $declaration = $_[1]; return 1; } ); isa_ok( $declaration, 'PPI::Statement::Variable' ); $doc->flush_locations(); # TODO: This shouldn't have to be here. But remove it and things break -- Adam? my $cmp_declaration = Padre::PPI::find_token_at_location( $doc, [ 131, 2, 9 ] ); # They're not really the same. The manual search finds the entire Statement node. Hence the first_element. ok( $declaration->first_element() == $cmp_declaration, 'find_token_at_location returns the same token as a manual search' ); my $result_declaration = Padre::PPI::find_variable_declaration($elem); ok( $declaration == $result_declaration, 'Correct declaration found' ); } # second block of tests for Padre::PPI::find_variable_declaration # and ...find_token_at_location SCOPE: { my $infile = catfile( $files, 'find_variable_declaration_2.pm' ); my $text = do { local $/ = undef; open my $fh, '<', $infile or die $!; my $rv = <$fh>; close $fh; $rv; }; my $doc = PPI::Document->new( \$text ); isa_ok( $doc, "PPI::Document" ); $doc->index_locations; # Test foreach my $i my $elem = find_var_simple( $doc, '$i', 8 ); # search $i in line 8 isa_ok( $elem, 'PPI::Token::Symbol' ); $doc->flush_locations(); # TODO: This shouldn't have to be here. But remove it and things break -- Adam? my $cmp_elem = Padre::PPI::find_token_at_location( $doc, [ 8, 5, 5 ] ); ok( $elem == $cmp_elem, 'find_token_at_location returns the same token as a manual search' ); $doc->flush_locations(); # TODO: This shouldn't have to be here. But remove it and things break -- Adam? my $declaration = Padre::PPI::find_token_at_location( $doc, [ 7, 14, 14 ] ); isa_ok( $declaration, 'PPI::Token::Symbol' ); my $prev_sibling = $declaration->sprevious_sibling(); ok( ( defined($prev_sibling) and $prev_sibling->isa('PPI::Token::Word') and $prev_sibling->content() =~ /^(?:my|our)$/ ), "Find variable declaration in foreach" ); $doc->flush_locations(); # TODO: This shouldn't have to be here. But remove it and things break -- Adam? my $result_declaration = Padre::PPI::find_variable_declaration($elem); ok( $declaration == $result_declaration, 'Correct declaration found' ); # Now the same for "for our $k" $elem = find_var_simple( $doc, '$k', 11 ); # search $k in line 11 isa_ok( $elem, 'PPI::Token::Symbol' ); # TODO: This shouldn't have to be here. But remove it and things break -- Adam? $doc->flush_locations(); $cmp_elem = Padre::PPI::find_token_at_location( $doc, [ 11, 5, 5 ] ); ok( $elem == $cmp_elem, 'find_token_at_location returns the same token as a manual search' ); # TODO: This shouldn't have to be here. But remove it and things break -- Adam? $doc->flush_locations(); $declaration = Padre::PPI::find_token_at_location( $doc, [ 10, 11, 11 ] ); isa_ok( $declaration, 'PPI::Token::Symbol' ); $prev_sibling = $declaration->sprevious_sibling(); ok( ( defined($prev_sibling) and $prev_sibling->isa('PPI::Token::Word') and $prev_sibling->content() =~ /^(?:my|our)$/ ), "Find variable declaration in foreach" ); # TODO: This shouldn't have to be here. But remove it and things break -- Adam? $doc->flush_locations(); SKIP: { skip( "PPI parses 'for our \$foo (...){}' badly", 1 ); $result_declaration = Padre::PPI::find_variable_declaration($elem); ok( $declaration == $result_declaration, 'Correct declaration found' ); } } # Regression test for functions SCOPE: { my $editor = t::lib::Padre::Editor->new; my $file = catfile( $files, 'perl_functions.pl' ); my $doc = Padre::Document->new( filename => $file, ); $doc->set_editor($editor); $editor->set_document($doc); my @functions = $doc->functions; is_deeply( \@functions, [ qw{ guess_indentation_style guess_filename get_calltip_keywords two_lines three_lines after_data } ], 'Found expected Perl functions', ); } # Regression test for functions on Method::Signatures-style method declarators SCOPE: { my @test_files = ( { 'filename' => 'method_declarator_1.pm', 'methods' => [ qw/ _build__ca_state_holidays is_holiday_or_weekend / ], }, { 'filename' => 'method_declarator_2.pm', 'methods' => [ qw/ new iso_date / ], }, { 'filename' => 'method_declarator_3.pm', 'methods' => [ qw/ strip_ws / ], }, ); foreach my $test_file (@test_files) { my $editor = t::lib::Padre::Editor->new; my $file = catfile( $files, $test_file->{'filename'} ); my $doc = Padre::Document->new( filename => $file, ); $doc->set_editor($editor); $editor->set_document($doc); my @functions = $doc->functions; is_deeply( \@functions, $test_file->{'methods'}, 'Found expected declarator-declared Perl functions', ); } } # Tests for content intuition SCOPE: { my $editor = t::lib::Padre::Editor->new; my $doc = Padre::Document::Perl->new; $doc->set_editor($editor); $editor->set_document($doc); $doc->text_set(<<'END_PERL'); package Foo::Bar::Baz; 1; END_PERL # Check the filename my $filename = $doc->guess_filename; is( $filename, 'Baz.pm', '->guess_filename ok' ); # Check the subpath my @subpath = $doc->guess_subpath; is_deeply( \@subpath, [qw{ lib Foo Bar }], '->guess_subpath' ); } # Test POD endification SCOPE: { use_ok('Padre::PPI::EndifyPod'); my $merge = Padre::PPI::EndifyPod->new; isa_ok( $merge, 'Padre::PPI::EndifyPod' ); my $document = PPI::Document->new( \<<'END_PERL' ); package Foo; =pod This is POD =cut use strict; =pod This is also POD =cut 1; END_PERL isa_ok( $document, 'PPI::Document' ); ok( $merge->apply($document), 'Transform applied ok' ); is( $document->serialize, <<'END_PERL', 'Transformed ok' ); package Foo; use strict; 1; __END__ =pod This is POD This is also POD =cut END_PERL } # Test copyright updating SCOPE: { use_ok('Padre::PPI::UpdateCopyright'); my $copyright = Padre::PPI::UpdateCopyright->new( name => 'Adam Kennedy', ); isa_ok( $copyright, 'Padre::PPI::UpdateCopyright' ); my $document = PPI::Document->new( \<<'END_PERL' ); package Foo; =pod Copyright 2008 - 2009 Adam Kennedy. =cut 1; END_PERL isa_ok( $document, 'PPI::Document' ); ok( $copyright->apply($document), 'Transform applied ok' ); my $serialized = $document->serialize; ok( $serialized =~ /2008 - (\d\d\d\d)/, 'Found copyright statement' ); ok( $1 ne '2009', 'Copyright year has changed' ); ok( $1 > 2009, 'Copyright year is newer' ); } ###################################################################### # Support Functions sub find_var_simple { my $doc = shift; my $varname = shift; my $line = shift; my $elem; $doc->find_first( sub { return 0 if not $_[1]->isa('PPI::Token::Symbol') or not $_[1]->content eq $varname or not $_[1]->location->[0] == $line; $elem = $_[1]; return 1; } ); return $elem; } Padre-1.00/t/19_search.t0000644000175000017500000001120111744002274013343 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 27; } use Test::NoWarnings; use t::lib::Padre; use Padre::Search (); ###################################################################### # Basic tests for the core matches method SCOPE: { my ( $start, $end, @matches ) = Padre::Search->matches( text => "abc", regex => qr/x/, from => 0, to => 0, ); is_deeply( \@matches, [], 'no match' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abc", regex => qr/(b)/, from => 0, to => 0, ); is_deeply( \@matches, [ 1, 2, [ 1, 2 ] ], 'one match' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abcbxb", regex => qr/(b)/, from => 0, to => 0, ); is_deeply( \@matches, [ 1, 2, [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ], 'three matches' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abcbxb", regex => qr/(b)/, from => 1, to => 2, ); is_deeply( \@matches, [ 3, 4, [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ], 'three matches' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abcbxb", regex => qr/(b)/, from => 3, to => 4, ); is_deeply( \@matches, [ 5, 6, [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ], 'three matches' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abcbxb", regex => qr/(b)/, from => 5, to => 6, ); is_deeply( \@matches, [ 1, 2, [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ], 'three matches, wrapping' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abcbxb", regex => qr/(b)/, from => 5, to => 6, backwards => 1, ); is_deeply( \@matches, [ 3, 4, [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ], 'three matches backwards' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abcbxb", regex => qr/(b)/, from => 1, to => 2, backwards => 1, ); is_deeply( \@matches, [ 5, 6, [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ], 'three matches backwards wrapping' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abcbxb", regex => qr/(b(.))/, from => 1, to => 2, ); is_deeply( \@matches, [ 3, 5, [ 1, 3 ], [ 3, 5 ] ], '2 matches' ); } SCOPE: { my (@matches) = Padre::Search->matches( text => "abcbxb", regex => qr/(b(.?))/, from => 1, to => 2, backwards => 1, ); is_deeply( \@matches, [ 5, 6, [ 1, 3 ], [ 3, 5 ], [ 5, 6 ] ], 'three matches bw, wrap' ); } SCOPE: { my $str = qq( perl ("שלום"); perl ); my (@matches) = Padre::Search->matches( text => $str, regex => qr/(perl)/, from => 0, to => 0, ); # TODO are these really correct numbers? is_deeply( \@matches, [ 1, 5, [ 1, 5 ], [ 28, 32 ] ], 'two matches with unicode' ); is( substr( $str, 1, 4 ), 'perl' ); } SCOPE: { my $str = 'müssen'; my (@matches) = Padre::Search->matches( text => $str, regex => qr/(üss)/, from => 0, to => 0, ); is_deeply( \@matches, [ 1, 7, [ 1, 7 ] ], 'one match with unicode regex' ); is( substr( $str, 1, 4 ), 'üss' ); } ###################################################################### # Searching within a selection my $text = <<'END_TEXT'; Roses are red, Violets are blue, All your base are belong to us. END_TEXT SCOPE: { my $search = new_ok( 'Padre::Search', [ find_term => 'are' ] ); my ( $first_char, $last_char, @all ) = $search->matches( text => $text, regex => qr/are/, from => 0, to => length($text), ); ok( $first_char, 'calling matches with proper parameters should work' ); is( $first_char, 6, 'found first entry at position 6' ); is( $last_char, 9, 'found first entry ending at position 9' ); is( substr( $text, $first_char, $last_char - $first_char ), 'are', 'position is correct', ); is_deeply( \@all, [ [ 6, 9 ], [ 23, 26 ], [ 47, 50 ], ], 'matches returns a correct structure', ); } SCOPE: { my $search = new_ok( 'Padre::Search', [ find_term => 'are' ] ); my $sel_begin = 5; my $sel_end = 30; my ( $first_char, $last_char, @all ) = $search->matches( text => substr( $text, $sel_begin, $sel_end - $sel_begin ), regex => qr/are/, from => 0, to => $sel_end - $sel_begin, ); ok( $first_char, 'calling matches with proper parameters should work' ); is( $first_char, 1, 'found relative entry at position 1' ); is( $last_char, 4, 'found relative entry ending at position 4' ); is( substr( $text, $first_char + $sel_begin, $last_char - $first_char ), 'are', 'relative position is correct', ); is_deeply( \@all, [ [ 1, 4 ], [ 18, 21 ], ], 'matches returns a correct relative structure (within selection)', ); } Padre-1.00/t/40_display.t0000644000175000017500000000232711712346204013545 0ustar petepete#!/usr/bin/perl # Tests for Padre::Wx::Display use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 13 ); } use Test::NoWarnings; use t::lib::Padre; use Padre::Wx::Display (); ###################################################################### # Wx::Rect Handling SCOPE: { my $string = '1,2,3,4'; my $rect = Padre::Wx::Display::_rect_from_string($string); isa_ok( $rect, 'Wx::Rect' ); is( $rect->x, 1, '->x ok' ); is( $rect->y, 2, '->y ok' ); is( $rect->width, 3, '->width ok' ); is( $rect->height, 4, '->height ok' ); is( $rect->GetTop, 2, '->GetTop ok' ); is( $rect->GetBottom, 5, '->GetBottom ok' ); is( $rect->GetLeft, 1, '->GetLeft ok' ); is( $rect->GetRight, 3, '->GetRight ok' ); my $round = Padre::Wx::Display::_rect_as_string($rect); is( $round, $string, 'Wx::Rect round-strips ok' ); } ###################################################################### # Display Methods SCOPE: { my $primary = Padre::Wx::Display::primary(); isa_ok( $primary, 'Wx::Display' ); my $default = Padre::Wx::Display::primary_default(); isa_ok( $default, 'Wx::Rect' ); } Padre-1.00/t/85_commandline.t0000644000175000017500000000124211744002274014373 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More tests => 2 + 1; use FindBin qw($Bin); use File::Spec (); use File::Temp qw(tempdir); use Test::NoWarnings; # Testing the stand-alone Padre::Util::CommandLine my $files_dir = tempdir( CLEANUP => 1 ); mkdir File::Spec->catdir( $files_dir, 'beginner' ); foreach my $file ('Debugger.pm') { open my $fh, '>', File::Spec->catfile( $files_dir, $file ); close($fh); } use Padre::Util::CommandLine; use Cwd (); SCOPE: { no warnings; sub Cwd::cwd {$files_dir} } is( Padre::Util::CommandLine::tab(':e'), ':e Debugger.pm', 'TAB 1', ); is( Padre::Util::CommandLine::tab(':e Debugger.pm'), ':e beginner/', 'TAB 2', ); Padre-1.00/t/94_padre_file_remote.t0000644000175000017500000001324311622750100015547 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; use Padre::File; if ( !$ENV{PADRE_NETWORK_T} ) { plan( tests => 1 ); SKIP: { skip 'This test file requires permission to connect to the internet, set PADRE_NETWORK_T=1 if you want this', 1; } exit; } plan( tests => 80 ); package Wx; sub gettext { shift; } package main; my $file; # Define for later usage ############################################################################### ### Padre::File::FTP # Padre::File::HTTP $file = Padre::File->new('http://padre.perlide.org/about.html'); ok( defined($file), 'HTTP: Create Padre::File object' ); ok( ref($file) eq 'Padre::File::HTTP', 'HTTP: Check module' ); ok( $file->{protocol} eq 'http', 'HTTP: Check protocol' ); ok( $file->size > 0, 'HTTP: file size' ); ok( $file->mtime >= 1253194791, 'HTTP: mtime' ); $file->{_cached_mtime_value} = 1234567890; ok( $file->mtime == 1234567890, 'HTTP: mtime (cached)' ); ok( $file->basename eq 'about.html', 'HTTP: basename' ); ok( $file->dirname eq 'http://padre.perlide.org/', 'HTTP: dirname' ); ok( !$file->can_run, 'HTTP: Can not run' ); my %HTTP_Tests = ( 'http://www.google.de/' => [ 'http://www.google.de/', 'index.html' ], 'http://www.perl.org/rules/the_world.html' => [ 'http://www.perl.org/rules/', 'the_world.html' ], 'http://www.google.de/result.cgi?q=perl' => [ 'http://www.google.de/', 'result.cgi' ], ); foreach my $url ( keys(%HTTP_Tests) ) { $file = Padre::File->new($url); ok( defined($file), 'HTTP ' . $url . ': Create Padre::File object' ); ok( $file->{protocol} eq 'http', 'HTTP ' . $url . ': Check protocol' ); ok( $file->dirname eq $HTTP_Tests{$url}->[0], 'HTTP ' . $url . ': Check dirname' ); ok( $file->basename eq $HTTP_Tests{$url}->[1], 'HTTP ' . $url . ': Check basename' ); } my $clone = $file->clone('http://padre.perlide.org/download.html'); ok( defined($clone), 'HTTP: Create clone' ); is( ref($clone), 'Padre::File::HTTP', 'HTTP: Clone object type' ); is( $clone->{protocol}, 'http', 'HTTP: Check clone protocol' ); ok( $clone->size > 0, 'HTTP: Clone file size' ); ok( $clone->mtime >= 1253194791, 'HTTP: Clone mtime' ); is( $clone->basename, 'download.html', 'HTTP: Clone basename' ); is( $clone->dirname, 'http://padre.perlide.org/', 'HTTP: Clone dirname' ); ok( !$clone->can_run, 'HTTP: Clone can not run' ); is( $clone->browse_mtime('/download.html'), $clone->mtime, 'HTTP: browse_mtime' ); ############################################################################### ### Padre::File::FTP # Plain file from CPAN $file = Padre::File->new('ftp://ftp.cpan.org/pub/CPAN/README'); ok( defined($file), 'FTP: Create Padre::File object' ); is( ref($file), 'Padre::File::FTP', 'FTP: Check module' ); is( $file->{protocol}, 'ftp', 'FTP: Check protocol' ); cmp_ok( $file->size, '>', 0, 'FTP: file size' ); is( $file->basename, 'README', 'FTP: basename' ); is( $file->dirname, 'ftp://ftp.cpan.org/pub/CPAN', 'FTP: dirname' ); is( $file->servername, 'ftp.cpan.org', 'FTP: servername' ); ok( !$file->can_run, 'FTP: Can not run' ); ok( $file->exists, 'FTP: Exists' ); cmp_ok( $file->mtime, '>=', 918914146, 'FTP: mtime' ); my $firstfile = $file; # Symlink $file = Padre::File->new('ftp://ftp.kernel.org/welcome.msg'); ok( defined($file), 'FTP2: Create Padre::File object' ); cmp_ok( $file->size, '>', 0, 'FTP2: file size' ); is( $file->servername, 'ftp.kernel.org', 'FTP2: servername' ); is( $file->dirname, 'ftp://ftp.kernel.org', 'FTP2: servername' ); is( $file->basename, 'welcome.msg', 'FTP2: servername' ); ok( $file->exists, 'FTP2: Exists' ); # Test some FTP servers foreach my $url ( 'ftp://ftp.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg', 'ftp://ftp.proftpd.org/README.MIRRORS', # Proftpd 'ftp://ftp.redhat.com/pub/redhat/linux/README', # vsftpd 'ftp://ftp.cisco.com/test.html', # Apache FTP 'ftp://ftp.gwdg.de/pub/mozilla.org/_please_use_ftp5.gwdg.de_', # Empty file # TODO: Find a public FTP server using Microsoft FTP service and add it ) { $url =~ /ftp\:\/\/(.+?)\// and my $server = $1; $file = Padre::File->new($url); ok( defined($file), 'FTP ' . $server . ': Create Padre::File object' ); ok( $file->exists, 'FTP ' . $server . ': Exists' ); my $size = $file->size; ok( defined($size), 'FTP ' . $server . ': ' . $size . ' bytes' ); ok( $file->mtime, 'FTP ' . $server . ': mtime ' . scalar( localtime( $file->mtime ) ) ); } $clone = $firstfile->clone('ftp://ftp.cpan.org/pub/CPAN/index.html'); ok( defined($clone), 'FTP: Create Padre::File clone' ); is( ref($clone), 'Padre::File::FTP', 'FTP: Check clone module' ); is( $clone->{protocol}, 'ftp', 'FTP: Check clone protocol' ); cmp_ok( $clone->size, '>', 0, 'FTP: clone file size' ); is( $clone->basename, 'index.html', 'FTP: clone basename' ); is( $clone->dirname, 'ftp://ftp.cpan.org/pub/CPAN', 'FTP: clone dirname' ); ok( !$clone->can_run, 'FTP: Clone can not run' ); ok( $clone->exists, 'FTP: Clone exists' ); is( $firstfile->mtime, $clone->browse_mtime('/pub/CPAN/README'), 'FTP: browse_mtime' ); $file = Padre::File->new('ftp://ftp.cpan.org/pub/CPAN/README'); my $file2 = Padre::File->new('ftp://ftp.cpan.org/pub/CPAN/README'); is( $file->size, $file2->size, 'Check file size for two connections' ); is( $file->_ftp, $file2->_ftp, 'Verify connection caching/sharing' ); my $oldconn = $file->_ftp; is( $file->_ftp->quit, 1, 'Badly disconnect a connection' ); sleep 1; # Required to finish the disconnect is( $file->_ftp, $file2->_ftp, 'Try auto-reestablishing of the connection' ); isnt( $file->_ftp, $oldconn, 'Check if a new connection was created' ); done_testing(); Padre-1.00/t/06_utils.t0000644000175000017500000000137411622750100013235 0ustar petepete#!/usr/bin/perl use 5.006; use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } plan( tests => 1 ); use Padre::Util; use File::Basename (); use File::Spec (); use FindBin; # TODO: We need to pass the $main object to the create function # and certain other things need to be in place before running use Padre::Wx::Action; use Padre::Wx::ActionLibrary; sub Padre::ide { return bless {}, 'Padre::IDE'; } sub Padre::IDE::actions { return {} } sub Padre::IDE::config { return bless {}, 'Padre::Config' } SKIP: { # TODO check if every action has a comment as required skip 'Fix this test!', 1; Padre::Wx::ActionLibrary->init( bless {}, 'Padre::IDE' ); ok(1); } Padre-1.00/t/author_tests/0000755000175000017500000000000012237340740014132 5ustar petepetePadre-1.00/t/author_tests/pod-coverage.t0000644000175000017500000000030211452515377016675 0ustar petepete#!perl use strict; use warnings; use Test::More; eval "use Test::Pod::Coverage 1.04"; plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@; all_pod_coverage_ok(); Padre-1.00/t/02_new.t0000644000175000017500000000765112023203157012667 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 62 ); } use Test::NoWarnings; use t::lib::Padre; use Padre; my $app = Padre->new; isa_ok( $app, 'Padre' ); SCOPE: { my $ide = Padre->ide; isa_ok( $ide, 'Padre' ); refis( $ide, $app, '->ide matches ->new' ); } SCOPE: { my $ide = Padre::Current->ide; isa_ok( $ide, 'Padre' ); refis( $ide, $app, '->ide matches ->new' ); } SCOPE: { my $config = $app->config; isa_ok( $config, 'Padre::Config' ); is( $config->startup_files => 'new' ); is( $config->main_lockinterface => 1 ); is( $config->main_functions => 0 ); is( $config->main_functions_order => 'alphabetical' ); is( $config->main_outline => 0 ); is( $config->main_directory => 0 ); is( $config->main_output => 0 ); is( $config->main_output_ansi => 1 ); is( $config->main_syntax => 0 ); is( $config->main_statusbar => 1 ); my $editor_font = $config->editor_font; if ( $^O eq 'MSWin32' ) { ok( ( $editor_font eq '' ) || ( $editor_font eq 'consolas 10' ), 'editor_font is either empty or consolas 10 on win32' ); } else { is( $editor_font => '' ); } is( $config->editor_linenumbers => 1 ); is( $config->editor_eol => 0 ); is( $config->editor_indentationguides => 0 ); is( $config->editor_calltips => 0 ); is( $config->editor_autoindent => 'deep' ); is( $config->editor_whitespace => 0 ); is( $config->editor_folding => 0 ); is( $config->editor_wordwrap => 0 ); is( $config->editor_currentline => 1 ); is( $config->editor_currentline_color => 'FFFF04' ); is( $config->editor_indent_auto => 1 ); is( $config->editor_indent_tab_width => 8 ); is( $config->editor_indent_width => 8 ); is( $config->editor_indent_tab => 1 ); is( $config->lang_perl5_beginner => 1 ); is( $config->find_case => 1 ); is( $config->find_regex => 0 ); is( $config->find_reverse => 0 ); is( $config->find_first => 0 ); is( $config->find_nohidden => 1 ); is( $config->run_save => 'same' ); is( $config->threads => 1 ); is( $config->locale => '' ); is( $config->editor_style => 'default' ); is( $config->main_maximized => 0 ); is( $config->main_top => -1 ); is( $config->main_left => -1 ); is( $config->main_width => -1 ); is( $config->main_height => -1 ); } ##################################################################### # Internal Structure Tests # These test that the internal structure of the application matches # expected normals, and that structure navigation methods works normally. SCOPE: { my $padre = Padre->ide; isa_ok( $padre, 'Padre' ); # The Wx::App(lication) my $app = $padre->wx; isa_ok( $app, 'Padre::Wx::App' ); # The main window my $main = $app->main; isa_ok( $main, 'Padre::Wx::Main' ); # By default, most of the tools shouldn't exist ok( !$main->has_output, '->has_output is false' ); ok( !$main->has_outline, '->has_outline is false' ); ok( !$main->has_syntax, '->has_syntax is false' ); # The main menu my $menu = $main->menu; isa_ok( $menu, 'Padre::Wx::Menubar' ); refis( $menu->main, $main, 'Menubar ->main gets the main window' ); # A submenu my $file = $menu->file; isa_ok( $file, 'Padre::Wx::Menu' ); # The notebook my $notebook = $main->notebook; isa_ok( $notebook, 'Padre::Wx::Notebook' ); # Current context my $current = $main->current; isa_ok( $current, 'Padre::Current' ); isa_ok( $current->main, 'Padre::Wx::Main' ); isa_ok( $current->notebook, 'Padre::Wx::Notebook' ); refis( $current->main, $main, '->current->main ok' ); refis( $current->notebook, $notebook, '->current->notebook ok' ); } Padre-1.00/t/90_autocomplete.t0000644000175000017500000000350111674322761014612 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; plan tests => 6; use Test::NoWarnings; use t::lib::Padre; # Testing the non-Padre code of # Padre::Document::Perl::Autocomplete # that will be moved to some external package use Padre::Document::Perl::Autocomplete; { my $prefix = '$self->{'; my $text = read_file('t/files/Debugger.pm'); my $parser; my $ac = Padre::Document::Perl::Autocomplete->new( prefix => $prefix, pre_text => $text, post_text => '', ); my @result = $ac->run($parser); is_deeply \@result, [ 0, 'xyz' ], 'hash-ref'; #diag explain \@result; } my $text_with_variables = <<'END_TEXT'; $file $ficus my $force; @foo %foobar %fido @fungus END_TEXT { my $parser; my $ac = Padre::Document::Perl::Autocomplete->new( prefix => '$f', pre_text => $text_with_variables, post_text => '', nextchar => '', minimum_prefix_length => 1, maximum_number_of_choices => 20, minimum_length_of_suggestion => 3, ); my @result = $ac->run($parser); is_deeply \@result, [], 'scalar'; @result = $ac->auto; is_deeply \@result, [ 1, 'fungus', 'fido', 'foobar', 'foo', 'force', 'ficus', 'file' ], 'auto scalar'; #diag explain \@result; } { my $parser; my $ac = Padre::Document::Perl::Autocomplete->new( prefix => '$', pre_text => $text_with_variables, post_text => '', nextchar => '', minimum_prefix_length => 1, maximum_number_of_choices => 20, minimum_length_of_suggestion => 3, ); my @result = $ac->run($parser); is_deeply \@result, [], 'scalar'; @result = $ac->auto; #diag explain \@result; is_deeply \@result, [ 1, ], 'auto scalar'; } sub read_file { my $file = shift; open my $fh, '<', $file or die; local $/ = undef; my $cont = <$fh>; close $fh; return $cont; } Padre-1.00/t/18_newline.t0000644000175000017500000000217611712362256013555 0ustar petepete#!/usr/bin/perl use strict; use warnings; my $CR = "\015"; my $LF = "\012"; my $CRLF = "\015\012"; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 13; } use Test::NoWarnings; use t::lib::Padre; use Padre::Util (); is( Padre::Util::newline_type("...") => "None", "None" ); is( Padre::Util::newline_type(".$CR.$CR.") => "MAC", "Mac" ); is( Padre::Util::newline_type(".$LF.$LF.") => "UNIX", "Unix" ); is( Padre::Util::newline_type(".$CRLF.$CRLF.") => "WIN", "Windows" ); is( Padre::Util::newline_type(".$LF.$CR.") => "Mixed", "Mixed" ); is( Padre::Util::newline_type(".$CR.$LF.") => "Mixed", "Mixed" ); is( Padre::Util::newline_type(".$CRLF.$LF.") => "Mixed", "Mixed" ); is( Padre::Util::newline_type(".$LF.$CRLF.") => "Mixed", "Mixed" ); is( Padre::Util::newline_type(".$CR.$CRLF.") => "Mixed", "Mixed" ); is( Padre::Util::newline_type(".$CRLF.$CR.") => "Mixed", "Mixed" ); is( Padre::Util::newline_type(".$CR$LF$CR.") => "Mixed", "Mixed" ); is( Padre::Util::newline_type(".$CR$LF$LF.") => "Mixed", "Mixed" ); Padre-1.00/t/99_debug_debugoutput.t0000644000175000017500000000163711744002274015637 0ustar petepete#!/usr/bin/perl use strict; use warnings; # Turn on $OUTPUT_AUTOFLUSH $| = 1; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 17; } use Test::NoWarnings; use t::lib::Padre; use Padre::Wx; use Padre; use_ok('Padre::Wx::Panel::DebugOutput'); # Create the IDE my $padre = new_ok('Padre'); my $main = $padre->wx->main; isa_ok( $main, 'Padre::Wx::Main' ); # Create the breakpoints panel my $panel = new_ok( 'Padre::Wx::Panel::DebugOutput', [$main] ); ####### # let's check our subs/methods. ####### my @subs = qw( debug_output debug_output_blue debug_output_black debug_output_dark_gray debug_status view_close view_icon view_label view_panel view_start view_stop ); use_ok( 'Padre::Wx::Panel::DebugOutput', @subs ); foreach my $subs (@subs) { can_ok( 'Padre::Wx::Panel::DebugOutput', $subs ); } # done_testing(); 1; __END__ Padre-1.00/t/14_warnings.t0000644000175000017500000000433411773301621013732 0ustar petepete#!/usr/bin/perl use strict; use warnings; use File::Find::Rule; use Test::More; use Test::NoWarnings; use Padre::Document::Perl::Beginner; package Padre; # Fake the Padre instance, P::D::P::Beginner only needs Padre->ide->config use Padre::Config(); my $SINGLETON = undef; sub ide { my $class = shift; return $SINGLETON if $SINGLETON; $SINGLETON = bless {}, $class; $SINGLETON->{config} = Padre::Config->read; return $SINGLETON; } sub config { my $self = shift; return $self->{config}; } package main; our $SKIP; unless ( $ENV{AUTOMATED_TESTING} ) { $SKIP = "Only test this on developer versions."; plan( tests => 2 ); ok( 1, 'Skip nice-syntax tests on released versions' ); exit; } # Create to beginner error check object my $b = Padre::Document::Perl::Beginner->new( document => { editor => bless {}, 'local::t14' } ); my %skip_files = ( 'Padre/Document/Perl/Beginner.pm' => 'Beginner error checks contain bad samples', #TODO cpanm sets AUTOMATED_TESTING and these files are bad :) 'Padre/Document.pm' => 'PHP language keywords', 'Padre/Wx/Constant.pm' => 'Bad substitution', 'Padre/Wx/Theme.pm' => 'Bad substitution', 'Padre/Wx/Dialog/Patch.pm' => 'equals in an if', 'Padre/Wx/Scintilla.pm' => 'PHP language keywords -> elseif', ); my @files = File::Find::Rule->relative->file->name('*.pm')->in('lib'); plan( tests => @files + 2 ); isa_ok $b, 'Padre::Document::Perl::Beginner'; foreach my $file (@files) { if ( defined( $skip_files{$file} ) ) { local $SKIP = $skip_files{$file}; ok( 1, 'Check ' . $file ); next; } $b->check( slurp( 'lib/' . $file ) ); my $result = $b->error || ''; is( $result, '', "Check $file" ); } ###################################################################### # Support Functions sub slurp { my $file = shift; open my $fh, '<', $file or die "Couldn't open $file: $!"; local $/ = undef; my $buffer = <$fh>; close $fh; return $buffer; } ###################################################################### # Support Classes # Create test environment... # Test replacement for document object SCOPE: { package local::t14; sub LineFromPosition { return 0; } } # Test replacement for Wx SCOPE: { package Wx; sub gettext { return $_[0]; } } Padre-1.00/t/42_document.t0000644000175000017500000000622411717175561013733 0ustar petepete#!/usr/bin/perl package PadreTest::Config; use strict; use warnings; sub new { my $class = shift; my $self = bless {@_}, $class; } sub editor_file_size_limit { return 500000; } sub lang_perl6_auto_detection { return 0; } sub default_line_ending { return 'Padre::Constant::NEWLINE'; } package main; use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } # Test files my %MIMES = ( 'eg/perl5/hello_world.pl' => 'application/x-perl', 'eg/perl5/perl5.pod' => 'text/x-pod', 'eg/perl5_with_perl6_example.pod' => 'text/x-pod', 'eg/perl6/perl6.pod' => 'text/x-pod', 'eg/xml/xml_example' => 'text/xml', 'eg/tcl/hello_tcl' => 'application/x-tcl', 'eg/tcl/portable_tcl' => 'application/x-tcl', 'eg/ruby/hello_world.rb' => 'application/x-ruby', 'eg/ruby/hello_world_rb' => 'application/x-ruby', 'eg/python/hello_py' => 'text/x-python', ); plan tests => 8 + scalar keys %MIMES; # This should only be used to skip dependencies out of the Document.pm - scope # which are not required for testing, like Padre->ide. Never skip larger blocks # with this! $ENV{PADRE_IS_TEST} = 1; use Test::NoWarnings; use Encode (); use File::Spec (); use t::lib::Padre; use t::lib::Padre::Editor; use Padre::Document; use Padre::Document::Perl; use Padre::MIME; use Padre::Locale (); my $config = PadreTest::Config->new; # Fake that Perl 6 support is enabled Padre::MIME->find('application/x-perl6')->plugin('Padre::Document::Perl'); my $editor_1 = t::lib::Padre::Editor->new; my $doc_1 = Padre::Document->new( config => $config ); SCOPE: { isa_ok( $doc_1, 'Padre::Document' ); ok( not( defined $doc_1->filename ), 'no filename' ); } my $editor_3 = t::lib::Padre::Editor->new; my $file_3 = File::Spec->rel2abs( File::Spec->catfile( 'eg', 'hello_world.pl' ) ); my $doc_3 = Padre::Document->new( filename => $file_3, config => $config, ); #isa_ok( $doc_3, 'Padre::Document' ); isa_ok( $doc_3, 'Padre::Document::Perl' ); is( $doc_3->filename, $file_3, 'filename' ); foreach my $file ( sort keys %MIMES ) { my $editor = t::lib::Padre::Editor->new; my $doc = Padre::Document->new( filename => $file, config => $config, ); is( $doc->guess_mimetype, $MIMES{$file}, "mime of $file" ); } # The following tests are for verifying that # "ticket #889: Padre saves non-ASCII characters as \x{XXXX}" # does not happen again my ( $encoding, $content ); # English (ASCII) $encoding = Padre::Locale::encoding_from_string(q{say "Hello!";}); is( $encoding, 'ascii', "Encoding should be ascii for English" ); # Russian (UTF-8) $content = q{say "Превед!";}; Encode::_utf8_on($content); $encoding = Padre::Locale::encoding_from_string($content); is( $encoding, 'utf8', "Encoding should be utf8 for Russian" ); # Arabic (UTF-8) $content = q{say "مرحبا!"; }; Encode::_utf8_on($content); $encoding = Padre::Locale::encoding_from_string($content); is( $encoding, 'utf8', "Encoding should be utf8 for Arabic" ); END { unlink for 'eg/hello_world.pl', 'eg/perl5/perl5_with_perl6_example.pod', ; } Padre-1.00/t/lib/0000755000175000017500000000000012237340740012154 5ustar petepetePadre-1.00/t/lib/Padre/0000755000175000017500000000000012237340741013210 5ustar petepetePadre-1.00/t/lib/Padre/NullWindow.pm0000644000175000017500000000154511405612421015646 0ustar petepetepackage t::lib::Padre::NullWindow; # This is an empty null main window, so that we can test multi-thread # code without having to actually build all of the Padre main window. use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Logger; our $VERSION = '0.64'; our @ISA = qw{ Padre::Wx::Role::Conduit Wx::Frame }; # NOTE: This is just a test window so don't add Wx::gettext use constant NAME => 'Padre Null Test Window'; sub new { TRACE($_[0]) if DEBUG; my $class = shift; # Basic constructor my $self = $class->SUPER::new( undef, -1, NAME, [ -1, -1 ], [ -1, -1 ], Wx::wxDEFAULT_FRAME_STYLE, ); # Set various properties $self->SetTitle(NAME); $self->SetMinSize( Wx::Size->new( 100, 100 ), ); # Register outself as the event conduit from child workers # to the parent thread. $self->conduit_init; return $self; } 1; Padre-1.00/t/lib/Padre/Editor.pm0000644000175000017500000000277311643250243015002 0ustar petepetepackage t::lib::Padre::Editor; use strict; use warnings; use Padre::Wx::Editor (); our @ISA = 'Padre::Wx::Editor'; sub new { my $self = bless {}, shift; return $self; } sub set_document { my ( $self, $doc ) = @_; if ( defined $doc->{original_content} ) { $self->SetText( $doc->{original_content} ); } } sub main { undef; } sub SetEOLMode { } sub ConvertEOLs { } sub EmptyUndoBuffer { } sub SetText { my ($self, $text) = @_; $self->{text} = $text; $self->{pos} = 0; $self->{selection_start} = 0; $self->{selection_start} = 0; return; } sub LineFromPosition { my ($self, $pos) = @_; return 0 if $pos == 0; my $str = substr($self->{text}, 0, $pos); #warn "str $pos '$str'\n"; my @lines = split /\n/, $str, -1; return @lines-1; } sub GetLineEndPosition { my ($self, $line) = @_; my @lines = split(/\n/, $self->{text}, -1); my $str = join "\n", @lines[0..$line]; return length($str)+1; } sub PositionFromLine { my ($self, $line) = @_; return 0 if $line == 0; my @lines = split(/\n/, $self->{text}, -1); my $str = join "\n", @lines[0..$line-1]; return length($str)+1; } sub GetColumn { my ($self, $pos) = @_; my $line = $self->LineFromPosition($pos); my $start = $self->PositionFromLine($line); return $pos - $start; } sub GetText { return $_[0]->{text} } sub GetCurrentPos { return $_[0]->{pos}; } sub GetSelectionEnd { return $_->{selection_end}; } sub SetSelectionStart { $_[0]->{selection_start} = $_[1] } sub GotoPos { $_[0]->{pos} = $_[1]; } 1; Padre-1.00/t/lib/Padre/Plugin/0000755000175000017500000000000012237340740014445 5ustar petepetePadre-1.00/t/lib/Padre/Plugin/Test/0000755000175000017500000000000012237340740015364 5ustar petepetePadre-1.00/t/lib/Padre/Plugin/Test/Plugin.pm0000644000175000017500000000043211105001121017133 0ustar petepetepackage Padre::Plugin::Test::Plugin; use warnings; use strict; our $VERSION = '0.01'; my @menu = ( ['Test Me Too', \&test_me_too], ); sub menu { my ($self) = @_; return @menu; } sub test_me_too { my ( $self, $event ) = @_; # XXX do something we can test? } 1; Padre-1.00/t/lib/Padre/Plugin/TestPlugin.pm0000644000175000017500000000041411103577277017110 0ustar petepetepackage Padre::Plugin::TestPlugin; use warnings; use strict; our $VERSION = '0.01'; my @menu = ( ['Test Me', \&test_me], ); sub menu { my ($self) = @_; return @menu; } sub test_me { my ( $self, $event ) = @_; # XXX do something we can test? } 1; Padre-1.00/t/lib/Padre/Win32.pm0000644000175000017500000000206111502605271014443 0ustar petepetepackage t::lib::Padre::Win32; use strict; use warnings; use Padre::Perl (); sub setup { require Win32::GuiTest; import Win32::GuiTest qw{ FindWindowLike SetForegroundWindow GetForegroundWindow }; my %existing_windows = map { $_ => 1 } FindWindowLike(0, "^Padre"); # Find Perl (ideally the gui one) my $perl = Padre::Perl::wxperl(); my $cmd = "start $perl script\\padre --locale=en"; #$t->diag($cmd); system $cmd; my $padre; # allow some time to launch Padre foreach ( 1 .. 30 ) { sleep(1); my @current_windows = FindWindowLike(0, "^Padre"); my @wins = grep { ! $existing_windows{$_} } @current_windows; die "Too many Padres found '@wins'" if @wins > 1; $padre = shift @wins; last if $padre; } die "Could not find a running version of Padre" if not $padre; SetForegroundWindow($padre); my $fg; foreach (1..2) { sleep 3; # crap, we have to wait for Padre to come to the foreground $fg = GetForegroundWindow(); last if $fg eq $padre; } if ( $fg ne $padre ) { die "Padre is NOT in the foreground"; } return $padre; } 1; Padre-1.00/t/lib/Padre.pm0000644000175000017500000000243111177746440013556 0ustar petepetepackage t::lib::Padre; # Common testing logic for Padre use strict; use warnings; use Scalar::Util (); use File::Temp (); use Exporter (); use Test::More (); our $VERSION = '0.20'; our @ISA = 'Exporter'; our @EXPORT = 'refis'; # By default, load Padre in a controlled environment BEGIN { $ENV{PADRE_HOME} = File::Temp::tempdir( CLEANUP => 1 ); } # Test that two params are the same reference sub refis { my $left = Scalar::Util::refaddr(shift); my $right = Scalar::Util::refaddr(shift); my $name = shift || 'References are the same'; unless ( $left ) { Test::More::fail( $name ); Test::More::diag("First argument is not a reference"); return; } unless ( $right ) { Test::More::fail( $name ); Test::More::diag("Second argument is not a reference"); return; } Test::More::is( $left, $right, $name ); } # delay is counted from the previous event sub setup_event { my ($frame, $events, $cnt) = @_; return if $cnt >= @$events; my $event = $events->[$cnt]; if ($event->{subevents}) { setup_event($frame, $event->{subevents}, 0); } my $id = Wx::NewId(); my $timer = Wx::Timer->new( $frame, $id ); Wx::Event::EVT_TIMER( $frame, $id, sub { $event->{code}->(@_); setup_event($frame, $events, $cnt+1) }, ); $timer->Start( $event->{delay}, 1 ); } 1; Padre-1.00/t/91_vi.t0000644000175000017500000000173111622750100012514 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 16 ); } use Test::NoWarnings; use t::lib::Padre; use t::lib::Padre::Editor; my $e = t::lib::Padre::Editor->new; my $text = <<"END_TEXT"; This is the first line A second line and there is even a third line END_TEXT SCOPE: { # diag "Testing the t::lib::Padre::Editor a bit"; $e->SetText($text); is( $e->GetText($text), $text ); is( $e->GetCurrentPos, 0 ); is( $e->LineFromPosition(0), 0 ); is( $e->LineFromPosition(20), 0 ); is( $e->LineFromPosition(22), 0 ); is( $e->LineFromPosition(23), 1 ); is( $e->LineFromPosition(24), 1 ); is( $e->GetLineEndPosition(0), 23 ); is( $e->PositionFromLine(0), 0 ); is( $e->PositionFromLine(1), 23 ); is( $e->GetColumn(0), 0 ); is( $e->GetColumn(5), 5 ); is( $e->GetColumn(22), 22 ); is( $e->GetColumn(23), 0 ); is( $e->GetColumn(24), 1 ); } Padre-1.00/t/collection/0000755000175000017500000000000012237340740013541 5ustar petepetePadre-1.00/t/collection/Config-Tiny/0000755000175000017500000000000012237340741015670 5ustar petepetePadre-1.00/t/collection/Config-Tiny/t/0000755000175000017500000000000012237340741016133 5ustar petepetePadre-1.00/t/collection/Config-Tiny/t/02_main.t0000644000175000017500000001004611261553537017553 0ustar petepete#!/usr/bin/perl -w # Main testing script for Config::Tiny use strict; BEGIN { $| = 1; $^W = 1; } use UNIVERSAL; use Test::More tests => 33; use vars qw{$VERSION}; BEGIN { $VERSION = '2.12'; } # Check their perl version BEGIN { ok( $] >= 5.004, "Your perl is new enough" ); use_ok('Config::Tiny'); } is( $Config::Tiny::VERSION, $VERSION, 'Loaded correct version of Config::Tiny' ); # Test trivial creation my $Trivial = Config::Tiny->new(); ok( $Trivial, '->new returns true' ); ok( ref $Trivial, '->new returns a reference' ); # Legitimate use of UNIVERSAL::isa ok( UNIVERSAL::isa( $Trivial, 'HASH' ), '->new returns a hash reference' ); isa_ok( $Trivial, 'Config::Tiny' ); ok( scalar keys %$Trivial == 0, '->new returns an empty object' ); # Try to read in a config my $Config = Config::Tiny->read('test.conf'); ok( $Config, '->read returns true' ); ok( ref $Config, '->read returns a reference' ); # Legitimate use of UNIVERSAL::isa ok( UNIVERSAL::isa( $Config, 'HASH' ), '->read returns a hash reference' ); isa_ok( $Config, 'Config::Tiny' ); # Check the structure of the config my $expected = { '_' => { root => 'something', }, section => { one => 'two', Foo => 'Bar', this => 'Your Mother!', blank => '', }, 'Section Two' => { 'something else' => 'blah', 'remove' => 'whitespace', }, }; bless $expected, 'Config::Tiny'; is_deeply( $Config, $expected, 'Config structure matches expected' ); # Add some stuff to the trivial config and check write_string() for it $Trivial->{_} = { root1 => 'root2' }; $Trivial->{section} = { foo => 'bar', this => 'that', blank => '', }; $Trivial->{section2} = { 'this little piggy' => 'went to market' }; my $string = <read_string($string); ok( $Read, '->read_string returns true' ); is_deeply( $Read, $Trivial, '->read_string returns expected value' ); my $generated = $Trivial->write_string(); ok( length $generated, '->write_string returns something' ); ok( $generated eq $string, '->write_string returns the correct file contents' ); # Try to write a file my $rv = $Trivial->write('test2.conf'); ok( $rv, '->write returned true' ); ok( -e 'test2.conf', '->write actually created a file' ); # Try to read the config back in $Read = Config::Tiny->read('test2.conf'); ok( $Read, '->read of what we wrote returns true' ); ok( ref $Read, '->read of what we wrote returns a reference' ); # Legitimate use of UNIVERSAL::isa ok( UNIVERSAL::isa( $Read, 'HASH' ), '->read of what we wrote returns a hash reference' ); isa_ok( $Read, 'Config::Tiny' ); # Check the structure of what we read back in is_deeply( $Read, $Trivial, 'What we read matches what we wrote out' ); END { # Clean up unlink 'test2.conf'; } ##################################################################### # Bugs that happened we don't want to happen again { # Reading in an empty file, or a defined but zero length string, should yield # a valid, but empty, object. my $Empty = Config::Tiny->read_string(''); isa_ok( $Empty, 'Config::Tiny' ); is( scalar( keys %$Empty ), 0, 'Config::Tiny object from empty string, is empty' ); } { # A Section header like [ section ] doesn't end up at ->{' section '}. # Trim off whitespace from the section header. my $string = <<'END'; # The need to trim off whitespace makes a lot more sense # when you are trying to maximise readability. [ /path/to/file.txt ] this=that [ section2] this=that [section3 ] this=that END my $Trim = Config::Tiny->read_string($string); isa_ok( $Trim, 'Config::Tiny' ); ok( exists $Trim->{'/path/to/file.txt'}, 'First section created' ); is( $Trim->{'/path/to/file.txt'}->{this}, 'that', 'First section created properly' ); ok( exists $Trim->{section2}, 'Second section created' ); is( $Trim->{section2}->{this}, 'that', 'Second section created properly' ); ok( exists $Trim->{section3}, 'Third section created' ); is( $Trim->{section3}->{this}, 'that', 'Third section created properly' ); } Padre-1.00/t/collection/Config-Tiny/t/01_compile.t0000644000175000017500000000032011261553537020250 0ustar petepete#!/usr/bin/perl -w # Compile testing for Config::Tiny use strict; BEGIN { $| = 1; $^W = 1; } use Test::More tests => 2; ok( $] >= 5.004, "Your perl is new enough" ); use_ok('Config::Tiny'); exit(0); Padre-1.00/t/collection/Config-Tiny/Changes0000644000175000017500000000706711130236506017167 0ustar petepeteRevision history for Perl extension Config::Tiny 2.12 Thu 1 Nov 2007 - Converting build script from Module::Install to tinier EU:MM 2.11 Missing 2.10 Sat 20 Sep 2006 - This release contains only build-time changes - Did a little housekeeping on Makefile.PL and the unit tests - Upgrading to Module::Install 0.64 2.09 Sat 15 Jul 2006 - This release contains only build-time changes - Added a dependency on ExtUtils::MakeMaker 6.11 Module::Install may have an issue with older EU:MM installs 2.08 Sat 15 Jul 2006 - This release contains only build-time changes - Upgraded to Module::Install 0.63 2.07 Wed 10 May 2006 - This release contains only build-time changes - AutoInstall is only needed for options, so remove auto_install 2.06 Sun 23 Apr 2006 - No functional changes. - Moved test.conf to the root dir, removing last use of File::Spec - It also means we don't need FindBin, so removed that too - Upgrading to Module::Install 0.62 2.05 Thu 23 Feb 2006 - No functional changes. - Moved over from the old CVS repository to the new SVN one - Updated tests for the new release system - Upgrading to a newer Module::Install 2.04 Sat 31 Dec 2005 - No functional changes. - Upgrading to a newer Module::Install to address Cygwin problem 2.03 Fri 30 Dec 2005 - No functional changes. - POD Change: CPAN #15143 Clear things up about $! after unsuccessful read()? (flatworm) - Upgraded Makefile.PL to use Module::Install 2.02 Sun Jun 19 2005 - Add trimming of whitespace from the section names so that we can use section tags like [ section ] and have it Do What You Mean. - Cleaned up the POD a little more. 2.01 Thu Mar 24 2005 - Lars Thegler noted in CSS::Tiny that 3-argument open is not supported by 5.005. Added a small fix to change it to 2-argument open. 2.00 Fri Jul 16 2004 - Final tweaks to round out complete 5.004 and Win32 compatibility 1.9 Wed Jul 7 2004 - Applied some small optimisations from Japheth Cleaver 1.8 Wed Jun 30 2004 - Fixed a bug whereby trying to load an empty file returned an error, when it should be valid (if an empty object) 1.7 Tue Jun 22 2004 - Added a little more flexibility in the 'read' and 'read_string' methods to handle being called in unexpected, but recoverable, ways. 1.6 Mon Mar 1 2004 - Bug fix: Sections without keys didn't appear at all in the parsed struct 1.5 Wed Jan 7 2004 - Updating documentation to provide a correct location to send bug reports 1.4 Web Dec 24 2003 - Caught a warning when trying to parse an undefined string. Returns undef in that case. - Merry Christmas and a productive New Year to you all! 1.3 Fri Nov 7 2003 - Slightly altered a regex so that trailing whitespace in properties is dropped. 1.2 Wed Aug 12 15:51:12 2003 - Applied a variety of small changed designed to reduce the number of opcodes generated, without changing the functionality. This should save a few K in load overhead. 1.1 Wed Apr 23 22:56:21 2003 - When reporting a bad line, put single quotes around the lines contents in the error message. - Small updates to the pod documentation 1.0 Sat Dec 21 11:53:51 2002 - Removed file locking, since we read/write virtually atomically now - Removed mode support from ->write() it was erroneous - Removed dependency on Fcntl - Added the read_string() method - Other minor tweaks to shrink the code 0.3 Mon Dec 09 00:44:21 2002 - Upgraded tests to Test::More, to deep test the structs - Added Fcntl to the required modules 0.2 Tue Nov 26 21:51:34 2002 - Don't import Fcntl symbols 0.1 Wed Nov 13 16:50:23 2002 - original version Padre-1.00/t/collection/Config-Tiny/Makefile.PL0000644000175000017500000000113111130236506017630 0ustar petepeteuse strict; use vars qw{$VERSION}; BEGIN { require 5.003_96; $VERSION = '2.12'; } use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Config::Tiny', ABSTRACT => 'Read/Write .ini style files with as little code as possible', VERSION => $VERSION, PREREQ_PM => { # Skip on Windows to avoid breaking ActivePerl PPMs # 0.47 means 5.6.2 or newer, which everyone on Win32 has. ($^O eq 'MSWin32' ? () : ('Test::More' => '0.47')), }, ($] >= 5.005 ? ( AUTHOR => 'Adam Kennedy ', ) : ()), ($ExtUtils::MakeMaker::VERSION ge '6.30_00' ? ( LICENSE => 'perl', ) : ()), ); Padre-1.00/t/collection/Config-Tiny/test.conf0000644000175000017500000000017611130236506017514 0ustar petepeteroot=something [section] one=two Foo=Bar this=Your Mother! blank= [Section Two] something else=blah remove = whitespace Padre-1.00/t/collection/Config-Tiny/lib/0000755000175000017500000000000012237340741016436 5ustar petepetePadre-1.00/t/collection/Config-Tiny/lib/Config/0000755000175000017500000000000012237340741017643 5ustar petepetePadre-1.00/t/collection/Config-Tiny/lib/Config/Tiny.pm0000644000175000017500000001515211130236506021122 0ustar petepetepackage Config::Tiny; # If you thought Config::Simple was small... use strict; BEGIN { require 5.004; $Config::Tiny::VERSION = '2.12'; $Config::Tiny::errstr = ''; } # Create an empty object sub new { bless {}, shift } # Create an object from a file sub read { my $class = ref $_[0] ? ref shift : shift; # Check the file my $file = shift or return $class->_error( 'You did not specify a file name' ); return $class->_error( "File '$file' does not exist" ) unless -e $file; return $class->_error( "'$file' is a directory, not a file" ) unless -f _; return $class->_error( "Insufficient permissions to read '$file'" ) unless -r _; # Slurp in the file local $/ = undef; open CFG, $file or return $class->_error( "Failed to open file '$file': $!" ); my $contents = ; close CFG; $class->read_string( $contents ); } # Create an object from a string sub read_string { my $class = ref $_[0] ? ref shift : shift; my $self = bless {}, $class; return undef unless defined $_[0]; # Parse the file my $ns = '_'; my $counter = 0; foreach ( split /(?:\015{1,2}\012|\015|\012)/, shift ) { $counter++; # Skip comments and empty lines next if /^\s*(?:\#|\;|$)/; # Remove inline comments s/\s\;\s.+$//g; # Handle section headers if ( /^\s*\[\s*(.+?)\s*\]\s*$/ ) { # Create the sub-hash if it doesn't exist. # Without this sections without keys will not # appear at all in the completed struct. $self->{$ns = $1} ||= {}; next; } # Handle properties if ( /^\s*([^=]+?)\s*=\s*(.*?)\s*$/ ) { $self->{$ns}->{$1} = $2; next; } return $self->_error( "Syntax error at line $counter: '$_'" ); } $self; } # Save an object to a file sub write { my $self = shift; my $file = shift or return $self->_error( 'No file name provided' ); # Write it to the file open( CFG, '>' . $file ) or return $self->_error( "Failed to open file '$file' for writing: $!" ); print CFG $self->write_string; close CFG; } # Save an object to a string sub write_string { my $self = shift; my $contents = ''; foreach my $section ( sort { (($b eq '_') <=> ($a eq '_')) || ($a cmp $b) } keys %$self ) { my $block = $self->{$section}; $contents .= "\n" if length $contents; $contents .= "[$section]\n" unless $section eq '_'; foreach my $property ( sort keys %$block ) { $contents .= "$property=$block->{$property}\n"; } } $contents; } # Error handling sub errstr { $Config::Tiny::errstr } sub _error { $Config::Tiny::errstr = $_[1]; undef } 1; __END__ =pod =head1 NAME Config::Tiny - Read/Write .ini style files with as little code as possible =head1 SYNOPSIS # In your configuration file rootproperty=blah [section] one=twp three= four Foo =Bar empty= # In your program use Config::Tiny; # Create a config my $Config = Config::Tiny->new(); # Open the config $Config = Config::Tiny->read( 'file.conf' ); # Reading properties my $rootproperty = $Config->{_}->{rootproperty}; my $one = $Config->{section}->{one}; my $Foo = $Config->{section}->{Foo}; # Changing data $Config->{newsection} = { this => 'that' }; # Add a section $Config->{section}->{Foo} = 'Not Bar!'; # Change a value delete $Config->{_}; # Delete a value or section # Save a config $Config->write( 'file.conf' ); =head1 DESCRIPTION C is a perl class to read and write .ini style configuration files with as little code as possible, reducing load time and memory overhead. Most of the time it is accepted that Perl applications use a lot of memory and modules. The C<::Tiny> family of modules is specifically intended to provide an ultralight alternative to the standard modules. This module is primarily for reading human written files, and anything we write shouldn't need to have documentation/comments. If you need something with more power move up to L, L or one of the many other C modules. To rephrase, L does B preserve your comments, whitespace, or the order of your config file. =head1 CONFIGURATION FILE SYNTAX Files are the same format as for windows .ini files. For example: [section] var1=value1 var2=value2 If a property is outside of a section at the beginning of a file, it will be assigned to the C<"root section">, available at C<$Config-E{_}>. Lines starting with C<'#'> or C<';'> are considered comments and ignored, as are blank lines. When writing back to the config file, all comments, custom whitespace, and the ordering of your config file elements is discarded. If you need to keep the human elements of a config when writing back, upgrade to something better, this module is not for you. =head1 METHODS =head2 new The constructor C creates and returns an empty C object. =head2 read $filename The C constructor reads a config file, and returns a new C object containing the properties in the file. Returns the object on success, or C on error. When C fails, C sets an error message internally you can recover via C<errstr>>. Although in B cases a failed C will also set the operating system error variable C<$!>, not all errors do and you should not rely on using the C<$!> variable. =head2 read_string $string; The C method takes as argument the contents of a config file as a string and returns the C object for it. =head2 write $filename The C method generates the file content for the properties, and writes it to disk to the filename specified. Returns true on success or C on error. =head2 write_string Generates the file content for the object and returns it as a string. =head2 errstr When an error occurs, you can retrieve the error message either from the C<$Config::Tiny::errstr> variable, or using the C method. =head1 SUPPORT Bugs should be reported via the CPAN bug tracker at L For other issues, or commercial enhancement or support, contact the author. =head1 AUTHOR Adam Kennedy Eadamk@cpan.orgE =head1 ACKNOWLEGEMENTS Thanks to Sherzod Ruzmetov Esherzodr@cpan.orgE for L, which inspired this module by being not quite "simple" enough for me :) =head1 SEE ALSO L, L, L =head1 COPYRIGHT Copyright 2002 - 2007 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut Padre-1.00/t/collection/Padre-Null/0000755000175000017500000000000012237340741015505 5ustar petepetePadre-1.00/t/collection/Padre-Null/padre.yml0000644000175000017500000000000711141326602017311 0ustar petepete--- {} Padre-1.00/t/collection/Padre-Null/foo.pl0000644000175000017500000000005111141461351016613 0ustar petepete#!/usr/bin/perl print "Hello World!\n"; Padre-1.00/t/82_plugin_manager.t0000644000175000017500000000770511667335270015115 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan tests => 29; } use FindBin qw($Bin); use File::Spec (); use Data::Dumper qw(Dumper); use Test::NoWarnings; use t::lib::Padre; use Padre; use Padre::Constant (); use Padre::PluginManager; use POSIX qw(locale_h); my $padre = Padre->new; # Test the default loading behaviour SCOPE: { my $manager = Padre::PluginManager->new($padre); isa_ok( $manager, 'Padre::PluginManager' ); is( $manager->plugin_dir, Padre::Constant::PLUGIN_DIR, '->plugin_dir ok', ); is( keys %{ $manager->plugins }, 0, 'Found no plugins' ); ok( !defined( $manager->load_plugins ), 'load_plugins always returns undef' ); # check if we have the plugins that come with Padre cmp_ok( keys %{ $manager->plugins }, '>=', 1, 'Loaded at least one plugin' ); ok( !$manager->plugins->{'Development::Tools'}, 'No second level plugin' ); } ## Test loading single plugins SCOPE: { my $manager = Padre::PluginManager->new($padre); is( keys %{ $manager->plugins }, 0, 'No plugins loaded' ); # Load the plugin ok( !$manager->load_plugin('Padre::Plugin::My'), 'Loaded My Plugin' ); is( keys %{ $manager->plugins }, 1, 'Loaded something' ); my $handle = $manager->handle('Padre::Plugin::My'); isa_ok( $handle, 'Padre::PluginHandle' ); is( $handle->class, 'Padre::Plugin::My', 'Loaded My Plugin' ); ok( $handle->disabled, 'My Plugin is disabled' ); # Unload the plugin ok( $manager->unload_plugin('Padre::Plugin::My'), '->unload_plugin ok' ); ok( !defined( $manager->plugins->{My} ), 'Plugin no longer loaded' ); is( eval("\$Padre::Plugin::My::VERSION"), undef, 'My Plugin was cleaned up' ); } ## Test With custom plugins SCOPE: { my $custom_dir = File::Spec->catfile( $Bin, 'lib' ); my $manager = Padre::PluginManager->new( $padre, plugin_dir => $custom_dir, ); is( $manager->plugin_dir, $custom_dir ); is( keys %{ $manager->plugins }, 0 ); $manager->load_plugins; # cannot compare with the exact numbers as there might be plugins already installed cmp_ok( keys %{ $manager->plugins }, '>=', 3, 'at least 3 plugins' ) or diag( Dumper( \$manager->plugins ) ); ok( !exists $manager->plugins->{'Development::Tools'}, 'no second level plugin' ); is( $manager->handle('Padre::Plugin::TestPlugin')->class, 'Padre::Plugin::TestPlugin' ); ok( !defined $manager->plugins->{'Test::Plugin'}, 'no second level plugin' ); # try load again my $st = $manager->load_plugin('Padre::Plugin::TestPlugin'); is( $st, undef ); } # TODO: let the plugin manager do this: (so we'll also test it) my $path = File::Spec->catfile( $Bin, 'files', 'plugins' ); #diag $path; unshift @INC, $path; #diag $ENV{PADRE_HOME}; my $english = setlocale(LC_CTYPE) eq 'en_US.UTF-8' ? 1 : 0; SCOPE: { my $manager = Padre::PluginManager->new($padre); $manager->load_plugin('Padre::Plugin::A'); is $manager->plugins->{'Padre::Plugin::A'}->{status}, 'error', 'error in loading A'; my $msg1 = $english ? qr/Padre::Plugin::A - Crashed while loading\:/ : qr/.*/; like $manager->plugins->{'Padre::Plugin::A'}->errstr, qr/^$msg1 Global symbol "\$syntax_error" requires explicit package name at/, 'text of error message'; $manager->load_plugin('Padre::Plugin::B'); is $manager->plugins->{'Padre::Plugin::B'}->{status}, 'error', 'error in loading B'; my $msg2 = $english ? qr/Padre::Plugin::B - Not a Padre::Plugin subclass/ : qr/.*/; like $manager->plugins->{'Padre::Plugin::B'}->errstr, qr/^$msg2/, 'text of error message'; $manager->load_plugin('Padre::Plugin::C'); is $manager->plugins->{'Padre::Plugin::C'}->{status}, 'disabled', 'disabled in loading C'; # Doesn't have an error message since r6891: # my $msg3 = $english ? qr/Padre::Plugin::C - Does not have menus/ : qr/.*/; # like $manager->plugins->{'Padre::Plugin::C'}->errstr, # qr/$msg3/, # 'text of error message'; is $manager->plugins->{'Padre::Plugin::C'}->errstr, '', 'text of error message'; } Padre-1.00/t/61_directory_path.t0000644000175000017500000000502011622750100015106 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More tests => 27; use Test::NoWarnings; use Storable (); use File::Spec (); use Padre::Wx::Directory::Path (); my @bits = qw{ Foo Bar Baz }; ###################################################################### # Testing a file SCOPE: { my $file = Padre::Wx::Directory::Path->file(@bits); isa_ok( $file, 'Padre::Wx::Directory::Path' ); is( $file->type, Padre::Wx::Directory::Path::FILE, '->type ok' ); is( $file->name, 'Baz', '->name ok' ); is( $file->unix, 'Foo/Bar/Baz', '->unix ok' ); is_deeply( [ $file->path ], \@bits, '->path ok' ); is( $file->is_file, 1, '->is_file ok' ); is( $file->is_directory, 0, '->is_directory ok' ); } ###################################################################### # Testing a directory SCOPE: { my $directory = Padre::Wx::Directory::Path->directory(@bits); isa_ok( $directory, 'Padre::Wx::Directory::Path' ); is( $directory->type, Padre::Wx::Directory::Path::DIRECTORY, '->type ok' ); is( $directory->name, 'Baz', '->name ok' ); is( $directory->unix, 'Foo/Bar/Baz', '->unix ok' ); is_deeply( [ $directory->path ], \@bits, '->path ok' ); is( $directory->is_file, 0, '->is_file ok' ); is( $directory->is_directory, 1, '->is_directory ok' ); } ###################################################################### # Storable Compatibility SCOPE: { my $file = Padre::Wx::Directory::Path->file(@bits); isa_ok( $file, 'Padre::Wx::Directory::Path' ); my $string = Storable::freeze($file); ok( length $string, 'Got a string' ); my $round = Storable::thaw($string); is_deeply( $file, $round, 'File round-trips ok' ); $string = Storable::nfreeze($file); ok( length $string, 'Got a string' ); $round = Storable::thaw($string); is_deeply( $file, $round, 'File round-trips ok' ); } ###################################################################### # Test the null directory case SCOPE: { my $directory = Padre::Wx::Directory::Path->directory; isa_ok( $directory, 'Padre::Wx::Directory::Path' ); is( $directory->type, Padre::Wx::Directory::Path::DIRECTORY, '->type ok' ); is( $directory->name, '', '->name ok' ); is( $directory->unix, '', '->unix ok' ); is_deeply( [ $directory->path ], [], '->path ok' ); is( $directory->is_file, 0, '->is_file ok' ); is( $directory->is_directory, 1, '->is_directory ok' ); } Padre-1.00/t/04_config.t0000644000175000017500000000747012023223435013345 0ustar petepete#!/usr/bin/perl use strict; use warnings; use constant NUMBER_OF_CONFIG_OPTIONS => 161; # Move of Debug to Run Menu use Test::More tests => NUMBER_OF_CONFIG_OPTIONS * 2 + 25; use Test::NoWarnings; use File::Spec::Functions ':ALL'; use File::Temp (); BEGIN { $ENV{PADRE_HOME} = File::Temp::tempdir( CLEANUP => 1 ); } use Padre::Constant (); use Padre::Config (); # Loading the configuration subsystem should NOT result in loading Wx is( $Wx::VERSION, undef, 'Wx was not loaded during config load' ); # Create the empty config file my $empty = Padre::Constant::CONFIG_HUMAN; open( my $FILE, '>', $empty ) or die "Failed to open $empty"; print $FILE "--- {}\n"; close($FILE); # Load the config my $config = Padre::Config->read; isa_ok( $config, 'Padre::Config' ); isa_ok( $config->host, 'Padre::Config::Host' ); isa_ok( $config->human, 'Padre::Config::Human' ); is( $config->project, undef, '->project is undef' ); is( $config->restart, 0, '->restart is false' ); # Loading the config file should not result in Wx loading is( $Wx::VERSION, undef, 'Wx was not loaded during config read' ); # Check that the defaults work my @names = sort { length($a) <=> length($b) or $a cmp $b } keys %Padre::Config::SETTING; is( scalar(@names), NUMBER_OF_CONFIG_OPTIONS, 'Expected number of config options' ); foreach my $name (@names) { ok( defined( $config->$name() ), "->$name is defined" ); if ( $Portable::ENABLED and Padre::Config->meta($name)->type == Padre::Constant::PATH and defined $config->$name() ) { ok( $config->$name() =~ /$Padre::Config::DEFAULT{$name}$/, "->$name defaults ok", ); } else { is( $config->$name(), $Padre::Config::DEFAULT{$name}, "->$name defaults ok", ); } } # The config version number is a requirement for every config and # the only key which is allowed to live in an empty config. my %test_config = (); # ... and that they don't leave a permanent state. is_deeply( +{ %{ $config->human } }, \%test_config, 'Defaults do not leave permanent state (human)', ); is_deeply( +{ %{ $config->host } }, \%test_config, 'Defaults do not leave permanent state (host)', ); # Store the config again ok( $config->write, '->write ok' ); # Saving the config file should not result in Wx loading is( $Wx::VERSION, undef, 'Wx was not loaded during config write' ); # Set values on both the human and host sides ok( $config->set( main_lockinterface => 0 ), '->set(human) ok', ); ok( $config->set( main_maximized => 1 ), '->set(host) ok', ); # Save the config again ok( $config->write, '->write ok' ); # Read in a fresh version of the config my $config2 = Padre::Config->read; # Confirm the config is round-trip safe is_deeply( $config2, $config, 'Config round-trips ok' ); # No configuration operations require loading Wx is( $Wx::VERSION, undef, 'Wx is never loaded during config operations' ); # Check clone support my $copy = $config->clone; is_deeply( $copy, $config, '->clone ok' ); ###################################################################### # Check configuration values not in the relevant option list SCOPE: { my $bad = Padre::Config->new( Padre::Config::Host->_new( { # Invalid option lang_perl5_lexer => 'Bad::Class::Does::Not::Exist', } ), bless { revision => Padre::Config::Human->VERSION, # Valid option startup_files => 'new', # Invalid key nonexistant => 'nonexistant', }, 'Padre::Config::Human' ); isa_ok( $bad, 'Padre::Config' ); isa_ok( $bad->host, 'Padre::Config::Host' ); isa_ok( $bad->human, 'Padre::Config::Human' ); is( $bad->startup_files, 'new', '->startup_files ok' ); # Configuration should ignore a value not in configuration and go # with the default instead. is( $bad->default('lang_perl5_lexer'), '', 'Default Perl 5 lexer ok' ); is( $bad->lang_perl5_lexer, '', '->lang_perl5_lexer matches default' ); } Padre-1.00/t/92_padre_file.t0000644000175000017500000000236011622750100014170 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More tests => 26; use Padre::File; my $file = Padre::File->new(); ok( !defined($file), 'No filename' ); # Padre::File::Local our $testfile = 't/files/padre-file-test'; ok( open( my $fh, '>', $testfile ), 'Local: Create test file' ); print $fh "foo"; close $fh; is( -s $testfile, 3, 'Local: Check test file size' ); $file = Padre::File->new($testfile); ok( defined($file), 'Local: Create Padre::File object' ); is( -s $testfile, 3, 'Local: Check test file size again' ); ok( ref($file) eq 'Padre::File::Local', 'Local: Check module' ); ok( $file->{protocol} eq 'local', 'Local: Check protocol' ); my @Stat1 = stat($testfile); my @Stat2 = $file->stat; for ( 0 .. $#Stat1 ) { ok( $Stat1[$_] eq $Stat2[$_], 'Local: Check stat value ' . $_ ); } ok( $file->can_run, 'Local: Can run' ); # Check the most interesting functions only: ok( $file->exists, 'Local: file exists' ); is( $file->size, $Stat1[7], 'Local: file size' ); is( $file->mtime, $Stat1[9], 'Local: file size' ); is( $file->basename, 'padre-file-test', 'Local: basename' ); # Allow both results (for windows): like( $file->dirname, qr/(^|[\/\\])t[\/\\]files/, 'Local: dirname' ); undef $file; END { unlink $testfile; } Padre-1.00/t/java/0000755000175000017500000000000012237340740012327 5ustar petepetePadre-1.00/t/java/functionlist.t0000644000175000017500000000501211647204622015235 0ustar petepete#!/usr/bin/perl # Tests the logic for extracting the list of functions in a Java program use strict; use warnings; use Test::More; BEGIN { unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } plan( tests => 9 ); } use t::lib::Padre; use Padre::Document::Java::FunctionList (); # Sample code we will be parsing my $code = <<'END_JAVA'; /** public static void bogus(a, b) { } */ /* public static void bogus(a, b) { } */ //public static void bogus(a, b) { // public static void bogus(a, b) { // ticket #1351 public static void main(String args[]) { } public abstract void myAbstractMethod(); public byte[] toByteArray(); public static T[] genericToArray(T... elements) { return elements; } public abstract List getList(); private int subtract(int a, int b) { return a - b; } private int add(int a, int b) { return a + b; } END_JAVA ###################################################################### # Basic Parsing SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Java::FunctionList', [ text => $code ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ main myAbstractMethod toByteArray genericToArray getList subtract add } ], 'Found expected functions', ); } ###################################################################### # Alphabetical Ordering SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Java::FunctionList', [ text => $code, order => 'alphabetical', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ add genericToArray getList main myAbstractMethod subtract toByteArray } ], 'Found expected functions (alphabetical)', ); } ###################################################################### # Alphabetical Ordering (Private Last) SCOPE: { # Create the function list parser my $task = new_ok( 'Padre::Document::Java::FunctionList', [ text => $code, order => 'alphabetical_private_last', ] ); # Executing the parsing job ok( $task->run, '->run ok' ); # Check the result of the parsing is_deeply( $task->{list}, [ qw{ add genericToArray getList main myAbstractMethod subtract toByteArray } ], 'Found expected functions (alphabetical_private_last)', ); } Padre-1.00/xt/0000755000175000017500000000000012237340741011577 5ustar petepetePadre-1.00/xt/files/0000755000175000017500000000000012237340741012701 5ustar petepetePadre-1.00/xt/files/rename_variable_stress_test.pl0000644000175000017500000000144511422540646021021 0ustar petepete # this is nonsensical code which is intended to # provide a base for manually stress-testing the # find-variable-declaration and # rename-variable # functions. # TODO: Proper unit-testification my $foo; while (!$foo) { my $bar; foreach my $i (0..100) { if ($i== 5) { $foo = 1; $bar += 1; my @bAz; my $bAz; my $baz = 4; my @baz = (5); my %baz = qw(a b); for (my $j = 0; $j < @baz; $j++) { $#baz--; $#bAz--; $bAz[2] = "blah $baz"; $baz = "blub ${bAz} @bAz @{bAz} $bAz[0] $#bAz $baz{foo} @baz{foo}"; $bAz++; $baz{foo} = "bar"; @baz{bar} = ("hi"); } } } if ($ARGV[0]) { print "hi"; } if (rand() < 0.2) { $foo = 0; $bar -= 1; } } Padre-1.00/xt/files/TODO_test.pm0000644000175000017500000002165612074315403015051 0ustar petepetepackage Padre::Wx::Main; # # WARNING: This is a sample file for testing the TODO list, don't use it as Padre source! # # Usage: Open this file, enable the TODO list from the view menu and you should get 3 # lines in the list. Double click each of them to go to each item. use utf8; # TODO: First todo test =encoding UTF-8 =pod =head1 NAME Padre::Wx::Main - The main window for the Padre IDE =head1 DESCRIPTION C implements Padre's main window. It is the window containing the menus, the notebook with all opened tabs, the various sub-windows (outline, subs, output, errors, etc). It inherits from C, so check Wx documentation to see all the available methods that can be applied to it besides the added ones (see below). =cut use 5.008005; use strict; use warnings; use FindBin; use Cwd (); use Padre::Wx (); our $VERSION = '0.00'; our $COMPATIBLE = '0.00'; our @ISA = qw{ Padre::Wx }; use constant SECONDS => 1000; =pod =head1 PUBLIC API =head2 Constructor There's only one constructor for this class. =head3 C my $main = Padre::Wx::Main->new($ide); Create and return a new Padre main window. One should pass a C object as argument, to get a reference to the Padre application. =cut # NOTE: Yes this method does get a little large, but that's fine. # It's better to have one bigger method that is easily # understandable rather than scattering tightly-related code # all over the file in unrelated places. # If you feel the need to make this smaller, try to make each # individual step tighter and better abstracted. sub new { my $class = shift; my $ide = shift; unless ( Params::Util::_INSTANCE( $ide, 'Padre' ) ) { Carp::croak("Did not provide an ide object to Padre::Wx::Main->new"); } # Bootstrap some Wx internals # TODO second test case Wx::Log::SetActiveTarget( Wx::LogStderr->new ); Wx::InitAllImageHandlers(); # Initialise the style and position my $config = $ide->config; my $size = [ $config->main_width, $config->main_height ]; my $position = [ $config->main_left, $config->main_top ]; my $style = Wx::wxDEFAULT_FRAME_STYLE; # If we closed while maximized on the previous run, # the previous size is completely suspect. # This doesn't work on Windows, # so we use a different mechanism for it. if ( not Padre::Constant::WIN32 and $config->main_maximized ) { $style |= Wx::wxMAXIMIZE; } # Generate a smarter default size than Wx does if ( grep { defined $_ and $_ eq '-1' } ( @$size, @$position ) ) { my $rect = Padre::Wx::Display::primary_default(); $size = $rect->GetSize; $position = $rect->GetPosition; } # Create the underlying Wx frame my $self = $class->SUPER::new( undef, -1, 'Padre', $position, $size, $style, ); # On Windows you need to create the window and maximise it # as two separate steps. Doing this makes the window layout look # wrong, but at least it has the correct proportions. To fix the # buggy layout we will unmaximize and remaximize it again later # just before we ->Show the window. if ( Padre::Constant::WIN32 and $config->main_maximized ) { $self->Maximize(1); } # Start with a simple placeholder title $self->SetTitle('Padre'); # Save a reference back to the parent IDE $self->{ide} = $ide; # Save a reference to the configuration object. # This prevents tons of ide->config $self->{config} = $config; # Remember where the editor started from, # this could be handy later. $self->{cwd} = Cwd::cwd(); # There is a directory locking problem on Win32. # If we open Padre from a directory and leave the Cwd cursor # in that directory, then it can NEVER be deleted. # Having recorded the "current working directory" move # the OS directory cursor away from this starting directory, # so that Padre won't hold an implicit OS lock on it. # NOTE: If changing the directory fails, ignore errors for now, # since that means we have WAY bigger problems. if (Padre::Constant::WIN32) { chdir( File::HomeDir->my_home ); } # Create the lock manager before any gui operations, # so that we can do locking operations during startup. $self->{locker} = Padre::Locker->new($self); # Bootstrap locale support before we start fiddling with the GUI. my $startup_locale = $ide->opts->{startup_locale}; $self->{locale} = ( $startup_locale ? Padre::Locale::object($startup_locale) : Padre::Locale::object() ); # A large complex application looks, frankly, utterly stupid # if it gets very small, or even mildly small. $self->SetMinSize( Wx::Size->new( 500, 400 ) ); # Bootstrap drag and drop support Padre::Wx::FileDropTarget->set($self); # Bootstrap the action system Padre::Wx::ActionLibrary->init($self); # Bootstrap the wizard system Padre::Wx::WizardLibrary->init($self); # Temporary store for the notebook tab history # It should probably be in the notebook object. $self->{page_history} = []; # Set the window manager $self->{aui} = Padre::Wx::AuiManager->new($self); # Add some additional attribute slots $self->{marker} = {}; # Create the menu bar $self->{menu} = Padre::Wx::Menubar->new($self); $self->SetMenuBar( $self->{menu}->wx ); # Create the tool bar if ( $config->main_toolbar ) { require Padre::Wx::ToolBar; $self->SetToolBar( Padre::Wx::ToolBar->new($self) ); $self->GetToolBar->Realize; } # Create the status bar my $statusbar = Padre::Wx::StatusBar->new($self); $self->SetStatusBar($statusbar); # Create the notebooks (document and tools) that # serve as the main AUI manager GUI elements. $self->{notebook} = Padre::Wx::Notebook->new($self); # Set up the pane close event Wx::Event::EVT_AUI_PANE_CLOSE( $self, sub { shift->on_aui_pane_close(@_); }, ); # Special Key Handling Wx::Event::EVT_KEY_UP( $self, sub { shift->key_up(@_); }, ); # Deal with someone closing the window Wx::Event::EVT_CLOSE( $self, sub { shift->on_close_window(@_); }, ); # Scintilla Event Hooks Wx::Event::EVT_STC_UPDATEUI( $self, -1, \&on_stc_updateui ); Wx::Event::EVT_STC_CHANGE( $self, -1, \&on_stc_change ); Wx::Event::EVT_STC_STYLENEEDED( $self, -1, \&on_stc_style_needed ); Wx::Event::EVT_STC_CHARADDED( $self, -1, \&on_stc_char_added ); Wx::Event::EVT_STC_DWELLSTART( $self, -1, \&on_stc_dwell_start ); # Use Padre's icon if (Padre::Constant::WIN32) { # Windows needs its ICO'n file for Padre to look cooler in # the task bar, task switch bar and task manager $self->SetIcons(Padre::Wx::Icon::PADRE_ICON_FILE); } else { $self->SetIcon(Padre::Wx::Icon::PADRE); } # Show the tools that the configuration dictates. # Use the fast and crude internal versions here only, # so we don't accidentally trigger any configuration writes. $self->show_view( tasks => $config->main_tasks ); $self->show_view( syntax => $config->main_syntax ); $self->show_view( output => $config->main_output ); $self->show_view( outline => $config->main_outline ); $self->show_view( command => $config->main_command ); $self->show_view( functions => $config->main_functions ); $self->show_view( directory => $config->main_directory ); # Lock the panels if needed $self->aui->lock_panels( $config->main_lockinterface ); # This require is only here so it can follow this constructor # when it moves to being created on demand. require Padre::Wx::Debugger; $self->{debugger} = Padre::Wx::Debugger->new; # We need an event immediately after the window opened # (we had an issue that if the default of main_statusbar was false it did # not show the status bar which is ok, but then when we selected the menu # to show it, it showed at the top) so now we always turn the status bar on # at the beginning and hide it in the timer, if it was not needed #$statusbar->Show; $self->dwell_start( timer_start => 1 ); return $self; } # HACK: When the $Padre::INVISIBLE variable is set (during testing) never # show the main window. This exists because people tend to get annoyed when # you flicker a bunch of windows on and off the screen during testing. sub Show { return shift->SUPER::Show( $Padre::Test::VERSION ? 0 : @_ ); } =pod =head3 C $main->on_open_in_file_browser( $filename ); Opens the current C<$filename> using the operating system's file browser TODO: Test line in pod =cut sub on_open_in_file_browser { my ( $self, $filename ) = @_; require Padre::Util::FileBrowser; #TO-DO test line 3 Padre::Util::FileBrowser->open_in_file_browser($filename); } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/xt/files/broken.bin0000644000175000017500000000002411356162355014653 0ustar petepeteQ"Padre-1.00/xt/pod.t0000644000175000017500000000125711452515377012562 0ustar petepete#!/usr/bin/perl # Copied from http://svn.ali.as/cpan/tools/shared/98_pod.t # Test that the syntax of our POD documentation is valid use strict; BEGIN { $| = 1; $^W = 1; } my @MODULES = ( 'Pod::Simple 3.07', 'Test::Pod 1.26', ); # Don't run tests for installs use Test::More; unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } # Load the testing modules foreach my $MODULE (@MODULES) { eval "use $MODULE"; if ($@) { $ENV{RELEASE_TESTING} ? die("Failed to load required release-testing module $MODULE") : plan( skip_all => "$MODULE not available for testing" ); } } all_pod_files_ok(); Padre-1.00/xt/critic-util.ini0000644000175000017500000000470311621716010014524 0ustar petepete# This is the Perl::Critic policy file for Padre. # # The general rule here is to only add one rule at a time to this file, # and generally only in situations where we will not generate many false # positives (requiring spammy # no critic entries) and where we will not # generate cargo cult behaviour in contributors. # # For example, using the ProhibitExcessComplexity policy would be a BAD idea # for Padre, because many of the classes that represent Wx widgets and # dialogs need to have large (and sometimes complex) constructors. # Prohibiting complexity results in "Bulldozing" behaviour, where arbitrary # chunks of constructors get removed and put in _setup_whatever methods. # The constructor is now just as complex as it always was, except that now # the code is scatterred all over the file and it is even harder to maintain # than it was in one big method. severity = 4 # Disable Perl::Critic::More if you are unfortunate enough to have installed it theme = not more ###################################################################### # Disabling critic sucks, configure a better policy [Miscellanea::ProhibitUnrestrictedNoCritic] severity = 3 [Miscellanea::ProhibitUselessNoCritic] severity = 5 ###################################################################### # Temporarily downgraded as the noise obscures more important tests [Subroutines::RequireFinalReturn] severity = 3 [Subroutines::RequireArgUnpacking] severity = 3 [Subroutines::ProhibitBuiltinHomonyms] severity = 3 ###################################################################### # Policies that Padre disagrees with or tolerates as worth the risk [-BuiltinFunctions::ProhibitStringyEval] [-ClassHierarchies::ProhibitExplicitISA] [-CodeLayout::ProhibitHardTabs] [-ControlStructures::ProhibitMutatingListFunctions] [-ControlStructures::ProhibitUnlessBlocks] [-Subroutines::ProhibitExplicitReturnUndef] [-TestingAndDebugging::ProhibitNoStrict] [-TestingAndDebugging::ProhibitNoWarnings] [-ValuesAndExpressions::ProhibitConstantPragma] [-ValuesAndExpressions::ProhibitMixedBooleanOperators] [-Variables::ProhibitPunctuationVars] ###################################################################### # Policies that we allow, but only in non-installed (testing) code # Everything ABOVE this section should be the same between both # of the critic config files. [-Variables::RequireLocalizedPunctuationVars] [-Modules::ProhibitAutomaticExportation] [-Modules::ProhibitMultiplePackages] Padre-1.00/xt/pragmas.t0000644000175000017500000000155012237323544013421 0ustar petepete# # Tests all *.pm files for # use 5.008/5.010/5.011; # use strict; # use warnings; # use strict; use warnings; use Test::More; use File::Find::Rule; # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } my @files = File::Find::Rule->name('*.pm')->file->in('lib'); plan tests => scalar @files; my $pragma = qr{use (?:5.008(005)?|5.010|5.011);\s*}; #use v5.10 will trigger a warning on 5.10.0 $pragma = qr{${pragma}use strict;\s*}; $pragma = qr{${pragma}use warnings;\s*}; foreach my $file (@files) { my $content = slurp($file); # Ignore utf8 pragmas $content =~ s/^use utf8;\n//m; ok( $content =~ qr{$pragma}, $file ); } sub slurp { my $file = shift; open my $fh, '<', $file or die "Could not open '$file' $!'"; local $/ = undef; return <$fh>; } Padre-1.00/xt/badcode.t0000644000175000017500000002535011744002274013350 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan( skip_all => 'Needs DISPLAY' ); exit(0); } } use Params::Util ':ALL'; use File::Find::Rule; use PPI::Document; # Calculate the plan my %modules = map { my $class = $_; $class =~ s/\//::/g; $class =~ s/\.pm$//; $class => "lib/$_" } File::Find::Rule->relative->name('*.pm')->file->in('lib'); my @t_files = glob "t/*.t"; #map {"t/$_"} File::Find::Rule->relative->name('*.t')->file->in('t'); plan( tests => scalar( keys %modules ) * 12 + scalar(@t_files) ); my %SKIP = map { ( "t/$_" => 1 ) } qw( 01_compile.t 06_utils.t 07_version.t 08_style.t 14_warnings.t 21_task_thread.t 22_task_worker.t 23_task_chain.t 24_task_master.t 25_task_handle.t 26_task_eval.t 41_perl_project.t 42_perl_project_temp.t 61_directory_path.t 62_directory_task.t 63_directory_project.t 83_autosave.t 85_commandline.t 92_padre_file.t 93_padre_filename_win.t 94_padre_file_remote.t ); # A pathetic way to try to avoid tests that would use the real ~/.padre of the user # that would be especially problematic if ran under root foreach my $t_file (@t_files) { if ( $SKIP{$t_file} ) { my $Test = Test::Builder->new; $Test->skip($t_file); } else { my $content = read_file($t_file); ok $content =~ qr/PADRE_HOME|use\s+t::lib::Padre/, "Having PADRE_HOME or use t::lib::Padre $t_file"; } } # Compile all of Padre use File::Temp; use POSIX qw(locale_h); $ENV{PADRE_HOME} = File::Temp::tempdir( CLEANUP => 1 ); foreach my $module ( sort keys %modules ) { require_ok($module); ok( $module->VERSION, "$module: Found \$VERSION" ); } # List of non-Wx modules still having Wx code. # This list is way-the-hell too long, stop putting stuff in here just # to prevent failing the test. It should be an absolute last resort. # Go away and try to find a way to not have Wx stuff in your code first. my %TODO = map { $_ => 1 } qw( Padre::CPAN Padre::Document Padre::File::FTP Padre::Locale Padre::MIME Padre::Plugin Padre::Plugin::Devel Padre::Plugin::My Padre::PluginManager Padre::Task::LaunchDefaultBrowser Padre::TaskHandle ); foreach my $module ( sort keys %modules ) { my $content = read_file( $modules{$module} ); # Checking if only modules with Wx in their name depend on Wx if ( $module =~ /^Padre::Wx/ or $module =~ /^Wx::/ ) { my $Test = Test::Builder->new; $Test->skip("$module is a Wx module"); } elsif ( $module =~ /^Padre::Plugin::/ ) { # Plugins are exempt from this rule. my $Test = Test::Builder->new; $Test->skip("$module is a Wx module"); } else { my ($error) = $content =~ m/^use\s+.*Wx.*;/gmx; my $Test = Test::Builder->new; if ( $TODO{$module} ) { $Test->todo_start("$module should not contain Wx but it still does"); } ok( !$error, "'$module' does not use Wx" ) or diag $error; if ( $TODO{$module} ) { $Test->todo_end; } } ok( $content !~ /\$DB\:\:single/, $module . ' uses $DB::single - please remove before release', ); # Load the document my $document = PPI::Document->new( $modules{$module}, readonly => 1, ); ok( $document, "$module: Parsable by PPI" ); unless ($document) { diag( PPI::Document->errstr ); } # If a class has a current method, never use Padre::Current directly SKIP: { unless (eval { $module->can('current') } and $module ne 'Padre::Current' and $module ne 'Padre::Wx::Role::Main' ) { skip( "No ->current method", 1 ); } my $good = !$document->find_any( sub { $_[1]->isa('PPI::Token::Word') or return ''; $_[1]->content eq 'Padre::Current' or return ''; my $arrow = $_[1]->snext_sibling or return ''; $arrow->isa('PPI::Token::Operator') or return ''; $arrow->content eq '->' or return ''; my $method = $arrow->snext_sibling or return ''; $method->isa('PPI::Token::Word') or return ''; $method->content ne 'new' or return ''; return 1; } ); ok( $good, "$module: Don't use Padre::Current when ->current is possible" ); } # If a class has an ide or main method, never use Padre->ide directly SKIP: { unless ( eval { $module->can('ide') or $module->can('main') } # and $module ne 'Padre::Wx::Dialog::RegexEditor' and $module ne 'Padre::Current' ) { skip( "$module: No ->ide or ->main method", 1 ); } my $good = !$document->find_any( sub { $_[1]->isa('PPI::Token::Word') or return ''; $_[1]->content eq 'Padre' or return ''; my $arrow = $_[1]->snext_sibling or return ''; $arrow->isa('PPI::Token::Operator') or return ''; $arrow->content eq '->' or return ''; my $method = $arrow->snext_sibling or return ''; $method->isa('PPI::Token::Word') or return ''; $method->content eq 'ide' or return ''; return 1; } ); ok( $good, "$module: Don't use Padre->ide when ->ide or ->main is possible" ); } # Method names with :: in them can only be to SUPER::method SCOPE: { my $good = !$document->find_any( sub { $_[1]->isa('PPI::Token::Operator') or return ''; $_[1]->content eq '->' or return ''; # Get the method name my $name = $_[1]->snext_sibling or return ''; $name->isa('PPI::Token::Word') or return ''; $name->content =~ /::/ or return ''; $name->content !~ /^SUPER::\w+$/ or return ''; # Naughty naughty diag( "$module: Evil method name '$name', it should probably be a function call... maybe. Change it, but be careful." ); return 1; } ); ok( $good, "$module: Don't use extended Method::name other than SUPER::name" ); } # Avoid expensive regexp result variables SKIP: { if ( $module eq 'Padre::Wx::Dialog::RegexEditor' ) { skip( 'Ignoring RegexEditor', 1 ); } my $good = !$document->find_any( sub { $_[1]->isa('PPI::Token') or return ''; $_[1]->significant or return ''; $_[1]->content =~ /[^\$\'\"]\$[\&\'\`]/ or return ''; return 1; } ); ok( $good, "$module: Uses expensive regexp-variable \$&, \$\' or \$`" ); } # Check for method calls that don't exist SKIP: { if ( $module =~ /\bRole\b/ ) { skip( "Ignoring module $module", 1 ); } if ( $module eq 'Padre::Autosave' ) { skip( 'Ignoring flaky ORLite usage in Padre::Autosave', 1 ); } my $tokens = $document->find( sub { $_[1]->isa('PPI::Token::Word') or return ''; _IDENTIFIER( $_[1]->content ) or return ''; # Is it a method my $operator = $_[1]->sprevious_sibling or return ''; $operator->isa('PPI::Token::Operator') or return ''; $operator->content eq '->' or return ''; # Get the method name my $object = $operator->sprevious_sibling or return ''; $object->isa('PPI::Token::Symbol') or return ''; $object->content eq '$self' or return ''; return 1; } ); # Filter the tokens to get the method list my %seen = (); my @bad = (); if ($tokens) { @bad = grep { not $module->can($_) } grep { not $seen{$_} } map { $_->content } @$tokens; } # There should be no missing methods is( scalar(@bad), 0, 'No missing methods' ); foreach my $method (@bad) { diag("$module: Cannot resolve method \$self->$method"); } } # Check for superfluous $self->current->foo that could be $self->foo SKIP: { my %seen = (); my $tokens = $document->find( sub { # Start with a candidate foo method name $_[1]->isa('PPI::Token::Word') or return ''; my $method = $_[1]->content or return ''; _IDENTIFIER($method) or return ''; $seen{$method}++ and return ''; Padre::Current->can($method) or return ''; $module->can($method) or return ''; # First method to the left my $rightop = $_[1]->sprevious_sibling or return ''; $rightop->isa('PPI::Token::Operator') or return ''; $rightop->content eq '->' or return ''; # The ->current method call my $current = $rightop->sprevious_sibling or return ''; $current->isa('PPI::Token::Word') or return ''; $current->content eq 'current' or return ''; # Second method to the left my $leftop = $current->sprevious_sibling or return ''; $leftop->isa('PPI::Token::Operator') or return ''; $leftop->content eq '->' or return ''; # $self on the far left my $variable = $leftop->sprevious_sibling or return ''; if ( $variable->isa('PPI::Token::Symbol') ) { $variable->content eq '$self' and return 1; } # Alternatively, $_[0] on the far left $variable->isa('PPI::Structure::Subscript') or return ''; my $subscript = $variable; $subscript->content eq '[0]' or return ''; $variable = $subscript->sprevious_sibling or return ''; $variable->isa('PPI::Token::Magic') or return ''; $variable->content eq '$_' or return ''; $variable->sprevious_sibling and return ''; # In the form sub foo { $_[0]... my $statement = $variable->parent or return ''; $statement->isa('PPI::Statement') or return ''; my $block = $statement->parent or return ''; $block->isa('PPI::Structure::Block') or return ''; my $sub = $block->parent or return ''; $sub->isa('PPI::Statement::Sub') or return ''; return 1; } ); # Filter the tokens to get the method list my @bad = (); if ($tokens) { @bad = map { $_->content } @$tokens; } # There should be no superfluous methods is( scalar(@bad), 0, 'No ->current->superfluous methods' ); foreach my $method (@bad) { diag("$module: Superfluous ->current->$method, use ->$method"); } } # Check for Wx::wxFOO constants that should be Wx::FOO SKIP: { if ( $module eq 'Padre::Wx::Constant' ) { skip( "Ignoring module $module", 1 ); } if ( $module eq 'Padre::Startup' ) { skip( "Ignoring module $module", 1 ); } my %seen = (); my $tokens = $document->find( sub { $_[1]->isa('PPI::Token::Word') or return ''; $_[1]->content =~ /^Wx::wx([A-Z].+)/ or return ''; # Is this a new one? my $name = $1; return '' if $seen{$name}++; # Does the original and shortened forms of the # constant actually exist? Wx->can("wx$name") or return ''; Wx->can($name) or return ''; # wxVERSION is a special case $name eq 'VERSION' and return ''; return 1; } ); # Filter for the constant list my @bad = (); if ($tokens) { @bad = map { $_->content } @$tokens; } # There should be no unconverted wxCONSTANTS is( scalar(@bad), 0, 'No uncoverted wxCONSTANTS' ); foreach my $name (@bad) { diag("$module: Unconverted constant $name"); } } # Don't make direct system calls, use a Padre API instead # SKIP: { # my $good = !$document->find_any('PPI::Token::QuoteLike::Command'); # ok( $good, "$module: Makes direct system calls with qx" ); # } } sub read_file { my $file = shift; open my $fh, '<', $file or die "Could not read '$file': $!"; local $/ = undef; return <$fh>; } 1; Padre-1.00/xt/compile.t0000644000175000017500000000340211632101745013410 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } use Test::Script; use File::Temp; use File::Find::Rule; use File::Spec; use POSIX qw(locale_h); local $ENV{PADRE_HOME} = File::Temp::tempdir( CLEANUP => 1 ); my @files = File::Find::Rule->relative->file->name('*.pm')->in('lib'); plan( tests => 2 * @files + 1 ); # diag( "Locale: " . setlocale(LC_CTYPE) ); my $out = File::Spec->catfile( $ENV{PADRE_HOME}, 'out.txt' ); my $err = File::Spec->catfile( $ENV{PADRE_HOME}, 'err.txt' ); foreach my $file (@files) { my $module = $file; $module =~ s/[\/\\]/::/g; $module =~ s/\.pm$//; if ( $module eq 'Padre::CPAN' ) { foreach ( 1 .. 2 ) { Test::More->builder->skip("Cannot load CPAN shell under the CPAN shell"); } next; } if ( $^O ne 'MSWin32' and $file eq 'Padre/Util/Win32.pm' ) { foreach ( 1 .. 2 ) { Test::More->builder->skip("'$file' is for Windows only"); } next; } system qq($^X -e "require $module; print 'ok';" > $out 2>$err); my $err_data = slurp($err); is( $err_data, '', "STDERR of $file" ); my $out_data = slurp($out); is( $out_data, 'ok', "STDOUT of $file" ); } script_compiles('script/padre'); # Bail out if any of the tests failed BAIL_OUT("Aborting test suite") if scalar grep { not $_->{ok} } Test::More->builder->details; ###################################################################### # Support Functions sub slurp { my $file = shift; open my $fh, '<', $file or die $!; local $/ = undef; my $buffer = <$fh>; close $fh; return $buffer; } Padre-1.00/xt/meta.t0000644000175000017500000000116511452515377012724 0ustar petepete#!/usr/bin/perl # Copied from http://svn.ali.as/cpan/tools/shared/98_pod.t # Test that our META.yml file matches the current specification. use strict; BEGIN { $| = 1; $^W = 1; } my $MODULE = 'Test::CPAN::Meta 0.12'; # Don't run tests for installs use Test::More; unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } # Load the testing module eval "use $MODULE"; if ($@) { $ENV{RELEASE_TESTING} ? die("Failed to load required release-testing module $MODULE") : plan( skip_all => "$MODULE not available for testing" ); } meta_yaml_ok(); Padre-1.00/xt/test-plugin.t0000644000175000017500000000461612027757740014256 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; # Handle various situations in which we should not run unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; } unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan skip_all => 'Author tests not required for installation'; } unless (0) { # Test disabled as the --with-plugin mechanism was terrible plan skip_all => 'Required mechanism that violated encapsulation'; } # use Test::NoWarnings; use File::Temp (); use File::Spec (); use Capture::Tiny (); plan tests => 5; my $devpl; # Search for dev for ( '.', '..', '../..', 'blib/lib', 'lib' ) { if ( $^O eq 'MSWin32' ) { next unless -e File::Spec->catfile( $_, 'dev' ); } else { next unless -x File::Spec->catfile( $_, 'dev' ); } $devpl = File::Spec->catfile( $_, 'dev' ); last; } diag "devpl '$devpl'"; use_ok('Padre::Perl'); my $cmd; my @chances = ( Padre::Perl::cperl() . ' ', '"' . $^X . '" ', 'perl ', 'wperl ', ); push @chances, map {"$_ "} grep { -e $_ } qw(/usr/bin/perl /usr/pkg/bin/perl); push @chances, 'C:\\strawberry\\perl\\bin\\perl.exe ' if $^O =~ /MSWin32/i; unshift @chances, '' if $^O eq 'linux'; push @chances, '' if $^O ne 'linux'; for my $prefix (@chances) { my $try = "$prefix$devpl --help"; diag "Try: '$try'"; my $res = qx{$try}; #diag "Result: $res"; next if not defined $res; next unless $res =~ /(run Padre in the command line|\-\-fulltrace|\-\-actionqueue)/; $cmd = $prefix; last; } # The above will fail even if the user has not run # perl Makefile.PL ; make # so the error message below is not really good plan skip_all => 'Need some Perl for this test' unless defined($cmd); ok( 1, 'Using Perl: ' . $cmd ); # Create temp dir my $dir = File::Temp->newdir; $ENV{PADRE_HOME} = $dir->dirname; # Complete the dev - command $cmd .= $devpl . ' --invisible -- --with-plugin=Padre::Plugin::Test --home=' . $dir->dirname; $cmd .= ' ' . File::Spec->catfile( $dir->dirname, 'newfile.txt' ); $cmd .= ' --actionqueue=edit.copy_filename,edit.paste,file.save,file.quit'; diag "Command is: '$cmd'"; my ( $stdout, $stderr ) = Capture::Tiny::capture { system($cmd); }; diag $stdout; diag $stderr; like( $stdout, qr/\Q[[[TEST_PLUGIN:enable]]]\E/, 'plugin enabled' ); like( $stdout, qr/\Q[[[TEST_PLUGIN:before_save]]]\E/, 'before save hook' ); like( $stdout, qr/\Q[[[TEST_PLUGIN:after_save]]]\E/, 'before save hook' ); done_testing(); Padre-1.00/xt/critic-core.ini0000644000175000017500000000435311621716010014500 0ustar petepete# This is the Perl::Critic policy file for Padre. # # The general rule here is to only add one rule at a time to this file, # and generally only in situations where we will not generate many false # positives (requiring spammy # no critic entries) and where we will not # generate cargo cult behaviour in contributors. # # For example, using the ProhibitExcessComplexity policy would be a BAD idea # for Padre, because many of the classes that represent Wx widgets and # dialogs need to have large (and sometimes complex) constructors. # Prohibiting complexity results in "Bulldozing" behaviour, where arbitrary # chunks of constructors get removed and put in _setup_whatever methods. # The constructor is now just as complex as it always was, except that now # the code is scatterred all over the file and it is even harder to maintain # than it was in one big method. severity = 4 # Disable Perl::Critic::More if you are unfortunate enough to have installed it theme = not more ###################################################################### # Disabling critic sucks, configure a better policy [Miscellanea::ProhibitUnrestrictedNoCritic] severity = 3 [Miscellanea::ProhibitUselessNoCritic] severity = 5 ###################################################################### # Temporarily downgraded as the noise obscures more important tests [Subroutines::RequireFinalReturn] severity = 3 [Subroutines::RequireArgUnpacking] severity = 3 [Subroutines::ProhibitBuiltinHomonyms] severity = 3 [Modules::ProhibitAutomaticExportation] severity = 3 ###################################################################### # Policies that Padre disagrees with or tolerates as worth the risk [-BuiltinFunctions::ProhibitStringyEval] [-ClassHierarchies::ProhibitExplicitISA] [-CodeLayout::ProhibitHardTabs] [-ControlStructures::ProhibitMutatingListFunctions] [-ControlStructures::ProhibitUnlessBlocks] [-InputOutput::RequireBriefOpen] [-Subroutines::ProhibitExplicitReturnUndef] [-TestingAndDebugging::ProhibitNoStrict] [-TestingAndDebugging::ProhibitNoWarnings] [-TestingAndDebugging::ProhibitProlongedStrictureOverride] [-ValuesAndExpressions::ProhibitConstantPragma] [-ValuesAndExpressions::ProhibitMixedBooleanOperators] [-Variables::ProhibitPunctuationVars] Padre-1.00/xt/actiontest.t0000644000175000017500000000533012027757740014152 0ustar petepete#!/usr/bin/perl ### # Put any tests here which badly crash Padre ### use strict; use warnings; use Test::More; # use Test::NoWarnings; use File::Temp (); use File::Spec (); # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; } # if ( $^O eq 'MSWin32' ) { # plan skip_all => 'Crashing currently blocks the entire test suite on Win32'; # } my $devpl; # Search for dev for ( '.', '..', '../..', 'blib/lib', 'lib' ) { if ( $^O eq 'MSWin32' ) { next if !-e File::Spec->catfile( $_, 'dev' ); } else { next if !-x File::Spec->catfile( $_, 'dev' ); } $devpl = File::Spec->catfile( $_, 'dev' ); last; } my @actions = ( 'file.new', 'file.open_last_closed_file', 'file.new,file.close', 'file.new,file.close_all', 'file.new,file.new,file.close_all_but_current', 'file.new,file.duplicate', 'file.new,edit.select_all', 'file.new,search.find', 'file.new,search.find_next', 'file.new,search.find_previous', # Twice to reset them to previous state 'view.lockinterface,view.lockinterface', 'view.output,view.output', 'view.functions,view.functions', 'view.tasks,view.tasks', 'view.outline,view.outline', 'view.directory,internal.wait10,view.directory', # Let it prepare the list 'view.syntax,internal.wait10,view.syntax', 'view.statusbar,view.statusbar', 'view.toolbar,view.toolbar', 'view.lines,view.lines', 'view.folding,view.folding', 'view.calltips,view.calltips', 'view.currentline,view.currentline', 'view.rightmargin,view.rightmargin', 'view.eol,view.eol', 'view.whitespaces,view.whitespaces', 'view.indentation_guide,view.indentation_guide', 'view.word_wrap,view.word_wrap', 'view.font_increase,view.font_decrease,view.font_reset', 'view.full_screen,view.full_screen,', 'file.new,file.new,window.next_file', 'file.new,file.new,window.previous_file', ); plan( tests => scalar(@actions) * 3 + 1 ); use_ok('Padre::Perl'); my $cmd; if ( $^O eq 'MSWin32' ) { # Look for Perl on Windows $cmd = Padre::Perl::cperl(); plan skip_all => 'Need some Perl for this test' unless defined($cmd); $cmd .= ' '; } # Create temp dir my $dir = File::Temp->newdir; $ENV{PADRE_HOME} = $dir->dirname; # Complete the dev - command $cmd .= $devpl . ' --invisible -- --home=' . $dir->dirname; $cmd .= ' ' . File::Spec->catfile( $dir->dirname, 'newfile.txt' ); $cmd .= ' --actionqueue='; for my $action (@actions) { ok( 1, 'Run ' . $action ); my $cmd = $cmd . $action . ',file.quit'; my $output = `$cmd 2>&1`; $output =~ s/Scalars leaked: \d+//g; is( $? & 127, 0, 'Check exitcode' ); like( $output, qr/^\s*$/, 'Check output' ); } done_testing(); Padre-1.00/xt/crashtest.t0000644000175000017500000000344612027757740014003 0ustar petepete#!/usr/bin/perl ### # Put any tests here which badly crash Padre ### use strict; use warnings; use Test::More; # use Test::NoWarnings; use File::Temp (); use File::Spec (); # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; } if ( $^O eq 'MSWin32' ) { plan skip_all => 'Crashing currently blocks the entire test suite on Win32'; } my $devpl; # Search for dev for ( '.', '..', '../..', 'blib/lib', 'lib' ) { if ( $^O eq 'MSWin32' ) { next if !-e File::Spec->catfile( $_, 'dev' ); } else { next if !-x File::Spec->catfile( $_, 'dev' ); } $devpl = File::Spec->catfile( $_, 'dev' ); last; } use_ok('Padre::Perl'); my $cmd; if ( $^O eq 'MSWin32' ) { # Look for Perl on Windows $cmd = Padre::Perl::cperl(); plan skip_all => 'Need some Perl for this test' unless defined($cmd); $cmd .= ' '; } #plan( tests => scalar( keys %TEST ) * 2 + 20 ); # Create temp dir my $dir = File::Temp->newdir; $ENV{PADRE_HOME} = $dir->dirname; # Complete the dev - command $cmd .= $devpl . ' --invisible -- --home=' . $dir->dirname; $cmd .= ' ' . File::Spec->catfile( $dir->dirname, 'newfile.txt' ); $cmd .= ' --actionqueue=file.new,search.goto,edit.join_lines,edit.comment_toggle'; $cmd .= ',edit.comment,edit.uncomment,edit.tabs_to_spaces,edit.spaces_to_tabs'; $cmd .= ',edit.show_as_hex,help.current,help.about,file.quit'; my $output = `$cmd 2>&1`; is( $? & 127, 0, 'Check exitcode' ); TODO: { local $TODO = 'fix the bad_alloc exception'; # The crash I have seen in r11212 is this: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc is( $output, '', 'Check output' ); } done_testing(); Padre-1.00/xt/copyright.t0000644000175000017500000000304511520641422013770 0ustar petepeteuse strict; use warnings; use Test::More; use File::Find::Rule; # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } my @files = File::Find::Rule->name('*.pm')->file->in('lib'); plan tests => ( scalar @files ) * 2; # too simple way to check if we have copyright information on all files # TODO: need to be improved # Adding in a check that this year is in the copy right notice my $this_year = (localtime)[5] + 1900; # check we have a Copyright my $copyright = qr{# Copyright 2008-\d{4} The Padre development team as listed in Padre.pm\.\s*}; $copyright = qr{$copyright# LICENSE\s*}; $copyright = qr{$copyright# This program is free software; you can redistribute it and/or\s*}; $copyright = qr{$copyright# modify it under the same terms as Perl 5 itself.}; my $cp = qr{=head1 COPYRIGHT(?: & LICENSE)?\s*}; $cp = qr{${cp}Copyright 2008-\d{4} The Padre development team as listed in Padre.pm\.\s*}; $cp = qr{${cp}This program is free software; you can redistribute\s*}; $cp = qr{${cp}it and/or modify it\s*under the same terms as Perl 5 itself.}; foreach my $file (@files) { my $content = slurp($file); ok( $content =~ qr{$copyright|$cp}, "Contains Copyright: $file" ); ok( $content =~ qr{Copyright 2008-$this_year The Padre development team as listed in Padre.pm\.\s*}, "Has 2008-$this_year in Copyright: $file" ); } sub slurp { my $file = shift; open my $fh, '<', $file or die "Could not open '$file' $!'"; local $/ = undef; return <$fh>; } Padre-1.00/xt/pmv.t0000644000175000017500000000135612076617764012610 0ustar petepete#!/usr/bin/perl # Copied from http://svn.ali.as/cpan/tools/shared/99_pmv.t # Test that our declared minimum Perl version matches our syntax use strict; BEGIN { $| = 1; $^W = 1; } my @MODULES = ( 'Perl::MinimumVersion 1.32', #detects \N 'Test::MinimumVersion 0.101080', ); # Don't run tests for installs use Test::More; unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } # Load the testing modules foreach my $MODULE (@MODULES) { eval "use $MODULE"; if ($@) { $ENV{RELEASE_TESTING} ? die("Failed to load required release-testing module $MODULE") : plan( skip_all => "$MODULE not available for testing" ); } } all_minimum_version_from_metayml_ok(); Padre-1.00/xt/blockers.t0000644000175000017500000000167211622454362013600 0ustar petepete# Test for open blocker tickets use strict; use warnings; use Test::More; use LWP::UserAgent; # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } plan tests => 2; my $ua = LWP::UserAgent->new; $ua->timeout(30); $ua->env_proxy; my $response = $ua->get( 'http://padre.perlide.org/trac/query?priority=blocker&status=accepted&status=assigned&status=new&status=reopened&col=id&order=priority' ); ok( $response->is_success, 'Got HTTP status OK' ); # Count the number of blockers # once this is working properly, for now we'll just check if we get No tickets found # my $tickets = () = $response->decoded_content, qr/]*>\#\1<\/a/; #is( $tickets, 0, 'No open blocker tickets' ); $response->content =~ m!(No tickets found)!; my $tickets = $1; is( $tickets, "No tickets found", 'No open blocker tickets' ); Padre-1.00/xt/critic-core.t0000644000175000017500000000134611620554564014200 0ustar petepete#!/usr/bin/perl # Enforce higher standards against code that will be installed use strict; use warnings; use Test::More; use File::Spec::Functions ':ALL'; BEGIN { # Don't run tests for installs or automated tests unless ( $ENV{RELEASE_TESTING} ) { plan skip_all => "Author tests not required for installation"; } my $config = catfile( 'xt', 'critic-core.ini' ); unless ( eval "use Test::Perl::Critic -profile => '$config'; 1" ) { plan skip_all => 'Test::Perl::Critic required to criticise code'; } unless ( $Perl::Critic::VERSION >= 1.116 ) { plan skip_all => 'Perl::Critic is not new enough'; } } # need to skip share, t/files and t/collection all_critic_ok( qw{ blib/script blib/lib/Padre.pm blib/lib/Padre } ); Padre-1.00/xt/actions.t0000644000175000017500000000550312027757740013437 0ustar petepete#!/usr/bin/perl ### # This is mostly a demo test script for using the action queue for testing ### use strict; use warnings; use Test::More; use Capture::Tiny qw(capture); #use Test::NoWarnings; use File::Temp (); use File::Spec(); plan skip_all => 'Needs DISPLAY' unless $ENV{DISPLAY} or ( $^O eq 'MSWin32' ); # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } my $devpl; # Search for dev for ( '.', '..', '../..', 'blib/lib', 'lib' ) { if ( $^O eq 'MSWin32' ) { next if !-e File::Spec->catfile( $_, 'dev' ); } else { next if !-x File::Spec->catfile( $_, 'dev' ); } $devpl = File::Spec->catfile( $_, 'dev' ); last; } # diag "devpl '$devpl'"; use_ok('Padre::Perl'); my $cmd; my @chances = ( Padre::Perl::cperl() . ' ', '"' . $^X . '" ', 'perl ', 'wperl ', ); push @chances, map {"$_ "} grep { -e $_ } qw(/usr/bin/perl /usr/pkg/bin/perl); push @chances, 'C:\\strawberry\\perl\\bin\\perl.exe ' if $^O =~ /MSWin32/i; unshift @chances, '' if $^O eq 'linux'; push @chances, '' if $^O ne 'linux'; for my $prefix (@chances) { my $try = "$prefix$devpl --help"; # diag "Try: '$try'"; my $res = qx{$try}; # diag "Result: $res"; next if not defined $res; next unless $res =~ /(run Padre in the command line|\-\-fulltrace|\-\-actionqueue)/; $cmd = $prefix; last; } # The above will fail even if the user has not run # perl Makefile.PL ; make # so the error message below is not really good plan skip_all => 'Need some Perl for this test' unless defined($cmd); ok( 1, 'Using Perl: ' . $cmd ); #plan( tests => scalar( keys %TEST ) * 2 + 20 ); # Create temp dir my $dir = File::Temp->newdir; $ENV{PADRE_HOME} = $dir->dirname; # Complete the dev - command $cmd .= $devpl . ' --invisible -- --home=' . $dir->dirname; $cmd .= ' ' . File::Spec->catfile( $dir->dirname, 'newfile.txt' ); $cmd .= ' --actionqueue=internal.dump_padre,file.quit'; # diag "Command is: '$cmd'"; my ( $stdout, $stderr ) = capture { system($cmd); }; # diag $stdout; # diag $stderr; my $dump_fn = File::Spec->catfile( $dir->dirname, 'padre.dump' ); ok( -e $dump_fn, "Dump file '$dump_fn' exists" ) or exit; our $VAR1; # Read dump file into $VAR1 require_ok($dump_fn); # Run the action checks... foreach my $action ( sort( keys( %{ $VAR1->{actions} } ) ) ) { if ( $action =~ /^run\./ ) { # All run actions need a open editor window and a saved file if ( $action !~ /^run\.(stop|run_command)/ ) { ok( $VAR1->{actions}->{$action}->{need_editor}, $action . ' requires an editor' ); ok( $VAR1->{actions}->{$action}->{need_file}, $action . ' requires a filename' ); } } if ( $action =~ /^perl\./ ) { # All perl actions need a open editor window ok( $VAR1->{actions}->{$action}->{need_editor}, $action . ' requires an editor' ); } } done_testing(); Padre-1.00/xt/critic-util.t0000644000175000017500000000133311613522550014211 0ustar petepete#!/usr/bin/perl # Enforce lower standards against code that isn't installed use strict; use warnings; use Test::More; use File::Spec::Functions ':ALL'; BEGIN { # Don't run tests for installs or automated tests unless ( $ENV{RELEASE_TESTING} ) { plan skip_all => 'Author tests not required for installation'; } my $config = catfile( 'xt', 'critic-util.ini' ); unless ( eval "use Test::Perl::Critic -profile => '$config'; 1" ) { plan skip_all => 'Test::Perl::Critic required to criticise code'; } unless ( $Perl::Critic::VERSION >= 1.116 ) { plan skip_all => 'Perl::Critic is not new enough'; } } # need to skip t/files and t/collection all_critic_ok( glob('t/*.t'), 't/win32/', 't/author_tests/', 't/lib', ); Padre-1.00/xt/perl-beginner.t0000644000175000017500000001537511616513166014533 0ustar petepete#!/usr/bin/perl use strict; use warnings; # Create test environment... package local::t75; sub LineFromPosition { return 0; } package Wx; sub gettext { return $_[0]; } package Padre; sub ide { return bless {}, __PACKAGE__; } sub config { return $_[0]; } sub lang_perl5_beginner_chomp { 1; } sub lang_perl5_beginner_close { 1; } sub lang_perl5_beginner_debugger { 1; } sub lang_perl5_beginner_elseif { 1; } sub lang_perl5_beginner_ifsetvar { 1; } sub lang_perl5_beginner_map { 1; } sub lang_perl5_beginner_map2 { 1; } sub lang_perl5_beginner_perl6 { 1; } sub lang_perl5_beginner_pipe2open { 1; } sub lang_perl5_beginner_pipeopen { 1; } sub lang_perl5_beginner_regexq { 1; } sub lang_perl5_beginner_split { 1; } sub lang_perl5_beginner_warning { 1; } # The real test... package main; use Test::More; #use Test::NoWarnings; use File::Spec (); # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } # enable NoWarning if this is fixed my %TEST = ( 'split1.pl' => "Line 6: The second parameter of split is a string, not an array", 'split2.pl' => "Line 6: The second parameter of split is a string, not an array", 'warning.pl' => "Line 3: You need to write use warnings (with an s at the end) and not use warning.", 'boolean_expressions_or.pl' => 'TODO', 'boolean_expressions_pipes.pl' => 'TODO', 'match_default_scalar.pl' => 'TODO', 'chomp.pl' => 'TODO', 'substitute_in_map.pl' => 'TODO', 'unintented_glob.pl' => 'TODO', 'return_stronger_than_or.pl' => 'TODO', 'grep_always_true.pl' => 'TODO', 'my_argv.pl' => 'TODO', # "my" variable @ARGV masks global variable at ... 'else_if.pl' => "Line 9: 'else if' is wrong syntax, correct if 'elsif'.", 'elseif.pl' => "Line 9: 'elseif' is wrong syntax, correct if 'elsif'.", 'SearchTask.pm' => undef, # @ARGV, $ARGV, @INC, %INC, %ENV, %SIG, @ISA, # other special variables ? $a, $b, $ARGV, $AUTOLOAD, etc ? $_ in perls older than 5.10? # @_ ? ); plan( tests => scalar( keys %TEST ) * 2 + 20 ); use Padre::Document::Perl::Beginner; my $b = Padre::Document::Perl::Beginner->new( document => { editor => bless {}, 'local::t75' } ); isa_ok $b, 'Padre::Document::Perl::Beginner'; # probably already in some Perl Critic rules # lack of use strict; and lack of use warnings; should be also reported. # this might be also in some Perl Critic rules #my $filename = 'input.txt'; #open my $fh, '<', $filename || die $!; # problem: precedence of || is higher than that of , so the above code is actually # the same as: # open my $fh, '<', ($filename || die $!); # which will only die if the $filename is false, nothing to do with # success of failure of open() # without "use warning" this 'works' noiselessly # I am not sure we need to look for such as we should always # tell users to 'use warnings' #my $x = 23; #my $z = 3; #if ($x = 7) { # print "xx\n"; #} # foreach my $file ( keys %TEST ) { if ( defined $TEST{$file} and $TEST{$file} eq 'TODO' ) { TODO: { local $TODO = "$file not yet implemented"; ok(0); ok(0); } next; } my $data = slurp( File::Spec->catfile( 't', 'files', 'beginner', $file ) ); my $result = $b->check($data); if ( defined $TEST{$file} ) { is( $result, undef, $file ) or diag "Result: '$result'"; } else { is( $result, 1, $file ); } is( $b->error, $TEST{$file}, "$file error" ); } # No need to create files for all of these: # Notice: Text matches are critical as texts may change without notice! $b->check("=pod\n\nThis is a typical POD test with bad stuff.\npackage DB; if (\$x=1) {}\n\n\=cut\n"); ok( !defined( $b->error ), 'No check of POD stuff' ); $b->check('join(",",map { 1; } (@INC),"a");'); is( $b->error, q(Line 1: map (),x uses x also as list value for map.), 'map arguments' ); $b->check('package DB;'); is( $b->error, q(Line 1: This file uses the DB-namespace which is used by the Perl Debugger.), 'kill Perl debugger (1)' ); $b->check('package DB::Connect;'); is( $b->error, q(Line 1: This file uses the DB-namespace which is used by the Perl Debugger.), 'kill Perl debugger (2)' ); $b->check('$X = chomp($ARGV[0]);'); is( $b->error, q(Line 1: chomp doesn't return the chomped value, it modifies the variable given as argument.), 'chomp return value' ); $b->check('join(",",map { s/\//\,/g; } (@INC),"a");'); is( $b->error, q(Line 1: map (),x uses x also as list value for map.), 'substitution in map (1)' ); $b->check('join(",",map { $_ =~ s/\//\,/g; } (@INC),"a");'); is( $b->error, q(Line 1: map (),x uses x also as list value for map.), 'substitution in map (2)' ); $b->check('for (<@INC>) { 1; }'); is( $b->error, q(Line 1: (<@Foo>) is Perl6 syntax and usually not valid in Perl5.), 'Perl6 loop syntax in Perl5' ); $b->check('if ($_ = 1) { 1; }'); is( $b->error, q(Line 1: A single = in a if-condition is usually a typo, use == or eq to compare.), 'assign instead of compare' ); $b->check('open file,"free|tail"'); is( $b->error, q(Line 1: Using a | char in open without a | at the beginning or end is usually a typo.), 'pipe-open without in or out redirection (2 args)' ); $b->check('open file,">","free|tail"'); is( $b->error, q(Line 1: Using a | char in open without a | at the beginning or end is usually a typo.), 'pipe-open3 without in or out redirection (3 args)' ); $b->check('open file,"|cat|"'); is( $b->error, q(Line 1: You can't use open to pipe to and from a command at the same time.), 'pipe-open with in and out redirection (2 args)' ); $b->check('open file,"|cat|"'); is( $b->error, q(Line 1: You can't use open to pipe to and from a command at the same time.), 'pipe-open with in and out redirection (3 args)' ); # Thanks to meironC for this sample: $b->check('open LYNX, "lynx -source http://www.perl.com |" or die " Cant open lynx: $!";'); ok( !$b->error, 'Open with pipe and result check' ); $b->check('elseif'); is( $b->error, q(Line 1: 'elseif' is wrong syntax, correct if 'elsif'.), 'elseif - typo' ); $b->check('$x=~/+/'); is( $b->error, q(Line 1: A regular expression starting with a quantifier ( + * ? { ) doesn't make sense, you may want to escape it with a \.), 'RegExp with quantifier (1)' ); $b->check('$x =~ /*/'); is( $b->error, q(Line 1: A regular expression starting with a quantifier ( + * ? { ) doesn't make sense, you may want to escape it with a \.), 'RegExp with quantifier (2)' ); $b->check('close; '); is( $b->error, q(Line 1: close; usually closes STDIN, STDOUT or something else you don't want.), 'close;' ); $b->check("\nclose; "); is( $b->error, q(Line 2: close; usually closes STDIN, STDOUT or something else you don't want.), 'close;' ); sub slurp { my $file = shift; open my $fh, '<', $file or die $!; local $/ = undef; return <$fh>; } Padre-1.00/xt/mimetype.t0000644000175000017500000000650411744002274013620 0ustar petepete#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } # check if we has a DISPLAY set unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } use File::Find::Rule; my %test_texts = ( ".class { border: 1px solid; } a { text-decoration: none; }" => 'text/css', '[% PROCESS Padre %]' => 'text/x-perltt', '#!/bin/bash' => 'application/x-shellscript', 'Padre' => 'text/html', 'use strict; sub foo { 1; } my $self = split(/y/,$ENV{foo}));' => 'application/x-perl', "function lua_fct()\n\t--[[This\n\tis\n\ta\ncomment\n\t]]--repeat\nend\n" => 'text/x-lua', ); my %test_files = ( 'foo.pl' => 'application/x-perl', 'bar.p6' => 'application/x-perl6', 'style.css' => 'text/css', 'index.tt' => 'text/x-perltt', 'main.c' => 'text/x-csrc', 'oop.cpp' => 'text/x-c++src', 'patch.diff' => 'text/x-patch', 'index.html' => 'text/html', 'index.htm' => 'text/html', 'script.js' => 'application/javascript', 'config.php' => 'application/x-php', 'form.rb' => 'application/x-ruby', 'foo.bar' => 'text/plain', ); my %existing_test_files = ( 'broken.bin' => '', # regression test for ticket #900 'rename_variable_stress_test.pl' => 'application/x-perl', ); my @files = File::Find::Rule->relative->file->name('*.pm')->in('lib'); my $tests = 2 * @files + scalar( keys %test_texts ) + scalar( keys %test_files ) + scalar( keys %existing_test_files ) + 1; plan( tests => $tests ); use_ok('Padre::MIME'); # Fake installed Perl6 plugin Padre::MIME->find('application/x-perl6')->plugin(__PACKAGE__); # All Padre modules should be Perl files and Padre should be able to detect his own files foreach my $file (@files) { $file = "lib/$file"; my $text = slurp($file); is( Padre::MIME->detect( text => $text, file => $file, ), 'application/x-perl', "$file with filename", ); is( Padre::MIME->detect( text => $text, ), 'application/x-perl', "$file without filename", ); } # Some fixed test texts foreach my $text ( sort( keys(%test_texts) ) ) { is( Padre::MIME->detect( text => $text, ), $test_texts{$text}, $test_texts{$text}, ); } # Some fixed test filenames foreach my $file ( sort keys %test_files ) { is( Padre::MIME->detect( file => $file, ), $test_files{$file}, $file, ); } # Some files that actually exist on-disk foreach my $file ( sort keys %existing_test_files ) { my $text = slurp("xt/files/$file"); require Padre::Locale; my $encoding = Padre::Locale::encoding_from_string($text); SCOPE: { local $SIG{__WARN__} = sub { }; $text = Encode::decode( $encoding, $text ); } is( Padre::MIME->detect( text => $text, ), $existing_test_files{$file}, "$file without filename", ); } ###################################################################### # Support Functions sub slurp { my $file = shift; open my $fh, '<', $file or die $! . ' for ' . $file; local $/ = undef; my $buffer = <$fh>; close $fh; return $buffer; } Padre-1.00/xt/eol.t0000644000175000017500000000202711452515377012553 0ustar petepeteuse strict; use warnings; use Test::More; BEGIN { # Don't run tests for installs unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } unless ( $ENV{DISPLAY} or $^O eq 'MSWin32' ) { plan skip_all => 'Needs DISPLAY'; exit 0; } } # Checks for UNIX end of lines (aka newlines) use File::Find::Rule; use t::lib::Padre; use Padre::Util (); my @files = File::Find::Rule->file->name( '*.pm', '*.pod', '*.pl', '*.p6', '*.t', '*.yml', '*.txt' )->in( 'lib', 't', 'share' ); @files = ( @files, 'Artistic', 'COPYING', 'Makefile.PL', 'Changes', 'padre.yml' ); plan( tests => scalar @files ); foreach my $file (@files) { my $eol = Padre::Util::newline_type( slurp($file) ); ok( ( $eol eq 'UNIX' ) || ( $eol eq 'None' ), "$file has UNIX-EOLs or none" ); } ###################################################################### # Support Functions sub slurp { my $file = shift; open my $fh, '<', $file or die $!; binmode $fh; local $/ = undef; return <$fh>; } Padre-1.00/README0000644000175000017500000000134111621731266012025 0ustar petepetePadre - Perl Application Development and Refactoring Environment A Perl IDE and general-purpose editor using WxWidgets. Installation: Alien::WxWidgets Wx Padre For detailed installation instructions look at http://padre.perlide.org/wiki/Download -------------------------------------------------------- The Padre source code is distributed under the same terms as Perl itself. Namely: 1. The GNU General Public License, either version 1 or at your option, any later version. (see the file "COPYING"). 2. The Artistic License of Perl. (see the file "Artistic"). -------------------------------------------------------- For other Copyrights and Licenses see also share/icons/padre/README.txt share/icons/gnome218/README.txt Padre-1.00/Changes0000644000175000017500000047111212237326552012451 0ustar petepeteChanges for Perl Application Development and Refactoring Environment NOTE: Do NOT "tidy" or change the indenting here, or we break svn annotate Padre version numbers follow an odd/even pattern, where the even numbers are used for the production releases of the distribution. The even versions below details visible changes or bug fixes for the Padre IDE. The odd versions are used during development and the change entries for them list API changes that may break compatibility for components of Padre, most notably for plugins. This allows plugins to update compatibility before the next production release, and synchronise their release to the Padre schedule. Changes which do not break API compatibility for plugins should be listed in the even version for the release, even during development. 1.00 2013.11.09 - Applied Patch in #1488 comment:7 itcharlie++ (BOWTIE) - Apply patch for #1504 dod++ (BOWTIE) - Apply patch2 from #1459 bojinlund++ (BOWTIE) - Update Makefile.PL with new versions (BOWTIE) - Add Patch for cut n paste adam++ #1312 (BOWTIE) - Fix Debug ip hanging, use 127.0.0.1 instead of localhost (BOWTIE) - fix some unwanted background noise from debug raw (BOWTIE) - Apply patch from #1508 itcharlie++ (BOWTIE) - Add refresh_breakpoint_panel to Wx::Main (BOWTIE) - Add correct comment for PerlXS (BOWTIE) 0.98 2013.02.19 - Changed to use current internal hashes instead of asking perl5db for value, this also gets around a bug with 'File::HomeDir has tied variables' clobbering x @rray giving an empty array (BOWTIE) - Update variables/values upon check box click (BOWTIE) - Clicking on item in Breakpoint Panel now takes you to file and line (BOWTIE) - Dot in Debugger also sets focus in editor (BOWTIE) - Add (broken) to Convert Encodings in Edit menu dod+ (BOWTIE) - Remove double spacing caused by a stray has with no value (BOWTIE) - Commented out Tools -> Module Tools see #1433 (BOWTIE) - Tweak test 14 to skip php elseif, make cpanm happy #1393 (BOWTIE) - Run script in native terminal in OsX #1434 (BENNIE) - Reapplied r19056 translator _EviL_ to About using wxFormBuilder (BOWTIE) - Continuity in page titles (BOWTIE) - Improve the error mesages in dialog patch (BOWTIE) - Some tweaks and POD to utils (BOWTIE) - Fix Recreation of deleted file #1447 mj41++ (BOWTIE) - Bug stopping reload all in #1447 mj41++ nice catch (BOWTIE) - Fix Reload of more than one file regression #1405 mj41++ (BOWTIE) - Update french translation (DOLMEN) - Uncommented file.print to re-enable printing #1443 (BOWTIE) - Update internal Padre::Plugin::My to API v2 (BOWTIE) - Commented out, as it kills padre, only used in p-p-Git, see #1448 Manfred++ (BOWTIE) - Use Debug-Client 0.21 with several Debugger fixes (BOWTIE) - Bumped PPIx::EditorTools to 0.17 for enhanced Moose Outline support #1435 buff3r++ dod++ (BOWTIE) - As per dod++ request keep outline attributes open by default (BOWTIE) - Add padre icon to My Plugin (BOWTIE) - As per dod++ request keep outline attributes open by default (BOWTIE) - Add padre icon to My Plug-in (BOWTIE) - Updated Plug-in Manager (BOWTIE) - Fix possible Padre crash in Padre::PluginManager::reload_plugin (BOWTIE) - Tweak Schwartzian transform to work on class names, makes more sense (BOWTIE) - Tests now pass on Strawberry Portable again (ADAMK) - Due to changes Padre::Util::run_in_dir_2 bumped $COMPATIBLE = 0.97 (BOWTIE) - Add wx-SplitterWindow to Plugin Manager #1359 - Add backin Perl Distribution... this is the skeloton, dialog, with out function #1324 (BOWTIE) - Added back Perl Distribution using module-starter like before (BOWTIE) - Comment out unsupported m::s licences (BOWTIE) - Fix ticket #1316 "Ctrl+click do not open Perl module if clicked on full method/sub name" mj41++ (BOWTIE) - Deal with multiple cvs module names in Perl Distribution... (BOWTIE) - Add default values locale_perldiag for #1382 (BOWTIE) - Removing unused locale_perldiag and related code (ADAMK) - Fixed several serious bugs in the Key Bindings section of the Preferences dialog (ADAMK) - Added Perl Help (Japanese) for YAPC::Asia (ADAMK) - Added documentation for more methods in Padre::Document (ADAMK) - Padre::Task::Diff no longer crashes on documents without a project (ADAMK) - Bump Module::Install -> 1.06 (BOWTIE) - UpDate My Plug-in so that it reloads (BOWTIE) - Tweak Splash for type PNG (BOWTIE) - Replace by a safer and faster code (no eval string) (DOLMEN) - Added a little time out to stop MARKER_NOT_BREAKABLE from wrongly happing (BOWTIE) - this is just a quick fix, to stop menu bar Fup's from happing (BOWTIE) - Added Debug-Launch-Options wxStatic text to Debugger-Output (BOWTIE) - Add method debug_launch_options to Debugget-Output (BOWTIE) - F5 'Run Script' uses perl parameters from #! line if it finds them (SDOWIDEIT) - Add Debug-Launch-Options dialog (SDOWIDEIT) - fix to toggling of breakpoints while debugger is running (SDOWIDEIT) - fix for -> stop dumping the following on console 'Use of uninitialized value in string eq' (BOWTIE) - Hack for svn 1.7 esp Padre trunk to reenable VCS feature (BOWTIE) - Fix error of missing { in QuickFix.pm from r19585 (BOWTIE) - Remove Subroutine prototypes Browser.pm (BOWTIE) - Fix PerlSub.pm eol and missing $VERSION (BOWTIE) - Set Copyright 2008-2013 (BOWTIE) - Add some more support for svn 1.7.x (BOWTIE) - Remove some old cruff and comments from debug testing (BOWTIE) - Diff now working against svn 1.7.x and 1.6.x (BOWTIE) - FIXME Find out why EVT_CONTEXT_MENU doesn't work on Ubuntu - commeted out as workas against Ubuntu 12.10, this is cool for lot's of Methods only (BOWTIE) - add PPIx::EditorTools to About Info (BOWTIE) - add an icon to CPAN Explorer panel tab (BOWTIE) - attempt to fix paste-buffer-clear-bug #1312 (SEWI) - s/Update/update/ #1429 bennie++ (BOWTIE) - Bumped Debug-Client dependancy to 0.24 waxhead++ (BOWTIE) 0.96 2012.04.19 - The "Todo" or "To Do" or "To-do" or "TODO" list has always been a problem when it comes to naming. Renamed to "Task List" to align with Microsoft Visual Studio's solution to this problem (ADAMK) - Removed borders from the Outline tool elements (ADAMK) - Clicking a file in the Replace in Files output opens the file (ADAMK) - Added Padre::Wx::Role::Idle and moved all tree ctrl item activate events to use it to evade a item_activated event bug (ADAMK) - Added Padre::Wx::Role::Context and changed most panel tools to use it for generating context menus (ADAMK) - Update Debug2 to use SQL parameter markers (tome, BOWTIE) - disable Debug2 tool-bar icons against unsaved files (tome, BOWTIE) - Debug2 now shows margin_marker breakpoints on file load (tome, BOWTIE) - tweaked on load to include reload and only once (BOWTIE) - Debug2 now checks for perl files more thoroughly (BOWTIE) - Added proper POD documentation for Padre::Cache (ADAMK) - Delay clearing the outline content so it doesn't flicker so heavily all of the time (ADAMK) - Added a dozen or so new file types to Padre::MIME, including several that we explicitly do not support (ADAMK) - Added Padre::Comment to hold a registry and abstraction for the different comment styles in supported documents (ADAMK) - Added display variable data from click in debugger panel (BOWTIE) - The Evaluate Expression dialog now has a "Watch" feature (ADAMK) - Added Padre::SLOC for calculating Source Lines of Code metrics (ADAMK) - Completed right click relocation of panels for the main tools (ADAMK) - Added Padre::Locale::Format for localising the display of numbers, and datetime values (ADAMK) - Inlined the small amount of code we use from Format::Human::Bytes and remove the dependency (ADAMK) - Switching to the thread-safe Wx::PostEvent when sending events from the background, which should dramatically reduce segfaults (DOOTSON) - Added COCOMO modelling to the project statistics dialog (ADAMK) - Added BASH support to default.txt theme (BOWTIE) - Variable data now shown in corresponding colour (BOWTIE) - Migrating to new ORLite 2.0 API (ADAMK) - Padre::Plugin::unload(@packages) now works (AZAWAWI) - Padre::PluginHandel was only checking for error, not handling return = 0, it is now (BOWTIE) - Re-enable outline panel to display MooseX::Declare Method modifiers (BOWTIE) - Convert p-p-xx-yy -> p-p-xx in P-Plugin making getting config easy (BOWTIE) - Require 5.010 as an experiment. (SZABGAB) - Update Debugger, tests and dependencies to use Debug::Client 0.18 as this is now Perl 5.16.0 ready (BOWTIE) - Notify plugins when either a save-as (possible mime-type change) or new document event occurs (AZAWAWI) - Update German translation (ZENOG) - Make show_local_variables default in Debug2 (BOWTIE) reverting - perl5db.pl needs to be given absolute filenames (BOWTIE) - Debug2 now shows display_value on selection (BOWTIE) - change Status-Bar 'R/W' to 'Read Write' (BOWTIE) - add +1 to Current Line so % is display correctly in Status-Bar (BOWTIE) - bumped Debug-Client requirement to 0.20 (BOWTIE) - - Moved Padre::Wx::Role::Dwell to ::Timer as scope expanded (ADAMK) - Removed Padre::Wx::Role::Form which was intended as a replacement for Padre::Wx::Dialog but was never used by anyone for anything (ADAMK) - Removed Padre::Document::get_comment_line_string (ADAMK) - Padre::Util::humanbytes is not Padre::Locale::Format::bytes (ADAMK) 0.94 2012.01.22 - Redesigned the Preferences dialog (ADAMK) - Completed the Padre::Delta module for applying document updates, diffs or other small automated changes to a document without moving the scroll position or cursor (ADAMK) - Converted the FindFast panel to wxFormBuilder (ADAMK) - Converted the Replace dialog to wxFormBuilder (ADAMK) - Converted the Plugin Manager dialog to wxFormBuilder (ADAMK) - Converted the Document Statistics dialog to wxFormBuilder (ADAMK) - The modification indicator on the notebook tab is now set correctly even during automated mass document changes (ADAMK) - Removed Padre::DB::SyntaxHighlighter as the need for custom highlighting plugins is greatly reduced now we have Wx::Scintilla (ADAMK) - Move back from badly conceived "Smart" gettext usage to a more regular usage at the urging of the translation team (ADAMK) - Moved Wx::Scintilla specific lexer and highlighter registration out of Padre::MimeTypes and into Padre::Wx::Scintilla so we can use Padre::MimeTypes in background threads (ADAMK) - Rewrote MIME support as Padre::MIME, which does not rely on Padre::Config and can be loaded and used in background threads more easily (ADAMK) - Added Debug2 interface, you will need Debug::Client 0.16, please view wiki for more information (BOWTIE) - Force upgrades to DBD::SQLite 1.35 and ORLite 1.51 for major performance improvements which should make Padre block a bit less (ADAMK) - In addition to VACUUM on shutdown, also ANALYZE for a further small performance improvement (ADAMK) - Removed redundant Module Tools/Install CPAN Module (AZAWAWI) - Spanish tramslation from atylerrice (GCI student) - Added watch items to Debug2 interface, requires Debug::Client 0.16, also reintroduced S for loaded please view wiki for more information (BOWTIE) - Moved rarely used "Dupliate" and "Delete" file menu options to "new" and "close" submenus (SEWI) - Try to avoid failing silently when there are major load-time failures and on Win32 ask if we can reset configuration directory (ADAMK) - Fixed detection of XML files with non-.xml extensions (ADAMK) - Moved Wx-specific code out of Padre::Util into Padre::Wx::Util (ADAMK) - Moving the _T function to the dedicated Padre::Locale::T (ADAMK) - The Replace dialogs don't use Find Fast term unless visible (ADAMK) - Search results now match correctly at the first position (ADAMK) - Search match caret is now at the start of the match selection (ADAMK) - Added MIME type and content detection for wxFormBuilder files (ADAMK) - Scintilla lexer selection now obeys MIME type inheritance (ADAMK) - Added shared Padre::Wx::ComboBox::FindTerm widget for search dialogs, that will hint when the search term is an illegal regex (ADAMK) - Hitting F3 after a find or replace dialog is closed repeats the last search with all settings (regex, etc) retained until the user changes a document or moves the selection off the previous selected result (ADAMK) - Added main window deactivation hook to hide Find Fast panel (ADAMK) - Added main window activation hook to rescan the directory tree, rerun syntax checking, and rerun vcs indicators (ADAMK) - Hitting enter in the Function List search box will clear the search after you have been taken to the first function (ADAMK) - When Find Fast is closed, return scroll and selection to the original location (ADAMK) - Syntax check status is reflected in the label for the Syntax Check output so you can see the result when it is not at the front (ADAMK) - When syntax check fails, only show markers for the errors in the file that is being displayed in the editor (ADAMK) - The replace_term history combobox class no longer prepopulates with an assumed replace term you probably don't want (ADAMK) - Recursive search and replace dialogs support type filtering (ADAMK) - Hex/decimal conversion: make error message generic (ZENOG) - Plugin manager: complete translation (ZENOG) - Update German translation (ZENOG) - HTML for Padre::Wx::HtmlWindow is rendered in the background (ADAMK) - Clicking on a result from a Find in Files search will now find the correct line even if it has moved since the search was run (ADAMK) - The context menu now correctly appears at the cursor on Win32 (ADAMK) - Changed the order of the context menu entries to more closely match the typical ordering of other editors (ADAMK) - Refactored the comment logic to allow sloppier smart selection (ADAMK) - Migrated the Function List tool to use the Padre::Search internals (ADAMK) - Hide the experimental command line feature in advanced preferences (ADAMK) - Padre::Search::editor_replace_all now uses Padre::Delta (ADAMK) - Padre::Search::matches now supports submatch option (ADAMK) - Added basic tests for Debugger panels (BOWTIE) - Save All is much faster and won't flicker or defocus cursors (ADAMK) - The Reload actions now restore cursor position (more) correctly and don't defocus the current editor (ADAMK) - The location of most tools can now be configured (ADAMK) - The bloat reduction features can now be configured (ADAMK) - Fixed Ticket #1377 Search dialog claims unsuccessful search even though it was successful (ADAMK) - Fixed Ticket #1298 Changing font in preferences is not applied to existing editors (ADAMK) - Fixed Ticket #1294 Space in text field for pref "editor_right_margin_colum" stops Padre (ADAMK) - Fixed Ticket #1363 Miss depend - File::Slurp (ADAMK) - The editor style preview now correctly updates in real time (ADAMK) - Migrate the vertical align feature to Padre::Delta (ADAMK) - Function List sort order can be changed via right click menu (ADAMK) - Added support for the R statistics programming language (ADAMK) - The Padre::Wx::Main method ->pages was removed (ADAMK) - Padre::MimeTypes replaced by Padre::MIME and Padre::Wx::Scintilla (ADAMK) - Padre::Project::headline method now returns the relative path, with the full path version moved to Padre::Project::headline_path (ADAMK) - Padre::Search changes relating to "Replace" and "Count All" logic (ADAMK) - The long-deprecated gettext_label method has been deleted (ADAMK) - The old search function Padre::Util::get_matches has beedn deleted (ADAMK) - Refactored most _show methods into a single show_view method (ADAMK) - Removed the unused Padre::Config versioning system (ADAMK) 0.92 2011.11.11 - Wx::Scintilla is now stable and replaces Wx::STC in Padre (AZAWAWI) - New Task 3.0 which fixes bidirectional communication and thus enables services that run indefinitely in reserved threads (ADAMK) - New Style 2.0 which simplifies implementations, adds style localisation and allows styling of the GUI (ADAMK) - Added fine-grained Wx locking mechanism so that high frequency asyncronous GUI code doesn't create high frequency asyncronous flickering. Padre flickers much less now on Win32 (ADAMK) - Added Replace in Files using matching logic to Find in Files (ADAMK) - Added plugin compatibility tracking to Padre::Search (ADAMK) - Wx doesn't seem to let us change the PaneBorder setting after pane creation, so leave it off and have an empty area rather than have a double-width border (ADAMK) - Wx constants are now Wx::FOO instead of Wx::wxFOO... and these ones are actually constants instead of strange AUTOLOAD weirdness (ADAMK) - We now SetEndAtLastLine(0) on editor panels so you can scroll one page past the end of the document and type into relaxing clear space (ADAMK) - Tabs without filename now also backed up (SEWI) - The syntax highligher spawns the perl -c call with the unsaved file as STDIN rather than by filename. This seems to make things that rely on FindBin like Module::Install Makefile.PL files work properly (ADAMK) - Some tools are more thorough about indicating they are not used (ADAMK) - Added support for task parents and owners being notified when a task has started running in the background (ADAMK) - Task owners can now hijack status bar messages if they wish to (ADAMK) - The task manager can now run without the need for threads. However, every task will block the foreground and makes Padre unusable, so this feature is reserved for profiling Padre's performance (ADAMK) - The advanced setting threads_stacksize allows the tuning of the thread stack size. On Win32 the default is dropped to 4meg (ADAMK) - The advanced setting threads_maximum allows the tuning of the maximum number of background worker threads (ADAMK) - Padre::Wx::App will use Wx internal singleton logic instead of duplicating it again for itself (ADAMK) - Add more _ shortcuts in menus. Sorry to translators (DOLMEN) - Only show the GTL splash screen once per version change on GTK (ADAMK) - Fix freeze when opening an empty *saved* Perl script while the syntax checker is active (AZAWAWI) - #1207: PluginHooks not removed after plugin reload/disable (MJFO) - Padre::File::HTTP: less colloquial English (ZENOG) - update_pot_file.pl: add --verbose and --nocleanup for easier debugging (ZENOG) - #1313: Search previous button acts as next (KAARE) - regex editor: insert m// operator when replace field is not visible (ZENOG) - regex editor: highlight matched text in blue instead of red, not avoid confusion with warnings (ZENOG) - improved messages in Menu/File.pm, Goto.pm and ActionLibrary.pm (ZENOG) - FindFast.pm: 'Case insensitive'->'Case sensitive' to match actual behavior of the checkbox (ZENOG) - Update German translation (ZENOG) - Directory tree search result rendering is now throttled to four updates per second. This prevents tree updates exhausting all resources and strangling user input, and seems to actually get the results onto screen faster because there's less lock/render passes (ADAMK) - During shutdown, call view_stop early on all tools that support it so they won't waste time rendering after we have hidden the main window (ADAMK) - #1317 'Padre 0.90 hangs and then segfaults on i .t file' (AZAWAWI) - Find in Files search result rendering is now throttled to four updates per second, for similar reasons as with the directory tree search (ADAMK) - 'Open in Command line' is now shown in the right click menu in win32 (AZAWAWI) - 'Open in Command line' and 'Open in default system editor' are only shown on win32 (AZAWAWI) - Smart highlight is now hidden when a printable character is added or changed in the editor (AZAWAWI) - Syntax checker tasks should now return a hash containing an issues array reference and stderr string keys instead of the old issues array reference (AZAWAWI) - Fix TODO list double click not working regression on win32 (AZAWAWI) - Italic text was not being set correctly in a Padre style (AZAWAWI) - "Show Standard Error" in Syntax check pane now displays in output pane the syntax checker results (AZAWAWI) - Moved Ctrl-Shift-R shortcut from Open Resource to Replace in Files to provide symmetry with the Find in Files shortcut (ADAMK) - Upgrade the syntax highlighter panel to wxFormBuilder (ADAMK) - New leading and trailing space deletion that is faster and won't move the editor window around (ADAMK) - Added 'Solarized Light' theme contributed by Anton Ukolov ('sugar' on irc) (AZAWAWI) - Open resources dialog is now triggered by Ctrl-Alt-R instead of Ctrl-Shift-R which is now reserved for 'Replace in Files' functionality (ADAMK, AZAWAWI) - Find In Files match accounting works, and no longer hides files when we only do a single render pass for files because there's only a few (ADAMK) - Replaced references to wxStyledTextCtrl documentation with the original Scintilla website documentation (AZAWAWI) - Added how much time does syntax checking take (AZAWAWI) - Added realtime VCS or local document difference calculation margin feature (AZAWAWI) - Added a differences popup window that can traverse differences in a document and revert back changes (AZAWAWI) - Added 'Next Difference' to edit menu (AZAWAWI) - Plugin manager is now modal (BOWTIE, AZAWAWI) - Add Patch to editor menu and removed Diff Tools (BOWTIE) - Update Italian translation (SBLANDIN) - Padre::Project vcs strings are now constants (AZAWAWI) - "Filter through Perl" back into core (SEWI) - Added a generic version control panel that provides minimal project subversion/git support with the ability to view normal/unversioned and ignored files (AZAWAWI) - #1126 'TODO list: does not immediately show items' (AZAWAWI) - Added identity_location config setting so collaborative functions such as Swarm can disambiguate multiple Padre instances of the same user by named locations such as "Home" or "Work" (ADAMK) - Refactored the generation of templated skeleton code into a pure Padre::Template generator, and IDE-aware code that wraps around it (ADAMK) - Require Wx 0.9901 on all platforms to fix ticket #1184: Perl help browser suppresses linebreaks (AZAWAWI) - Upgrade the find in files panel to wxFormBuilder (AZAWAWI) - Find in files has repeat, stop search, expand and collapse all buttons (AZAWAWI) - Move the key bindings dialog to the preferences dialog (AZAWAWI) - Removed the bin_diff configuration parameter and the external tools panel from the preferences dialog (AZAWAWI) - Fix quick menu access stability bugs on Ubuntu (AZAWAWI) - Fix #1318: Padre freeze? (AZAWAWI) - Added SQL, C/C++, C#, XS, Python, Ruby, PHP, HTML, CSS, JavaScript, Ada, COBOL, Haskell, Pascal, ActionScript, VBScript and YAML keyword highlighting (AZAWAWI) - Major refactoring of the editor setup and configuration code (ADAMK) - Scintilla numeric resources such as margins, markers and indicators are now managed in Padre::Constant (ADAMK) - Recalculate the line number margin width after various events to ensure the numbers always show correctly (ADAMK) - Tools and panels that are hidden across a AUI geometry change recalculate their layout properly when displayed again (ADAMK) - Add out-of-the-box comment support for HTML, XML, LISP, Fortran, Forth, Pascal, VBScript, DOS batch files, ActionScript, Tcl, COBOL, Haskell (ZENOG) - MATLAB source file extension is .m, not .mat (ZENOG) - Add syntax checking comments pragmas. To disable Padre syntax check, please type '## no padre_syntax_check' and to enable again type '## use padre_syntax_check' in your source code (AZAWAWI) - Added lang_perl6_auto_detection which enables Padre to detect Perl 6 files in Perl 5 files. Please note that this is not an accurate method of detecting Perl 6 files (disabled by default). The previous behavior was to enable it when the Perl 6 plugin is enabled (AZAWAWI) - Added "Language Perl 6" tab to preferences (AZAWAWI) - Ruby and Python scripts can be now be executed (AZAWAWI) - Ruby, Python, Java, and C# are supported in the function list (AZAWAWI, ZENOG) - Ported the timeline class mechanism back to ORLite::Migrate, and switch from our custom inlined version back to depending on CPAN. [Removed Padre::DB::Migrate*] (ADAMK) - Fix Outline focus and paint bugs that caused other right panels to misbehave when Outline is enabled (BOWTIE, AZAWAWI) - Upgrade the Outline panel to wxFormBuilder (AZAWAWI) - Outline panel is searchable now (AZAWAWI) - Fix #1050: Window menu is confusing (ZENOG, AZAWAWI) - Remove swap_ctrl_tab_alt_right configuration parameter (AZAWAWI) - Added CPAN explorer that reuses MetaCPAN.org API for searching for a module and uses App::cpanminus for package installation. It can list the most recent and favorite CPAN releases, view their POD documentation and if there is a SYNOPSIS section, one can insert it from within Padre. (AZAWAWI) - Fix #1291 'Code folding icons missing' (AZAWAWI) - Code folding markers are now theme-able (AZAWAWI) - Find and Find in Files dialogs hide the Fast Find panel (ADAMK) - Hide editor objects during their (potentially long) setup so that we don't see a half-formed editor in a weird position (ADAMK) - Add povray mimetype and keyword lists (BRAMBLE) - Fix AUTOMATED_TESTING=1 t/ errors automatically set by cpanm (AZAWAWI) - Fix bad assumption in 93_padre_filename_win.t (AZAWAWI) - Task 3.0 breaks almost all task code (ADAMK) - Style 2.0 breaks all existing styles (ADAMK) - Wx constants change from Wx::wxCONSTANT to Wx::CONSTANT (ADAMK) - Rename internal language code 'fr-fr' to 'fr' (and .po files) for consistency with other softwares, breaking old fr-fr files (DOLMEN) - on_right_click becomes on_context_menu as a first step to support the context menu key or Shift+F10 as alternatives (DOLMEN) - Removed the comment basis for Padre::Document subclassing (ADAMK) - Renaming of all methods involved in setting up an editor object (ADAMK) - Removed the experimental Padre wizard API (AZAWAWI) 0.90 2011.08.16 - Return task instance from Padre::Role::Task::tast_request (BRAMBLE) - Add 'Solarized Dark' theme contributed by Anton Ukolov ('sugar' on irc) (BRAMBLE) - Improved fast find text entry colours #1290 (BRAMBLE) - Improved preferences colours for 'dark' themed desktops #1290 (BRAMBLE) - Added feature_devel_endstats (disabled by default) which makes Padre run scripts with -MDevel::EndStats= to show various statistics when your program terminates (AZAWAWI) - Fixed "Open in File Browser" under Windows 7 (AZAWAWI) - The functions and syntax check windows needs to be cleared when the document does not provide any functions or syntax checker tasks (AZAWAWI) - The syntax checker is now more accurate when typing faster (AZAWAWI) - Added a change dwell mechanism to the editor panels, which gives any tools based on editor content an opportunity to auto-refresh (ADAMK) - Added dwell-refresh to the function list, so new functions are added as they are being typed or pasted (ADAMK) - Converted syntax checker from timer polling with hash shortcutting to the new dwell-refresh mechanism (ADAMK) - Converted outline from timer polling with length shortcutting to the new dwell-refresh mechanism (ADAMK) - Fixed #1287: Find in files crashing (SEWI) - Auto-backup is working again #105 (SEWI) - Fixed #1286: Too many newlines being inserted (SEWI) - Only allow PNG and ICO images by default, saving 4meg of RAM (ADAMK) - Handle crash when File/Delete is called on an Unsaved document (AZAWAWI) - File Reload All/Some was not working as expected (AZAWAWI) - Add a xt test for open blocker tickets (SEWI) - Underline the syntax warning/error line with an orange or red squiggle indicator (AZAWAWI) - TRACE() calls now use epoch microsecond timestamps instead of localtime to make subsecond temporal relationships more obvious (ADAMK) - When the syntax checker is rescanning after a document change, clear the window but do not change the margin (ADAMK) - Add _ shortcuts in menus. Still to do. Sorry to translators (DOLMEN) - Add ... to menus leading to dialogs. Sorry to translators (DOLMEN) - Fix blurry app icon on Ubuntu with Unity desktop (DOLMEN) - Fixed failing thread test (SEWI) - Added feature_devel_traceuse (disabled by default) which makes Padre run scripts with -d:TraceUse= to show the modules that your program loads recursively (AZAWAWI) - Checked menu actions may be called form other events but the menu event (SEWI) - Stop ignoring syntax checking errors without an actual type (AZAWAWI) - The editor change dwell time (the time between when you stop typing and when tools like function list and syntax update) is now configurable as editor_dwell in Advanced Preferences (ADAMK) - Replaced Dump... menu in the Developer Plugin with a more general Dump Expression tool so you can explore the internals of Padre incrementally instead of selecting a menu every time (ADAMK) - Added experimental config setting feature_style_gui to allow major GUI tools such as the function list and directory tree to inherit their foreground and background colouring from the active editor style (ADAMK) - Update German translation (ZENOG) - Heavily refactored function search in Padre::Document, breaking compat. Moved function locating code to Padre::Editor as find_function, has_function and goto_function. Padre::Document now just has a single "functions" method which does the work via the task class (ADAMK) - In Padre::Editor the smart highlight methods are how smart_highlight_show and smart_highlight_hide (ADAMK) 0.88 2011.08.09 - Thread Slave Mastering now works for Task 2.0. This removes thread spawn foreground blocking, reducing per-thread costs by at least 10meg, and can reduce total memory overhead by 50+meg (ADAMK) - The directory tree supports relocale correctly (ADAMK) - The notebook supports relocale correctly for "Unsaved X" files (ADAMK) - Catch a crash (#1268 workaround) (SEWI) - "Run -> Run this test" now use -l as suggested by BOWTIE (SZABGAB) - Header files (.h) are now recognized as a C document (AZAWAWI) - Updated wxWidgets documentation links to 2.8.12 in Padre developer tools internal plugin (AZAWAWI) - Updated generated Padre::Wx::FBP::* modules to FBP::Perl 0.59, which will hopefully fix Layout/Fit logic on Mac (ADAMK) - Padre::DB::Migrate now has a method-based timeline that is even smaller again than the class-based timeline that replaced the script-based timeline, removing the unsightly Padre::DB::Patch123 modules (ADAMK) - Turn off Win32::SetChildShowWindow so that ordinary system() calls won't generate short-lived command line windows (ADAMK) - Removed Module::Starter integration, it generates evil distros (ADAMK) - Added write/PUT support to Padre::File::HTTP (SEWI) - Fix #1244: Refresh recent open files list on close (SEWI) - #105: Backup unsaved files to disk (SEWI) - While closing all files during shutdown, don't spawn a background task to update the recent files list (ADAMK) - Perl Projects now ignore Makefile.old files (ADAMK) - Upgraded the Insert Special Value dialog to wxFormBuilder (ADAMK) - Upgraded the Insert Snippet dialog to wxFormBuilder (ADAMK) - Removing the deprecated Padre::Wx::Dialog now that all dialogs have been ported away from it to wxFormBuilder (ADAMK) - Fix #1099: Ctrl-Shift-T to get the last closed tab (ZENOG, AZAWAWI) - Scintilla word characters are now set up per document type (ADAMK) - Removed the regex option in fast find as it doesn't make much sense to incrementally fast type a regexp (ADAMK) - Searches done in fast find are now remembered by Padre so they can be repeated by F3 with no find dialogs open (ADAMK) - Stop Mac OSX crashes on save due to tailing pipe in FileDialog (TOME) - Highlight Perl keywords using Scintilla (AZAWAWI) - Optional feature configuration settings are now compiled into the new dedicated namespace Padre::Feature so feature code can be compiled out entirely rather than just being skipped (ADAMK) - The Function List now recognises *function = sub { } in Perl code (ADAMK) - The Function List will interleave private methods with public ones when set to "Alphaetical" sort (ADAMK) - Background worker threads that receive a 'cancel' message while they are not running a task will no longer silently exit their worker loop, which fixes the massive thread leak we've had since Task 2.0 landed! (ADAMK) - Properly enable Perl 6 Wx::Scintilla support (AZAWAWI) - Properly handle File/New/Copy of current file when there is no current document (AZAWAWI) - Require open editor for File/New/Copy menu option (SEWI) - Handle Padre crash when a triple right click is performed on the project pane's empty space (NILSONSFJ, AZAWAWI) - Fix #1176: Preferences 2.0 screen is too big (BOWTIE, AZAWAWI) - Fix #1231: Add scroll bar to xterm (BOWTIE, AZAWAWI) - Remove Win32::API dependency on win32 by introducing built-in Padre::Util::Win32 XS wrapper (MARKD) - Partial fix #913: almost no syntax highlighting for C/C++ code; also fix for C#, Java and JavaScript (ZENOG) - Save changed preferences (instead of throw changes away) when Advanced is clicked in the Preferenced dialog. (NXADM) - Added LICENSE file to fix #1224 (NXADM) - Fix #1243: Error message when plugin overrides document class/document class lost after plugin deactivation (ZENOG) - Add out-of-the-box comment support for ADA, ASM, BibTeX, C, C++, C#, Eiffel, Java, LaTeX, Lua, Makefile, Matlab, Perl 6, PHP, Python, Ruby, shell script, SQL; introduce Padre::Document classes HashComment, PercentComment, DoubleDashComment, DoubleSlashComment, get rid of class Config (ZENOG) - Fix #1232: "modified" display ("*") is not updated with Wx::Scintilla (MARKD) - Fix #1237: Wx::Scintilla does not always update line/column numbers in the status bar (MARKD) - Fix #1242: Autoindent broken when using Wx::Scintilla (MARKD) - Update 'About' dialog information once instead of twice at startup (AZAWAWI) - Fix #1245: Info missing for Wx::Scintilla in Padre System About (AZAWAWI) - Padre::Plugin::menu_plugins can now return a single Wx::MenuItem so that plugins are no longer forced to have a submenu (ADAMK) - Padre::Project::Perl can now do basic intuition of the probable distribution name and headline module for a Perl project (ADAMK) - Bump File::HomeDir dependency to 0.98 on Windows to pick up a fix for a bug that caused Padre to hang for several seconds periodically when the user's My Documents directory is on a UNC-addressed network share. UGH! (ADAMK) - Abort directory browse tasks for UNC shares, as opendir() won't work on them and thus running the task would be pointless. The directory browser still won't work for UNC shares, but at least now it won't work faster (ADAMK) - Fixed a race condition crash in the Win32-only AuiNotebook sizing workaround logic during global destruction (ADAMK) - Save the window geometry on Maximize, Iconize or ShowFullScreen so that we retain the same geometry across a Padre restart while in any of the normal non-windowed states (ADAMK) - Adding Padre::Config "locking" to Padre::Locker to enabled automatic write on scope exit in a way that prioritised correctly with the other lock types and shares a single database commit with any database locks (ADAMK) - Tuned the locking implementation to reduce code complexity, reduce lock memory consumption, and make lock releasing slightly faster (ADAMK) - Added Thumbs.db to the files ignored by default on Windows (ADAMK) - The project manager now caches null projects correctly (ADAMK) - The directory browser now caches null project tree data correctly (ADAMK) - When reverting to the default root path, the directory browse now uses a null project rather than just a plain root path so that the default platform-specific ignore/skip rules are used the expected way (ADAMK) - Perl projects now correctly ignore nytprof directories, not just nytprof.out files (ADAMK) - Update session description. (BOWTIE) - In project browser Right click on directories as well. (SZABGAB) - Allow renaming file and directory in project browser. (SZABGAB) - Update German translation (ZENOG) - Stop creating automatic sessions. If no session is defined while auto-session-save is in effect use padre-last (SZABGAB) - Fix View/Show Document As menu #1246 (SZABGAB) - Eliminate crash caused by directory browser. #1248 (SZABGAB) - Add Perl menu entry to deparse selected code using B::Deparse (SZABGAB) - Added directory deletion to the file tree, although it doesn't use the file operation task, so it could be slow and block (ADAMK) - Labels for directory tree menu commands are now localised to the prefered operating system terms, on Win32 at least to start with (ADAMK) - Because the directory tree "Refresh" operation only actually works by refreshing the entire tree, move it to the top search box menu (ADAMK) - Padre::DB::Migrate now has class-based migration scripts instead of file based migration scripts. This results in vastly inferior encapsulation, but is much more reliable and works from inside PAR and friends (ADAMK) - The Padre Preferences Sync client now works, but requires you to enable the config value feature_sync until we work some bugs out of it (BRAMBLE) - The main window search_next method will now explicitly not open a find dialog rather than accidentally not open one, and the search_previous method now does the same as search_next instead of crashing Padre (ADAMK) - The birthday easter egg now only comes up once a year, and we will never bug the user about any other nth popup on our birthday (ADAMK) - Renamed startup_count config setting to nth_startup in line with the other config stuff relating to the Nth start mechanism (ADAMK) - Adding a preliminary (broken) implementation of Replace in Files, hidden behind the feature_replaceinfiles config setting (ADAMK) - A significant number of the editor preferences in the view menu can now support being changed by Preference Sync (ADAMK) - The right margin/edge is now enabled correctly at startup (ADAMK) - Ensure the .pod files are recognized as POD documents (SZABGAB) - Update french translation (but still much to do) (DOLMEN) - Added a slightly odd but working workaround for a bug where ->SetValue('foo') would automatically set 'foo bar' instead if 'foo bar' was in the visible history of the combo box (ADAMK) - Removed the --with-plugin command line option used by one of the author tests as the implementation violated encapsulation badly (ADAMK) - Moved Bookmarks from View to Search menu in line with other several other editors (ADAMK) - Added feature_folding to allow the removal of code folding support (ADAMK) - The majority of the on_toggle_xxxx methods have now been changed to editor_xxxx names to more accurately reflect that they act on the set of open editors. As no plugins should be changing these anyway, the compat version for Padre::Wx::Main will not changed (ADAMK) - Removed unused methods for adding customer view menu elements. If plugins are going to add to the view menu the submenus should be pulled from the plugin and not pushed from the plugin (ADAMK) 0.86 2011.06.18 - Fix #1124: 'Description' column not displayed when all descriptions empty (ZENOG) - Open Resources: do not match path for .t files (ZENOG, found by SZABGAB) - Handle corrupt padre.db in SessionManager (SEWI) - Migration of Style Settings from Menu to Preferences window (CLAUDIO) - Add list of escape characters to the Regex Editor (SZABGAB) - Add a test plugin and first tests using that plugin (SEWI) - Add plugin hooks (SEWI) - Regex Editor: Substitution can be toggled and it is off by default (SZABGAB) - Extent Ctrl-left-mouse-click to modules and files with path (SEWI) - Fix #1122: Save intuition recognizes more tests (SEWI) - Fix #1138: Padre single instance server not working (MJ41) - Fix #510, #704, #1178 Closing DocBrowser crashing Padre (SZABGAB) - Add File->Delete menu option (#1179) (SEWI) - Avoid running pointless syntax checks for unused documents (ADAMK) - No longer need a different editor class for the Preferences dialog (ADAMK) - Move Outline building to PPIx::EditorTools::Outline 0.12 (SZABGAB) - Add menu options in View to Fold All and Unfold All (SZABGAB) - Add menu option to Fold/Unfold where the cursor is now (SZABGAB) - Move the standard PPILexer to PPIx::EditorTools::Lexer 0.13 (SZABGAB) - Fix #1182: Crash when enabling a plugin (SEWI) - Reverted commit 13860 which tried to fix ticker #1141 but broken the directory list at startup at the same time (ADAMK) - The Preferences dialog now translates options in drop-down boxes (ADAMK) - Update German translation (ZENOG) - Moved various Perl 5 related config options into a unified config namespace lang_perl5_* (ADAMK) - Moved various Perl 5 Preferences dialog elements into a single Perl 5 specific tab in preparation for additional future tabs (ADAMK) - Fixed bug where the Function List scanner was incorrectly matching __DATA__ or __END__ anywhere in any statement (ADAMK) - Config file entries referring to values which are not in the valid option list for a setting will use the default, but not overwrite (ADAMK) - Upgraded Padre::Wx::Dialog::Text to wxFormBuilder (ADAMK) - Find and Find in Files now save search options again (ADAMK) - PluginManager now checks for a defined ->VERSION in plugins to help make sure they are real modules and don't have mismatching package statements or similar weird problems (ADAMK) - Allow spaces in the path and filename of Perl script and still be able to run them. #1219 (SZABGAB) - Upgraded Padre::Wx::Dialog::Bookmarks to wxFormBuilder (ADAMK) - Shrunk the code needed to support the "Convert Encoding" commands and moved it to Padre::Wx::Main, removing the need for a dedicated "Convert Encoding" dialog (ADAMK) - Moved all Module::Starter options into module_starter_* (ADAMK) - "toggle comments" button doesn't require text selection (GARU) - A bug in the EOL Mode setup when opening Windows-mode text documents while the default line endings are set to Unix was resulting in the corruption of documents into mixed newline (ADAMK) - Ctrl-F launches the quick search (bottom pane), 2nd time Ctrl-F launches regular search and 3rd time Ctrl-F launches find in files which will loose it's own shortcut Ctrl-Shift-F in the future #1223 (SEWI) - Expanding the coverage of "apply" handlers in Padre::Config in preparation for Padre Sync (ADAMK) - Updated perlopquick.pod (Perl 5 operator quick reference) to latest version (COWENS, AZAWAWI) - Fixed wxWidgets 2.8.12 wxAuiNoteBook bug: the window will not carry updates while it is frozen (MARKD, AZAWAWI, ADAMK) - Bumped Wx dependency to 0.9901 to fix the Wx::Button::GetDefaultSize build bug (AZAWAWI) - Padre can now use Wx::Scintilla if feature_wx_scintilla is enabled. This fixes #257: Backport Scintilla Perl lexer for wxWidgets 2.8.10? (AZAWAWI) - About dialog displays now the Wx::Scintilla version if it is being used by Padre (AZAWAWI) - Unify terminology for the Firefox-like search box to "Find Fast" (ADAMK) - Set focus to editor window if search bar is closed (SEWI) - Set focus to editor after switching panes/tabs (SEWI) - Add File -> New -> Copy of current document (SEWI) - Fix "last update" timestamp for sessions (SEWI) - Fast Find resets term correctly across multiple uses (ADAMK) - Padre::Project::Perl detects project-wide version correctly (ADAMK) - Padre can use Wx::Scintilla's built-in Perl 6 lexer if Wx::Scintilla is being used by Padre (AZAWAWI) - Disable overlay scrollbars on linux (CLAUDIO) - Share one search termin between FindFast (panel), Find (dialog) and Find in files (SEWI) - ESC now closes the find dialog (1st ESC) and the output window (2nd) (SEWI) - wxVSCROLL flag in FindInFiles tree control was causing the nodes to be editable if clicked after selection. Keyboard scrolling was broken as a result (AZAWAWI) - Padre::Wx::Main::find_editor_of_file renamed to editor_of_file and Padre::Wx::Main::find_id_of_editor renamed to editor_id to clean out the method namespace find* for use with search related functionality (ADAMK) 0.84 2011.03.10 - Function and TODO list: also handle Esc when focus is on the list (ZENOG) - Function and TODO list: remove unnecessary EVT_KILL_FOCUS handler (ZENOG) - Outline: simplify method 'select_line_in_editor' (ZENOG) - Fix #967: Reset Focus (ZENOG) - Added Padre::Task::File to allow non-blocking deletion of temporary directories in the background once they are of no further use (ADAMK) - The Recent Files menu now supports UNC paths on Windows (ADAMK) - The Recent Files menu is now generated in a background task to prevent long IDE blocking, such as when checking -f over a network mount (ADAMK) - Fix #1140: RegEx editor reversed flags when inserting (SEWI) - Padre::PluginHandle will parse_variable the version of crashed or incompatible plugins rather than return '???' (ADAMK) - The PluginManager dialog can now correctly distinguish between broken plugins and merely incompatible plugins (ADAMK) - The ProjectManager won't shortcut the file->project detection for previously intuited projects without secondary evidence such as a padre.yml file or a Makefile.PL (ADAMK) - Padre crashed on error in TODO list regex, fixed (FENDERSON, SEWI) - Eliminate crash in PPI Standard Syntax highlighter #1109 (SZABGAB) - Eliminate crash when opening recent file #1148 (SZABGAB) - Stop jumping to first character when Goto "string" #1149 (SZABGAB) - After the making changes in the Advanced Preference Editor apply those changes. (fixing #1150) (SZABGAB) - Fix #1153: %p, %f, etc. do not work for in window title (ZENOG) - Add configuration option main_statusbar_template to allow the user to fine tune the status bar #1104 (SZABGAB) - Center the highlighted search term so that the context is visible (ZENOG) - Find the cpanm also if it is "only" in the PATH. e.g. when using local::lib (SZABGAB) - Fixed #1136: The syntax checker often marks the wrong line in a package (AZAWAWI) - Add tooltips to "Open Resource" dialog (ZENOG) - Fix #1078: 'Open Resource' should find things like 'Wx::Dialog' (ZENOG) - 'Open Resource': set focus to text field on character input in the list box, fix tab order (ZENOG) - Rename 'Open Resource' to 'Open Resources' to reflect the fact that it can open several files at once (ZENOG) - Remove unnecessary file deletion in Document::Perl::Syntax - this is done automagically by File::Temp (ZENOG) - Update German translation (ZENOG) - No incompatible API changes during the 0.84 release cycle 0.82 2011.02.15 - Remove methods that are not used any more: check_syntax_in_background and check_syntax (ZENOG) - Fixed a stupid bug in the save file as check for a file extension. Hardly worth noting, however it's here in case anyone was caught by such a silly bug and wondered if they were going mad (PLAVEN) - Make sure that default buttons like "OK" and "Cancel" are displayed when locale is set to something different than the system locale (ZENOG) - Padre::TaskManager now rigourously avoids the assumption that it is implemented using threads. Of course, it always IS implemented with thread at present, but these changes purify and simplify the Task Manager and allows someone else (NOT me) to write a non-thread backend (ADAMK) - Fixed incosistent use of both $COMPATIBLE and $BACKCOMPATIBLE, which was potentially returning false positive plugin compatibility (ADAMK) - Ignore .build directories in "Open Resource" dialog (ZENOG) - Many more classes now have $COMPATIBLE tracking (ADAMK) - Fix #1100: "Dies when hitting F3" (ZENOG) - Search: when there is no match, also give out the search term (ZENOG) - Update German translation (ZENOG) - Show the 'help' field of the configuration options in the advanced config dialog and one sample 'help' entry (SZABGAB) - First version of "filter through Perl source" (SEWI) - translate error message in Main.pm (ZENOG) - fix swapping of window title and content strings for "New Perl Module" name prompt (ZENOG) - Remove Remove menu item Perl/Automatic Bracket Completion #1102 (SZABGAB) - Intuit project root from version control checkout directories and classify them as an ordinary vanilla Padre::Project, before we give up and treat something as a Null projects (ADAMK) - Getting the project for a document was accidentally path-searching for Makefile.PL-etc and destroying/creating the project object every single time. Fixed project caching, and files now path-match to opened projects before touching the filesystem. Many operations much faster (ADAMK) - Added the internals for a proper Project Manager abstraction to replace the current ad-hoc storage in the main IDE object (ADAMK) - Added version control system intuition via the ->vcs method in Padre::Project (ADAMK) - Padre::TaskManager now uses the term "worker" exclusively in API methods instead of "thread" (e.g. start_thread becomes start_worker). This future-proofs the API against potential alternative task manager backend implementations that do not use threads. All existing Padre::Task code should continue to work, but plugin authors may be impacted by the $COMPATIBLE bump. An unchanged new release with the dependency version updated to 0.81 should resolve the incompatibility (ADAMK) - A number of methods relating to GUI and visualisation were moved from Padre::Document to Padre::Editor. This may impact some language plugins. (ADAMK) - Padre::Util::get_project_dir was deprecated (ADAMK) - Padre::Util::get_project_rcs was deprecated (ADAMK) - Padre::Document::project_find was deleted (ADAMK) 0.80 2011.01.29 - use Text::FindIndent 0.10 to eliminate some warnings #1089 (SZABGAB) - Update German translation (ZENOG) - Added a dwell timer via Padre::Wx::Role::Timer (ADAMK) - The directory tree search box now has a 1/3rd second dwell (ADAMK) - Find in Files results convert tabs to 4 spaces to avoid the ugly squares in the results (ADAMK) - Delay loading some modules and removed some other entirely, reducing startup memory cost and IO by 10-15% when few features are on (ADAMK) - Upgraded Plugin compatibility detection to avoid having to load the dependencies and read variables from the files instead. Saves 2-3meg of RAM and allows better scaling of the plugin system (ADAMK) - Fixed Padre::Util::parse_variable so we no longer need to make use of ExtUtils::MakeMaker and ExtUtils::MM_Unix->parse_version (ADAMK) - Support for more extensive Padre::DB customisation via ORLite 1.48 and its new shim => 1 option (ADAMK) - Completed first-generation Portable Perl support for Padre (ADAMK) - Add support in Padre::Project for intuiting project versions (ADAMK) - Prevent history boxes writing a history entry for every character instead of every search in Find/FindInFiles dialogs (ADAMK) - Port the Find Dialog as is to wxFormBuilder (ADAMK) - Prevent directory tasks running on bad or missing paths (ADAMK) - Found a workaround to weird Win32 window Raise/Lower bugs, so now Padre always raises to the foreground correctly when using the single instance server (ADAMK) - Save Intuition is disabled in null projects to prevent creating files like ".../My Documents/lib/Foo/Bar.pm" (ADAMK) - The Task Manager will now attempt to maximise background worker specialisation so we need to load less total modules, hopefully reducing memory consumption (ADAMK) - Closing files is faster (and the task manager is stressed less) as we no longer accidentally do a full refresh twice when closing documents other than the last one (ADAMK) - Enhancement, ticket #1027 When saving a file without a file extension you are now prompted and provided a list of suitable extensions to name your file. (PLAVEN) - Restored radio select indicator to Style and View Document As... menus, they were lost in the move to the ActionLibrary (ADAMK) - Fixed #1093. The natural zoom of a scintilla window is around the wrong way, hijack ctrl-scroll and reverse it to the right way (ADAMK) - Find in Files directory recursion now happens ordered (ADAMK) - Padre::Util::parse_version is now Padre::Util::parse_variable (ADAMK) 0.78 2011.01.14 - The nytprof.out and nytprof HTML report directories are added to the default ignore logic for Perl project (ADAMK) - Fix a rare crash condition when TaskHandle had no task (SEWI) - Fix #833: Syntax error crash padre when trying to debug (AZAWAWI) - Perl error diagnostics is properly shown in a help panel instead of being a child of an issue (AZAWAWI) - On a slow filesystem where the directory browser is slow to fill directory expansion controls, the fill will no longer be aborted if you quickly expand a subdirectory. Both will occur in parallel (ADAMK) - FindInFiles was using path objects incorrectly when communicating between the task and the parent (ADAMK) - FindInFiles was trying to use a directory node, but wasn't merging the file nodes together under it. Removed directory nodes until a better implementation is written (ADAMK) - Created Padre::Wx::TreeCtrl::ScrollLock to abstract the workaround you need to use to update trees without them snapping to nodes that you ->Expand, and applied it to the directory tree and the Find in Files result tree (ADAMK) - When closing panels that do background tasks, do a last-minute task reset operation to cancel any active background tasks (ADAMK) - The Find in Files and directory tree background tasks now supports cancel messages properly, both per-directory and per-file (ADAMK) - The directory tree background search now correctly clears the status bar when it is cancelled (ADAMK) - Additional fixes for maximise-at-startup issues on Windows, which now should FINALLY work properly everywhere (ADAMK) - When shutting down the task manager, force-empty the queue early and send a 'cancel' message to any workers still actively running before we send the final 'stop' message (ADAMK) - Fixed a massive performance bug in directory tree ->refill method, which was triggering one background thread for every expanded tree node. This was leading to thread storms, major leakage, and hanging of the editor when changing between projects (ADAMK) - When exiting directory tree search mode, we now restore the tree correctly from the stashed results instead of scanning again (ADAMK) - Open selection can now find executable programs in the current PATH (AZAWAWI) - Update German translation (ZENOG) - If open selection finds a Module/Name.pm in the lib of your current project, it stops looking for other possibilities since the version in your project is almost certainly the one you want. (ADAMK) - Updated the Copyright notice to reflect the new year. (PLAVEN) - Added additional test to copyright.t to check all copyright notices have the current year. (PLAVEN) - No incompatible API changes during the 0.78 release cycle 0.76 2010.12.08 - Fix #636: Filter too strict (Padre CPAN module installer) (ZENOG) - Fix #1032: Regex Editor: Escape sequences don't work in "Result from replace" (ZENOG) - Next/previous file now use Ctrl-Page Down/Up instead of Alt-Right/Left (AZAWAWI) - Find in Files results panel now uses a tree instead of a text area and clicking n a result opens the file at the specified line number as expected (AZAWAWI) - Updated the experimental Padre wizard API and integrated it with the wizard selector dialog. This is still disabled by default and can be enabled by the 'feature_wizard_selector' configuration setting (AZAWAWI) - Fix the bug of lost user selection when searching a big project directory and typing fast in "Open Resource" dialog (AZAWAWI) - Fixed "Open Resource" and "Quick Menu Access" dialogs to display recently- used resources by last usage being first instead by filename (AZAWAWI) - consider script and interpreter parameters when debugging Perl scripts (ZENOG) - Fix #814: Find-in-files result window, clicking on filename does not do anything (ZENOG) - Document::get_command now has two named arguments: 'trace' for diagnostic output, and 'debug' for enabling a debugger. Plug-ins that use get_command(1) need to change this call to get_command({ trace => 1}) (ZENOG) - remove configuration option 'find_quick' (not used any more) (ZENOG) - Fixed #881 "Find In Files" results window should be prettier (AZAWAWI, ZENOG) - As the user types the search term in the "Find in Files" dialog, make sure the find button enabled status is correct (AZAWAWI) - Fix #1051: Syntax checker does not return the correct error message (AZAWAWI) - By removing -Mdiagnostics (which enabled 'use warnings') from syntax checker, we now get a more correct syntax checking behavior (AZAWAWI) - Removed custom parsing of Perl's standard error in syntax checker and reused Parse::ErrorString::Perl to get better error parsing and diagnostic information via perldiag (AZAWAWI) - "Error List" window has been removed since it is redundant to "Syntax Check" window (AZAWAWI) - In "Open Resource" and "Quick Menu Access" UP arrow shifts focus to the results list when the focus is on the filter field (AZAWAWI) - Moved from the simple 0 and 1 age of error 'severity' to the actual way Perl classifies errors as in perldiag. The syntax task now passes upon completion a reference an array of Parse::ErrorString::Perl::ErrorItem objects (AZAWAWI) - "Syntax Check" window is now a tree instead of a list. First-level nodes represent the error/warning messages and the second-level nodes are the perldiag diagnostics for them (if available) (AZAWAWI) - "Select Next Problem" is now working again after it was broken since Padre 0.57. Removed Copy Selected/All features until requested again (AZAWAWI) - Removed "Errors" window and moved its only useful feature: Perl diagnostics help to "Syntax Check" window (AZAWAWI) - Removed tooltip from margin error markers as it was broken since Padre 0.65+ (AZAWAWI) - Fix #957: Syntax Check should use perl given in Preferences (ZENOG) - Fix #1059: Padre 0.74 build failure on 5.8.9 (AZAWAWI) - Regex editor: insert complete substitution operator, including modifiers; underline match results so that matching whitespaces are also highlighted; add tooltips to modifiers; only update regex description if visible (avoid require if not necessary) (ZENOG) - Fix #922: Regex editor keeps first language after language change (ZENOG) - Update German translation (ZENOG) - Update Italian translation (SBLANDIN) - Update Dutch and Spanish translation (CLAUDIO) - Update Russan translation (Vladimir) - Fix #1064: Build failures on Padre 0.74 Perl 5.8.9 (AZAWAWI, ADAMK, MARKD) - Added feature_restart_hung_task_manager configuration setting to enable automatic restart of the currently hung task manager. This is enabled by default (AZAWAWI) - Fix #1068: Padre Task manager fails to run tasks after stress testing it (AZAWAWI) - No more redirecting words under the cursor that are Perl symbols to perldata help topic (AZAWAWI) - Changes or Changelog files are now detected as text instead of CSS files (AZAWAWI) - In F2 help search, core module since-Perl-version string is now a v-string (e.g. v5.8.9 instead of v5.008009) (AZAWAWI) - Correctly start up maximized if we were closed maximized (ADAMK) - No incompatible API changes during the 0.76 release cycle 0.74 2010.11.14 - Fix #926 completely: Esc key does not always work in regex editor (ZENOG) - automagic MIME type detection: check first for XHTML, then XML, then HTML; more flexible XML detection (ZENOG) - Fix #1023: Outline view creates multiple "main" on Windows (AZAWAWI) - Added Perl 6 Outline support (AZAWAWI) - Directory tree right-click refresh now triggers a "rebrowse" task to synchronise all filesystem changes from disk to the tree (ADAMK) - The plug-in menu is properly refreshed after closing the key bindings dialog (AZAWAWI) - Added the experimental wizard selector dialog which is enabled by the 'feature_wizard_selector' configuration setting (AZAWAWI) - Fix #1029: '"delete trailing spaces" puts the cursor to the start of the document' (ZENOG) - Find in Files sets the default search text properly (ADAMK) - Quick fix feature is now disabled until it is stable again. You can enable it again by using the 'feature_quick_fix' configuration setting in the Tools/Preferences/Advanced dialog and then restart Padre (AZAWAWI) - The default editor font should be Consolas 10pt on Vista and Windows 7 (AZAWAWI) - Fix #982: '"open file" from directory window has no effect' (ZENOG) - Directory tree: "browse" after creating directories and deleting files (ZENOG) - Updated wxwidgets.pod to include a copyright and license section for Debian compatibility (AZAWAWI) - Bumped Locale::Msgfmt dependency to 0.15 (AZAWAWI) - Moved wxwidgets.pod to Padre::Plugin::WxWidgets. Please install it if you need such support (AZAWAWI) - Added win32 version information to padre.exe. This enables the task manager to display a better descriptive name of the padre.exe process. (AZAWAWI) - Padre version is now patched into the win32 executable's manifest and resource files during build time (AZAWAWI) - Directory tree: support deletion of directories (ZENOG) - Update German translation (ZENOG) - No incompatible API changes during the 0.74 release cycle 0.72 2010.10.10 - 'Quick Menu Access' and 'Advanced Preferences' dialogs now completely translated (ZENOG) - The directory tree search now prints each directory it is searching in the status bar. This helps you see where the search is up to, and identify when it is finished (ADAMK) - Recognize XML files by their content, without knowing the filename extension (ZENOG) - Fix #749: Recognize shell/Python/Ruby/Tcl scripts from shebang (ZENOG) - Fix #898: "Find in Files" dialog: buttons too small (ZENOG) - Fix #1007: Output window buffering issues (GARU) - Fix #947: Toggling comments does not work for XML (ZENOG) - Fix #579: (Un)commenting comments the last unselected line (ZENOG) - Fix: deactivate menu entry "File->Save as" when there are not open files (ZENOG) - Fix #988: Recent files menu contains currently opened files (ZENOG) - Fix #1010: Grey out comment toggling in menu if necessary (ZENOG) - Bumped PPIx::Regexp to 0.011 removing 2 dependencies (ADAMK) - Bumped Format::Human::Bytes to 0.07 removing 8 dependencies (ADAMK) - Fix #926: Escape key does not always work in the regex editor (ZENOG) - Fixed keyboard (tab) navigation in the regex editor (ZENOG) - Fix #452: focus order in Replace dialog (ZENOG) - Updated German translation (ZENOG) - Mime type for C# added (CHORNY) - The help search dialog now uses the latest perlopquick.pod instead of the old perlopref.pod (AZAWAWI) - Additional refactoring shortcut: Change the style of a given variable lexically from/to CamelCase with two clicks. (SMUELLER) - Fixed crash when closing the debugger panel (AZAWAWI) - Fixed crash of "Join Lines" feature on an empty document (AZAWAWI) - Fixed #1002: "Quick fix" feature on plain text document leads to error output on console (AZAWAWI) - Fixed #1006: F2 help does not know about 'given' (AZAWAWI) - Fixed key bindings dialog to remember cursor position when setting, deleting or resetting a shortcut (AZAWAWI) - Fixed key bindings dialog to highlight overriden shortcuts with a bold font (AZAWAWI) - Always load the shortcut from its configuration setting otherwise we will have false duplicate shortcut warnings (AZAWAWI) - Reflect both changed key shortcuts when overridden (AZAWAWI) - Removed the extra warning about duplicate keyboard shortcuts for a Padre action (AZAWAWI) - Fixed the shortcut overriding logic to actually work as expected (AZAWAWI) - Upgraded Find in Files to use Task 2.0, replacing the original ack-based implementation (ADAMK) - Removed ack dependency, and related File::Next dependency (ADAMK) - Purged all code and mention of ack from the Padre codebase. Thanks a ton for getting us through our first couple of years Andy, but we've outgrown it now (ADAMK) - Fixed an "Open Session" crash when there is not any session (AZAWAWI) - Make the use of external window for running scripts the default. (SZABGAB) - Save Intuition now understands that modules named t::Foo are for testing, and will save them into your t/ directory (ADAMK) - Find in Files now integrates with Project Intuition. The same manifest/ignore/skip logic used to generate the directory tree is also used to prevent Find in Files searching into your version control, build/make/blib files, and anywhere else your project doesn't like. (ADAMK) - Add "Create directory" and "remove file" to the directory browser. (SZABGAB) - Aff "Goto Last position" (SZABGAB) - No incompatible API changes during the 0.72 release cycle 0.70 2010.09.09 - The Task 2.0 API now supports full birectional communication for all task classes out the box. (ADAMK) - Directory search now runs incrementally via background task (ADAMK) - Directory browse no longer infinitely recurses (ADAMK) - Directory tasks all support cancellation, preventing expensive tasks building up and killing your Padre instance (ADAMK) - Subroutines declared using syntax provided by Method::Signatures ("func", "method"), MooseX::Method::Signatures ("method"), and MooseX::Declare ("method") are now supported in the Outline and Functions view (DAPATRICK) - Updated German translation (ZENOG) - Updated Italian translation (SBLANDIN) - Fixed typos in share/languages/perl5/perl5.yml (ZENOG) - Added keyboard shortcuts to refactoring features "rename variable" and "extract subroutine" (ZENOG) - Fixed small translation problem in ActionLibrary (ZENOG) - Fix #411: working version of the keyboard shortcut editor (ZENOG) - The startup splash is now disabled by default. Padre starts up very quickly these days, and delaying image loading should reduce the per-thread memory cost more (ADAMK) - Fix MIME type setting via menu (ZENOG) - mark nl_be as not supported (ZENOG) - partial fix for #452: 'focus order in Replace dialog' (ZENOG) - Fix focus order in Find dialog (ZENOG) - Close replace dialog on Escape key in all cases (ZENOG) 0.69 2010.08.17 - Landed ConfigSync branch (MATTP) - Task 2.0 restores support for having tasks send unlimited messages back to the main application while they are running (ADAMK) - Added Padre::Task::Run for background process execution with STDOUT lines streaming as events back to the main window. (ADAMK) - Fixed test failure in t/93-padre-filename-win.t under win32 (SEWI) - Devel plugin now has the option to dump the Task Manager (GARU) - Refactored, reskinned and polished ConfigSync functionality (ADAMK) - Added ->status to ::Main to allow rapid transient messages to be presented in the status bar, as fast as 100/sec (ADAMK) - Fixed the file-changed-on-disk dialog: Show "Reload" button instead of "Close" (SEWI) - Adding a ton of additional $BACKCOMPATIBLE variables so that every class consumed by the current family of plugins has them (ADAMK) - Nudging up the default background thread count now that we will start to see long-running threads looking after background processes (ADAMK) - Allow the opening of files exceeding the editor_file_size_limit of 500_000. The file is opened if the user answers Yes to the dialog (MULANDER) - The Task Manager now records per-worker statistics on which tasks they have run in the past. This is needed to support various worker optimisation strategies to be implemented in the future (ADAMK) - Added a simple initial Task Manager optimisation strategy to favour workers which have run a task at least once before (ADAMK) - "Find method declaration" will not find forward-declaration (CHORNY) - Task manager now has separate maximum and minimum thread counts (ADAMK) - Minimum thread count set to zero. Padre starts up 600ms faster, at the cost of the directory tree appearing 200ms slower if you use it (ADAMK) - Command line switch to select locale (CHORNY) - Added configuration option to modify the cursor blink rate in Padre as requested via the padre-dev mailing list closes ticket number 983 (PLAVEN) - Added Padre::Task::Daemon for bidirectional communication support in tasks. When the task is launched, messages to the chlid can be sent down the worker thread's message queue, and they will be tunneled through to the task, which can retrieve them Erlang-style via a dequeue method (ADAMK) - Don't re-scan a project dir while changing tabs within one project (SEWI) - Show the file-changed-dialog only once per file update (SEWI) 0.68 2010.07.28 - Unstable - Post Birthday Hackathon Weekend - Fixed rare bug in t/23_task_chain.t (CHORNY) - Refactored the Action subsystem into a simpler model. The old layout artificially broke it up based on menu structure. The new layout also makes it simpler to do further refactorings (ADAMK) - Removed half the usages of Wx::Perl::Dialog (ADAMK) - Use a hyphen to a separate the current vs native names of the languages in the View menu, as the bracing looked weird with the bracing of some of the languages themselves (ADAMK, ZENOG) - Don't show a additional translated string for the language that is currently active (ADAMK, ZENOG) - When the advanced setting "feature_fontsize" is disabled, Padre will remove the Font Size menu, disable Ctrl-+ and Ctrl--, and (most importantly) will not change the font size in an editor on Ctrl-Scroll (ADAMK) - Added integration with the PPI::Transform API for modifying Perl documents, so the transform objects can modify Padre documents (ADAMK) - Added the "Move POD to __END__" refactoring that lets you extract all the POD scattered through a document, merge it together, and move it to the bottom of the file after an __END__ statement (ADAMK) - If the Open Selection expression only matches one file, immediately open it without showing a pointless dialog (ADAMK) - Removed Wx::Perl::Dialog by inlining it into Padre::Wx::Dialog, this will remove the need to import ':everything', saving 50-100k (ADAMK) - Actions now only need to be declared once, and are all declared in one place in advance (ADAMK) - Directory Tree sort order is now (advanced) configurable between directory-first and directory-mixed (ADAMK) - Moved the Padre::Action* classes to Padre::Wx::Action* as they are now much more tightly dependant on Wx (ADAMK) - Plugins will now do full compatibility testing, which means that when we change an internal API we can just update $COMPATIBLE in that package and any impacted plugins will be automatically disabled until they do a new release. That is far better than "They just crash blindly" (ADAMK) - Create a new main_directory_root settting distinct from the existing default_projects_directory one, specifically for setting the default root of the directory tree. It will continue to be pointed to my_documents by default (the original may change) (ADAMK) - Made Padre::Wx::Dialog::ModuleStart configuration translation-safe (ZENOG) - Updated German translation (ZENOG) - Add Java and BibTeX to MIME types (ZENOG) - Ack ("find in files") output is now more 'clickable', but still not perfect (ZENOG) - Fix File::Open3::open3() call to be IPC::Open3::open3() (BRICAS) - Fix #969: crash when switching language after using Ack (ZENOG) - Remove unnecessary Wx::gettext calls from Padre::Wx::Dialog::Preferences that lead to missing translations (ZENOG) - Description field is hidden by default in the regex editor dialog. A checkbox now optionally toggles its visibility (AZAWAWI) - Padre::Wx::FindResult: Get rid of global variable, shorter column titles, both columns now wxLIST_AUTOSIZE (ZENOG) - Call relocale() for all elements of the Bottom panel (ZENOG) - Remember sorting order in session manager (SEWI) - Nicer workflow for renaming variables: Now we check for some conditions before prompting the user for a name; renamed function 'lexical_variable_replacement' to 'rename_variable' (ZENOG) - Simplify the code for the Bottom pane a bit (-1 method), no warnings any more (ZENOG) - Fixed #970: Switching language removes plugin menus (ZENOG) - Padre::MimeTypes: Fixed some Wx::gettext handling problems, switched keys of menu_view_mimes() so that the names (not the MIME types) of file types are shown in the View menu (ZENOG) - Documentation of Padre::Current (SEWI) - Include only changed files in changed-file-list (SEWI) - Added wxwidgets.pod which contains the method documentation of all Wx classes (AZAWAWI) - Padre has wxWidgets method documentation in F2 help search (AZAWAWI) - Added Padre::Wx::Nth to group first/nth-time startup magic (ADAMK) - Fixed #781 : Unicode should not be used for accessing file system on Win32 (CHORNY) - The New Installation Survey now only appears on the third time that Padre starts, so it doesn't confuse people with locale issues (ADAMK) - Split Padre::Wx::Dialog::WhereFrom into main and FBP classes to try out the designer-based approach experimentally (ADAMK) - Tab width is configurable for opened file too (CHORNY) 0.67 2010.07.27 - 0.67 never made it to public release. All changes listed for 0.68 are what 0.67 would have had. 0.66 2010.07.01 - Improved the quality and integration of the default window size (ADAMK) - The non-blocking IO upgrade in 0.65 meant that Padre could no longer open files on Windows. Fixed (ADAMK) - Minor improvements to the About dialog (ADAMK) 0.65 2010.07.01 - Task 2.0 API landed on trunk (and everything breaks) (ADAMK) - Converted the FunctionList GUI component to work via a task (ADAMK) - Padre::Role::Task role added to allow any object in Padre to be the "owner" of task and automatically handle which tasks are still relevant to the UI state at the time the task is completed, and ignore the ones that aren't (ADAMK) - New compulsory Padre::Wx::Role::View for editor GUI componants that want to live in the left/right/bottom tool panels (ADAMK) - Renamed a number of classes to simpler names. Because we are breaking everything anyway, this is an opportune time to lump in these low-importance changes (ADAMK) - Padre::DocBrowser --> Padre::Browser (ADAMK) - Padre::Wx::DocBrowser --> Padre::Wx::Browser (ADAMK) - Padre::Wx::Role::MainChild --> Padre::Wx::Role::Main (ADAMK) - Language-specific task sub-classes now live under the document class instead of under the Padre::Task tree, to encourage concentration of language-specific code within the document tree (ADAMK) - Padre::Task::Perl::Syntax --> Padre::Document::Perl::Syntax (ADAMK) - Padre::Task::Perl::Outline --> Padre::Document::Perl::Outline (ADAMK) - Startup config file now uses a custom hyper-minimalist format which avoids the need to load YAML::Tiny before the first thread spawn, saving about 400k per thread (ADAMK) - Padre::Logger now allows the PADRE_DEBUG environment variable to be set to a specific class name, enabling logging only for that class. This simplies tracing around a specific problem now that the number of classes with debugging hooks is getting large (ADAMK) - Moved the startup tool enabling of the syntax check and error list from the startup timer to the constructor, and prevent them from writing back to the config. We no longer need to write the config at all during startup, making startup faster (ADAMK) - Scroll the output window down on outputs (kthakore) - Directory browser rewritten to operate in the background (ADAMK) - Improved directory tree search to take advantage of new background file scanning. It is now instantaneously quick (ADAMK) - Added the PPI::Cache API to provide a simple common mechanism for stashing GUI model data such that all cache data can be cleaned up in one go when the relevant project or document is released (ADAMK) - Fixing some new bugs or adding temporary workarounds for them (SEWI) - Rebuild History using non-blocking IO on Padre start (SEWI) 0.64 2010.06.12 - Last Stable before merge of new Task 2.0 API - zh-cn translation updated (jagd) 0.63 2010.06.02 - Autocomplete "sub new" for Perl modules (SEWI) - fixed ticket #956: crashes if Outline is active (ZENOG) 0.62 2010.05.21 - Any 3 column table layout in the preferences dialog now has a stretched middle column. (PLAVEN) - Add a warning for versions of Wx.pm with broken HTML rendering (ZENOG) - Mousing over a sub/method name with ctrl pressed now highlights it to indicate it can be clicked on (Sam Crawley) - Regex editor: Support global flag for substitute (ZENOG) - Updated Turkish translation (Burak Gürsoy) 0.61 2010.05.12 - MIME types: added a few C++ file extensions, added LaTeX .sty files (Zeno Gantner) - About dialog: increase height of the window so that the translated licensing terms also fit in without a scrollbar (Zeno Gantner) - Debugger: improved variable detection in the document (Zeno Gantner) - Menu: More consistent capitalization of menu entries (Zeno Gantner) - Updated German translation (Zeno Gantner) - fixed ticket #538: "outline view info takes too long to refresh" by adding an outline cache (Zeno Gantner) - fixed ticket #541: "wrong outline can get displayed for a document" (Zeno Gantner) - fixed ticket #940: "crashes when right clicking in code editing area" (Zeno Gantner) - fixed ticket #878: "Tabs like 'Outline', 'Functions'... should have a close button, just like the documents tabs" (Zeno Gantner) - fixed behaviour of the close button for the bottom tabs (Output, Errors, Syntax Check): closing a tab now toggles the corresponding menu and config items (Zeno Gantner) - Updated German translation (Zeno Gantner) - Updated Chinese translation (Chuanren Wu) - fixed ticket #939: "Padre 'help' depends on POD2-Base on Strawberry Perl on Windows XP" (ADAMK) - Updated Italian translation (SBLANDIN) - Updated Brazilian Portuguese translation (GARU) - Updated Dutch translation (Dirk De Nijs) - Updated Spanish translation (ENELL) 0.60 2010.04.20 - Add FTP connection caching/sharing (SEWI) - Add interactive template functions (SEWI) - Fixed ticket #900: opening binary files may crash Padre (Zeno Gantner) - Improved some menu entries: added missing "...", better labels, better comments (Zeno Gantner) - Clearer error message if debugger is not started yet (Zeno Gantner) - Complete language/locale switch on Unix platforms: also correctly translate the Wx default labels (Zeno Gantner) - Fixed ticket #921: regex syntax error in Regex Editor (reported by leprevost) - Updated German and Turkish translation (Zeno Gantner, SEWI and Burak Gürsoy) - Added licensing information to About dialog (Zeno Gantner) - Skip '.' when indexing installed modules in @INC (dam) - Fixed bug related to search history (Sam Crawley) - Added file type filter "script file" (which includes Unix shell scripts and Windows .bat files) to the Open dialog (Zeno Gantner) - MIME types: added .mo to the list of binary file extensions, improved/gettext-ified some descriptions, changed LaTeX extension from latex to tex (Zeno Gantner) - Autocomplete no longer displays the dialog when only one option is available (unless 'Autocomplete while typing' is on) (Sam Crawley - #927) 0.59 2010.03.31 - Don't crash open file list dialog on unsaved files or without files (SEWI) - Added a small survey for new Padre installation (SEWI) - Resolved the clash between threads and SQLite by temporarily disconnecting from SQLite during a thread spawn (ADAMK) - Slave master quick-spawning in Padre::Startup, so that we get smaller thread spawn memory penalty from the interpreter copy. On Win32 the per-thread cost drops from 34.1meg to 20meg with a reduction in total memory use for a typical user of about 20% (ADAMK) - Add language names/translated texts to select_language list (SEWI) - Fixed ticket #865 Wrong document type in View Document As (PLAVEN) - New Padre::Wx::Display screen geometry library for handling multiple screens, weird geometry setups and other weird stuff that coders have on their development setups. Padre's main window uses this to calculate an elegant golden-ratio uniform-margin default position and size (ADAMK) - When showing a toolbar panel for the first time, make sure it's lock state is consistent with the main_lockinterface config setting (ADAMK) - Local file and remote file installation switched from pip to cpanm (ADAMK) - Completed the 'Insert Special Value' functionality (Zeno Gantner) - Updated German translation (Zeno Gantner) - When refresh_windowlist was sped up, sorting regressed. Fixed (ADAMK) - Fixed ticket #889: Padre saves non-ASCII characters as \x{XXXX} (AZAWAWI) - New Win32 launcher #677: the Padre process is now named "padre.exe" in the Task Manager (instead of wperl.exe) and it embeds the Perl interpreter instead of being just a launcher (DOLMEN) - On Win32 the manifest file (which tells Windows to use new Vista/7 styles on such systems) is now embedded as a resource in the binary, so any wperl.exe.manifest containing the string 'name="Padre"' is obsolete and must be removed (DOLMEN) - Fixed ticket #904: Win32 taskbar icon is only 16x16 (Windows 7 may uses 48x48) (AZAWAWI) - Small improvements/fixes to some dialogs: Refactoring, Open URL, Goto, Save as, Preferences, Insert File, New Perl Distribution (Zeno Gantner) - New document statistics dialog, faster computation of document statistics (Zeno Gantner) - Added missing File::pushd Padre dependency (AZAWAWI) - Fixed ticket #894: search for non-ASCII characters (Zeno Gantner) 0.58 2010.03.08 **WARNING Still not stable** - Fixed "Open File In Existing Padre" for non-win32 (PDONELAN) - In advanced preferences, display the storage backend name when it is default and 'User' is now called 'Overriden' (AZAWAWI) - In advanced preferences, display preferences options for non-boolean settings (AZAWAWI) - In advanced preferences, display a True/False radio button for boolean settings (AZAWAWI) - Fixed an incorrect default value display bug in advanced preferences when it is toggled (AZAWAWI) - In advanced preferences, hide bottom controls at startup (AZAWAWI) - In advanced preferences, Set button is hidden when it is a boolean. True/false radio buttons handle the switch instead (AZAWAWI) - Fixed ticket #858 Recent files does not display anything on Padre startup (AZAWAWI) - Refresh all menus at startup. This prevents "nothing" open mode (i.e. no document) from incorrectly showing an enabled menubar (AZAWAWI) - Padre::Util::share() can now get the name of a plugin (e.g. 'Perl6') and return the share directory of that plugin (SZABGAB) - Removed the unused concept of user-configurable menus, which was slowing down a ton of different operations that needed a menu refresh (ADAMK) - Removed ->refresh calls during the initial menu construction, as we will be refresh'ing again anyway at the end of the startup, and thus any work done in the menus is completely wasted CPU (ADAMK) - Removed the very expensive window list refresh code from the main menu refresh method into it's own dedicated refresh method. We can fire this directly in the limited number of situations that the notebook adds, removed, or renamed documents (ADAMK) - Speed up status bar updates (ADAMK, SEWI) - Warning editor markers are now actually orange on win32 (AZAWAWI) - Landed new and much much faster refresh_windowlist (ADAMK) - Fixed ticket #860: Configurable key bindings dialog (AZAWAWI) - Added Browse Buttons to External Tools Preference Dialog (PLAVEN) - Fixed ticket #863: Continous warnings or prints kill Padre (AZAWAWI, KTHAKORE) - Bumped Wx::Perl::ProcessStream version requirement to 0.25 (AZAWAWI) - Added promised PPI lexer configurable max-length limit for azawawi (ADAMK) - Fixed ticket #867: Padre dies when hitting Ctrl-. (AZAWAWI) - Fixed ticket #807: F2 is broken (AZAWAWI) - Fixed ticket #835: Function list not populated on initial panel showing (karl.forner) - Added Turkish translation. 0.57 2010.02.18 - **WARNING Contains new threading code** - Spawn a master thread very early in the startup process. Use that master to create worker threads as necessary. Cuts down on memory usage and fixes the "Leaked Scalars" warning (BRAMBLE, SMUELLER) - Fix pluginmanager error dialog for plugin-event failure (BRAMBLE) - Add status messages for Padre::File operations (SEWI) - Select some files to close (SEWI) - Select some files to reload (SEWI) - GotoLine is now called Goto dialog (AZAWAWI) - Goto dialog is now non-modal lazy single instance dialog (AZAWAWI) - Goto dialog has a current positon/line number field (AZAWAWI) - Regex editor dialog is now more compact and it includes regex helper buttons (AZAWAWI) - Regex editor dialog can now highlight matched text (AZAWAWI) - Regex editor dialog can now display regex description (AZAWAWI) - Implemented Replace (aka substitution) in Regex editor (AZAWAWI) - Right click "Edit with Regex Editor" now works on user-selected text (AZAWAWI) - Added "headline" method to Padre::Project, which allows a project to try and intuit the "primary" file in the project (for a CPAN distribution of Foo::Bar this will be lib/Foo/Bar.pm) (ADAMK) - Removed the final usage of the "Provider" phrasing, and made more of the modules used by the Perl help provider run-time loaded (ADAMK) - Moved padre.exe build from bin to win32-loader folder since bin is a bad path for putting the Padre win32 launcher code (SMUELLER, AZAWAWI) - Added "Open in File Browser" in the File and right-click menu (AZAWAWI) - Added "Find in Files" to right-click menu (AZAWAWI) - No need to launch a command shell to execute explorer.exe on win32 (AZAWAWI) - Added "Open with Default System Editor" in "File -> Open..." (AZAWAWI) - Implemented padre --reset to flush and reset the current Padre configuration in otherwise unrecoverable situations, such as now when the Swarm plugin causes the slave-driver code to instantly segfault at startup (ADAMK) - Add mimetype detection for Template::Toolkit and CSS files (SEWI) - Added plugin menu refreshing to the resource locking system (ADAMK) - Fixed three cases where code was still manually calling ->Freeze and ->Thaw on the main window, breaking the resource locked (ADAMK) - Fixed ticket #847: "Implement Mozilla-style about:config for Padre" (AZAWAWI) - Fixed ticket #845: Fix relative filenames from commandline (SEWI) - Added "Open In Command Line" to File menu (AZAWAWI) - Renamed Plugins menus to Tools and moved Preferences into it (ADAMK) - Re-implemented the mechanism for generating a human-oriented list of window names (ADAMK) 0.56 2010.02.01 - Plugins may now add their GUI elements to the view menu (SEWI) - Padre now displays a dynamic to-do list generated from comments in your source code (CORION) - Landed new Padre::Startup module which is dramatically faster when loading files into an existing Padre via the single instance server, and finally provides a mechanism for allowing configuration to disable the startup splash image (ADAMK) - Changed a few configuration settings to create a more consistent naming pattern for them (ADAMK) - Audited dependencies and updated a variety of them (ADAMK) - Ctrl-Shift-W is now bound to "Close This Project" (ADAMK) - Added an option for traceing Padre subroutine calls to the developer plugin (SEWI) - Uses correct make from Config.pm for the run menu item -> Build and run tests (KTHAKORE) - Speedup and less false-shows for autocomplete (SEWI) - Speedup while changing tabs (use the correct project dir) (SEWI) - Simple refocus on document after command run (KTHAKORE) - Fixed ticket #822: main window could be off screen on start (BLAKEW) - padre-client allows you to use Padre for commit messages and other synchronous edit events (CORION) - WIN32, Converted the --desktop registry code to Win32::TieRegistry and removed hardcoded strawberry paths (AZAWAWI) - WIN32, padre.exe will run with the same UAC privileges as same as the invoker (AZAWAWI) - Disable debugger menu items when there is no document (AZAWAWI) - Fixed a Padre debugger crash when unsaved document is debugged (AZAWAWI) - Fixed Padre no-document crash with Find Next/Find Previous functionality (AZAWAWI) - Make sure that windows context key shows the refactor menu items in the right-click pop-up menu (AZAWAWI) - Used Module::CoreList::is_deprecated to display deprecated CORE modules in help search title (AZAWAWI) - Padre::Util::Win32::ExecuteProcessAndWait doesn't automatically inherit the same Cwd as the parent process. Added support for explicit cwd parameter and make the syntax checker pass the cwd to it. Syntax checking of test scripts and such should now work as intended on Win32(ADAMK) - Audit uses of Padre::Util::Win32 to only load it via require. Added a TRACE warning to verify it never gets loaded on non-Win32 (ADAMK) - Tuned the locking for ->close_where, which should make a variety of functions like "Close This Project" and "Close Other Projects" noticably faster (ADAMK) - Changed func_foo config variables to feature_foo, in anticipation of of a future equivalent to the Mozilla "about:config" control (ADAMK) - Added feature_cursormemory to allow disabling of Padre's feature to remember the location in the file you were scrolled to (ADAMK) - Added a fast ascii shortcut to the very slow encode detector. Opening files all of a sudden gets much faster if you have ascii files (ADAMK) - Bumped ORLite to 1.38 to get faster ARRAY object support and Class::XSAccessor acceleration support. If they cause problems, these changes can be safely backed out. (ADAMK) - Fixed the mass-error-popups on mimetypes without help provider (SEWI) - During DB locks (which are the most likely place for things to make changes to the database) disable synchronous SQLite writes. This will reduce the time that Padre blocks, at the risk of config.db corruption if there is a hardware failure or operating system crash. (ADAMK) - Fixed ticket #837: padre.exe should be able to be placed in c:\strawberry\perl\site\bin (AZAWAWI) - Improved "Goto Line" dialog to be smarter with better validation/error messages (AZAWAWI) - Open Resource can now display Perl package names for matching resources (AZAWAWI) - Fixed #838: Author tests should all check RELEASE_TESTING and/or AUTOMATED_TESTING (RHEBUS, AZAWAWI) - Fixed Regex Editor dialog destruction bug where multiple ->Show and ->Destroy could lead to a Padre crash on WIN32 (AZAWAWI) - Project detection differentiates between four different subclasses of Perl build systems (three of those correctly) (ADAMK) - Function List has resource locking around it and properly triggers a refresh when we show it for an already open document (ADAMK) - "Goto Line" dialog now supports going to lines and positions (AZAWAWI) - Fixed perl to refactor action prefix for refactor menu for consistency (AZAWAWI) - Fixed ticket #841: Quick Menu Access should show the location of the menu item on the menu system (AZAWAWI) 0.55 2010.01.21 - Add full list of file types to the View Document As menu (SZABGAB) - dist-zilla projects detection finally fixed (#489) (JQUELIN) - The directory tree refresh method will shortcut if nothing has changed, which should fix a number of bugs relating to the directory tree "doing things" when it shouldn't be (ADAMK) - Saving files to somewhere other than the current project will now correctly flush the document project state, and triggers a directory tree flush so that we communicate the change in project (ADAMK) - Cloned ORLite::Migrate to a private version as Padre::DB::Migrate so we have a better chance of fixing bug #796 (ADAMK) - Tentatively fixed #796 by spawning migration scripts in a manner which does NOT assume the pre-existance of STDOUT. This is at best a short-term hack, because this STDOUT problem is going to come back and bite us in other ways in the future, for sure (ADAMK) - Tuned the directory tree refresh logic to improve startup speed when launching Padre with specific named files to open (ADAMK) - Tuned the creation and management of tool widgets to remove the need to load or construct tools at startup time that are turned off in the user's configuration. - Tuned lock-release refresh execution to remove low-level refresh methods that are also contained in higher level refresh methods. - Removed a superfluous AUI Update from the refresh method (ADAMK) - Delay loading some additional GUI classes and objects until they definitely needed (ADAMK) - Suppress warnings that occur during plugin loading (ADAMK) - 'Simple' possible fix for #331 to update the tabs when 'save all' is run in Padre. (PLAVEN) - Fixed #819: Don't crash on missing project dir (SEWI) - Upgrading --desktop option from VBScript to a new Win32::Shortcut-based Padre::Desktop. Desktop link creation works on Vista and newer operating systems again (ADAMK) - Tuned menubar refresh to only fire if we change document mimetype, which saves a ton of CPU and seems to reduce flicker (ADAMK) 0.54 2010.01.07 - Added experimental support for clickable filenames in Output panel. Currently only matches: at line 5. (PDONELAN) - If all files are closed, the function list would ->Hide itself permanently and never come back. Resolved (ADAMK) - Fix perl interpreter selection (SZABGAB) - Updated DBD::SQLite dependency to 1.27 and ORLite dependency to 1.30. This should now correctly throw an exception on a corrupt padre.db file which will cause an immediate crash at startup with a SQLite-related error message instead of a secondary error message complaining about missing Padre::DB classes (ADAMK) - Moved Padre::HelpProvider::Perl to Padre::Document::Perl::Help to prevent plugin classes from being scattered all over the namespace tree (ADAMK) - Moved Padre::QuickFixProvider::Perl to Padre::Document::Perl::QuickFix to prevent plugin classes from being scattered all over the namespace tree (ADAMK) - During shutdown, be more precise about the order in which we clean up and be more careful to ensure that ->Update is NOT disabled, to prevent segfaults on Windows from the "disabled update at exit" bug (ADAMK) - Added the first PROJECT-backend config_perltidy setting, so that projects can for the first time define a project tidy policy. This project-specific policy isn't being used by the plugin itself yet, but this change clears the way for that kind of functionality (ADAMK) - Added config_perlcritic configuration setting, so that projects can define perlcritic policies (ADAMK) - All tests now run without the need for a visible Padre window (ADAMK) - Ticket #756: Wx::Perl::ProcessStream 0.24 solved this issue Changed the dependency to 0.24 (SEWI) 0.53 2009.12.23 - Add initial version of a debugger using Debug::Client (SZABGAB) - Fix crashes when running refactor actions when there is no document (AZAWAWI) - Open resource searches now for user selections (AZAWAWI) - The Open resource's OK button is disabled when the search results list is empty (AZAWAWI) - Help search (F2) now supports *ALL* installed CPAN modules (AZAWAWI) - Fixed "Syntax Check" focus loss bug while switching tabs quickly and a syntax error is in one of them (AZAWAWI) - Help search does not block when loading a long help topics list (AZAWAWI) - Ticket #787: Add a test for breakpoints to testsuite (SEWI) - Fixed missing mime type guessing that caused new Padre documents to default always to Scintilla (AZAWAWI) - Landed new multi-resource locking subsystem. Many operations are now prevented from refreshing the GUI multiple times. Startup, shutdown, open and close multiple files, session changing all much faster (ADAMK) - In Open resource, path is now cleaned from slashes on win32 (AZAWAWI) - Fixed Padre crash when closing a Perl 5 script tab quickly while syntax check is on (AZAWAWI) - Added "No errors/warnings to $project-relative-filename" to syntax checker. (AZAWAWI) - Quick Menu access now displays Padre action label, name and comments in an HTML window instead of a static label (AZAWAWI) - Make the focus on "Find in files" work when called from Quick menu access dialog (AZAWAWI) - Help Search dialog is now bigger in size and fonts. (AZAWAWI) - HTML output in help search dialog for Perl variables and functions has now bigger bold fonts for title (AZAWAWI) - Fixed #758: Autocomplete now also works with backspace (SEWI) - Ctrl-Tab behaviour is now configurable (SEWI) - Rename Padre::Debug to Padre::Logger (SZABGAB) - Reuse the comment field of the menu actions and show them in the toolbar (SZABGAB) - Add comment field to all the menu items that did not have yet (SZABGAB) - Integrated Padre::DB into the Padre::Locker API, so that we can do (very basic) nested transactions (ADAMK) - Audited the startup process for database operations that either weren't being done in a transaction, or were doing crazy bizarre things. Startup is now noticably faster (ADAMK) - Added Preference setting to control autocomplete when editting a script rather than a Module. (PLAVEN) 0.52 2009.12.14 - Add a plugin hook on change of current editor tab (SEWI) - Show the svn revision of Padre's start time at the title bar&about dialog, not the current one (SEWI) - Fixed: Padre command line arguments work again when using dev.pl (SEWI) - Fixed: Menu options get disabled/enabled as needed again, this also fixed ticket #742, #762, #764 and #771 (SEWI) - Alt-Left and Alt-Right switch to the neighbor panels which Ctrl-Tab uses the last-used order (SEWI) - Fix: Double click on the function list jumps to the sub (again) now (SEWI) - Added "Save Intution" to the File menu, to automatically save a new file wherever Padre is confident it is appropriate (ADAMK) - New file creation is now driven by Template Toolkit templates (using Template::Tiny). This should allow even basic new file creation to be somewhat adaptive to the user or project context (ADAMK) - Padre speedup: Limit number of menu bar refreshs (SEWI) - Fixed ticket #790: Ctrl + Caps Lock reduces font size (AZAWAWI) - Re-enabled toggle status bar on win32 (AZAWAWI) - Fixed ticket #750: Ctrl-Tab works again (PLAVEN, SEWI) - Fixed Padre crash in Module Tools/Install Locale/Module/CPAN config (AZAWAWI) - Open Resource restarts search now when project directory or Padre's current directory changes (AZAWAWI) 0.51 2009.12.06 - Find all option showing all matches in bottom tab (CODE4PAY) - Improved FTP error handling (SEWI) - Open URLs from command line (SEWI) - Configurable location of the 'perltags' file for autocompletion (SEWI) - Fixed ticket #419: find variable declaration does not work at the end of a variable (PATRICKAS) - Fixed ticket #654: Lexical Rename of Variable - Can't highlight the whole variable (PATRICKAS) - Improved "Find Method Declaration" based on perltags (SMUELLER) - Basic XS-Document support as needed for the full monty in a plugin (SMUELLER) - XS (perlapi) calltips based on the perlapi of 5.10.1 by default. Can be configured to show the perlapi of any release of perl back to 5.6.0 if Padre::Plugin::XS is installed. (SMUELLER) - Padre::Action::Queue for auto-processing of Padre actions (SEWI) - Perl autocompletion is much more configurable now (SEWI) - Indentation auto-detection now skips POD for ::Perl documents (SMUELLER) - Find in Files now has a checkbox that shows files that do not match (GARU) - Tests which are not needed for end-user installation now in xt (ADAMK) - Added a test for actions (SEWI) - Re-enabled the beginner error check tests (SEWI) - Better focus transitions during search/replace, which should make them easier to work with quickly (ADAMK) - Rolled back function list improvements that were causing regressions (ADAMK) - Added project sub-path intuition when saving new files (ADAMK) - Fixed a number of search/replace related bugs (ADAMK) - Fixed ticket #421: crash: no documents, F3/F4 (AZAWAWI) - Fixed ticket #678: VACUUM the configuration database at shutdown to keep it small and fast (AZAWAWI) - Fixed ticket #714: [Windows] Have a script to make binary. (AZAWAWI) - Styles now allow configuring of the selected text (ADAMK) - Upgraded tracing to new Padre::Debug that compiles out when not being used. (ADAMK) - Make Capture::Tiny a test prereq in order to eliminate a strange test failure (SZABGAB). - Added an initial simplistic mime-type + detector for Template Toolkit (ADAMK) - Change Directory label to Project to hint to the user that Padre does actually understand the concept of a project, it's just subtle (ADAMK) 0.50 2009.11.08 - Fixed #686 DocBrowser launching Padre help (BRAMBLE) - Add initial version of a regex editor. (SZABGAB) - Fixed ticket #728: Changing locale crashes Padre (AZAWAWI) - Menubar is now configurable but still lacks a dialog for this (SEWI) - Beginner error checks are now configurable (turn each single one on or off) (SEWI) - Fixed ticket #710: share/doc/perlopref.pod missing author/license (AZAWAWI) - Added basic FTP-remote-editing capability (SEWI) - Initial version of "Find Method Declaration" (SZABGAB) - Timeouts an other options for Padre::File::HTTP and ::FTP are now configurable (SEWI) 0.49 2009.11.02 - Fixed #691: Extract subroutine does not work for a script without subroutines (PLAVEN) - Bugfix: The split-beginner-error check got false positives (SEWI) - Moved more menu actions to independent actions (SEWI) - Added a readonly flag to the taskbar (AGN) - Fixed #698: Syntax checker leaks files in tmpdir (SEWI) - Syntax checker now also shows a successful check (SEWI) - Added menu option to reload all open files (SEWI) - The current selection or document may be filtered through an external command now (SEWI) - Low-priority popup messages could be moved to the status bar by setting a preferences option (SEWI) - require IPC::Open2 and IPC::Open3 as they are both used in the code (SZABGAB) - Improved autocomplete (always) results (SEWI) - Run make and TDD-tests in one step (KTHAKORE) - Padre is now an XP-themed win32 application (AZAWAWI) - Auto-save session state is now possible (SEWI) - Auto completion usability fixes (AZAWAWI) - Padre syntax images are now 16x16 transparent PNG images instead of 14x7 (AZAWAWI) - Fixed ticket:372 "window list should be sorted alphabetically" (AZAWAWI) - Added "shorten common path in window list" to preferences (AZAWAWI) - Fixed ticket:709 "Show editor window listed by project, then project- relative path" (AZAWAWI) - Added a test to run Padre's beginner error checks on the Padre source (SEWI) - Config option for auto-cleanup of files during save for supported document types (SEWI) - Modules/Plugins could now add their panels to the global preferences (SEWI) - Workaround for Test::NoWarnings hiding issue which lead to missing prerequisites or upgrades (#646 SZABGAB) 0.48 2009.10.12 - "Last session" now restores the last state even if Padre crashed and not the last stated saved by a planned exit (SEWI) - Fixed Wx::Perl::ProcessStream installation failure on vista/win7 by upgrading to 0.16 (AZAWAWI, Mark Dootson - MARKD) - Fixed the error dialog so that it displays the error icon (AZAWAWI) - Fixed ticket #292: "Split window" command does not work by removing the non-working feature (AZAWAWI) - Added examples for Perl newbies (SEWI) - Added a search field for functions list accessible via ALT-N (AZAWAWI) - Added random instance ID (SEWI) - Added multiple events per action (SEWI) - Fixed win32's context menu key to work exactly as the right click behavior or ALT-/ (AZAWAWI) - Fixed ticket #598: CTRL-L kills clipboard (AZAWAWI) - Case sensitive was labeled case insensitive in replace, fixed. (SEWI) - Windows filename test doesn't run on darwin (Mac) any longer and runs as TODO because a failure must not stop the Padre installation. (SEWI) - Padre::File::HTTP uses environment settings for proxy (SEWI) - First real working version of the PopularityContest - module (SEWI) - Smart highlighting works now in realtime as you select text (AZAWAWI) - Fixed ticket #611: File | Open does not support UNC path (AZAWAWI) - Save session now suggest the name of the last opened session for saving (SEWI) - Fixed ticket #627: Suggestion: Make it possible to copy 'Syntax Check' messages (AZAWAWI) - Require version 0.20 of Wx::Perl::ProcessStream to fix #628 (AZAWAWI, SZABGAB) - Fixed ticket #493: splash image license not suitable for Debian (AZAWAWI) - Fixed t/86-service.t to work again on win32 (AZAWAWI) - Fixed ticket #314: Padre broken on MS Vista when starting with no file to be opened (AZAWAWI) - Added a 'padre --desktop' option that improves Padre-Windows integration. This creates a desktop shortcut and an "Edit with Padre" in the shell context menu (AZAWAWI) - Made beginner error checks report the line where an error was located (SEWI) - Fixed: Syntax checker now only shows errors from current file (SEWI) - padre --version displays a MessageBox under wperl.exe (AZAWAWI) - Option to continue on beginner errors (SEWI) - Made title bar configurable (SEWI) - Autocomplete on every char (enable it in the preferences) (SEWI) - Add logfile so the developer debugger of padre will print there and not on STDERR. (SZABGAB) - Show file size on disk in statistics (SEWI) - Under Linux and BSD, 'padre --desktop' adds a Padre.desktop inside /usr/share/applications (AZAWAWI) - When saving a module for the first time, Padre will attempt to guess the name of the file so you don't need to type it (ADAMK) - Added "Dump Expression" to Developer Plugin to evaluate and dump a single expression within the Padre context (ADAMK) - Perl interpreter for running scripts is now configurable (SEWI) - Added MIME type count to PopularityContest, but it's still not sending anything (SEWI) - Added a runnable-flag to Padre::File and it's current modules (SEWI) - Syntax check now doesn't slow down typing (SEWI) - Add autocomplete feature for new methods (SEWI) - Update directory tree on load session (SEWI) - New Padre launcher for Windows (DOLMEN) - Fixed Open Resource status text display on Linux (AZAWAWI) - Added configuration version checking and prepared auto-config-upgrades (SEWI) - The Perl help search (F2) destroyed the code refernce calling it, so F2 was usable only once per Padre start, may also apply to other actions. Fixed. (SEWI) - Ticket #660 - Moved Perl Refactoring tools to it's own Refactor Menu (PLAVEN) - Added the ability to select where to place the "extracted subroutine" in the current document (PLAVEN) 0.47 2009.09.25 - Bundled more Perl Operators documentation [perlopref.pod] (AZAWAWI, COWENS) - Fixed crash when inserting a special value without any document (AZAWAWI) - Improved StatusBar - speed (SEWI) - Fixed ticket #573 ESC does not close About window (AZAWAWI) - Fixed ticket #578 Padre's Splash screen should not get in the way (AZAWAWI) - Fixed ticket #579 Commenting/uncommenting comments the last unselected line (AZAWAWI) - Fixed ticket #576 common (beginner) error check has no feedback if no errors found (AZAWAWI) - Added Padre::File as a API for all operations on edited files (SEWI) - Added 13-eol.t to detect non-UNIX EOL-ed files in Padre (AZAWAWI) - Added "Open URL" menu option (SEWI) - Added Padre::File::HTTP (SEWI) - No more "WIN32" as a line ending indicator only "WIN" (AZAWAWI) - The status bar provides more space to display longer mime-type names (AZAWAWI) - The status bar reflects now the current document's line endings as follows (AZAWAWI): - WIN (CR/LF), MAC (CR), UNIX (LF) - Mixed, a mixture of the above which is usually an error - None which is a one-liner/empty script - Beautified the about dialog so that it is includes the splash image. (AZAWAWI) - Fixed ticket #589 Pasting in a UNIX document in win32 corrupts it to MIXEd (AZAWAWI) - Added more beginner-error-checks (SEWI) - Improved Perl menu to be more consistent (AZAWAWI) - Fixed ticket #504 and ticket #586 which are basically about being able to lexically rename a variable when the cursor is over its declaration (AZAWAWI) - Added "Dump PPI Document" to "Padre Developer Tools" core plugin (AZAWAWI) - Added Run/Stop icons to the toolbar per ticket #529 (AZAWAWI) - Fixed ticket #595 F6 (Stop Executing of script) doesnt work with Output window in Windows (AZAWAWI) - Fixed ticket #597: Merged OS detection in Padre::Constant (SEWI) - Fixed ticket #594: F1 key doesn't work (SEWI) - Fixed ticket #593: On Windows, files with / and \ are now the same and files are treated case-insensitive (AZAWAWI, SEWI) - Fixed ticket #591: Save/Save as decision was corrupt (SEWI) - Fixed ticket #582: Run this test/Run Tests are broken on win32 when there is a space in the test file (AZAWAWI) - Fixed ticket #553: Directory browser's "Move to trash" feature is not working on Vista/win32 (AZAWAWI) - Massive refactoring of Plugin Manager. Looks almost exactly the same but now the status information actually updates properly (ADAMK) - Added a padre.exe launcher on win32 (SEWI, GETTY, AZAWAWI) - Reformat filenames to correct OS-dependend syntax (AZAWAWI, SEWI) - Moved add Win32 API functions to one module (AZAWAWI, SEWI) - Fixed ticket #488: allow script to recognize when executed by Padre (AZAWAWI) - Padre now uses cperl() console instead perl() for compatiblity with wperl (AZAWAWI) - Added Perl version, uptime and process information to about box (SEWI) - Fixed ticket #603: Background tasks fail to work under wperl win32 (AZAWAWI) - Added option to open a saved session on startup (SEWI) - Fixed ticket #580: On win32, Perl 5 syntax checker is invoked in strange situations (AZAWAWI) - Padre now warns about the running process at exit and asks whether to kill it and exit or cancel the shutdown (AZAWAWI) - Removed false warnings about duplicated actions/shortcuts when changing Padre's language (AZAWAWI) - Fixed ticket #394: Close DocBrowser with Escape key (AZAWAWI) 0.46 2009.09.13 - Fixed Smart highlighting to show a pale green round box instead of an ugly squiggle (AZAWAWI) - Run script waits now after completion for key to continue when run in an external win32 window (AZAWAWI). - Padre now supports the following extensions: - For Perl 5, .pmc and .plx (AZAWAWI, SZABGAB) - For Perl 6, .pl6, .pm6, .p6l and .p6m (AZAWAWI) - Help search handles now http:// and perldoc:// links (AZAWAWI) - Enabled "Syntax Check" tab is now shown when there is a problem without losing editor focus (AZAWAWI) - Handle "Recent files" Padre crash when it is called with a file that no longer exists. The entry is deleted and a message box is shown (AZAWAWI) - Added a "extract subroutine" function (RHEBUS) - Handle "Open all Recent Files" Padre crash when setup_editor is called with a file that no longer exists (AZAWAWI) - Fixed ticket #536 Padre auto converts EOLs automatically (AZAWAWI) - Pod::Perldoc 3.15 is required now. Allowing help on $. and similar. (AZAWAWI) - Fixed Arabic/Hebrew developer/translator names in Padre's about box (AZAWAWI) - Bundled more Perl Operators documentation [perlopref.pod] (AZAWAWI, COWENS) - Made beginner-error-checks work (SEWI) 0.45 2009.09.02 - Disabled 'Test Plugin From Local Dir' menu option until it's properly fixed (GARU) - Fixed PluginManager Pod glitch for deprecated Perl5 plugin (ADAMK) - Fixed various open bugs which exist on Gnome but not on Windows (SEWI) - Several translation updates (thanks to all translators!) 0.44 2009.08.24 - Help Search now supports perlopref.pod parsing - Perl operator reference (AZAWAWI) - Fixed various "Help Search" dialog bugs for perlvars and CORE modules (AZAWAWI) - "Directory Browser" stability fixes (AZAWAWI) - Refactored "Help Search" to use document help providers. This will make it faster (AZAWAWI) - Help Search looks up words selected or under the cursor (AZAWAWI) - allow the use of $main->open_file_dialog($dir) (SZABGAB) - Moved Ecliptic's Quick Fix to Padre core under the Edit menu (AZAWAWI) - Enable the F12 Save as shortcut again (SZBAGAB) - Added Perl 5 Quick Fix for 'use strict; use warnings;' (AZAWAWI) - Added Insert submenu and dialog, moved snippets into insert submenu (TEEJAY) 0.43 2009.08.16 - Revised nice splash screen slightly. Move original artwork to Padre-Artwork (BRAMBLE) - Added a (hopefully) nice splash screen for Padre (GARU) - Added a Padre::Perl API for discovering the location of the system Perl in a way smart enough to handle people that specifically need a command line Perl, or specifically need a windowing Perl (ADAMK) - Temporarily remove PAR support (ADAMK) - Upgrade the plugin internals to support arbitrary class names, simplifying the implementation and clearing the way for Acme::Padre::Plugin::* modules. (ADAMK) - Updated PPI dependencies. Padre now supports 5.10 syntax in PPI-based features (ADAMK) - Find dialog now uses the Padre::Search API. (ADAMK) - New multiple-tabbed About box (ADAMK) - F3 with sub-line selected text converts it directly into an active search without needing to invoke the Find dialog (ADAMK) - Moved Perl 6 Help dialog to Padre core as "Help/Help Search" (AZAWAWI) - Help/Help Search now supports Perl 5 (AZAWAWI) - Moved Ecliptic's Open Resource to Padre core as "Search/Open Resource" (AZAWAWI) - Moved Ecliptic's Quick Menu Access to Padre core as "Search/Quick Menu Access" (AZAWAWI) - Fixed run command in a separate window bug on win32 (AZAWAWI) - Moved Ecliptic's "Open in file browser" to Padre core as "File/Open in File Browser" and integrated it with Directory browser (AZAWAWI) - Moved functionality in Perl 5 plugin to Plugins -> Module Tools (ADAMK) - Implemented "Edit / Next Problem" (AZAWAWI) - Force setting of document (MIME) type when using New->Perl 5 test (#476) (KARL.FORNER) (SZABGAB) - Make sure coloring is update when save-as file or when opening a new file from template. (SZABGAB) 0.42 2009.07.31 - Fixed a bug that crashed Padre while moving panels with outline enabled (GARU) - The Directory browser hidden files support now automatically recognises intermediate directories (blib etc) in Perl distributions, and correctly ignores them (ADAMK) - Various performance improvements to directory tree (ADAMK) - New search engine coupled to directory tree with some regex characters support (GABRIELMAD) - Initial Padre actions support which means an action can be re-used by anything running on Padre. Keyboard shortcut conflict warnings are implemented (AZAWAWI) - Added the "Artistic" and "COPYING" (GPLv1) files as well a note to the "README" about licensing per the request of the http://directory.fsf.org/ maintainers. (SHLOMIF) - Added a "right margin" option which will show a line at the specified column (BRICAS) - Now new files belong to the project from where they were created till they are saved (GABRIELMAD) - Directory Tree shows the project directory or if none file is opened the default projects directory (configurable in Preferences > Behavior - none configured, default is user's documents directory) (GABRIELMAD) - Install some of the examples in the share directory and add an Open Example menu option (SZABGAB) - Adding Padre::Wx->add_pane_info convenience method to prevent the need for the stupid ugly Wx::AuiPaneInfo method chaining (ADAMK) - Create the Left panel and moved the Directory tool into it (ADAMK) - Upgrade Wx tree navigation to handle detached floating panels (ADAMK) - Implemented Smart Highlighting. Double click on a word to select it and a green squiggle will be shown for each matching word (AZAWAWI) - Now users can choose which is the project directory that Directory Tree must show (GABRIELMAD) - Moved close operations into Close... submenu (ADAMK) - Added "Close This Project" to close all open files in the same project as the current file (ADAMK) - Added "Close Other Projects" to close all open files in projects other than the project of the current file (ADAMK) - Changed a bunch of documentation from using items or comma-separation to using =head3 pod entries (ADAMK) - Adding new Blue Morpho logo (ADAMK) - Removed dependency on prefork.pm, it was only there to shut up the dev.pl DIE: warnings (ADAMK) - Removed dependency on Test::Most, and with it about 5-10 other excessive test-related dependencies (ADAMK) 0.41 2009.07.23 - Remove Experimental mode. - Fixed a bug in Plugin config_write where ->selectrow_array was used instead of ->do to SQL update (Thanks to tlbdk++). (AZAWAWI) - run_command in a separate window now works in win32 to support prompt('...') in Perl 6 and in Perl 5. (AZAWAWI) - Now Padre can find/replace inside selections (GARU) - New Syntax highlighter configuration system. Plugins now can add more syntax highlighters and users can pick one per mime-type. (SZABGAB) - Directory browser new artwork and drag and drop support (GABRIELMAD) 0.40 2009.07.17 - Removed about 10 dependencies, including several with lots of FAIL reports in CPAN Testers (ADAMK) - Complete refactoring of the Directory Browser, gaining a lot of performance improvements and new features such as sorted output and context menu options (GABRIELMAD) 0.39 2009.07.09 - Some of the refactoring code was moved to PPIx-EditorTools (MGRIMES) - Detection of Moose attributes in Outline view (JQUELIN) - Detection of MooseX::POE events in Outline view (JQUELIN) - Added keywords to META.yml (via Makefile.PL.) (SHLOMIF) - Bumped the required Test::More version to 0.88 - needed for note(). (SHLOMIF) - Open Selection (ctrl-Shift-O) now displays all the files it finds and lets the user select (SZABGAB) - Eliminate crash when pressing F3/F4 while there are no open files (#421) (SZABGAB) - Enable/Disable Window menu options when there are (no) open files. (#417) (SZABGAB) - For Cut/Copy/Paste/Select All, use the focused textctrl instead of the editor textctrl (RSN) - Autoupgrade ascii files to be utf-8 on save if user types in wide characters (#304) (SZABGAB) - Allow the user to use external (xterm) to run the scrips. (SZABGAB) - Add menu option to show selection as hexa or as decimal. (#36) (SZABGAB) - Switch to Locale::Msgfmt and generate the .mo files at install time (RSN) - Add number of lines to GoTo line dialog (#439) (SZABGAB) 0.38 2009.06.27 - Replace regex that needs 5.10 by a split (SZABGAB) 0.37 2009.06.25 - "Introduce Temporary Variable" refactoring tool (SMUELLER) - Added a friendly icon on the toolbar to toggle comments (GARU) - Crazy Win32::API AllowSetForegroundWindow hack to allow the Single Instance Server to correctly foreground itself (ADAMK) - Added Padre::Search search and replace API (ADAMK) - Switching to last edited file is now Ctrl-Shift-p (SZABGAB) - Be compatible with older version of File::Path (RYAN52) - Links to Mibbit were replaced by links to our irc.html (SZABGAB) - Merged the code of Padre::Plugin::Encode into Padre (SZABGAB) - Update directory only when switching to new editor (SZABGAB) 0.36 2009.05.30 - DocBrowser::POD resolver is now Pod::PerlDoc with benefits DocBrowser attempts to use current padre locale as language hint DocBrowser reuses tabs for same/similar documents (#323) (Andrew Bramble) - Make DocBrowser suck less. Quieter and faster (#322) (Andrew Bramble) - Output should be blank by default at startup (#351) (JQUELIN) - No padre version in window title (#349) (JQUELIN) - Added generic HTTP task support with Padre::Task::LWP (ADAMK) - Implemented first-generation Popularity Contest task (ADAMK) - Reorganized and differentiated Find and Replace dialogs (#348) (THEREK) - Add a set of filename wildcards to filter directory listing in Open File dialog (#343) (THEREK) - Add Chinese (Traditional) translation (BLUET) - Show Perl menu on a Project as well as Document basis (ADAMK) - Disable all Perl 6 code unless the Perl 6 plugin is enabled (ADAMK) - Reshuffle and relabel of some menus to improve asthetics (ADAMK) - Fix no_refresh during multi-file operations (ADAMK) - Added mibbit.com "Live Support" entries to the Help menu (ADAMK) - Removed the use of Class::Autouse, it was slowing down PPI (ADAMK) - Various performance improvements, load cost down by 12Mb (ADAMK) - Fixed the cut/copy/paste problem (#332) (ADAMK) 0.35 2009.05.08 - Add Japanese translation (ISHIGAKI) - Implemented experimental Single Instance support (#117) (ADAMK) - Implemented context-sensitive right-click menu for Perl documents (SMUELLER) - Ctrl-left-click on a Perl variable will jump to its definition (SMUELLER) - Ctrl-left-click on a Perl function callwill jump to its definition (SMUELLER) - Left-clicks into documents can now be hooked by the document class (SMUELLER) - Fix to the thread-status display (SMUELLER) - Fixed ticket #300: disabled EVT_SET_FOCUS in preview (THEREK) - Fixed ticket #289: Scrolling in preference window (PZSCHMIDT) - Fixed ticket #301: Fix wx assertion failures (JQUELIN, SMUELLER) - Launching a browser now happens in the background (ADAMK) - Add Czech translation 0.34 2009.04.28 - Fix crash in plugin manager when changing locale while window opened (#298) (JQUELIN) - Support for plugin l10n in place (JQUELIN) - Added Preferences->Run Parameters panel instead of Perl->Run Parameters menu option. (THEREK) - Stop refreshing the menues on every keystroke. Instead when the menu is being accessed. (SZABGAB) - Sessions support (#123) (JQUELIN) - Enable tooltips on the toolbar on Windows as well (SZABGAB) - Fix localization change in the Syntax window (#198) (SZABGAB) - Plugin manager correctly localized at startup (JQUELIN) - Plugin manager displaying full plugin names (JQUELIN) - Set file size limit to 500_000 to avoid loading too big files. (#186) (SZABGAB) - Double-clicking on an error now selects the line (#214) (JQUELIN) 0.33 2009.04.04 - Fix bug in relative path showing in the Windows menu. (GARU) - Fix the swicthing between ppi mode and none-ppi mode (SZABGAB) - Stop forking at startup. (SZABGAB) - Skip the win32 subtests if the locale is not English. (SZABGAB) - Added debug logging that can be turned on/off via the Developer plugin. (SZABGAB) - Simplified Chinese translation turned on. (FAYLAND, SZABGAB) - Added Polish translation. (THEREK) - Revamped plugin manager. (JQUELIN) 0.32 2009.03.29 - Trying to fix again the skipping of Padre::CPAN under the CPAN shell. 0.31 2009.03.29 - Avoid creating the ~/.padre during testing by two more tests. (SZABGAB, thanks to AYILMAZ) - Skip testing Padre::CPAN as it cannot be loaded under CPAN. (SZABGAB, thanks to AYILMAZ) - Fix the Directory browser to switch between projects. (SZABGAB) - Add "Run Tests" menu options to, err run tests. (SZABGAB) - Work around painful segmentation faults from multiply freeing AuiManagers (SMUELLER) - Lexical variable replace works for arrays and hashes in all their ugly incantations now (SMUELLER) - Re-enable the taskmanager tests after fixing them. (SMUELLER) 0.30 2009.03.27 - Remove Test::Compile from the prereqs as well as it is not in use. (SZABGAB) - New GUI for selecting and installing CPAN modules. (SZABGAB) - CPAN related menu items moved to new Perl5 plugin (SZABGAB) - (Re-)Storing cursor position in file (#206) (JQUELIN) - Reload file keeps cursor position (#220) (JQUELIN) - Preferences windows title should match its menu invocation (#270) (JQUELIN) - Fix error if passed a non-existent filename on command-line (#155) (JQUELIN) - New task_warn/task_print methods in background tasks to easily print to the output pane (SMUELLER) - Fix bug in lexical variable declaration search that would prevent it from finding variables declared in the main doc scope (SMUELLER) - Lexical variable replace works for foreach my $foo too. (SMUELLER) 0.29 2009.03.13 - Initial support for directory browser based on the Outline code (SZABGAB) - Improving Padre::Util::get_project_dir (SZABGAB) - Eliminate a test failure on non-English locale. (SZABGAB) - Internal cleanups & documentation for configuration subsystem (JQUELIN) - Require Test::Most for the testing and bail_on compilation errors. (SZABGAB) - Eliminated a huge memory leak by not updating the plugin menu on every keystroke. (SZABGAB) 0.28 2009.03.04 - Move Wx::Perl::Dialog back to the Padre tree. (SZABGAB) - Allow the shortening of the the file list in the Window menu. (SZABGAB) - Fix Ctrl-TAB and Ctrl-Shift-TAB. (SZABGAB) - List the available perldiag translations and allow the user to change. (SZABGAB) - Fix a few missed cases of the API change. (SZABGAB) - Some sharedir improvement. (SMUELLER) - List of available perldiag translations. (SZABGAB) - Add prompt method to be used by plugins as well. (SZABGAB) 0.27 2009.02.10 - Copyright changed to "The Padre development team as listed in Padre.pm." (SZABGAB) - Some fixes in the search menu. - Improve file type (Perl 5 / Perl 6 ) recognition. (SZABGAB) - Fix the Windows menu to be able to jump to files. (SZABGAB) - Statusbar visibility kept accross startup (#200). (JQUELIN) 0.26 2009.02.01 - On X11 based platforms, selecting text using the mouse and pasting it via middle mouse button now works (HJANSEN) - Unifying Padre->inst and Padre->ide (ADAMK) - Complete rewrite of the configuration layer. All access to configuration data is now via methods so that we can add support for project-level customisation of the interface. (ADAMK) - Completely refactored all of the config setting names (ADAMK) - Added first-class configuration support for Plugins (ADAMK) - Moved config data on bookmarks, plugins and historical search/replace strings out of the config file and into the database. (ADAMK) - The output window now understands the color and font-face related ANSI control sequences (SMUELLER) - The long-awaited MainWindow.pm -> Main.pm (ADAMK) - Heavily modified many variables and method names to bring a greater simplicity and consistency to various APIs. Only possible because we were already breaking the config system and Main.pm (ADAMK) - Removed some classes and other code that had (astonishingly for such a young application) become useless and bit-rotten (ADAMK) - Added styles for text/x-patch, text/x-makefile, text/x-yaml, text/css, text/plain(apache conf) file types (KEEDI) - Now style config file supports foreground, background, bold, italic, eolfilled, underline properties (KEEDI) - Output window now uses mono-spaced font by default (SMUELLER) - The 'Crashed' button in the plugin manager dialog is now clickable if an explanation for the failure is available (SMUELLER) 0.25 2009.01.09 - Added Chinese (Simplified) translation (FAYLAND) - Various subtle tweaks to the look and feel of the toolbar and the panels. The GUI now looks noticably "sharper" (ADAMK) - Expanded the variety and depth of functionality available in the bundled "Padre Developer Tools" plugin (ADAMK) - Our unattributed redistribution of tango was probably illegal, and made us incompatible with Debian. Switch to gnome for now. They are as ugly as sin, but at least they're legal (ADAMK) - All big MainWindow gui elements are now in their own classes, which should help us spread out feature logic properly (ADAMK) - Moved Padre::Plugin::CPAN functionality into the core so that we can do various sorts of tighter CPAN integration (ADAMK) - Padre::Wx::DocBrowser now uses Padre::Task::DocBrowser (let's hope properly) (Andrew Bramble) - Class correction Padre::Wx::Menu -> Padre::Wx::Menubar (ADAMK) - Class correction Padre::Wx::Submenu -> Padre::Wx::Menu (ADAMK) - Now that Padre::DocBrowser has landed, delete the Padre::Pod family of modules (ADAMK) - Automatic indentation style detection now the default (SMUELLER) - User interface now "locked" by default (SMUELLER) - Updated Italian translation (SBLANDIN) - Addition of contextual (un-) commenting (CLAUDIO) 0.24 2009.01.06 - Double-clicking an entry in the function list now faithfully matches the behaviour of the Ultraedit implementation (ADAMK) - Updated German translation (HJANSEN) - Replace Padre::Pod::Frame with Padre::Wx::DocBrowser, hopefully making help more helpful. (Andrew Bramble) - Moving to the glorious RFC4646-based second-generation Padre::Locale implementation. "Portugese" is no longer Brazilian :) (ADAMK) - Added a friendly icon to the ToolBar that displays the status (idle, running, high load) of the background tasks (SMUELLER) - Created Padre::Current, which should simplify everything that needs to know about the current whatever (ADAMK) - Used Padre::Current to kill off the slightly out of place non-class Padre::Documents (ADAMK) - View Document As... (FAYLAND) 0.23 2009.01.04 - Updated Italian transation. - Refactored the plugin state hash out into a standalone Padre::PluginHandle class (ADAMK) - Add naive way to locate some of the annoying errors beginners might make that perl does not catch. (SZABGAB) - Makefile.PL tricks EU:MM into not loading every single dependency, making our dependency-heavy Makefile.PL far saner (ADAMK) - Portuguese (Brazilian) translation added (GARU) - Spanish translation added (PacoLinux) - Shutdown process now delays saving the session until after the interface phase (ADAMK) - Shutdown process now disables all the plugins, so they have a change to shut down elegantly too (ADAMK) - Plugins now reload correctly (ADAMK) - Created a basic stub Padre::Manual and moved the information in HACKING.txt into Padre::Manual::Hacking and - Padre::Manual::Translation (ADAMK) - Moved more bits of GUI code out of MainWindow and into their own classes (ADAMK) 0.22 2008.12.23 - Various Perl6 and Parrot related snippets of code and functionality have been moved to the respective plugins (SZABGAB and others) - Extended preference dialog with tabs (HJANSEN) - Syntax checker now running in the background (SMUELLER) - Background Tasks can now prevent execution in the prepare hook (SMUELLER) - Added interface for passing events from worker threads to the main thread (SMUELLER) - Added simple example of a Task that sends events to the main thread (SMUELLER) - Tab/Space conversion only converts at the start of each line now (SMUELLER) - Improved comment/uncomment_lines for HTML/XML (FAYLAND) - Rewrote Padre::Wx::Dialog::PluginManager to interact directly with Padre::PluginManager (and not talk to Padre::Config) (ADAMK) - Migrated Padre::DB to use ORLite::Migrate instead of the (increasingly slow) ->setup method (ADAMK) - Allow several coloring styles, add style called 'night' (SZABGAB) - Right-click menu in margin column for code folding now allows to fold/unfold all foldable areas (HJANSEN) - Error list window for run-time errors and diagnostics (PSHANGOV) - Arabic translation added (AZAWAWI) - Italian translation updated (SBLANDIN) - Improved Ack (FAYLAND) - Allow selection of editor font and current line background color (HJANSEN) - Hebrew translation updated (SHLOMIF) - Upped Encode requirement to 2.26, fixes some fatal errors with unicode (TEEJAY) - binmode fix for File::Temp" in SyntaxChecker.pm (TEEJAY) 0.21 2008.12.14 - Note: If you are having issues running Padre after upgrading to 0.21, ("Gtk-CRITICAL **: gtk_window_set_modal: assertion `GTK_IS_WINDOW (window)' failed") try moving or deleting your $HOME/.padre directory and check whether that fixes the issues. YMMV and let us know about any problems. - Now using Module::Install for building (ADAMK, SMUELLER, SZABGAB) - Fixed bookmark-related crash (#172) (SvenDowideit) - Fixed syntax-checker related focus glitch (#173) (SvenDowideit) - Removed JavaScript plugin from the main distribution (SZABGAB) - Major menu refactoring. Each menu is now implemented in a separate class, with independant ->refresh methods and much improved encapsulation as a result. (ADAMK) - Rewrote the Padre bootstrap sequence. Not only does Padre start in a more sane order, but with some additional tweaks using ->Show, ->Freeze and ->Thaw, Padre LOOKS like it starts up and shuts down much much faster (ADAMK) - Reorganised the order and seperators for the View menu (ADAMK) - The Plugins menu no longer shows separators that don't separate anything (ADAMK) - Padre's lib directory now passes all of the rules in Perl::Critic's default Severity 5 policy. (ADAMK) - Changed the names of a number of Padre::Wx::*** classes to more-closely match the underlying Wx::*** classes that they subclass. (ADAMK) - Option to always auto-detect indentation style and adapt for each open document. (SMUELLER) - Default to showing functions in alphabetical order. (SMUELLER) - Option to show functions in alphabetical order, except private methods go last. (SMUELLER) - A bunch of autoindentation fixes. (SMUELLER) - AUI updates to the syntax-checker/output-window GUI elements (HJANSEN) - Various portability and miscellaneous fixes to the syntax checker (ADAMK, HJANSEN) - Add new Perl-specific feature: "Jump to variable declaration" and the experimental "replace lexical variable". (SMUELLER) - The Perl-specific "find unmatched brace" feature now processes the document in the background. (SMUELLER) - Generic Padre::Task::PPI class with tools for PPI-related background tasks. (SMUELLER) - Experimental implementation of the Padre::TaskManager thread pool and Padre::Task background-task-interface for running blocking tasks in additional threads. (SMUELLER) - Italian translation (SBLANDIN) - Show methods in abc order. Allow user to set preference to 'abc' or 'original' ordering of methods. (#163) (SZABGAB) - Open selection prompts user if nothing selected. (#143) (JQUELIN) - Russian translation added (Andrew Shitov) - Dutch translation added (Dirk De Nijs) - Lots and lots of encoding tweaks. 0.20 2008.12.02 - Separate tab-width from indentation-level preference (SMUELLER) - Expend auto-detection of indentation style to include the indentation level (SMUELLER) - Apply automatic tab-compression if tab-indentation is used with an indentation-width != tab-width (SMUELLER) - Reworked the autoindentation: Now with auto-de-indentation on closing brace (SMUELLER) - Now using Class::XSAccessor for generating accessors (SMUELLER) - Moved the syntax checker from Main.pm into Padre::Wx::SyntaxChecker (SMUELLER) - Small improvement to startup time by not refreshing the plugin menu after loading each plugin (SMUELLER) - French translation added (JQUELIN) - Some refactoring, (SZABGAB) - Display error when reload file failed. (SZABGAB) - Korean updates. (KEEDI) - Hungarian updates. (GYU) - Fix the "cannot save new file bug". (TEEJAY) - Save files under Mac. #160 (ChrisDolan) - Restore inner window layout through restart. (HJANSEN) 0.19 2008.11.28 - Korean translation added (KEEDI) - Hungarian translation added (GYU) - Hebrew translation added (Omer Zak) - Improvement in vi Plugin (SZABGAB) - Locale switching no longer needs a restart (HJANSEN) - Moved syntax checking out from experimental state (HJANSEN) - Prototype of printing support (HJANSEN) - Adding support for document type registration (ADAMK) - Adding plugin_name to the Padre::Plugin API (ADAMK) - Advancing the version numbers of some prereqs (ADAMK) - Save files in the same encoding as they were read. 0.18 2008.11.23 - Added a few more directories to the no_index list in Build.PL (ADAMK) - Implement a reusable Padre::Pod2HTML class so that Padre can develop a specific look and feel for all HTML generated from Pod. (ADAMK) - Aggresively bump the Pod::Simple dependency so that the generated HTML contains support for all the latest developments. (ADAMK) - Add explicit dependency on HTML::Entities because Pod::Simple has now made the dependency optional. (ADAMK) - Aggressivly bump the HTML::Parser dependency so that we have better support for our Unicode-needing users (ADAMK) - Recognize when file is changed on disk (#55) (JQUELIN) - Un/Comment now filetype-dependant (#26) (JQUELIN) - Moving the vi keybinding code to a Plugin (SZABGAB) - Jump to the last open window using menu or Ctrl-6 (#137) (SZABGAB) - Hide the margin of the syntax checker when it is not in use. (SZABGAB) - Save-as updates the window menu (#145) (JQUELIN) - Drag and drop file(s) open them (#42) (SZABGAB,JQUELIN) - padre --index no longer crashes (#79) (JQUELIN) - Incremental, non-intrusive search a-la Firefox (#60) (JQUELIN) - New Plug-in system, incompatible with the previous one. - Plug-in manager dialog. - Rename Padre::Plugin::MY to Padre::Plugin::My. 0.17 2008.11.17 - Optional highlighting of current line (via background color) (HJANSEN) - Code folding (#61) (HJANSEN) - Word Wrap and "Default word wrap on for each file" in Preferences (FAYLAND) - Show/Hide Output or Functions (FAYLAND) - Fix the failing plugin manager test. (SZABGAB) - Add configuration option to the autoindentation (no, same_level, deep). (SZABGAB) - Switch to File::ShareDir::PAR 0.03. (SZABGAB) - Allow opening multiple files at once (#43) (JQUELIN) - Add Padre::Plugin::MY and set it to be a prefered plugin. (SZABGAB) - Join lines with Ctrl+J (#128) (JQUELIN) - Full screen view (#131) (JQUELIN) - Hide/show white spaces and tabs (#132) (JQUELIN) - Check minimum App::Ack version (#104). (JQUELIN) - Selection markers to ease selection (#133) (JQUELIN) - Drag-n-drop files from Filer Explorer (CORION) - Add experimantal and basic vi mode. (SZABGAB) - Fix Shift-TAB (#141) (SZABGAB) - Add the beginning of second generation plugin support. (ADAMK) - Limit the plugin names to one deep only. Second level namespaces are saved for the implementation details. (SZABGAB) - Experimental perl -c based syntax checking. (HJANSEN) - Clean recent files list (#126). (FAYLAND) - Open all recent files (#125). (FAYLAND) - Alt-1, Alt-2, etc removed. (#122) (SZABGAB) - Initial Javascript support. (FAYLAND) - Enable/Disable the subs window via View menu (#100). - Move between the editor, the output window and the subs window with some hot-key (#14) (SZABGAB) 0.16 2008.11.09 - Fix New on the Toolbar (SZABGAB) - Add Diff menu item to show changes in file. (SZABGAB) - Change windowing system to AUI solving several requests: (SZABGAB) Split view Tab reordering Tab close button - Localization and German translation. (HJANSEN) - Move the content of Padre::Wx::Dialog to Wx::Perl::Dialog 0.02 (SZABGAB) - Change back the new-file hot-key to be Ctr-N again. (SZABGAB) - Add experimental PPI based Perl5 syntax highlighting (FAYLAND, SZABGAB) - Save cursor position between runs of Padre. (FAYLAND) - Tab/space conversion menu items. (FAYLAND) - Upper/Lower case conversion menu items. (FAYLAND) - New icons on the toolbar adding undo/redo/cut/cop/paste/select all. (HJANSEN) - Also put cut/copy/paste/select all in the edit menu and in the right click menu. (HJANSEN) - Move Parrot plugin to separate distribution. (SZABGAB) - Enable switching between German and English. (SZABGAB) 0.15 2008.11.02 - Don't let opening file that is already open. (SZABGAB) - Start UTF-8 support. (SZABGAB) - Switch to File::ShareDir::PAR (SMUELLER) - Start using File::Which to locate the perl interpreter (if padre is running from a par archive). (SZABGAB) - Fix the Split Window menu option to really work. (SZABGAB) - Adding "Close All but Current" menu option. (SZABGAB) - Add autoindentation. (SZABGAB) - Set focus on windows. (SZABGAB) - Before saving, check if file has changed on disk. (SZABGAB) - New menu option: "Reload file". (SZABGAB) - Move style definition to external yaml file. (SZABGAB) - Separate highlighting definition for PASM files. (SZABGAB) - Reorganize Menus (make the Perl menu really only perl specific). (SZABGAB) - Allow the execution of PASM files using parrot if PARROT_PATH is defined. (SZABGAB) - Load Parrot::Embed if it is available. (SZABGAB) - Add Padre::Plugin::Parrot to show how to use pir for plugin writing. (SZABGAB) - Allow execution of Perl 6 code using Rakudo. (SZABGAB) - Add copyright/license to all the .pm files as per Debian request. (SZABGAB) - Ctrl-T is the default new file hot-key just as in Firefox. (ADAMK) - Dialog cleanups. (SMUELLER, ADAMK, SZABGAB) - Replace the toolbar icons with icons from the Tango project. (SZABGAB) 0.14 2008.10.27 - Skip the Test::Compile test if the module is not installed. (SZABGAB) - Make the add/remove Perl menu work without warnings. (ADAMK + SZABGAB) - Make brace matching (Ctrl-1) jump to the matching brace. (SZABGAB) - Allow preference to use tabs (or spaces) when pressing TAB. (SZABGAB) - Add automatic brace highlighting during. (SZABGAB) 0.13 2008.10.26 - fix warning when closing Padre with no files open (BRICAS) - close lone unused document when opening a recent file (now works the same as file->open) (BRICAS) - SplitWindow widgets are now used properly (ADAMK) - Show Output nows correctly hides away the output window when non-visible (ADAMK) - Refactored out output window to Padre::Wx::Output (ADAMK) - General refactoring pass over Padre::Wx (ADAMK) - Padre::Wx forces all the Wx::wxCONSTANT values to be populated, so that we don't need all the use Wx qw{ wxCONSTANT } imports (ADAMK) - Make it clear in the main window title if running from SVN checkout (ADAMK) - Add Padre::PluginBuilder for Padre plugins with extra build targets (SMUELLER) - Create dialog abstraction in Padre::Wx::Dialog. (SZABGAB) - Lots of refreshing related fixes. (SZABGAB) - Create Padre::Documents to return the current or any other document object. (SZABGAB) - Stop importing Wx directly in the Padre::Wx:: modules. (SZABGAB) - Compile all modules if Test::Compile is available during tests. (SZABGAB) - Save button on toolbar is working now when the current document needs saving. (SZABGAB) - Use binmode :raw in order to help Windows when opening and writing files fixing the bug that we used to change the newline types whem editing on Windows. (SZABGAB) - Run Script did not work bug fixed #76 (SZABGAB) - chdir to directory to be executed with Run Script #69 (SZABGAB) 0.12 2008.10.23 - All changes below this point by SZABGAB unless noted. - Stupid bugs left in 0.11 reported by Brian Cassidy. 0.11 2008.10.23 - Updated ORLite dependency to 0.14 for create => 1 support (ADAMK) - Rewrote Padre::DB to auto-configure directly from Padre::Config (ADAMK) - All Padre.pm DBI code converted to Padre::DB calls (ADAMK) - Removed minor use of Class::Accessor to reduce memory overhead, namespace pollution and dependency count (ADAMK) - Removed some superfluous code from the PIR/PASM/Perl6 documents (ADAMK) - Cleaned up (and shrunk the code for) the bootstrap sequence (ADAMK) - Moved the "recent files" internal state into the database (ADAMK) - Removed index pointers unrelated to the IDE from Padre.pm (ADAMK) - Transaction-wrap exiting to make it much much faster (ADAMK) - Adding shortcut methods for popup messages/errors (ADAMK) - Optimised away the non-Wx non-class Padre::Wx::Execute (ADAMK) - Created Padre::Wx::History::TextDialog so we can have a dialog box that defaults to whatever the last answer was. (ADAMK) - Some clean up in the FindDialog window with abstraction. - Add support to Module::Starter and make it to be a prereq. - Add all the perl functions to the Calltip keyword list and move it to a yaml file. - Fix several bugs that were probably introduced after 0.10. - Turn the color definition of the syntax highlighting into a hash for easier maintenance. - Lots of code refactoring. 0.10 2008.09.22 - Improve the search tool (include backward search). - Allow keeping the search window open (or close it and use F3). - Shift-F3 to jump backwards. - Add Search and Replace and global search and replace. - Setup mapping of file extensions to mime-types and to color coding. - Clean up the MainWindow module, move code to Document and Document::Perl. - Implement an experimental PASM, PIR and Perl 6 highlighting. - Allow experimental code to allow the user to execute code within Padre. - Report if file could not be saved and keep it in unsaved state (bug #74). - Separate the Padre::Install module from Build.PL. - Set default mime-type of new files to be perl. - Change mime-type when saving file to the appropriate new mime-type. 0.09 2008.09.17 - Move various relevant menu items into a "Window" menu (ADAMK) - Rename "Enable CallTip" to "Show Call Tips" for consistency (ADAMK) - Adding more menu seperators to improve the visual look (ADAMK) - Always show status bar on Win32, as removing it breaks (ADAMK) - Added experimental Padre::Document::Perl (ADAMK) - Added experimental PPI intergration (ADAMK) - Experimental menu refresh closer to being usable (ADAMK) - Split out Wx-related utility functions into Padre::Wx (ADAMK) - Adding common platform-detection logic to Padre::Util (ADAMK) - If we start with a new file and then open another one, implicitly close the unused new file (ADAMK) - Some dialog cleanups. - Make sure we can build stand alon executable for Linux. - Remove Ctrl-Shift-Z from redo as Ctrl-Y already works. 0.08 2008.09.11 - Add Ctrl-Shift-O to open a file based on the selection in the current window. - Enable ack integration even though it is not nice yet but it is working. - Use real Wx:AboutDialogInfo for the about box. - Hide method names (in the method window) when they don't start on the first column. - Add menu option to close all buffers. - Escape $ signs by default so they will not interpolate during search. - Open file now opens in the directory where the current file is. - Add Bookmarks. - Add toolbar with several icons. Tested on Windows as well. - Add icon for the application. - Enable/disable regex in search. - Add menu option to convert line endings. - Replace relative path with full path on the command line. - Implement basic CallTips and add menu option to enable/disable them. 0.07 2008.09.04 - Allow the user to change the width ot TABs as they are displayed. - Separate the code to show the preferences window to the Padre::Wx::Preferences module - Separate code to Padre::Wx::Menu, Padre::Wx::Execute, Padre::Wx::Help - Allow spliting windows to see two parts of the same document - Add Zoom-in/Zoom-out/Zoom-reset menu options to change the zoom on all documents - Allow the use of PAR files as plugins (SMUELLER) - Stop jumping on selection movement in the list of methods frame. - Remove Padre::Demo and distribute it separately as Wx::Perl::Dialog. Make Padre depend on it. - Update the status when the mouse is moved - Update status works on Windows now. - Require threaded perl as there is experimental code in Padre to use ack. - Depend on App::Ack. - Depend on PAR. - Clean up the par generation. - Lots of code cleanup. 0.06 2008.08.28 - Add some "new file" templates - Temporarily remove the toolbar - Change behavior of Padre::Demo, add wxer command line interface - Remove Demo::App - Padre::Demo add dir_selector() and password() - Update list of methods on save as well #54 (vincent) - Change the list of subs on the right hand side to be sorted - Set Alt-S to jump to the subs list - Deal with newlines in files - Lots of refactoring (ADAMK) - Remember that application was maximized (ADAMK) - Better choice of default size (ADAMK) - Adding a separate compilation test script (ADAMK) - Adding a ORLite interface to the database Padre::DB (ADAMK) - Include authors tests for Perl critic and POD in xt/ directory - Make commenting out and uncommenting out atomic in the undo buffer - Replace string search by regex search, change the GUI - Add case insensitive search - Limit the max number of recent files to 20 0.05 2008.08.17 - First stab at autocompletition using Ctrl-P. (SZABGAB) - Allow opening files without extensions (on non-ms-windows systems). (SZABGAB) - Cleaning up to comply with perlcritic default settings. (ADAMK) - Adding basic "project" support. (ADAMK) - Adding Module::Inspector as prereq. (ADAMK) - Replace YAML with YAML::Tiny (ADAMK) - Moved bin/padre to script/padre. (ADAMK) - Moving all globals into a unified object tree. (ADAMK) - Created standalone Padre::Config (ADAMK) - Show the filetpe in the status bar. (SZABGAB) - remove Devel::PerlySense as prereq for now. (SZABGAB) - List functions of the current file on the right panel. (SZABGAB) - Syntax highlighting of more file types (PATSPAM) 0.04 2008.08.08 - Add Devel::PerlySense as prereq - Stop checking for wx version for now - Change the create_makefile_pl to passthrough as the traditional did not do the extra work done by Build.PL - Mark the buffer that is unsaved with a star. - Stop saving the content of the loaded file and use GetModify to find out if the file has been modifyed since last save - Replace the search_term by search_terms in the config file - Allow remembering of search terms - Replace the text dialog by a full dialog box and a Wx::ComboBox - Setup http://padre.perlide.org/ using trac - Move the repository to http://svn.perlide.org/padre/ 0.03_02 2008.08.03 - Add experimental code for plugins - Add experimental version of Padre::Plugin::PAR - Fix the shortcuts of some of the menues in windows, thanks to Octavian Rasnita - Replace the AppendSubMenu calls by Append calls to support older version of wxWidgets 0.03_01 2008.07.31 - Experimental code in Build.PL to avoid test failures when wxWidgets is too old. - Added ToolBar - Experimental code to install non-perl files and then use find them using File::ShareDir 0.03 2008.07.28 - Fix many issues reported by Octavian Rasnita - Rename some internal modules to get full indexing 0.02 2008.07.26 - First public release under the name Padre - Slow improvements - Nothing special or ground breaking to mention 0.01 2008.07.20 - First version Padre-1.00/META.yml0000644000175000017500000001141212237340454012415 0ustar petepete--- abstract: 'Perl Application Development and Refactoring Environment' author: - 'Gabor Szabo' build_requires: ExtUtils::MakeMaker: 6.59 Locale::Msgfmt: 0.15 Test::Exception: 0.27 Test::MockObject: 1.09 Test::More: 0.98 Test::NoWarnings: 1.04 Test::Script: 1.07 Test::Warn: 0.24 configure_requires: Alien::wxWidgets: 0.62 ExtUtils::Embed: 1.250601 ExtUtils::MakeMaker: 6.59 distribution_type: module dynamic_config: 1 generated_by: 'Module::Install version 1.06' keywords: - auto-completion - code - coding - completion - context - cross-platform - development - editor - environment - find - 'function list' - gui - help - highlight - hightlighting - ide - linux - 'mac os' - 'mac os x' - padre - perl - portable - refactoring - replace - syntax - windows - 'version control' - patch - diff - wx - wxwidgets license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: Padre no_index: directory: - eg - inc - privinc - share - t - xt requires: Algorithm::Diff: 1.19 App::cpanminus: 0.9923 B::Deparse: 0 CGI: 3.47 Capture::Tiny: 0.06 Class::Adapter: 1.05 Class::Inspector: 1.22 Class::XSAccessor: 1.13 Cwd: 3.2701 DBD::SQLite: 1.35 DBI: 1.58 Data::Dumper: 2.101 Debug::Client: 0.29 Devel::Dumpvar: 0.04 Devel::Refactor: 0.05 Encode: 2.26 ExtUtils::MakeMaker: 6.56 ExtUtils::Manifest: 1.56 File::Basename: 0 File::Copy::Recursive: 0.37 File::Find::Rule: 0.30 File::Glob: 0 File::HomeDir: 0.91 File::Path: 2.08 File::Remove: 1.40 File::ShareDir: 1.00 File::Spec: 3.2701 File::Spec::Functions: 3.2701 File::Temp: 0.20 File::Which: 1.08 File::pushd: 1.00 FindBin: 0 Getopt::Long: 0 HTML::Entities: 3.57 HTML::Parser: 3.58 IO::Scalar: 2.110 IO::Socket: 1.30 IO::String: 1.08 IPC::Open2: 0 IPC::Open3: 0 IPC::Run: 0.83 JSON::XS: 2.29 LWP: 5.815 LWP::UserAgent: 5.815 List::MoreUtils: 0.22 List::Util: 1.18 Module::Build: 0.3603 Module::CoreList: 2.22 Module::Manifest: 0.07 Module::Starter: 1.60 ORLite: 1.98 ORLite::Migrate: 1.10 POD2::Base: 0.043 POSIX: 0 PPI: 1.215 PPIx::EditorTools: 0.18 PPIx::Regexp: 0.011 Params::Util: 0.33 Parse::ErrorString::Perl: 0.18 Parse::ExuberantCTags: 1.00 Pod::Abstract: 0.16 Pod::Functions: 0 Pod::POM: 0.17 Pod::Perldoc: 3.15 Pod::Simple: 3.07 Pod::Simple::XHTML: 3.04 Probe::Perl: 0.01 Sort::Versions: 1.5 Storable: 2.16 Template::Tiny: 0.11 Term::ReadLine: 0 Text::Balanced: 2.01 Text::Diff: 1.41 Text::FindIndent: 0.10 Text::Patch: 1.8 Time::HiRes: 1.9718 URI: 0 Wx: 0.9916 Wx::Perl::ProcessStream: 0.32 Wx::Scintilla: 0.39 YAML::Tiny: 1.32 perl: 5.011000 threads: 1.71 threads::shared: 1.33 version: 0.80 resources: bugtracker: http://padre.perlide.org/trac/ homepage: http://padre.perlide.org/ license: http://dev.perl.org/licenses/ repository: http://svn.perlide.org/padre/trunk/Padre/ version: 1.00 x_contributors: - 'Aaron Trevena (TEEJAY)' - 'Adam Kennedy (ADAMK) ' - 'Ahmad Zawawi أحمد محمد زواوي (AZAWAWI)' - 'Andrew Shitov' - 'Alexandr Ciornii (CHORNY)' - 'Amir E. Aharoni - אמיר א. אהרוני' - 'Blake Willmarth (BLAKEW)' - 'BlueT - Matthew Lien - 練喆明 (BLUET) ' - 'Breno G. de Oliveira (GARU)' - 'Brian Cassidy (BRICAS)' - 'Burak Gürsoy (BURAK) ' - 'Cezary Morga (THEREK) ' - 'Chris Dolan (CHRISDOLAN)' - 'Claudio Ramirez (NXADM) ' - 'Dirk De Nijs (ddn123456)' - 'Enrique Nell (ENELL)' - 'Fayland Lam (FAYLAND) ' - 'Gabriel Vieira (GABRIELMAD)' - 'Gábor Szabó - גאבור סבו (SZABGAB) ' - 'György Pásztor (GYU)' - 'Heiko Jansen (HJANSEN) ' - 'Jérôme Quelin (JQUELIN) ' - 'Kaare Rasmussen (KAARE) ' - 'Keedi Kim - 김도형 (KEEDI)' - 'Kenichi Ishigaki - 石垣憲一 (ISHIGAKI) ' - 'Kevin Dawson (BOWTIE) ' - 'Kjetil Skotheim (KJETIL)' - 'Marcela Mašláňová (mmaslano)' - 'Marek Roszkowski (EviL) ' - 'Mark Grimes ' - 'Max Maischein (CORION)' - 'Olivier MenguE (DOLMEN)' - 'Omer Zak - עומר זק' - 'Paco Alguacil (PacoLinux)' - 'Patrick Donelan (PDONELAN) ' - 'Paweł Murias (PMURIAS)' - 'Petar Shangov (PSHANGOV)' - 'Peter Lavender (PLAVEN)' - 'Ryan Niebur (RSN) ' - 'Sebastian Willing (SEWI)' - 'Shlomi Fish - שלומי פיש (SHLOMIF)' - 'Simone Blandino (SBLANDIN)' - 'Steffen Müller (TSEE) ' - 'Zeno Gantner (ZENOG)' - 'Chuanren Wu' Padre-1.00/COPYING0000644000175000017500000003031011621731266012176 0ustar petepete GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! Padre-1.00/share/0000755000175000017500000000000012237340741012246 5ustar petepetePadre-1.00/share/examples/0000755000175000017500000000000012237340740014063 5ustar petepetePadre-1.00/share/examples/absolute_beginner/0000755000175000017500000000000012237340741017553 5ustar petepetePadre-1.00/share/examples/absolute_beginner/01_hello_world.pl0000644000175000017500000000146711261567732022741 0ustar petepete#!/usr/bin/perl # The line above tells any Linux system that this is a Perl program # Lines that start with a # sign are comments, they are not part of # the source and are ignored by Perl. You could also append comments # at the end of lines by using a #. # The following line prints (shows) a short text to the user. print "Hello World!\n"; # This is output for the user # The text following the print command is surrounded by " ". They're # used to mark the message "Hello World" as text to be printed, # otherwise they would be processed as Perl commands. # The message is followed by newline written as \n. # The last char is a ; which is used to end a line in Perl. # Now press F5 and Padre will execute this script. # # You'll see a new window on the bottom of Padre which shows you the # output of this script. Padre-1.00/share/examples/absolute_beginner/04_math.pl0000644000175000017500000000463711264430420021347 0ustar petepete#!/usr/bin/perl # This file assumes that you already read (and understood) earlier sessions! use strict; # Before starting the actual topic of this lesson, lets do a short stop at # use strict; which you saw in the last files: If you write this at the # beginning, you need to write a "my" before the variable name when you # first mention a variable in your script. Sounds complicated, but makes # things much easier if get a typo. If you accidently type $hor instead # of $hour and use strict; is in place, Perl will warn you about this typo. use warnings; # A good amount of programming is more or less simple math. Perl could do this # as you could see on the following complex calculation: my $sum = 1 + 1; print "$sum\n"; # You learned something about mathematical brackets and preference rules, # did you? Perl respects them all: my $result = ( ( 10 * 2 + 1 ) - ( 2 + 5 ) ) / 2; print "$result\n"; # Not to forget, there is no need to use a variable for this: print "Simple math result: " . ( 1 + 2 + 3 ) . "\n"; # Cool, isn't it? # Oh, this is a new print syntax we got. Lets look at it in three parts: # (1 + 2 + 3) is just a calculation like the others before. # It's not written in ", because it's no text. Try youself # what happens if you put " around it. # . Here is the special magic of this command: A single dot # between two items concates them. # "\n"; You should know this already. # # Items in this case could be many things, for example: # - Text blocks surrounded by " # - Calculations in brackets ( ) # - Variables # Calculations may also include variables: print "$sum + 1 is " . ( $sum + 1 ) . "\n"; # We could mix some things we used earlier: print "$sum + $result = " . ( $sum + $result ) . "\n"; # One of the most used commands in programming is a simple increment: $sum = $sum + 1; # This adds 1 to $sum, but Perl allows you to make things much easier: ++$sum; # Excatly the same as $sum = $sum + 1; # Another syntax which is valid for all four simple calculations + - * / $sum += 2; # Same as $sum = $sum + 2; print $sum. "\n"; # Now press F5 and Padre will execute this script. # # You'll see a new window on the bottom of Padre which shows you the # output of this script. # Here is enough space for you to try out some math. You should try at least # the four + - * / operators once and once combined with a =. Add additional # lines as needed: Padre-1.00/share/examples/absolute_beginner/README0000644000175000017500000000105411257210731020427 0ustar petepeteThis directory contains a base course for absolute perl and programming beginners. You need to know how to open a file (you already fulfill this requirement, because otherwise you won't read this file) and you should know that F5 is a dedicated key on your keyboard and no air force jet. A word to the experts which might reading this: This course should help newbies. It explains many things in an easy way and often don't fully explain a command or gives limitations which make learning easier but may be broken by masters who know what they're doing. Padre-1.00/share/examples/absolute_beginner/06_salat.pl0000644000175000017500000001010211663663657021533 0ustar petepete#!/usr/bin/perl # This file assumes that you already read (and understood) earlier sessions! use strict; use warnings; # Let's cook again: # Did you ever eat a mixed salat with hot roasted chichen breast? # We'll make one: print "Cut green salat in stripes\n"; print "Cut a tomato in pieces\n"; print "Cut half of a cucumber in pieces\n"; print "Cut a paprika in stripes\n"; print "Mix everything.\n"; print "Add some dressing\n"; print "Add some salt\n"; print "Add some pepper\n"; print "Cut a chicken breast in stripes\n"; print "Roast the chicken breast stripes\n"; print "Put them over the salat\n"; # Much typing, we need a more simple way, otherwise we won't finish the # writing before dinner and I want the salat for lunch! # We need to "cut" some things and "add" some things. Let's combine the # "add" items first: sub add { print "Add some $_[0]\n"; } # A "sub" is a piece of source code which has a name and could be called by # this name. # subs are like Perl commands (think of print, for example) but they are # written by the developer and need to be placed in the same file where they # are used. # # The name of a sub follows the same conventions like names for # variables: a-z, 0-9 and _ # A-Z are supported by Perl but rarely used by the developers. # # A sub uses the same { } brackets to enclose a block of source code you # already know from "if" and "for". # Our brand new sub shown above is called "add" and contains one line of # source code. I could also name it "the_sub_which_adds_something_to_our_salat" # but I'm, lazy and "add" is much easier to write. # There's a special variable called $_[0]. Please take it as it is for the # moment, we'll discuss it in a later lesson. # To call a sub, just write its name followed by zero or more arguments which # should be given to the sub. add "dressing"; add "salt"; add "pepper"; # Whatever you use as an argument will live in the special variable $_[0]. # We'll do the same for the cut-items: sub cut { print "cut $_[0] in $_[1]\n"; } # Here we got two arguments, the foot and the cut style. Many arguments must be # separated by commas. cut "green salat", "stripes"; cut "a tomato", "pieces"; cut "half of a cucumber", "pieces"; cut "a paprika", "stripes"; cut "a chicken breast", "stripes"; # The second arguments goes to $_[1] and if we had a third one, it would go to # $_[2] and so on. # Now order everything to get the same salat print "Ordered salat:\n"; cut "green salat", "stripes"; cut "a tomato", "pieces"; cut "half of a cucumber", "pieces"; cut "a paprika", "stripes"; print "Mix everything\n"; add "dressing"; add "salt"; add "pepper"; cut "a chicken breast", "stripes"; print "Roast the chicken breast stripes\n"; print "Put them over the salat\n"; # You could use every comamnd within a sub the same way you use it in your main # program. Usually, all subs are placed between the "use" - lines and the start # of the main program. This isn't required but it makes things much easier in # big programs. # Now press F5 and Padre will execute this script. # # You'll see a new window on the bottom of Padre which shows you the # output of this script. # We have a lot of samples with a lot of output in this file, so first try to # match each block of output to the correct source code sample and try to # understand what happens. Play around with the source if you want and change # things to get other results. # If you understood this lesson, this is easy for you: # We always use print "text\n"; and you know - I'm lazy. # Please write a sub which outputs the text given as an argument followed by # a newline \n. If you call it printn then the following should work: # #printn "First line"; #printn "Second line"; # Remove the comment chars # in front of the lines to make them work. # Now we got a really useful function, so we should use it: Change the subs # for cutting and adding items to your your new print-with-newline sub. # You chould change them above or copy them here, but please notice that # a typical Perl script may use every sub-name only once. Padre-1.00/share/examples/absolute_beginner/05_do_it_again.pl0000644000175000017500000001031611663663657022672 0ustar petepete#!/usr/bin/perl # This file assumes that you already read (and understood) earlier sessions! use strict; use warnings; # Let's say you want to count from 1 to 10. Pretty easy, just write: my $counter = 0; $counter++; print "$counter\n"; $counter++; print "$counter\n"; $counter++; print "$counter\n"; $counter++; print "$counter\n"; $counter++; print "$counter\n"; $counter++; print "$counter\n"; $counter++; print "$counter\n"; $counter++; print "$counter\n"; $counter++; print "$counter\n"; $counter++; print "$counter - done!\n"; # Works perfectly, but there are some drawbacks: # - It takes 21 lines (imagine you want to count until 100!) # - What happens if you need to change $counter to $counter2? print "--- next sample ---\n"; # Every time you copy/paste a line of sourcecode, stop a moment and think # about looping. This means, let Perl repeat some lines for you: my $loop_counter = 0; for ( 1 .. 10 ) { # "for" is a special keyword which says Perl: "I'll give you a list of items # and for each item, please execute the following sourcecode once." # Sounds much more complicated than it acutally is. # (1..10) is a range: It has a starting number (1) and a final value (10) # and Perl should give you all numbers from 1 to 10. # The lines which belong to this "for" - loop are between the same brackets { } # you already know from if. Actually every logical block of sourcecode is # surrounded by them. # If you write more than one line of sourcecode between { and }, write this # sourcecode as separate lines. Perl dosn't care, but you and others need to # be able to read it without scrolling thousend columns to the right. # It might look like a waste of time, but if you put spaces or tabs before each # line within a if/loop/block, your source will be much more readable. Start # now and you're used to do it in a few days and it will save you very much # time hunting for lines in the wrong block lateron. Perl masters always do it. ++$loop_counter; print "$loop_counter\n"; } # If you ignore my big boring comments above, this loop does the same in only 5 # lines what we did earlier in 21 lines and you got three places left where you # need to change the variable name if you're forced to. print "--- next sample ---\n"; # Perl could also be used for cooking: foreach my $fruit ( "Orange", "Apple", "Strawberry", "Melon", "Lemon" ) { print "1 $fruit\n"; } print "Cut the fruits in not-too-small pieces and your fruitsalat is done.\n"; # If you add a variable just behind "for", this variable will have the item for # the current loop run. The salat example just prints the $Fruit, but you could # do much more inside the loop. print "--- next sample ---\n"; # "for" - loops got one drawback: You need to know how many times your loop # should run before the loop starts and sometimes you don't know this. # This sample tries to find out how often a given number (for example 123) # could be divided by 2 before it gets lower than two. my $number = 123; my $two_count = 0; # Two variables, one holding the number and the second for the number of times # we divided the number. while ( $number > 2 ) { # while loops run until the condition (which is the same we used for the if's) # is no longer true. $number is 123 at the first run which is greater than 2 # and the following lines are executed. print "$number\n"; $number /= 2; # Look at the math session to understand this. ++$two_count; } print "Divided $two_count times\n"; # Always beware of endless loops where the condition always stays true! Your # program would never leave the loop. # Now press F5 and Padre will execute this script. # # You'll see a new window on the bottom of Padre which shows you the # output of this script. # We have a lot of samples with a lot of output in this file, so first try to # match each block of output to the correct source code sample and try to # understand what happens. Play around with the source if you want and change # things to get other results. # If you understood this lesson, this is easy for you: # Try to write a loop which shows all even numbers from 20 to 30. # Hint: Remember that 10 * 2 is 20 and 11 * 2 is 22. # Got it working? Congratulations! # Next, try to do the same using a while loop instead of for. Padre-1.00/share/examples/absolute_beginner/03_good_morning.pl0000644000175000017500000000513011261567732023101 0ustar petepete#!/usr/bin/perl # This file assumes that you already read (and understood) earlier sessions! use strict; # This will be discussed later use warnings; my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime( time() ); # Let's say you want to go out and take a walk. What do you do? # First, you look out of the window to check for sun or rain, then you # decide on clothing which should fit the situation and finally you # go out. # Programs always need to decide things and it's as easy like # if-there-is-rain-then-get-the-umbrella. if ( $hour < 10 ) { print "Good morning!\n"; } # This is a condition. It checks if $hour (which holds the hour of the # current time as we knew from the last session) is lower-than the # number 10. # All conditions always have "yes" or "no" as a result, even for masters # of Perl. On 8:30 o' clock, the result is yes, after lunch it's no. # The leading "if" identifies the following as a condition. This must be # written in surrounding brackets ( ). # The program should do something if the result is yes and this something # must be written in brackets, but this time { }. # As this sample should run at any daytime, we need to add if-lines for # the rest of the day: elsif ( $hour == 12 ) { print "Out for lunch...\n"; } elsif ( $hour <= 18 ) { print "Hello world!\n"; } elsif ( $hour < 23 ) { print "Good night.\n"; } # You noticed the els in front of the if? This means "try this condition # only if the result of the last was no". Otherwise the condition <= 18 # (less-or-equal 18) would also match for 9 o' clock, but we want only # the very first if to match this. # Leaving out the if (and adding an e) allows us to set a last-resort # without a condition: else { print "sleep well!\n"; } # If nothing else (<-- notice, it's the same in language) matches, this # { something } is executed. # # Nobody forces you to use all three (if, elsif and else) parts, you could # leave out the else or elsif part as you like. Also notice that there are # no other commands (like print) allowed between the parts. # Now press F5 and Padre will execute this script. # # You'll see a new window on the bottom of Padre which shows you the # output of this script. # You could also fill variables by just assigning a new value to them. # If you want to test some times, just write the variable ($hour), the # equal-sign = and the new number followed by the mandatory semicolon ; # if a line before the if-block starts. Press F5 to see the result for each # value. # What about writing your own if-elsif-else - block, for example showing # different messages for different seconds? Padre-1.00/share/examples/absolute_beginner/07_short_salat.pl0000644000175000017500000001554511335736163022760 0ustar petepete#!/usr/bin/perl # This file assumes that you already read (and understood) earlier sessions! use strict; use warnings; # Our last salat saved typing but it didn't save source code lines. We'll try # to change this now by combining two things we know. # Let's start again with our Add-items-sub. I'ld like to Add many things # using one sub-call like this # add "salt","pepper","dressing"; # To start a sub, we still need to tell Perl that the following is a sub # and how it's called sub add { # The first argument is $_[0], so it should be a good idea to place the 0 # somewhere my $argument_number = 0; # Let's just try out something. We got $_[0] and a variable containing a 0, # should it be possible to combine them by replacing the fixed 0 by the # variable name? print $_[$argument_number] . "\n"; # This should print out the first argument and if you try it out, you'll get # the expected salt. } add "salt", "pepper", "dressing"; # Want to try out if this works for the second and third argument? Do it, the # more you try, the more you learn! # You remember that each sub name may only be used once, so I'll call the next # example sub by another name and for matching the output text to the source # code, I'll add prints sepeating each try: print "--- Try #2 ---\n"; sub add2 { # How do we get the sub to walk through the numbers 0 to 2 to get all arguments? # Sounds like a job for a loop and I'll start with a for try foreach my $argument_number ( 0 .. 2 ) { print $_[$argument_number] . "\n"; } } # We need to call a sub to use it, otherwise the source code won't be executed: add2 "salt", "pepper", "dressing"; # I'm sure that you'll figure out how to insert the "Add some" into the sub above. # But what if we like nuts and also want to add them? 0..2 won't show them as the # nuts are the fourths argument and got number #3. print "--- Try #3 ---\n"; # I know, how many things I'ld like to add, so I could tell it to the sub: # add3 4,"salt","pepper","dressing","nuts"; # Getting the 4 is easy - it became the first argument and the first argument # is always called $_[0] sub add3 { my $number_of_items = $_[0]; # There is another place where we got numbers and didn't try to replace them by # variables until now, but this can't wait any longer foreach my $argument_number ( 0 .. $number_of_items ) { # The number of the first argument is fixed, so there is no need to push it # into a variable and use it only once. It could stay fixed within the for # line. There is nothing new following now: print $_[$argument_number] . "\n"; } } add3 4, "salt", "pepper", "dressing", "nuts"; # You may notice that the first line contains the number of items to add, the 4 # We don't want this, so you should try to change the above sample to skip the # first argument and start with the second one (numbered 1). print "--- Try #4 ---\n"; # Our add-item-sub seems to work, so I'll copy it for cutting stripes and pieces: sub cut_stripes { my $number_of_items = $_[0]; foreach my $argument_number ( 1 .. $number_of_items ) { print "Cut " . $_[$argument_number] . " in stripes\n"; } } sub cut_pieces { my $number_of_items = $_[0]; foreach my $argument_number ( 1 .. $number_of_items ) { print "Cut " . $_[$argument_number] . " in pieces\n"; } } print "Ordered salat:\n"; cut_stripes 2, "green salat", "a paprika"; cut_pieces 2, "a tomato", "half of a cucumber"; add3 1, "nuts"; print "Mix everything\n"; add3 3, "dressing", "salt", "pepper"; cut_stripes 1, "a chicken breast"; print "Roast the chicken breast stripes\n"; print "Put them over the salat\n"; # We're done! Now go to the kittchen and enjoy our salat or just continue if # you don't need a break. # I don't like duplicate code like the one we used in the cut_stripes and # cut_pieces. It differs only by one word - the cutting style but if you got # two subs which 100 lines each and they differ by only one or two lines, # it's even worse. I have seen such code much more often than I'ld like and # you think. # Your job: Merge them to one sub! I'll guide you through three ways to do # this. # --- First way --- # You should print a seperator line like the "--- Try ---" - lines before to # clearly see what comes from your source. # Next, please add a sub which gets one item and the cutting style as arguments # Sounds like you could copy something we did earlier... # Now just copy the two subs for stripes and pieces and make them call the sub # you added instead of using print. # --- Second way --- # Remember: A seperator here would help. # We're passing the number of items to the add- and cut-subs, why not also pass # the cutting style to the cut-sub. Create a copy and get the number of items # and the cutting style from the arguments before start reading the items. # A sample call could be: cut "stripes",2,"green salat", "a paprika"; # Things will be easier if you get a visual picture of what the arguments. # Write down a list containing the number and value of each argument. # I'ld accept if you need to supply another number than the count of items # for the first try of your sub. But for the final solution, it's a bad way # if someone else needs to use your subs, so you should take care of this # yourself within your sub. # --- Third way --- # If you finished everything until now, you're done with this file. The last # part is really optional and you don't need to worry if you don't solve it. # Given the following source code #print "Ordered salat:\n"; #cut 4, # "green salat", "stripes", # "a paprika", "stripes", # "a tomato", "pieces", # "half of a cucumber", "pieces"); #add 1,"nuts"; #print "Mix everything\n"; #add 3,"dressing","salt","pepper"; #cut 1,"a chicken breast","stripes"; #print "Roast the chicken breast stripes\n"; #print "Put them over the salat\n"; # Select the whole block (from cut 4, to the last print) and press Ctrl-Alt-C # or click on the green # sign on the toolbar to remove the # comment signs # from each line. # This is a really hard challenge, because you need to plan your solution # yourself and make source code from it. # If you don't know how to start, try the following: # I think, we agree that you need to make a sub for the cut-items. So write # the sub name { line and the } in the next line. # Now insert comment lines (like this one) between the { }. Try to make one # comment for each step you need to do. Then go through your lines and split # them by exchanging one line for two or more new ones where the new ones # do a part of the combined line. # Once you're happy with the result, try to write the source code line below # each comment line. Each comment should be followed by at least one source # code line doing what the comment did. # You'll notice that you need to change your solution (and the comments) maybe # multiple times. Don't worry, this is typical. A program devlops while you # write it, even for the best and most detailed plans. Padre-1.00/share/examples/absolute_beginner/02_time.pl0000644000175000017500000000572011663663657021373 0ustar petepete#!/usr/bin/perl # This file assumes that you already read (and understood) 01_hello_world.pl! use strict; # This will be discussed later # Perl accepts many things and runs even very bad written code. The following # line tells Perl to be more pedantic and show warnings (not errors) if there # is code which is supposed not to do what you want. If you're just testing # around and everything works, you could disable the follow line by making it # a comment (add a # before the line), but you should always use it for # productional scripts. use warnings; # This line does nothing more than getting the current time and even if # it now looks very, very complex to you, don't worry, it's not too # complicated to understand: my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime( time() ); # "my" at the beginning tells Perl that the following variables are dedicated # to this file. You don't care about this, currently, but remember that at the # time of this writing, this editor contains of 158 files - all for one program. # A variable is a piece of memory which holds some information for you, just # like a postit note. Unlike other languages, Perl cares about size and type of # information itself, so you don't need to do it yourself. Every variable # has a name which has only few naming conventions: # - The first char MUST be a dollar sign $ # - It may contain letters, numbers and the underscore _ # - There must be at least one char after the $ sign. # That's it! You could use $egg or $cake_made_of_eggs_and_milk_and_other_things # it's really up to you what you use. # It's a good idea to name variables by their usage because you need to # know why you used it and for which purpose even in a 3000 lines file. # # Most Perl developers advoid using upper case chars (A-Z) for variable # names. It's a good idea to follow this way even if there is no technical # requirement to do so. # # This line has many variables all shown in a comma (,) separated list. Their # names tell you what they contain: # - $sec for the seconds # - $min for the minutes # and so on. Even if you don't understand every name, it's enough for now. # # = assigns some value to something. The value is always on the right side # and the variable(s) are always on the left side. # # localtime(time) gives you the current time. You'll understand the exact # usage later on, please treat it as a fixed text for now. # Let's print the time to the user. Variables could be used within printed # text like normal words: print "The time is $hour:$min\n"; # Now press F5 and Padre will execute this script. # # You'll see a new window on the bottom of Padre which shows you the # output of this script. Congratulations, now you know the time. # Please go ahead and write your own print command below showing the current # time including seconds. You could also inspect the other variables, if you # want. Notice that the month and year values won't show what you expect, but # this is another story... Padre-1.00/share/examples/wx/0000755000175000017500000000000012237340741014522 5ustar petepetePadre-1.00/share/examples/wx/22_notebook.pl0000644000175000017500000000345012137733173017210 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## ## ## Copyright: (c) The Padre development team ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# my $app = Demo::ListView->new; $app->MainLoop; ##################### package Demo::ListView; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::Frame->new; $frame->Show(1); } ##################### package Demo::Frame; use strict; use warnings; use Wx ':everything'; use Wx::Event ':everything'; use base 'Wx::Frame'; sub new { my $class = shift; my $self = $class->SUPER::new( undef, -1, 'Notebook ', [ -1, -1 ], [ 750, 700 ], ); # Creating the notebook with tabs (also called panes) my $nb = Wx::Notebook->new( $self, -1, wxDefaultPosition, wxDefaultSize, wxNO_FULL_REPAINT_ON_RESIZE | wxCLIP_CHILDREN ); # creating the content of the first tab my $editor = Wx::TextCtrl->new( $nb, -1, '', Wx::wxDefaultPosition, Wx::wxDefaultSize, wxTE_MULTILINE | wxNO_FULL_REPAINT_ON_RESIZE ); # add first tab $nb->AddPage( $editor, 'Editor', 1 ); my $choices = [ 'This example', 'was borrowed', 'from an example', 'of the Wx::Demo', 'written by Mattia Barbon' ]; my $listbox = Wx::ListBox->new( $nb, -1, Wx::wxDefaultPosition, Wx::wxDefaultSize, $choices ); $nb->AddPage( $listbox, 'Listbox', 1 ); EVT_LISTBOX_DCLICK( $self, $listbox, \&on_listbox_double_click ); return $self; } sub on_listbox_double_click { my $self = shift; my $event = shift; Wx::MessageBox( "Double clicked: '" . $event->GetString . "'", '', Wx::wxOK | Wx::wxCENTRE, $self, ); } Padre-1.00/share/examples/wx/03_button.pl0000644000175000017500000000116711261567732016710 0ustar petepete#!/usr/bin/perl package main; use 5.008; use strict; use warnings; $| = 1; # create the WxApplication my $app = Demo::App->new; $app->MainLoop; package Demo::App; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::App::Frame->new; $frame->Show(1); } package Demo::App::Frame; use strict; use warnings; use Wx qw(:everything); use base 'Wx::Frame'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Demo::App', wxDefaultPosition, wxDefaultSize, ); my $button = Wx::Button->new( $self, -1, "Press here" ); #$self->SetSize($button->GetSizeWH); return $self; } Padre-1.00/share/examples/wx/30_editor.pl0000644000175000017500000001715311654226201016652 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## ## Based on a very early version of Padre... ## The first version that could already save files. ## ## Copyright: (c) The Padre development team ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# # see package main at the bottom of the file ##################### package Demo::Editor; use strict; use warnings FATAL => 'all'; use base 'Wx::App'; sub OnInit { my $frame = Demo::Frame->new; $frame->Show(1); } ##################### package Demo::Frame; use strict; use warnings FATAL => 'all'; use Wx ':everything'; use Wx::Event ':everything'; use Wx::Scintilla (); use File::Spec::Functions qw(catfile); use File::Basename qw(basename); use base 'Wx::Frame'; our $VERSION = '0.01'; my $default_dir = ""; my $editor; our $nb; my %nb; my $search_term = ''; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Editor ', [ -1, -1 ], [ 750, 700 ], ); $nb = Wx::Notebook->new( $self, -1, wxDefaultPosition, wxDefaultSize, wxNO_FULL_REPAINT_ON_RESIZE | wxCLIP_CHILDREN ); $self->_create_menu_bar; $self->setup_editor; return $self; } sub _create_menu_bar { my ($self) = @_; my $bar = Wx::MenuBar->new; my $file = Wx::Menu->new; $file->Append( wxID_OPEN, "&Open" ); $file->Append( wxID_SAVE, "&Save" ); $file->Append( wxID_SAVEAS, "Save &As" ); $file->Append( wxID_CLOSE, "&Close" ); $file->Append( wxID_EXIT, "E&xit" ); my $edit = Wx::Menu->new; $edit->Append( wxID_FIND, "&Find" ); $edit->Append( 998, "&Setup" ); my $help = Wx::Menu->new; $help->Append( wxID_ABOUT, "&About..." ); $bar->Append( $file, "&File" ); $bar->Append( $edit, "&Edit" ); $bar->Append( $help, "&Help" ); $self->SetMenuBar($bar); EVT_CLOSE( $self, \&on_close_window ); EVT_MENU( $self, wxID_OPEN, sub { on_open( $self, @_ ) } ); EVT_MENU( $self, wxID_SAVE, sub { on_save( $self, @_ ) } ); EVT_MENU( $self, wxID_SAVEAS, sub { on_save_as( $self, @_ ) } ); EVT_MENU( $self, wxID_CLOSE, sub { on_close( $self, @_ ) } ); EVT_MENU( $self, 998, sub { on_setup( $self, @_ ) } ); EVT_MENU( $self, wxID_FIND, sub { on_find( $self, @_ ) } ); EVT_MENU( $self, wxID_EXIT, \&on_exit ); EVT_MENU( $self, wxID_ABOUT, \&on_about ); return; } sub on_exit { my ($self) = @_; foreach my $id ( keys %nb ) { if ( _buffer_changed($id) ) { Wx::MessageBox( "One of the files is still not saved", "xx", wxOK | wxCENTRE, $self ); return; } } $self->Close; } sub setup_editor { my ( $self, $file ) = @_; my $editor = Demo::Panel->new($nb); my $title = "Unsaved Document 1"; my $content = ''; if ($file) { if ( open my $in, '<', $file ) { local $/ = undef; $content = <$in>; } $title = basename($file); $editor->SetText($content); } $nb->AddPage( $editor, $title, 1 ); $nb{ $nb->GetSelection } = { filename => $file, content => $content, }; return; } sub on_close_window { my ( $self, $event ) = @_; $event->Skip; } sub on_open { my ($self) = @_; #Wx::MessageBox( "Not implemented yet. Should open a file selector", wxOK|wxCENTRE, $self ); my $dialog = Wx::FileDialog->new( $self, "Open file", $default_dir, "", "*.*", wxFD_OPEN ); if ( $dialog->ShowModal == wxID_CANCEL ) { #print "Cancel\n"; return; } my $filename = $dialog->GetFilename; #print "OK $filename\n"; $default_dir = $dialog->GetDirectory; my $file = catfile( $default_dir, $filename ); $self->setup_editor($file); return; } sub on_save_as { my ($self) = @_; my $id = $nb->GetSelection; while (1) { my $dialog = Wx::FileDialog->new( $self, "Save file as...", $default_dir, "", "*.*", wxFD_SAVE ); if ( $dialog->ShowModal == wxID_CANCEL ) { #print "Cancel\n"; return; } my $filename = $dialog->GetFilename; #print "OK $filename\n"; $default_dir = $dialog->GetDirectory; my $path = catfile( $default_dir, $filename ); if ( -e $path ) { my $res = Wx::MessageBox( "File already exists. Overwrite it?", 3, $self ); if ( $res == 2 ) { $nb{$id}{filename} = $path; last; } } else { $nb{$id}{filename} = $path; last; } } $self->_save_buffer($id); return; } sub on_save { my ($self) = @_; my $id = $nb->GetSelection; return if not _buffer_changed($id); if ( $nb{$id}{filename} ) { $self->_save_buffer($id); } else { $self->on_save_as; } return; } sub _save_buffer { my ( $self, $id ) = @_; my $page = $nb->GetPage($id); my $content = $page->GetText; if ( open my $out, '>', $nb{$id}{filename} ) { print $out $content; } $nb{$id}{content} = $content; return; } sub on_close { my ($self) = @_; my $id = $nb->GetSelection; if ( _buffer_changed($id) ) { Wx::MessageBox( "File changed.", wxOK | wxCENTRE, $self ); } return; } sub _buffer_changed { my ($id) = @_; my $page = $nb->GetPage($id); my $content = $page->GetText; return $content ne $nb{$id}{content}; } sub on_setup { my ($self) = @_; Wx::MessageBox( "Not implemented yet.", wxOK | wxCENTRE, $self ); } sub on_find { my ($self) = @_; my $dialog = Wx::TextEntryDialog->new( $self, "", "Type in search term", $search_term ); if ( $dialog->ShowModal == wxID_CANCEL ) { return; } $search_term = $dialog->GetValue; $dialog->Destroy; return if not defined $search_term or $search_term eq ''; print "$search_term\n"; return; } sub on_about { my ($self) = @_; Wx::MessageBox( "wxPerl editor, (c) 2008 Gabor Szabo\n" . "wxPerl editor $VERSION, " . wxVERSION_STRING, "About wxPerl editor", wxOK | wxCENTRE, $self ); } ##################### package Demo::Panel; use strict; use warnings FATAL => 'all'; use Wx::Scintilla; use base 'Wx::Scintilla::TextCtrl'; use Wx ':everything'; use Wx::Event ':everything'; our $VERSION = '0.01'; sub new { my ( $class, $parent ) = @_; my $self = $class->SUPER::new( $parent, -1, [ -1, -1 ], [ 750, 700 ] ); # TODO get the numbers from the frame? my $font = Wx::Font->new( 10, wxTELETYPE, wxNORMAL, wxNORMAL ); $self->SetFont($font); $self->StyleSetFont( Wx::Scintilla::STYLE_DEFAULT, $font ); $self->StyleClearAll; $self->StyleSetForeground( 0, Wx::Colour->new( 0x00, 0x00, 0x7f ) ); $self->StyleSetForeground( 1, Wx::Colour->new( 0xff, 0x00, 0x00 ) ); $self->StyleSetForeground( 2, Wx::Colour->new( 0x00, 0x7f, 0x00 ) ); $self->StyleSetForeground( 3, Wx::Colour->new( 0x7f, 0x7f, 0x7f ) ); $self->StyleSetForeground( 4, Wx::Colour->new( 0x00, 0x7f, 0x7f ) ); $self->StyleSetForeground( 5, Wx::Colour->new( 0x00, 0x00, 0x7f ) ); $self->StyleSetForeground( 6, Wx::Colour->new( 0xff, 0x7f, 0x00 ) ); $self->StyleSetForeground( 7, Wx::Colour->new( 0x7f, 0x00, 0x7f ) ); $self->StyleSetForeground( 8, Wx::Colour->new( 0x00, 0x00, 0x00 ) ); $self->StyleSetForeground( 9, Wx::Colour->new( 0x7f, 0x7f, 0x7f ) ); $self->StyleSetForeground( 10, Wx::Colour->new( 0x00, 0x00, 0x7f ) ); $self->StyleSetForeground( 11, Wx::Colour->new( 0x00, 0x00, 0xff ) ); $self->StyleSetForeground( 12, Wx::Colour->new( 0x7f, 0x00, 0x7f ) ); $self->StyleSetForeground( 13, Wx::Colour->new( 0x40, 0x80, 0xff ) ); $self->StyleSetForeground( 17, Wx::Colour->new( 0xff, 0x00, 0x7f ) ); $self->StyleSetForeground( 18, Wx::Colour->new( 0x7f, 0x7f, 0x00 ) ); $self->StyleSetBold( 12, 1 ); $self->StyleSetSpec( Wx::Scintilla::SCE_H_TAG, "fore:#0000ff" ); $self->SetLexer(Wx::Scintilla::SCLEX_PERL); $self->SetLayoutDirection(wxLayout_LeftToRight) if $self->can('SetLayoutDirection'); return $self; } ##################### package main; my $app = Demo::Editor->new; $app->MainLoop; Padre-1.00/share/examples/wx/21_progress_bar.pl0000644000175000017500000000236411261567732020065 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## ## Based on lib/Wx/DemoModules/wxProgressDialog.pm ## from the wxDemo ## written by Mattia Barbon ## Copyright: (c) The Padre development team ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# use Wx qw(:progressdialog); show_progress_bar(); sub show_progress_bar { my ($window) = @_; my $max = 20; my $dialog = Wx::ProgressDialog->new( 'Progress dialog example', 'An informative message', $max, $window, wxPD_CAN_ABORT | wxPD_AUTO_HIDE | wxPD_APP_MODAL | wxPD_ELAPSED_TIME | wxPD_ESTIMATED_TIME | wxPD_REMAINING_TIME ); my $continue; foreach my $i ( 1 .. $max ) { sleep 1; if ( $i == $max ) { $continue = $dialog->Update( $i, "That's all, folks!" ); } elsif ( $i == int( $max / 2 ) ) { $continue = $dialog->Update( $i, "Only a half left" ); } else { $continue = $dialog->Update($i); } last unless $continue; } Wx::LogMessage( $continue ? "Countdown from $max finished" : "Progress dialog aborted" ); $dialog->Destroy; } Padre-1.00/share/examples/wx/41-drag-image.pl0000644000175000017500000000710511620472405017277 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## Name: lib/Wx/DemoModules/wxPrinting.pm ## Based on the Printing demo by Mattia Barbon distribured in the Wx::Demo ## Copyright: (c) 2001, 2003, 2005-2006 Mattia Barbon ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# # See http://docs.wxwidgets.org/2.8.10/wx_wxdc.html package Demo::App; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::Frame->new; $frame->Show(1); } ##################### package Demo::Frame; use strict; use warnings FATAL => 'all'; use Wx ':everything'; use Wx::Event ':everything'; use base 'Wx::Frame'; our $VERSION = '0.01'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Draw', [ -1, -1 ], [ 750, 700 ], ); my $canvas = Demo::Canvas->new($self); EVT_CLOSE( $self, \&on_close_window ); return $self; } sub on_close_window { my ( $self, $event ) = @_; $event->Skip; } ##################### package Demo::Canvas; use strict; use warnings; use Wx ':everything'; use Wx::Event ':everything'; use File::Spec; use File::Basename; use base qw(Wx::ScrolledWindow); my ( $x_size, $y_size ) = ( 750, 650 ); sub new { my $class = shift; my $this = $class->SUPER::new(@_); $this->SetScrollbars( 1, 1, $x_size, $y_size ); $this->SetBackgroundColour(wxWHITE); # $this->SetCursor( Wx::Cursor->new( wxCURSOR_PENCIL ) ); EVT_MOTION( $this, \&OnMouseMove ); EVT_LEFT_DOWN( $this, \&OnButton ); EVT_LEFT_UP( $this, \&OnButton ); my $path = File::Spec->catfile( File::Basename::dirname($0), 'img', 'padre_logo_64x64.png' ); my $image = Wx::Image->new; Wx::InitAllImageHandlers(); print "new $path\n"; $image->LoadFile( $path, Wx::wxBITMAP_TYPE_ANY() ); #printf("Image (%s, %s)\n", $image->GetWidth, $image->GetHeight); $this->{_bitmap} = Wx::Bitmap->new($image); $this->{_bitmap_x} = 20; $this->{_bitmap_y} = 30; return $this; } sub OnDraw { my $this = shift; my $dc = shift; $dc->SetPen( Wx::Pen->new( wxBLUE, 5, 0 ) ); $dc->CrossHair( 100, 100 ); $dc->DrawRotatedText( "Drag the butterfly", 200, 200, 35 ); $dc->DrawBitmap( $this->{_bitmap}, $this->{_bitmap_x}, $this->{_bitmap_y}, 1 ); } sub OnMouseMove { my ( $this, $event ) = @_; return unless $event->Dragging; return unless $this->{_grab}; my $dc = Wx::ClientDC->new($this); #$this->PrepareDC( $dc ); my $pos = $event->GetLogicalPosition($dc); my ( $x, $y ) = ( $pos->x, $pos->y ); print "pos ($x, $y)\n"; # TODO remove previous image $this->{_bitmap_x} += $x - $this->{_mouse_x}; $this->{_bitmap_y} += $y - $this->{_mouse_y}; $this->{_mouse_x} = $x; $this->{_mouse_y} = $y; $dc->DrawBitmap( $this->{_bitmap}, $this->{_bitmap_x}, $this->{_bitmap_y}, 1 ); } sub OnButton { my ( $this, $event ) = @_; my $dc = Wx::ClientDC->new($this); $this->PrepareDC($dc); my $pos = $event->GetLogicalPosition($dc); my ( $x, $y ) = ( $pos->x, $pos->y ); print "Pos ($x, $y)\n"; $this->{_mouse_x} = $x; $this->{_mouse_y} = $y; if ( $event->LeftUp ) { $this->ReleaseMouse; $this->{_grab} = 0; } else { if ( $x >= $this->{_bitmap_x} and $x < $this->{_bitmap_x} + $this->{_bitmap}->GetWidth and $y >= $this->{_bitmap_y} and $y < $this->{_bitmap_y} + $this->{_bitmap}->GetHeight ) { $this->{_grab} = 1; } $this->CaptureMouse; } } ##################### package main; my $app = Demo::App->new; $app->MainLoop; Padre-1.00/share/examples/wx/img/0000755000175000017500000000000012237340741015276 5ustar petepetePadre-1.00/share/examples/wx/img/padre_logo_64x64.png0000644000175000017500000001577611245223667021017 0ustar petepetePNG  IHDR@@iqsBIT|d pHYs22tEXtSoftwarewww.inkscape.org<{IDATxyxU?{㙓4It-)N D"8r/8tUqwET{(PZP(锶3޿?$m{~g?yߵw߽^j*'7V?h|CժU߿h?Pӵ[x56IIڦ'uU $ŤV՗UV N,Zg}BHQ3k_`C^} 5zց<[Uq$` `սFe=ģW? [0jZ0\wv^A4اK~}uL1=ŪUxw[{zSww?Dk-U.X#g&q_iw3@~sS^.eRZvC;:5¶`302- .+glܛGAܽ𬣉$b˳ fPBW(~M^بobػp LPR8!:kͲJӱ{4y.H˖VU/:::Y`:Ets;=@޽f427׈J FCTw/QFt~Dk3q4C:O2i'e=u7ks-瘳@+0LcD./ %Y# #d6/ kǬ߾X &JB~Rܦ125JQMwZ.ddU H >V^ ԓ~Oy*a"7rq: + Jme#G yQR5)p"QlLZJ80ae-5f[ b\-ޕGvV*U# H[N0(8m5 T3E76vnxD{}ZJLKM1o>Gyؕ'$ P[/׏S6@p qצպ|.ɞfcF#>K3Avk'@ pZHm7fK*.b'Eѐa F v3N2'\xPxR٫G3 {tƖ 2iaI){ӣwdD NI.Q/MK L7-ZFp 6%Xܡ"3EN#K!KȮPQtWݘD1Jjk ,Fp &SPai/H$Il(0{]Y30P^?ޖM; TOcx8CI̲M@߲.*0IѼ01bsQ)0% c *zOh.h[#CIbLW[a[Cш &ɕ!D uχ0|ulQ?:<`%H${Ɨp{tNw'V]vKꩿ)K=/;`N]G$[ Jg#9h p6JÃ/ `3 LiĀlV eH#'j  diFiҒi@k\7~&nTI^_5 f|IyU-'X[j xa> Q2(k{L28<e@d+-\#|v5.ⷿBc3!BAHP)b`1@褀Db+x0Ex/jIRӈv'坿=*;1 dbDU#CI}DGx2Q r-"l=(zgL←tuHa$9 0thѦ$CJ=ѧ4b0.$`c6hZ{ıG\l%"U: =$)"ؾ@DgD&"a@JD\(J=Aa6s`v Y/uG㟏7nlÏY ;?C&;{Y Puu4)5!F09$zB? @jFBaֈ<?ETE+i5!-3C5/2rM~T|&lu[wL w㬎8cyu pN-!tcA`&QAb!4c쉰ѿ–ƛr&J;Vr10{8IM¡'  h|@`%ZxfOyE(<+$2rAc\6ĝ/BrI7| o]]\-ʽ_N& q܎A{w -lM S!Nk;Z*EdZ!P%蒏̶ 2CD; 5~pƶ=rAmmmo&.~Q۰%E$й,^;*9('F( |]pfc8g*d1TPz"z*<,LIMȑ\ ; T~[*A!9hL(wbK7^$-%7莎AIM}m0-8U-l/6ڗ#TW"ߔi'pG4N@ R&\8Lب]|?{NNk!MIϐn&]+d^ AxY30GWH {!"U Aʧ0{! p[j7$IBuӁb6O($ݡȧdK_Bofum ,FB8NKA{5jZ5<°E acla&@ Su(bvhҙ D cB>څXr ϸg0,yXFgQ~_h]l @X)n#0XuxpQ0lKir\CxQ_Z1Ttr$1'Jw{ąwN / FM!o.& w Rf  W 9b TG%#vY-mD hi8rJ'05w|,P1`| 4VP%V:rY c}EakС(nAG wV  qNQ?}FFJJLɽHjKjNsp@_Fv2Rb9{["j|!y!E֑{4m-x]}T$vQOݔA8.JapHBop~qwDW"Zmd=TSH A4@u<|dSk@%y 5^1v/8wSaOFw ~{T+JPU@e r{!JOV}y*C%52Ak3[Q;#mɇ]V^ Q=iKQ/l@ "m1b<`0-#3j뻋?댟@XcܫmD񙫰u)9c2-R՚r4FSAw<D"+C"0vh`-~w!-F0qs}CFn!1%*y {y"nXDz*o=ޙvڄ{]1F K˘mGaZN<]`a - 7tby"xhY5`0|4 .bhi/B訌Hx{t%-F [?ryL$*{vOw s}Jz8=6"< cBD֐Ix|$#Pb{;y+@-UGxP?=mfeas# F&s]x54pgJ\&rs(ӏâf^=ghw8,ҔWފa"B݇ JZ5Jq&ǀɴ3 3` L5 QI~wkbBIt#}^AŪJE=0/Ni!p2=ae~a;j yoNM1\K @N;í?kgw+// '1ێ@DA7RbwZu ƌO9oE hvkpn_CO )s$νEo9; S ޿8ygHm5C #>_a葋wweg2fZ&,/>t5 Fs֑8Hܫ~@DvI8owhkkGkMY|' {}=ϯwF9*VaIVڸQ{*%&󒌟NȮN`Tv_H\챺|JTfur0/ia,䵹L^dW}P̔w|+o&ew;:<:PIENDB`Padre-1.00/share/examples/wx/40_draw.pl0000644000175000017500000000641611620472405016324 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## Name: lib/Wx/DemoModules/wxPrinting.pm ## Based on the Printing demo by Mattia Barbon distribured in the Wx::Demo ## Copyright: (c) 2001, 2003, 2005-2006 Mattia Barbon ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# package Demo::App; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::Frame->new; $frame->Show(1); } ##################### package Demo::Frame; use strict; use warnings FATAL => 'all'; use Wx ':everything'; use Wx::Event ':everything'; use base 'Wx::Frame'; our $VERSION = '0.01'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Draw', [ -1, -1 ], [ 750, 700 ], ); my $canvas = Demo::Canvas->new($self); EVT_CLOSE( $self, \&on_close_window ); return $self; } sub on_close_window { my ( $self, $event ) = @_; $event->Skip; } ##################### package Demo::Canvas; use strict; use warnings; use Wx ':everything'; use Wx::Event ':everything'; use base qw(Wx::ScrolledWindow); my ( $x_size, $y_size ) = ( 750, 650 ); sub new { my $class = shift; my $this = $class->SUPER::new(@_); $this->SetScrollbars( 1, 1, $x_size, $y_size ); $this->SetBackgroundColour(wxWHITE); $this->SetCursor( Wx::Cursor->new(wxCURSOR_PENCIL) ); EVT_MOTION( $this, \&OnMouseMove ); EVT_LEFT_DOWN( $this, \&OnButton ); EVT_LEFT_UP( $this, \&OnButton ); return $this; } sub OnDraw { my $this = shift; my $dc = shift; # my $font = Wx::Font->new( 20, wxSCRIPT, wxSLANT, wxBOLD ); # $dc->SetFont( $font ); $dc->DrawRotatedText( "Draw Here", 200, 200, 35 ); $dc->DrawEllipse( 20, 20, 50, 50 ); $dc->SetPen( Wx::Pen->new( wxBLACK, 3, 0 ) ); $dc->DrawEllipse( 20, $y_size - 50 - 20, 50, 50 ); $dc->SetPen( Wx::Pen->new( wxGREEN, 5, 0 ) ); $dc->DrawEllipse( $x_size - 50 - 20, 20, 50, 50 ); $dc->SetPen( Wx::Pen->new( wxBLUE, 5, 0 ) ); $dc->DrawEllipse( $x_size - 50 - 20, $y_size - 50 - 20, 50, 50 ); $dc->CrossHair( 100, 100 ); $dc->SetPen( Wx::Pen->new( wxRED, 5, 0 ) ); } sub OnMouseMove { my ( $this, $event ) = @_; return unless $event->Dragging; my $dc = Wx::ClientDC->new($this); #$this->PrepareDC( $dc ); my $pos = $event->GetLogicalPosition($dc); my ( $x, $y ) = ( $pos->x, $pos->y ); push @{ $this->{CURRENT_LINE} }, [ $x, $y ]; my $elems = @{ $this->{CURRENT_LINE} }; $dc->SetPen( Wx::Pen->new( wxRED, 5, 0 ) ); $dc->DrawLine( @{ $this->{CURRENT_LINE}[ $elems - 2 ] }, @{ $this->{CURRENT_LINE}[ $elems - 1 ] } ); } sub OnButton { my ( $this, $event ) = @_; my $dc = Wx::ClientDC->new($this); $this->PrepareDC($dc); my $pos = $event->GetLogicalPosition($dc); my ( $x, $y ) = ( $pos->x, $pos->y ); if ( $event->LeftUp ) { push @{ $this->{CURRENT_LINE} }, [ $x, $y ]; push @{ $this->{LINES} }, $this->{CURRENT_LINE}; $this->ReleaseMouse; } else { $this->{CURRENT_LINE} = [ [ $x, $y ] ]; $this->CaptureMouse; } $dc->SetPen( Wx::Pen->new( wxRED, 5, 0 ) ); $dc->DrawLine( $x, $y, $x, $y ); } ##################### package main; my $app = Demo::App->new; $app->MainLoop; Padre-1.00/share/examples/wx/04_button_with_event.pl0000644000175000017500000000133111261567732021136 0ustar petepete#!/usr/bin/perl package main; use 5.008; use strict; use warnings; $| = 1; # create the WxApplication my $app = Demo::App->new; $app->MainLoop; package Demo::App; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::App::Frame->new; $frame->Show(1); } package Demo::App::Frame; use strict; use warnings; use Wx qw(:everything); use Wx::Event qw(:everything); use base 'Wx::Frame'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Demo::App', wxDefaultPosition, wxDefaultSize, ); my $button = Wx::Button->new( $self, -1, "Press here" ); EVT_BUTTON( $self, $button, sub { print "button pressed\n" } ); $self->SetSize( $button->GetSizeWH ); return $self; } Padre-1.00/share/examples/wx/02_label.pl0000644000175000017500000000117011261567732016445 0ustar petepete#!/usr/bin/perl package main; use 5.008; use strict; use warnings; $| = 1; # create the WxApplication my $app = Demo::App->new; $app->MainLoop; package Demo::App; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::App::Frame->new; $frame->Show(1); } package Demo::App::Frame; use strict; use warnings; use Wx qw(:everything); use base 'Wx::Frame'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Demo::App', wxDefaultPosition, wxDefaultSize, ); my $text = Wx::StaticText->new( $self, -1, "Hello world" ); #$self->SetSize($text->GetSizeWH); return $self; } Padre-1.00/share/examples/wx/01_simple_frame.pl0000644000175000017500000000102611261567732020030 0ustar petepete#!/usr/bin/perl package main; use 5.008; use strict; use warnings; $| = 1; # create the WxApplication my $app = Demo::App->new; $app->MainLoop; package Demo::App; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::App::Frame->new; $frame->Show(1); } package Demo::App::Frame; use strict; use warnings; use Wx qw(:everything); use base 'Wx::Frame'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Demo::App', wxDefaultPosition, wxDefaultSize, ); return $self; } Padre-1.00/share/examples/wx/05_button_with_event_and_message_box.pl0000644000175000017500000000170712137733173024341 0ustar petepete#!/usr/bin/perl package main; use 5.008; use strict; use warnings; $| = 1; my $app = Demo::App->new; $app->MainLoop; package Demo::App; use strict; use warnings; use base 'Wx::App'; our $frame; sub OnInit { $frame = Demo::App::Frame->new; $frame->Show(1); } package Demo::App::Frame; use strict; use warnings; use Wx qw(:everything); use base 'Wx::Frame'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Demo::App', wxDefaultPosition, wxDefaultSize, ); my $button = Wx::Button->new( $self, -1, "What is this smell?" ); Wx::Event::EVT_BUTTON( $self, $button, sub { my ( $self, $event ) = @_; print "printing to STDOUT\n"; print STDERR "printing to STDERR\n"; Wx::MessageBox( "This is the smell of an Onion", "Title", wxOK | wxCENTRE, $self ); } ); $self->SetSize( $button->GetSizeWH ); Wx::Event::EVT_CLOSE( $self, sub { my ( $self, $event ) = @_; $event->Skip; } ); return $self; } Padre-1.00/share/examples/wx/31_repl.pl0000644000175000017500000001643011634015466016333 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## ## Based on a very early version of Padre... ## The first version that could already save files. ## ## Copyright: (c) The Padre development team ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# # see package main at the bottom of the file ##################### package Demo::REPL; use strict; use warnings FATAL => 'all'; use base 'Wx::App'; sub OnInit { my $frame = Demo::Frame->new; $frame->Show(1); } ##################### package Demo::Frame; use strict; use warnings FATAL => 'all'; use Wx ':everything'; use Wx::Event ':everything'; use File::Spec::Functions qw(catfile); use File::Basename qw(basename); use File::HomeDir; use base 'Wx::Frame'; our $VERSION = '0.01'; my $default_dir = ""; our $nb; my %nb; my $search_term = ''; my @languages = ( "perl5", "perl6" ); sub new { my ($class) = @_; my ( $height, $width ) = ( 550, 500 ); my $self = $class->SUPER::new( undef, -1, 'REPL - Read Evaluate Print Loop ', [ -1, -1 ], [ $width, $height ], ); $self->_create_menu_bar; my $split = Wx::SplitterWindow->new( $self, -1, wxDefaultPosition, wxDefaultSize, wxNO_FULL_REPAINT_ON_RESIZE | wxCLIP_CHILDREN ); my $output = Wx::TextCtrl->new( $split, -1, "", wxDefaultPosition, wxDefaultSize, wxTE_READONLY | wxTE_MULTILINE | wxNO_FULL_REPAINT_ON_RESIZE ); my $input = Wx::TextCtrl->new( $split, -1, "", wxDefaultPosition, wxDefaultSize, wxNO_FULL_REPAINT_ON_RESIZE | wxTE_PROCESS_ENTER ); EVT_TEXT_ENTER( $self, $input, \&text_entered ); # EVT_TEXT( $self, $input, sub { print "@_\n" } ); EVT_KEY_UP( $input, sub { $self->key_up(@_) } ); $split->SplitHorizontally( $output, $input, $height - 100 ); $input->SetFocus; $self->{_input_} = $input; $self->{_output_} = $output; foreach my $lang (@languages) { $self->{_history_}{$lang} = []; my $history_file = File::Spec->catdir( _confdir(), "repl_history_{$lang}.txt" ); if ( -e $history_file ) { open my $fh, '<', $history_file or die; $self->{_history_}{$lang} = [<$fh>]; chomp @{ $self->{_history_}{$lang} }; } } return $self; } sub _confdir { return File::Spec->catdir( File::HomeDir->my_data, File::Spec->isa('File::Spec::Win32') ? qw{ Perl Padre } : qw{ .padre } ); } sub _get_language { my ($self) = @_; foreach my $lang (@languages) { return $lang if $self->{_language_}{$lang}->IsChecked; } return; # TODO die? } sub key_up { my ( $self, $input, $event ) = @_; #print $self; #print $event; my $mod = $event->GetModifiers || 0; my $code = $event->GetKeyCode; #$self->outn($mod); #$self->outn($code); my $lang = $self->_get_language; return if not @{ $self->{_history_}{$lang} }; if ( $mod == 0 and $code == 317 ) { # Down $self->{_history_pointer_}{$lang}++; if ( $self->{_history_pointer_}{$lang} >= @{ $self->{_history_}{$lang} } ) { $self->{_history_pointer_}{$lang} = 0; } } elsif ( $mod == 0 and $code == 315 ) { # Up $self->{_history_pointer_}{$lang}--; if ( $self->{_history_pointer_}{$lang} < 0 ) { $self->{_history_pointer_}{$lang} = @{ $self->{_history_}{$lang} } - 1; } } else { return; } $self->{_input_}->Clear; $self->{_input_}->WriteText( $self->{_history_}{$lang}[ $self->{_history_pointer_}{$lang} ] ); } sub text_entered { my ( $self, $event ) = @_; my $lang = $self->_get_language; my $text = $self->{_input_}->GetRange( 0, $self->{_input_}->GetLastPosition ); push @{ $self->{_history_}{$lang} }, $text; $self->{_history_pointer_}{$lang} = @{ $self->{_history_}{$lang} } - 1; $self->{_input_}->Clear; $self->out(">> $text\n"); # TODO catch stdout, stderr my $out = eval $text; my $error = $@; if ( defined $out ) { $self->out("$out\n"); } if ($error) { $self->out("$@\n"); } } sub out { my ( $self, $text ) = @_; $self->{_output_}->WriteText($text); } sub outn { my ( $self, $text ) = @_; $self->{_output_}->WriteText("$text\n"); } sub _create_menu_bar { my ($self) = @_; my $bar = Wx::MenuBar->new; my $file = Wx::Menu->new; $file->Append( wxID_OPEN, "&Open" ); $file->Append( wxID_SAVE, "&Save" ); $self->{_language_}{perl5} = $file->AppendRadioItem( 1000, "Perl 5" ); $self->{_language_}{perl6} = $file->AppendRadioItem( 1001, "Perl 6" ); $file->Append( wxID_EXIT, "E&xit" ); my $help = Wx::Menu->new; $help->Append( wxID_ABOUT, "&About..." ); $bar->Append( $file, "&File" ); $bar->Append( $help, "&Help" ); $self->SetMenuBar($bar); EVT_CLOSE( $self, \&on_close_window ); EVT_MENU( $self, wxID_OPEN, sub { on_open( $self, @_ ) } ); EVT_MENU( $self, wxID_SAVE, sub { on_save( $self, @_ ) } ); EVT_MENU( $self, wxID_EXIT, \&on_exit ); EVT_MENU( $self, wxID_ABOUT, \&on_about ); return; } sub on_exit { my ($self) = @_; $self->Close; } sub on_close_window { my ( $self, $event ) = @_; foreach my $lang (@languages) { my $history_file = File::Spec->catdir( _confdir(), "repl_history_{$lang}.txt" ); open my $fh, '>', $history_file or die; print $fh map {"$_\n"} @{ $self->{_history_}{$lang} }; } $event->Skip; } sub on_save_as { my ($self) = @_; my $id = $nb->GetSelection; while (1) { my $dialog = Wx::FileDialog->new( $self, "Save file as...", $default_dir, "", "*.*", wxFD_SAVE ); if ( $dialog->ShowModal == wxID_CANCEL ) { #print "Cancel\n"; return; } my $filename = $dialog->GetFilename; #print "OK $filename\n"; $default_dir = $dialog->GetDirectory; my $path = catfile( $default_dir, $filename ); if ( -e $path ) { my $res = Wx::MessageBox( "File already exists. Overwrite it?", 3, $self ); if ( $res == 2 ) { $nb{$id}{filename} = $path; last; } } else { $nb{$id}{filename} = $path; last; } } $self->_save_buffer($id); return; } sub on_save { my ($self) = @_; my $id = $nb->GetSelection; return if not _buffer_changed($id); if ( $nb{$id}{filename} ) { $self->_save_buffer($id); } else { $self->on_save_as; } return; } sub _save_buffer { my ( $self, $id ) = @_; my $page = $nb->GetPage($id); my $content = $page->GetText; if ( open my $out, '>', $nb{$id}{filename} ) { print $out $content; } $nb{$id}{content} = $content; return; } sub on_close { my ($self) = @_; my $id = $nb->GetSelection; if ( _buffer_changed($id) ) { Wx::MessageBox( "File changed.", wxOK | wxCENTRE, $self ); } return; } sub _buffer_changed { my ($id) = @_; my $page = $nb->GetPage($id); my $content = $page->GetText; return $content ne $nb{$id}{content}; } sub on_setup { my ($self) = @_; Wx::MessageBox( "Not implemented yet.", wxOK | wxCENTRE, $self ); } sub on_find { my ($self) = @_; my $dialog = Wx::TextEntryDialog->new( $self, "", "Type in search term", $search_term ); if ( $dialog->ShowModal == wxID_CANCEL ) { return; } $search_term = $dialog->GetValue; $dialog->Destroy; return if not defined $search_term or $search_term eq ''; print "$search_term\n"; return; } sub on_about { my ($self) = @_; Wx::MessageBox( "wxPerl REPL, (c) 2010 Gabor Szabo\n" . "wxPerl edotr $VERSION, " . wxVERSION_STRING, "About wxPerl REPL", wxOK | wxCENTRE, $self ); } ##################### package main; my $app = Demo::REPL->new; $app->MainLoop; Padre-1.00/share/examples/wx/42-drag-image-no-tail.pl0000644000175000017500000001044211620472405020637 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## Name: lib/Wx/DemoModules/wxPrinting.pm ## Based on the Printing demo by Mattia Barbon distribured in the Wx::Demo ## Copyright: (c) 2001, 2003, 2005-2006 Mattia Barbon ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# # See http://docs.wxwidgets.org/2.8.10/wx_wxdc.html # http://wiki.wxpython.org/DoubleBufferedDrawing package Demo::App; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::Frame->new; $frame->Show(1); } ##################### package Demo::Frame; use strict; use warnings FATAL => 'all'; use Wx ':everything'; use Wx::Event ':everything'; use base 'Wx::Frame'; our $VERSION = '0.01'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Draw', [ -1, -1 ], [ 750, 700 ], ); my $canvas = Demo::Canvas->new($self); EVT_CLOSE( $self, \&on_close_window ); return $self; } sub on_close_window { my ( $self, $event ) = @_; $event->Skip; } ##################### package Demo::Canvas; use strict; use warnings; use Wx ':everything'; use Wx::Event ':everything'; use File::Spec; use File::Basename; use base qw(Wx::ScrolledWindow); my ( $x_size, $y_size ) = ( 750, 650 ); sub new { my $class = shift; my $this = $class->SUPER::new(@_); $this->SetScrollbars( 1, 1, $x_size, $y_size ); $this->SetBackgroundColour(wxWHITE); # $this->SetCursor( Wx::Cursor->new( wxCURSOR_PENCIL ) ); EVT_MOTION( $this, \&OnMouseMove ); EVT_LEFT_DOWN( $this, \&OnButton ); EVT_LEFT_UP( $this, \&OnButton ); my $path = File::Spec->catfile( File::Basename::dirname($0), 'img', 'padre_logo_64x64.png' ); my $image = Wx::Image->new; Wx::InitAllImageHandlers(); print "new $path\n"; $image->LoadFile( $path, Wx::wxBITMAP_TYPE_ANY() ); #printf("Image (%s, %s)\n", $image->GetWidth, $image->GetHeight); $this->{_bitmap} = Wx::Bitmap->new($image); $this->{_bitmap_x} = 20; $this->{_bitmap_y} = 30; $this->{_backup} = Wx::MemoryDC->new; $this->{_backup}->SelectObject( Wx::Bitmap->new( $image->GetWidth, $image->GetHeight ) ); return $this; } sub OnDraw { my $this = shift; my $dc = shift; print "OnDraw\n"; $dc->SetPen( Wx::Pen->new( wxBLUE, 5, 0 ) ); $dc->CrossHair( 100, 100 ); $dc->DrawRotatedText( "Drag the butterfly", 200, 200, 35 ); $this->_draw($dc); } sub _draw { my $this = shift; my $dc = shift; # $this->{_backup}->SelectObject($this->{_bitmap}); # restore from backup printf( "Blit (%s, %s, %s, %s)\n", $this->{_bitmap_x}, $this->{_bitmap_y}, $this->{_bitmap}->GetWidth, $this->{_bitmap}->GetHeight ); $this->{_backup}->Blit( 0, 0, $this->{_bitmap}->GetWidth, $this->{_bitmap}->GetHeight, $dc, $this->{_bitmap_x}, $this->{_bitmap_y} ); $dc->DrawBitmap( $this->{_bitmap}, $this->{_bitmap_x}, $this->{_bitmap_y}, 1 ); } sub OnMouseMove { my ( $this, $event ) = @_; return unless $event->Dragging; return unless $this->{_grab}; my $dc = Wx::ClientDC->new($this); #$this->PrepareDC( $dc ); my $pos = $event->GetLogicalPosition($dc); my ( $x, $y ) = ( $pos->x, $pos->y ); print "pos ($x, $y)\n"; # restore image of the location $dc->Blit( $this->{_bitmap_x}, $this->{_bitmap_y}, $this->{_bitmap}->GetWidth, $this->{_bitmap}->GetHeight, $this->{_backup}, 0, 0 ); $this->{_bitmap_x} += $x - $this->{_mouse_x}; $this->{_bitmap_y} += $y - $this->{_mouse_y}; $this->{_mouse_x} = $x; $this->{_mouse_y} = $y; $this->_draw($dc); } sub OnButton { my ( $this, $event ) = @_; my $dc = Wx::ClientDC->new($this); $this->PrepareDC($dc); my $pos = $event->GetLogicalPosition($dc); my ( $x, $y ) = ( $pos->x, $pos->y ); print "Pos ($x, $y)\n"; $this->{_mouse_x} = $x; $this->{_mouse_y} = $y; if ( $event->LeftUp ) { $this->ReleaseMouse; $this->{_grab} = 0; } else { if ( $x >= $this->{_bitmap_x} and $x < $this->{_bitmap_x} + $this->{_bitmap}->GetWidth and $y >= $this->{_bitmap_y} and $y < $this->{_bitmap_y} + $this->{_bitmap}->GetHeight ) { $this->{_grab} = 1; } $this->CaptureMouse; } } ##################### package main; my $app = Demo::App->new; $app->MainLoop; Padre-1.00/share/examples/wx/23_menu.pl0000644000175000017500000000325111261567732016337 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## Copyright: (c) The Padre development team ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# # see package main at the bottom of the file ##################### package Demo::Menu; use strict; use warnings FATAL => 'all'; use base 'Wx::App'; sub OnInit { my $frame = Demo::Frame->new; $frame->Show(1); } ##################### package Demo::Frame; use strict; use warnings FATAL => 'all'; use Wx ':everything'; use Wx::Event ':everything'; use base 'Wx::Frame'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Editor ', [ -1, -1 ], [ 750, 700 ], ); my $nb = Wx::Notebook->new( $self, -1, wxDefaultPosition, wxDefaultSize, wxNO_FULL_REPAINT_ON_RESIZE | wxCLIP_CHILDREN ); $self->_create_menu_bar; return $self; } sub _create_menu_bar { my ($self) = @_; my $bar = Wx::MenuBar->new; my $file = Wx::Menu->new; $file->Append( wxID_EXIT, "E&xit" ); $file->Append( 998, "&Open Browser to PerlMonks" ); $bar->Append( $file, "&File" ); $self->SetMenuBar($bar); EVT_CLOSE( $self, \&on_close_window ); EVT_MENU( $self, 998, sub { Wx::LaunchDefaultBrowser('http://perlmonks.org/'); } ); EVT_MENU( $self, wxID_EXIT, \&on_exit ); return; } sub on_exit { my ($self) = @_; $self->Close; } sub on_close_window { my ( $self, $event ) = @_; $event->Skip; } ##################### package main; my $app = Demo::Menu->new; $app->MainLoop; Padre-1.00/share/examples/wx/24_simple_editor_window.pl0000644000175000017500000000321711512611560021610 0ustar petepete#!/usr/bin/perl use strict; use warnings; ############################################################################# ## ## ## Copyright: (c) The Padre development team ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# my $app = Demo::ListView->new; $app->MainLoop; ##################### package Demo::ListView; use strict; use warnings; use base 'Wx::App'; sub OnInit { my $frame = Demo::Frame->new; $frame->Show(1); } ##################### package Demo::Frame; use strict; use warnings; use Wx ':everything'; use Wx::Event ':everything'; use base 'Wx::Frame'; sub new { my ($class) = @_; my $self = $class->SUPER::new( undef, -1, 'Wx::TextCtrl', [ -1, -1 ], [ 750, 700 ], ); my $box = Wx::BoxSizer->new(wxVERTICAL); my $editor = Wx::TextCtrl->new( $self, -1, '', Wx::wxDefaultPosition, Wx::wxDefaultSize, wxTE_MULTILINE | wxNO_FULL_REPAINT_ON_RESIZE | wxTE_READONLY ); # http://docs.wxwidgets.org/2.8.10/wx_wxtextctrl.html my $content = ''; if ( open my $in, '<', $0 ) { local $/ = undef; $content = <$in>; } $editor->SetValue($content); $box->Add( $editor, 1, wxGROW ); my $close = Wx::Button->new( $self, -1, '&Close' ); $box->Add( $close, 0, wxALIGN_CENTER_HORIZONTAL ); # http://docs.wxwidgets.org/2.8.10/wx_sizeroverview.html EVT_BUTTON( $self, $close, \&on_exit ); $self->SetAutoLayout(1); $self->SetSizer($box); # $box->Fit( $self ); # $box->SetSizeHints( $self ); return $self; } sub on_exit { my ($self) = @_; $self->Close; } Padre-1.00/share/padre.desktop0000755000175000017500000000042111643261115014731 0ustar petepete[Desktop Entry] Encoding=UTF-8 Name=Padre Comment=The Perl IDE # change to corresponding path Exec=padre Icon=/usr/local/share/perl/5.10.1/auto/share/dist/Padre/icons/padre/64x64/logo.png Categories=Application;Development;Perl;IDE Version=1.0 Type=Application Terminal=0 Padre-1.00/share/README.txt0000644000175000017500000000172011642007331013736 0ustar petepeteNote to Packagers: This directory contains general padre-specific imagery, all of which have either been created from scratch by members of the Padre team as described below (they fall under the same terms as Perl(!) itself) or have their source individually documented and verified with licensing information below. Note to Developers: Make damn sure it stays that way! Images: ============================= padre-splash.png ============================= Made specifically for use in Padre and debian. Copyright 2009 Ahmad M. Zawawi You can redistribute and/or modify the icons under the same terms as Perl itself. ============================= padre-splash-ccnc.png ============================= Original source http://www.flickr.com/photos/blackbutterfly/3257936873/ This image is was originally distributed (and is redistributed) under the terms of the Attribution-Noncommercial-Share Alike 2.0 Generic. http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en Padre-1.00/share/padre.desktop.README0000644000175000017500000000015611610034772015670 0ustar petepeteChange the hardcoded paths in padre.desktop to your corresponding installation. This will be automated later. Padre-1.00/share/locale/0000755000175000017500000000000012237340741013505 5ustar petepetePadre-1.00/share/locale/nl-nl.po0000644000175000017500000045576011532441577015114 0ustar petepete# Dutch translations for Padre package. # Copyright (C) 2008 THE Padre'S COPYRIGHT HOLDER # This file is distributed under the same license as the Padre package. # ddn , 2008. # msgid "" msgstr "" "Project-Id-Version: 0.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-15 21:36+1100\n" "PO-Revision-Date: 2011-02-15 21:28+0100\n" "Last-Translator: ddn \n" "Language-Team: ddn \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: \n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,876,-1,-1,-1\n" #: lib/Padre/MimeTypes.pm:229 msgid "Shell Script" msgstr "Shell Script" #: lib/Padre/MimeTypes.pm:333 msgid "Text" msgstr "Tekst" #: lib/Padre/MimeTypes.pm:362 msgid "Fast but might be out of date" msgstr "Snel maar kan gedateerd zijn" #: lib/Padre/MimeTypes.pm:371 msgid "PPI Experimental" msgstr "PPI e&xperimenteel" #: lib/Padre/MimeTypes.pm:372 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "Traag maar accuraat and we hebben de volledige controle zodat we programmeerfouten kunnen corrigeren" #: lib/Padre/MimeTypes.pm:376 msgid "PPI Standard" msgstr "PPI standaard" #: lib/Padre/MimeTypes.pm:377 msgid "Hopefully faster than the PPI Traditional. Big file will fall back to Scintilla highlighter." msgstr "Hopelijk sneller dan de klassieke PPI. Voor een groot bestand wordt er gebruik gemaakt van de Scintilla highlighter." #: lib/Padre/MimeTypes.pm:403 #, perl-format msgid "Mime type was not supported when %s(%s) was called" msgstr "Mime type was was niet ondersteund wanneer %s(%s) werd opgeroepen" #: lib/Padre/MimeTypes.pm:413 #, perl-format msgid "Mime type already had a class '%s' when %s(%s) was called" msgstr "Mime type had reeds een klasse %s' wanneer %s(%s) werd opgeroepen" #: lib/Padre/MimeTypes.pm:429 #: lib/Padre/MimeTypes.pm:455 #, perl-format msgid "Mime type is not supported when %s(%s) was called" msgstr "Mime type was is niet ondersteund wanneer %s(%s) werd opgeroepen" #: lib/Padre/MimeTypes.pm:439 #, perl-format msgid "Mime type did not have a class entry when %s(%s) was called" msgstr "Mime type had geen klasse toegang wanneer %s(%s) werd opgeroepen" #: lib/Padre/MimeTypes.pm:606 msgid "UNKNOWN" msgstr "ONBEKEND" #: lib/Padre/Config.pm:401 msgid "Showing the splash image during start-up" msgstr "" #: lib/Padre/Config.pm:414 msgid "Previous open files" msgstr "Vorige geopende bestanden" #: lib/Padre/Config.pm:415 msgid "A new empty file" msgstr "Een nieuw leeg bestand" #: lib/Padre/Config.pm:416 msgid "No open files" msgstr "Geen open bestanden" #: lib/Padre/Config.pm:417 msgid "Open session" msgstr "Sessie openen" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "CPAN configuratie kon niet gevonden worden" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "Selecteer de te installeren distributie" #: lib/Padre/CPAN.pm:118 #: lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "Geen distributie geselecteerd" #: lib/Padre/CPAN.pm:132 msgid "" "Enter URL to install\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Voer URL ter installatie in\n" "vb. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/CPAN.pm:133 msgid "Install Local Distribution" msgstr "Installeer Lokale Distributie" #: lib/Padre/CPAN.pm:178 msgid "cpanm is unexpectedly not installed" msgstr "cpanm is onverwacht niet geïnstalleerd" #: lib/Padre/PluginHandle.pm:89 #: lib/Padre/Wx/Dialog/PluginManager.pm:491 msgid "error" msgstr "fout" #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "niet geladen" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "geladen" #: lib/Padre/PluginHandle.pm:92 #: lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "incompatible" msgstr "Incompatibel" #: lib/Padre/PluginHandle.pm:93 #: lib/Padre/Wx/Dialog/PluginManager.pm:530 msgid "disabled" msgstr "gedesactiveerd" #: lib/Padre/PluginHandle.pm:94 #: lib/Padre/Wx/Dialog/PluginManager.pm:518 msgid "enabled" msgstr "geactiveerd" #: lib/Padre/PluginHandle.pm:201 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Gefaald bij het activeren van de plugin '%s': %s" #: lib/Padre/PluginHandle.pm:281 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Gefaald bij het desactiveren van de plugin '%s': %s" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "Engels (Verenigd Koninkrijk)" #: lib/Padre/Locale.pm:124 msgid "English (Australia)" msgstr "Engels (Australië)" #: lib/Padre/Locale.pm:142 #: lib/Padre/Wx/Main.pm:3611 msgid "Unknown" msgstr "Onbekend" #: lib/Padre/Locale.pm:156 msgid "Arabic" msgstr "Arabisch" #: lib/Padre/Locale.pm:166 msgid "Czech" msgstr "Tsjechisch" #: lib/Padre/Locale.pm:176 msgid "Danish" msgstr "Deens" #: lib/Padre/Locale.pm:186 msgid "German" msgstr "Duits" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "Engels" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "Engels (Canada)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "Engels (Nieuw-Zeeland)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "Engels (Verenigde Staten van Amerika)" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "Spaans (Argentinië)" #: lib/Padre/Locale.pm:248 msgid "Spanish" msgstr "Spaans" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "Perzisch (Iran)" #: lib/Padre/Locale.pm:268 msgid "French (Canada)" msgstr "Frans (Canada)" #: lib/Padre/Locale.pm:282 msgid "French" msgstr "Frans" #: lib/Padre/Locale.pm:292 msgid "Hebrew" msgstr "Hebreeuws" #: lib/Padre/Locale.pm:302 msgid "Hungarian" msgstr "Hongaars" #: lib/Padre/Locale.pm:316 msgid "Italian" msgstr "Italiaans" #: lib/Padre/Locale.pm:326 msgid "Japanese" msgstr "Japans" #: lib/Padre/Locale.pm:336 msgid "Korean" msgstr "Koreaans" #: lib/Padre/Locale.pm:350 msgid "Dutch" msgstr "Nederlands" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "Nederlands (België)" #: lib/Padre/Locale.pm:370 msgid "Norwegian" msgstr "Noorweegs" #: lib/Padre/Locale.pm:380 msgid "Polish" msgstr "Pools" #: lib/Padre/Locale.pm:390 msgid "Portuguese (Brazil)" msgstr "Portugees (Brazillië)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "Portugees (Portugal)" #: lib/Padre/Locale.pm:410 msgid "Russian" msgstr "Russisch" #: lib/Padre/Locale.pm:420 msgid "Turkish" msgstr "Turks" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "Chinees" #: lib/Padre/Locale.pm:440 msgid "Chinese (Simplified)" msgstr "Chinees (Vereenvoudigd)" #: lib/Padre/Locale.pm:450 msgid "Chinese (Traditional)" msgstr "Chinees (Traditioneel)" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "Klingon" #: lib/Padre/PluginManager.pm:402 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Meerdere nieuwe plugins gevonden.\n" "Om deze te configureren en te activeren ga naar\n" "Plugins -> Plugin Manager\n" "\n" "Lijst nieuwe plugins:\n" "\n" #: lib/Padre/PluginManager.pm:412 msgid "New plug-ins detected" msgstr "Nieuwe plugins gedetecteerd" #: lib/Padre/PluginManager.pm:544 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Gefaald tijdens het laden: %s" #: lib/Padre/PluginManager.pm:556 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - Geen Padre::Plugin subklasse" #: lib/Padre/PluginManager.pm:569 #, perl-format msgid "%s - Not compatible with Padre version %s - %s" msgstr "%s - Niet compatibel met Padre versie %s - %s" #: lib/Padre/PluginManager.pm:584 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Gefaald tijdens het instantiëren: %s" #: lib/Padre/PluginManager.pm:594 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - Kon plugin object niet ïnstantiëren" #: lib/Padre/PluginManager.pm:846 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Plugin fout bij gebeurtenis %s: %s" #: lib/Padre/PluginManager.pm:856 msgid "(core)" msgstr "(kern)" #: lib/Padre/PluginManager.pm:857 #: lib/Padre/File/FTP.pm:145 #: lib/Padre/Document/Perl.pm:579 #: lib/Padre/Document/Perl.pm:911 #: lib/Padre/Document/Perl.pm:960 msgid "Unknown error" msgstr "Niet bekende fout" #: lib/Padre/PluginManager.pm:867 #, perl-format msgid "Plugin %s" msgstr "Plugin %s" #: lib/Padre/PluginManager.pm:943 msgid "Error when calling menu for plug-in " msgstr "Fout bij het oproepen van het plugin menu" #: lib/Padre/PluginManager.pm:979 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Geen bestandsnaam" #: lib/Padre/PluginManager.pm:982 msgid "Could not locate project directory." msgstr "Project map niet gevonden" #: lib/Padre/PluginManager.pm:1004 #: lib/Padre/PluginManager.pm:1100 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Gefaald in het laden van de plugin '%s'\n" "%s" #: lib/Padre/PluginManager.pm:1054 #: lib/Padre/Wx/Main.pm:5438 msgid "Open file" msgstr "Open bestand" #: lib/Padre/PluginManager.pm:1074 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "Plugin dient '%s' te hebben als basismap" #: lib/Padre/Document.pm:231 msgid "Error while opening file: no file object" msgstr "Fout bij het openen van bestand: geen bestandsobject" #: lib/Padre/Document.pm:253 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "Het bestand %s dat u probeert te openen is %s bytes groot. Dit is meer dan de arbritaire bestandsgrootte van Padre die nu %s bedraagt. Dit bestand openen kan de performantie verminderen. Wilt u nog steeds het bestand openen?" #: lib/Padre/Document.pm:259 #: lib/Padre/Wx/Main.pm:2696 #: lib/Padre/Wx/Main.pm:3303 #: lib/Padre/Wx/Syntax.pm:31 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Waarschuwing" #: lib/Padre/Document.pm:281 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Fout bij het vaststellen van het MIME type\n" " Probeert U een binair bestand in te laden?" #: lib/Padre/Document.pm:325 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "Geen modules mime_type='%s' bastandsnaam='%s'" #: lib/Padre/Document.pm:440 #: lib/Padre/Wx/Main.pm:4491 #: lib/Padre/Wx/Editor.pm:215 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/Sync.pm:447 #: lib/Padre/Wx/Dialog/Sync.pm:455 #: lib/Padre/Wx/Dialog/Sync.pm:469 #: lib/Padre/Wx/Dialog/Sync.pm:493 #: lib/Padre/Wx/Dialog/Sync.pm:517 #: lib/Padre/Wx/Dialog/Sync.pm:528 #: lib/Padre/Wx/Dialog/Sync.pm:538 #: lib/Padre/Wx/Dialog/Sync.pm:556 #: lib/Padre/Wx/Dialog/Sync.pm:567 #: lib/Padre/Wx/Dialog/Sync.pm:578 #: lib/Padre/Wx/Dialog/Sync.pm:589 #: lib/Padre/Wx/Dialog/ModuleStart.pm:185 #: lib/Padre/Wx/Dialog/Sync2.pm:67 #: lib/Padre/Wx/Dialog/Sync2.pm:75 #: lib/Padre/Wx/Dialog/Sync2.pm:89 #: lib/Padre/Wx/Dialog/Sync2.pm:108 #: lib/Padre/Wx/Dialog/Sync2.pm:132 #: lib/Padre/Wx/Dialog/Sync2.pm:143 #: lib/Padre/Wx/Dialog/Sync2.pm:153 #: lib/Padre/Wx/Dialog/Sync2.pm:171 #: lib/Padre/Wx/Dialog/Sync2.pm:182 #: lib/Padre/Wx/Dialog/Sync2.pm:193 #: lib/Padre/Wx/Dialog/Sync2.pm:204 #: lib/Padre/Wx/Dialog/PerlFilter.pm:269 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:90 #: lib/Padre/Wx/Dialog/OpenResource.pm:118 msgid "Error" msgstr "Fout" #: lib/Padre/Document.pm:765 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "Visuele bestandsnaam %s stemt niet overeen met de interne bestandsnaam %s, wenst u niet te bewaren?" #: lib/Padre/Document.pm:769 msgid "Save Warning" msgstr "Waarschuwing Opslaan" #: lib/Padre/Document.pm:942 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "geen highlighter voor mime type '%s' bij gebruik van stc" #: lib/Padre/Document.pm:962 #, perl-format msgid "Unsaved %d" msgstr "Niet opgeslagen %d" #: lib/Padre/Document.pm:1363 #: lib/Padre/Document.pm:1364 msgid "Skipped for large files" msgstr "Overgeslagen voor grote bestanden" #: lib/Padre/Plugin/PopularityContest.pm:201 #: lib/Padre/Plugin/Devel.pm:102 msgid "About" msgstr "Betreft" #: lib/Padre/Plugin/PopularityContest.pm:202 msgid "Show current report" msgstr "Toon huidig rapport" #: lib/Padre/Plugin/PopularityContest.pm:305 msgid "Popularity Contest Report" msgstr "Rapport Populariteitswedstrijd" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Padre Ontwikkelaar Tools" #: lib/Padre/Plugin/Devel.pm:67 msgid "Run Document inside Padre" msgstr "Voer Document uit binnen Padre" #: lib/Padre/Plugin/Devel.pm:68 msgid "Run Selection inside Padre" msgstr "Voer Selectie uit binnen Padre" #: lib/Padre/Plugin/Devel.pm:71 msgid "Dump" msgstr "" #: lib/Padre/Plugin/Devel.pm:72 msgid "Dump Expression..." msgstr "Dump Expressie" #: lib/Padre/Plugin/Devel.pm:73 msgid "Dump Current Document" msgstr "Dump Huidig Document" #: lib/Padre/Plugin/Devel.pm:74 msgid "Dump Task Manager" msgstr "Dump Task Manager" #: lib/Padre/Plugin/Devel.pm:75 msgid "Dump Top IDE Object" msgstr "Dump Top IDE Object" #: lib/Padre/Plugin/Devel.pm:76 msgid "Dump Current PPI Tree" msgstr "Dump Huidige PPI Boomstructuur" #: lib/Padre/Plugin/Devel.pm:77 msgid "Dump %INC and @INC" msgstr "Dump %INC en @INC" #: lib/Padre/Plugin/Devel.pm:78 msgid "Dump Display Geometry" msgstr "Dump Display Geometrie" #: lib/Padre/Plugin/Devel.pm:79 msgid "Start/Stop sub trace" msgstr "Start/Stop sub trace" #: lib/Padre/Plugin/Devel.pm:83 msgid "Load All Padre Modules" msgstr "Laad Alle Padre Modules" #: lib/Padre/Plugin/Devel.pm:84 msgid "Simulate Crash" msgstr "Simuleer Crash" #: lib/Padre/Plugin/Devel.pm:85 msgid "Simulate Background Exception" msgstr "" #: lib/Padre/Plugin/Devel.pm:86 msgid "Simulate Background Crash" msgstr "Simuleer Achtergrond Crash" #: lib/Padre/Plugin/Devel.pm:90 #, perl-format msgid "wxWidgets %s Reference" msgstr "wxWidgets %s Referentie" #: lib/Padre/Plugin/Devel.pm:93 msgid "STC Reference" msgstr "STC Referentie" #: lib/Padre/Plugin/Devel.pm:96 msgid "wxPerl Live Support" msgstr "wxPerl Live Support" #: lib/Padre/Plugin/Devel.pm:120 #: lib/Padre/Plugin/Devel.pm:121 msgid "Expression" msgstr "Expressie" #: lib/Padre/Plugin/Devel.pm:149 msgid "No file is open" msgstr "Geen bestand is geopend" #: lib/Padre/Plugin/Devel.pm:170 msgid "No Perl 5 file is open" msgstr "Geen Perl 5 bestand is geopend" #: lib/Padre/Plugin/Devel.pm:242 msgid "Sub-tracing stopped" msgstr "Sub-tracing gestopt" #: lib/Padre/Plugin/Devel.pm:248 msgid "Error while loading Aspect, is it installed?" msgstr "Fout opgetreden bij het laden van Aspect, is het geïnstalleerd?" #: lib/Padre/Plugin/Devel.pm:260 msgid "Sub-tracing started" msgstr "Sub-tracing gestart" #: lib/Padre/Plugin/Devel.pm:291 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Een verzameling van niet-gerelateerde tools door de Padre ontwikkelaars\n" #: lib/Padre/Plugin/Devel.pm:311 #, perl-format msgid "Found %s unloaded modules" msgstr "%s niet geladen modules gevonden" #: lib/Padre/Plugin/Devel.pm:323 #, perl-format msgid "Loaded %s modules" msgstr "Ingeladen modules %s " #: lib/Padre/Plugin/Devel.pm:334 #, perl-format msgid "Error: %s" msgstr "Fout: %s" #: lib/Padre/Config/Style.pm:34 #: lib/Padre/Wx/WizardLibrary.pm:29 #: lib/Padre/Wx/WizardLibrary.pm:37 #: lib/Padre/Wx/About.pm:59 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Config/Style.pm:35 msgid "Evening" msgstr "Avond" #: lib/Padre/Config/Style.pm:36 msgid "Night" msgstr "Nacht" #: lib/Padre/Config/Style.pm:37 msgid "Ultraedit" msgstr "Ultraedit" #: lib/Padre/Config/Style.pm:38 msgid "Notepad++" msgstr "Notepad++" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "Experimentele feature. Typ '?' op het einde van de pagina om een lijst van commando's te krijgen. Als het niet werkt, verwijt szabgab.\n" #: lib/Padre/Wx/Command.pm:262 msgid "Command" msgstr "Commando" #: lib/Padre/Wx/Main.pm:769 #, perl-format msgid "No such session %s" msgstr "Geen sessie %s" #: lib/Padre/Wx/Main.pm:968 msgid "Failed to create server" msgstr "Gefaald in het maken van de server" #: lib/Padre/Wx/Main.pm:2312 msgid "Command line" msgstr "Commando-lijn" #: lib/Padre/Wx/Main.pm:2313 msgid "Run setup" msgstr "Uitvoerings-instellingen" #: lib/Padre/Wx/Main.pm:2342 #: lib/Padre/Wx/Main.pm:2397 #: lib/Padre/Wx/Main.pm:2449 msgid "No document open" msgstr "Geen document geopend" #: lib/Padre/Wx/Main.pm:2348 #: lib/Padre/Wx/Main.pm:2409 #: lib/Padre/Wx/Main.pm:2464 msgid "Could not find project root" msgstr "Project startpunt niet gevonden" #: lib/Padre/Wx/Main.pm:2375 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Geen Build.PL noch Makefile.PL, noch dist.ini gevonden" #: lib/Padre/Wx/Main.pm:2378 msgid "Could not find perl executable" msgstr "Perl executable niet gevonden" #: lib/Padre/Wx/Main.pm:2403 #: lib/Padre/Wx/Main.pm:2455 msgid "Current document has no filename" msgstr "Huidig document heeft geen bestandsnaam" #: lib/Padre/Wx/Main.pm:2458 msgid "Current document is not a .t file" msgstr "Huidig document is geen .t bestand" #: lib/Padre/Wx/Main.pm:2552 #: lib/Padre/Wx/Output.pm:141 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream is versie %s en is gekend als oorzaak van problemen. Verkrijg tenminste 0.20 door het typen van\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Main.pm:2627 #, perl-format msgid "Failed to start '%s' command" msgstr "Gefaald in het starten van het '%s' commando" #: lib/Padre/Wx/Main.pm:2652 msgid "No open document" msgstr "Geen document geopend" #: lib/Padre/Wx/Main.pm:2670 msgid "No execution mode was defined for this document type" msgstr "Geen uitvoeringsmodus bepaald voor dit documenttype" #: lib/Padre/Wx/Main.pm:2695 msgid "Do you want to continue?" msgstr "Wenst u verder te gaan?" #: lib/Padre/Wx/Main.pm:2781 #, perl-format msgid "Opening session %s..." msgstr "Sessie %s openen..." #: lib/Padre/Wx/Main.pm:2810 msgid "Restore focus..." msgstr "Herstel focus..." #: lib/Padre/Wx/Main.pm:3140 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "Het commentaar karakter voor het document type %s kon niet vastgesteld worden" #: lib/Padre/Wx/Main.pm:3189 msgid "Autocompletion error" msgstr "Fout automatische aanvulling" #: lib/Padre/Wx/Main.pm:3302 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Er is nog een draaiend proces. Wenst u het te af te breken en afsluiten?" #: lib/Padre/Wx/Main.pm:3518 #, perl-format msgid "Cannot open a Directory: %s" msgstr "Kan Map niet openen: %s" #: lib/Padre/Wx/Main.pm:3645 msgid "Nothing selected. Enter what should be opened:" msgstr "Niets geselecteerd. Voer in wat geopend dient te worden:" #: lib/Padre/Wx/Main.pm:3646 msgid "Open selection" msgstr "Open Selectie" #: lib/Padre/Wx/Main.pm:3687 #, perl-format msgid "Could not find file '%s'" msgstr "Bestand '%s' niet gevonden" #: lib/Padre/Wx/Main.pm:3688 #: lib/Padre/Wx/ActionLibrary.pm:443 msgid "Open Selection" msgstr "Open Selectie" #: lib/Padre/Wx/Main.pm:3698 #: lib/Padre/Wx/Dialog/Positions.pm:120 msgid "Choose File" msgstr "Kies Bestand" #: lib/Padre/Wx/Main.pm:3803 msgid "JavaScript Files" msgstr "JavaScript bestanden" #: lib/Padre/Wx/Main.pm:3805 msgid "Perl Files" msgstr "Perl bestanden" #: lib/Padre/Wx/Main.pm:3807 msgid "PHP Files" msgstr "PHP bestanden" #: lib/Padre/Wx/Main.pm:3809 msgid "Python Files" msgstr "Python bestanden" #: lib/Padre/Wx/Main.pm:3811 msgid "Ruby Files" msgstr "Ruby bestanden" #: lib/Padre/Wx/Main.pm:3813 msgid "SQL Files" msgstr "SQL bestanden" #: lib/Padre/Wx/Main.pm:3815 msgid "Text Files" msgstr "Tekst bestanden" #: lib/Padre/Wx/Main.pm:3817 msgid "Web Files" msgstr "Web bestanden" #: lib/Padre/Wx/Main.pm:3819 msgid "Script Files" msgstr "Script bestanden" #: lib/Padre/Wx/Main.pm:4271 msgid "File already exists. Overwrite it?" msgstr "Bestand bestaat reeds. Overschrijven?" #: lib/Padre/Wx/Main.pm:4272 msgid "Exist" msgstr "Bestaand" #: lib/Padre/Wx/Main.pm:4375 msgid "File already exists" msgstr "Bestand bestaat reeds. Overschrijven?" #: lib/Padre/Wx/Main.pm:4389 #, perl-format msgid "Failed to create path '%s'" msgstr "Gefaald in het maken van het pad '%s'" #: lib/Padre/Wx/Main.pm:4480 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Bestand gewijzigd sinds het voor de laatste maal werd opgeslagen. Wijzigingen overschrijven?" #: lib/Padre/Wx/Main.pm:4481 msgid "File not in sync" msgstr "Bestand niet gesynchroniseerd" #: lib/Padre/Wx/Main.pm:4490 msgid "Could not save file: " msgstr "Bestand kon niet opgeslagen worden: " #: lib/Padre/Wx/Main.pm:4576 msgid "File changed. Do you want to save it?" msgstr "Bestand gewijzigd. Opslaan?" #: lib/Padre/Wx/Main.pm:4577 msgid "Unsaved File" msgstr "Bestand niet opgeslagen" #: lib/Padre/Wx/Main.pm:4660 msgid "Close all" msgstr "Sluit alles" #: lib/Padre/Wx/Main.pm:4700 msgid "Close some files" msgstr "Sluit Bepaalde Bestanden" #: lib/Padre/Wx/Main.pm:4701 msgid "Select files to close:" msgstr "Selecteer de te sluiten bestanden:" #: lib/Padre/Wx/Main.pm:4716 msgid "Close some" msgstr "Sluit sommige" #: lib/Padre/Wx/Main.pm:4879 msgid "Cannot diff if file was never saved" msgstr "Vergelijken kan niet indien het bestand nog niet is opgeslagen" #: lib/Padre/Wx/Main.pm:4903 msgid "There are no differences\n" msgstr "Geen verschillen\n" #: lib/Padre/Wx/Main.pm:4999 msgid "Error loading regex editor." msgstr "Fout bij het inladen regex editor." #: lib/Padre/Wx/Main.pm:5028 msgid "Error loading perl filter dialog." msgstr "Fout bij het inladen perl filter dialoog venster." #: lib/Padre/Wx/Main.pm:5440 msgid "All Files" msgstr "Alle bestanden" #: lib/Padre/Wx/Main.pm:5778 msgid "Space to Tab" msgstr "Converteer Spaties naar Tabs" #: lib/Padre/Wx/Main.pm:5779 msgid "Tab to Space" msgstr "Converteer Tabs naar Spaties" #: lib/Padre/Wx/Main.pm:5784 msgid "How many spaces for each tab:" msgstr "Hoeveel spaties voor elke tab:" #: lib/Padre/Wx/Main.pm:5951 msgid "Reload some files" msgstr "Herlaad bepaalde bestanden" #: lib/Padre/Wx/Main.pm:5952 msgid "&Select files to reload:" msgstr "Selecteer te herladen bestanden:" #: lib/Padre/Wx/Main.pm:5953 msgid "&Reload selected" msgstr "Geselecteerd herladen" #: lib/Padre/Wx/Main.pm:6064 #, perl-format msgid "Failed to find template file '%s'" msgstr "Fout bij het vinden van sjabloon bestand '%s'" #: lib/Padre/Wx/Main.pm:6292 msgid "Need to select text in order to translate to hex" msgstr "Tekst dient eerst geselecteerd te worden alvorens hex conversie mogelijk is" #: lib/Padre/Wx/Main.pm:6435 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Fout tijdens het gebruik met de filter tool:\n" "%s" #: lib/Padre/Wx/Main.pm:6450 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "Fout teruggestuurd door filter tool:\n" "%s" #: lib/Padre/Wx/FindInFiles.pm:129 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "Gezocht naar '%s' in '%s'..." #: lib/Padre/Wx/FindInFiles.pm:155 #, perl-format msgid "%s (%s results)" msgstr "%s (%s resultaten)" #: lib/Padre/Wx/FindInFiles.pm:212 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Zoeken voltooid, '%s' %d keer gevonden in %d bestand(en) in '%s'" #: lib/Padre/Wx/FindInFiles.pm:223 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "Geen resultaten gevonden voor '%s' in '%s'" #: lib/Padre/Wx/FindInFiles.pm:320 #: lib/Padre/Wx/FBP/FindInFiles.pm:27 msgid "Find in Files" msgstr "Vind in Bestanden" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "Uitvoer" #: lib/Padre/Wx/Debug.pm:113 msgid "Debugger" msgstr "Debugger" #: lib/Padre/Wx/Debug.pm:138 msgid "Variable" msgstr "Variabele" #: lib/Padre/Wx/Debug.pm:139 #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Waarde" #: lib/Padre/Wx/Syntax.pm:37 msgid "Deprecation" msgstr "Niet langer in gebruik" #: lib/Padre/Wx/Syntax.pm:43 msgid "Severe Warning" msgstr "Belangrijke waarschuwing" #: lib/Padre/Wx/Syntax.pm:49 msgid "Fatal Error" msgstr "Fatale Fout" #: lib/Padre/Wx/Syntax.pm:55 msgid "Internal Error" msgstr "Interne fout" #: lib/Padre/Wx/Syntax.pm:61 msgid "Very Fatal Error" msgstr "Erg fatale fout" #: lib/Padre/Wx/Syntax.pm:67 msgid "Alien Error" msgstr "Externe fout" #: lib/Padre/Wx/Syntax.pm:301 msgid "Syntax Check" msgstr "Syntax Controle" #: lib/Padre/Wx/Syntax.pm:392 #, perl-format msgid "No errors or warnings found in %s." msgstr "Geen fouten of waarschuwingen gevonden in %s." #: lib/Padre/Wx/Syntax.pm:395 msgid "No errors or warnings found." msgstr "Geen fouten of waarschuwingen gevonden." #: lib/Padre/Wx/Syntax.pm:404 #, perl-format msgid "Found %d issue(s) in %s" msgstr "%d proble(e)m(en) gevonden in '%s'" #: lib/Padre/Wx/Syntax.pm:405 #, perl-format msgid "Found %d issue(s)" msgstr "Gevonden %d proble(e)m(en)" #: lib/Padre/Wx/Syntax.pm:426 #, perl-format msgid "Line %d: (%s) %s" msgstr "Regel %d: (%s) %s" #: lib/Padre/Wx/Browser.pm:64 #: lib/Padre/Wx/ActionLibrary.pm:2578 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:398 msgid "Help" msgstr "&Hulp" #: lib/Padre/Wx/Browser.pm:93 #: lib/Padre/Wx/Browser.pm:108 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Zoek perldoc op - bvb. Padre::Task, Net::LDAP" #: lib/Padre/Wx/Browser.pm:104 msgid "Search:" msgstr "Zoeken:" #: lib/Padre/Wx/Browser.pm:110 #: lib/Padre/Wx/About.pm:86 #: lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/Dialog/Replace.pm:191 #: lib/Padre/Wx/Dialog/KeyBindings.pm:139 #: lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/PerlFilter.pm:99 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 #: lib/Padre/Wx/Dialog/RegexEditor.pm:238 msgid "&Close" msgstr "&Sluit" #: lib/Padre/Wx/Browser.pm:341 msgid "Untitled" msgstr "Naamloos" #: lib/Padre/Wx/Browser.pm:409 #, perl-format msgid "Browser: no viewer for %s" msgstr "Browser: geen voorvertoning voor %s" #: lib/Padre/Wx/Browser.pm:443 #, perl-format msgid "Searched for '%s' and failed..." msgstr "Gezocht naar '%s' en gefaald..." #: lib/Padre/Wx/Browser.pm:444 msgid "Help not found." msgstr "Hulp %s niet gevonden." #: lib/Padre/Wx/Browser.pm:465 msgid "NAME" msgstr "NAAM" #: lib/Padre/Wx/Outline.pm:110 #: lib/Padre/Wx/Outline.pm:312 msgid "Outline" msgstr "Uitlijning" #: lib/Padre/Wx/Outline.pm:221 msgid "&Go to Element" msgstr "&Ga Naar Element" #: lib/Padre/Wx/Outline.pm:235 msgid "Open &Documentation" msgstr "Open &Documentatie" #: lib/Padre/Wx/Outline.pm:357 msgid "Pragmata" msgstr "Pragmata" #: lib/Padre/Wx/Outline.pm:358 msgid "Modules" msgstr "Moduleo" #: lib/Padre/Wx/Outline.pm:359 msgid "Methods" msgstr "Methoden" #: lib/Padre/Wx/Outline.pm:360 msgid "Attributes" msgstr "" #: lib/Padre/Wx/Debugger.pm:78 msgid "Debugger is already running" msgstr "Debugger is reeds aan het draaien" #: lib/Padre/Wx/Debugger.pm:82 msgid "Not a Perl document" msgstr "Geen Perl Document" #: lib/Padre/Wx/Debugger.pm:137 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', or 'Run till Breakpoint' in the Debug menu." msgstr "" "De debugger is niet aan het draaien.\n" "Je kan de debugger starten met de commando's 'Stap In', 'Stap Over', of 'Voer uit tot breekpunt' in het Debug menu." #: lib/Padre/Wx/Debugger.pm:193 #: lib/Padre/Wx/Debugger.pm:275 #: lib/Padre/Wx/Debugger.pm:299 #: lib/Padre/Wx/Debugger.pm:333 #: lib/Padre/Wx/Debugger.pm:353 msgid "Debugger not running" msgstr "Debugger is niet aan het draaien" #: lib/Padre/Wx/Debugger.pm:226 #, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "Kon breekpunt niet zetten op bestand '%s' rij '%s'" #: lib/Padre/Wx/Debugger.pm:389 #, perl-format msgid "Could not evaluate '%s'" msgstr "Kon '%s' niet evalueren" #: lib/Padre/Wx/Debugger.pm:407 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "'%s' lijkt niet op een variable. Gelieve eerst een variabele in de code te selecteren en probeer dan opnieuw." #: lib/Padre/Wx/Debugger.pm:439 msgid "Expression:" msgstr "Expressie:" #: lib/Padre/Wx/Debugger.pm:440 msgid "Expr" msgstr "Expr" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "Uitvoer Beeld" #: lib/Padre/Wx/StatusBar.pm:290 msgid "Background Tasks are running" msgstr "Achtergrondtaken draaien" #: lib/Padre/Wx/StatusBar.pm:291 msgid "Background Tasks are running with high load" msgstr "Achtergrondtaken draaien hoogbezet" #: lib/Padre/Wx/StatusBar.pm:417 msgid "Read Only" msgstr "Enkel Leesbaar" #: lib/Padre/Wx/StatusBar.pm:417 msgid "R/W" msgstr "R/W" #: lib/Padre/Wx/WizardLibrary.pm:20 msgid "Module" msgstr "Module" #: lib/Padre/Wx/WizardLibrary.pm:21 msgid "Perl 5" msgstr "Perl 5" #: lib/Padre/Wx/WizardLibrary.pm:22 msgid "Opens the Perl 5 module wizard" msgstr "Opent de Perl 5 module assistent" #: lib/Padre/Wx/WizardLibrary.pm:28 msgid "Plugin" msgstr "Plugin" #: lib/Padre/Wx/WizardLibrary.pm:30 msgid "Opens the Padre plugin wizard" msgstr "Opent de Padre plugin assistent" #: lib/Padre/Wx/WizardLibrary.pm:36 #: lib/Padre/Wx/Dialog/DocStats.pm:95 msgid "Document" msgstr "Document" #: lib/Padre/Wx/WizardLibrary.pm:38 msgid "Opens the Padre document wizard" msgstr "Opent de Padre document assistent" #: lib/Padre/Wx/TodoList.pm:199 msgid "To-do" msgstr "Te Doen" #: lib/Padre/Wx/Editor.pm:1612 msgid "You must select a range of lines" msgstr "U dient een reeks lijnen te selecteren" #: lib/Padre/Wx/Editor.pm:1628 msgid "First character of selection must be a non-word character to align" msgstr "Het eerste karakter van de selectie moet een niet-woord karakter zijn om te aligneren" #: lib/Padre/Wx/FunctionList.pm:217 msgid "Functions" msgstr "Functies" #: lib/Padre/Wx/Right.pm:52 msgid "Document Tools" msgstr "Document Tools" #: lib/Padre/Wx/Left.pm:52 msgid "Project Tools" msgstr "Project Tools" #: lib/Padre/Wx/FindResult.pm:88 #, perl-format msgid "Find Results (%s)" msgstr "Vind Resultaten (%s)" #: lib/Padre/Wx/FindResult.pm:125 msgid "Related editor has been closed" msgstr "Gerelateerde Editor is afgesloten" #: lib/Padre/Wx/FindResult.pm:177 msgid "Line" msgstr "Lijn:" #: lib/Padre/Wx/FindResult.pm:178 msgid "Content" msgstr "Inhoud" #: lib/Padre/Wx/FindResult.pm:226 msgid "Copy &Selected" msgstr "Kopiëer &Selectie" #: lib/Padre/Wx/FindResult.pm:249 msgid "Copy &All" msgstr "Kopiëer &Alles" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "Bestanden" #: lib/Padre/Wx/About.pm:25 msgid "About Padre" msgstr "Betreft Padre" #: lib/Padre/Wx/About.pm:64 msgid "Development" msgstr "Ontwikkeling" #: lib/Padre/Wx/About.pm:69 msgid "Translation" msgstr "Vertaling" #: lib/Padre/Wx/About.pm:74 #: lib/Padre/Wx/About.pm:317 msgid "System Info" msgstr "Systeem Info" #: lib/Padre/Wx/About.pm:102 msgid "Created by" msgstr "Gemaakt door" #: lib/Padre/Wx/About.pm:103 #: lib/Padre/Wx/About.pm:135 msgid "The Padre Development Team" msgstr "Het Padre Ontwikkelaars Team" #: lib/Padre/Wx/About.pm:105 msgid "Padre is free software; you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "Padre is gratis software; je kan het herverdelen en/of wijzigen onder dezelfde voorwaarden als Perl 5." #: lib/Padre/Wx/About.pm:106 msgid "Blue butterfly on a green leaf" msgstr "Blauwe vlinder op een groen blad" #: lib/Padre/Wx/About.pm:107 msgid "splash image is based on work by" msgstr "splash afbeelding is gebaseerd op werk van" #: lib/Padre/Wx/About.pm:227 msgid "The Padre Translation Team" msgstr "Het Padre Vertalers Team" #: lib/Padre/Wx/About.pm:318 msgid "Config:" msgstr "Configuratie:" #: lib/Padre/Wx/About.pm:337 msgid "Uptime" msgstr "Actieve periode" #: lib/Padre/Wx/About.pm:342 msgid "unsupported" msgstr "niet ondersteund" #: lib/Padre/Wx/Directory.pm:79 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 #: lib/Padre/Wx/Dialog/Find.pm:78 msgid "Search" msgstr "Zoeken" #: lib/Padre/Wx/Directory.pm:110 msgid "Move to other panel" msgstr "Verplaats naar ander paneel" #: lib/Padre/Wx/Directory.pm:270 #: lib/Padre/Wx/Dialog/WindowList.pm:223 msgid "Project" msgstr "Project" #: lib/Padre/Wx/Progress.pm:76 msgid "Please wait..." msgstr "Gelieve te wachten..." #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Systeem Standaard" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Schakel taal over naar de standaard %s" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Schakel Padre interface taal naar %s" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dump the Padre object to STDOUT" msgstr "Dump het Padre object naar STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:90 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Dump het complete Padre object naar STDOUT voor testen/debuggen." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Delay the action queue for 10 seconds" msgstr "Vertraag de actie-wachtrij voor 10 seconden" #: lib/Padre/Wx/ActionLibrary.pm:111 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Stop 10 seconden met het verwerken van andere actie wachtrij items" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Delay the action queue for 30 seconds" msgstr "Vertraag 30 seconden de actie wachtrij." #: lib/Padre/Wx/ActionLibrary.pm:120 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Stop 30 seconden met het verwerken van andere actie wachtrij items" #: lib/Padre/Wx/ActionLibrary.pm:130 msgid "&New" msgstr "&Nieuw" #: lib/Padre/Wx/ActionLibrary.pm:131 msgid "Open a new empty document" msgstr "Open een nieuw leeg document" #: lib/Padre/Wx/ActionLibrary.pm:141 msgid "Perl 5 Script" msgstr "Perl 5 Script" #: lib/Padre/Wx/ActionLibrary.pm:142 msgid "Open a document with a skeleton Perl 5 script" msgstr "Open een document met een Perl 5 script skeletstructuur" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Perl 5 Module" msgstr "Perl 5 Module" #: lib/Padre/Wx/ActionLibrary.pm:151 msgid "Open a document with a skeleton Perl 5 module" msgstr "Open een document met een Perl 5 module skeletstructuur" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 Test" msgstr "Perl 5 Test" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Open een document met een Perl 5 test script skeletstructuur" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Perl 6 Script" msgstr "Perl 6 Script" #: lib/Padre/Wx/ActionLibrary.pm:171 msgid "Open a document with a skeleton Perl 6 script" msgstr "Open een document met een Perl 6 script skeletstructuur" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl Distribution..." msgstr "Perl Distributie" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Setup a skeleton Perl module distribution" msgstr "Zet een skelet Perl Distributie" #: lib/Padre/Wx/ActionLibrary.pm:192 msgid "Wizard Selector..." msgstr "Assistent kiezer..." #: lib/Padre/Wx/ActionLibrary.pm:193 msgid "Selects and opens a wizard" msgstr "Selecteert en opent een assistent" #: lib/Padre/Wx/ActionLibrary.pm:206 msgid "&Open" msgstr "Openen" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Browse directory of the current document to open one or several files" msgstr "Blader door de folder van het huidige document om een of meerdere bestanden te openen" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open &URL..." msgstr "Open &URL..." #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Open a file from a remote location" msgstr "Open een bestand van een niet lokale locatie" #: lib/Padre/Wx/ActionLibrary.pm:228 #: lib/Padre/Wx/Directory/TreeCtrl.pm:218 msgid "Open in File Browser" msgstr "Openen in Verkenner" #: lib/Padre/Wx/ActionLibrary.pm:229 msgid "Opens the current document using the file browser" msgstr "Plaats de huidige document m.b.v. de Verkenner" #: lib/Padre/Wx/ActionLibrary.pm:238 msgid "Open with Default System Editor" msgstr "Openen met de Standaard Systeem Editor" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Opens the file with the default system editor" msgstr "Open het bestand met de standaard systeem editor" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Open in Command Line" msgstr "Opern Commando-lijn" #: lib/Padre/Wx/ActionLibrary.pm:253 msgid "Opens a command line using the current document folder" msgstr "Open een commando lijn m.b.v. de huidige document map" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open Example" msgstr "Open Voorbeeld" #: lib/Padre/Wx/ActionLibrary.pm:263 msgid "Browse the directory of the installed examples to open one file" msgstr "Doorblader de folder van de geïnstalleerde voorbeelden om een bestand te openen" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "Sluit huidig Document" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close this Project" msgstr "Sluit Dit Project" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Sluit alle bestanden die behoren tot het huidige project" #: lib/Padre/Wx/ActionLibrary.pm:295 #: lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "Bestand is niet in een project" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other Projects" msgstr "Sluit Andere Projecten" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Sluit alle bestanden die niet behoren tot het huidige project" #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close all Files" msgstr "Sluit Alle Bestanden" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Sluit alle bestanden geopend in de editor" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all other Files" msgstr "Sluit Alle Andere Bestanden" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Sluit alle bestanden behalve het huidige" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close Files..." msgstr "Sluit Bestanden" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Selecteer sommige open bestanden om te sluiten" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "Reload File" msgstr "Bestand herladen" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Reload current file from disk" msgstr "Herlaad huidig bestand van op schijf" #: lib/Padre/Wx/ActionLibrary.pm:369 msgid "Reload All" msgstr "Alles herladen" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Reload all files currently open" msgstr "Herlaad alle huidig geopende bestanden" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload Some..." msgstr "Bepaalde Herladen" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Select some open files for reload" msgstr "Selecteer sommige open bestanden voor te herladen" #: lib/Padre/Wx/ActionLibrary.pm:393 #: lib/Padre/Wx/Dialog/Preferences.pm:917 #: lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "Op&slaan" #: lib/Padre/Wx/ActionLibrary.pm:394 msgid "Save current document" msgstr "Bewaar huidig Document" #: lib/Padre/Wx/ActionLibrary.pm:406 msgid "Save &As..." msgstr "Opslaan &als..." #: lib/Padre/Wx/ActionLibrary.pm:407 msgid "Allow the selection of another name to save the current document" msgstr "Sta de selectie van een andere naam toe voor het bewaren van het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:419 msgid "Save Intuition" msgstr "Intuïtie Opslaan" #: lib/Padre/Wx/ActionLibrary.pm:420 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "Voor een nieuw document, probeer de bestandsnaam te raden gebaseerd op de bestandsinhoud en stel voor om het te bewaren." #: lib/Padre/Wx/ActionLibrary.pm:430 msgid "Save All" msgstr "Alles opslaan" #: lib/Padre/Wx/ActionLibrary.pm:431 msgid "Save all the files" msgstr "Bewaar alle bestanden" #: lib/Padre/Wx/ActionLibrary.pm:444 msgid "List the files that match the current selection and let the user pick one to open" msgstr "Toon een lijst van alle bestanden die overeenstemmen met de huidige selectie en laat de gebruiker er een kiezen om te openen" #: lib/Padre/Wx/ActionLibrary.pm:453 msgid "Open Session..." msgstr "Sessie openen" #: lib/Padre/Wx/ActionLibrary.pm:454 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "Selecteer een sessie. Sluit alle huidig geopened bestanden en open alle vermelde bestanden in de sessie" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "Save Session..." msgstr "Sessie opslaan" #: lib/Padre/Wx/ActionLibrary.pm:465 msgid "Ask for a session name and save the list of files currently opened" msgstr "Vraag om een sessie naam en bewaar de lijst van de huidig geopende bestanden" #: lib/Padre/Wx/ActionLibrary.pm:480 msgid "&Print..." msgstr "Af&drukken" #: lib/Padre/Wx/ActionLibrary.pm:481 msgid "Print the current document" msgstr "Druk huidig document af" #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "Open All Recent Files" msgstr "Open alle recent geopende bestanden" #: lib/Padre/Wx/ActionLibrary.pm:501 msgid "Open all the files listed in the recent files list" msgstr "Open alle bestanden vermeld in de recente bestanden lijst" #: lib/Padre/Wx/ActionLibrary.pm:509 msgid "Clean Recent Files List" msgstr "Ledig Lijst Recente Bestanden" #: lib/Padre/Wx/ActionLibrary.pm:510 msgid "Remove the entries from the recent files list" msgstr "Verwijder de onderdelen van de lijst recente bestanden" #: lib/Padre/Wx/ActionLibrary.pm:521 #: lib/Padre/Wx/Dialog/DocStats.pm:31 msgid "Document Statistics" msgstr "Documentstatistieken" #: lib/Padre/Wx/ActionLibrary.pm:522 msgid "Word count and other statistics of the current document" msgstr "Woordtelling en andere statistieken van het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:534 msgid "&Quit" msgstr "&Verlaten" #: lib/Padre/Wx/ActionLibrary.pm:535 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Vraag of niet bewaarde bestanden moeten opgeslagen worden en verlaat dan Padre" #: lib/Padre/Wx/ActionLibrary.pm:554 msgid "&Undo" msgstr "&Annuleer" #: lib/Padre/Wx/ActionLibrary.pm:555 msgid "Undo last change in current file" msgstr "Maak laatste wijziging in het huidige bestand ongedaan" #: lib/Padre/Wx/ActionLibrary.pm:574 msgid "&Redo" msgstr "&Herhaal" #: lib/Padre/Wx/ActionLibrary.pm:575 msgid "Redo last undo" msgstr "Voer opnieuw de laatste ongedaanmaking uit" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Select All" msgstr "Selecteer Alles" #: lib/Padre/Wx/ActionLibrary.pm:589 msgid "Select all the text in the current document" msgstr "Selecteer alle tekst in het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:601 msgid "Mark Selection Start" msgstr "Markeer het begin van de selectie" #: lib/Padre/Wx/ActionLibrary.pm:602 msgid "Mark the place where the selection should start" msgstr "Markeer de plaats waar de selectie zou moeten starten" #: lib/Padre/Wx/ActionLibrary.pm:613 msgid "Mark Selection End" msgstr "Markeer het einde van de selectie" #: lib/Padre/Wx/ActionLibrary.pm:614 msgid "Mark the place where the selection should end" msgstr "Markeer de plaats waar de selectie zou moeten eindigen" #: lib/Padre/Wx/ActionLibrary.pm:625 msgid "Clear Selection Marks" msgstr "Wis selectie-markeringen" #: lib/Padre/Wx/ActionLibrary.pm:626 msgid "Remove all the selection marks" msgstr "Wis alle selectie-markeringen" #: lib/Padre/Wx/ActionLibrary.pm:640 msgid "Cu&t" msgstr "K&nippen" #: lib/Padre/Wx/ActionLibrary.pm:641 msgid "Remove the current selection and put it in the clipboard" msgstr "Verwijder de huidige selectie en plaats deze in het klembord" #: lib/Padre/Wx/ActionLibrary.pm:655 msgid "&Copy" msgstr "&Kopiëren" #: lib/Padre/Wx/ActionLibrary.pm:656 msgid "Put the current selection in the clipboard" msgstr "Plaats de huidige selectie in het klembord" #: lib/Padre/Wx/ActionLibrary.pm:671 msgid "Copy Full Filename" msgstr "Kopiëer volledige bestandsnaam" #: lib/Padre/Wx/ActionLibrary.pm:672 msgid "Put the full path of the current file in the clipboard" msgstr "Plaats het volledige pad van het huidige bestand in het klembord" #: lib/Padre/Wx/ActionLibrary.pm:685 msgid "Copy Filename" msgstr "Kopiëer bestandsnaam" #: lib/Padre/Wx/ActionLibrary.pm:686 msgid "Put the name of the current file in the clipboard" msgstr "Plaats de naam van het huidige bestand in het klembord" #: lib/Padre/Wx/ActionLibrary.pm:699 msgid "Copy Directory Name" msgstr "Kopiëer mapnaam" #: lib/Padre/Wx/ActionLibrary.pm:700 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Plaats het volledige folderpad van het huidige bestand in het klembord" #: lib/Padre/Wx/ActionLibrary.pm:712 msgid "Copy Editor Content" msgstr "Copy editor inhoud" #: lib/Padre/Wx/ActionLibrary.pm:713 msgid "Put the content of the current document in the clipboard" msgstr "Plaats de inhoud van het huidige document in het klembord" #: lib/Padre/Wx/ActionLibrary.pm:728 msgid "&Paste" msgstr "&Plakken" #: lib/Padre/Wx/ActionLibrary.pm:729 msgid "Paste the clipboard to the current location" msgstr "Plak de klembord-inhoud naar de huidige locatie" #: lib/Padre/Wx/ActionLibrary.pm:742 msgid "&Go To..." msgstr "&Ga Naar..." #: lib/Padre/Wx/ActionLibrary.pm:743 msgid "Jump to a specific line number or character position" msgstr "Ga naar een specifieke lijnnummer of karakterpositie" #: lib/Padre/Wx/ActionLibrary.pm:753 msgid "&Next Problem" msgstr "&Volgend Probleem" #: lib/Padre/Wx/ActionLibrary.pm:754 msgid "Jump to the code that triggered the next error" msgstr "Ga naar de code dat de volgende fout veroorzaakte" #: lib/Padre/Wx/ActionLibrary.pm:764 msgid "&Quick Fix" msgstr "&Quick Fix" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "Apply one of the quick fixes for the current document" msgstr "Pas een quick fix toe voor het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:790 msgid "No suggestions" msgstr "Geen suggesties" #: lib/Padre/Wx/ActionLibrary.pm:819 msgid "&Autocomplete" msgstr "&Automatisch Vervolledigen" #: lib/Padre/Wx/ActionLibrary.pm:820 msgid "Offer completions to the current string. See Preferences" msgstr "Bied vervolledigingen aan voor de huidige string. Zie Voorkeuren" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "&Brace Matching" msgstr "&Overeenstemmende haken" #: lib/Padre/Wx/ActionLibrary.pm:831 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Ga naar het overeenstemmende openings- of sluitings- haakje: {, }, (, )" #: lib/Padre/Wx/ActionLibrary.pm:841 msgid "&Select to Matching Brace" msgstr "&Selecteeer tot Overeenstemmend Haakje" #: lib/Padre/Wx/ActionLibrary.pm:842 msgid "Select to the matching opening or closing brace" msgstr "Selecteer tot het overeenstemmende openings- of sluitings- haakje: {, }, (, )" #: lib/Padre/Wx/ActionLibrary.pm:853 msgid "&Join Lines" msgstr "&Voeg lijnen samen" #: lib/Padre/Wx/ActionLibrary.pm:854 msgid "Join the next line to the end of the current line." msgstr "Voeg de volgende lijn toe aan het einde van de huidige lijn." #: lib/Padre/Wx/ActionLibrary.pm:864 msgid "Special Value..." msgstr "Speciale Waarde:" #: lib/Padre/Wx/ActionLibrary.pm:865 msgid "Select a date, filename or other value and insert at the current location" msgstr "Selecteer een Datum, Bestandsnaam of een andere waarde en voeg dit in op de huidige locatie" #: lib/Padre/Wx/ActionLibrary.pm:877 msgid "Snippets..." msgstr "Uittreksels" #: lib/Padre/Wx/ActionLibrary.pm:878 msgid "Select and insert a snippet at the current location" msgstr "Selecteer en voeg een snippet in op de huidige locatie" #: lib/Padre/Wx/ActionLibrary.pm:889 msgid "File..." msgstr "Bestand..." #: lib/Padre/Wx/ActionLibrary.pm:890 msgid "Select a file and insert its content at the current location" msgstr "Selecteer een bestand en voer zijn inhoud in op de huidige locatie" #: lib/Padre/Wx/ActionLibrary.pm:902 msgid "&Toggle Comment" msgstr "Schakel &Commentaar om" #: lib/Padre/Wx/ActionLibrary.pm:903 msgid "Comment out or remove comment out of selected lines in the document" msgstr "Plaats in of uit commentaar de geselecteerde lijnen in het document" #: lib/Padre/Wx/ActionLibrary.pm:915 msgid "&Comment Selected Lines" msgstr "Lijnen in co&mmentaar zetten" #: lib/Padre/Wx/ActionLibrary.pm:916 msgid "Comment out selected lines in the document" msgstr "Geselecteerde lijnen in commentaar zetten" #: lib/Padre/Wx/ActionLibrary.pm:927 msgid "&Uncomment Selected Lines" msgstr "Lijnen &uit commentaar zetten" #: lib/Padre/Wx/ActionLibrary.pm:928 msgid "Remove comment out of selected lines in the document" msgstr "Verwijder commentaar uit de geselecteerde lijnen in het document" #: lib/Padre/Wx/ActionLibrary.pm:940 msgid "Encode Document to System Default" msgstr "Encodeer document volgens System Default" #: lib/Padre/Wx/ActionLibrary.pm:941 msgid "Change the encoding of the current document to the default of the operating system" msgstr "Wijzig de encodering van het huidige document naar de standaard van het besturingssysteem" #: lib/Padre/Wx/ActionLibrary.pm:951 msgid "Encode Document to utf-8" msgstr "Encodeer document als utf-8" #: lib/Padre/Wx/ActionLibrary.pm:952 msgid "Change the encoding of the current document to utf-8" msgstr "Wijzig de document-encodering naar utf-8" #: lib/Padre/Wx/ActionLibrary.pm:962 msgid "Encode Document to..." msgstr "Encodeer Document Als..." #: lib/Padre/Wx/ActionLibrary.pm:963 msgid "Select an encoding and encode the document to that" msgstr "Selecteer een encodering en converteer het document daar naar." #: lib/Padre/Wx/ActionLibrary.pm:973 msgid "EOL to Windows" msgstr "Regeleindes in Windows formaat" #: lib/Padre/Wx/ActionLibrary.pm:974 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "Verander het lijneinde karakter van het huidige document naar hetgeen gebruikt in MS Windows bestanden" #: lib/Padre/Wx/ActionLibrary.pm:983 msgid "EOL to Unix" msgstr "Regeleindes in Unix formaat" #: lib/Padre/Wx/ActionLibrary.pm:984 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "Verander het lijneinde karakter van het huidige document naar hetgeen gebruikt in Unix, Linux, Mac OSX" #: lib/Padre/Wx/ActionLibrary.pm:993 msgid "EOL to Mac Classic" msgstr "Regeleindes in Mac Classic formaat" #: lib/Padre/Wx/ActionLibrary.pm:994 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "Verander het lijneinde karakter van het huidige document naar hetgeen gebruikt in Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1005 msgid "Tabs to Spaces..." msgstr "Converteer Tabs naar Spaties" #: lib/Padre/Wx/ActionLibrary.pm:1006 msgid "Convert all tabs to spaces in the current document" msgstr "Converteer alle tabs naar spaties in het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:1015 msgid "Spaces to Tabs..." msgstr "Converteer Spaties naar Tabs" #: lib/Padre/Wx/ActionLibrary.pm:1016 msgid "Convert all the spaces to tabs in the current document" msgstr "Converteer alle spaties naar tabs in het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:1025 msgid "Delete Trailing Spaces" msgstr "Verwijder achterliggende spaties op het einde van de lijn" #: lib/Padre/Wx/ActionLibrary.pm:1026 msgid "Remove the spaces from the end of the selected lines" msgstr "Verwijder de spaties op het einde van de geselecteerde lijnen" #: lib/Padre/Wx/ActionLibrary.pm:1035 msgid "Delete Leading Spaces" msgstr "Verwijder voorliggende spaties aan het begin van de lijn" #: lib/Padre/Wx/ActionLibrary.pm:1036 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Verwijder de spaties in het begin van de geselecteerde lijnen" #: lib/Padre/Wx/ActionLibrary.pm:1047 msgid "Upper All" msgstr "Alles in hoofdletters" #: lib/Padre/Wx/ActionLibrary.pm:1048 msgid "Change the current selection to upper case" msgstr "Wijzig de huidige selectie naar hoofdletters" #: lib/Padre/Wx/ActionLibrary.pm:1058 msgid "Lower All" msgstr "Alles Kleine Letter" #: lib/Padre/Wx/ActionLibrary.pm:1059 msgid "Change the current selection to lower case" msgstr "Wijzig de huidige selectie naar kleine letters" #: lib/Padre/Wx/ActionLibrary.pm:1069 msgid "Diff to Saved Version" msgstr "Diff naar Opgeslagen Versie" #: lib/Padre/Wx/ActionLibrary.pm:1070 msgid "Compare the file in the editor to that on the disk and show the diff in the output window" msgstr "Vergelijk het bestand in de editor met op de schijf en toon de diff in het uitvoervenster" #: lib/Padre/Wx/ActionLibrary.pm:1079 msgid "Apply Diff to File" msgstr "Pas Diff toe op Bestand" #: lib/Padre/Wx/ActionLibrary.pm:1080 msgid "Apply a patch file to the current document" msgstr "Pas een patch bestand toe op het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:1089 msgid "Apply Diff to Project" msgstr "Pas Diff toe op Project" #: lib/Padre/Wx/ActionLibrary.pm:1090 msgid "Apply a patch file to the current project" msgstr "Pas een patch bestand toe op het huidige project" #: lib/Padre/Wx/ActionLibrary.pm:1101 msgid "Filter through External Tool..." msgstr "Filter m.b.v. externe tool" #: lib/Padre/Wx/ActionLibrary.pm:1102 msgid "Filters the selection (or the whole document) through any external command." msgstr "Filter de selectie (of het gehele document) d.m.v. een extern commando." #: lib/Padre/Wx/ActionLibrary.pm:1110 msgid "Filter through Perl" msgstr "Filter m.b.v. Perl" #: lib/Padre/Wx/ActionLibrary.pm:1111 msgid "Use Perl source as filter" msgstr "Gebruik een Perl bron als filter" #: lib/Padre/Wx/ActionLibrary.pm:1120 msgid "Show as Hexadecimal" msgstr "Toon als hexadecimaal" #: lib/Padre/Wx/ActionLibrary.pm:1121 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "Toon de ASCII waarden van de geselecteerde tekst in hexadecimale cijfers in het uitvoervenster" #: lib/Padre/Wx/ActionLibrary.pm:1130 msgid "Show as Decimal" msgstr "Toon als decimaal" #: lib/Padre/Wx/ActionLibrary.pm:1131 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "Toon de ASCII waarden van de geselecteerde tekst in decimale cijfers het uitvoervenster" #: lib/Padre/Wx/ActionLibrary.pm:1143 msgid "&Find..." msgstr "&Vind" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Find text or regular expressions using a traditional dialog" msgstr "Vind tekst of reguliere expressies d.m.v. een traditionele dialoog" #: lib/Padre/Wx/ActionLibrary.pm:1158 #: lib/Padre/Wx/ActionLibrary.pm:1214 #: lib/Padre/Wx/FBP/Find.pm:98 msgid "Find Next" msgstr "Vind volgende" #: lib/Padre/Wx/ActionLibrary.pm:1160 msgid "Repeat the last find to find the next match" msgstr "Herhaal de laatste zoekopdracht om het volgend overeenstemmende te vinden" #: lib/Padre/Wx/ActionLibrary.pm:1193 msgid "Failed to find any matches" msgstr "Niet geslaagd bij het vinden van overeenstemmingen" #: lib/Padre/Wx/ActionLibrary.pm:1201 msgid "&Find Previous" msgstr "Vind v&orige" #: lib/Padre/Wx/ActionLibrary.pm:1202 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Herhaal de laatste zoekopdracht terugwaarts om het vorig overeenstemmende te vinden" #: lib/Padre/Wx/ActionLibrary.pm:1215 msgid "Find next matching text using a toolbar-like dialog at the bottom of the editor" msgstr "Vind de volgende overeenstemmende tekst d.m.v. een taakbalk-dialoogvenster onderaan de editor" #: lib/Padre/Wx/ActionLibrary.pm:1225 msgid "Find Previous" msgstr "Vind vorige" #: lib/Padre/Wx/ActionLibrary.pm:1226 msgid "Find previous matching text using a toolbar-like dialog at the bottom of the editor" msgstr "Vind de vorig overeenstemmende tekst d.m.v. een taakbalk-dialoogvenster onderaan de editor" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "Vervang..." #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find a text and replace it" msgstr "Vind and vervang een tekst" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Find in Fi&les..." msgstr "Vind in &bestanden..." #: lib/Padre/Wx/ActionLibrary.pm:1252 msgid "Search for a text in all files below a given directory" msgstr "Vind een tekst in alle bestanden onder een een bepaalde map" #: lib/Padre/Wx/ActionLibrary.pm:1265 msgid "Open Resource..." msgstr "Bron Openen" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Type in a filter to select a file" msgstr "Voer een filter in voor het selecteren van een bestand" #: lib/Padre/Wx/ActionLibrary.pm:1276 msgid "Quick Menu Access..." msgstr "Snelmenu Toegang" #: lib/Padre/Wx/ActionLibrary.pm:1277 msgid "Quick access to all menu functions" msgstr "Snel toegang tot alle menu functies" #: lib/Padre/Wx/ActionLibrary.pm:1292 msgid "Lock User Interface" msgstr "Beveilig Gebruikers Interface" #: lib/Padre/Wx/ActionLibrary.pm:1293 msgid "If activated, do not allow moving around some of the windows" msgstr "Indien geactiveerd, sta de gebruiker niet toe om bepaalde vensters te verplaatsen" #: lib/Padre/Wx/ActionLibrary.pm:1304 msgid "Show Output" msgstr "Toon uitvoer" #: lib/Padre/Wx/ActionLibrary.pm:1305 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "Toon het venster met de standaard uitvoer en standaard fout van de draaiende scripts" #: lib/Padre/Wx/ActionLibrary.pm:1314 msgid "Show Functions" msgstr "Toon Functies" #: lib/Padre/Wx/ActionLibrary.pm:1315 msgid "Show a window listing all the functions in the current document" msgstr "Toon een venster met een complete functie-lijst van het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:1324 msgid "Show Command Line window" msgstr "Toon het Commando-lijn venster" #: lib/Padre/Wx/ActionLibrary.pm:1325 msgid "Show the command line window" msgstr "Toon het Commando-lijn venster" #: lib/Padre/Wx/ActionLibrary.pm:1334 msgid "Show To-do List" msgstr "Toon Takenlijst" #: lib/Padre/Wx/ActionLibrary.pm:1335 msgid "Show a window listing all todo items in the current document" msgstr "Toon een venster met alle taken in het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:1344 msgid "Show Outline" msgstr "Toon Uitlijning" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "Toon een venster met een complete onderdelenlijst van het huidige bestand (functies, pragma's, modules)" #: lib/Padre/Wx/ActionLibrary.pm:1354 msgid "Show Project Browser/Tree" msgstr "Toon Project Verkenner/Mapstructuur" #: lib/Padre/Wx/ActionLibrary.pm:1355 msgid "Project Browser - Was known as the Directory Tree." msgstr "Project Verkenner - Was gekend as Mappen Boomstructuur" #: lib/Padre/Wx/ActionLibrary.pm:1364 msgid "Show Syntax Check" msgstr "Toon Syntax Controle" #: lib/Padre/Wx/ActionLibrary.pm:1365 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "Schakel syntax controle van het huidige document in en toon uitvoer in een venster" #: lib/Padre/Wx/ActionLibrary.pm:1374 msgid "Hide Find in Files" msgstr "Verberg Vind in Bestanden" #: lib/Padre/Wx/ActionLibrary.pm:1375 msgid "Hide the list of matches for a Find in Files search" msgstr "Vestop de lijst gevonden resultaten voor Zoeken in Bestanden" #: lib/Padre/Wx/ActionLibrary.pm:1383 msgid "Show Status Bar" msgstr "Toon Statusbalk" #: lib/Padre/Wx/ActionLibrary.pm:1384 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Toon/verberg de statusbalk aan de onderkant van het scherm" #: lib/Padre/Wx/ActionLibrary.pm:1393 msgid "Show Toolbar" msgstr "Toon Werkbalk" #: lib/Padre/Wx/ActionLibrary.pm:1394 msgid "Show/hide the toolbar at the top of the editor" msgstr "Toon/Verberg de taakbalk bovenaan de editor" #: lib/Padre/Wx/ActionLibrary.pm:1409 msgid "Switch document type" msgstr "Schakel document type" #: lib/Padre/Wx/ActionLibrary.pm:1422 msgid "Show Line Numbers" msgstr "Toon lijnnummers" #: lib/Padre/Wx/ActionLibrary.pm:1423 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "Toon/verberg de lijnnummers van alle documenten op de linkerzijde van het venster" #: lib/Padre/Wx/ActionLibrary.pm:1432 msgid "Show Code Folding" msgstr "Toon Code Opvouwing" #: lib/Padre/Wx/ActionLibrary.pm:1433 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "Toon/verberg een verticale lijn op de linkerkant van het venster om het vouwen van rijen mogelijk te maken" #: lib/Padre/Wx/ActionLibrary.pm:1442 msgid "Fold all" msgstr "Vouw alles samen" #: lib/Padre/Wx/ActionLibrary.pm:1443 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "Vouw alle opvouwbare blokken op (vouwen moet geactiveerd zijn)" #: lib/Padre/Wx/ActionLibrary.pm:1452 msgid "Unfold all" msgstr "Vouw alles uit" #: lib/Padre/Wx/ActionLibrary.pm:1453 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "Plooi alle opvouwbare blokken open (vouwen moet geactiveerd zijn)" #: lib/Padre/Wx/ActionLibrary.pm:1462 msgid "Show Call Tips" msgstr "Toon oproep tips" #: lib/Padre/Wx/ActionLibrary.pm:1463 msgid "When typing in functions allow showing short examples of the function" msgstr "Tijdens het intypen van functies maak het tonen van korte functie voorbeelden mogelijk" #: lib/Padre/Wx/ActionLibrary.pm:2442 msgid "Last Visited File" msgstr "Laatst Geopend Bestand" #: lib/Padre/Wx/ActionLibrary.pm:2443 msgid "Jump between the two last visited files back and forth" msgstr "Spring heen en terug tussen de twee laatst gebruikte bestanden" #: lib/Padre/Wx/ActionLibrary.pm:2453 msgid "Goto previous position" msgstr "Ga naar de vorige positie" #: lib/Padre/Wx/ActionLibrary.pm:2454 msgid "Jump to the last position saved in memory" msgstr "Spring naar de laatste positie in het geheugen bewaard" #: lib/Padre/Wx/ActionLibrary.pm:2466 #: lib/Padre/Wx/Dialog/Positions.pm:108 msgid "Show previous positions" msgstr "Toon vorige posities" #: lib/Padre/Wx/ActionLibrary.pm:2467 msgid "Show the list of positions recently visited" msgstr "Tool lijst van recent bezochte posities" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Right Click" msgstr "Rechterklik" #: lib/Padre/Wx/ActionLibrary.pm:2481 msgid "Imitate clicking on the right mouse button" msgstr "Boots een rechtermuisklik na" #: lib/Padre/Wx/ActionLibrary.pm:2494 msgid "Go to Functions Window" msgstr "Ga Naar Functiesvenster" #: lib/Padre/Wx/ActionLibrary.pm:2495 msgid "Set the focus to the \"Functions\" window" msgstr "Zet de focus op het functies-venster" #: lib/Padre/Wx/ActionLibrary.pm:2508 msgid "Go to Todo Window" msgstr "Ga Naar TakenVenster" #: lib/Padre/Wx/ActionLibrary.pm:2509 msgid "Set the focus to the \"Todo\" window" msgstr "Zet de focus op het Takenvenster" #: lib/Padre/Wx/ActionLibrary.pm:2520 msgid "Go to Outline Window" msgstr "Ga Naar Uitlijningsvenster" #: lib/Padre/Wx/ActionLibrary.pm:2521 msgid "Set the focus to the \"Outline\" window" msgstr "Zet de focus op het uitlijningsvenster" #: lib/Padre/Wx/ActionLibrary.pm:2531 msgid "Go to Output Window" msgstr "Ga Naar Uitvoervenster" #: lib/Padre/Wx/ActionLibrary.pm:2532 msgid "Set the focus to the \"Output\" window" msgstr "Zet de focus op het uitvoervenster" #: lib/Padre/Wx/ActionLibrary.pm:2542 msgid "Go to Syntax Check Window" msgstr "Ga Naar Syntax Controle Venster" #: lib/Padre/Wx/ActionLibrary.pm:2543 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Zet de focus op de syntax controle venster" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Go to Command Line Window" msgstr "Ga naar commando-lijn venster" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Set the focus to the \"Command Line\" window" msgstr "Zet de focus op het Commando-lijn venster" #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Go to Main Window" msgstr "Ga Naar Hoofdvenster" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Set the focus to the main editor window" msgstr "Zet de focus op het hoofd editor venster" #: lib/Padre/Wx/ActionLibrary.pm:2579 msgid "Show the Padre help" msgstr "Toon de Padre Hulp" #: lib/Padre/Wx/ActionLibrary.pm:2587 msgid "Search Help" msgstr "Hulp Doorzoeken" #: lib/Padre/Wx/ActionLibrary.pm:2588 msgid "Search the Perl help pages (perldoc)" msgstr "Doorzoek de Perl helpteksten (perldoc)" #: lib/Padre/Wx/ActionLibrary.pm:2599 msgid "Context Help" msgstr "Contextuele Hulp" #: lib/Padre/Wx/ActionLibrary.pm:2600 msgid "Show the help article for the current context" msgstr "Toon het hulpartikel voor de huidige context" #: lib/Padre/Wx/ActionLibrary.pm:2612 msgid "Current Document" msgstr "Huidig Document" #: lib/Padre/Wx/ActionLibrary.pm:2613 msgid "Show the POD (Perldoc) version of the current document" msgstr "Toon de POD (Perldoc) versie van het huidige document" #: lib/Padre/Wx/ActionLibrary.pm:2623 msgid "Padre Support (English)" msgstr "Padre Ondersteuning (Engels)" #: lib/Padre/Wx/ActionLibrary.pm:2625 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "Open de Padre live support in de standaard web browser en chat met anderen die je kunnen helpen met je probleem" #: lib/Padre/Wx/ActionLibrary.pm:2635 msgid "Perl Help" msgstr "Perl Help (Engels)" #: lib/Padre/Wx/ActionLibrary.pm:2637 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "Open de Perl live support in de standaard web browser en chat met anderen die je kunnen helpen met je probleem" #: lib/Padre/Wx/ActionLibrary.pm:2647 msgid "Win32 Questions (English)" msgstr "Win32 Vragen (Engels)" #: lib/Padre/Wx/ActionLibrary.pm:2649 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "Open de Perl/Win32 live support in de standaard web browser en chat met anderen die je kunnen helpen met je probleem" #: lib/Padre/Wx/ActionLibrary.pm:2661 msgid "Visit the PerlMonks" msgstr "Bezoek de PerlMonniken" #: lib/Padre/Wx/ActionLibrary.pm:2663 msgid "Open perlmonks.org, one of the biggest Perl community sites, in your default web browser" msgstr "Open perlmonks.org, een van de grootste Perl community sites, in je standaard webbrowser" #: lib/Padre/Wx/ActionLibrary.pm:2673 msgid "Report a New &Bug" msgstr "Rapporteer een &Nieuwe Bug" #: lib/Padre/Wx/ActionLibrary.pm:2674 msgid "Send a bug report to the Padre developer team" msgstr "Zend een bug rapport naar het Padre ontwikkelaarsteam" #: lib/Padre/Wx/ActionLibrary.pm:2681 msgid "View All &Open Bugs" msgstr "Bekijk Alle &Openstaande Bugs" #: lib/Padre/Wx/ActionLibrary.pm:2682 msgid "View all known and currently unsolved bugs in Padre" msgstr "Zie alle gekende en momenteel niet opgeloste bugs in Padre" #: lib/Padre/Wx/ActionLibrary.pm:2690 msgid "&Translate Padre..." msgstr "Ver&taal Padre..." #: lib/Padre/Wx/ActionLibrary.pm:2691 msgid "Help by translating Padre to your local language" msgstr "Help door het vertalen van Padre naar je lokale taal" #: lib/Padre/Wx/ActionLibrary.pm:2702 msgid "&About" msgstr "&Betreft" #: lib/Padre/Wx/ActionLibrary.pm:2703 msgid "Show information about Padre" msgstr "Toon informatie over Padre" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Bericht" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Niet bekende fout van" #: lib/Padre/Wx/Dialog/Sync.pm:43 #: lib/Padre/Wx/FBP/Sync.pm:25 msgid "Padre Sync" msgstr "Padre Synchronisatie" #: lib/Padre/Wx/Dialog/Sync.pm:468 #: lib/Padre/Wx/Dialog/Sync2.pm:88 msgid "Please input a valid value for both username and password" msgstr "Vul een geldige waarde a.u.b. voor zowel gebruikersnaam en wachtwoord" #: lib/Padre/Wx/Dialog/Sync.pm:516 #: lib/Padre/Wx/Dialog/Sync2.pm:131 msgid "Please ensure all inputs have appropriate values." msgstr "Controleer a.u.b. dat alle input geldige waarden heeft." #: lib/Padre/Wx/Dialog/Sync.pm:527 #: lib/Padre/Wx/Dialog/Sync2.pm:142 msgid "Password and confirmation do not match." msgstr "Wachtwoord en bevestiging komen niet overeen." #: lib/Padre/Wx/Dialog/Sync.pm:537 #: lib/Padre/Wx/Dialog/Sync2.pm:152 msgid "Email and confirmation do not match." msgstr "E-mail en bevestiging komen niet overeen." #: lib/Padre/Wx/Dialog/SessionManager.pm:38 msgid "Session Manager" msgstr "Sessie Manager" #: lib/Padre/Wx/Dialog/SessionManager.pm:215 msgid "List of sessions" msgstr "Sessie Lijst" #: lib/Padre/Wx/Dialog/SessionManager.pm:227 #: lib/Padre/Wx/Dialog/SpecialValues.pm:25 #: lib/Padre/Wx/Dialog/PluginManager.pm:66 msgid "Name" msgstr "Naam" #: lib/Padre/Wx/Dialog/SessionManager.pm:228 msgid "Description" msgstr "Omschrijving" #: lib/Padre/Wx/Dialog/SessionManager.pm:229 msgid "Last update" msgstr "Laatste update" #: lib/Padre/Wx/Dialog/SessionManager.pm:261 msgid "Save session automatically" msgstr "Sessie automatisch opslaan" #: lib/Padre/Wx/Dialog/SessionManager.pm:291 msgid "Open" msgstr "Openen" #: lib/Padre/Wx/Dialog/SessionManager.pm:292 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 #: lib/Padre/Wx/FBP/Sync.pm:233 msgid "Delete" msgstr "Verwijderen" #: lib/Padre/Wx/Dialog/SessionManager.pm:293 #: lib/Padre/Wx/Dialog/SessionSave.pm:230 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:280 #: lib/Padre/Wx/FBP/Sync.pm:248 #: lib/Padre/Wx/Menu/File.pm:140 msgid "Close" msgstr "Sluit" #: lib/Padre/Wx/Dialog/Warning.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Shortcut.pm:32 msgid "A Dialog" msgstr "Een Dialoog" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Cf. http://padre.perlide.org/ voor update informatie" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "Toon dit niet opnieuw" #: lib/Padre/Wx/Dialog/WizardSelector.pm:47 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:18 msgid "Wizard Selector" msgstr "Assistentkiezer" #: lib/Padre/Wx/Dialog/WizardSelector.pm:86 msgid "&Back" msgstr "&Terug" #: lib/Padre/Wx/Dialog/WizardSelector.pm:87 #: lib/Padre/Wx/Dialog/Search.pm:172 msgid "&Next" msgstr "V&olgende" #: lib/Padre/Wx/Dialog/WizardSelector.pm:88 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/Preferences.pm:939 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:155 #: lib/Padre/Wx/Dialog/OpenResource.pm:184 msgid "&Cancel" msgstr "&Annuleren" #: lib/Padre/Wx/Dialog/WizardSelector.pm:174 #, perl-format msgid "%s has no constructor" msgstr "%s heeft geen constructor" #: lib/Padre/Wx/Dialog/FindInFiles.pm:63 msgid "Select Directory" msgstr "Selecteer map" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Label Een" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Tweede Label" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Wat dan ook" #: lib/Padre/Wx/Dialog/ModuleStart.pm:16 #: lib/Padre/Wx/Dialog/ModuleStart.pm:36 msgid "Apache License" msgstr "Apache Licentie" #: lib/Padre/Wx/Dialog/ModuleStart.pm:17 #: lib/Padre/Wx/Dialog/ModuleStart.pm:37 msgid "Artistic License 1.0" msgstr "Artistieke Licentie 1.0" #: lib/Padre/Wx/Dialog/ModuleStart.pm:18 #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "Artistic License 2.0" msgstr "Artistieke Licentie 2.0" #: lib/Padre/Wx/Dialog/ModuleStart.pm:19 #: lib/Padre/Wx/Dialog/ModuleStart.pm:39 msgid "Revised BSD License" msgstr "Gereviseerde BSD Licentie" #: lib/Padre/Wx/Dialog/ModuleStart.pm:20 #: lib/Padre/Wx/Dialog/ModuleStart.pm:40 msgid "GPL 2 or later" msgstr "GPL 2 of later" #: lib/Padre/Wx/Dialog/ModuleStart.pm:21 #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "LGPL 2.1 or later" msgstr "LGPL 2.1 of later" #: lib/Padre/Wx/Dialog/ModuleStart.pm:22 #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "MIT License" msgstr "MIT Licentie" #: lib/Padre/Wx/Dialog/ModuleStart.pm:23 #: lib/Padre/Wx/Dialog/ModuleStart.pm:43 msgid "Mozilla Public License" msgstr "Mozilla Publieke Licentie" #: lib/Padre/Wx/Dialog/ModuleStart.pm:24 #: lib/Padre/Wx/Dialog/ModuleStart.pm:44 msgid "Open Source" msgstr "Open Source" #: lib/Padre/Wx/Dialog/ModuleStart.pm:25 #: lib/Padre/Wx/Dialog/ModuleStart.pm:45 #: lib/Padre/Wx/Dialog/ModuleStart.pm:113 msgid "Perl licensing terms" msgstr "Perl licentie voorwaarden" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 #: lib/Padre/Wx/Dialog/ModuleStart.pm:46 msgid "restrictive" msgstr "restrictief" #: lib/Padre/Wx/Dialog/ModuleStart.pm:27 #: lib/Padre/Wx/Dialog/ModuleStart.pm:47 msgid "unrestricted" msgstr "onbeperkt" #: lib/Padre/Wx/Dialog/ModuleStart.pm:55 msgid "Module Name:" msgstr "Module-naam:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:58 msgid "Author:" msgstr "Auteur:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:61 msgid "Email Address:" msgstr "E-mail:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:64 msgid "Builder:" msgstr "Genereerder" #: lib/Padre/Wx/Dialog/ModuleStart.pm:67 msgid "License:" msgstr "Licentie:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:70 msgid "Parent Directory:" msgstr "Bovenliggende map:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:71 msgid "Pick parent directory" msgstr "Selecteer bovenliggende map." #: lib/Padre/Wx/Dialog/ModuleStart.pm:97 msgid "Module Start" msgstr "Module Start" #: lib/Padre/Wx/Dialog/ModuleStart.pm:147 #, perl-format msgid "Field %s was missing. Module not created." msgstr "Ontbrekend veld %s. Module niet gegenereerd." #: lib/Padre/Wx/Dialog/ModuleStart.pm:148 msgid "missing field" msgstr "ontbrekend veld" #: lib/Padre/Wx/Dialog/ModuleStart.pm:182 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" "Een fout is opgetreden tijdens het genereren van '%s':\n" "%s" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "Open URL" #: lib/Padre/Wx/Dialog/OpenURL.pm:62 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 #: lib/Padre/Wx/Dialog/OpenResource.pm:178 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "bvb." #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Booleaans" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Positieve Integer" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Integer" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "String" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Bestand/Map" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Geavanceerde instellingen" #: lib/Padre/Wx/Dialog/Advanced.pm:97 #: lib/Padre/Wx/Dialog/KeyBindings.pm:64 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:26 msgid "&Filter:" msgstr "&Filter:" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Instellingsnaam" #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/Dialog/PluginManager.pm:68 #: lib/Padre/Wx/FBP/Sync.pm:48 #: lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 msgid "Status" msgstr "Status" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Type" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Kopiëren" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Kopiëer Naam" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Kopiëer Waarde" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Waarde:" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Waar" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Negatief" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Standaard waarde:" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Opties:" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/Preferences.pm:165 #: lib/Padre/Wx/Dialog/SessionSave.pm:209 msgid "Description:" msgstr "Omschrijving:" #: lib/Padre/Wx/Dialog/Advanced.pm:172 #: lib/Padre/Wx/Dialog/KeyBindings.pm:120 msgid "&Set" msgstr "Stel in" #: lib/Padre/Wx/Dialog/Advanced.pm:178 #: lib/Padre/Wx/Dialog/KeyBindings.pm:132 msgid "&Reset" msgstr "Terugstellen" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "Opslaan" #: lib/Padre/Wx/Dialog/Advanced.pm:430 #: lib/Padre/Wx/Dialog/Preferences.pm:805 msgid "Default" msgstr "Standaard" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "User" msgstr "Gebruiker" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "Host" msgstr "Gastheer" #: lib/Padre/Wx/Dialog/Replace.pm:50 msgid "Find and Replace" msgstr "Vind and Vervang" #: lib/Padre/Wx/Dialog/Replace.pm:80 msgid "Case &sensitive" msgstr "Hoofdlettergevoelig" #: lib/Padre/Wx/Dialog/Replace.pm:94 msgid "Regular &Expression" msgstr "Reguliere &Expressie" #: lib/Padre/Wx/Dialog/Replace.pm:108 msgid "Close Window on &Hit" msgstr "Venster sluiten wanneer &gevonden." #: lib/Padre/Wx/Dialog/Replace.pm:122 msgid "Search &Backwards" msgstr "&Terugwaarts zoeken" #: lib/Padre/Wx/Dialog/Replace.pm:136 msgid "Replace &All" msgstr "Vervang &Alles" #: lib/Padre/Wx/Dialog/Replace.pm:150 msgid "&Find" msgstr "&Vind" #: lib/Padre/Wx/Dialog/Replace.pm:170 msgid "&Replace" msgstr "&Vervangen" #: lib/Padre/Wx/Dialog/Replace.pm:218 #: lib/Padre/Wx/FBP/FindInFiles.pm:125 #: lib/Padre/Wx/FBP/Find.pm:27 msgid "Find" msgstr "Vind" #: lib/Padre/Wx/Dialog/Replace.pm:226 msgid "Find Text:" msgstr "Vind Tekst:" #: lib/Padre/Wx/Dialog/Replace.pm:250 msgid "Replace" msgstr "Vervangen" #: lib/Padre/Wx/Dialog/Replace.pm:258 msgid "Replace Text:" msgstr "Vervang Tekst:" #: lib/Padre/Wx/Dialog/Replace.pm:304 msgid "Options" msgstr "Opties" #: lib/Padre/Wx/Dialog/Replace.pm:537 #: lib/Padre/Wx/Dialog/Replace.pm:586 #: lib/Padre/Wx/Dialog/Find.pm:75 #, perl-format msgid "No matches found for \"%s\"." msgstr "Geen overeenstemmingen gevonden voor \"%s\"." #: lib/Padre/Wx/Dialog/Replace.pm:538 #: lib/Padre/Wx/Dialog/Replace.pm:582 #: lib/Padre/Wx/Dialog/Replace.pm:587 msgid "Search and Replace" msgstr "Zoek en Vervang" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d match" msgstr "Verving %d overeenstemming" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d matches" msgstr "%d overeenstemmingen vervangen" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Selecteer Functie" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" "Selecteer voor welke subroutine de nieuwe subroutine dient\n" "ingevoegd te worden" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Functie" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 #: lib/Padre/Wx/Menu/Edit.pm:49 msgid "Select" msgstr "Selecteer" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 #: lib/Padre/Wx/FBP/FindInFiles.pm:132 #: lib/Padre/Wx/FBP/Find.pm:119 msgid "Cancel" msgstr "Annuleren" #: lib/Padre/Wx/Dialog/KeyBindings.pm:29 msgid "Key Bindings" msgstr "Key Bindings" #: lib/Padre/Wx/Dialog/KeyBindings.pm:86 msgid "Sh&ortcut:" msgstr "Snelkoppeling:" #: lib/Padre/Wx/Dialog/KeyBindings.pm:89 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/Dialog/KeyBindings.pm:90 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/KeyBindings.pm:91 msgid "Shift" msgstr "Shift" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "None" msgstr "Geen" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Backspace" msgstr "Backspace" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Tab" msgstr "Tab" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Space" msgstr "Space" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Up" msgstr "Pijl boven" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Down" msgstr "Pijl onder" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Left" msgstr "Pijl links" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Right" msgstr "Pijl rechts" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 #: lib/Padre/Wx/Dialog/RegexEditor.pm:233 #: lib/Padre/Wx/Menu/Edit.pm:121 msgid "Insert" msgstr "Invoegen" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Home" msgstr "Home" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "End" msgstr "End" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageUp" msgstr "PageUp" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageDown" msgstr "PageUp" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Enter" msgstr "Enter" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/KeyBindings.pm:126 msgid "&Delete" msgstr "&Verwijderen" #: lib/Padre/Wx/Dialog/KeyBindings.pm:134 msgid "Reset to default shortcut" msgstr "Zet terug op standaard toetsenbord combinatie" #: lib/Padre/Wx/Dialog/KeyBindings.pm:388 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "De toestenbord combinatie '%s' is reeds in gebruik door de actie '%s'.\n" #: lib/Padre/Wx/Dialog/KeyBindings.pm:391 msgid "Do you want to override it with the selected action?" msgstr "Wilt u het overschrijven met de geselecteerd actie?" #: lib/Padre/Wx/Dialog/KeyBindings.pm:392 msgid "Override Shortcut" msgstr "Snelkoppeling overschrijven" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Actie:%s" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Snelkoppeling" #: lib/Padre/Wx/Dialog/Search.pm:135 msgid "Find:" msgstr "Vind:" #: lib/Padre/Wx/Dialog/Search.pm:154 msgid "Previ&ous" msgstr "&Vorige" #: lib/Padre/Wx/Dialog/Search.pm:180 msgid "Case &insensitive" msgstr "Niet-hoofdlettergevoelig, Negeer hoofd-/kleine letters" #: lib/Padre/Wx/Dialog/Search.pm:184 msgid "Use rege&x" msgstr "Maak gebruik van reguliere e&xpressies" #: lib/Padre/Wx/Dialog/DocStats.pm:39 msgid "Filename" msgstr "Bestandsnaam" #: lib/Padre/Wx/Dialog/DocStats.pm:40 msgid "Selection" msgstr "Selectie" #: lib/Padre/Wx/Dialog/DocStats.pm:60 msgid "&Update" msgstr "Update" #: lib/Padre/Wx/Dialog/DocStats.pm:98 msgid "Lines" msgstr "Lijnen" #: lib/Padre/Wx/Dialog/DocStats.pm:102 msgid "Words" msgstr "Woorden" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "Karakters (inclusief witspaties)" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "Niet-witspatie karakters" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "Kilobytes (kB)" #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "Kibibytes (kiB)" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "Line break modus" #: lib/Padre/Wx/Dialog/DocStats.pm:131 msgid "Encoding" msgstr "Encodering" #: lib/Padre/Wx/Dialog/DocStats.pm:133 msgid "Document type" msgstr "Document type" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "geen" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "There are no positions saved yet" msgstr "Er zijn nog geen posities bewaard" #: lib/Padre/Wx/Dialog/Positions.pm:124 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Regel: %s Bestand: %s - %s" #: lib/Padre/Wx/Dialog/SpecialValues.pm:15 msgid "Date/Time" msgstr "Datum/Tijd" #: lib/Padre/Wx/Dialog/SpecialValues.pm:16 msgid "Now" msgstr "Nu" #: lib/Padre/Wx/Dialog/SpecialValues.pm:17 msgid "Today" msgstr "Vandaag" #: lib/Padre/Wx/Dialog/SpecialValues.pm:18 msgid "Year" msgstr "Jaar" #: lib/Padre/Wx/Dialog/SpecialValues.pm:19 msgid "Epoch" msgstr "Epoch" #: lib/Padre/Wx/Dialog/SpecialValues.pm:21 #: lib/Padre/Wx/Dialog/WindowList.pm:224 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 msgid "File" msgstr "Bestand" #: lib/Padre/Wx/Dialog/SpecialValues.pm:22 msgid "Size" msgstr "Grootte" #: lib/Padre/Wx/Dialog/SpecialValues.pm:30 msgid "Number of lines" msgstr "Aantal lijnen" #: lib/Padre/Wx/Dialog/SpecialValues.pm:46 #: lib/Padre/Wx/Dialog/Snippets.pm:22 msgid "Class:" msgstr "Klasse:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:47 msgid "Special Value:" msgstr "Speciale Waarde:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:50 #: lib/Padre/Wx/Dialog/Snippets.pm:24 msgid "&Insert" msgstr "&Invoegen" #: lib/Padre/Wx/Dialog/SpecialValues.pm:63 msgid "Insert Special Values" msgstr "Voeg Speciale Waarden in" #: lib/Padre/Wx/Dialog/Preferences.pm:18 msgid "Local/Remote File Access" msgstr "Lokale/Afstandelijke BestandsToegang" #: lib/Padre/Wx/Dialog/Preferences.pm:19 msgid "Perl Auto Complete" msgstr "Perl Automatisch Vervolledigen" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "Enable bookmarks" msgstr "Markeringen beschikbaar maken:" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "Change font size" msgstr "Wijzig lettergrootte" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enable session manager" msgstr "Sessie Manager beschikbaar maken" #: lib/Padre/Wx/Dialog/Preferences.pm:86 msgid "Diff tool:" msgstr "Diff tool:" #: lib/Padre/Wx/Dialog/Preferences.pm:88 #: lib/Padre/Wx/Dialog/Preferences.pm:92 msgid "Browse..." msgstr "Bladeren..." #: lib/Padre/Wx/Dialog/Preferences.pm:90 msgid "Perl ctags file:" msgstr "Perl ctags bestand:" #: lib/Padre/Wx/Dialog/Preferences.pm:159 msgid "File type:" msgstr "Bestandstype" #: lib/Padre/Wx/Dialog/Preferences.pm:162 msgid "Highlighter:" msgstr "Markeerder:" #: lib/Padre/Wx/Dialog/Preferences.pm:168 msgid "Content type:" msgstr "Inhoud type: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:260 msgid "Automatic indentation style detection" msgstr "Automatische insprong stijl detectie" #: lib/Padre/Wx/Dialog/Preferences.pm:264 msgid "Use Tabs" msgstr "Gebruik Tabs" #: lib/Padre/Wx/Dialog/Preferences.pm:267 msgid "Tab display size (in spaces):" msgstr "TAB beeldbreedte (in spaties)" #: lib/Padre/Wx/Dialog/Preferences.pm:270 msgid "Indentation width (in columns):" msgstr "Insprong breedte (in kolommen)" #: lib/Padre/Wx/Dialog/Preferences.pm:273 msgid "Guess from current document:" msgstr "Gok gebaseerd op huidig document" #: lib/Padre/Wx/Dialog/Preferences.pm:274 msgid "Guess" msgstr "Raad" #: lib/Padre/Wx/Dialog/Preferences.pm:276 msgid "Autoindent:" msgstr "Automatische insprong:" #: lib/Padre/Wx/Dialog/Preferences.pm:300 msgid "Default word wrap on for each file" msgstr "Automatisch naar volgende lijn voor elk bestand" #: lib/Padre/Wx/Dialog/Preferences.pm:305 msgid "Use panel order for Ctrl-Tab (not usage history)" msgstr "Gebruik de paneel volgorde voor Ctrl-Tab (niet de gebruikshistoriek)" #: lib/Padre/Wx/Dialog/Preferences.pm:312 msgid "Clean up file content on saving (for supported document types)" msgstr "Opkuisen bestandsinhoud bij het opslaan (voor ondersteunde document types)" #: lib/Padre/Wx/Dialog/Preferences.pm:317 msgid "Auto-fold POD markup when code folding enabled" msgstr "Automatisch dichtvouwen POD markering wanneer code vouwen geactiveerd is" #: lib/Padre/Wx/Dialog/Preferences.pm:322 msgid "Perl beginner mode" msgstr "Perl beginner modus" #: lib/Padre/Wx/Dialog/Preferences.pm:326 msgid "Open files:" msgstr "Geopende bestanden:" #: lib/Padre/Wx/Dialog/Preferences.pm:329 msgid "Default projects directory:" msgstr "Standaar project map:" #: lib/Padre/Wx/Dialog/Preferences.pm:331 msgid "Choose the default projects directory" msgstr "Kies de standaard project map" #: lib/Padre/Wx/Dialog/Preferences.pm:335 msgid "Open files in existing Padre" msgstr "Open bestanden in bestaande Padre" #: lib/Padre/Wx/Dialog/Preferences.pm:339 msgid "Methods order:" msgstr "Methoden volgorde" #: lib/Padre/Wx/Dialog/Preferences.pm:342 msgid "Preferred language for error diagnostics:" msgstr "Voorkeurstaal voor fout diagnostieken" #: lib/Padre/Wx/Dialog/Preferences.pm:345 msgid "Default line ending:" msgstr "Standaard lijn einde:" #: lib/Padre/Wx/Dialog/Preferences.pm:348 msgid "Check for file updates on disk every (seconds):" msgstr "Controleer voor nieuwe bestandsversie alle (seconden):" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Cursor Blink Rate (milliseconds - 0 = blink off; 500 = default):" msgstr "Knippersnelheid cursos (milliseconden - 0 = niet knipperen; 500 = standaard):" #: lib/Padre/Wx/Dialog/Preferences.pm:360 msgid "Autocomplete brackets" msgstr "Automatisch vervolledigen haakjes" #: lib/Padre/Wx/Dialog/Preferences.pm:368 msgid "Add another closing bracket if there is already one (and the 'Autocomplete brackets' above is enabled)" msgstr "Voeg een sluitend haakje toe als er al een is (en de functie 'Automatische haakjes' geactiveerd is)" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Enable Smart highlighting while typing" msgstr "Schakel Intelligent markeren tijdens het typen" #: lib/Padre/Wx/Dialog/Preferences.pm:383 msgid "Shorten the common path in window list" msgstr "Het gemeenschappelijk pad afkorten in venster lijst" #: lib/Padre/Wx/Dialog/Preferences.pm:390 msgid "Use X11 middle button paste style" msgstr "Gebruik de X11 middel knop plak stijl" #: lib/Padre/Wx/Dialog/Preferences.pm:394 msgid "RegExp for TODO-panel:" msgstr "RegExp voor het Taken-paneel:" #: lib/Padre/Wx/Dialog/Preferences.pm:400 msgid "Use Splash Screen" msgstr "Maak gebruik van het Splash Screen" #: lib/Padre/Wx/Dialog/Preferences.pm:437 msgid "Project name" msgstr "Project naam" #: lib/Padre/Wx/Dialog/Preferences.pm:438 msgid "Padre version" msgstr "Padre versie" #: lib/Padre/Wx/Dialog/Preferences.pm:439 msgid "Current filename" msgstr "Huidige bestandsnaam" #: lib/Padre/Wx/Dialog/Preferences.pm:440 msgid "Current file's dirname" msgstr "Map naam van het huidig bestand" #: lib/Padre/Wx/Dialog/Preferences.pm:441 msgid "Current file's basename" msgstr "Huidige bestands basisnaam" #: lib/Padre/Wx/Dialog/Preferences.pm:442 msgid "Current filename relative to project" msgstr "Huidig bestandsnaam relatief tot het project" #: lib/Padre/Wx/Dialog/Preferences.pm:463 msgid "Window title:" msgstr "Venstertitel:" #: lib/Padre/Wx/Dialog/Preferences.pm:470 msgid "Colored text in output window (ANSI)" msgstr "Gekleurde tekst in het uitvoervenster (ANSI): " #: lib/Padre/Wx/Dialog/Preferences.pm:475 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "Toon info berichten met lage prioriteit in de statusbalk (niet in een popup)" #: lib/Padre/Wx/Dialog/Preferences.pm:480 msgid "Show right margin at column:" msgstr "Toon rechtermarge op kolom:" #: lib/Padre/Wx/Dialog/Preferences.pm:484 msgid "Editor Font:" msgstr "Tekstverwerker Font" #: lib/Padre/Wx/Dialog/Preferences.pm:487 msgid "Editor Current Line Background Colour:" msgstr "Tekstverwerker Achtergrondkleur Huidige Lijn" #: lib/Padre/Wx/Dialog/Preferences.pm:550 msgid "Settings Demo" msgstr "Demo instellingen" #: lib/Padre/Wx/Dialog/Preferences.pm:559 msgid "Any changes to these options require a restart:" msgstr "Elke wijziging aan deze opties vereist een herstart:" #: lib/Padre/Wx/Dialog/Preferences.pm:670 msgid "Enable?" msgstr "Activeren?" #: lib/Padre/Wx/Dialog/Preferences.pm:685 msgid "Crashed" msgstr "Fout gelopen" #: lib/Padre/Wx/Dialog/Preferences.pm:718 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" "\tomvat map: -I\n" "\tactiveer tainting checks: -T\n" "\tactiveer meerdere nuttige waarschuwingen: -w\n" "\tactiveer alle waarschuwingen: -W\n" "\tdesactiveer alle waarschuwingen: -X\n" #: lib/Padre/Wx/Dialog/Preferences.pm:728 msgid "Perl interpreter:" msgstr "Perl interpreerder:" #: lib/Padre/Wx/Dialog/Preferences.pm:731 #: lib/Padre/Wx/Dialog/Preferences.pm:781 msgid "Interpreter arguments:" msgstr "Interpreter argumenten:" #: lib/Padre/Wx/Dialog/Preferences.pm:737 #: lib/Padre/Wx/Dialog/Preferences.pm:787 msgid "Script arguments:" msgstr "Script argumenten:" #: lib/Padre/Wx/Dialog/Preferences.pm:741 msgid "Use external window for execution" msgstr "Maak gebruik van een extern venster voor uitvoering" #: lib/Padre/Wx/Dialog/Preferences.pm:750 msgid "Unsaved" msgstr "Niet opgeslagen" #: lib/Padre/Wx/Dialog/Preferences.pm:751 msgid "N/A" msgstr "Niet Beschikbaar" #: lib/Padre/Wx/Dialog/Preferences.pm:770 msgid "No Document" msgstr "Geen Document" #: lib/Padre/Wx/Dialog/Preferences.pm:775 msgid "Document name:" msgstr "Document naam:" #: lib/Padre/Wx/Dialog/Preferences.pm:778 msgid "Document location:" msgstr "Document locatie:" #: lib/Padre/Wx/Dialog/Preferences.pm:811 #, perl-format msgid "Current Document: %s" msgstr "Huidig Document: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:828 msgid "Preferences" msgstr "Instellingen" #: lib/Padre/Wx/Dialog/Preferences.pm:854 msgid "Behaviour" msgstr "Gedrag" #: lib/Padre/Wx/Dialog/Preferences.pm:857 msgid "Appearance" msgstr "Weergave" #: lib/Padre/Wx/Dialog/Preferences.pm:861 msgid "Run Parameters" msgstr "Uitvoerparameters" #: lib/Padre/Wx/Dialog/Preferences.pm:865 msgid "Files and Colors" msgstr "Bestanden en Kleuren" #: lib/Padre/Wx/Dialog/Preferences.pm:868 msgid "Indentation" msgstr "Insprongen" #: lib/Padre/Wx/Dialog/Preferences.pm:871 msgid "External Tools" msgstr "Externe Tools" #: lib/Padre/Wx/Dialog/Preferences.pm:926 msgid "&Advanced..." msgstr "Gevorderd..." #: lib/Padre/Wx/Dialog/Preferences.pm:974 msgid "new" msgstr "nieuw" #: lib/Padre/Wx/Dialog/Preferences.pm:975 msgid "nothing" msgstr "niets" #: lib/Padre/Wx/Dialog/Preferences.pm:976 msgid "last" msgstr "laatste" #: lib/Padre/Wx/Dialog/Preferences.pm:977 msgid "session" msgstr "sessie" #: lib/Padre/Wx/Dialog/Preferences.pm:978 msgid "no" msgstr "neen" #: lib/Padre/Wx/Dialog/Preferences.pm:979 msgid "same_level" msgstr "hetzelfde niveau" #: lib/Padre/Wx/Dialog/Preferences.pm:980 msgid "deep" msgstr "diep" #: lib/Padre/Wx/Dialog/Preferences.pm:981 msgid "alphabetical" msgstr "alfabetisch" #: lib/Padre/Wx/Dialog/Preferences.pm:982 msgid "original" msgstr "origineel" #: lib/Padre/Wx/Dialog/Preferences.pm:983 msgid "alphabetical_private_last" msgstr "alfabetisch, privaat laatst" #: lib/Padre/Wx/Dialog/Preferences.pm:1150 msgid "Save settings" msgstr "Instellingen opslaan" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Goto" msgstr "Ga naar" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Positie type" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:226 #: lib/Padre/Wx/Dialog/Goto.pm:245 msgid "Line number" msgstr "Lijnnummer" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:230 msgid "Character position" msgstr "Karakter positie" #: lib/Padre/Wx/Dialog/Goto.pm:228 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "Voeg een Lijn nummer tussen (1-%s) in:" #: lib/Padre/Wx/Dialog/Goto.pm:229 #, perl-format msgid "Current line number: %s" msgstr "Huidig lijnnummer: %s" #: lib/Padre/Wx/Dialog/Goto.pm:232 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "Vo&eg een positie in tussen 1 en %s:" #: lib/Padre/Wx/Dialog/Goto.pm:233 #, perl-format msgid "Current position: %s" msgstr "Huidige positie: %s" #: lib/Padre/Wx/Dialog/Goto.pm:257 msgid "Not a positive number!" msgstr "Geen positief nummer!" #: lib/Padre/Wx/Dialog/Goto.pm:266 msgid "Out of range!" msgstr "Buiten bereik!" #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Sessie opslaan als..." #: lib/Padre/Wx/Dialog/SessionSave.pm:200 msgid "Session name:" msgstr "Sessie naam:" #: lib/Padre/Wx/Dialog/SessionSave.pm:229 msgid "Save" msgstr "Opslaan" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Andere zoekmachine" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Andere gebeurtenis" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Vriend" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "(Her)Installeren op een andere computer" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Padre Ontwikkelaar" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Andere (Gelieve hier in te vullen)" #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Filter m.b.v. tool" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Filter commando:" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:394 msgid "Run" msgstr "Uitvoeren" #: lib/Padre/Wx/Dialog/Encode.pm:53 msgid "Encode to:" msgstr "Encodeer als:" #: lib/Padre/Wx/Dialog/Encode.pm:63 msgid "Encode document to..." msgstr "Encodeer Document Als..." #: lib/Padre/Wx/Dialog/WindowList.pm:35 msgid "Window list" msgstr "Vensterlijst:" #: lib/Padre/Wx/Dialog/WindowList.pm:211 msgid "List of open files" msgstr "LIjst open bestanden" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Editor" msgstr "Editor" #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Disk" msgstr "Schijf" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:358 msgid "CHANGED" msgstr "GEWIJZIGD" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:354 msgid "fresh" msgstr "vers" #: lib/Padre/Wx/Dialog/WindowList.pm:356 msgid "DELETED" msgstr "VERWIJDERD" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl filter" msgstr "Perl filter" #: lib/Padre/Wx/Dialog/PerlFilter.pm:67 msgid "&Perl filter source:" msgstr "&Perl filter bron:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:74 msgid "Or&iginal text:" msgstr "Oorspronkel&ijke tekst:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:81 msgid "&Output text:" msgstr "Uitv&oer Tekst" #: lib/Padre/Wx/Dialog/PerlFilter.pm:89 msgid "Run filter" msgstr "Voer filter uit" #: lib/Padre/Wx/Dialog/PluginManager.pm:35 msgid "Plug-in Manager" msgstr "Plug-in Manager" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 msgid "Version" msgstr "Versie" #: lib/Padre/Wx/Dialog/PluginManager.pm:102 msgid "Plug-in Name" msgstr "Plug-in Naam" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:528 msgid "&Enable" msgstr "Activ&eer" #: lib/Padre/Wx/Dialog/PluginManager.pm:131 msgid "&Preferences" msgstr "&Instellingen" #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Fout bij het inladen pod voor klasse '%s': %s" #: lib/Padre/Wx/Dialog/PluginManager.pm:489 #: lib/Padre/Wx/Dialog/PluginManager.pm:501 msgid "&Show error message" msgstr "&Toon foutbericht" #: lib/Padre/Wx/Dialog/PluginManager.pm:516 msgid "&Disable" msgstr "&Desactiveer" #: lib/Padre/Wx/Dialog/HelpSearch.pm:39 #: lib/Padre/Wx/Dialog/HelpSearch.pm:96 msgid "Help Search" msgstr "Help Doorzoeken" #: lib/Padre/Wx/Dialog/HelpSearch.pm:81 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "Fout tijdens het oproepen %s %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:93 msgid "No Help found" msgstr "Geen Help onderwerp Gevonden" #: lib/Padre/Wx/Dialog/HelpSearch.pm:129 msgid "Select the help &topic" msgstr "Selecteer het hulp &topic" #: lib/Padre/Wx/Dialog/HelpSearch.pm:146 msgid "Type a help &keyword to read:" msgstr "&Type een help sleutelwoord waarover U wenst te lezen:" #: lib/Padre/Wx/Dialog/HelpSearch.pm:153 msgid "&Matching Help Topics:" msgstr "&Overeenstemmende Help Onderwerpen:" #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 msgid "Reading items. Please wait" msgstr "Items aan het lezen. Gelieve te wachten..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 msgid "Could not find a help provider for " msgstr "Geen hulp provider gevonden voor" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "%s help topic(s) gevonden\n" #: lib/Padre/Wx/Dialog/Bookmarks.pm:31 msgid "Existing bookmarks:" msgstr "Beschikbare markeringen:" #: lib/Padre/Wx/Dialog/Bookmarks.pm:43 msgid "Delete &All" msgstr "Verwijder &Alles" #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "Set Bookmark" msgstr "Plaats markering" #: lib/Padre/Wx/Dialog/Bookmarks.pm:57 msgid "Go to Bookmark" msgstr "Ga naar markering" #: lib/Padre/Wx/Dialog/Bookmarks.pm:123 msgid "Cannot set bookmark in unsaved document" msgstr "Kan geen markering plaatsen in een niet opgeslagen document" #: lib/Padre/Wx/Dialog/Bookmarks.pm:134 #, perl-format msgid "%s line %s: %s" msgstr "%s lijn %s: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:170 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "De markering '%s' bestaat niet langer" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:40 msgid "Quick Menu Access" msgstr "Snelmenu Toegang" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Fout tijdens het uitvoeren van de Padre actie: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:176 msgid "&Type a menu item name to access:" msgstr "&Type de naam van een menu onderdeel dat u wenst te gebruiken:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:183 msgid "&Matching Menu Items:" msgstr "&Overeenstemmende Menu Onderdelen" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:352 msgid "Reading items. Please wait..." msgstr "Items aan het lezen. Gelieve te wachten..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 msgid "Edit" msgstr "Bewerken" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 msgid "View" msgstr "Beeld" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 msgid "Refactor" msgstr "Refactor" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:395 msgid "Debug" msgstr "Debug" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:396 msgid "Plugins" msgstr "Plugins" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:397 msgid "Window" msgstr "Venster" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Regex Editor" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "Character classes" msgstr "Karakter klassen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "Om het even welk karakter behalve een newline" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "Om het even welk decimaal cijfer" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "Om het even welk karakter dat geen cijfer is" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "Om het even welk witspatie karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "Om het even welk karakter dat geen witspatie is" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "Om het even welk woord karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "Om het even welk niet-woord karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "&POSIX Karakter klassen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphabetic characters" msgstr "Alfabetische karakters" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "Alphanumerieke karakters" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "7-bit US-ASCII karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Space and tab" msgstr "Spatie en Tab" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "Controle karakters" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "Cijfers" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Visible characters" msgstr "Zichtbare karakters" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "Kleine letters" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "Zichtbare karakters en spaties" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "Leestekens" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "Witspatie karakters" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "Hoofdletters" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "Alfanumerieke karakters plus \"_\"" #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "Hexadecimale cijfers" #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "Kwantoren" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "Stemt 0 of meerdere keren overeen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "Stemt 1 of meerdere keren overeen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "Stemt 1 of 0 keer overeen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "Stem exact m keer overeen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "Stem tenminste n keer overeen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "Stem tenminste m maar niet meer dan n keer overeen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 #, fuzzy msgid "Miscellaneous" msgstr "Varia" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Alternation" msgstr "Afwisseling" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "Karakterreeks" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "Lijnbegin" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "End of line" msgstr "Lijneinde" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "Een woordbegrenzing" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "Geen woordbegrenzing" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 msgid "A comment" msgstr "Een commentaar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "Grouping constructs" msgstr "Groeperende constructies" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "Een groep" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "Niet weerhoudende groep" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "Positive lookahead assertie" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "Negative lookahead assertie" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "Positive lookbehind assertie" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "Negative lookbehind assertie" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "Backreference tot de n-de groep" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "&Regular expression:" msgstr "&Reguliere Expressie:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:191 msgid "Show &Description" msgstr "Toon &Omschrijving" #: lib/Padre/Wx/Dialog/RegexEditor.pm:204 msgid "&Replace text with:" msgstr "Vervang Tekst met:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:211 msgid "&Original text:" msgstr "Oorspronkelijke tekst:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:218 msgid "Matched text:" msgstr "Overeenstemmende tekst:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:225 msgid "&Result from replace:" msgstr "Vervangings&resultaat:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:408 msgid "Ignore case (&i)" msgstr "Niet-hoofdlettergevoelig (&i)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:409 msgid "Case-insensitive matching" msgstr "Niet-hoofdlettergevoelig zoeken" #: lib/Padre/Wx/Dialog/RegexEditor.pm:412 msgid "Single-line (&s)" msgstr "Enkellijnig (&s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:413 msgid "\".\" also matches newline" msgstr "" "\".\" vindt ook nieuwe regel ('\n" "')" #: lib/Padre/Wx/Dialog/RegexEditor.pm:416 msgid "Multi-line (&m)" msgstr "Meerlijnig (&m)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:417 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" and \"$\" vinden het begin en het einde van elke regel in de tekenketen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:420 msgid "Extended (&x)" msgstr "Uitgebreid (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:422 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "Uitgebreide reguliere expressies laten vrije formatering toe (whitespace wordt genegeerd) en commentaar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:425 msgid "Global (&g)" msgstr "Globaal (&g)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:426 msgid "Replace all occurrences of the pattern" msgstr "Vervang patroon overal" #: lib/Padre/Wx/Dialog/RegexEditor.pm:617 #, perl-format msgid "Match failure in %s: %s" msgstr "Stem overeen met faling in %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:624 #, perl-format msgid "Match warning in %s: %s" msgstr "Stem overeen met waarschuwing in %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:645 msgid "No match" msgstr "Geen overeenstemmingen gevonden" #: lib/Padre/Wx/Dialog/RegexEditor.pm:656 #, perl-format msgid "Replace failure in %s: %s" msgstr "Vervang faling in %s: %s" #: lib/Padre/Wx/Dialog/OpenResource.pm:30 #: lib/Padre/Wx/Dialog/OpenResource.pm:76 msgid "Open Resource" msgstr "Bron Openen" #: lib/Padre/Wx/Dialog/OpenResource.pm:117 msgid "Error while trying to perform Padre action" msgstr "Fout tijdens het uitvoeren van de Padre actie" #: lib/Padre/Wx/Dialog/OpenResource.pm:206 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&Selecteer een te openen item (? = elk karakter, * = elke string):" #: lib/Padre/Wx/Dialog/OpenResource.pm:220 msgid "&Matching Items:" msgstr "&Overeenstemmende Items:" #: lib/Padre/Wx/Dialog/OpenResource.pm:236 msgid "Current Directory: " msgstr "Huidige map:" #: lib/Padre/Wx/Dialog/OpenResource.pm:263 msgid "Skip version control system files" msgstr "Sla versie controle systeem bestanden over" #: lib/Padre/Wx/Dialog/OpenResource.pm:267 msgid "Skip using MANIFEST.SKIP" msgstr "Overslaan gebruikmakende van MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "Alles" #: lib/Padre/Wx/Dialog/Snippets.pm:23 #: lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "Uittreksel:" #: lib/Padre/Wx/Dialog/Snippets.pm:26 #: lib/Padre/Wx/Menu/Edit.pm:349 msgid "&Edit" msgstr "&Bewerken" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "&Toevoegen" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "Uittreksels" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "Categorie:" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "Naam:" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "Wijzig/Voeg Uittreksels toe" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:17 msgid "Select a Wizard" msgstr "Selecteer een assistent" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:126 #, perl-format msgid "Error while loading %s" msgstr "Fout tijdens het oproepen %s" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:15 msgid "Creates a Padre Plugin" msgstr "Creëert een Padre Plugin" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:16 msgid "Padre Plugin Wizard" msgstr "Padre Plugin Assistent" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:15 msgid "Creates a Padre document" msgstr "Creëert een Padre document" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:16 msgid "Padre Document Wizard" msgstr "Padre Document Assistent" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:17 msgid "Creates a Perl 5 module or script" msgstr "Creëer een Perl 5 module of script" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:18 msgid "Perl 5 Module Wizard" msgstr "Perl 5 Module assistent" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:34 msgid "Autocomplete always while typing" msgstr "Vervolledig steeds automatisch tijdens het typen" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:41 msgid "Autocomplete new methods in packages" msgstr "Vervolledig automatisch nieuwe methodes in packages" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:48 msgid "Autocomplete new subroutines in scripts" msgstr "Vervolledig nieuwe methodes in scripts" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:52 msgid "Min. length of suggestions:" msgstr "Min. lengte voor suggesties:" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:57 msgid "Max. number of suggestions:" msgstr "Max. aantal suggesties:" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:60 msgid "Min. chars for autocompletion:" msgstr "Min. karakters voor automatische vervollediging" #: lib/Padre/Wx/Dialog/Preferences/File.pm:36 msgid "File access via HTTP" msgstr "Bestandstoegang via HTTP" #: lib/Padre/Wx/Dialog/Preferences/File.pm:39 #: lib/Padre/Wx/Dialog/Preferences/File.pm:47 msgid "Timeout (in seconds):" msgstr "Timeout (in seconden):" #: lib/Padre/Wx/Dialog/Preferences/File.pm:44 msgid "File access via FTP" msgstr "Bestandstoegang via FTP" #: lib/Padre/Wx/Dialog/Preferences/File.pm:51 msgid "Use FTP passive mode" msgstr "Gebruik FTP passive mode" #: lib/Padre/Wx/FBP/Sync.pm:34 msgid "Server" msgstr "Server" #: lib/Padre/Wx/FBP/Sync.pm:54 msgid "Logged out" msgstr "Uitgelogd" #: lib/Padre/Wx/FBP/Sync.pm:68 #: lib/Padre/Wx/FBP/Sync.pm:111 msgid "Username" msgstr "Gebruiker" #: lib/Padre/Wx/FBP/Sync.pm:82 #: lib/Padre/Wx/FBP/Sync.pm:125 msgid "Password" msgstr "Wachtwoord" #: lib/Padre/Wx/FBP/Sync.pm:97 msgid "Login" msgstr "Login" #: lib/Padre/Wx/FBP/Sync.pm:139 #: lib/Padre/Wx/FBP/Sync.pm:167 msgid "Confirm" msgstr "Bevestig" #: lib/Padre/Wx/FBP/Sync.pm:153 msgid "Email" msgstr "E-mail" #: lib/Padre/Wx/FBP/Sync.pm:181 msgid "Register" msgstr "Registreer" #: lib/Padre/Wx/FBP/Sync.pm:203 msgid "Upload" msgstr "Upload" #: lib/Padre/Wx/FBP/Sync.pm:218 msgid "Download" msgstr "Download" #: lib/Padre/Wx/FBP/Sync.pm:283 msgid "Authentication" msgstr "Authentificatie" #: lib/Padre/Wx/FBP/Sync.pm:310 msgid "Registration" msgstr "Registratie" #: lib/Padre/Wx/FBP/FindInFiles.pm:36 #: lib/Padre/Wx/FBP/Find.pm:36 msgid "Search Term:" msgstr "Zoekterm:" #: lib/Padre/Wx/FBP/FindInFiles.pm:50 msgid "Search Directory:" msgstr "Zoek map:" #: lib/Padre/Wx/FBP/FindInFiles.pm:64 msgid "Browse" msgstr "Bladeren" #: lib/Padre/Wx/FBP/FindInFiles.pm:78 msgid "Search in Types:" msgstr "Zoek in types:" #: lib/Padre/Wx/FBP/FindInFiles.pm:101 #: lib/Padre/Wx/FBP/Find.pm:58 msgid "Regular Expression" msgstr "Reguliere Expressie" #: lib/Padre/Wx/FBP/FindInFiles.pm:109 #: lib/Padre/Wx/FBP/Find.pm:74 msgid "Case Sensitive" msgstr "Hoofdlettergevoelig" #: lib/Padre/Wx/FBP/WhereFrom.pm:31 msgid "Where did you hear about Padre?" msgstr "Van waar ken je Padre?" #: lib/Padre/Wx/FBP/WhereFrom.pm:54 msgid "OK" msgstr "OK" #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "Skip question without giving feedback" msgstr "Sla deze vraag over zonder antwoord" #: lib/Padre/Wx/FBP/Find.pm:66 msgid "Search Backwards" msgstr "Terugwaarts zoeken" #: lib/Padre/Wx/FBP/Find.pm:82 msgid "Close Window on Hit" msgstr "Venster sluiten wanneer gevonden." #: lib/Padre/Wx/FBP/Find.pm:113 msgid "Find All" msgstr "Vind Alle" #: lib/Padre/Wx/Directory/TreeCtrl.pm:83 msgid "Directory" msgstr "Map:" #: lib/Padre/Wx/Directory/TreeCtrl.pm:163 #, perl-format msgid "Could not create: '%s': %s" msgstr "Aanmaken mislukt: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Bestand \"%s\" echt verwijderen?" #: lib/Padre/Wx/Directory/TreeCtrl.pm:182 #, perl-format msgid "Could not delete: '%s': %s" msgstr "Kon niet verwijderen: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:210 msgid "Open File" msgstr "Bestand openen" #: lib/Padre/Wx/Directory/TreeCtrl.pm:226 msgid "Delete File" msgstr "Verwijder bestand" #: lib/Padre/Wx/Directory/TreeCtrl.pm:237 msgid "Create Directory" msgstr "Maak map aan" #: lib/Padre/Wx/Directory/TreeCtrl.pm:249 msgid "Refresh" msgstr "Ververs" #: lib/Padre/Wx/Menu/Window.pm:110 msgid "&Window" msgstr "&Venster" #: lib/Padre/Wx/Menu/Help.pm:60 msgid "Live Support" msgstr "Live Support" #: lib/Padre/Wx/Menu/Help.pm:121 msgid "&Help" msgstr "&Help" #: lib/Padre/Wx/Menu/Debug.pm:116 msgid "&Debug" msgstr "&Debug" #: lib/Padre/Wx/Menu/View.pm:82 msgid "View Document As..." msgstr "Toon Document Als..." #: lib/Padre/Wx/Menu/View.pm:174 msgid "Font Size" msgstr "Lettergrootte" #: lib/Padre/Wx/Menu/View.pm:197 msgid "Style" msgstr "Stijl" #: lib/Padre/Wx/Menu/View.pm:245 msgid "Language" msgstr "Taal" #: lib/Padre/Wx/Menu/View.pm:283 msgid "&View" msgstr "&Beeld" #: lib/Padre/Wx/Menu/Tools.pm:65 msgid "Module Tools" msgstr "Module Tools" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "Plug-in Tools" msgstr "Plug-in Extras" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "Tools" #: lib/Padre/Wx/Menu/Search.pm:99 msgid "&Search" msgstr "&Zoeken" #: lib/Padre/Wx/Menu/Run.pm:74 msgid "&Run" msgstr "Uitvoeren" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Copy Specials" msgstr "Copy specials" #: lib/Padre/Wx/Menu/Edit.pm:200 msgid "Convert Encoding" msgstr "Converteer Encodering" #: lib/Padre/Wx/Menu/Edit.pm:222 msgid "Convert Line Endings" msgstr "Converteer regeleinde" #: lib/Padre/Wx/Menu/Edit.pm:245 msgid "Tabs and Spaces" msgstr "Tabs en Spaties" #: lib/Padre/Wx/Menu/Edit.pm:275 msgid "Upper/Lower Case" msgstr "Hoofd/Kleine Letter" #: lib/Padre/Wx/Menu/Edit.pm:295 msgid "Diff Tools" msgstr "Diff tools" #: lib/Padre/Wx/Menu/Edit.pm:331 msgid "Show as" msgstr "Toon als" #: lib/Padre/Wx/Menu/Refactor.pm:49 #: lib/Padre/Document/Perl.pm:1696 msgid "Change variable style" msgstr "Hernoem variabele stijl" #: lib/Padre/Wx/Menu/Refactor.pm:94 msgid "Ref&actor" msgstr "Refactor" #: lib/Padre/Wx/Menu/Perl.pm:101 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Menu/File.pm:44 msgid "New" msgstr "Nieuw" #: lib/Padre/Wx/Menu/File.pm:96 msgid "Open..." msgstr "Openen." #: lib/Padre/Wx/Menu/File.pm:179 msgid "Reload" msgstr "Herladen" #: lib/Padre/Wx/Menu/File.pm:254 msgid "&Recent Files" msgstr "&Recent geopende bestanden" #: lib/Padre/Wx/Menu/File.pm:293 msgid "&File" msgstr "&Bestand" #: lib/Padre/Wx/Menu/File.pm:380 #, perl-format msgid "File %s not found." msgstr "Bestand %s niet gevonden." #: lib/Padre/Wx/Menu/File.pm:381 msgid "Open cancelled" msgstr "Openen geannuleerd" #: lib/Padre/File/HTTP.pm:48 #, perl-format msgid "Sending HTTP request %s..." msgstr "HTTP request %s aan het zenden..." #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Op zoek naar Net::FTP..." #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "Aan het verbinden met FTP server %s..." #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Fout bij het verbinden me '%s:%s': %s" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "Wachtwoord voor gebruiker '%s' te %s:" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "FTP Wachtwoord" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Aan het inloggen op FTP server als %s..." #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Fout bij het inloggen op '%s:%s': %s" #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Verbinding met FTP server geslaagd." #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "Niet in staat om %s te verwerken" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Bestand aan het inlezen van FTP server..." #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Bestand aan het schrijven naar FTP server..." #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Fout tijdens het zoeken naar POD" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Dit document bevat geen POD" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Enkel een POD fragment, het zal niet getracht worden om samen te voegen" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "Gefaald om de POD fragmenten samen te voegen" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "Gefaald om POD fragment te verwijderen" #: lib/Padre/Document/Perl.pm:430 msgid "Error: " msgstr "Fout: " #: lib/Padre/Document/Perl.pm:432 msgid "No errors found." msgstr "Geen Fouten Gevonden" #: lib/Padre/Document/Perl.pm:471 msgid "All braces appear to be matched" msgstr "Alle haken lijken overeen te stemmem" #: lib/Padre/Document/Perl.pm:472 msgid "Check Complete" msgstr "Controle afgerond" #: lib/Padre/Document/Perl.pm:541 #: lib/Padre/Document/Perl.pm:575 msgid "Current cursor does not seem to point at a variable" msgstr "Huidige cursor lijkt niet te verwijzen naar een variabele" #: lib/Padre/Document/Perl.pm:542 #: lib/Padre/Document/Perl.pm:596 #: lib/Padre/Document/Perl.pm:631 msgid "Check cancelled" msgstr "Controle geannuleerd" #: lib/Padre/Document/Perl.pm:577 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Geen declaratie gevonden voor de gespecifiëerde (lexicale?) variabele" #: lib/Padre/Document/Perl.pm:583 msgid "Search Canceled" msgstr "Zoekactie geannuleerd" #: lib/Padre/Document/Perl.pm:595 msgid "Current cursor does not seem to point at a method" msgstr "Huidige cursor lijkt niet te verwijzen naar een methode" #: lib/Padre/Document/Perl.pm:630 #, perl-format msgid "Current '%s' not found" msgstr "Huidige '%s' niet gevonden." #: lib/Padre/Document/Perl.pm:819 #: lib/Padre/Document/Perl.pm:869 #: lib/Padre/Document/Perl.pm:907 msgid "Current cursor does not seem to point at a variable." msgstr "Huidige cursor lijkt niet te verwijzen naar een variabele" #: lib/Padre/Document/Perl.pm:820 #: lib/Padre/Document/Perl.pm:830 msgid "Rename variable" msgstr "Hernoem Variabele" #: lib/Padre/Document/Perl.pm:829 msgid "New name" msgstr "Nieuwe Naam" #: lib/Padre/Document/Perl.pm:870 msgid "Variable case change" msgstr "Verandering klein en hoofdletters van variabele" #: lib/Padre/Document/Perl.pm:909 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Geen declaratie gevonden voor de gespecifiëerde (lexicale?) variabele" #: lib/Padre/Document/Perl.pm:915 #: lib/Padre/Document/Perl.pm:964 msgid "Replace Operation Canceled" msgstr "Vervang Actie Geannuleerd" #: lib/Padre/Document/Perl.pm:956 msgid "First character of selection does not seem to point at a token." msgstr "Het eerste karakter van de selectie verwijst blijkbaar niet naar een token." #: lib/Padre/Document/Perl.pm:958 msgid "Selection not part of a Perl statement?" msgstr "Selectie geen onderdeel van een Perl statement?" #: lib/Padre/Document/Perl/Help.pm:302 #, perl-format msgid "(Since Perl %s)" msgstr "(Sinds Perl %s)" #: lib/Padre/Document/Perl/Help.pm:306 msgid "- DEPRECATED!" msgstr "- GELAAKT!" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "niet ondersteunde OS: %s" #: lib/Padre/Util/FileBrowser.pm:193 msgid "Failed to execute process\n" msgstr "Gefaald om het proces uit te voeren\n" #: lib/Padre/Util/FileBrowser.pm:216 msgid "Could not find KDE or GNOME" msgstr "PKDE of GNOME niet gevonden" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Module-naam:" #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Nieuwe module" #~ msgid "Code Order" #~ msgstr "Code Volgorde" #~ msgid "Alphabetical Order" #~ msgstr "Alfabetische Volgorde" #~ msgid "Alphabetical Order (Private Last)" #~ msgstr "Alfabetische Volgorde (privaat laatst)" #~ msgid "Directories First" #~ msgstr "Mappen eerst" #~ msgid "Directories Mixed" #~ msgstr "Mappen door elkaar" #~ msgid "Project Tools (Left)" #~ msgstr "Project Tools (Links)" #~ msgid "Document Tools (Right)" #~ msgstr "Document Tools (Rechts)" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "Project map %s bestaat niet (meer). Dit is fataal en zal problemen " #~ "veroorzaken, gelieve dit bestand af te sluiten of te op te slaan onder " #~ "een andere naam tenzij je weet waarmee je bezig bent." #~ msgid "Rename Variable" #~ msgstr "Hernoem Variabele" #~ msgid "" #~ "Prompt for a replacement variable name and replace all occurrences of " #~ "this variable" #~ msgstr "" #~ "Vraag om een vervangende variabele naam en vervang alle overeenstemmende " #~ "variabelnamen" #~ msgid "Change variable to camelCase" #~ msgstr "Verander de variabele naar camelCase" #~ msgid "Change variable style from camel_case to camelCase" #~ msgstr "Verander de variabele stijl van camel_case naar camelCase" #~ msgid "Change variable to CamelCase" #~ msgstr "Verander de variabele naar CamelCase" #~ msgid "Change variable style from camel_case to CamelCase" #~ msgstr "Verander de variabele stijl van camel_case naar CamelCase" #~ msgid "Change variable style to using_underscores" #~ msgstr "Verander de variabele stijl naar underscores_gebruiken" #~ msgid "Change variable style from camelCase to camel_case" #~ msgstr "Verander de variabele stijl van camelCase naar camel_case" #~ msgid "Change variable style to Using_Underscores" #~ msgstr "Verander de variabele stijl naar Underscores_Gebruiken" #~ msgid "Change variable style from camelCase to Camel_Case" #~ msgstr "Verander de variabele stijl van camelCase naar Camel_Case" #~ msgid "Extract Subroutine..." #~ msgstr "Extraheer Subroutine" #~ msgid "" #~ "Cut the current selection and create a new sub from it. A call to this " #~ "sub is added in the place where the selection was." #~ msgstr "" #~ "Knip de huidige selectie en maak er een nieuwe sub van. Een oproep naar " #~ "deze sub wordt geplaatst waar de selectie was." #~ msgid "Name for the new subroutine" #~ msgstr "Naam voor de nieuwe subroutine" #~ msgid "Extract Subroutine" #~ msgstr "Extract Subroutine" #~ msgid "Introduce Temporary Variable..." #~ msgstr "Introduceer Tijdelijke Variabele" #~ msgid "Assign the selected expression to a newly declared variable" #~ msgstr "" #~ "Wijs de geselecteerde uitdrukking toe aan een nieuw gedeclareerde " #~ "variabele" #~ msgid "Variable Name" #~ msgstr "Naam Variabele" #~ msgid "Introduce Temporary Variable" #~ msgstr "Introduceer Tijdelijke Variabele" #~ msgid "Move POD to __END__" #~ msgstr "Verplaats POD naar __END__" #~ msgid "Combine scattered POD at the end of the document" #~ msgstr "Combineer verspreide POD op het einde van het document" #~ msgid "Run Script" #~ msgstr "Voer script uit" #~ msgid "Runs the current document and shows its output in the output panel." #~ msgstr "" #~ "Voer het huidige document uit en toon zijn uitvoer in het uitvoerpaneel." #~ msgid "Run Script (Debug Info)" #~ msgstr "Voer Script uit (debug info)" #~ msgid "Run the current document but include debug info in the output." #~ msgstr "Voer het huidige document met debug info inbegrepen in de uitvoer." #~ msgid "Run Command" #~ msgstr "Voer commando uit" #~ msgid "Runs a shell command and shows the output." #~ msgstr "Voer een shell commando uit en toon de uitvoer." #~ msgid "Run Build and Tests" #~ msgstr "Build + voer alle Testen uit" #~ msgid "Builds the current project, then run all tests." #~ msgstr "Builds het huidige project, vervolgens voer alle testen uit." #~ msgid "Run Tests" #~ msgstr "Voer Testen uit" #~ msgid "" #~ "Run all tests for the current project or document and show the results in " #~ "the output panel." #~ msgstr "" #~ "Voer alle testen uit voor het huidige project of document en toon de " #~ "resultaten in het uitvoerpaneel." #~ msgid "Run This Test" #~ msgstr "Voer Deze Test uit" #~ msgid "Run the current test if the current document is a test. (prove -bv)" #~ msgstr "" #~ "Voer de huidige test uit als het huidige document een test is. (prove -bv)" #~ msgid "Stop Execution" #~ msgstr "Stop uitvoering" #~ msgid "Stop a running task." #~ msgstr "Stop een draaiende taak." #~ msgid "Step In (&s)" #~ msgstr "Stap In (&s)" #~ msgid "" #~ "Execute the next statement, enter subroutine if needed. (Start debugger " #~ "if it is not yet running)" #~ msgstr "" #~ "Voer het volgende statement uit, verschaf subroutine indien nodig. (Start " #~ "debuggen als het nog niet geactiveerd is )" #~ msgid "Step Over (&n)" #~ msgstr "Stap Over (&n)" #~ msgid "" #~ "Execute the next statement. If it is a subroutine call, stop only after " #~ "it returned. (Start debugger if it is not yet running)" #~ msgstr "" #~ "Voer het volgende statement uit. Indien het een subroutine oproep is, " #~ "stop alleen wanneer deze klaar is. (Start debuggen als het nog niet " #~ "geactiveerd is )" #~ msgid "Step Out (&r)" #~ msgstr "Stap Uit (&r)" #~ msgid "If within a subroutine, run till return is called and then stop." #~ msgstr "" #~ "Indien in een subroutine, voer verder uit tot een return en stop dan." #~ msgid "Run till Breakpoint (&c)" #~ msgstr "Voer uit tot breekpunt (&c)" #~ msgid "Start running and/or continue running till next breakpoint or watch" #~ msgstr "" #~ "Start met uitvoeren en/of voer verder uit tot volgend breekpunt of " #~ "observatie" #~ msgid "Jump to Current Execution Line" #~ msgstr "Ga naar huidige uitvoeringslijn" #~ msgid "" #~ "Set focus to the line where the current statement is in the debugging " #~ "process" #~ msgstr "" #~ "Plaats de focus op de lijn van het huidige statement in het debug proces" #~ msgid "Set Breakpoint (&b)" #~ msgstr "Zet breekpunt (&b)" #~ msgid "" #~ "Set a breakpoint to the current location of the cursor with a condition" #~ msgstr "Plaats een breekpunt op de huidige cursorpositie met een voorwaarde" #~ msgid "Remove Breakpoint" #~ msgstr "Verwijder breekpunt" #~ msgid "Remove the breakpoint at the current location of the cursor" #~ msgstr "Verwijder het breekpunt op de huidige locatie van de cursor" #~ msgid "List All Breakpoints" #~ msgstr "Geef een lijst van alle breekpunten" #~ msgid "List all the breakpoints on the console" #~ msgstr "Toon alle breekpunten op de console" #~ msgid "Run to Cursor" #~ msgstr "Voer uit tot cursor" #~ msgid "Set a breakpoint at the line where to cursor is and run till there" #~ msgstr "Zet een breekpunt op de lijn waar de cursor is en voer uit tot daar" #~ msgid "Show Stack Trace (&t)" #~ msgstr "Toon Stack Trace (&t)" #~ msgid "" #~ "When in a subroutine call show all the calls since the main of the program" #~ msgstr "" #~ "Wanneer in een subroutine-oproep toon alle oproepen sinds de \"main\" van " #~ "het programma" #~ msgid "Display Value" #~ msgstr "Geef waarde weer" #~ msgid "" #~ "Display the current value of a variable in the right hand side debugger " #~ "pane" #~ msgstr "" #~ "Toon de huidige waarde van een variabele in het rechter debugger vak" #~ msgid "Show Value Now (&x)" #~ msgstr "Toon Waarde nu (&x)" #~ msgid "Show the value of a variable now in a pop-up window." #~ msgstr "Toon de waarde van een variabele in een pop-up venster" #~ msgid "Evaluate Expression..." #~ msgstr "Evalueer Expressie" #~ msgid "Type in any expression and evaluate it in the debugged process" #~ msgstr "Voer een uitdrukking in en evalueer het in het ge-debug-de proces" #~ msgid "Quit Debugger (&q)" #~ msgstr "Verlaat Debugger (&q)" #~ msgid "Quit the process being debugged" #~ msgstr "Verlaat het proces dat wordt ge-debug-d" #~ msgid "Edit the user preferences" #~ msgstr "Wijzig de gebruikersvoorkeuren" #~ msgid "Preferences Sync" #~ msgstr "Instellingen synchronisatie" #~ msgid "Share your preferences between multiple computers" #~ msgstr "Deel je voorkeuren tussen meerdere computers" #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "" #~ "Toon het key bindings dialoogvenster om de Padre shortcuts te configureren" #~ msgid "Open the regular expression editing window" #~ msgstr "Open het reguliere expressie editeervenster" #~ msgid "Edit with Regex Editor" #~ msgstr "Bewerk met Regex Editor" #~ msgid "Open the selected text in the Regex Editor" #~ msgstr "Open de geselecteerde text in de Regex Editor" #~ msgid "Show the Padre plug-in manager to enable or disable plug-ins" #~ msgstr "Toon de Padre plug-in manager voor het (des)activeren van plug-ins" #~ msgid "Plug-in List (CPAN)" #~ msgstr "Plug-in Lijst (CPAN)" #~ msgid "Open browser to a CPAN search showing the Padre::Plugin packages" #~ msgstr "" #~ "Voer een CPAN zoekopdracht uit in de browser die de Padre::Plugin " #~ "packages toont" #~ msgid "Edit My Plug-in" #~ msgstr "Wijzig Mijn Plug-in" #~ msgid "" #~ "My Plug-in is a plug-in where developers could extend their Padre " #~ "installation" #~ msgstr "" #~ "My Plug-in is een plug-in waarmee ontwikkelaars hun Padre installatie mee " #~ "kunnen uitbreiden" #~ msgid "Could not find the Padre::Plugin::My plug-in" #~ msgstr "Padre::Plugin::Mijn plugin kon niet gevonden worden" #~ msgid "Reload My Plug-in" #~ msgstr "Herlaad Mijn Plug-in" #~ msgid "This function reloads the My plug-in without restarting Padre" #~ msgstr "Deze functie herlaad de My plug-in zonder Padre te herstarten" #~ msgid "Reset My plug-in" #~ msgstr "Herinitialiseer Mijn Plug-in" #~ msgid "Reset the My plug-in to the default" #~ msgstr "Reset de My plug-in naar de standaard instellingen" #~ msgid "Reload All Plug-ins" #~ msgstr "Herlaad Alle Plug-ins" #~ msgid "Reload all plug-ins from disk" #~ msgstr "Herlaad Alle Plug-ins" #~ msgid "(Re)load Current Plug-in" #~ msgstr "(Her)laad Huidige Plug-in" #~ msgid "Reloads (or initially loads) the current plug-in" #~ msgstr "(Her)Laad de huidige plug-in" #~ msgid "Install CPAN Module" #~ msgstr "Installeer CPAN Module" #~ msgid "Install a Perl module from CPAN" #~ msgstr "Installeer via CPAN een Perl Module" #~ msgid "Using CPAN.pm to install a CPAN like package opened locally" #~ msgstr "" #~ "Gebruikmakende van CPAN.pm om een CPAN-achtige, lokaal geopende, package " #~ "te installeren" #~ msgid "Install Remote Distribution" #~ msgstr "Installeer Niet-Lokale Distributie" #~ msgid "Using pip to download a tar.gz file and install it using CPAN.pm" #~ msgstr "" #~ "Gebruikmakende van pip om een tar.gz bestand te downloaden en te " #~ "installeren m.b.v. CPAN.pm" #~ msgid "Open CPAN Config File" #~ msgstr "Open CPAN Configuratie Bestand" #~ msgid "Open CPAN::MyConfig.pm for manual editing by experts" #~ msgstr "Open CPAN::MyConfig.pm voor het manuele wijzigen door experts" #~ msgid "" #~ "Switch to edit the file that was previously edited (can switch back and " #~ "forth)" #~ msgstr "" #~ "Schakel over om het vorige gewijzigde bestand te wijzigen (kan heen en " #~ "terug schakelen)" #~ msgid "Oldest Visited File" #~ msgstr "Oudst Geopend Bestand" #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "Plaats de focus op de langst geleden bezochte tab." #~ msgid "Next File" #~ msgstr "Volgend Bestand" #~ msgid "Put focus on the next tab to the right" #~ msgstr "Plaats de focus op de volgende rechtertab" #~ msgid "Previous File" #~ msgstr "Vorige Bestand" #~ msgid "Put focus on the previous tab to the left" #~ msgstr "Plaats de focus op vorige linkertab." #~ msgid "&Regular Expression" #~ msgstr "&Reguliere Expressie" #~ msgid "&Find Next" #~ msgstr "Vind &volgende" #~ msgid "Find &Text:" #~ msgstr "Vind &Tekst:" #~ msgid "Not a valid search" #~ msgstr "Geen geldige zoekopdracht" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Simuleer Crash achtergrondtaak" #~ msgid "No Autoindent" #~ msgstr "Geen Automatische insprong:" #~ msgid "Indent to Same Depth" #~ msgstr "Spring in tot dezelfde diepte" #~ msgid "Indent Deeply" #~ msgstr "Maak Diepe Insprongen" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "Kan %s niet openen gezien het Padre's vastgelegde bestandsgrootte limiet " #~ "(%s) overschrijdt" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s werk threads draaiende.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "Momenteel zijn er geen achtergrondtaken in uitvoering.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "De volgende taken worden momenteel uitgevoerd op de achtergrond:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s van het type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "Bovendien staan er %s taken klaar om uitgevoerd te worden.\n" #~ msgid "Rename Variable..." #~ msgstr "Hernoem Variabele" #~ msgid "Quick Find" #~ msgstr "Snel Vinden" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "Incrementele zoekopdracht gezien aan de onderkant van het venster" #~ msgid "???" #~ msgstr "???" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "Toon een venster met een folder-browser van het huidige project" #~ msgid "Show Errors" #~ msgstr "Toon Fouten" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "" #~ "Toon de lijst met fouten ontvangen gedurende het uitvoeren van een script" #~ msgid "Show Current Line" #~ msgstr "Toon Huidige Lijn" #~ msgid "Highlight the line where the cursor is" #~ msgstr "Markeer de lijn waar de cursor zich bevindt" #~ msgid "Show Right Margin" #~ msgstr "Toon Rechtermarge" #~ msgid "Show a vertical line indicating the right margin" #~ msgstr "Toon een verticale lijn die de rechtermarge aangeeft" #~ msgid "Show Newlines" #~ msgstr "Toon Regeleindes" #~ msgid "Show/hide the newlines with special character" #~ msgstr "Toon/verberg de newlines met een speciaal karakter" #~ msgid "Show Whitespaces" #~ msgstr "Toon Spaties" #~ msgid "Show/hide the tabs and the spaces with special characters" #~ msgstr "Toon/verberg de tabs en spaties met speciale karakters" #~ msgid "Show Indentation Guide" #~ msgstr "Toon insprong gids" #~ msgid "" #~ "Show/hide vertical bars at every indentation position on the left of the " #~ "rows" #~ msgstr "" #~ "Toon/verberg verticale balken op elke insprongpositie op de linkerzijde " #~ "van de rijen" #~ msgid "Word-Wrap" #~ msgstr "Automatisch naar volgende lijn" #~ msgid "Wrap long lines" #~ msgstr "Breek lange lijnen af" #~ msgid "Increase Font Size" #~ msgstr "Lettertype vergroten" #~ msgid "Decrease Font Size" #~ msgstr "Lettertype verkleinen" #~ msgid "Make the letters smaller in the editor window" #~ msgstr "Verklein de letters in het editor venster" #~ msgid "Reset Font Size" #~ msgstr "Lettergrootte herstellen" #~ msgid "Reset the size of the letters to the default in the editor window" #~ msgstr "Herstel de letters naar de standaardgrootte in het editor venster" #~ msgid "Create a bookmark in the current file current row" #~ msgstr "Maak een markering aan in de huidige bestandsrij" #~ msgid "Select a bookmark created earlier and jump to that position" #~ msgstr "Selecteer een eerder gemaakte markering en ga naar die positie" #~ msgid "&Full Screen" #~ msgstr "&Volledig Scherm" #~ msgid "Set Padre in full screen mode" #~ msgstr "Zet Padre in volle scherm modus" #~ msgid "Check for Common (Beginner) Errors" #~ msgstr "Controleer voor veel voorkomende (beginners) fouten" #~ msgid "Check the current file for common beginner errors" #~ msgstr "Controleer voor veel voorkomende (beginners) fouten" #~ msgid "Find Unmatched Brace" #~ msgstr "Vind alleenstaande haken." #~ msgid "" #~ "Searches the source code for brackets with lack a matching (opening/" #~ "closing) part." #~ msgstr "" #~ "Doorzoekt de broncode voor haakjes met een ontbrekend overeenstemmend " #~ "(openend/sluitend) haakje." #~ msgid "Find Variable Declaration" #~ msgstr "Vind Variabele Declaratie" #~ msgid "" #~ "Find where the selected variable was declared using \"my\" and put the " #~ "focus there." #~ msgstr "" #~ "Zoek waar de geselecteerd variabele was gedeclareerd m.b.v. \"my\" en " #~ "plaats de focus daar." #~ msgid "Find Method Declaration" #~ msgstr "Vind Methode Declaratie" #~ msgid "" #~ "Find where the selected function was defined and put the focus there." #~ msgstr "" #~ "Zoek waar de geselecteerd functie was gedeclareerd en plaats de focus " #~ "daar." #~ msgid "Vertically Align Selected" #~ msgstr "Verticaal Gealigneerd Geselecteerd" #~ msgid "Align a selection of text to the same left column." #~ msgstr "Aligneer een geselecteerde tekst op dezelfde linkerkolom." #~ msgid "Newline Same Column" #~ msgstr "Newline zelfde kolom" #~ msgid "" #~ "Like pressing ENTER somewhere on a line, but use the current position as " #~ "ident for the new line." #~ msgstr "" #~ "Zoals het indrukken van ENTER in een lijn maar gebruik de huidige positie " #~ "als indentatie voor de nieuwe lijn." #~ msgid "Create Project Tagsfile" #~ msgstr "Maak project tags-bestand" #~ msgid "" #~ "Creates a perltags - file for the current project supporting find_method " #~ "and autocomplete." #~ msgstr "" #~ "Maak een perltags-bestand voor het huidige project met ondersteuning voor " #~ "de find methode en autovervollediging" #~ msgid "Automatic Bracket Completion" #~ msgstr "Automatische haakjes afmaken" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "Bij het typen van { voer automatisch een sluitende } in." #~ msgid "Term:" #~ msgstr "Term:" #~ msgid "Dir:" #~ msgstr "Map:" #~ msgid "Pick &directory" #~ msgstr "Selecteer &map" #~ msgid "In Files/Types:" #~ msgstr "In Bestanden/Types" #~ msgid "Case &Insensitive" #~ msgstr "Niet-hoofdlettergevoelig, Negeer hoofd-/kleine letters" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "&Negeer verborgen onderliggende mappen" #~ msgid "Show only files that don't match" #~ msgstr "Toon alleen de niet-overeenstemmende bestanden" #~ msgid "Found %d files and %d matches\n" #~ msgstr "%d bestanden gevonden en %d overeenstemmend\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "'%s' ontbrekend in bestand '%s'\n" #~ msgid "Choose a directory" #~ msgstr "Selecteer map" #~ msgid "Line No" #~ msgstr "Lijn Nr:" #~ msgid "" #~ "File name %s contains * or ? which are special chars on most computers. " #~ "Skip?" #~ msgstr "" #~ "Bestandsnaam %s bevat * of ?, dit zijn gereserveerde karakters op de " #~ "meeste computers. Overslaan?" #~ msgid "Open Warning" #~ msgstr "Waarschuwing Openen" #~ msgid "File name %s does not exist on disk. Skip?" #~ msgstr "Bestandsnaam %s bestaat niet op schijf. Overslaan?" #~ msgid "Reload all files" #~ msgstr "\vAlle bestanden herladen" #~ msgid "Reload some" #~ msgstr "Bepaalde herladen" #~ msgid "Could not reload file: %s" #~ msgstr "Bestand kon niet herladen worden: %s" #~ msgid "Save file as..." #~ msgstr "Bestand opslaan als..." #~ msgid "Stats" #~ msgstr "Statistieken" #~ msgid "Errors" #~ msgstr "Fouten" #~ msgid "No diagnostics available for this error!" #~ msgstr "Geen diagnostieken beschikbaar voor deze fout!" #~ msgid "Diagnostics" #~ msgstr "Diagnostieken" #~ msgid "Key binding name" #~ msgstr "Key binding naam" #~ msgid "Action" #~ msgstr "Actie" #~ msgid "GoTo Bookmark" #~ msgstr "Ga naar markering" #~ msgid "New installation survey" #~ msgstr "Nieuw installatie enquête" #~ msgid "Convert EOL" #~ msgstr "Converteer EOL" #~ msgid "Switch highlighting colors to %s style" #~ msgstr "Schakel markeringskleuren over naar stijl %s" #~ msgid "Switch menus to %s" #~ msgstr "Schakel de menus over naar %s" #~ msgid "Please choose a different name." #~ msgstr "Kies een andere naam, a.u.b." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "Een bestand met dezelfde naam bestaat al in de map" #~ msgid "Move here" #~ msgstr "Verplaats naar hier" #~ msgid "Copy here" #~ msgstr "Kopiëer hier" #~ msgid "folder" #~ msgstr "map" #~ msgid "Rename / Move" #~ msgstr "Hernoem" #~ msgid "Move to trash" #~ msgstr "Verplaats naar de prullenmand" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "Bent u zeker dat u dit wilt verwijderen?" #~ msgid "Show hidden files" #~ msgstr "Toon verborgen bestanden" #~ msgid "Skip hidden files" #~ msgstr "Sla verborgen bestanden over" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "Sla CVS/.svn/.git/blib mappen over" #~ msgid "Change project directory" #~ msgstr "Wijzig project map" #~ msgid "Tree listing" #~ msgstr "Boomstructuur lijst" #~ msgid "Navigate" #~ msgstr "Navigeer" #~ msgid "Change listing mode view" #~ msgstr "Wijzig listing modus weergave" #~ msgid "Info" #~ msgstr "Info" #~ msgid "Finished Searching" #~ msgstr "Klaar met Zoeken" #~ msgid "Replacement" #~ msgstr "Vervanging" #~ msgid "Norwegian (Norway)" #~ msgstr "Noorweegs (Noorwegen)" #~ msgid "&Goto Line" #~ msgstr "&Ga naar Lijn" #~ msgid "Ask the user for a row number and jump there" #~ msgstr "Vraag de gebruiker voor een rij nummer en ga er naar toe" #~ msgid "Insert Special Value" #~ msgstr "Voeg Speciale Waarde in" #~ msgid "Insert From File..." #~ msgstr "Voeg in van Bestand..." #~ msgid "Regex editor" #~ msgstr "Regex editor" #~ msgid "Show as hexa" #~ msgstr "Toon in hexadecimaal" #~ msgid "" #~ "Show the ASCII values of the selected text in hexa in the output window" #~ msgstr "" #~ "Toon de ASCII waarden van de geselecteerde tekst in hexadecimaal in het " #~ "uitvoervenster" #~ msgid "New Subroutine Name" #~ msgstr "Niewe Subroutine Naam" #~ msgid "Show the about-Padre information" #~ msgstr "Toon de informatie over Padre" #~ msgid "Check the current file" #~ msgstr "Controleer het huidige bestand" #~ msgid "Save &As" #~ msgstr "Opslaan &Als" #~ msgid "'%s' does not look like a variable" #~ msgstr "'%s' lijkt niet op een variabele" #~ msgid "(Document not on disk)" #~ msgstr "(Document niet op schijf)" #~ msgid "Lines: %d" #~ msgstr "Lijnen: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Karakters zonders spaties: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Karakters met spaties: %d" #~ msgid "Newline type: %s" #~ msgstr "Regeleinde type: %s" #~ msgid "Size on disk: %s" #~ msgstr "Omvang op schijf: %s" #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ "Bestand is verwijderd op schijf, wil je het editor venster leegmaken?" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "" #~ "Bestand gewijzigd op schijf sinds laatst opgeslagen. Het bestand " #~ "heropladen?" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Error List" #~ msgstr "Foutenlijst" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "%s blijkbaar gegenereerd. Wenst U het nu te openen?" #~ msgid "Done" #~ msgstr "Klaar" #~ msgid "Skip VCS files" #~ msgstr "Sla VCS bestanden over" #~ msgid "Timeout:" #~ msgstr "Timeout:" #~ msgid "Select all\tCtrl-A" #~ msgstr "Selecteer alles\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Kopiëren\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "K&nippen\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "&Plakken\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "&Schakel Commentaar om\tCtrl-Shift-C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "Lijnen in commentaar zetten\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "Lijnen uit commentaar zetten\tCtrl-Shift-M" #~ msgid "Error while calling help_render: " #~ msgstr "Fout bij het oproepen van help_render:" #~ msgid "Error while calling get_help_provider: " #~ msgstr "Fout bij het oproepen van get_help_provider:" #~ msgid "Error:\n" #~ msgstr "Fout:\n" #~ msgid "Start Debugger (Debug::Client)" #~ msgstr "Start Debugger (Debug::Client)" #~ msgid "Run the current document through the Debug::Client." #~ msgstr "Voer het huidige document uit d.m.v. Debug::Client." #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "Dump PPI Document" #~ msgstr "Dump PPI Document" #~ msgid "Enable logging" #~ msgstr "Activeer loggen" #~ msgid "Disable logging" #~ msgstr "Desactiveer loggen" #~ msgid "Enable trace when logging" #~ msgstr "Activeer opsporen tijdens het loggen" #~ msgid "&Split window" #~ msgstr "&Splits venster" #~ msgid "Found %d matching occurrences" #~ msgstr "%d overeenstemmende gevonden" #~ msgid "&Close\tCtrl+W" #~ msgstr "Slui&ten\tCtrl+W" #~ msgid "&Open\tCtrl+O" #~ msgstr "&Open\tCtrl-O" #~ msgid "E&xit\tCtrl+X" #~ msgstr "Afsluiten\tCtrl-X" #~ msgid "GoTo Subs Window" #~ msgstr "Ga Naar Subs Venster" #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "Plugin:%s - Gefaald in het laden van module: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "Plugin:%s - Niet compatibel met Padre::Plugin API. Dient een subklasse te " #~ "zijn van Padre::Plugin" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "Plugin:%s - Kon plugin object niet ïnstantiëren: de constructor geeft " #~ "geen Padre::Plugin object terug" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "Plugin:%s - Heeft geen menu's" #~ msgid "Install Module..." #~ msgstr "Installeer Module" #~ msgid "&Use Regex" #~ msgstr "&Maak gebruik van reguliere expressies" #~ msgid "Cannot build regex for '%s'" #~ msgstr "Kan geen regex samenstellen voor '%s'" #~ msgid "Mime type:" #~ msgstr "Mime-type" #~ msgid "Close Window on &hit" #~ msgstr "Dialoogvenster sluiten wanneer &gevonden." #~ msgid "%s occurences were replaced" #~ msgstr "%s keer vervangen" #~ msgid "Nothing to replace" #~ msgstr "Niets te vervangen" #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "" #~ "Copyright 2008-2009 Het Padre ontwikkelingsteam zoals vermeld in Padre.pm." #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Test een Plugin Vanuit Lokale Map" #~ msgid "Save File" #~ msgstr "Bestand opslaan" #~ msgid "Undo" #~ msgstr "Ongedaan maken" #~ msgid "Redo" #~ msgstr "Herhaal" #~ msgid "Workspace View" #~ msgstr "Werkblad Beeld" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "Plaats markering\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "Ga naar markering\tCtrl-Shift-B" #~ msgid "Stop\tF6" #~ msgstr "Stop\tF6" #~ msgid "&New\tCtrl-N" #~ msgstr "&Nieuw\tCtrl-N" #~ msgid "&Close\tCtrl-W" #~ msgstr "Slui&ten\tCtrl-W" #~ msgid "Close All but Current" #~ msgstr "Sluit alles behalve het huidige document" #~ msgid "&Save\tCtrl-S" #~ msgstr "&Opslaan\tCtrl-S" #~ msgid "Save &As...\tF12" #~ msgstr "Opslaan &Als...\tF12" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "Open Selectie\tCtrl-Shift-O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "Open Sessie\tCtrl-Alt-O" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "Sessie Opslaan" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "&Afsluiten\tCtrl-Q" #~ msgid "&Find\tCtrl-F" #~ msgstr "&Zoeken\tCtrl-F" #~ msgid "Find Next\tF3" #~ msgstr "Vind &volgende\tF3" #~ msgid "Find Next\tF4" #~ msgstr "Vind &volgende\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "Vind vorige\tShift-F4" #~ msgid "Replace\tCtrl-R" #~ msgstr "Vervangen\tCtrl-R" #~ msgid "&Goto\tCtrl-G" #~ msgstr "&Ga naar\tCtrl-G" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "Uittreksels\tCtrl-Shift-A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "Alles Hoofdletter\tCtrl-Shift-U" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "Volgend bestand\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "Vorig bestand\tCtrl-Shift-TAB" #~ msgid "Mime-types" #~ msgstr "Mime-types" #~ msgid "Expand / Collapse" #~ msgstr "Uitklappen / Inklappen" #~ msgid "L:" #~ msgstr "L:" #~ msgid "Ch:" #~ msgstr "Ch:" #~ msgid "Use PPI Syntax Highlighting" #~ msgstr "Gebruik PPI Syntax Inkleuring" #~ msgid "Disable Experimental Mode" #~ msgstr "Desactiveer Experimentele Modus" #~ msgid "Refresh Menu" #~ msgstr "Herlaad Menu" #~ msgid "Refresh Counter: " #~ msgstr "Herlaad Teller" #~ msgid "Text to find:" #~ msgstr "Te vinden Tekst" #~ msgid "Sub List" #~ msgstr "Sub Lijst" #~ msgid "Diff" #~ msgstr "Vergelijk" #~ msgid "All available plugins on CPAN" #~ msgstr "Alle beschikbare plugins op CPAN" #~ msgid "Convert..." #~ msgstr "Converteren..." #~ msgid "Background Tasks are idle" #~ msgstr "Achtergrondtaken wachten." #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "Plugin:%s - Niet compatibel met Padre::Plugin API. Kan plugin niet " #~ "ïnstantiëren" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "Plugin:%s - Niet compatibel met Padre::Plugin API. Dient een sub " #~ "padre_interfaces te hebben" #~ msgid "(running from SVN checkout)" #~ msgstr "(gebaseerd op uitgecheckte SVN data)" #~ msgid "No output" #~ msgstr "Geen uitvoer" #~ msgid "" #~ "Module Name:\n" #~ "e.g.: Perl::Critic" #~ msgstr "" #~ "Module Naam:\n" #~ "vb.: Perl::Critic" #~ msgid "Ac&k Search" #~ msgstr "Ac&k Zoeken" Padre-1.00/share/locale/ar.po0000644000175000017500000046136111457367663014501 0ustar petepete# Arabic translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Ahmad Zawawi , 2008. # msgid "" msgstr "" "Project-Id-Version: ar\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-10-19 22:16+0300\n" "PO-Revision-Date: 2010-10-19 22:20+0200\n" "Last-Translator: Ahmad M. Zawawi \n" "Language-Team: Arabic\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Arabic\n" "X-Poedit-Bookmarks: -1,116,-1,-1,-1,-1,-1,-1,-1,-1\n" #: lib/Padre/Config.pm:397 msgid "Previous open files" msgstr "ملفات مفتوحه مسبقا" #: lib/Padre/Config.pm:398 msgid "A new empty file" msgstr "ملف فارغ جديد" #: lib/Padre/Config.pm:399 msgid "No open files" msgstr "لا يوجد ملفات مفتوحة" #: lib/Padre/Config.pm:400 msgid "Open session" msgstr "فتح الجلسة" #: lib/Padre/Config.pm:492 msgid "Code Order" msgstr "ترتيب الكود" #: lib/Padre/Config.pm:493 msgid "Alphabetical Order" msgstr "ترتيب ابحدي" #: lib/Padre/Config.pm:494 msgid "Alphabetical Order (Private Last)" msgstr "ترتيب ابجدي (الخاص آخرا)" #: lib/Padre/Config.pm:521 #, fuzzy msgid "Directories First" msgstr "الدليل" #: lib/Padre/Config.pm:522 #, fuzzy msgid "Directories Mixed" msgstr "الدليل" #: lib/Padre/Config.pm:531 msgid "Project Tools (Left)" msgstr "أدوات المشروع (اليسار)" #: lib/Padre/Config.pm:532 msgid "Document Tools (Right)" msgstr "أدوات الوثيقة (اليمين)" #: lib/Padre/Config.pm:707 #, fuzzy msgid "No Autoindent" msgstr "الازاحه التلقائيه:" #: lib/Padre/Config.pm:708 msgid "Indent to Same Depth" msgstr "" #: lib/Padre/Config.pm:709 msgid "Indent Deeply" msgstr "" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "فشل العثور على تعريفات برنامج CPAN الخاص بك" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "اختر وحده توزيع لتثبيتها" #: lib/Padre/CPAN.pm:118 #: lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "لم تحدد أي توزيع" #: lib/Padre/CPAN.pm:132 msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "ادخل عنوان الوحده للتثبيت\n" "مثال: http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/CPAN.pm:178 #, fuzzy msgid "cpanm is unexpectedly not installed" msgstr "فشل تثبيت برنامج pip" #: lib/Padre/Document.pm:234 msgid "Error while opening file: no file object" msgstr "خطأ أثناء فتح الملف : لا يوجد كائن ملف" #: lib/Padre/Document.pm:258 #, perl-format msgid "The file %s you are trying to open is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "" #: lib/Padre/Document.pm:263 #: lib/Padre/Wx/Main.pm:2646 #: lib/Padre/Wx/Main.pm:3253 #: lib/Padre/Wx/Syntax.pm:394 #: lib/Padre/Wx/Syntax.pm:420 #: lib/Padre/Wx/Syntax.pm:421 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "تحذير" #: lib/Padre/Document.pm:285 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" #: lib/Padre/Document.pm:327 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "" #: lib/Padre/Document.pm:450 #: lib/Padre/Wx/Editor.pm:213 #: lib/Padre/Wx/Main.pm:4387 #: lib/Padre/Wx/Syntax.pm:394 #: lib/Padre/Wx/Syntax.pm:420 #: lib/Padre/Wx/Syntax.pm:423 #: lib/Padre/Wx/Dialog/ModuleStart.pm:187 #: lib/Padre/Wx/Dialog/OpenResource.pm:116 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:90 #: lib/Padre/Wx/Dialog/Sync.pm:447 #: lib/Padre/Wx/Dialog/Sync.pm:455 #: lib/Padre/Wx/Dialog/Sync.pm:469 #: lib/Padre/Wx/Dialog/Sync.pm:493 #: lib/Padre/Wx/Dialog/Sync.pm:517 #: lib/Padre/Wx/Dialog/Sync.pm:528 #: lib/Padre/Wx/Dialog/Sync.pm:538 #: lib/Padre/Wx/Dialog/Sync.pm:556 #: lib/Padre/Wx/Dialog/Sync.pm:567 #: lib/Padre/Wx/Dialog/Sync.pm:578 #: lib/Padre/Wx/Dialog/Sync.pm:589 #: lib/Padre/Wx/Dialog/Sync2.pm:67 #: lib/Padre/Wx/Dialog/Sync2.pm:75 #: lib/Padre/Wx/Dialog/Sync2.pm:89 #: lib/Padre/Wx/Dialog/Sync2.pm:108 #: lib/Padre/Wx/Dialog/Sync2.pm:132 #: lib/Padre/Wx/Dialog/Sync2.pm:143 #: lib/Padre/Wx/Dialog/Sync2.pm:153 #: lib/Padre/Wx/Dialog/Sync2.pm:171 #: lib/Padre/Wx/Dialog/Sync2.pm:182 #: lib/Padre/Wx/Dialog/Sync2.pm:193 #: lib/Padre/Wx/Dialog/Sync2.pm:204 #: lib/Padre/Wx/Role/Dialog.pm:95 msgid "Error" msgstr "خطأ" #: lib/Padre/Document.pm:773 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "اسم الملف المرئي %s لا يطابق اسم الملف الداخلي %s ، هل تريد الغاء الحفظ؟" #: lib/Padre/Document.pm:777 msgid "Save Warning" msgstr "حفظ التحذير" #: lib/Padre/Document.pm:982 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "" #: lib/Padre/Document.pm:1002 #, perl-format msgid "Unsaved %d" msgstr "غير محفوظ %d" #: lib/Padre/Document.pm:1416 #: lib/Padre/Document.pm:1417 msgid "Skipped for large files" msgstr "تم التخطي للملفات الكبيرة" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "الانجليزيه (المملكة المتحدة)" #: lib/Padre/Locale.pm:124 #, fuzzy msgid "English (Australia)" msgstr "الانجليزيه (استراليا)" #: lib/Padre/Locale.pm:142 #: lib/Padre/Wx/Main.pm:3564 msgid "Unknown" msgstr "مجهول" #: lib/Padre/Locale.pm:156 msgid "Arabic" msgstr "العربيه" #: lib/Padre/Locale.pm:166 msgid "Czech" msgstr "تشيكي" #: lib/Padre/Locale.pm:176 #, fuzzy msgid "Danish" msgstr "الاسبانيه" #: lib/Padre/Locale.pm:186 msgid "German" msgstr "الالمانيه" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "الانجليزيه" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "الانجليزيه (كندا)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "الانجليزيه (نيوزيلندا)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "الانجليزيه (الولايات المتحده الامريكيه)" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "الاسبانيه (الارجنتين)" #: lib/Padre/Locale.pm:248 msgid "Spanish" msgstr "الاسبانيه" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "فارسي (ايران)" #: lib/Padre/Locale.pm:268 #, fuzzy msgid "French (Canada)" msgstr "الفرنسيه (فرنسا)" #: lib/Padre/Locale.pm:282 msgid "French" msgstr "الفرنسيه" #: lib/Padre/Locale.pm:292 msgid "Hebrew" msgstr "العبريه" #: lib/Padre/Locale.pm:302 msgid "Hungarian" msgstr "الهنجاريه" #: lib/Padre/Locale.pm:316 msgid "Italian" msgstr "الايطاليه" #: lib/Padre/Locale.pm:326 msgid "Japanese" msgstr "اليابانيه" #: lib/Padre/Locale.pm:336 msgid "Korean" msgstr "الكوريه" #: lib/Padre/Locale.pm:350 msgid "Dutch" msgstr "الهولنديه" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "الهولنديه (بلجيكا)" #: lib/Padre/Locale.pm:370 #, fuzzy msgid "Norwegian" msgstr "الكوريه" #: lib/Padre/Locale.pm:380 msgid "Polish" msgstr "البولنديه" #: lib/Padre/Locale.pm:390 msgid "Portuguese (Brazil)" msgstr "البرتغاليه (البرازيل)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "البرتغاليه (البرتغال)" #: lib/Padre/Locale.pm:410 msgid "Russian" msgstr "الروسيه" #: lib/Padre/Locale.pm:420 msgid "Turkish" msgstr "التركية" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "الصينيه" #: lib/Padre/Locale.pm:440 msgid "Chinese (Simplified)" msgstr "الصينيه (المبسطه)" #: lib/Padre/Locale.pm:450 msgid "Chinese (Traditional)" msgstr "الصينيه (التقليديه)" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "كلينون ستار ترك" #: lib/Padre/MimeTypes.pm:230 #, fuzzy msgid "Shell Script" msgstr "ملف نصي Perl 5" #: lib/Padre/MimeTypes.pm:334 #, fuzzy msgid "Text" msgstr "التالي" #: lib/Padre/MimeTypes.pm:363 msgid "Fast but might be out of date" msgstr "سريع ولكنه قد يكون قديم" #: lib/Padre/MimeTypes.pm:372 msgid "PPI Experimental" msgstr "PPI تجريبي" #: lib/Padre/MimeTypes.pm:373 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "بطيء لكنه دقيق ويمكننا من السيطرة الكلية على تصليح البقات" #: lib/Padre/MimeTypes.pm:377 msgid "PPI Standard" msgstr "ملون PPI القياسي" #: lib/Padre/MimeTypes.pm:378 msgid "Hopefully faster than the PPI Traditional. Big file will fall back to Scintilla highlighter." msgstr "يؤمل أن يكون أسرع من ملون PPI التقليدي. في حالة فتح ملف كبير سيتم التراجع إلى ملون scintilla" #: lib/Padre/MimeTypes.pm:404 #: lib/Padre/MimeTypes.pm:430 #: lib/Padre/MimeTypes.pm:456 #, perl-format msgid "Mime type is not supported when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:414 #, perl-format msgid "Mime type already has a class '%s' when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:440 #, perl-format msgid "Mime type is does not have a class entry when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:606 msgid "UNKNOWN" msgstr "مجهول" #: lib/Padre/PluginHandle.pm:89 #: lib/Padre/Wx/Dialog/PluginManager.pm:487 msgid "error" msgstr "خطأ" #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "تم التفريغ" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "تم التحميل" #: lib/Padre/PluginHandle.pm:92 #: lib/Padre/Wx/Dialog/PluginManager.pm:499 msgid "incompatible" msgstr "غير متوافق" #: lib/Padre/PluginHandle.pm:93 #: lib/Padre/Wx/Dialog/PluginManager.pm:526 msgid "disabled" msgstr "معطّل" #: lib/Padre/PluginHandle.pm:94 #: lib/Padre/Wx/Dialog/PluginManager.pm:514 msgid "enabled" msgstr "مشغّل" #: lib/Padre/PluginHandle.pm:201 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "فشل تمكين البرنامج المساعد '%s': %s" #: lib/Padre/PluginHandle.pm:281 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "فشل تعطيل البرنامج المساعد '%s': %s" #: lib/Padre/PluginManager.pm:393 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "تم العثور على برامج مساعده جديده.\n" "لتعريفها وتمكينها اذهب الى\n" "البرامج المساعده -> مدير البرامج المساعده\n" "\n" "قائمه البرامج المساعده الجديده:\n" "\n" #: lib/Padre/PluginManager.pm:403 msgid "New plug-ins detected" msgstr "تم العثور على برامج مساعده جديده" #: lib/Padre/PluginManager.pm:535 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "ال %s - فشل خلال التحميل: %s" #: lib/Padre/PluginManager.pm:547 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "ال %s - ليس فئة فرعية من Padre::Plugin" #: lib/Padre/PluginManager.pm:560 #, perl-format msgid "%s - Not compatible with Padre version %s - %s" msgstr "" #: lib/Padre/PluginManager.pm:575 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "ال %s - فشل خلال الانشاء: %s" #: lib/Padre/PluginManager.pm:585 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "ال %s - فشل انشاء البرنامج المساعد" #: lib/Padre/PluginManager.pm:820 #, perl-format msgid "Plugin error on event %s: %s" msgstr "خطأ البرنامج المساعد عند الحدث %s: %s" #: lib/Padre/PluginManager.pm:830 msgid "(core)" msgstr "(core)" #: lib/Padre/PluginManager.pm:831 #: lib/Padre/Document/Perl.pm:616 #: lib/Padre/Document/Perl.pm:949 #: lib/Padre/Document/Perl.pm:998 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "خطأ مجهول" #: lib/Padre/PluginManager.pm:843 #, perl-format msgid "Plugin %s" msgstr "البرنامج المساعد %s" #: lib/Padre/PluginManager.pm:919 #, fuzzy msgid "Error when calling menu for plug-in " msgstr "خطأ عند مناداه قائمه البرنامج المساعد" #: lib/Padre/PluginManager.pm:951 #: lib/Padre/Wx/Main.pm:2286 #: lib/Padre/Wx/Main.pm:2341 #: lib/Padre/Wx/Main.pm:2393 msgid "No document open" msgstr "No document open" #: lib/Padre/PluginManager.pm:955 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "بلا اسم ملف" #: lib/Padre/PluginManager.pm:960 #, fuzzy msgid "Could not locate project directory." msgstr "لا يمكن العثور على دليل المشروع" #: lib/Padre/PluginManager.pm:979 #: lib/Padre/PluginManager.pm:1075 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "فشل تحميل البرنامج المساعد '%s'\n" "%s" #: lib/Padre/PluginManager.pm:1029 #: lib/Padre/Wx/Main.pm:5294 msgid "Open file" msgstr "فتح الملف" #: lib/Padre/PluginManager.pm:1049 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "يجب ان يكون '%s' دليل أساس للبرنامج المساعد" #: lib/Padre/Project.pm:32 #, perl-format msgid "Project directory %s does not exist (any longer). This is fatal and will cause problems, please close or save-as this file unless you know what you are doing." msgstr "" #: lib/Padre/Config/Style.pm:27 #: lib/Padre/Wx/About.pm:59 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "برنامج Padre" #: lib/Padre/Config/Style.pm:28 msgid "Evening" msgstr "المساء" #: lib/Padre/Config/Style.pm:29 msgid "Night" msgstr "ليلي" #: lib/Padre/Config/Style.pm:30 msgid "Ultraedit" msgstr "برنامج Ultraedit" #: lib/Padre/Config/Style.pm:31 msgid "Notepad++" msgstr "برنامج Notepad++" #: lib/Padre/Document/Perl.pm:314 #, perl-format msgid "%s seems to be no executable Perl interpreter, use the system default perl instead?" msgstr "لا يبدو أن %s مترجم Perl قابل للتنفيذ ، هل استخدم Perl افتراضي النظام بدلا عنه?" #: lib/Padre/Document/Perl.pm:317 #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:394 msgid "Run" msgstr "تشغيل" #: lib/Padre/Document/Perl.pm:467 msgid "Error: " msgstr "خطأ:" #: lib/Padre/Document/Perl.pm:469 msgid "No errors found." msgstr "لا توجد أي أخطاء." #: lib/Padre/Document/Perl.pm:508 msgid "All braces appear to be matched" msgstr "ببدو ان كل الاقواص متماثله" #: lib/Padre/Document/Perl.pm:509 msgid "Check Complete" msgstr "تم الفحص" #: lib/Padre/Document/Perl.pm:578 #: lib/Padre/Document/Perl.pm:612 msgid "Current cursor does not seem to point at a variable" msgstr "المؤشر الحالي لا يبدو انه يوشر على متغير" #: lib/Padre/Document/Perl.pm:579 #: lib/Padre/Document/Perl.pm:633 #: lib/Padre/Document/Perl.pm:668 msgid "Check cancelled" msgstr "تم الغاء الفحص" #: lib/Padre/Document/Perl.pm:614 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "لا يوجد اعلان للمتغير (مفردي?) المطلوب" #: lib/Padre/Document/Perl.pm:620 msgid "Search Canceled" msgstr "تم الغاء البحث" #: lib/Padre/Document/Perl.pm:632 msgid "Current cursor does not seem to point at a method" msgstr "المؤشر الحالي لا يبدو انه يوشر على method" #: lib/Padre/Document/Perl.pm:667 #, perl-format msgid "Current '%s' not found" msgstr "الملف الحالي '%s' غير موجود" #: lib/Padre/Document/Perl.pm:857 #: lib/Padre/Document/Perl.pm:907 #: lib/Padre/Document/Perl.pm:945 #, fuzzy msgid "Current cursor does not seem to point at a variable." msgstr "المؤشر الحالي لا يبدو انه يوشر على متغير" #: lib/Padre/Document/Perl.pm:858 #: lib/Padre/Document/Perl.pm:868 #, fuzzy msgid "Rename variable" msgstr "اعاده تسميه المتغير ضمن النطاق" #: lib/Padre/Document/Perl.pm:867 #, fuzzy msgid "New name" msgstr "الاسم:" #: lib/Padre/Document/Perl.pm:908 #, fuzzy msgid "Varable case change" msgstr "اسم المتغير" #: lib/Padre/Document/Perl.pm:947 #, fuzzy msgid "No declaration could be found for the specified (lexical?) variable." msgstr "لا يوجد اعلان للمتغير (مفردي?) المطلوب" #: lib/Padre/Document/Perl.pm:953 #: lib/Padre/Document/Perl.pm:1002 msgid "Replace Operation Canceled" msgstr "تم الغاء عملية التبديل" #: lib/Padre/Document/Perl.pm:994 msgid "First character of selection does not seem to point at a token." msgstr "لا يبدو أن أول حرف من الاختيار يؤشر على رمز." #: lib/Padre/Document/Perl.pm:996 msgid "Selection not part of a Perl statement?" msgstr "هل الاختيار ليس من ضمن جملة Perl?" #: lib/Padre/Document/Perl.pm:1733 #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "Change variable style" msgstr "" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: " msgstr "السطر %d: " #: lib/Padre/Document/Perl/Help.pm:293 #, perl-format msgid "(Since Perl v%s)" msgstr "" #: lib/Padre/Document/Perl/Help.pm:296 msgid "- DEPRECATED!" msgstr "" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "" #: lib/Padre/File/FTP.pm:124 #, fuzzy, perl-format msgid "Error connecting to %s:%s: %s" msgstr "فشل تحميل pod ل class '%s': %s" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "كلمة المرور ل FTP" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "" #: lib/Padre/File/FTP.pm:144 #, fuzzy, perl-format msgid "Error logging in on %s:%s: %s" msgstr "فشل تحميل pod ل class '%s': %s" #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "" #: lib/Padre/File/FTP.pm:186 #, fuzzy, perl-format msgid "Unable to parse %s" msgstr "تحويل Tabs الى مسافات..." #: lib/Padre/File/FTP.pm:289 #, fuzzy msgid "Reading file from FTP server..." msgstr "جاري قراءة العناصر. الرجاء الانتظار..." #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "" #: lib/Padre/File/HTTP.pm:48 #, perl-format msgid "Sending HTTP request %s..." msgstr "" #: lib/Padre/Plugin/Devel.pm:29 msgid "Padre Developer Tools" msgstr "أدوات تطوير Padre" #: lib/Padre/Plugin/Devel.pm:69 msgid "Run Document inside Padre" msgstr "تشغيل الوثيقه داخل Padre" #: lib/Padre/Plugin/Devel.pm:70 msgid "Run Selection inside Padre" msgstr "تشغيل الاختيار داخل Padre" #: lib/Padre/Plugin/Devel.pm:74 #, fuzzy msgid "Dump Expression..." msgstr "اطبع التعبير" #: lib/Padre/Plugin/Devel.pm:75 msgid "Dump Current Document" msgstr "اطبع الوثيقه الحاليه" #: lib/Padre/Plugin/Devel.pm:76 msgid "Dump Task Manager" msgstr "" #: lib/Padre/Plugin/Devel.pm:77 msgid "Dump Top IDE Object" msgstr "طباعة أول كينونة IDE" #: lib/Padre/Plugin/Devel.pm:78 msgid "Dump Current PPI Tree" msgstr "اطبع شجرة PPI الحالية" #: lib/Padre/Plugin/Devel.pm:79 msgid "Dump %INC and @INC" msgstr "طباعة %INC و @INC" #: lib/Padre/Plugin/Devel.pm:80 msgid "Dump Display Geometry" msgstr "" #: lib/Padre/Plugin/Devel.pm:81 msgid "Start/Stop sub trace" msgstr "" #: lib/Padre/Plugin/Devel.pm:85 msgid "Load All Padre Modules" msgstr "تحميل كل وحدات Padre" #: lib/Padre/Plugin/Devel.pm:86 msgid "Simulate Crash" msgstr "محاكاة حادث" #: lib/Padre/Plugin/Devel.pm:87 msgid "Simulate Crashing Bg Task" msgstr "محاكاة فشل مهمة خلفية" #: lib/Padre/Plugin/Devel.pm:91 #, perl-format msgid "wxWidgets %s Reference" msgstr "مرجع wxWidgets %s" #: lib/Padre/Plugin/Devel.pm:94 msgid "STC Reference" msgstr "مرجع STC" #: lib/Padre/Plugin/Devel.pm:97 msgid "wxPerl Live Support" msgstr "دعم wxPerl المباشر" #: lib/Padre/Plugin/Devel.pm:103 #: lib/Padre/Plugin/PopularityContest.pm:201 msgid "About" msgstr "حول" #: lib/Padre/Plugin/Devel.pm:121 #: lib/Padre/Plugin/Devel.pm:122 msgid "Expression" msgstr "التعبير" #: lib/Padre/Plugin/Devel.pm:150 #: lib/Padre/Wx/Main.pm:5606 msgid "No file is open" msgstr "لا يوجد أي ملف مفتوح" #: lib/Padre/Plugin/Devel.pm:173 msgid "No Perl 5 file is open" msgstr "لا يوجد أي ملف Perl 5 مفتوح" #: lib/Padre/Plugin/Devel.pm:244 msgid "Sub-tracing stopped" msgstr "" #: lib/Padre/Plugin/Devel.pm:250 msgid "Error while loading Aspect, is it installed?" msgstr "" #: lib/Padre/Plugin/Devel.pm:262 msgid "Sub-tracing started" msgstr "" #: lib/Padre/Plugin/Devel.pm:280 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "مجموعة ادوات غير مترابطة ومستخدمة من مطوري Padre\n" #: lib/Padre/Plugin/Devel.pm:301 #, fuzzy, perl-format msgid "Found %s unloaded modules" msgstr "تم العثور على %d ملفات\n" #: lib/Padre/Plugin/Devel.pm:313 #, fuzzy, perl-format msgid "Loaded %s modules" msgstr "تحميل كل وحدات Padre" #: lib/Padre/Plugin/Devel.pm:324 #: lib/Padre/Wx/Main.pm:5413 #, perl-format msgid "Error: %s" msgstr "خطأ: %s" #: lib/Padre/Plugin/PopularityContest.pm:202 msgid "Show current report" msgstr "اظهار التقرير الحالي" #: lib/Padre/Plugin/PopularityContest.pm:304 msgid "Popularity Contest Report" msgstr "تقرير مسابقة الشعبية" #: lib/Padre/PPI/EndifyPod.pm:38 #, fuzzy msgid "Error while searching for POD" msgstr "خطأ عند مناداة %s " #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:53 #, fuzzy msgid "Failed to merge the POD fragments" msgstr "فشل انشاء المسار '%s'" #: lib/Padre/PPI/EndifyPod.pm:60 #, fuzzy msgid "Failed to delete POD fragment" msgstr "فشل تنفيذ التشغيل\n" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, fuzzy, perl-format msgid "Unsupported OS: %s" msgstr "غير مدعوم" #: lib/Padre/Util/FileBrowser.pm:193 msgid "Failed to execute process\n" msgstr "فشل تنفيذ التشغيل\n" #: lib/Padre/Util/FileBrowser.pm:216 #, fuzzy msgid "Could not find KDE or GNOME" msgstr "فشل العثور على جذر المشروع" #: lib/Padre/Util/Template.pm:53 #, fuzzy msgid "New module" msgstr "ملف جديد" #: lib/Padre/Util/Template.pm:53 #, fuzzy msgid "Module name:" msgstr "اسم الوحده:" #: lib/Padre/Wx/About.pm:25 #, fuzzy msgid "About Padre" msgstr "حول" #: lib/Padre/Wx/About.pm:64 msgid "Development" msgstr "التطوير" #: lib/Padre/Wx/About.pm:69 msgid "Translation" msgstr "الترجمة" #: lib/Padre/Wx/About.pm:74 #: lib/Padre/Wx/About.pm:317 #, fuzzy msgid "System Info" msgstr "خطوة للداخل" #: lib/Padre/Wx/About.pm:86 #: lib/Padre/Wx/ActionLibrary.pm:267 #: lib/Padre/Wx/Browser.pm:111 #: lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/Find.pm:160 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 #: lib/Padre/Wx/Dialog/KeyBindings.pm:135 #: lib/Padre/Wx/Dialog/RegexEditor.pm:238 #: lib/Padre/Wx/Dialog/Replace.pm:191 msgid "&Close" msgstr "ا&غلاق" #: lib/Padre/Wx/About.pm:102 msgid "Created by" msgstr "" #: lib/Padre/Wx/About.pm:103 #: lib/Padre/Wx/About.pm:135 msgid "The Padre Development Team" msgstr "فريق مطوري برنامج Padre" #: lib/Padre/Wx/About.pm:105 msgid "Padre is free software; you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "" #: lib/Padre/Wx/About.pm:106 msgid "Blue butterfly on a green leaf" msgstr "" #: lib/Padre/Wx/About.pm:107 msgid "splash image is based on work by" msgstr "" #: lib/Padre/Wx/About.pm:227 msgid "The Padre Translation Team" msgstr "فريق ترجمة Padre" #: lib/Padre/Wx/About.pm:318 #, fuzzy msgid "Config:" msgstr "دليل التعريف:" #: lib/Padre/Wx/About.pm:337 msgid "Uptime" msgstr "مدة التشغيل" #: lib/Padre/Wx/About.pm:342 msgid "unsupported" msgstr "غير مدعوم" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "افتراضي النظام" #: lib/Padre/Wx/ActionLibrary.pm:40 #, fuzzy msgid "Switch language to system default" msgstr "تبديل القوائم للافتراضي %s" #: lib/Padre/Wx/ActionLibrary.pm:69 #, fuzzy, perl-format msgid "Switch Padre interface language to %s" msgstr "تبديل نوع الوثيقة ل %s" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dump the Padre object to STDOUT" msgstr "طباعة كائن Padre إلى STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:90 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Delay the action queue for 10 seconds" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:111 msgid "Stops processing of other action queue items for 10 seconds" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Delay the action queue for 30 seconds" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:120 msgid "Stops processing of other action queue items for 30 seconds" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:130 msgid "&New" msgstr "&جديد" #: lib/Padre/Wx/ActionLibrary.pm:131 msgid "Open a new empty document" msgstr "فتح وثيقة فارغه جديدة" #: lib/Padre/Wx/ActionLibrary.pm:141 msgid "Perl 5 Script" msgstr "ملف نصي Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:142 msgid "Open a document with a skeleton Perl 5 script" msgstr "فتح وثيقة مع هيكل مستند Perl 5 نصي " #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Perl 5 Module" msgstr "وحدة Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:151 msgid "Open a document with a skeleton Perl 5 module" msgstr "فتح وثيقة مع هيكل وحدة Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 Test" msgstr "اختبار Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 test script" msgstr "فتح وثيقة مع هيكل مستند اختبار Perl 5 نصي" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Perl 6 Script" msgstr "ملف نصي Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:171 msgid "Open a document with a skeleton Perl 6 script" msgstr "فتح وثيقة مع هيكل وحدة Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:181 #, fuzzy msgid "Perl Distribution..." msgstr "وحده توزيع بيرل (Module::Starter)" #: lib/Padre/Wx/ActionLibrary.pm:182 #, fuzzy msgid "Setup a skeleton Perl module distribution" msgstr "إعداد لهيكل توزيعة Perl باستخدام Module::Starter" #: lib/Padre/Wx/ActionLibrary.pm:196 #, fuzzy msgid "&Open" msgstr "فتح" #: lib/Padre/Wx/ActionLibrary.pm:197 #, fuzzy msgid "Browse directory of the current document to open one or several files" msgstr "تصفح دليل الوثيقة الحالية لفتح ملف" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Open &URL..." msgstr "فتح ال&رابط..." #: lib/Padre/Wx/ActionLibrary.pm:208 msgid "Open a file from a remote location" msgstr "فتح ملف من موقع بعيد" #: lib/Padre/Wx/ActionLibrary.pm:221 #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, fuzzy msgid "Open in File Browser" msgstr "افتح في متصفح الملفات" #: lib/Padre/Wx/ActionLibrary.pm:222 #, fuzzy msgid "Opens the current document using the file browser" msgstr "الوثيقة الحالية ليست ملف .t" #: lib/Padre/Wx/ActionLibrary.pm:231 msgid "Open with Default System Editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:234 msgid "Opens the file with the default system editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:245 #, fuzzy msgid "Open in Command Line" msgstr "سطر الاوامر" #: lib/Padre/Wx/ActionLibrary.pm:246 #, fuzzy msgid "Opens a command line using the current document folder" msgstr "تطبيق ملف patch إلى الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:255 msgid "Open Example" msgstr "فتح المثال" #: lib/Padre/Wx/ActionLibrary.pm:256 msgid "Browse the directory of the installed examples to open one file" msgstr "تصفح دليل الأمثلة المثبتة لفتح ملف واحد" #: lib/Padre/Wx/ActionLibrary.pm:268 msgid "Close current document" msgstr "اغلاق الوثيقه الحاليه" #: lib/Padre/Wx/ActionLibrary.pm:281 #, fuzzy msgid "Close this Project" msgstr "اغلاق هذا المشروع" #: lib/Padre/Wx/ActionLibrary.pm:282 msgid "Close all the files belonging to the current project" msgstr "إغلاق كافة الملفات المنتمين إلى المشروع الحالي" #: lib/Padre/Wx/ActionLibrary.pm:288 #: lib/Padre/Wx/ActionLibrary.pm:308 msgid "File is not in a project" msgstr "الملف ليس في مشروع" #: lib/Padre/Wx/ActionLibrary.pm:302 #, fuzzy msgid "Close other Projects" msgstr "اغلاق المشاريع الأخرى" #: lib/Padre/Wx/ActionLibrary.pm:303 msgid "Close all the files that do not belong to the current project" msgstr "اغلاق جميع الملفات التي لا تنتمي إلى المشروع الحالي" #: lib/Padre/Wx/ActionLibrary.pm:322 #, fuzzy msgid "Close all Files" msgstr "اغلاق كل الملفات" #: lib/Padre/Wx/ActionLibrary.pm:323 msgid "Close all the files open in the editor" msgstr "إغلاق كافة الملفات المفتوحة في المحرر" #: lib/Padre/Wx/ActionLibrary.pm:332 #, fuzzy msgid "Close all other Files" msgstr "اغلاق الملف الأخرى" #: lib/Padre/Wx/ActionLibrary.pm:333 msgid "Close all the files except the current one" msgstr "اغلاق جميع الملفات باستثناء الملف الحالي" #: lib/Padre/Wx/ActionLibrary.pm:342 #, fuzzy msgid "Close Files..." msgstr "اغلاق كل الملفات" #: lib/Padre/Wx/ActionLibrary.pm:343 msgid "Select some open files for closing" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:352 msgid "Reload File" msgstr "اعادة تحميل الملف" #: lib/Padre/Wx/ActionLibrary.pm:353 msgid "Reload current file from disk" msgstr "اعاده تحميل الملف الحالي من القرص" #: lib/Padre/Wx/ActionLibrary.pm:362 #, fuzzy msgid "Reload All" msgstr "اعادة تحميل الملف" #: lib/Padre/Wx/ActionLibrary.pm:363 msgid "Reload all files currently open" msgstr "اعادة تحميل كل الملفات المفتوحة حاليا" #: lib/Padre/Wx/ActionLibrary.pm:372 #, fuzzy msgid "Reload Some..." msgstr "اعادة تحميل الملف" #: lib/Padre/Wx/ActionLibrary.pm:373 msgid "Select some open files for reload" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:386 #: lib/Padre/Wx/Dialog/Preferences.pm:917 #: lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "&حفظ" #: lib/Padre/Wx/ActionLibrary.pm:387 msgid "Save current document" msgstr "تحميل الوثيقه الحاليه" #: lib/Padre/Wx/ActionLibrary.pm:399 #, fuzzy msgid "Save &As..." msgstr "حفظ ك..." #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Allow the selection of another name to save the current document" msgstr "السماح لاختيار اسم آخر لحفظ المستند الحالي" #: lib/Padre/Wx/ActionLibrary.pm:412 msgid "Save Intuition" msgstr "حدس الحفظ" #: lib/Padre/Wx/ActionLibrary.pm:413 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:423 msgid "Save All" msgstr "حفظ الكل" #: lib/Padre/Wx/ActionLibrary.pm:424 msgid "Save all the files" msgstr "حفظ كل الملفات" #: lib/Padre/Wx/ActionLibrary.pm:436 #: lib/Padre/Wx/Main.pm:3641 msgid "Open Selection" msgstr "فتح الاختيار" #: lib/Padre/Wx/ActionLibrary.pm:437 msgid "List the files that match the current selection and let the user pick one to open" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:446 #, fuzzy msgid "Open Session..." msgstr "فتح الجلسة" #: lib/Padre/Wx/ActionLibrary.pm:447 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "تحديد جلسة. إغلاق كافة الملفات المفتوحة حاليا وفتح كل الملفات المدرجة في الجلسة" #: lib/Padre/Wx/ActionLibrary.pm:457 #, fuzzy msgid "Save Session..." msgstr "حفظ الجلسة ك" #: lib/Padre/Wx/ActionLibrary.pm:458 msgid "Ask for a session name and save the list of files currently opened" msgstr "السؤال عن اسم الجلسة وحفظ قائمة الملفات المفتوحة حاليا" #: lib/Padre/Wx/ActionLibrary.pm:473 #, fuzzy msgid "&Print..." msgstr "&طباعه" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "Print the current document" msgstr "طباعة الوثيقه الحاليه" #: lib/Padre/Wx/ActionLibrary.pm:493 msgid "Open All Recent Files" msgstr "فتح جميع الملفات الاخيرة" #: lib/Padre/Wx/ActionLibrary.pm:494 msgid "Open all the files listed in the recent files list" msgstr "فتح كافة الملفات المدرجة في قائمة الملفات الأخيرة" #: lib/Padre/Wx/ActionLibrary.pm:502 msgid "Clean Recent Files List" msgstr "حذف قائمه الملفات الاخيرة" #: lib/Padre/Wx/ActionLibrary.pm:503 msgid "Remove the entries from the recent files list" msgstr "إزالة المدخلات من قائمة الملفات الأخيرة" #: lib/Padre/Wx/ActionLibrary.pm:514 #: lib/Padre/Wx/Dialog/DocStats.pm:31 msgid "Document Statistics" msgstr "احصائيات الوثيقه" #: lib/Padre/Wx/ActionLibrary.pm:515 msgid "Word count and other statistics of the current document" msgstr "عدد الكلمات وإحصاءات أخرى من الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:527 msgid "&Quit" msgstr "&خروج" #: lib/Padre/Wx/ActionLibrary.pm:528 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "السؤال ما إذا كان ينبغي حفظ الملفات الغير محفوظة ومن ثم الخروج من Padre" #: lib/Padre/Wx/ActionLibrary.pm:547 msgid "&Undo" msgstr "ا&لغاء التغييرات" #: lib/Padre/Wx/ActionLibrary.pm:548 msgid "Undo last change in current file" msgstr "الغاء آخر تغيير في الملف الحالي" #: lib/Padre/Wx/ActionLibrary.pm:567 msgid "&Redo" msgstr "ا&عاده التغييرات" #: lib/Padre/Wx/ActionLibrary.pm:568 msgid "Redo last undo" msgstr "إعادة الغاء التغييرات الأخير" #: lib/Padre/Wx/ActionLibrary.pm:581 #, fuzzy msgid "Select All" msgstr "اختيار الكل" #: lib/Padre/Wx/ActionLibrary.pm:582 msgid "Select all the text in the current document" msgstr "اختيار كل النص في الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:594 #, fuzzy msgid "Mark Selection Start" msgstr "تحديد بدايه الاختيار" #: lib/Padre/Wx/ActionLibrary.pm:595 msgid "Mark the place where the selection should start" msgstr "تحديد مكان بدء الاختيار" #: lib/Padre/Wx/ActionLibrary.pm:606 #, fuzzy msgid "Mark Selection End" msgstr "تحديد نهايه الاختيار" #: lib/Padre/Wx/ActionLibrary.pm:607 msgid "Mark the place where the selection should end" msgstr "تحديد مكان انتهاء الاختيار" #: lib/Padre/Wx/ActionLibrary.pm:618 #, fuzzy msgid "Clear Selection Marks" msgstr "ازاله علامات الاختيار" #: lib/Padre/Wx/ActionLibrary.pm:619 msgid "Remove all the selection marks" msgstr "ازاله كل علامات الاختيار" #: lib/Padre/Wx/ActionLibrary.pm:633 msgid "Cu&t" msgstr "قص&" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Remove the current selection and put it in the clipboard" msgstr "إزالة الاختيار الحالي ووضعه في الحافظة" #: lib/Padre/Wx/ActionLibrary.pm:648 msgid "&Copy" msgstr "نسخ&" #: lib/Padre/Wx/ActionLibrary.pm:649 msgid "Put the current selection in the clipboard" msgstr "وضع الاختيار الحالي في الحافظة" #: lib/Padre/Wx/ActionLibrary.pm:664 #, fuzzy msgid "Copy Full Filename" msgstr "نسخ اسم الملف الكامل" #: lib/Padre/Wx/ActionLibrary.pm:665 msgid "Put the full path of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:678 #, fuzzy msgid "Copy Filename" msgstr "نسخ اسم الملف" #: lib/Padre/Wx/ActionLibrary.pm:679 msgid "Put the name of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:692 #, fuzzy msgid "Copy Directory Name" msgstr "نسخ اسم الدليل" #: lib/Padre/Wx/ActionLibrary.pm:693 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:705 #, fuzzy msgid "Copy Editor Content" msgstr "نسخ محتوى المحرر" #: lib/Padre/Wx/ActionLibrary.pm:706 msgid "Put the content of the current document in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:721 msgid "&Paste" msgstr "لصق&" #: lib/Padre/Wx/ActionLibrary.pm:722 msgid "Paste the clipboard to the current location" msgstr "لصق الحافظة إلى الموقع الحالي" #: lib/Padre/Wx/ActionLibrary.pm:735 msgid "&Go To..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:736 msgid "Jump to a specific line number or character position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:746 msgid "&Next Problem" msgstr "ال&مشكلة التالية" #: lib/Padre/Wx/ActionLibrary.pm:747 msgid "Jump to the code that triggered the next error" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:757 msgid "&Quick Fix" msgstr "&حل سريع" #: lib/Padre/Wx/ActionLibrary.pm:758 msgid "Apply one of the quick fixes for the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:783 msgid "No suggestions" msgstr "بلا اقتراحات" #: lib/Padre/Wx/ActionLibrary.pm:812 #, fuzzy msgid "&Autocomplete" msgstr "ا&كمال تلقائي" #: lib/Padre/Wx/ActionLibrary.pm:813 msgid "Offer completions to the current string. See Preferences" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:823 #, fuzzy msgid "&Brace Matching" msgstr "&تحديد القوص المماثل" #: lib/Padre/Wx/ActionLibrary.pm:824 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:834 msgid "&Select to Matching Brace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:835 msgid "Select to the matching opening or closing brace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:846 #, fuzzy msgid "&Join Lines" msgstr "&دمج الاسطر" #: lib/Padre/Wx/ActionLibrary.pm:847 msgid "Join the next line to the end of the current line." msgstr "وصل السطر التالي إلى نهاية السطر الحالي." #: lib/Padre/Wx/ActionLibrary.pm:857 #, fuzzy msgid "Special Value..." msgstr "قيمة خاصة:" #: lib/Padre/Wx/ActionLibrary.pm:858 #, fuzzy msgid "Select a date, filename or other value and insert at the current location" msgstr "اختيار تاريخ ،اسم الملف أو قيمة أخرى واضافتها في الموقع الحالي" #: lib/Padre/Wx/ActionLibrary.pm:870 #, fuzzy msgid "Snippets..." msgstr "قصاصات" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "Select and insert a snippet at the current location" msgstr "اختيار واضافة قصاصة في الموقع الحالي" #: lib/Padre/Wx/ActionLibrary.pm:882 #, fuzzy msgid "File..." msgstr "ملفات" #: lib/Padre/Wx/ActionLibrary.pm:883 msgid "Select a file and insert its content at the current location" msgstr "اختيار ملف واضافة محتواته في الموقع الحالي" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "&Toggle Comment" msgstr "تبديل التعليق&" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Comment out or remove comment out of selected lines in the document" msgstr "اضافه أو ازالة تعليق للاسطر المختاره في الوثيقة" #: lib/Padre/Wx/ActionLibrary.pm:908 msgid "&Comment Selected Lines" msgstr "ا&ضافه تعليق للاسطر المختاره" #: lib/Padre/Wx/ActionLibrary.pm:909 msgid "Comment out selected lines in the document" msgstr "اضافه تعليق للاسطر المختاره في الوثيقة" #: lib/Padre/Wx/ActionLibrary.pm:920 msgid "&Uncomment Selected Lines" msgstr "ا&ضافه تعليق للاسطر المختاره" #: lib/Padre/Wx/ActionLibrary.pm:921 msgid "Remove comment out of selected lines in the document" msgstr "إزالة التعليق من الخطوط المختارة في الوثيقة" #: lib/Padre/Wx/ActionLibrary.pm:933 #, fuzzy msgid "Encode Document to System Default" msgstr "تشفير الوثيقة إلى افتراضي النظام" #: lib/Padre/Wx/ActionLibrary.pm:934 msgid "Change the encoding of the current document to the default of the operating system" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:944 #, fuzzy msgid "Encode Document to utf-8" msgstr "تشفير الوثيقة إلى utf-8" #: lib/Padre/Wx/ActionLibrary.pm:945 msgid "Change the encoding of the current document to utf-8" msgstr "تغيير التشفير للوثيقة الحالية ل utf-8" #: lib/Padre/Wx/ActionLibrary.pm:955 #, fuzzy msgid "Encode Document to..." msgstr "تشفير الوثيقة إلى..." #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "Select an encoding and encode the document to that" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:966 msgid "EOL to Windows" msgstr "تحويل نهايه السطر الى ويندوز " #: lib/Padre/Wx/ActionLibrary.pm:967 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "تغيير حرف نهاية السطر في الوثيقة الحالية لتلك المستخدمة في الملفات على مايكروسوفت ويندوز" #: lib/Padre/Wx/ActionLibrary.pm:976 msgid "EOL to Unix" msgstr "تحويل نهايه السطر الى يونكس" #: lib/Padre/Wx/ActionLibrary.pm:977 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "تغيير حرف نهاية السطر في الوثيقة الحالية لتلك المستخدمة في الملفات على يونكس، لينكس، وماكنتوش OSX" #: lib/Padre/Wx/ActionLibrary.pm:986 msgid "EOL to Mac Classic" msgstr "تحويل نهايه السطر الى ماكنتوش كلاسيك " #: lib/Padre/Wx/ActionLibrary.pm:987 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "تغيير حرف نهاية السطر في الوثيقة الحالية لتلك المستخدمة في الملفات على ماكنتوش الكلاسيكي" #: lib/Padre/Wx/ActionLibrary.pm:998 msgid "Tabs to Spaces..." msgstr "تحويل Tabs الى مسافات..." #: lib/Padre/Wx/ActionLibrary.pm:999 msgid "Convert all tabs to spaces in the current document" msgstr "تحويل جميع التبويبات لمسافات في الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:1008 msgid "Spaces to Tabs..." msgstr "تحويل المسافات الى Tabs..." #: lib/Padre/Wx/ActionLibrary.pm:1009 msgid "Convert all the spaces to tabs in the current document" msgstr "تحويل كل المسافات لتبويبات في الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:1018 msgid "Delete Trailing Spaces" msgstr "حذف المسافات عند النهايه" #: lib/Padre/Wx/ActionLibrary.pm:1019 msgid "Remove the spaces from the end of the selected lines" msgstr "إزالة المسافات من نهاية السطور المختارة" #: lib/Padre/Wx/ActionLibrary.pm:1028 msgid "Delete Leading Spaces" msgstr "حذف المسافات عند البدايه" #: lib/Padre/Wx/ActionLibrary.pm:1029 msgid "Remove the spaces from the beginning of the selected lines" msgstr "إزالة المسافات من بداية السطور المختارة" #: lib/Padre/Wx/ActionLibrary.pm:1040 msgid "Upper All" msgstr "تكبير حاله كل الاحرف" #: lib/Padre/Wx/ActionLibrary.pm:1041 msgid "Change the current selection to upper case" msgstr "تغيير الاختيار الحالي لأحرف كبيرة الحالة" #: lib/Padre/Wx/ActionLibrary.pm:1051 msgid "Lower All" msgstr "تصغير حاله كل الاحرف" #: lib/Padre/Wx/ActionLibrary.pm:1052 msgid "Change the current selection to lower case" msgstr "تغيير الاختيار الحالي لأحرف صغيرة الحالة" #: lib/Padre/Wx/ActionLibrary.pm:1062 msgid "Diff to Saved Version" msgstr "المقارنة مع النسخة المحفوظة" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Compare the file in the editor to that on the disk and show the diff in the output window" msgstr "مقارنة الملف في المحرر مع الموجود في القرص وإظهار الفرق في نافذة النتائج" #: lib/Padre/Wx/ActionLibrary.pm:1072 msgid "Apply Diff to File" msgstr "تطبيق ملف المقارنة للملف" #: lib/Padre/Wx/ActionLibrary.pm:1073 msgid "Apply a patch file to the current document" msgstr "تطبيق ملف patch إلى الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:1082 msgid "Apply Diff to Project" msgstr "تطبيق ملف المقارنة للمشروع" #: lib/Padre/Wx/ActionLibrary.pm:1083 msgid "Apply a patch file to the current project" msgstr "تطبيق ملف patch إلى المشروع الحالي" #: lib/Padre/Wx/ActionLibrary.pm:1094 #, fuzzy msgid "Filter through External Tool..." msgstr "الفلترة عن طريق أداة خارجية" #: lib/Padre/Wx/ActionLibrary.pm:1095 msgid "Filters the selection (or the whole document) through any external command." msgstr "يفلتر الاختيار (أو كل الوثيقة) عن طريق أي أمر خارجي" #: lib/Padre/Wx/ActionLibrary.pm:1104 #, fuzzy msgid "Show as Hexadecimal" msgstr "اظهار كعشري" #: lib/Padre/Wx/ActionLibrary.pm:1105 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1114 #, fuzzy msgid "Show as Decimal" msgstr "اظهار كعشري" #: lib/Padre/Wx/ActionLibrary.pm:1115 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1127 #, fuzzy msgid "&Find..." msgstr "بحث&" #: lib/Padre/Wx/ActionLibrary.pm:1128 msgid "Find text or regular expressions using a traditional dialog" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1138 #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Find Next" msgstr "ايجاد التالي" #: lib/Padre/Wx/ActionLibrary.pm:1140 msgid "Repeat the last find to find the next match" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1172 msgid "Failed to find any matches" msgstr "فشل العثور على أي مطابقة." #: lib/Padre/Wx/ActionLibrary.pm:1180 msgid "&Find Previous" msgstr "ا&يجاد السابق" #: lib/Padre/Wx/ActionLibrary.pm:1181 msgid "Repeat the last find, but backwards to find the previous match" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1193 msgid "Quick Find" msgstr "بحث سريع" #: lib/Padre/Wx/ActionLibrary.pm:1194 msgid "Incremental search seen at the bottom of the window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1211 msgid "Find next matching text using a toolbar-like dialog at the bottom of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Find Previous" msgstr "ايجاد السابق" #: lib/Padre/Wx/ActionLibrary.pm:1222 msgid "Find previous matching text using a toolbar-like dialog at the bottom of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1234 #, fuzzy msgid "Replace..." msgstr "استبدال" #: lib/Padre/Wx/ActionLibrary.pm:1235 msgid "Find a text and replace it" msgstr "ابحث عن نص واستبدله" #: lib/Padre/Wx/ActionLibrary.pm:1247 msgid "Find in Fi&les..." msgstr "...بحث في ال&ملفات" #: lib/Padre/Wx/ActionLibrary.pm:1248 msgid "Search for a text in all files below a given directory" msgstr "البحث عن نص في كل الملفات تحت الدليل المعطى" #: lib/Padre/Wx/ActionLibrary.pm:1261 #, fuzzy msgid "Open Resource..." msgstr "فتح المصدر" #: lib/Padre/Wx/ActionLibrary.pm:1262 msgid "Type in a filter to select a file" msgstr "اطبع اسم فلتر لاختيار ملف" #: lib/Padre/Wx/ActionLibrary.pm:1275 #, fuzzy msgid "Quick Menu Access..." msgstr "الوصول السريع للقائمة" #: lib/Padre/Wx/ActionLibrary.pm:1276 msgid "Quick access to all menu functions" msgstr "الوصول السريع لجميع وظائف القائمة" #: lib/Padre/Wx/ActionLibrary.pm:1291 msgid "Lock User Interface" msgstr "قفل واجهة المستخدم" #: lib/Padre/Wx/ActionLibrary.pm:1292 #, fuzzy msgid "If activated, do not allow moving around some of the windows" msgstr "السماح للمستخدم بتحريك بعض النوافذ" #: lib/Padre/Wx/ActionLibrary.pm:1303 msgid "Show Output" msgstr "اظهار النتائج" #: lib/Padre/Wx/ActionLibrary.pm:1304 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1313 msgid "Show Functions" msgstr "اظهار الوظائف" #: lib/Padre/Wx/ActionLibrary.pm:1314 msgid "Show a window listing all the functions in the current document" msgstr "اظهار نافذة تدرج كل الوظائف في الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:1323 #, fuzzy msgid "Show Command Line window" msgstr "سطر الاوامر" #: lib/Padre/Wx/ActionLibrary.pm:1324 #, fuzzy msgid "Show the command line window" msgstr "تعيين التركيز لنافذة المخطط" #: lib/Padre/Wx/ActionLibrary.pm:1333 #, fuzzy msgid "Show To-do List" msgstr "اظهار قائمه الخطأ" #: lib/Padre/Wx/ActionLibrary.pm:1334 #, fuzzy msgid "Show a window listing all todo items in the current document" msgstr "اظهار نافذة تدرج كل الوظائف في الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:1343 msgid "Show Outline" msgstr "اظهار المخطط" #: lib/Padre/Wx/ActionLibrary.pm:1344 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1353 msgid "Show Directory Tree" msgstr "اظهار شجرة الدليل" #: lib/Padre/Wx/ActionLibrary.pm:1354 msgid "Show a window with a directory browser of the current project" msgstr "اظهار نافذة مع متصفح دليل المشروع الحالي" #: lib/Padre/Wx/ActionLibrary.pm:1363 msgid "Show Syntax Check" msgstr "اظهار فحص بناء الجمل" #: lib/Padre/Wx/ActionLibrary.pm:1364 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "تشغيل التحقق من بناء الجمل في الوثيقة الحالية واظهار النتائج في نافذة" #: lib/Padre/Wx/ActionLibrary.pm:1373 #, fuzzy msgid "Show Errors" msgstr "اظهار قائمه الخطأ" #: lib/Padre/Wx/ActionLibrary.pm:1374 msgid "Show the list of errors received during execution of a script" msgstr "اظهار قائمة الأخطاء التي وردت خلال تنفيذ برنامج نصي" #: lib/Padre/Wx/ActionLibrary.pm:1383 #, fuzzy msgid "Hide Find in Files" msgstr "البحث في الملفات" #: lib/Padre/Wx/ActionLibrary.pm:1384 msgid "Hide the list of matches for a Find in Files search" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1392 msgid "Show Status Bar" msgstr "اظهار شريط الحاله" #: lib/Padre/Wx/ActionLibrary.pm:1393 msgid "Show/hide the status bar at the bottom of the screen" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1402 msgid "Show Toolbar" msgstr "اظهار شريط الادوات" #: lib/Padre/Wx/ActionLibrary.pm:1403 msgid "Show/hide the toolbar at the top of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1418 #, fuzzy msgid "Switch document type" msgstr "تبديل نوع الوثيقة ل %s" #: lib/Padre/Wx/ActionLibrary.pm:1430 msgid "Show Line Numbers" msgstr "اظهار ارقام الاسطر" #: lib/Padre/Wx/ActionLibrary.pm:1431 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1440 msgid "Show Code Folding" msgstr "اظهار طي المصدر" #: lib/Padre/Wx/ActionLibrary.pm:1441 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1450 msgid "Fold all" msgstr "طي الكل" #: lib/Padre/Wx/ActionLibrary.pm:1451 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1460 msgid "Unfold all" msgstr "الغاء طي الكل" #: lib/Padre/Wx/ActionLibrary.pm:1461 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1470 msgid "Show Call Tips" msgstr "اظهار نصائح المناداه" #: lib/Padre/Wx/ActionLibrary.pm:1471 msgid "When typing in functions allow showing short examples of the function" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1484 msgid "Show Current Line" msgstr "اظهار السطر الحالي" #: lib/Padre/Wx/ActionLibrary.pm:1485 msgid "Highlight the line where the cursor is" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1494 msgid "Show Right Margin" msgstr "اظهار الهامش الأيمن" #: lib/Padre/Wx/ActionLibrary.pm:1495 msgid "Show a vertical line indicating the right margin" msgstr "اظهار خط عمودي يدل على الهامش الأيمن" #: lib/Padre/Wx/ActionLibrary.pm:1506 msgid "Show Newlines" msgstr "اظهار احرف السطر الجديد " #: lib/Padre/Wx/ActionLibrary.pm:1507 msgid "Show/hide the newlines with special character" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1516 msgid "Show Whitespaces" msgstr "اظهار الفراغات" #: lib/Padre/Wx/ActionLibrary.pm:1517 msgid "Show/hide the tabs and the spaces with special characters" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1526 msgid "Show Indentation Guide" msgstr "اظهار دليل الازاحه" #: lib/Padre/Wx/ActionLibrary.pm:1527 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1536 msgid "Word-Wrap" msgstr "العوده الى البدايه عند نهايه السطر" #: lib/Padre/Wx/ActionLibrary.pm:1537 msgid "Wrap long lines" msgstr "العودة للبداية للأسطر الطويلة" #: lib/Padre/Wx/ActionLibrary.pm:1548 msgid "Increase Font Size" msgstr "تكبير حجم الخط" #: lib/Padre/Wx/ActionLibrary.pm:1549 msgid "Make the letters bigger in the editor window" msgstr "تكبير الأحرف في نافذة المحرر" #: lib/Padre/Wx/ActionLibrary.pm:1558 msgid "Decrease Font Size" msgstr "تصغير حجم الخط" #: lib/Padre/Wx/ActionLibrary.pm:1559 msgid "Make the letters smaller in the editor window" msgstr "تصغير الأحرف في نافذة المحرر" #: lib/Padre/Wx/ActionLibrary.pm:1568 msgid "Reset Font Size" msgstr "إعادة ضبط حجم الخط" #: lib/Padre/Wx/ActionLibrary.pm:1569 #, fuzzy msgid "Reset the size of the letters to the default in the editor window" msgstr "إعادة تعيين حجم الأحرف إلى الافتراضي في نافذة المحرر" #: lib/Padre/Wx/ActionLibrary.pm:1581 #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "Set Bookmark" msgstr "تحديد علامه" #: lib/Padre/Wx/ActionLibrary.pm:1582 msgid "Create a bookmark in the current file current row" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1592 #: lib/Padre/Wx/Dialog/Bookmarks.pm:57 #, fuzzy msgid "Go to Bookmark" msgstr "ذهاب الى علامه" #: lib/Padre/Wx/ActionLibrary.pm:1593 msgid "Select a bookmark created earlier and jump to that position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1610 #: lib/Padre/Wx/ActionLibrary.pm:1625 msgid "Switch highlighting colours" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1639 msgid "&Full Screen" msgstr "كامل الشاشة&" #: lib/Padre/Wx/ActionLibrary.pm:1640 msgid "Set Padre in full screen mode" msgstr "وضع Padre في نمط الشاشة الكاملة" #: lib/Padre/Wx/ActionLibrary.pm:1661 #, fuzzy msgid "Check for Common (Beginner) Errors" msgstr "تأكد من أخطاء (المبتدئين) الشائعة" #: lib/Padre/Wx/ActionLibrary.pm:1662 #, fuzzy msgid "Check the current file for common beginner errors" msgstr "تأكد من أخطاء (المبتدئين) الشائعة" #: lib/Padre/Wx/ActionLibrary.pm:1673 msgid "Find Unmatched Brace" msgstr "ايجاد قوص بلا مثيل" #: lib/Padre/Wx/ActionLibrary.pm:1674 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1685 msgid "Find Variable Declaration" msgstr "ايجاد اعلان متغير" #: lib/Padre/Wx/ActionLibrary.pm:1686 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1697 msgid "Find Method Declaration" msgstr "ايجاد اعلان الmethod" #: lib/Padre/Wx/ActionLibrary.pm:1698 msgid "Find where the selected function was defined and put the focus there." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1710 msgid "Vertically Align Selected" msgstr "محاذاة الاسطر المختاره عموديا" #: lib/Padre/Wx/ActionLibrary.pm:1711 msgid "Align a selection of text to the same left column." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1722 #, fuzzy msgid "Newline Same Column" msgstr "سطر الجديد بنفس العمود" #: lib/Padre/Wx/ActionLibrary.pm:1724 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1736 #, fuzzy msgid "Create Project Tagsfile" msgstr "انشاء مشروع tagsfile" #: lib/Padre/Wx/ActionLibrary.pm:1737 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1748 #, fuzzy msgid "Automatic Bracket Completion" msgstr "تكميل الأقواص الاتوماتيكي" #: lib/Padre/Wx/ActionLibrary.pm:1749 msgid "When typing { insert a closing } automatically" msgstr "عند كتابة { إضف } تلقائيا لاغلاقها" #: lib/Padre/Wx/ActionLibrary.pm:1766 #, fuzzy msgid "Rename Variable" msgstr "اعاده تسميه المتغير ضمن النطاق" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1779 msgid "Change variable to camelCase" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1780 msgid "Change variable style from camel_case to camelCase" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1793 msgid "Change variable to CamelCase" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "Change variable style from camel_case to CamelCase" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "Change variable style to using_underscores" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1808 msgid "Change variable style from camelCase to camel_case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "Change variable style to Using_Underscores" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1822 msgid "Change variable style from camelCase to Camel_Case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1835 #, fuzzy msgid "Extract Subroutine..." msgstr "استخراج روتين ثانوياستخراج روتين ثانوي" #: lib/Padre/Wx/ActionLibrary.pm:1837 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1847 #, fuzzy msgid "Name for the new subroutine" msgstr "الرجاء ادخال اسم للروتين الثانوي الجديد" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Extract Subroutine" msgstr "استخراج روتين ثانوياستخراج روتين ثانوي" #: lib/Padre/Wx/ActionLibrary.pm:1862 #, fuzzy msgid "Introduce Temporary Variable..." msgstr "إدخال متغير مؤقت" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Assign the selected expression to a newly declared variable" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1870 msgid "Variable Name" msgstr "اسم المتغير" #: lib/Padre/Wx/ActionLibrary.pm:1871 msgid "Introduce Temporary Variable" msgstr "إدخال متغير مؤقت" #: lib/Padre/Wx/ActionLibrary.pm:1885 msgid "Move POD to __END__" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1886 #, fuzzy msgid "Combine scattered POD at the end of the document" msgstr "وصل السطر التالي إلى نهاية السطر الحالي." #: lib/Padre/Wx/ActionLibrary.pm:1901 msgid "Run Script" msgstr "تشغيل ملف نصي" #: lib/Padre/Wx/ActionLibrary.pm:1902 msgid "Runs the current document and shows its output in the output panel." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1917 #, fuzzy msgid "Run Script (Debug Info)" msgstr "تشغيل الملف النصي (مع معلومات تصحيح الأخطاء)" #: lib/Padre/Wx/ActionLibrary.pm:1918 msgid "Run the current document but include debug info in the output." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1929 msgid "Run Command" msgstr "تشغيل الامر" #: lib/Padre/Wx/ActionLibrary.pm:1930 msgid "Runs a shell command and shows the output." msgstr "تشغيل أمر مع اظهار النتائج." #: lib/Padre/Wx/ActionLibrary.pm:1940 #, fuzzy msgid "Run Build and Tests" msgstr "تشغيل الاختبارات" #: lib/Padre/Wx/ActionLibrary.pm:1941 msgid "Builds the current project, then run all tests." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1952 msgid "Run Tests" msgstr "تشغيل الاختبارات" #: lib/Padre/Wx/ActionLibrary.pm:1954 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1972 msgid "Run This Test" msgstr "تشغيل هذا الاختبار" #: lib/Padre/Wx/ActionLibrary.pm:1973 msgid "Run the current test if the current document is a test. (prove -bv)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1985 #, fuzzy msgid "Stop Execution" msgstr "ايقاف التنفيذ" #: lib/Padre/Wx/ActionLibrary.pm:1986 msgid "Stop a running task." msgstr "ايقاف تشغيل مهمة." #: lib/Padre/Wx/ActionLibrary.pm:2011 #, fuzzy msgid "Step In (&s)" msgstr "خطوة للداخل" #: lib/Padre/Wx/ActionLibrary.pm:2013 msgid "Execute the next statement, enter subroutine if needed. (Start debugger if it is not yet running)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2028 #, fuzzy msgid "Step Over (&n)" msgstr "خطوة فوق" #: lib/Padre/Wx/ActionLibrary.pm:2030 msgid "Execute the next statement. If it is a subroutine call, stop only after it returned. (Start debugger if it is not yet running)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2047 #, fuzzy msgid "Step Out (&r)" msgstr "خطوة للخارج" #: lib/Padre/Wx/ActionLibrary.pm:2048 msgid "If within a subroutine, run till return is called and then stop." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2063 #, fuzzy msgid "Run till Breakpoint (&c)" msgstr "تشغيل حتى نقطة التوقف" #: lib/Padre/Wx/ActionLibrary.pm:2064 msgid "Start running and/or continue running till next breakpoint or watch" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2078 #, fuzzy msgid "Jump to Current Execution Line" msgstr "القفز الى سطر التنفيذ الحالي" #: lib/Padre/Wx/ActionLibrary.pm:2079 msgid "Set focus to the line where the current statement is in the debugging process" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2094 #, fuzzy msgid "Set Breakpoint (&b)" msgstr "تعيين نقطة توقف" #: lib/Padre/Wx/ActionLibrary.pm:2095 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "تعيين نقطة توقف على موقع المؤشر الحالي مع شرط" #: lib/Padre/Wx/ActionLibrary.pm:2109 #, fuzzy msgid "Remove Breakpoint" msgstr "إزالة نقطة توقف" #: lib/Padre/Wx/ActionLibrary.pm:2110 msgid "Remove the breakpoint at the current location of the cursor" msgstr "إزالة نقطة التوقف التي على موقع المؤشر الحالي" #: lib/Padre/Wx/ActionLibrary.pm:2124 #, fuzzy msgid "List All Breakpoints" msgstr "إظهار كل نقاط التوقف" #: lib/Padre/Wx/ActionLibrary.pm:2125 msgid "List all the breakpoints on the console" msgstr "ادراج كل نقاط التوقف على الشاشة" #: lib/Padre/Wx/ActionLibrary.pm:2139 #, fuzzy msgid "Run to Cursor" msgstr "تشغيل حتى المؤشر" #: lib/Padre/Wx/ActionLibrary.pm:2140 msgid "Set a breakpoint at the line where to cursor is and run till there" msgstr "تعيين نقطة توقف عند سطر المؤشر الحالي والتشغيل حتى هناك" #: lib/Padre/Wx/ActionLibrary.pm:2155 #, fuzzy msgid "Show Stack Trace (&t)" msgstr "اظهار Stack Trace" #: lib/Padre/Wx/ActionLibrary.pm:2156 msgid "When in a subroutine call show all the calls since the main of the program" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2171 #, fuzzy msgid "Display Value" msgstr "اظهار القيمة" #: lib/Padre/Wx/ActionLibrary.pm:2172 msgid "Display the current value of a variable in the right hand side debugger pane" msgstr "عرض القيمة الحالية من متغير في الجهة اليمنى من شاشة المصحح" #: lib/Padre/Wx/ActionLibrary.pm:2186 #, fuzzy msgid "Show Value Now (&x)" msgstr "إظهار القيمة" #: lib/Padre/Wx/ActionLibrary.pm:2187 #, fuzzy msgid "Show the value of a variable now in a pop-up window." msgstr "اظهار قيمة متغير." #: lib/Padre/Wx/ActionLibrary.pm:2201 #, fuzzy msgid "Evaluate Expression..." msgstr "تقييم التعبير" #: lib/Padre/Wx/ActionLibrary.pm:2202 msgid "Type in any expression and evaluate it in the debugged process" msgstr "اطبع أي تعبير واحصل على قيمتها في العملية الذي يتم تصحيحها" #: lib/Padre/Wx/ActionLibrary.pm:2217 #, fuzzy msgid "Quit Debugger (&q)" msgstr "الخروج من المصحح" #: lib/Padre/Wx/ActionLibrary.pm:2218 msgid "Quit the process being debugged" msgstr "إنهاء العملية الذي يتم تصحيحها" #: lib/Padre/Wx/ActionLibrary.pm:2231 #: lib/Padre/Wx/Dialog/PluginManager.pm:131 #: lib/Padre/Wx/Dialog/Preferences.pm:828 msgid "Preferences" msgstr "تفضيلات" #: lib/Padre/Wx/ActionLibrary.pm:2232 msgid "Edit the user preferences" msgstr "تحرير تفضيلات المستخدم" #: lib/Padre/Wx/ActionLibrary.pm:2240 #, fuzzy msgid "Preferences Sync" msgstr "تفضيلات" #: lib/Padre/Wx/ActionLibrary.pm:2241 msgid "Share your preferences between multiple computers" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2250 #: lib/Padre/Wx/Dialog/KeyBindings.pm:29 msgid "Key Bindings" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2251 msgid "Show the key bindings dialog to configure Padre shortcuts" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2259 #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "محرر التعبير العادي" #: lib/Padre/Wx/ActionLibrary.pm:2260 msgid "Open the regular expression editing window" msgstr "فتح نافذة تحرير التعبير العادي" #: lib/Padre/Wx/ActionLibrary.pm:2268 #, fuzzy msgid "Edit with Regex Editor" msgstr "محرر التعبير العادي" #: lib/Padre/Wx/ActionLibrary.pm:2269 #, fuzzy msgid "Open the selected text in the Regex Editor" msgstr "تكبير الأحرف في نافذة المحرر" #: lib/Padre/Wx/ActionLibrary.pm:2281 #: lib/Padre/Wx/Dialog/PluginManager.pm:35 msgid "Plug-in Manager" msgstr "مدير البرنامج المساعد" #: lib/Padre/Wx/ActionLibrary.pm:2282 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2297 msgid "Plug-in List (CPAN)" msgstr "قائمة البرامج المساعدة (CPAN)" #: lib/Padre/Wx/ActionLibrary.pm:2298 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "فتح متصفح لبحث CPAN تبين حزم برامج Padre::Plugin" #: lib/Padre/Wx/ActionLibrary.pm:2306 msgid "Edit My Plug-in" msgstr "تحرير برنامجي المساعد" #: lib/Padre/Wx/ActionLibrary.pm:2307 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "فشل العثور على البرنامج المساعد Padre::Plugin::My" #: lib/Padre/Wx/ActionLibrary.pm:2323 msgid "Reload My Plug-in" msgstr "اعاده تحميل البرنامج المساعد" #: lib/Padre/Wx/ActionLibrary.pm:2324 msgid "This function reloads the My plug-in without restarting Padre" msgstr "هذه الوظيفة تقوم بإعادة تحميل برنامج My المساعد دون إعادة تشغيل Padre" #: lib/Padre/Wx/ActionLibrary.pm:2332 #: lib/Padre/Wx/ActionLibrary.pm:2336 #: lib/Padre/Wx/ActionLibrary.pm:2337 msgid "Reset My plug-in" msgstr "اعادة تشغيل برنامجي المساعد" #: lib/Padre/Wx/ActionLibrary.pm:2333 msgid "Reset the My plug-in to the default" msgstr "إعادة تعيين برنامج My المساعد للافتراضي" #: lib/Padre/Wx/ActionLibrary.pm:2352 msgid "Reload All Plug-ins" msgstr "اعاده تحميل كل البرامج المساعده" #: lib/Padre/Wx/ActionLibrary.pm:2353 msgid "Reload all plug-ins from disk" msgstr "اعاده تحميل كل البرامج المساعده من القرص" #: lib/Padre/Wx/ActionLibrary.pm:2361 msgid "(Re)load Current Plug-in" msgstr "اعاده تحميل البرنامج المساعد الحالي" #: lib/Padre/Wx/ActionLibrary.pm:2362 msgid "Reloads (or initially loads) the current plug-in" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2370 msgid "Install CPAN Module" msgstr "تثبيت وحدة CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2371 msgid "Install a Perl module from CPAN" msgstr "تثبيت وحدة Perl من CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2383 msgid "Install Local Distribution" msgstr "تثبيت التوزيع المحلي" #: lib/Padre/Wx/ActionLibrary.pm:2384 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2393 msgid "Install Remote Distribution" msgstr "تثبيت التوزيع البعيد" #: lib/Padre/Wx/ActionLibrary.pm:2394 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "استعمال برنامج pip لتنزيل ملف tar.gz وتثبيته بواسطة CPAN.pm" #: lib/Padre/Wx/ActionLibrary.pm:2403 msgid "Open CPAN Config File" msgstr "فتح ملف تعريفات CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2404 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "فتح CPAN::MyConfig.pm للتحرير اليدوي من الخبراء" #: lib/Padre/Wx/ActionLibrary.pm:2415 #: lib/Padre/Wx/ActionLibrary.pm:2461 msgid "Last Visited File" msgstr "آخر ملف تم زيارته" #: lib/Padre/Wx/ActionLibrary.pm:2416 msgid "Switch to edit the file that was previously edited (can switch back and forth)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2426 msgid "Oldest Visited File" msgstr "أقدم ملف تم زيارته" #: lib/Padre/Wx/ActionLibrary.pm:2427 msgid "Put focus on tab visited the longest time ago." msgstr "تعيين التركيز على التبويب الذي تم زيارته منذ وقت أطول" #: lib/Padre/Wx/ActionLibrary.pm:2437 msgid "Next File" msgstr "الملف التالي" #: lib/Padre/Wx/ActionLibrary.pm:2438 msgid "Put focus on the next tab to the right" msgstr "تعيين التركيز على التبويب التالية إلى اليمين" #: lib/Padre/Wx/ActionLibrary.pm:2448 msgid "Previous File" msgstr "الملف السابق" #: lib/Padre/Wx/ActionLibrary.pm:2449 msgid "Put focus on the previous tab to the left" msgstr "تعيين التركيز على التبويب السابقة إلى اليسار" #: lib/Padre/Wx/ActionLibrary.pm:2462 msgid "Jump between the two last visited files back and force" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2472 msgid "Goto previous position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2473 msgid "Jump to the last position saved in memory" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2485 #: lib/Padre/Wx/Dialog/Positions.pm:108 msgid "Show previous positions" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2486 msgid "Show the list of positions recently visited" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2499 msgid "Right Click" msgstr "نقر الزر الأيمن" #: lib/Padre/Wx/ActionLibrary.pm:2500 msgid "Imitate clicking on the right mouse button" msgstr "تقليد النقر على زر الفأرة الأيمن" #: lib/Padre/Wx/ActionLibrary.pm:2513 #, fuzzy msgid "Go to Functions Window" msgstr "ذهاب الى نافذه الوظائف" #: lib/Padre/Wx/ActionLibrary.pm:2514 #, fuzzy msgid "Set the focus to the \"Functions\" window" msgstr "تعيين التركيز لنافذة الوظائف" #: lib/Padre/Wx/ActionLibrary.pm:2527 #, fuzzy msgid "Go to Todo Window" msgstr "ذهاب الى النافذه الرئيسيه" #: lib/Padre/Wx/ActionLibrary.pm:2528 #, fuzzy msgid "Set the focus to the \"Todo\" window" msgstr "تعيين التركيز لنافذة النتائج" #: lib/Padre/Wx/ActionLibrary.pm:2539 #, fuzzy msgid "Go to Outline Window" msgstr "ذهاب الى نافذه المخطط" #: lib/Padre/Wx/ActionLibrary.pm:2540 #, fuzzy msgid "Set the focus to the \"Outline\" window" msgstr "تعيين التركيز لنافذة المخطط" #: lib/Padre/Wx/ActionLibrary.pm:2550 #, fuzzy msgid "Go to Output Window" msgstr "ذهاب الى نافذه النتائج" #: lib/Padre/Wx/ActionLibrary.pm:2551 #, fuzzy msgid "Set the focus to the \"Output\" window" msgstr "تعيين التركيز لنافذة النتائج" #: lib/Padre/Wx/ActionLibrary.pm:2561 #, fuzzy msgid "Go to Syntax Check Window" msgstr "ذهاب الى نافذه فحص بناء الجمل" #: lib/Padre/Wx/ActionLibrary.pm:2562 #, fuzzy msgid "Set the focus to the \"Syntax Check\" window" msgstr "تعيين التركيز لنافذة فحص بناء الجمل" #: lib/Padre/Wx/ActionLibrary.pm:2572 #, fuzzy msgid "Go to Command Line Window" msgstr "ذهاب الى النافذه الرئيسيه" #: lib/Padre/Wx/ActionLibrary.pm:2573 #, fuzzy msgid "Set the focus to the \"Command Line\" window" msgstr "تعيين التركيز لنافذة المخطط" #: lib/Padre/Wx/ActionLibrary.pm:2583 #, fuzzy msgid "Go to Main Window" msgstr "ذهاب الى النافذه الرئيسيه" #: lib/Padre/Wx/ActionLibrary.pm:2584 #, fuzzy msgid "Set the focus to the main editor window" msgstr "تعيين التركيز لنافذة المحرر الرئيسية" #: lib/Padre/Wx/ActionLibrary.pm:2597 #: lib/Padre/Wx/Browser.pm:65 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:398 msgid "Help" msgstr "المساعده" #: lib/Padre/Wx/ActionLibrary.pm:2598 msgid "Show the Padre help" msgstr "أظهار مساعدة Padre" #: lib/Padre/Wx/ActionLibrary.pm:2606 msgid "Search Help" msgstr "البحث في المساعدة" #: lib/Padre/Wx/ActionLibrary.pm:2607 msgid "Search the Perl help pages (perldoc)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2624 msgid "Context Help" msgstr "مساعده السياق" #: lib/Padre/Wx/ActionLibrary.pm:2625 msgid "Show the help article for the current context" msgstr "اظهار مقالة المساعدة للسياق الحالي" #: lib/Padre/Wx/ActionLibrary.pm:2637 msgid "Current Document" msgstr "الوثيقه الحاليه" #: lib/Padre/Wx/ActionLibrary.pm:2638 msgid "Show the POD (Perldoc) version of the current document" msgstr "اظهار نسخة ال POD (Perldoc) من الوثيقة الحالية" #: lib/Padre/Wx/ActionLibrary.pm:2648 msgid "Padre Support (English)" msgstr "دعم Padre (انجليزي)" #: lib/Padre/Wx/ActionLibrary.pm:2650 #, fuzzy msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "فتح دعم Padre المباشر في متصفح الويب الخاص بك الافتراضي والدردشة إلى آخرين قد يمكنهم مساعدتك مع مشكلتك" #: lib/Padre/Wx/ActionLibrary.pm:2660 msgid "Perl Help" msgstr "مساعدة Perl" #: lib/Padre/Wx/ActionLibrary.pm:2662 #, fuzzy msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "فتح دعم Perl المباشر في متصفح الويب الخاص بك الافتراضي والدردشة إلى آخرين قد يمكنهم مساعدتك مع مشكلتك" #: lib/Padre/Wx/ActionLibrary.pm:2672 msgid "Win32 Questions (English)" msgstr "أسئلة Win32 (انجليزي)" #: lib/Padre/Wx/ActionLibrary.pm:2674 #, fuzzy msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "فتح دعم Perl/Win32 المباشر في متصفح الويب الخاص بك الافتراضي والدردشة إلى آخرين قد يمكنهم مساعدتك مع مشكلتك" #: lib/Padre/Wx/ActionLibrary.pm:2686 msgid "Visit the PerlMonks" msgstr "زياره موقع PerlMonks" #: lib/Padre/Wx/ActionLibrary.pm:2688 #, fuzzy msgid "Open perlmonks.org, one of the biggest Perl community sites, in your default web browser" msgstr "فتح perlmonks.org ، واحد من أكبر مواقع مجتمع Perl في متصفح الويب الخاص بك الافتراضي" #: lib/Padre/Wx/ActionLibrary.pm:2698 msgid "Report a New &Bug" msgstr "تبليغ عن &بقه جديده" #: lib/Padre/Wx/ActionLibrary.pm:2699 msgid "Send a bug report to the Padre developer team" msgstr "أرسل تقرير البقة الى مطوري Padre" #: lib/Padre/Wx/ActionLibrary.pm:2706 msgid "View All &Open Bugs" msgstr "رؤيه كل البقات ال&مفتوحه" #: lib/Padre/Wx/ActionLibrary.pm:2707 msgid "View all known and currently unsolved bugs in Padre" msgstr "عرض كل البقات المعروفة والغير محلوله في Padre" #: lib/Padre/Wx/ActionLibrary.pm:2715 msgid "&Translate Padre..." msgstr "&ترجمة Padre..." #: lib/Padre/Wx/ActionLibrary.pm:2716 msgid "Help by translating Padre to your local language" msgstr "ساعدنا عن طريق ترجمة Padre إلى لغتك المحلية" #: lib/Padre/Wx/ActionLibrary.pm:2727 msgid "&About" msgstr "حول&" #: lib/Padre/Wx/ActionLibrary.pm:2728 #, fuzzy msgid "Show information about Padre" msgstr "اظهار دليل الازاحه" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "عرض النتائج" #: lib/Padre/Wx/Browser.pm:94 #: lib/Padre/Wx/Browser.pm:109 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "" #: lib/Padre/Wx/Browser.pm:105 #, fuzzy msgid "Search:" msgstr "بحث" #: lib/Padre/Wx/Browser.pm:342 msgid "Untitled" msgstr "بلا اسم" #: lib/Padre/Wx/Browser.pm:410 #, perl-format msgid "Browser: no viewer for %s" msgstr "" #: lib/Padre/Wx/Browser.pm:444 #, perl-format msgid "Searched for '%s' and failed..." msgstr "" #: lib/Padre/Wx/Browser.pm:445 #, fuzzy msgid "Help not found." msgstr "الملف %s غير موجود." #: lib/Padre/Wx/Browser.pm:466 msgid "NAME" msgstr "الاسم" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" #: lib/Padre/Wx/Command.pm:262 #, fuzzy msgid "Command" msgstr "تشغيل الامر" #: lib/Padre/Wx/Debugger.pm:55 msgid "Debugger is already running" msgstr "المصحح بالفعل قيد التشغيل" #: lib/Padre/Wx/Debugger.pm:60 msgid "Not a Perl document" msgstr "ليس وثيقه بيرل" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', or 'Run till Breakpoint' in the Debug menu." msgstr "" #: lib/Padre/Wx/Debugger.pm:193 #: lib/Padre/Wx/Debugger.pm:299 #: lib/Padre/Wx/Debugger.pm:325 #: lib/Padre/Wx/Debugger.pm:365 #: lib/Padre/Wx/Debugger.pm:388 msgid "Debugger not running" msgstr "المصحح ليس قيد التشغيل" #: lib/Padre/Wx/Debugger.pm:247 #, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "فشل تعيين نقطة التوقف على الملف '%s' row '%s'" #: lib/Padre/Wx/Debugger.pm:429 #, perl-format msgid "Could not evaluate '%s'" msgstr "لا يمكن تقييم '%s'" #: lib/Padre/Wx/Debugger.pm:450 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "" #: lib/Padre/Wx/Debugger.pm:487 msgid "Expression:" msgstr "التعبير:" #: lib/Padre/Wx/Debugger.pm:488 msgid "Expr" msgstr "Expr" #: lib/Padre/Wx/Directory.pm:68 #: lib/Padre/Wx/Dialog/Find.pm:332 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 msgid "Search" msgstr "بحث" #: lib/Padre/Wx/Directory.pm:90 msgid "Move to other panel" msgstr "انقل الى لوحة أخرى" #: lib/Padre/Wx/Directory.pm:233 #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Project" msgstr "المشروع" #: lib/Padre/Wx/Editor.pm:1626 msgid "You must select a range of lines" msgstr "يجب ان تختار مجموعه من الاسطر" #: lib/Padre/Wx/Editor.pm:1642 msgid "First character of selection must be a non-word character to align" msgstr "لمحاذاه اول حرف من الاختيار وجب ان يكون من غير احرف الكلمات" #: lib/Padre/Wx/ErrorList.pm:104 #, fuzzy msgid "No diagnostics available for this error." msgstr "لا يوجد تشخيص لهذا الخطأ" #: lib/Padre/Wx/ErrorList.pm:113 msgid "Diagnostics" msgstr "التشخيص" #: lib/Padre/Wx/ErrorList.pm:160 #, fuzzy msgid "Errors" msgstr "خطأ" #: lib/Padre/Wx/FindInFiles.pm:170 #: lib/Padre/Wx/FBP/FindInFiles.pm:26 msgid "Find in Files" msgstr "البحث في الملفات" #: lib/Padre/Wx/FindResult.pm:88 #, fuzzy, perl-format msgid "Find Results (%s)" msgstr "ايجاد النتائج (" #: lib/Padre/Wx/FindResult.pm:125 #, fuzzy msgid "Related editor has been closed" msgstr "تم اغلاق المحرر ذات الصلة" #: lib/Padre/Wx/FindResult.pm:177 #: lib/Padre/Wx/Syntax.pm:280 #: lib/Padre/Wx/Syntax.pm:416 msgid "Line" msgstr "سطر" #: lib/Padre/Wx/FindResult.pm:178 #, fuzzy msgid "Content" msgstr "نوع المحتوى:" #: lib/Padre/Wx/FindResult.pm:226 #: lib/Padre/Wx/Syntax.pm:202 msgid "Copy &Selected" msgstr "انسخ الا&ختيار" #: lib/Padre/Wx/FindResult.pm:249 #: lib/Padre/Wx/Syntax.pm:227 msgid "Copy &All" msgstr "نسخ ال&كل" #: lib/Padre/Wx/FunctionList.pm:216 msgid "Functions" msgstr "اظهار الوظائف" #: lib/Padre/Wx/Left.pm:52 msgid "Project Tools" msgstr "أدوات المشروع" #: lib/Padre/Wx/Main.pm:757 #, perl-format msgid "No such session %s" msgstr "الجلسه غير موجودة %s" #: lib/Padre/Wx/Main.pm:932 msgid "Failed to create server" msgstr "فشل تشغيل خادم" #: lib/Padre/Wx/Main.pm:2256 msgid "Command line" msgstr "سطر الاوامر" #: lib/Padre/Wx/Main.pm:2257 msgid "Run setup" msgstr "تشغيل الإعداد" #: lib/Padre/Wx/Main.pm:2292 #: lib/Padre/Wx/Main.pm:2353 #: lib/Padre/Wx/Main.pm:2408 msgid "Could not find project root" msgstr "فشل العثور على جذر المشروع" #: lib/Padre/Wx/Main.pm:2319 #, fuzzy msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "لم يتم العثور على Build.PL أو Makefile.PL" #: lib/Padre/Wx/Main.pm:2322 msgid "Could not find perl executable" msgstr "فشل العثور على ملف تشغيل perl" #: lib/Padre/Wx/Main.pm:2347 #: lib/Padre/Wx/Main.pm:2399 msgid "Current document has no filename" msgstr "ليس للوثيقه الحاليه اسم" #: lib/Padre/Wx/Main.pm:2402 msgid "Current document is not a .t file" msgstr "الوثيقة الحالية ليست ملف .t" #: lib/Padre/Wx/Main.pm:2499 #: lib/Padre/Wx/Output.pm:141 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "الوحدة Wx::Perl::ProcessStream نسخة %s معروف عنها انها تسبب المشاكل. احصل على نسخة 0.20 على الأقل بطباعة الأمر\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Main.pm:2577 #, perl-format msgid "Failed to start '%s' command" msgstr "فشل تشغيل الامر '%s'" #: lib/Padre/Wx/Main.pm:2602 msgid "No open document" msgstr "لا يوجد أي وثيقه مفتوحه" #: lib/Padre/Wx/Main.pm:2620 msgid "No execution mode was defined for this document" msgstr "لا توجد طريقة تنفيذ لهذه الوثيقة" #: lib/Padre/Wx/Main.pm:2645 msgid "Do you want to continue?" msgstr "هل تريد المتابعة؟" #: lib/Padre/Wx/Main.pm:2731 #, perl-format msgid "Opening session %s..." msgstr "جاري فتح الجلسة %s..." #: lib/Padre/Wx/Main.pm:2760 msgid "Restore focus..." msgstr "استعادة التركيز..." #: lib/Padre/Wx/Main.pm:3090 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "" #: lib/Padre/Wx/Main.pm:3139 msgid "Autocompletion error" msgstr "خطأ في الاكمال التلقائي" #: lib/Padre/Wx/Main.pm:3252 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "يوجد لديك برنامج شغال. هل تريد ايقافه والخروج؟" #: lib/Padre/Wx/Main.pm:3470 #, perl-format msgid "Cannot open a Directory: %s" msgstr "فشل فتح دليل: %s" #: lib/Padre/Wx/Main.pm:3598 msgid "Nothing selected. Enter what should be opened:" msgstr "بلا أي اختيار. ادخل ما يجب ان يفتح:" #: lib/Padre/Wx/Main.pm:3599 msgid "Open selection" msgstr "فتح الاختيار" #: lib/Padre/Wx/Main.pm:3640 #, perl-format msgid "Could not find file '%s'" msgstr "لا يمكن العثور على الملف '%s'" #: lib/Padre/Wx/Main.pm:3650 #: lib/Padre/Wx/Dialog/Positions.pm:119 #, fuzzy msgid "Choose File" msgstr "اغلاق كل الملفات" #: lib/Padre/Wx/Main.pm:3757 msgid "JavaScript Files" msgstr "ملفات JavaScript" #: lib/Padre/Wx/Main.pm:3759 msgid "Perl Files" msgstr "ملفات Perl" #: lib/Padre/Wx/Main.pm:3761 msgid "PHP Files" msgstr "ملفات PHP" #: lib/Padre/Wx/Main.pm:3763 msgid "Python Files" msgstr "ملفات Python" #: lib/Padre/Wx/Main.pm:3765 msgid "Ruby Files" msgstr "ملفات Ruby" #: lib/Padre/Wx/Main.pm:3767 msgid "SQL Files" msgstr "ملفات SQL" #: lib/Padre/Wx/Main.pm:3769 msgid "Text Files" msgstr "ملفات نصيه" #: lib/Padre/Wx/Main.pm:3771 msgid "Web Files" msgstr "ملفات ويب" #: lib/Padre/Wx/Main.pm:3773 #, fuzzy msgid "Script Files" msgstr "ملفات JavaScript" #: lib/Padre/Wx/Main.pm:3778 #: lib/Padre/Wx/Main.pm:3779 #: lib/Padre/Wx/Main.pm:4150 #: lib/Padre/Wx/Main.pm:5296 msgid "All Files" msgstr "كل الملفات" #: lib/Padre/Wx/Main.pm:3781 #: lib/Padre/Wx/Directory/TreeCtrl.pm:220 msgid "Open File" msgstr "فتح ملف" #: lib/Padre/Wx/Main.pm:3818 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "الملف %s يحتوي على * أو ? والتي تكون أحرف خاصة على معظم الحواسيب. هل تريد اهماله؟" #: lib/Padre/Wx/Main.pm:3821 #: lib/Padre/Wx/Main.pm:3841 msgid "Open Warning" msgstr "فتح التحذير" #: lib/Padre/Wx/Main.pm:3838 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "الملف %s غير موجود على القرص. هل تريد اهماله؟" #: lib/Padre/Wx/Main.pm:3926 msgid "Reload all files" msgstr "اعادة تحميل الملفات" #: lib/Padre/Wx/Main.pm:3956 #: lib/Padre/Wx/Main.pm:5801 #, fuzzy msgid "Reload some files" msgstr "اعادة تحميل الملفات" #: lib/Padre/Wx/Main.pm:3957 #: lib/Padre/Wx/Main.pm:5802 #, fuzzy msgid "&Select files to reload:" msgstr "اختيار الدليل" #: lib/Padre/Wx/Main.pm:3958 #: lib/Padre/Wx/Main.pm:5803 #, fuzzy msgid "&Reload selected" msgstr "اعادة تحميل الملف" #: lib/Padre/Wx/Main.pm:3972 #, fuzzy msgid "Reload some" msgstr "اعادة تحميل الملف" #: lib/Padre/Wx/Main.pm:4034 #, perl-format msgid "Could not reload file: %s" msgstr "لا يمكن اعاده تحميل الملف: %s" #: lib/Padre/Wx/Main.pm:4147 msgid "Save file as..." msgstr "حفظ الملف ك..." #: lib/Padre/Wx/Main.pm:4174 msgid "File already exists. Overwrite it?" msgstr "الملف موجود بالفعل. هل تريد الكتابة فوقه؟" #: lib/Padre/Wx/Main.pm:4175 msgid "Exist" msgstr "موجود" #: lib/Padre/Wx/Main.pm:4271 msgid "File already exists" msgstr "الملف موجود أصلا" #: lib/Padre/Wx/Main.pm:4285 #, perl-format msgid "Failed to create path '%s'" msgstr "فشل انشاء المسار '%s'" #: lib/Padre/Wx/Main.pm:4376 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "الملف على القرص تغير منذ آخر حفظ. هل تريد استبداله؟" #: lib/Padre/Wx/Main.pm:4377 msgid "File not in sync" msgstr "الملف غير متزامن" #: lib/Padre/Wx/Main.pm:4386 msgid "Could not save file: " msgstr "لا يمكن حفظ الملف :" #: lib/Padre/Wx/Main.pm:4468 msgid "File changed. Do you want to save it?" msgstr "تغير الملف. هل تريد حفظه؟" #: lib/Padre/Wx/Main.pm:4469 msgid "Unsaved File" msgstr "ملف غير محفوظ" #: lib/Padre/Wx/Main.pm:4552 msgid "Close all" msgstr "اغلاق الكل" #: lib/Padre/Wx/Main.pm:4591 #, fuzzy msgid "Close some files" msgstr "اغلاق كل الملفات" #: lib/Padre/Wx/Main.pm:4592 msgid "Select files to close:" msgstr "" #: lib/Padre/Wx/Main.pm:4607 #, fuzzy msgid "Close some" msgstr "اغلاق" #: lib/Padre/Wx/Main.pm:4770 msgid "Cannot diff if file was never saved" msgstr "فشل العثور على التغييرات في حاله عدم حفظ الملف من قبل" #: lib/Padre/Wx/Main.pm:4794 msgid "There are no differences\n" msgstr "لا توجد فروقات\n" #: lib/Padre/Wx/Main.pm:5414 msgid "Internal error" msgstr "خطأ داخلي" #: lib/Padre/Wx/Main.pm:5606 #, fuzzy msgid "Stats" msgstr "الحاله" #: lib/Padre/Wx/Main.pm:5634 msgid "Space to Tab" msgstr "تحويل المسافات الى Tabs" #: lib/Padre/Wx/Main.pm:5635 msgid "Tab to Space" msgstr "تحويل Tabs الى مسافات..." #: lib/Padre/Wx/Main.pm:5640 msgid "How many spaces for each tab:" msgstr "كم عدد المسافات لكل تبويبه:" #: lib/Padre/Wx/Main.pm:6143 msgid "Need to select text in order to translate to hex" msgstr "وجب اختيار نص للتحويل إلى الست عشري" #: lib/Padre/Wx/Main.pm:6285 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "خطأ خلال تشغيل أداة الفلترة:\n" "%s" #: lib/Padre/Wx/Main.pm:6300 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "خطأ أرجعه أداة الفلترة:\n" "%s" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "ملفات" #: lib/Padre/Wx/Outline.pm:109 #: lib/Padre/Wx/Outline.pm:311 msgid "Outline" msgstr "مخطط" #: lib/Padre/Wx/Outline.pm:220 #, fuzzy msgid "&Go to Element" msgstr "&ذهاب الى العنصر" #: lib/Padre/Wx/Outline.pm:234 msgid "Open &Documentation" msgstr "فتح الوثائق" #: lib/Padre/Wx/Outline.pm:356 msgid "Pragmata" msgstr "" #: lib/Padre/Wx/Outline.pm:357 #, fuzzy msgid "Modules" msgstr "أدوات الوحدة" #: lib/Padre/Wx/Outline.pm:358 msgid "Methods" msgstr "ال Methods" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "نتائج" #: lib/Padre/Wx/Progress.pm:76 msgid "Please wait..." msgstr "الرجاء الانتظار..." #: lib/Padre/Wx/Right.pm:52 msgid "Document Tools" msgstr "أدوات الوثيقة" #: lib/Padre/Wx/StatusBar.pm:290 msgid "Background Tasks are running" msgstr "لا توجد اي مهام خلفيه" #: lib/Padre/Wx/StatusBar.pm:291 msgid "Background Tasks are running with high load" msgstr " تعمل المهام الخلفيه بجهد عال" #: lib/Padre/Wx/StatusBar.pm:417 msgid "Read Only" msgstr "للقراءة فقط" #: lib/Padre/Wx/StatusBar.pm:417 msgid "R/W" msgstr "" #: lib/Padre/Wx/Syntax.pm:275 msgid "Syntax Check" msgstr "فحص بناء الجمل" #: lib/Padre/Wx/Syntax.pm:281 #: lib/Padre/Wx/Dialog/Advanced.pm:109 msgid "Type" msgstr "نوع" #: lib/Padre/Wx/Syntax.pm:282 #: lib/Padre/Wx/Dialog/SessionManager.pm:228 msgid "Description" msgstr "وصف" #: lib/Padre/Wx/Syntax.pm:370 msgid "Info" msgstr "معلومات" #: lib/Padre/Wx/Syntax.pm:380 #, perl-format msgid "No errors or warnings found in %s." msgstr "لا توجد أي اخطاء او تحذيرات في %s." #: lib/Padre/Wx/Syntax.pm:382 msgid "No errors or warnings found." msgstr "لا توجد أي اخطاء او تحذيرات" #: lib/Padre/Wx/TodoList.pm:198 msgid "To-do" msgstr "" #: lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 #: lib/Padre/Wx/Dialog/Advanced.pm:108 #: lib/Padre/Wx/Dialog/PluginManager.pm:68 #: lib/Padre/Wx/FBP/Sync.pm:48 msgid "Status" msgstr "الحاله" #: lib/Padre/Wx/Debugger/View.pm:59 msgid "Debugger" msgstr "المصحح" #: lib/Padre/Wx/Debugger/View.pm:102 msgid "Variable" msgstr "المتغير" #: lib/Padre/Wx/Debugger/View.pm:103 #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Value" msgstr "القيمة" #: lib/Padre/Wx/Dialog/Advanced.pm:27 #, fuzzy msgid "Boolean" msgstr "الكوريه" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Positive Integer" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:29 #, fuzzy msgid "Integer" msgstr "اضافه" #: lib/Padre/Wx/Dialog/Advanced.pm:30 #, fuzzy msgid "String" msgstr "تحذير" #: lib/Padre/Wx/Dialog/Advanced.pm:31 #, fuzzy msgid "File/Directory" msgstr "الدليل" #: lib/Padre/Wx/Dialog/Advanced.pm:63 #, fuzzy msgid "Advanced Settings" msgstr "حفظ الاعدادات" #: lib/Padre/Wx/Dialog/Advanced.pm:94 #: lib/Padre/Wx/Dialog/KeyBindings.pm:60 #, fuzzy msgid "&Filter:" msgstr "ال&ملف" #: lib/Padre/Wx/Dialog/Advanced.pm:107 #, fuzzy msgid "Preference Name" msgstr "تفضيلات" #: lib/Padre/Wx/Dialog/Advanced.pm:114 #, fuzzy msgid "Copy" msgstr "نسخ&" #: lib/Padre/Wx/Dialog/Advanced.pm:115 #, fuzzy msgid "Copy Name" msgstr "نسخ اسم الملف" #: lib/Padre/Wx/Dialog/Advanced.pm:116 #, fuzzy msgid "Copy Value" msgstr "إظهار القيمة" #: lib/Padre/Wx/Dialog/Advanced.pm:119 #, fuzzy msgid "&Value:" msgstr "القيمة" #: lib/Padre/Wx/Dialog/Advanced.pm:126 #: lib/Padre/Wx/Dialog/Advanced.pm:563 msgid "True" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:127 #: lib/Padre/Wx/Dialog/Advanced.pm:564 #, fuzzy msgid "False" msgstr "ملفات" #: lib/Padre/Wx/Dialog/Advanced.pm:132 #, fuzzy msgid "Default value:" msgstr "الافتراضي" #: lib/Padre/Wx/Dialog/Advanced.pm:144 #, fuzzy msgid "Options:" msgstr "الاختيارات" #: lib/Padre/Wx/Dialog/Advanced.pm:157 #: lib/Padre/Wx/Dialog/KeyBindings.pm:116 #, fuzzy msgid "&Set" msgstr "&حفظ" #: lib/Padre/Wx/Dialog/Advanced.pm:163 #: lib/Padre/Wx/Dialog/KeyBindings.pm:128 #, fuzzy msgid "&Reset" msgstr "ا&ضافه" #: lib/Padre/Wx/Dialog/Advanced.pm:169 #, fuzzy msgid "S&ave" msgstr "حفظ" #: lib/Padre/Wx/Dialog/Advanced.pm:175 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenResource.pm:182 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 #: lib/Padre/Wx/Dialog/Preferences.pm:939 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:155 msgid "&Cancel" msgstr "الغاء" #: lib/Padre/Wx/Dialog/Advanced.pm:400 #: lib/Padre/Wx/Dialog/Preferences.pm:805 msgid "Default" msgstr "الافتراضي" #: lib/Padre/Wx/Dialog/Advanced.pm:735 #, fuzzy msgid "User" msgstr "اضافه" #: lib/Padre/Wx/Dialog/Advanced.pm:735 msgid "Host" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:31 msgid "Existing bookmarks:" msgstr "العلامات المتوفره:" #: lib/Padre/Wx/Dialog/Bookmarks.pm:43 msgid "Delete &All" msgstr "حذف ال&كل" #: lib/Padre/Wx/Dialog/Bookmarks.pm:123 msgid "Cannot set bookmark in unsaved document" msgstr "فشل تحديد العلامه في الوثيقه الغير محفوظه" #: lib/Padre/Wx/Dialog/Bookmarks.pm:134 #, perl-format msgid "%s line %s: %s" msgstr "%s السطر %s: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:170 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "لم تعد العلامه '%s' غير موجوده" #: lib/Padre/Wx/Dialog/DocStats.pm:39 #, fuzzy msgid "Filename" msgstr "اسم الملف: %s" #: lib/Padre/Wx/Dialog/DocStats.pm:40 #, fuzzy msgid "Selection" msgstr "اختيار" #: lib/Padre/Wx/Dialog/DocStats.pm:60 #, fuzzy msgid "&Update" msgstr "لصق&" #: lib/Padre/Wx/Dialog/DocStats.pm:95 #, fuzzy msgid "Document" msgstr "لا يوجد أي وثيقه" #: lib/Padre/Wx/Dialog/DocStats.pm:98 #, fuzzy msgid "Lines" msgstr "سطر" #: lib/Padre/Wx/Dialog/DocStats.pm:102 #, fuzzy msgid "Words" msgstr "كلمات: %s" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:131 #, fuzzy msgid "Encoding" msgstr "ترميز: %s" #: lib/Padre/Wx/Dialog/DocStats.pm:133 #, fuzzy msgid "Document type" msgstr "نوع الوثيقه : %s" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "بلا" #: lib/Padre/Wx/Dialog/Encode.pm:22 #, perl-format msgid "Document encoded to (%s)" msgstr "تم ترميز الوثيقة إلى (%s)" #: lib/Padre/Wx/Dialog/Encode.pm:53 msgid "Encode to:" msgstr "تشفير إلى:" #: lib/Padre/Wx/Dialog/Encode.pm:63 msgid "Encode document to..." msgstr "تشفير الوثيقة إلى..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "الفلترة من خلال الأداة" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "امر الفلتر:" #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/SessionManager.pm:293 #: lib/Padre/Wx/Dialog/SessionSave.pm:230 #: lib/Padre/Wx/Dialog/WindowList.pm:283 #: lib/Padre/Wx/FBP/Sync.pm:248 #: lib/Padre/Wx/Menu/File.pm:132 msgid "Close" msgstr "اغلاق" #: lib/Padre/Wx/Dialog/Find.pm:53 #: lib/Padre/Wx/Dialog/Find.pm:177 #: lib/Padre/Wx/Dialog/Replace.pm:218 #: lib/Padre/Wx/FBP/FindInFiles.pm:124 msgid "Find" msgstr "بحث:" #: lib/Padre/Wx/Dialog/Find.pm:75 msgid "&Regular Expression" msgstr "ال&تعبير العادية" #: lib/Padre/Wx/Dialog/Find.pm:89 #: lib/Padre/Wx/Dialog/Replace.pm:122 msgid "Search &Backwards" msgstr "بحث لل&وراء" #: lib/Padre/Wx/Dialog/Find.pm:103 #: lib/Padre/Wx/Dialog/Replace.pm:80 msgid "Case &sensitive" msgstr "&حساس لحالة الأحرف" #: lib/Padre/Wx/Dialog/Find.pm:117 #: lib/Padre/Wx/Dialog/Replace.pm:108 msgid "Close Window on &Hit" msgstr "اغلاق النافذة عند ال&ضغط" #: lib/Padre/Wx/Dialog/Find.pm:131 msgid "&Find Next" msgstr "ا&يجاد التالي" #: lib/Padre/Wx/Dialog/Find.pm:146 msgid "Find &All" msgstr "البحث عن ال&كل" #: lib/Padre/Wx/Dialog/Find.pm:185 msgid "Find &Text:" msgstr "البحث عن ال&نص" #: lib/Padre/Wx/Dialog/Find.pm:210 #: lib/Padre/Wx/Dialog/Replace.pm:304 msgid "Options" msgstr "الاختيارات" #: lib/Padre/Wx/Dialog/Find.pm:331 #: lib/Padre/Wx/Dialog/Replace.pm:537 #: lib/Padre/Wx/Dialog/Replace.pm:586 msgid "No matches found" msgstr "لا يوجد أي مطابقة" #: lib/Padre/Wx/Dialog/Find.pm:389 msgid "Not a valid search" msgstr "غير صالح للبحث" #: lib/Padre/Wx/Dialog/FindInFiles.pm:53 #, fuzzy msgid "Select Directory" msgstr "اختيار الدليل" #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "مربع حوار" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "العلامة الأولى" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "العلامة الثانية" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "أي شيء" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Goto" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:86 #, fuzzy msgid "Position type" msgstr "نوع المحتوى:" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:226 #: lib/Padre/Wx/Dialog/Goto.pm:245 #, fuzzy msgid "Line number" msgstr "الذهاب الى السطر رقم" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:230 msgid "Character position" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenResource.pm:176 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 msgid "&OK" msgstr "&موافق" #: lib/Padre/Wx/Dialog/Goto.pm:228 #, fuzzy, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "رقم السطر بين (1-%s):" #: lib/Padre/Wx/Dialog/Goto.pm:229 #, fuzzy, perl-format msgid "Current line number: %s" msgstr "الوثيقه الحاليه: %s" #: lib/Padre/Wx/Dialog/Goto.pm:232 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:233 #, fuzzy, perl-format msgid "Current position: %s" msgstr "الوثيقه الحاليه: %s" #: lib/Padre/Wx/Dialog/Goto.pm:257 #, fuzzy msgid "Not a positive number!" msgstr "الذهاب الى السطر رقم" #: lib/Padre/Wx/Dialog/Goto.pm:266 msgid "Out of range!" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:39 #: lib/Padre/Wx/Dialog/HelpSearch.pm:96 msgid "Help Search" msgstr "بحث المساعدة" #: lib/Padre/Wx/Dialog/HelpSearch.pm:81 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, fuzzy, perl-format msgid "Error while calling %s %s" msgstr "خطأ عند مناداة %s " #: lib/Padre/Wx/Dialog/HelpSearch.pm:93 msgid "No Help found" msgstr "فشل العثور على مساعدة" #: lib/Padre/Wx/Dialog/HelpSearch.pm:129 msgid "Select the help &topic" msgstr "حدد &موضوع المساعدة" #: lib/Padre/Wx/Dialog/HelpSearch.pm:146 msgid "Type a help &keyword to read:" msgstr "ادخل موضوع بحث للقراءة:" #: lib/Padre/Wx/Dialog/HelpSearch.pm:153 msgid "&Matching Help Topics:" msgstr "&مواضيع البحث المطابقة:" #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 msgid "Reading items. Please wait" msgstr "جاري قراءة العناصر. الرجاء الانتظار" #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 msgid "Could not find a help provider for " msgstr "فشل العثور على مزود المساعدة ل" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:82 #, fuzzy msgid "Sh&ortcut:" msgstr "الاختصار" #: lib/Padre/Wx/Dialog/KeyBindings.pm:85 msgid "Ctrl" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:86 #, fuzzy msgid "Alt" msgstr "الكل" #: lib/Padre/Wx/Dialog/KeyBindings.pm:87 msgid "Shift" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:95 #, fuzzy msgid "None" msgstr "بلا" #: lib/Padre/Wx/Dialog/KeyBindings.pm:95 msgid "Backspace" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:95 msgid "Tab" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:95 #, fuzzy msgid "Space" msgstr "استبدال" #: lib/Padre/Wx/Dialog/KeyBindings.pm:95 msgid "Up" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:95 #, fuzzy msgid "Down" msgstr "تم" #: lib/Padre/Wx/Dialog/KeyBindings.pm:96 msgid "Left" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:96 #, fuzzy msgid "Right" msgstr "ليلي" #: lib/Padre/Wx/Dialog/KeyBindings.pm:96 #: lib/Padre/Wx/Menu/Edit.pm:121 msgid "Insert" msgstr "اضافه" #: lib/Padre/Wx/Dialog/KeyBindings.pm:96 #: lib/Padre/Wx/Dialog/SessionManager.pm:292 #: lib/Padre/Wx/FBP/Sync.pm:233 msgid "Delete" msgstr "حذف" #: lib/Padre/Wx/Dialog/KeyBindings.pm:96 msgid "Home" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:96 msgid "End" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:97 msgid "PageUp" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:97 msgid "PageDown" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:97 msgid "Enter" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:97 msgid "Escape" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:122 #, fuzzy msgid "&Delete" msgstr "حذف" #: lib/Padre/Wx/Dialog/KeyBindings.pm:130 msgid "Reset to default shortcut" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:375 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:378 msgid "Do you want to override it with the selected action?" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:379 #, fuzzy msgid "Override Shortcut" msgstr "الاختصار" #: lib/Padre/Wx/Dialog/ModuleStart.pm:16 #: lib/Padre/Wx/Dialog/ModuleStart.pm:36 #, fuzzy msgid "Apache License" msgstr "الترخيص:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:17 #: lib/Padre/Wx/Dialog/ModuleStart.pm:37 msgid "Artistic License 1.0" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:18 #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "Artistic License 2.0" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:19 #: lib/Padre/Wx/Dialog/ModuleStart.pm:39 msgid "Revised BSD License" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:20 #: lib/Padre/Wx/Dialog/ModuleStart.pm:40 msgid "GPL 2 or later" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:21 #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "LGPL 2.1 or later" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:22 #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 #, fuzzy msgid "MIT License" msgstr "الترخيص:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:23 #: lib/Padre/Wx/Dialog/ModuleStart.pm:43 msgid "Mozilla Public License" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:24 #: lib/Padre/Wx/Dialog/ModuleStart.pm:44 #, fuzzy msgid "Open Source" msgstr "فتح المصدر" #: lib/Padre/Wx/Dialog/ModuleStart.pm:25 #: lib/Padre/Wx/Dialog/ModuleStart.pm:45 #: lib/Padre/Wx/Dialog/ModuleStart.pm:115 msgid "Perl licensing terms" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 #: lib/Padre/Wx/Dialog/ModuleStart.pm:46 msgid "restrictive" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:27 #: lib/Padre/Wx/Dialog/ModuleStart.pm:47 #, fuzzy msgid "unrestricted" msgstr "غير مدعوم" #: lib/Padre/Wx/Dialog/ModuleStart.pm:55 msgid "Module Name:" msgstr "اسم الوحده:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:58 msgid "Author:" msgstr "المؤلف:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:61 #, fuzzy msgid "Email Address:" msgstr "البريد الإلكتروني:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:64 msgid "Builder:" msgstr "البناء:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:67 msgid "License:" msgstr "الترخيص:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:72 msgid "Parent Directory:" msgstr "ابو الدليل:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:73 msgid "Pick parent directory" msgstr "اختيار ابو الدليل" #: lib/Padre/Wx/Dialog/ModuleStart.pm:99 msgid "Module Start" msgstr "بدايه الوحده" #: lib/Padre/Wx/Dialog/ModuleStart.pm:149 #, perl-format msgid "Field %s was missing. Module not created." msgstr "الحقل %s مفقود. لم يتم كتابه أي وحده." #: lib/Padre/Wx/Dialog/ModuleStart.pm:150 msgid "missing field" msgstr "حقل مفقود" #: lib/Padre/Wx/Dialog/ModuleStart.pm:184 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" "حدث خطأ خلال توليد '%s':\n" "%s" #: lib/Padre/Wx/Dialog/OpenResource.pm:30 #: lib/Padre/Wx/Dialog/OpenResource.pm:74 msgid "Open Resource" msgstr "فتح المصدر" #: lib/Padre/Wx/Dialog/OpenResource.pm:115 msgid "Error while trying to perform Padre action" msgstr "خطأ عند محاولة تأدية عمل Padre" #: lib/Padre/Wx/Dialog/OpenResource.pm:204 msgid "&Select an item to open (? = any character, * = any string):" msgstr "اختر مادة للفتح (? = أي حرف, * = أي متسلسة حرفية):" #: lib/Padre/Wx/Dialog/OpenResource.pm:218 msgid "&Matching Items:" msgstr "المواد المطابقة:" #: lib/Padre/Wx/Dialog/OpenResource.pm:234 msgid "Current Directory: " msgstr "الدليل الحالي:" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Skip version control system files" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:265 msgid "Skip using MANIFEST.SKIP" msgstr "تخطي بواسطة MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "فتح الرابط" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 #, fuzzy msgid "e.g." msgstr "جديد..." #: lib/Padre/Wx/Dialog/PluginManager.pm:66 #: lib/Padre/Wx/Dialog/SessionManager.pm:227 #: lib/Padre/Wx/Dialog/SpecialValues.pm:25 msgid "Name" msgstr "الاسم:" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 msgid "Version" msgstr "النسخه" #: lib/Padre/Wx/Dialog/PluginManager.pm:102 msgid "Plug-in Name" msgstr "اسم البرنامج المساعد" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:524 msgid "Enable" msgstr "تمكين" #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "فشل تحميل pod ل class '%s': %s" #: lib/Padre/Wx/Dialog/PluginManager.pm:485 #: lib/Padre/Wx/Dialog/PluginManager.pm:497 msgid "Show error message" msgstr "اظهار رساله الخطأ" #: lib/Padre/Wx/Dialog/PluginManager.pm:512 msgid "Disable" msgstr "تعطيل" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "There are no positions saved yet" msgstr "" #: lib/Padre/Wx/Dialog/Positions.pm:122 #, fuzzy, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s السطر %s: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:18 msgid "Local/Remote File Access" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:19 #, fuzzy msgid "Perl Auto Complete" msgstr "ا&كمال تلقائي" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "Enable bookmarks" msgstr "تمكين العلامات" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "Change font size" msgstr "تغيير حجم الخط" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enable session manager" msgstr "تمكين مدير الجلسات" #: lib/Padre/Wx/Dialog/Preferences.pm:86 msgid "Diff tool:" msgstr "اداة المقارنة Diff:" #: lib/Padre/Wx/Dialog/Preferences.pm:88 #: lib/Padre/Wx/Dialog/Preferences.pm:92 #, fuzzy msgid "Browse..." msgstr "اغلاق..." #: lib/Padre/Wx/Dialog/Preferences.pm:90 msgid "Perl ctags file:" msgstr "ملف Perl ctags:" #: lib/Padre/Wx/Dialog/Preferences.pm:159 msgid "File type:" msgstr "نوع الملف:" #: lib/Padre/Wx/Dialog/Preferences.pm:162 msgid "Highlighter:" msgstr "الملون:" #: lib/Padre/Wx/Dialog/Preferences.pm:165 #: lib/Padre/Wx/Dialog/SessionSave.pm:209 msgid "Description:" msgstr "الوصف:" #: lib/Padre/Wx/Dialog/Preferences.pm:168 msgid "Content type:" msgstr "نوع المحتوى:" #: lib/Padre/Wx/Dialog/Preferences.pm:260 msgid "Automatic indentation style detection" msgstr "الاكتشاف التلقائي لنمط الازاحه" #: lib/Padre/Wx/Dialog/Preferences.pm:264 msgid "Use Tabs" msgstr "استخدام ال Tabs" #: lib/Padre/Wx/Dialog/Preferences.pm:267 #, fuzzy msgid "Tab display size (in spaces):" msgstr "حجم عرض TAB (بعدد الفراغات):" #: lib/Padre/Wx/Dialog/Preferences.pm:270 msgid "Indentation width (in columns):" msgstr "عرض الازاحه (بعدد الاعمده):" #: lib/Padre/Wx/Dialog/Preferences.pm:273 msgid "Guess from current document:" msgstr "التخمين من الوثيقه الحاليه:" #: lib/Padre/Wx/Dialog/Preferences.pm:274 msgid "Guess" msgstr "تخمين" #: lib/Padre/Wx/Dialog/Preferences.pm:276 msgid "Autoindent:" msgstr "الازاحه التلقائيه:" #: lib/Padre/Wx/Dialog/Preferences.pm:300 msgid "Default word wrap on for each file" msgstr "تشغيل العوده الى البدايه عند نهايه السطر لكل ملف" #: lib/Padre/Wx/Dialog/Preferences.pm:305 msgid "Use panel order for Ctrl-Tab (not usage history)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:312 msgid "Clean up file content on saving (for supported document types)" msgstr "تنظيف محتوى الملف عند الحفظ (لأنواع الوثائق المدعومة)" #: lib/Padre/Wx/Dialog/Preferences.pm:317 msgid "Auto-fold POD markup when code folding enabled" msgstr "الطي التلقائي لترميز POD عند تمكين طي شيفرة المصدر" #: lib/Padre/Wx/Dialog/Preferences.pm:322 msgid "Perl beginner mode" msgstr "نمط بيرل للمبتدئين" #: lib/Padre/Wx/Dialog/Preferences.pm:326 msgid "Open files:" msgstr "ملفات مفتوحه:" #: lib/Padre/Wx/Dialog/Preferences.pm:329 msgid "Default projects directory:" msgstr "دليل المشاريع الافتراضي:" #: lib/Padre/Wx/Dialog/Preferences.pm:331 msgid "Choose the default projects directory" msgstr "اختيار دليل المشاريع الافتراضي" #: lib/Padre/Wx/Dialog/Preferences.pm:335 msgid "Open files in existing Padre" msgstr "قتح الملفات في Padre الحالي" #: lib/Padre/Wx/Dialog/Preferences.pm:339 msgid "Methods order:" msgstr "ترتيب ال Methods:" #: lib/Padre/Wx/Dialog/Preferences.pm:342 msgid "Preferred language for error diagnostics:" msgstr "اللغه المفضله لتشخيص الخطأ:" #: lib/Padre/Wx/Dialog/Preferences.pm:345 msgid "Default line ending:" msgstr "نهاية الخط الافتراضية:" #: lib/Padre/Wx/Dialog/Preferences.pm:348 msgid "Check for file updates on disk every (seconds):" msgstr "تأكد من تحديثات الملف على القرص كل (ثانية):" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Cursor Blink Rate (milliseconds - 0 = blink off; 500 = default):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:360 #, fuzzy msgid "Autocomplete brackets" msgstr "ا&كمال تلقائي" #: lib/Padre/Wx/Dialog/Preferences.pm:368 #, fuzzy msgid "Add another closing bracket if there is already one (and the 'Autocomplete brackets' above is enabled)" msgstr "اضف قوص اغلاق اخر إذا كان هناك واحد اصلا (ووظيفة تكميل الأقواص مشغّلة)" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Enable Smart highlighting while typing" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:383 msgid "Shorten the common path in window list" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:390 msgid "Use X11 middle button paste style" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:394 msgid "RegExp for TODO-panel:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:400 msgid "Use Splash Screen" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:437 #, fuzzy msgid "Project name" msgstr "المشروع" #: lib/Padre/Wx/Dialog/Preferences.pm:438 #, fuzzy msgid "Padre version" msgstr "حفظ الجلسة ك" #: lib/Padre/Wx/Dialog/Preferences.pm:439 #, fuzzy msgid "Current filename" msgstr "نسخ اسم الملف" #: lib/Padre/Wx/Dialog/Preferences.pm:440 msgid "Current file's dirname" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:441 #, fuzzy msgid "Current file's basename" msgstr "ليس للوثيقه الحاليه اسم" #: lib/Padre/Wx/Dialog/Preferences.pm:442 msgid "Current filename relative to project" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:463 msgid "Window title:" msgstr "اسم النافذة:" #: lib/Padre/Wx/Dialog/Preferences.pm:470 msgid "Colored text in output window (ANSI)" msgstr "النص الملون في نافذه النتائج (ANSI)" #: lib/Padre/Wx/Dialog/Preferences.pm:475 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:480 msgid "Show right margin at column:" msgstr "اظهار الهامش الأيمن عند العمود:" #: lib/Padre/Wx/Dialog/Preferences.pm:484 msgid "Editor Font:" msgstr "خط المحرر" #: lib/Padre/Wx/Dialog/Preferences.pm:487 msgid "Editor Current Line Background Colour:" msgstr "لون خلفيه محرر السطر الحالي:" #: lib/Padre/Wx/Dialog/Preferences.pm:550 msgid "Settings Demo" msgstr "استعراض الاعدادات" #: lib/Padre/Wx/Dialog/Preferences.pm:559 msgid "Any changes to these options require a restart:" msgstr "أي تغيير لهذه الخيارات تحتاج إلى اعادة تشغيل:" #: lib/Padre/Wx/Dialog/Preferences.pm:670 msgid "Enable?" msgstr "تمكين:" #: lib/Padre/Wx/Dialog/Preferences.pm:685 msgid "Crashed" msgstr "تحطم" #: lib/Padre/Wx/Dialog/Preferences.pm:718 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" "مثلا\n" "\tاضافه دليل: -I<الدليل>\n" "\tتمكين كل فحوصات taint: -T\n" "\tتمكين تحذيرات مفيده كثيرة: -w\n" "\tتمكين كل التحذيرات: -W\n" "\tتعطيل كل التحذيرات: -X\n" #: lib/Padre/Wx/Dialog/Preferences.pm:728 msgid "Perl interpreter:" msgstr "مترجم Perl:" #: lib/Padre/Wx/Dialog/Preferences.pm:731 #: lib/Padre/Wx/Dialog/Preferences.pm:781 msgid "Interpreter arguments:" msgstr "مدخلات المترجم:" #: lib/Padre/Wx/Dialog/Preferences.pm:737 #: lib/Padre/Wx/Dialog/Preferences.pm:787 msgid "Script arguments:" msgstr "مدخلات الملف النصي:" #: lib/Padre/Wx/Dialog/Preferences.pm:741 msgid "Use external window for execution" msgstr "استعمال نافذة خارجية للتنفيذ" #: lib/Padre/Wx/Dialog/Preferences.pm:750 msgid "Unsaved" msgstr "غير محفوظ" #: lib/Padre/Wx/Dialog/Preferences.pm:751 msgid "N/A" msgstr "غير متوفر" #: lib/Padre/Wx/Dialog/Preferences.pm:770 msgid "No Document" msgstr "لا يوجد أي وثيقه" #: lib/Padre/Wx/Dialog/Preferences.pm:775 msgid "Document name:" msgstr ":اسم الوثيقه" #: lib/Padre/Wx/Dialog/Preferences.pm:778 msgid "Document location:" msgstr "موقع الوثيقه:" #: lib/Padre/Wx/Dialog/Preferences.pm:811 #, perl-format msgid "Current Document: %s" msgstr "الوثيقه الحاليه: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:854 msgid "Behaviour" msgstr "سلوك" #: lib/Padre/Wx/Dialog/Preferences.pm:857 msgid "Appearance" msgstr "منظر" #: lib/Padre/Wx/Dialog/Preferences.pm:861 msgid "Run Parameters" msgstr "باراميترز التشغيل" #: lib/Padre/Wx/Dialog/Preferences.pm:865 msgid "Files and Colors" msgstr "ملفات وألوان" #: lib/Padre/Wx/Dialog/Preferences.pm:868 msgid "Indentation" msgstr "الازاحه عن الهامش" #: lib/Padre/Wx/Dialog/Preferences.pm:871 msgid "External Tools" msgstr "الادوات الخارجية" #: lib/Padre/Wx/Dialog/Preferences.pm:926 msgid "&Advanced..." msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:974 msgid "new" msgstr "جديد" #: lib/Padre/Wx/Dialog/Preferences.pm:975 msgid "nothing" msgstr "لا شيء" #: lib/Padre/Wx/Dialog/Preferences.pm:976 msgid "last" msgstr "آخر" #: lib/Padre/Wx/Dialog/Preferences.pm:977 #, fuzzy msgid "session" msgstr "فتح الجلسة" #: lib/Padre/Wx/Dialog/Preferences.pm:978 msgid "no" msgstr "لا" #: lib/Padre/Wx/Dialog/Preferences.pm:979 msgid "same_level" msgstr "نفس_المستوى" #: lib/Padre/Wx/Dialog/Preferences.pm:980 msgid "deep" msgstr "عميق" #: lib/Padre/Wx/Dialog/Preferences.pm:981 msgid "alphabetical" msgstr "ابجدي" #: lib/Padre/Wx/Dialog/Preferences.pm:982 msgid "original" msgstr "اصلي" #: lib/Padre/Wx/Dialog/Preferences.pm:983 msgid "alphabetical_private_last" msgstr "ابجدي_الوظائف الخاصه_بالاخر" #: lib/Padre/Wx/Dialog/Preferences.pm:1147 #, perl-format msgid "%s seems to be no executable Perl interpreter, abandon the new value?" msgstr "لا يبدو أن%s مترجم Perl قابل للتنفيذ، هل تريد اهمال القيمة الجديدة؟" #: lib/Padre/Wx/Dialog/Preferences.pm:1150 msgid "Save settings" msgstr "حفظ الاعدادات" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:39 msgid "Quick Menu Access" msgstr "الوصول السريع للقائمة" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "خطأ عند محاولة تأدية عمل Padre: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:176 msgid "&Type a menu item name to access:" msgstr "اطبع اسم مادة القائمة للوصول اليها:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:183 msgid "&Matching Menu Items:" msgstr "مواد القائمة المطابقة:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:352 msgid "Reading items. Please wait..." msgstr "جاري قراءة العناصر. الرجاء الانتظار..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 #: lib/Padre/Wx/Dialog/SpecialValues.pm:21 #: lib/Padre/Wx/Dialog/WindowList.pm:227 #, fuzzy msgid "File" msgstr "ملفات" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 msgid "Edit" msgstr "تحرير" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 #, fuzzy msgid "View" msgstr "عرض&" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 #, fuzzy msgid "Refactor" msgstr "اعادة &عوملة" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:395 #, fuzzy msgid "Debug" msgstr "تصحيح&" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:396 #, fuzzy msgid "Plugins" msgstr "ال&برامج المساعده" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:397 #, fuzzy msgid "Window" msgstr "نافذه&" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "اختيار الوظيفة" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "الوظيفة" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 #: lib/Padre/Wx/Menu/Edit.pm:49 msgid "Select" msgstr "اختيار" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 #: lib/Padre/Wx/FBP/FindInFiles.pm:131 msgid "Cancel" msgstr "الغاء" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "&Character classes" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 #, fuzzy msgid "Alphabetic characters" msgstr "ترتيب ابحدي" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 #, fuzzy msgid "Space and tab" msgstr "تحويل المسافات الى Tabs" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 #, fuzzy msgid "Visible characters" msgstr "تعطيل التعقب" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 msgid "&Miscellaneous" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 #, fuzzy msgid "Alternation" msgstr "الترجمة" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 #, fuzzy msgid "End of line" msgstr "سطر الاوامر" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 #, fuzzy msgid "A comment" msgstr "لا يوجد أي وثيقه" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "&Grouping constructs" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 #, fuzzy msgid "&Regular expression:" msgstr "ال&تعبير العادية" #: lib/Padre/Wx/Dialog/RegexEditor.pm:191 #, fuzzy msgid "Show &Description" msgstr "وصف" #: lib/Padre/Wx/Dialog/RegexEditor.pm:204 #, fuzzy msgid "&Replace text with:" msgstr "نص التبديل:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:211 #, fuzzy msgid "&Original text:" msgstr "اصلي" #: lib/Padre/Wx/Dialog/RegexEditor.pm:218 #, fuzzy msgid "&Matched text:" msgstr "المواد المطابقة:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:225 msgid "&Result from replace:" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:233 #: lib/Padre/Wx/Dialog/Snippets.pm:24 #: lib/Padre/Wx/Dialog/SpecialValues.pm:50 msgid "&Insert" msgstr "ا&ضافه" #: lib/Padre/Wx/Dialog/RegexEditor.pm:392 #, fuzzy, perl-format msgid "&Ignore case (%s)" msgstr "غير حساس لحالة الأحرف (%s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:393 #, fuzzy, perl-format msgid "&Single-line (%s)" msgstr "سطر واحد (%s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:394 #, fuzzy, perl-format msgid "&Multi-line (%s)" msgstr "أكثر من سطر (%s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:395 #, fuzzy, perl-format msgid "&Extended (%s)" msgstr "ممتد (%s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:396 #, perl-format msgid "&Global (%s)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:531 #, perl-format msgid "Match failure in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:538 #, perl-format msgid "Match warning in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:557 #, fuzzy msgid "No match" msgstr "لا يوجد أي مطابقة" #: lib/Padre/Wx/Dialog/RegexEditor.pm:571 #, perl-format msgid "Replace failure in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:50 msgid "Find and Replace" msgstr "البحث والتبديل" #: lib/Padre/Wx/Dialog/Replace.pm:94 msgid "Regular &Expression" msgstr "ال&تعبير العادي" #: lib/Padre/Wx/Dialog/Replace.pm:136 msgid "Replace &All" msgstr "تبديل ال&كل" #: lib/Padre/Wx/Dialog/Replace.pm:150 msgid "&Find" msgstr "بحث&" #: lib/Padre/Wx/Dialog/Replace.pm:170 msgid "&Replace" msgstr "ا&ستبدال" #: lib/Padre/Wx/Dialog/Replace.pm:226 msgid "Find Text:" msgstr "نص البحث:" #: lib/Padre/Wx/Dialog/Replace.pm:250 msgid "Replace" msgstr "استبدال" #: lib/Padre/Wx/Dialog/Replace.pm:258 msgid "Replace Text:" msgstr "نص التبديل:" #: lib/Padre/Wx/Dialog/Replace.pm:538 #: lib/Padre/Wx/Dialog/Replace.pm:582 #: lib/Padre/Wx/Dialog/Replace.pm:587 msgid "Search and Replace" msgstr "البحث والتبديل" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, fuzzy, perl-format msgid "Replaced %d match" msgstr "تم استبدال %d مطابقة" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d matches" msgstr "تم استبدال %d مطابقة" #: lib/Padre/Wx/Dialog/Search.pm:135 msgid "Find:" msgstr "بحث:" #: lib/Padre/Wx/Dialog/Search.pm:154 msgid "Previ&ous" msgstr "السابق" #: lib/Padre/Wx/Dialog/Search.pm:172 msgid "&Next" msgstr "التالي" #: lib/Padre/Wx/Dialog/Search.pm:180 msgid "Case &insensitive" msgstr "غير حساس لحالة الأحرف" #: lib/Padre/Wx/Dialog/Search.pm:184 msgid "Use rege&x" msgstr "استعمال rege&x" #: lib/Padre/Wx/Dialog/SessionManager.pm:38 msgid "Session Manager" msgstr "مدير الجلسات" #: lib/Padre/Wx/Dialog/SessionManager.pm:215 msgid "List of sessions" msgstr "قائمة الجلسات" #: lib/Padre/Wx/Dialog/SessionManager.pm:229 msgid "Last update" msgstr "آخر تحديث" #: lib/Padre/Wx/Dialog/SessionManager.pm:261 msgid "Save session automatically" msgstr "حفظ الجلسة اوتوماتيكيا" #: lib/Padre/Wx/Dialog/SessionManager.pm:291 msgid "Open" msgstr "فتح" #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "حفظ الجلسة ك..." #: lib/Padre/Wx/Dialog/SessionSave.pm:200 msgid "Session name:" msgstr "اسم الجلسة:" #: lib/Padre/Wx/Dialog/SessionSave.pm:229 msgid "Save" msgstr "حفظ" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "العمل: %s" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "الاختصار" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "الكل" #: lib/Padre/Wx/Dialog/Snippets.pm:22 #: lib/Padre/Wx/Dialog/SpecialValues.pm:46 msgid "Class:" msgstr "ال Class:" #: lib/Padre/Wx/Dialog/Snippets.pm:23 #: lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "قصاصه:" #: lib/Padre/Wx/Dialog/Snippets.pm:26 #: lib/Padre/Wx/Menu/Edit.pm:344 msgid "&Edit" msgstr "تحرير&" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "ا&ضافه" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "قصاصات" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "فئه:" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "اسم:" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "تعديل/اضافه قصاصات" #: lib/Padre/Wx/Dialog/SpecialValues.pm:15 msgid "Date/Time" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:16 msgid "Now" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:17 msgid "Today" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:18 #, fuzzy msgid "Year" msgstr "بحث" #: lib/Padre/Wx/Dialog/SpecialValues.pm:19 msgid "Epoch" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:22 #, fuzzy msgid "Size" msgstr "حجم الخط" #: lib/Padre/Wx/Dialog/SpecialValues.pm:30 #, fuzzy msgid "Number of lines" msgstr "اقل عدد من الوحدات" #: lib/Padre/Wx/Dialog/SpecialValues.pm:47 msgid "Special Value:" msgstr "قيمة خاصة:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:63 msgid "Insert Special Values" msgstr "اضافة قيم خاصة" #: lib/Padre/Wx/Dialog/Sync.pm:43 #: lib/Padre/Wx/FBP/Sync.pm:25 #, fuzzy msgid "Padre Sync" msgstr "برنامج Padre" #: lib/Padre/Wx/Dialog/Sync.pm:468 #: lib/Padre/Wx/Dialog/Sync2.pm:88 msgid "Please input a valid value for both username and password" msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:516 #: lib/Padre/Wx/Dialog/Sync2.pm:131 msgid "Please ensure all inputs have appropriate values." msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:527 #: lib/Padre/Wx/Dialog/Sync2.pm:142 msgid "Password and confirmation do not match." msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:537 #: lib/Padre/Wx/Dialog/Sync2.pm:152 msgid "Email and confirmation do not match." msgstr "" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "انظر إلى http://padre.perlide.org/ لتحديث المعلومات" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "لا تظهر هذه مرة أخرى" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 #, fuzzy msgid "Friend" msgstr "بحث:" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 #, fuzzy msgid "Padre Developer" msgstr "أدوات تطوير Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:38 #, fuzzy msgid "Window list" msgstr "اسم النافذة:" #: lib/Padre/Wx/Dialog/WindowList.pm:214 #, fuzzy msgid "List of open files" msgstr "لا يوجد ملفات مفتوحة" #: lib/Padre/Wx/Dialog/WindowList.pm:228 #, fuzzy msgid "Editor" msgstr "تحرير" #: lib/Padre/Wx/Dialog/WindowList.pm:229 msgid "Disk" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:353 #: lib/Padre/Wx/Dialog/WindowList.pm:361 msgid "CHANGED" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:353 #: lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "fresh" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:359 msgid "DELETED" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/File.pm:36 msgid "File access via HTTP" msgstr "الوصول إلى الملف عن طريق HTTP" #: lib/Padre/Wx/Dialog/Preferences/File.pm:39 #: lib/Padre/Wx/Dialog/Preferences/File.pm:47 msgid "Timeout (in seconds):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/File.pm:44 msgid "File access via FTP" msgstr "الوصول إلى الملف عن طريق FTP" #: lib/Padre/Wx/Dialog/Preferences/File.pm:51 msgid "Use FTP passive mode" msgstr "استخدام نمط FTP السلبي" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:34 msgid "Autocomplete always while typing" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:41 msgid "Autocomplete new methods in packages" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:48 msgid "Autocomplete new subroutines in scripts" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:52 msgid "Min. length of suggestions:" msgstr "أقل طول للاقتراحات:" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:57 msgid "Max. number of suggestions:" msgstr "أقصى عدد للاقتراحات:" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:60 msgid "Min. chars for autocompletion:" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:82 msgid "Directory" msgstr "الدليل" #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, fuzzy, perl-format msgid "Could not create: '%s': %s" msgstr "لا يمكن تقييم '%s'" #: lib/Padre/Wx/Directory/TreeCtrl.pm:185 #, fuzzy, perl-format msgid "Really delete the file \"%s\"" msgstr "حفظ كل الملفات" #: lib/Padre/Wx/Directory/TreeCtrl.pm:192 #, fuzzy, perl-format msgid "Could not delete: '%s': %s" msgstr "لا يمكن تقييم '%s'" #: lib/Padre/Wx/Directory/TreeCtrl.pm:236 #, fuzzy msgid "Delete File" msgstr "حذف ال&كل" #: lib/Padre/Wx/Directory/TreeCtrl.pm:247 #, fuzzy msgid "Create subdirectory" msgstr "اختيار الدليل" #: lib/Padre/Wx/Directory/TreeCtrl.pm:257 #, fuzzy msgid "Refresh" msgstr "تحديث القائمه" #: lib/Padre/Wx/FBP/FindInFiles.pm:35 #, fuzzy msgid "Search Term:" msgstr "خطأ في البحث" #: lib/Padre/Wx/FBP/FindInFiles.pm:49 #, fuzzy msgid "Search Directory:" msgstr "ابو الدليل:" #: lib/Padre/Wx/FBP/FindInFiles.pm:63 msgid "Browse" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:77 #, fuzzy msgid "Search in Types:" msgstr "البحث والتبديل" #: lib/Padre/Wx/FBP/FindInFiles.pm:100 #, fuzzy msgid "Regular Expression" msgstr "ال&تعبير العادية" #: lib/Padre/Wx/FBP/FindInFiles.pm:108 #, fuzzy msgid "Case Sensitive" msgstr "&حساس لحالة الأحرف" #: lib/Padre/Wx/FBP/Sync.pm:34 #, fuzzy msgid "Server" msgstr "خطوة فوق" #: lib/Padre/Wx/FBP/Sync.pm:54 msgid "Logged out" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:68 #: lib/Padre/Wx/FBP/Sync.pm:111 msgid "Username" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:82 #: lib/Padre/Wx/FBP/Sync.pm:125 msgid "Password" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:97 #, fuzzy msgid "Login" msgstr "سطر" #: lib/Padre/Wx/FBP/Sync.pm:139 #: lib/Padre/Wx/FBP/Sync.pm:167 #, fuzzy msgid "Confirm" msgstr "دليل التعريف:" #: lib/Padre/Wx/FBP/Sync.pm:153 #, fuzzy msgid "Email" msgstr "البريد الإلكتروني:" #: lib/Padre/Wx/FBP/Sync.pm:181 #, fuzzy msgid "Register" msgstr "محرر التعبير العادي" #: lib/Padre/Wx/FBP/Sync.pm:203 #, fuzzy msgid "Upload" msgstr "تم التحميل" #: lib/Padre/Wx/FBP/Sync.pm:218 #, fuzzy msgid "Download" msgstr "تم التفريغ" #: lib/Padre/Wx/FBP/Sync.pm:283 #, fuzzy msgid "Authentication" msgstr "الازاحه عن الهامش" #: lib/Padre/Wx/FBP/Sync.pm:310 #, fuzzy msgid "Registration" msgstr "وصف" #: lib/Padre/Wx/FBP/WhereFrom.pm:31 msgid "Where did you hear about Padre?" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:54 #, fuzzy msgid "OK" msgstr "&موافق" #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "Skip question without giving feedback" msgstr "" #: lib/Padre/Wx/Menu/Debug.pm:116 msgid "&Debug" msgstr "تصحيح&" #: lib/Padre/Wx/Menu/Edit.pm:90 #, fuzzy msgid "Copy Specials" msgstr "نسخ الخواص" #: lib/Padre/Wx/Menu/Edit.pm:200 msgid "Convert Encoding" msgstr "تحويل التشفير" #: lib/Padre/Wx/Menu/Edit.pm:222 #, fuzzy msgid "Convert Line Endings" msgstr "تحويل التشفير" #: lib/Padre/Wx/Menu/Edit.pm:245 msgid "Tabs and Spaces" msgstr "ال Tabs و المسافات" #: lib/Padre/Wx/Menu/Edit.pm:275 msgid "Upper/Lower Case" msgstr "تكبير/تصغير حاله الاحرف" #: lib/Padre/Wx/Menu/Edit.pm:295 msgid "Diff Tools" msgstr "ادوات المقارنة" #: lib/Padre/Wx/Menu/Edit.pm:326 #, fuzzy msgid "Show as" msgstr "اظهار ك ..." #: lib/Padre/Wx/Menu/File.pm:44 #, fuzzy msgid "New" msgstr "&جديد" #: lib/Padre/Wx/Menu/File.pm:88 #, fuzzy msgid "Open..." msgstr "&فتح..." #: lib/Padre/Wx/Menu/File.pm:171 msgid "Reload" msgstr "اعادة التحميل" #: lib/Padre/Wx/Menu/File.pm:246 msgid "&Recent Files" msgstr "ملفات الا&خيره" #: lib/Padre/Wx/Menu/File.pm:285 msgid "&File" msgstr "ال&ملف" #: lib/Padre/Wx/Menu/File.pm:372 #, perl-format msgid "File %s not found." msgstr "الملف %s غير موجود." #: lib/Padre/Wx/Menu/File.pm:373 msgid "Open cancelled" msgstr "تم الغاء الفتح" #: lib/Padre/Wx/Menu/Help.pm:60 msgid "Live Support" msgstr "الدعم المباشر" #: lib/Padre/Wx/Menu/Help.pm:121 msgid "&Help" msgstr "ال&مساعده" #: lib/Padre/Wx/Menu/Perl.pm:106 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Menu/Refactor.pm:94 #, fuzzy msgid "Ref&actor" msgstr "اعادة &عوملة" #: lib/Padre/Wx/Menu/Run.pm:74 msgid "&Run" msgstr "تشغيل&" #: lib/Padre/Wx/Menu/Search.pm:106 msgid "&Search" msgstr "بحث&" #: lib/Padre/Wx/Menu/Tools.pm:65 msgid "Module Tools" msgstr "أدوات الوحدة" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "Plug-in Tools" msgstr "ادوات البرنامج المساعد" #: lib/Padre/Wx/Menu/Tools.pm:198 #, fuzzy msgid "&Tools" msgstr "ادوات المقارنة" #: lib/Padre/Wx/Menu/View.pm:83 msgid "View Document As..." msgstr "عرض الوثيقه ك..." #: lib/Padre/Wx/Menu/View.pm:171 msgid "Font Size" msgstr "حجم الخط" #: lib/Padre/Wx/Menu/View.pm:194 msgid "Style" msgstr "اسلوب" #: lib/Padre/Wx/Menu/View.pm:242 msgid "Language" msgstr "اللغه" #: lib/Padre/Wx/Menu/View.pm:280 msgid "&View" msgstr "عرض&" #: lib/Padre/Wx/Menu/Window.pm:110 msgid "&Window" msgstr "نافذه&" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "رساله" #: lib/Padre/Wx/Role/Dialog.pm:92 #, fuzzy msgid "Unknown error from " msgstr "خطأ مجهول" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "لا يمكن فتح %s لان حجم الملف أكبر من الحدود المسموحه في Padre والتي هي %s" #~ msgid "Norwegian (Norway)" #~ msgstr "نرويجي (النرويج)" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s خطوط مهمات عاملة.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "حاليا، لا يوجد أي مهمات خلفيات عاملة.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "تعمل المهمات التالية حاليا في الخلفية:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s من نوع '%s':\n" #~ " (في المهمة أو المهمات %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "بالاضافة على ذلك، توجد %s مهمات تنتظر التنفيذ.\n" #~ msgid "&Goto Line" #~ msgstr "&ذهاب إلى سطر" #~ msgid "Ask the user for a row number and jump there" #~ msgstr "سؤال المستخدم عن رقم السطر والقفز هناك" #~ msgid "Insert Special Value" #~ msgstr "اضافة قيمة خاصة" #~ msgid "Insert From File..." #~ msgstr "اضافه من ملف..." #~ msgid "Show as hexa" #~ msgstr "اظهار كستة عشري" #~ msgid "Save &As" #~ msgstr "حفظ &ك" #~ msgid "Show the about-Padre information" #~ msgstr "إظهار معلومات عن برنامج Padre" #~ msgid "Check the current file" #~ msgstr "التحقق من الملف الحالي" #~ msgid "Replacement" #~ msgstr "بديل" #~ msgid "New Subroutine Name" #~ msgstr "اسم روتين ثانوي جديد" #~ msgid "???" #~ msgstr "???" #~ msgid "Error:\n" #~ msgstr "خطأ:\n" #~ msgid "Finished Searching" #~ msgstr "تم البحث" #~ msgid "Term:" #~ msgstr "مصطلح:" #~ msgid "Dir:" #~ msgstr "دليل:" #~ msgid "Pick &directory" #~ msgstr "اختيار ال&دليل" #~ msgid "In Files/Types:" #~ msgstr "في ملفات/انواع:" #~ msgid "Case &Insensitive" #~ msgstr "غير حساس لحالة الأحرف&" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "تجاهل الادله الثانويه المخفيه" #~ msgid "Show only files that don't match" #~ msgstr "اظهار فقط الملفات الغير مطابقة" #~ msgid "Ack" #~ msgstr "برنامج Ack" #~ msgid "Found %d files and %d matches\n" #~ msgstr "تم العثور على %d ملفات و %d تطابقات\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "ال '%s' غير موجود في الملف '%s'\n" #~ msgid "Found '%s' in '%s':\n" #~ msgstr "تم العثور على '%s' في '%s':\n" #~ msgid "'%s' does not look like a variable" #~ msgstr "لا يبدو '%s' كمتغيير" #~ msgid "Select all\tCtrl-A" #~ msgstr "اختيار الكل\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&نسخ\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "&قص\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "&لصق\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "&تبديل التعليق\tCtrl-Shift-C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "ا&ضافه تعليق للاسطر المختاره\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "ا&زاله التعليق من الاسطر المختاره\tCtrl-Shift-M" #~ msgid "Error List" #~ msgstr "قائمه الخطأ" #~ msgid "Line No" #~ msgstr "رقم السطر" #~ msgid "(Document not on disk)" #~ msgstr "(الوثيقة ليست على القرص)" #~ msgid "Lines: %d" #~ msgstr "اسطر: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "أحرف بدون مسافات: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "أحرف مع مسافات: %d" #~ msgid "Newline type: %s" #~ msgstr "نوع حرف السطر الجديد : %s" #~ msgid "Size on disk: %s" #~ msgstr "الحجم على القرص: %s" #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "تم الغاء الملف على القرص، هل تريد تنظيف نافذة المحرر؟" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "الملف على القرص تغير منذ آخر حفظ. هل تريد اعادة تحميله؟" #~ msgid "GoTo Bookmark" #~ msgstr "ذهاب الى علامه" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "تم كتابة %s. هل تريد فتح الملف الان?" #~ msgid "Skip VCS files" #~ msgstr "تخطي ملفات VCS" #~ msgid "Timeout:" #~ msgstr "مهلة:" #~ msgid "Skip hidden files" #~ msgstr "اظهار الملفات المخفية" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "تجاوز مجلدات CVS/.svn/.git/blib" #~ msgid "Change project directory" #~ msgstr "اختيار دليل المشروع" #~ msgid "Tree listing" #~ msgstr "عرض كشجرة" #~ msgid "Navigate" #~ msgstr "اجتياز" #~ msgid "Change listing mode view" #~ msgstr "اختر طريقة عرض القائمة" #~ msgid "Please choose a different name." #~ msgstr "الرجاء اختيار اسم آخر." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "يوجد أصلا ملف بنفس اسم الملف الحالي في هذا الدليل" #~ msgid "Move here" #~ msgstr "انقل الى هنا" #~ msgid "Copy here" #~ msgstr "انسخ هنا" #~ msgid "Rename / Move" #~ msgstr "اعادة تسمية / نقل" #~ msgid "Move to trash" #~ msgstr "انقل الى سلة المهملات" #~ msgid "Are you sure you want to delete this item?" #~ msgstr " هل أنت متأكد أنك تريد محي هذا العنصر؟" #~ msgid "Show hidden files" #~ msgstr "اظهار الملفات المخفية" #~ msgid "Convert EOL" #~ msgstr "تحويل نهاية السطر" #~ msgid "Switch menus to %s" #~ msgstr "تبديل القوائم ل %s" #~ msgid "Error while calling help_render: " #~ msgstr "خطأ عند مناداة help_render: " #~ msgid "folder" #~ msgstr "مجلد" #~ msgid "Error loading template file '%s'" #~ msgstr "فشل تحميل ملف القالب '%s'" #~ msgid "Enable logging" #~ msgstr "تمكين السجل" #~ msgid "Disable logging" #~ msgstr "تعطيل السجل" #~ msgid "Enable trace when logging" #~ msgstr "تمكين التعقب عند التسجيل" #~ msgid "&Count All" #~ msgstr "&تعداد الكل" #~ msgid "Found %d matching occurrences" #~ msgstr "العثور على %d تطابق الأحداث" #, fuzzy #~ msgid "Match" #~ msgstr "الهولنديه" #~ msgid "Dump PPI Document" #~ msgstr "اطبع وثيقه PPI" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "&Split window" #~ msgstr "تقسيم النافذة&" #~ msgid "&Close\tCtrl+W" #~ msgstr "ا&غلاق\tCtrl-W" #~ msgid "&Open\tCtrl+O" #~ msgstr "&فتح\tCtrl-O" #~ msgid "E&xit\tCtrl+X" #~ msgstr "&خروج\tCtrl-X" #~ msgid "Open &URL" #~ msgstr "فتح ال&رابط" #~ msgid "GoTo Subs Window" #~ msgstr "ذهاب الى نافذه الوظائف الفرعيه" #~ msgid "&Use Regex" #~ msgstr "ا&ستخدام ال Regex" #~ msgid "Close Window on &hit" #~ msgstr "اغلاق النافذه عند ال&ضغط" #~ msgid "%s occurences were replaced" #~ msgstr "%s اماكن تم استبدالها" #~ msgid "Nothing to replace" #~ msgstr "فشل تبديل لا شيء" #~ msgid "Cannot build regex for '%s'" #~ msgstr "لا يمكن بناء regex ل '%s'" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "فحص برنامج مساعد من الدليل المحلي" #~ msgid "Install Module..." #~ msgstr "تثبيت وحده..." #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "البرنامج المساعد:%s - فشل تحميل الوحده: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "البرنامج المساعد:%s - غير متوافق مع Padre::Plugin API. يجب ان يرث خصائص " #~ "Padre::Plugin" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "البرنامج المساعد:%s - لا يمكن انشاء كينونه البرنامج المساعد: ال " #~ "constructor لا يرجع كينونه Padre::Plugin" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "البرنامج المساعد:%s - لا يحتوي على أية قوائم" #, fuzzy #~ msgid "Mime type:" #~ msgstr "نوع الملف" #~ msgid "Close All but Current" #~ msgstr "اغلاق الكل بدون الحالي" #~ msgid "Expand / Collapse" #~ msgstr "بسط / طي" #~ msgid "Workspace View" #~ msgstr "عرض مكان العمل" #~ msgid "Save File" #~ msgstr "حفظ ملف" #~ msgid "Undo" #~ msgstr "الغاء التغييرات" #~ msgid "Redo" #~ msgstr "اعاده التغييرات" #~ msgid "L:" #~ msgstr "سطر:" #~ msgid "Ch:" #~ msgstr "حرف:" #~ msgid "&Goto\tCtrl-G" #~ msgstr "&ذهاب الى\tCtrl-G" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "قصاصات\tCtrl-Shift-A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "تكبير حاله كل الاحرف\tCtrl-Shift-U" #~ msgid "Use PPI Syntax Highlighting" #~ msgstr "استخدام PPI لتلوين بناء الجمل" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "تحديد علامه\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "ذهاب الى علامه\tCtrl-Shift-B" #~ msgid "Disable Experimental Mode" #~ msgstr "تعطيل النمط التجريبي" #~ msgid "Refresh Counter: " #~ msgstr "عداد التحديث:" #~ msgid "&New\tCtrl-N" #~ msgstr "&جديد\tCtrl-N" #~ msgid "&Close\tCtrl-W" #~ msgstr "ا&غلاق\tCtrl-W" #~ msgid "&Save\tCtrl-S" #~ msgstr "&حفظ\tCtrl-S" #~ msgid "Save &As...\tF12" #~ msgstr "حفظ &ك...\tF12" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "فتح الاختيار\tCtrl-Shift-O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "فتح الجلسه...\tCtrl-Alt-O" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "حفظ الجلسة...\tCtrl-Alt-S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "&خروج\tCtrl-Q" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "الملف التالي\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "الملف السابق\tCtrl-Shift-TAB" #~ msgid "&Find\tCtrl-F" #~ msgstr "&بحث\tCtrl-F" #~ msgid "Find Next\tF3" #~ msgstr "ايجاد التالي\tF3" #~ msgid "Find Next\tF4" #~ msgstr "ايجاد التالي\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "ايجاد السابق\tShift-F4" #~ msgid "Replace\tCtrl-R" #~ msgstr "استبدال\tCtrl-R" #~ msgid "Stop\tF6" #~ msgstr "ايقاف\tF6" #~ msgid "Text to find:" #~ msgstr "البحث عن النص:" #~ msgid "Sub List" #~ msgstr " قائمه الوظائف الفرعيه" #~ msgid "Diff" #~ msgstr "التغييرات" #~ msgid "All available plugins on CPAN" #~ msgstr "كل البرامج المساعده على CPAN" #~ msgid "Convert..." #~ msgstr "تحويل..." #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "البرنامج المساعد:%s - غير متوافق مع Padre::Plugin API. لا يمكن تشغيله" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "البرنامج المساعد:%s - غير متوافق مع Padre::Plugin API. يجب ان يكون له " #~ "sub padre_interfaces" #~ msgid "No output" #~ msgstr "بلا نتائج" #~ msgid "Background Tasks are idle" #~ msgstr "المهام الخلفيه عاطله" #~ msgid "Ac&k Search" #~ msgstr "بحث بواسطه Ac&k" #~ msgid "(running from SVN checkout)" #~ msgstr ")جاري الشغيل من SVN checkout)" #~ msgid "" #~ "Module Name:\n" #~ "e.g.: Perl::Critic" #~ msgstr "" #~ "اسم الوحده:\n" #~ "مثال: Perl::Critic" #~ msgid "Not implemented yet" #~ msgstr "لم تنفذ حتى الآن" #~ msgid "Not yet available" #~ msgstr "غير متوفر بعد" #~ msgid "Select Project Name or type in new one" #~ msgstr "اختر اسم المشروع او اطبع اسم جديد" #~ msgid "Recent Projects" #~ msgstr "مشاريع استعملت اخيرا" #~ msgid "Ac&k" #~ msgstr "برنامج Ac&k" Padre-1.00/share/locale/ko.po0000644000175000017500000013533011206365305014461 0ustar petepete# Korean translation for Padre package # Copyright (C) 2008 THE Padre'S COPYRIGHT HOLDER # This file is distributed under the same license as the Padre package. # Keedi Kim , 2008. # msgid "" msgstr "" "Project-Id-Version: 0.32\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-21 23:41+0200\n" "PO-Revision-Date: 2009-05-25 09:00+0900\n" "Last-Translator: Keedi Kim \n" "Language-Team: Korean\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Padre/TaskManager.pm:525 #, perl-format msgid "%s worker threads are running.\n" msgstr "%s 워커 쓰레드가 실행되고 있습니다.\n" #: lib/Padre/TaskManager.pm:528 msgid "Currently, no background tasks are being executed.\n" msgstr "현재 후면에서 실행중인 작업이 없습니다.\n" #: lib/Padre/TaskManager.pm:534 msgid "The following tasks are currently executing in the background:\n" msgstr "다름 작업은 현재 후면에서 실행중 입니다.:\n" #: lib/Padre/TaskManager.pm:540 #, perl-format msgid "" "- %s of type '%s':\n" " (in thread(s) %s)\n" msgstr "" "- %s 의 타입은 '%s':\n" " (%s 쓰레드)\n" #: lib/Padre/TaskManager.pm:552 #, perl-format msgid "" "\n" "Additionally, there are %s tasks pending execution.\n" msgstr "" "\n" "추가적으로 %s 작업을 실행하기 위해 대기중 입니다.\n" #: lib/Padre/PluginManager.pm:345 msgid "" "We found several new plugins.\n" "In order to configure and enable them go to\n" "Plugins -> Plugin Manager\n" "\n" "List of new plugins:\n" "\n" msgstr "" "새로운 플러그이 몇가지를 발견했습니다.\n" "새로운 플러그인을 설정하고 사용하기 위해 메뉴에서\n" "플러그인 -> 플러그인 관리자\n" "항목을 선택하세요.\n" "\n" "발견한 새로운 플러그인 목록은 다음과 같습니다:\n" "\n" #: lib/Padre/PluginManager.pm:355 msgid "New plugins detected" msgstr "새로운 플러그인을 찾았습니다." #: lib/Padre/PluginManager.pm:477 #, perl-format msgid "Plugin:%s - Failed to load module: %s" msgstr "플러그인:%s - 모듈을 불러오는데 실패했습니다: %s" #: lib/Padre/PluginManager.pm:491 #, perl-format msgid "" "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " "Padre::Plugin" msgstr "" "플러그인:%s - Padre::Plugin API와 호환되지 않습니다. Padre::Plugin 모듈을 상" "속받아야합니다." #: lib/Padre/PluginManager.pm:505 #, perl-format msgid "Plugin:%s - Could not instantiate plugin object" msgstr "플러그인:%s - 플러그인 객체를 인스턴스화(생성) 할 수 없습니다" #: lib/Padre/PluginManager.pm:517 #, perl-format msgid "" "Plugin:%s - Could not instantiate plugin object: the constructor does not " "return a Padre::Plugin object" msgstr "" "플러그인:%s - 플러그인 객체를 인스턴스화(생성) 할 수 없습니다: 생성자가 " "Padre::Plugin 객체를 반환하지 않습니다" #: lib/Padre/PluginManager.pm:537 #, perl-format msgid "Plugin:%s - Does not have menus" msgstr "플러그인:%s - 메뉴가 없습니다." #: lib/Padre/PluginManager.pm:756 msgid "Error when calling menu for plugin" msgstr "플러그인 메뉴 호출시 오류가 발생했습니다" #: lib/Padre/PluginManager.pm:785 lib/Padre/Wx/Main.pm:1399 msgid "No document open" msgstr "열려있는 문서가 없습니다." #: lib/Padre/PluginManager.pm:787 lib/Padre/Wx/Main.pm:3504 msgid "No filename" msgstr "파일이름이 없음" #: lib/Padre/PluginManager.pm:791 msgid "Could not locate project dir" msgstr "프로젝트 디렉터리를 찾을 수 없습니다." #: lib/Padre/PluginManager.pm:810 lib/Padre/PluginManager.pm:907 #, perl-format msgid "" "Failed to load the plugin '%s'\n" "%s" msgstr "" "'%s' 플러그인을 불러오는데 실패했습니다.\n" "%s" #: lib/Padre/PluginManager.pm:861 lib/Padre/Wx/Main.pm:2419 #: lib/Padre/Wx/Main.pm:3198 msgid "Open file" msgstr "열기" #: lib/Padre/PluginManager.pm:881 #, perl-format msgid "Plugin must have '%s' as base directory" msgstr "플러그인은 '%s' 기본 디렉터리를 가져야합니다." #: lib/Padre/PluginHandle.pm:71 lib/Padre/Wx/Dialog/PluginManager.pm:472 msgid "error" msgstr "오류" #: lib/Padre/PluginHandle.pm:72 msgid "unloaded" msgstr "적재하지 않음" #: lib/Padre/PluginHandle.pm:73 msgid "loaded" msgstr "적재함" #: lib/Padre/PluginHandle.pm:74 lib/Padre/Wx/Dialog/PluginManager.pm:482 msgid "incompatible" msgstr "호환되지 않음" #: lib/Padre/PluginHandle.pm:75 lib/Padre/Wx/Dialog/PluginManager.pm:506 msgid "disabled" msgstr "끄기" #: lib/Padre/PluginHandle.pm:76 lib/Padre/Wx/Dialog/PluginManager.pm:496 msgid "enabled" msgstr "켜기" #: lib/Padre/PluginHandle.pm:171 #, perl-format msgid "Failed to enable plugin '%s': %s" msgstr "'%s' 플러그인을 켤 수 없습니다: %s" #: lib/Padre/PluginHandle.pm:225 #, perl-format msgid "Failed to disable plugin '%s': %s" msgstr "'%s' 플러그인을 끌 수 없습니다: %s" #: lib/Padre/Document.pm:675 #, perl-format msgid "Unsaved %d" msgstr "저장하지 않은 문서 %d" #: lib/Padre/Document.pm:944 lib/Padre/Document.pm:945 msgid "Skipped for large files" msgstr "큰 파일은 넘어가기" #: lib/Padre/Locale.pm:72 msgid "English (United Kingdom)" msgstr "영어 (영국)" #: lib/Padre/Locale.pm:111 msgid "English (Australian)" msgstr "영어 (호주)" #: lib/Padre/Locale.pm:129 msgid "Unknown" msgstr "알 수 없음" #: lib/Padre/Locale.pm:143 msgid "Arabic" msgstr "아라비아어" #: lib/Padre/Locale.pm:153 msgid "Czech" msgstr "체코어" #: lib/Padre/Locale.pm:163 msgid "German" msgstr "독일어" #: lib/Padre/Locale.pm:173 msgid "English" msgstr "영어" #: lib/Padre/Locale.pm:182 msgid "English (Canada)" msgstr "영어 (캐나다)" #: lib/Padre/Locale.pm:191 msgid "English (New Zealand)" msgstr "영어 (뉴질란드)" #: lib/Padre/Locale.pm:202 msgid "English (United States)" msgstr "영어 (미국)" #: lib/Padre/Locale.pm:211 msgid "Spanish (Argentina)" msgstr "스페인어 (아르헨티나)" #: lib/Padre/Locale.pm:225 msgid "Spanish" msgstr "스페인어" #: lib/Padre/Locale.pm:235 msgid "Persian (Iran)" msgstr "페르시아어 (이란)" #: lib/Padre/Locale.pm:245 msgid "French (France)" msgstr "프랑스어 (프랑스)" #: lib/Padre/Locale.pm:259 msgid "French" msgstr "프랑스어" #: lib/Padre/Locale.pm:269 msgid "Hebrew" msgstr "히브리어" #: lib/Padre/Locale.pm:279 msgid "Hungarian" msgstr "헝가리어" #: lib/Padre/Locale.pm:293 msgid "Italian" msgstr "이탈리아어" #: lib/Padre/Locale.pm:303 msgid "Japanese" msgstr "일본어" #: lib/Padre/Locale.pm:313 msgid "Korean" msgstr "한국어" #: lib/Padre/Locale.pm:327 msgid "Dutch" msgstr "네덜란드어" #: lib/Padre/Locale.pm:337 msgid "Dutch (Belgium)" msgstr "독일어 (벨기에)" #: lib/Padre/Locale.pm:347 msgid "Norwegian (Norway)" msgstr "노르웨이어 (노르웨이)" #: lib/Padre/Locale.pm:357 msgid "Polish" msgstr "폴란드어" #: lib/Padre/Locale.pm:367 msgid "Portuguese (Brazil)" msgstr "포르투갈어 (브라질)" #: lib/Padre/Locale.pm:377 msgid "Portuguese (Portugal)" msgstr "포르투갈어 (포르투갈)" #: lib/Padre/Locale.pm:387 msgid "Russian" msgstr "러시아어" #: lib/Padre/Locale.pm:397 msgid "Chinese" msgstr "중국어" #: lib/Padre/Locale.pm:407 msgid "Chinese (Simplified)" msgstr "중국어 (간체)" #: lib/Padre/Locale.pm:417 msgid "Chinese (Traditional)" msgstr "중국어 (번체)" #: lib/Padre/Locale.pm:431 msgid "Klingon" msgstr "클링곤 (스타트렉 :)" #: lib/Padre/Document/Perl.pm:511 lib/Padre/Document/Perl.pm:537 #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:87 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:182 msgid "Current cursor does not seem to point at a variable" msgstr "현재 커서의 위치가 변수를 가리키는 것 같지 않습니다." #: lib/Padre/Document/Perl.pm:512 lib/Padre/Document/Perl.pm:538 msgid "Check cancelled" msgstr "검사 취소" #: lib/Padre/Document/Perl.pm:666 lib/Padre/Wx/Menu/Perl.pm:51 msgid "Find Variable Declaration" msgstr "변수 선언 찾기" #: lib/Padre/Document/Perl.pm:678 lib/Padre/Wx/Menu/Perl.pm:66 msgid "Lexically Rename Variable" msgstr "렉시컬하게 변수 이름 바꾸기" #: lib/Padre/Document/Perl.pm:689 lib/Padre/Document/Perl.pm:690 #: lib/Padre/Wx/Menu/Perl.pm:73 lib/Padre/Wx/Menu/Perl.pm:74 msgid "Replacement" msgstr "바꾸기" #: lib/Padre/Task/SyntaxChecker.pm:179 lib/Padre/Wx/Syntax.pm:96 #: lib/Padre/Wx/Syntax.pm:97 msgid "Warning" msgstr "경고" #: lib/Padre/Task/SyntaxChecker.pm:179 lib/Padre/Wx/Syntax.pm:96 #: lib/Padre/Wx/Syntax.pm:99 lib/Padre/Wx/Main.pm:1484 #: lib/Padre/Wx/Main.pm:1736 lib/Padre/Wx/Main.pm:2609 #: lib/Padre/Wx/Dialog/PluginManager.pm:362 msgid "Error" msgstr "오류" #: lib/Padre/Task/Outline/Perl.pm:146 lib/Padre/Wx/Outline.pm:58 msgid "Outline" msgstr "개요" #: lib/Padre/Task/Outline/Perl.pm:180 msgid "&GoTo Element" msgstr "요소로 이동하기(&G)" #: lib/Padre/Task/Outline/Perl.pm:192 lib/Padre/Wx/Directory.pm:182 msgid "Open &Documentation" msgstr "열려있는 문서(&D)" #: lib/Padre/Task/PPI/FindUnmatchedBrace.pm:77 msgid "All braces appear to be matched" msgstr "모든 괄호가 짝이 맞는 것 같습니다." #: lib/Padre/Task/PPI/FindUnmatchedBrace.pm:78 msgid "Check Complete" msgstr "검사 완료" #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:89 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:184 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "명시한(렉시컬?) 변수의 선언을 찾을 수 없습니다." #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:91 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:186 msgid "Unknown error" msgstr "알 수 없는 오류" #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:95 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:190 msgid "Check Canceled" msgstr "검사 취소" #: lib/Padre/Plugin/Devel.pm:21 msgid "Padre Developer Tools" msgstr "패드리 개발자 도구" #: lib/Padre/Plugin/Devel.pm:55 msgid "Run Document inside Padre" msgstr "패드리에서 문서 실행하기" #: lib/Padre/Plugin/Devel.pm:57 msgid "Dump Current Document" msgstr "현재 문서 덤프하기" #: lib/Padre/Plugin/Devel.pm:58 msgid "Dump Top IDE Object" msgstr "최상위 IDE 객체를 덤프하기" #: lib/Padre/Plugin/Devel.pm:59 msgid "Dump %INC and @INC" msgstr "%INC 와 @INC 덤프하기" #: lib/Padre/Plugin/Devel.pm:65 msgid "Enable logging" msgstr "로그 남기기 켜기" #: lib/Padre/Plugin/Devel.pm:66 msgid "Disable logging" msgstr "로그 남기기 끄기" #: lib/Padre/Plugin/Devel.pm:67 msgid "Enable trace when logging" msgstr "로그 남길 때 추적 가능하게 하기" #: lib/Padre/Plugin/Devel.pm:68 msgid "Disable trace" msgstr "끄기" #: lib/Padre/Plugin/Devel.pm:70 msgid "Simulate Crash" msgstr "충돌 흉내내기" #: lib/Padre/Plugin/Devel.pm:71 msgid "Simulate Crashing Bg Task" msgstr "후면 작업으로 충돌 흉내내기" #: lib/Padre/Plugin/Devel.pm:73 msgid "wxWidgets 2.8.8 Reference" msgstr "wxWidgets 2.8.8 참조 문서" #: lib/Padre/Plugin/Devel.pm:76 msgid "STC Reference" msgstr "STC 참조 문서" #: lib/Padre/Plugin/Devel.pm:80 lib/Padre/Plugin/PopularityContest.pm:118 msgid "About" msgstr "정보" #: lib/Padre/Plugin/Devel.pm:119 msgid "No file is open" msgstr "열려있는 파일이 없습니다." #: lib/Padre/Plugin/Devel.pm:149 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "패드리 개발자들이 사용한 관련없는 툴의 집합\n" #: lib/Padre/Plugin/Devel.pm:162 lib/Padre/Wx/Main.pm:3306 #, perl-format msgid "Error: %s" msgstr "오류: %s" #: lib/Padre/Plugin/Perl5.pm:39 msgid "Install Module..." msgstr "모듈 설치하기..." #: lib/Padre/Plugin/Perl5.pm:40 msgid "Install CPAN Module" msgstr "CPAN 모듈 설치" #: lib/Padre/Plugin/Perl5.pm:42 msgid "Install Local Distribution" msgstr "지역 배포판 설치하기" #: lib/Padre/Plugin/Perl5.pm:43 msgid "Install Remote Distribution" msgstr "원격 배포판 설치하기" #: lib/Padre/Plugin/Perl5.pm:45 msgid "Open CPAN Config File" msgstr "CPAN 설정 파일 열기" #: lib/Padre/Plugin/Perl5.pm:96 msgid "Failed to find your CPAN configuration" msgstr "CPAN 설정을 찾지 못했습니다" #: lib/Padre/Plugin/Perl5.pm:106 msgid "Select distribution to install" msgstr "설치할 배포판 선택" #: lib/Padre/Plugin/Perl5.pm:119 lib/Padre/Plugin/Perl5.pm:144 msgid "Did not provide a distribution" msgstr "배포판을 제공하지 않았습니다" #: lib/Padre/Plugin/Perl5.pm:134 msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "설치를 위한 URL을 입력하세요\n" "예시: http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Plugin/Perl5.pm:164 msgid "pip is unexpectedly not installed" msgstr "예상치 못하게도 pip를 설치하지 않았습니다" #: lib/Padre/Plugin/PopularityContest.pm:119 msgid "Ping" msgstr "핑" #: lib/Padre/Wx/FunctionList.pm:71 msgid "Sub List" msgstr "함수 목록" #: lib/Padre/Wx/Menubar.pm:72 msgid "&File" msgstr "파일(&F)" #: lib/Padre/Wx/Menubar.pm:73 lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Edit" msgstr "편집(&E)" #: lib/Padre/Wx/Menubar.pm:74 msgid "&Search" msgstr "찾기(&S)" #: lib/Padre/Wx/Menubar.pm:75 msgid "&View" msgstr "보기(&V)" #: lib/Padre/Wx/Menubar.pm:76 msgid "&Run" msgstr "실행(&R)" #: lib/Padre/Wx/Menubar.pm:77 msgid "Pl&ugins" msgstr "플러그인(&U)" #: lib/Padre/Wx/Menubar.pm:78 msgid "&Window" msgstr "창(&W)" #: lib/Padre/Wx/Menubar.pm:79 msgid "&Help" msgstr "도움말(&H)" #: lib/Padre/Wx/Menubar.pm:96 msgid "E&xperimental" msgstr "실험적인 기능(&X)" #: lib/Padre/Wx/Menubar.pm:119 lib/Padre/Wx/Menubar.pm:159 msgid "&Perl" msgstr "펄(&P)" #: lib/Padre/Wx/Syntax.pm:66 msgid "Syntax Check" msgstr "문법 검사" #: lib/Padre/Wx/Syntax.pm:92 lib/Padre/Wx/Syntax.pm:254 msgid "Line" msgstr "줄" #: lib/Padre/Wx/Syntax.pm:255 msgid "Type" msgstr "종류" #: lib/Padre/Wx/Syntax.pm:256 lib/Padre/Wx/Dialog/SessionManager.pm:211 msgid "Description" msgstr "설명" #: lib/Padre/Wx/Ack.pm:82 msgid "Term:" msgstr "단어:" #: lib/Padre/Wx/Ack.pm:86 msgid "Dir:" msgstr "디렉터리:" #: lib/Padre/Wx/Ack.pm:88 msgid "Pick &directory" msgstr "디렉터리 고르기(&D)" #: lib/Padre/Wx/Ack.pm:90 msgid "In Files/Types:" msgstr "다음 파일/형식에서 찾음:" #: lib/Padre/Wx/Ack.pm:96 lib/Padre/Wx/Dialog/Find.pm:218 msgid "Case &Insensitive" msgstr "대소문자 구분하지않음(&I)" #: lib/Padre/Wx/Ack.pm:102 msgid "I&gnore hidden Subdirectories" msgstr "보이지않는 하부 디렉터리는 무시함(&G)" #: lib/Padre/Wx/Ack.pm:118 msgid "Find in Files" msgstr "파일에서 찾기" #: lib/Padre/Wx/Ack.pm:147 msgid "Select directory" msgstr "디렉터리를 고르세요" #: lib/Padre/Wx/Ack.pm:281 lib/Padre/Wx/Ack.pm:305 msgid "Ack" msgstr "ack로 찾기" #: lib/Padre/Wx/ErrorList.pm:91 msgid "Error List" msgstr "오류 목록" #: lib/Padre/Wx/ErrorList.pm:126 msgid "No diagnostics available for this error!" msgstr "현재 오류에 대한 진단(diagnostics) 메시지가 존재하지 않습니다!" #: lib/Padre/Wx/ErrorList.pm:135 msgid "Diagnostics" msgstr "진단(diagnostics)" #: lib/Padre/Wx/Directory.pm:52 lib/Padre/Wx/Directory.pm:143 msgid "Directory" msgstr "디렉터리" #: lib/Padre/Wx/Directory.pm:170 lib/Padre/Wx/ToolBar.pm:49 msgid "Open File" msgstr "열기" #: lib/Padre/Wx/Main.pm:391 #, perl-format msgid "No such session %s" msgstr "%s 세션은 없습니다" #: lib/Padre/Wx/Main.pm:569 msgid "Failed to create server" msgstr "서버 생성에 실패했습니다" #: lib/Padre/Wx/Main.pm:1372 msgid "Command line" msgstr "명령줄" #: lib/Padre/Wx/Main.pm:1373 msgid "Run setup" msgstr "장치 실행" #: lib/Padre/Wx/Main.pm:1403 msgid "Current document has no filename" msgstr "현재 문서의 파일 이름을 짓지 않았습니다." #: lib/Padre/Wx/Main.pm:1406 msgid "Could not find project root" msgstr "프로젝트 최상위 디텍터리를 찾을 수 없습니다." #: lib/Padre/Wx/Main.pm:1483 #, perl-format msgid "Failed to start '%s' command" msgstr "'%s' 명령을 실행하는데 실패했습니다." #: lib/Padre/Wx/Main.pm:1508 msgid "No open document" msgstr "열려있는 문서가 없습니다." #: lib/Padre/Wx/Main.pm:1525 msgid "No execution mode was defined for this document" msgstr "실행 형식을 정의하지 않은 문서입니다." #: lib/Padre/Wx/Main.pm:1556 msgid "Not a Perl document" msgstr "펄 문서가 아닙니다." #: lib/Padre/Wx/Main.pm:1722 msgid "Message" msgstr "메시지" #: lib/Padre/Wx/Main.pm:1934 msgid "Autocompletions error" msgstr "자동 완성 오류" #: lib/Padre/Wx/Main.pm:1954 msgid "Line number:" msgstr "줄 번호:" #: lib/Padre/Wx/Main.pm:1955 msgid "Go to line number" msgstr "해당 줄 번호로 이동하기" #: lib/Padre/Wx/Main.pm:2194 #, perl-format msgid "" "Cannot open %s as it is over the arbitrary file size limit of Padre which is " "currently %s" msgstr "" "패드리에서 설정한 파일 크기 제한 때문에 %s 을 열 수 없습니다." "현재 설정된 크기 제한은 %s 입니다." #: lib/Padre/Wx/Main.pm:2292 msgid "Nothing selected. Enter what should be opened:" msgstr "아무것도 선택하지 않았습니다. 열고자 하는 파일을 입력하세요:" #: lib/Padre/Wx/Main.pm:2293 msgid "Open selection" msgstr "선택한 영역 열기" #: lib/Padre/Wx/Main.pm:2357 #, perl-format msgid "Could not find file '%s'" msgstr "'%s' 파일을 찾을 수 없습니다." #: lib/Padre/Wx/Main.pm:2358 msgid "Open Selection" msgstr "선택한 영역 열기" #: lib/Padre/Wx/Main.pm:2405 msgid "JavaScript files" msgstr "자바스크립트 파일" #: lib/Padre/Wx/Main.pm:2406 msgid "Perl files" msgstr "펄 파일" #: lib/Padre/Wx/Main.pm:2407 msgid "PHP files" msgstr "PHP 파일" #: lib/Padre/Wx/Main.pm:2408 msgid "Python files" msgstr "파이썬 파일" #: lib/Padre/Wx/Main.pm:2409 msgid "Ruby files" msgstr "루비 파일" #: lib/Padre/Wx/Main.pm:2410 msgid "SQL files" msgstr "SQL 파일" #: lib/Padre/Wx/Main.pm:2411 msgid "Text files" msgstr "텍스트 파일" #: lib/Padre/Wx/Main.pm:2412 msgid "Web files" msgstr "웹 파일" #: lib/Padre/Wx/Main.pm:2415 lib/Padre/Wx/Main.pm:2416 msgid "All files" msgstr "모든 파일" #: lib/Padre/Wx/Main.pm:2457 lib/Padre/Wx/Main.pm:3661 #, perl-format msgid "Could not reload file: %s" msgstr "파일을 새로 읽어들일 수 없습니다: '%s'" #: lib/Padre/Wx/Main.pm:2483 msgid "Save file as..." msgstr "다른 이름으로 저장..." #: lib/Padre/Wx/Main.pm:2497 msgid "File already exists. Overwrite it?" msgstr "같은 이름의 파일이 이미 있습니다. 덮어쓰시겠습니까?" #: lib/Padre/Wx/Main.pm:2498 msgid "Exist" msgstr "존재함" #: lib/Padre/Wx/Main.pm:2598 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "" "마지막으로 저장한 후 디스크에 있는 파일 내용이 바뀌었습니다. 덮어쓰시겠습니" "까?" #: lib/Padre/Wx/Main.pm:2599 lib/Padre/Wx/Main.pm:3654 msgid "File not in sync" msgstr "파일의 동기가 맞지않습니다." #: lib/Padre/Wx/Main.pm:2608 msgid "Could not save file: " msgstr "파일을 저장할 수 없습니다: " #: lib/Padre/Wx/Main.pm:2670 msgid "File changed. Do you want to save it?" msgstr "파일의 내용이 바뀌었습니다. 저장하시겠습니까?" #: lib/Padre/Wx/Main.pm:2671 msgid "Unsaved File" msgstr "저장하지 않은 파일" #: lib/Padre/Wx/Main.pm:2833 msgid "Cannot diff if file was never saved" msgstr "파일을 저장하지 않으면 diff로 비교할 수 없습니다." #: lib/Padre/Wx/Main.pm:2839 msgid "There are no differences\n" msgstr "다른 점이 없습니다\n" #: lib/Padre/Wx/Main.pm:3307 msgid "Internal error" msgstr "내부 오류" #: lib/Padre/Wx/Main.pm:3495 #, perl-format msgid "Words: %s" msgstr "단어: %s" #: lib/Padre/Wx/Main.pm:3496 #, perl-format msgid "Lines: %d" msgstr "줄: %d" #: lib/Padre/Wx/Main.pm:3497 #, perl-format msgid "Chars without spaces: %s" msgstr "빈 칸을 제외한 문자: %s" #: lib/Padre/Wx/Main.pm:3498 #, perl-format msgid "Chars with spaces: %d" msgstr "빈칸을 포함한 문자: %d" #: lib/Padre/Wx/Main.pm:3499 #, perl-format msgid "Newline type: %s" msgstr "줄바꿈 유형: %s" #: lib/Padre/Wx/Main.pm:3500 #, perl-format msgid "Encoding: %s" msgstr "인코딩: %s" #: lib/Padre/Wx/Main.pm:3501 #, perl-format msgid "Document type: %s" msgstr "문서 유형: %s" #: lib/Padre/Wx/Main.pm:3501 msgid "none" msgstr "알 수 없음" #: lib/Padre/Wx/Main.pm:3503 #, perl-format msgid "Filename: %s" msgstr "파일이름: %s" #: lib/Padre/Wx/Main.pm:3533 msgid "Space to Tab" msgstr "빈 칸을 탭으로" #: lib/Padre/Wx/Main.pm:3534 msgid "Tab to Space" msgstr "탭을 빈 칸으로" #: lib/Padre/Wx/Main.pm:3537 msgid "How many spaces for each tab:" msgstr "각각의 탭에 해당하는 빈 칸 개수:" #: lib/Padre/Wx/Main.pm:3653 msgid "File changed on disk since last saved. Do you want to reload it?" msgstr "" "마지막으로 저장한 후 디스크에 있는 파일 내용이 바뀌었습니다. 새로 불러오시겠" "습니까?" #: lib/Padre/Wx/Notebook.pm:35 msgid "Files" msgstr "파일" #: lib/Padre/Wx/DocBrowser.pm:147 msgid "NAME" msgstr "이름" #: lib/Padre/Wx/DocBrowser.pm:223 msgid "Untitled" msgstr "제목 없음" #: lib/Padre/Wx/StatusBar.pm:180 msgid "L:" msgstr "줄:" #: lib/Padre/Wx/StatusBar.pm:180 msgid "Ch:" msgstr "문자:" #: lib/Padre/Wx/StatusBar.pm:242 msgid "Background Tasks are running" msgstr "후면 작업을 실행 중입니다." #: lib/Padre/Wx/StatusBar.pm:243 msgid "Background Tasks are running with high load" msgstr "부하가 많이 걸린 상태로 후면 작업을 실행 중입니다." #: lib/Padre/Wx/Bottom.pm:42 msgid "Output View" msgstr "출력 보기" #: lib/Padre/Wx/Output.pm:54 msgid "Output" msgstr "출력" #: lib/Padre/Wx/Right.pm:42 msgid "Workspace View" msgstr "작업공간 보기" #: lib/Padre/Wx/Editor.pm:705 lib/Padre/Wx/Menu/Edit.pm:66 msgid "Select all\tCtrl-A" msgstr "모두 선택\tCtrl-A" #: lib/Padre/Wx/Editor.pm:716 lib/Padre/Wx/Menu/Edit.pm:110 msgid "&Copy\tCtrl-C" msgstr "복사(&C)\tCtrl-C" #: lib/Padre/Wx/Editor.pm:728 lib/Padre/Wx/Menu/Edit.pm:122 msgid "Cu&t\tCtrl-X" msgstr "잘라내기(&T)\tCtrl-X" #: lib/Padre/Wx/Editor.pm:740 lib/Padre/Wx/Menu/Edit.pm:134 msgid "&Paste\tCtrl-V" msgstr "붙여 넣기(&P)\tCtrl-V" #: lib/Padre/Wx/Editor.pm:757 lib/Padre/Wx/Menu/Edit.pm:205 msgid "&Toggle Comment\tCtrl-Shift-C" msgstr "주석 전환(&T)\tCtrl-Shift-C" #: lib/Padre/Wx/Editor.pm:762 lib/Padre/Wx/Menu/Edit.pm:215 msgid "&Comment Selected Lines\tCtrl-M" msgstr "선택한 줄을 주석으로 변경(&C)\tCtrl-M" #: lib/Padre/Wx/Editor.pm:767 lib/Padre/Wx/Menu/Edit.pm:225 msgid "&Uncomment Selected Lines\tCtrl-Shift-M" msgstr "선택한 줄의 주석 제거(&U)\tCtrl-Shift-M" #: lib/Padre/Wx/Editor.pm:785 msgid "Fold all" msgstr "모두 접기" #: lib/Padre/Wx/Editor.pm:792 msgid "Unfold all" msgstr "모두 펼치기" #: lib/Padre/Wx/Editor.pm:805 lib/Padre/Wx/Menu/Window.pm:34 msgid "&Split window" msgstr "창 나누기(&S)" #: lib/Padre/Wx/Editor.pm:1145 msgid "You must select a range of lines" msgstr "줄의 범위를 선택해야 합니다" #: lib/Padre/Wx/Editor.pm:1161 msgid "First character of selection must be a non-word character to align" msgstr "선택 영역의 첫 번째 문자는 정렬을 위해서 단어가 아닌 문자여야합니다" #: lib/Padre/Wx/ToolBar.pm:41 msgid "New File" msgstr "새로 만들기" #: lib/Padre/Wx/ToolBar.pm:54 msgid "Save File" msgstr "저장" #: lib/Padre/Wx/ToolBar.pm:59 msgid "Close File" msgstr "파일 닫기" #: lib/Padre/Wx/ToolBar.pm:71 msgid "Undo" msgstr "되돌리기" #: lib/Padre/Wx/ToolBar.pm:77 msgid "Redo" msgstr "다시 실행" #: lib/Padre/Wx/ToolBar.pm:86 msgid "Cut" msgstr "잘라내기" #: lib/Padre/Wx/ToolBar.pm:99 msgid "Copy" msgstr "복사" #: lib/Padre/Wx/ToolBar.pm:112 msgid "Paste" msgstr "붙여넣기" #: lib/Padre/Wx/ToolBar.pm:126 msgid "Select all" msgstr "모두 선택" #: lib/Padre/Wx/CPAN/Listview.pm:43 lib/Padre/Wx/CPAN/Listview.pm:78 #: lib/Padre/Wx/Dialog/PluginManager.pm:235 msgid "Status" msgstr "상태" #: lib/Padre/Wx/Dialog/Search.pm:132 msgid "Find:" msgstr "찾기:" #: lib/Padre/Wx/Dialog/Search.pm:151 msgid "Previ&ous" msgstr "이전(&O)" #: lib/Padre/Wx/Dialog/Search.pm:169 msgid "&Next" msgstr "다음(&N)" #: lib/Padre/Wx/Dialog/Search.pm:177 msgid "Case &insensitive" msgstr "대소문자 구분하지 않음(&I)" #: lib/Padre/Wx/Dialog/Search.pm:181 msgid "Use rege&x" msgstr "정규표현식 사용(&x)" #: lib/Padre/Wx/Dialog/Find.pm:109 msgid "Replace" msgstr "바꾸기" #: lib/Padre/Wx/Dialog/Find.pm:110 lib/Padre/Wx/Dialog/Find.pm:132 msgid "Find" msgstr "찾기" #: lib/Padre/Wx/Dialog/Find.pm:138 msgid "Text to find:" msgstr "찾을 문자열:" #: lib/Padre/Wx/Dialog/Find.pm:153 msgid "&Use Regex" msgstr "정규표현식 사용(&U)" #: lib/Padre/Wx/Dialog/Find.pm:166 msgid "Replace With" msgstr "바꾸기" #: lib/Padre/Wx/Dialog/Find.pm:180 msgid "Replacement text:" msgstr "문자열 바꾸기:" #: lib/Padre/Wx/Dialog/Find.pm:201 msgid "Options" msgstr "옵션" #: lib/Padre/Wx/Dialog/Find.pm:229 msgid "Search &Backwards" msgstr "이전 찾기" #: lib/Padre/Wx/Dialog/Find.pm:241 msgid "Close Window on &hit" msgstr "일치하면 창을 닫기(&H)" #: lib/Padre/Wx/Dialog/Find.pm:258 msgid "&Replace" msgstr "바꾸기(&R)" #: lib/Padre/Wx/Dialog/Find.pm:268 msgid "Replace &all" msgstr "모두 바꾸기(&A)" #: lib/Padre/Wx/Dialog/Find.pm:279 msgid "&Find" msgstr "찾기(&F)" #: lib/Padre/Wx/Dialog/Find.pm:289 lib/Padre/Wx/Dialog/Preferences.pm:500 msgid "&Cancel" msgstr "취소(&C)" #: lib/Padre/Wx/Dialog/Find.pm:499 #, perl-format msgid "%s occurences were replaced" msgstr "%s 개를 바꾸었습니다." #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 msgid "Module Name:" msgstr "모듈 이름:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:29 msgid "Author:" msgstr "저자:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:32 msgid "Email:" msgstr "전자우편:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:35 msgid "Builder:" msgstr "빌더:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "License:" msgstr "라이센스:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "Parent Directory:" msgstr "상위 디렉터리:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "Pick parent directory" msgstr "상위 디렉터리 고르기" #: lib/Padre/Wx/Dialog/ModuleStart.pm:68 msgid "Module Start" msgstr "모듈 만들기" #: lib/Padre/Wx/Dialog/ModuleStart.pm:110 #, perl-format msgid "Field %s was missing. Module not created." msgstr "%s 항목을 빠뜨렸습니다. 모듈을 만들지 않을 것입니다." #: lib/Padre/Wx/Dialog/ModuleStart.pm:111 msgid "missing field" msgstr "빠뜨린 항목" #: lib/Padre/Wx/Dialog/ModuleStart.pm:139 #, perl-format msgid "%s apparantly created. Do you want to open it now?" msgstr "파일의 내용이 바뀌었습니다. 저장하시겠습니까?" #: lib/Padre/Wx/Dialog/ModuleStart.pm:140 msgid "Done" msgstr "완료" #: lib/Padre/Wx/Dialog/SessionManager.pm:36 msgid "Session Manager" msgstr "세션 관리자" #: lib/Padre/Wx/Dialog/SessionManager.pm:198 msgid "List of sessions" msgstr "세션 목록" #: lib/Padre/Wx/Dialog/SessionManager.pm:210 #: lib/Padre/Wx/Dialog/PluginManager.pm:233 msgid "Name" msgstr "이름" #: lib/Padre/Wx/Dialog/SessionManager.pm:212 msgid "Last update" msgstr "마지막 갱신" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Open" msgstr "열기" #: lib/Padre/Wx/Dialog/SessionManager.pm:240 msgid "Delete" msgstr "지우기" #: lib/Padre/Wx/Dialog/SessionManager.pm:241 #: lib/Padre/Wx/Dialog/PluginManager.pm:295 #: lib/Padre/Wx/Dialog/SessionSave.pm:209 msgid "Close" msgstr "닫기" #: lib/Padre/Wx/Dialog/PluginManager.pm:43 lib/Padre/Wx/Menu/Plugins.pm:34 msgid "Plugin Manager" msgstr "플러그인 관리자" #: lib/Padre/Wx/Dialog/PluginManager.pm:178 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "'%s' 클래스의 pod 를 불러오는데 오류가 발생했습니다: %s" #: lib/Padre/Wx/Dialog/PluginManager.pm:234 msgid "Version" msgstr "버전" #: lib/Padre/Wx/Dialog/PluginManager.pm:294 #: lib/Padre/Wx/Dialog/Preferences.pm:427 lib/Padre/Wx/Menu/Edit.pm:355 msgid "Preferences" msgstr "기본 설정" #: lib/Padre/Wx/Dialog/PluginManager.pm:469 #: lib/Padre/Wx/Dialog/PluginManager.pm:479 msgid "Show error message" msgstr "오류 메시지 보기" #: lib/Padre/Wx/Dialog/PluginManager.pm:493 msgid "Disable" msgstr "끄기" #: lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "Enable" msgstr "켜기" #: lib/Padre/Wx/Dialog/SessionSave.pm:32 msgid "Save session as..." msgstr "세션을 다른 이름으로 저장..." #: lib/Padre/Wx/Dialog/SessionSave.pm:179 msgid "Session name:" msgstr "세션 이름:" #: lib/Padre/Wx/Dialog/SessionSave.pm:188 msgid "Description:" msgstr "설명:" #: lib/Padre/Wx/Dialog/SessionSave.pm:208 msgid "Save" msgstr "저장" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Automatic indentation style detection" msgstr "자동으로 들여쓰기 스타일 감지하기" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Use Tabs" msgstr "탭 사용" #: lib/Padre/Wx/Dialog/Preferences.pm:44 msgid "TAB display size (in spaces):" msgstr "화면에 표시할 탭 크기 (공백 개수)" #: lib/Padre/Wx/Dialog/Preferences.pm:47 msgid "Indentation width (in columns):" msgstr "들여쓰기 너비 (칸 개수)" #: lib/Padre/Wx/Dialog/Preferences.pm:50 msgid "Guess from current document:" msgstr "현재 문서로 추측하기:" #: lib/Padre/Wx/Dialog/Preferences.pm:51 msgid "Guess" msgstr "추측하기" #: lib/Padre/Wx/Dialog/Preferences.pm:53 msgid "Autoindent:" msgstr "자동 들여쓰기:" #: lib/Padre/Wx/Dialog/Preferences.pm:77 msgid "Default word wrap on for each file" msgstr "각각의 파일에 대해 기본 단어 넘기기 적용" #: lib/Padre/Wx/Dialog/Preferences.pm:82 msgid "Auto-fold POD markup when code folding enabled" msgstr "코드 접기가 켜져 있을 때 POD 마크업을 자동으로 접기" #: lib/Padre/Wx/Dialog/Preferences.pm:87 msgid "Perl beginner mode" msgstr "펄 초심자를 위한 형식" #: lib/Padre/Wx/Dialog/Preferences.pm:91 msgid "Open files:" msgstr "파일 열기:" #: lib/Padre/Wx/Dialog/Preferences.pm:95 msgid "Open files in existing Padre" msgstr "존재하는 패드리에서 파일 열기" #: lib/Padre/Wx/Dialog/Preferences.pm:99 msgid "Methods order:" msgstr "메소드 순서:" #: lib/Padre/Wx/Dialog/Preferences.pm:102 msgid "Preferred language for error diagnostics:" msgstr "오류 진단(diagnostics)을 표시할 언어:" #: lib/Padre/Wx/Dialog/Preferences.pm:139 msgid "Colored text in output window (ANSI)" msgstr "출력 창에 색깔을 넣어서 보여주기 (ANSI)" #: lib/Padre/Wx/Dialog/Preferences.pm:143 msgid "Editor Font:" msgstr "편집기 글꼴:" #: lib/Padre/Wx/Dialog/Preferences.pm:146 msgid "Editor Current Line Background Colour:" msgstr "편집기의 현재 줄 배경 색:" #: lib/Padre/Wx/Dialog/Preferences.pm:196 msgid "Settings Demo" msgstr "데모 설정" #: lib/Padre/Wx/Dialog/Preferences.pm:280 msgid "Enable?" msgstr "활성화?" #: lib/Padre/Wx/Dialog/Preferences.pm:295 msgid "Crashed" msgstr "충돌 발생" #: lib/Padre/Wx/Dialog/Preferences.pm:328 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" "i.e.\n" "\t디렉터리 포함: -I\n" "\t테인트(taint) 검사 켜기:: -T\n" "\t유용한 경고 켜기: -w\n" "\t모든 경고 켜기: -W\n" "\t모든 경고 끄지: -X\n" #: lib/Padre/Wx/Dialog/Preferences.pm:338 #: lib/Padre/Wx/Dialog/Preferences.pm:382 msgid "Interpreter arguments:" msgstr "인터프리터 인자:" #: lib/Padre/Wx/Dialog/Preferences.pm:344 #: lib/Padre/Wx/Dialog/Preferences.pm:388 msgid "Script arguments:" msgstr "스크립트 인자:" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Unsaved" msgstr "저장하지 않음" #: lib/Padre/Wx/Dialog/Preferences.pm:352 msgid "N/A" msgstr "해당사항 없음" #: lib/Padre/Wx/Dialog/Preferences.pm:371 msgid "No Document" msgstr "문서가 없음" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Document name:" msgstr "문서 이름:" #: lib/Padre/Wx/Dialog/Preferences.pm:379 msgid "Document location:" msgstr "문서 위치:" #: lib/Padre/Wx/Dialog/Preferences.pm:406 msgid "Default" msgstr "기본" #: lib/Padre/Wx/Dialog/Preferences.pm:412 #, perl-format msgid "Current Document: %s" msgstr "현재 문서: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:452 msgid "Behaviour" msgstr "동작" #: lib/Padre/Wx/Dialog/Preferences.pm:455 msgid "Appearance" msgstr "외형" #: lib/Padre/Wx/Dialog/Preferences.pm:458 msgid "Run Parameters" msgstr "매개변수 실행" #: lib/Padre/Wx/Dialog/Preferences.pm:462 msgid "Indentation" msgstr "들여쓰기" #: lib/Padre/Wx/Dialog/Preferences.pm:489 lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "저장(&S)" #: lib/Padre/Wx/Dialog/Preferences.pm:535 msgid "new" msgstr "새로운 문서" #: lib/Padre/Wx/Dialog/Preferences.pm:536 msgid "nothing" msgstr "빈 문서" #: lib/Padre/Wx/Dialog/Preferences.pm:537 msgid "last" msgstr "마지막에 열었던 문서" #: lib/Padre/Wx/Dialog/Preferences.pm:538 msgid "no" msgstr "하지않음" #: lib/Padre/Wx/Dialog/Preferences.pm:539 msgid "same_level" msgstr "같은 수준" #: lib/Padre/Wx/Dialog/Preferences.pm:540 msgid "deep" msgstr "한 단계 깊게" #: lib/Padre/Wx/Dialog/Preferences.pm:541 msgid "alphabetical" msgstr "알파벳 순서" #: lib/Padre/Wx/Dialog/Preferences.pm:542 msgid "original" msgstr "원래 순서" #: lib/Padre/Wx/Dialog/Preferences.pm:543 msgid "alphabetical_private_last" msgstr "알파벳 순서로 하되 사설 함수는 마지막에" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "모두" #: lib/Padre/Wx/Dialog/Snippets.pm:22 msgid "Class:" msgstr "종류:" #: lib/Padre/Wx/Dialog/Snippets.pm:23 lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "코드 조각:" #: lib/Padre/Wx/Dialog/Snippets.pm:24 msgid "&Insert" msgstr "문서에 넣기(&I)" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "더하기(&A)" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "코드 조각" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "종류:" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "이름:" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "코드 조각 편집하거나 추가하기" #: lib/Padre/Wx/Dialog/Bookmarks.pm:30 msgid "Existing bookmarks:" msgstr "책갈피 목록:" #: lib/Padre/Wx/Dialog/Bookmarks.pm:42 msgid "Delete &All" msgstr "모두 지우기(&A)" #: lib/Padre/Wx/Dialog/Bookmarks.pm:55 msgid "Set Bookmark" msgstr "책갈피 꽂기" #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "GoTo Bookmark" msgstr "책갈피로 이동" #: lib/Padre/Wx/Dialog/Bookmarks.pm:122 msgid "Cannot set bookmark in unsaved document" msgstr "저장하지 않은 문서에는 책갈피를 설정할 수 없습니다" #: lib/Padre/Wx/Dialog/Bookmarks.pm:133 #, perl-format msgid "%s line %s: %s" msgstr "%s 줄 %s: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:171 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "'%s' 책갈피는 더 이상 존재하지 않습니다" #: lib/Padre/Wx/Menu/Search.pm:31 msgid "&Find\tCtrl-F" msgstr "찾기(&F)\tCtrl-F" #: lib/Padre/Wx/Menu/Search.pm:43 msgid "Find Next\tF3" msgstr "다음 찾기\tF3" #: lib/Padre/Wx/Menu/Search.pm:55 msgid "Find Previous\tShift-F3" msgstr "이전 찾기\tShift-F3" #: lib/Padre/Wx/Menu/Search.pm:68 msgid "Replace\tCtrl-R" msgstr "바꾸기\tCtrl-R" #: lib/Padre/Wx/Menu/Search.pm:81 msgid "Quick Find" msgstr "빠른 찾기" #: lib/Padre/Wx/Menu/Search.pm:102 msgid "Find Next\tF4" msgstr "다음 찾기\tF4" #: lib/Padre/Wx/Menu/Search.pm:114 msgid "Find Previous\tShift-F4" msgstr "이전 찾기\tShift-F4" #: lib/Padre/Wx/Menu/Search.pm:131 msgid "Find in fi&les..." msgstr "파일에서 찾기(&L)" #: lib/Padre/Wx/Menu/File.pm:31 msgid "&New\tCtrl-N" msgstr "새로 만들기(&N)\tCtrl-N" #: lib/Padre/Wx/Menu/File.pm:48 msgid "New..." msgstr "서식을 이용해서 새로 만들기..." #: lib/Padre/Wx/Menu/File.pm:55 msgid "Perl 5 Script" msgstr "펄 5 스크립트" #: lib/Padre/Wx/Menu/File.pm:65 msgid "Perl 5 Module" msgstr "펄 5 모듈" #: lib/Padre/Wx/Menu/File.pm:75 msgid "Perl 5 Test" msgstr "펄 5 테스트" #: lib/Padre/Wx/Menu/File.pm:85 msgid "Perl 6 Script" msgstr "펄 6 스크립트" #: lib/Padre/Wx/Menu/File.pm:95 msgid "Perl Distribution (Module::Starter)" msgstr "펄 배포 (Module::Starter)" #: lib/Padre/Wx/Menu/File.pm:108 msgid "&Open...\tCtrl-O" msgstr "열기(&O)...\tCtrl-O" #: lib/Padre/Wx/Menu/File.pm:117 msgid "Open Selection\tCtrl-Shift-O" msgstr "선택한 영역 열기\tCtrl-Shift-O" #: lib/Padre/Wx/Menu/File.pm:121 msgid "Open Session...\tCtrl-Alt-O" msgstr "세션 열기...\tCtrl-Alt-O" #: lib/Padre/Wx/Menu/File.pm:138 msgid "&Close\tCtrl-W" msgstr "닫기(&C)\tCtrl-W" #: lib/Padre/Wx/Menu/File.pm:150 msgid "Close All" msgstr "모두 닫기" #: lib/Padre/Wx/Menu/File.pm:161 msgid "Close All but Current" msgstr "현재 문서를 제외하고 모두 닫기" #: lib/Padre/Wx/Menu/File.pm:172 msgid "Reload File" msgstr "파일 다시 불러오기" #: lib/Padre/Wx/Menu/File.pm:187 msgid "&Save\tCtrl-S" msgstr "저장(&S)\tCtrl-S" #: lib/Padre/Wx/Menu/File.pm:198 msgid "Save &As...\tF12" msgstr "다른 이름으로 저장(&A)...\tF12" #: lib/Padre/Wx/Menu/File.pm:209 msgid "Save All" msgstr "모두 저장" #: lib/Padre/Wx/Menu/File.pm:220 msgid "Save Session...\tCtrl-Alt-S" msgstr "세션 저장...\tCtrl-Alt-S" #: lib/Padre/Wx/Menu/File.pm:232 msgid "&Print..." msgstr "인쇄(&P)..." #: lib/Padre/Wx/Menu/File.pm:256 msgid "Convert..." msgstr "변환..." #: lib/Padre/Wx/Menu/File.pm:262 msgid "EOL to Windows" msgstr "윈도우즈용 줄 바꿈" #: lib/Padre/Wx/Menu/File.pm:274 msgid "EOL to Unix" msgstr "유닉스용 줄 바꿈" #: lib/Padre/Wx/Menu/File.pm:286 msgid "EOL to Mac Classic" msgstr "맥 클래식 용 줄 바꿈" #: lib/Padre/Wx/Menu/File.pm:302 msgid "&Recent Files" msgstr "최근 파일(&R)" #: lib/Padre/Wx/Menu/File.pm:309 msgid "Open All Recent Files" msgstr "최근 파일 모두 열기" #: lib/Padre/Wx/Menu/File.pm:319 msgid "Clean Recent Files List" msgstr "최근 파일 목록 지우기" #: lib/Padre/Wx/Menu/File.pm:336 msgid "Document Statistics" msgstr "문서 통계" #: lib/Padre/Wx/Menu/File.pm:353 msgid "&Quit\tCtrl-Q" msgstr "끝내기(&Q)\tCtrl-Q" #: lib/Padre/Wx/Menu/Run.pm:31 msgid "Run Script\tF5" msgstr "스크립트 실행\tF5" #: lib/Padre/Wx/Menu/Run.pm:43 msgid "Run Script (debug info)\tShift-F5" msgstr "스트립트 실행 (디버그 정보)\tShift-F5" #: lib/Padre/Wx/Menu/Run.pm:55 msgid "Run Command\tCtrl-F5" msgstr "명령 실행\tCtrl-F5" #: lib/Padre/Wx/Menu/Run.pm:67 msgid "Run Tests" msgstr "테스트 실행" #: lib/Padre/Wx/Menu/Run.pm:80 msgid "Stop\tF6" msgstr "정지\tF6" #: lib/Padre/Wx/Menu/Perl.pm:40 msgid "Find Unmatched Brace" msgstr "짝이 맞지않는 괄호 찾기" #: lib/Padre/Wx/Menu/Perl.pm:89 msgid "Vertically Align Selected" msgstr "수직 정렬 선택" #: lib/Padre/Wx/Menu/Perl.pm:102 msgid "Use PPI Syntax Highlighting" msgstr "PPI를 사용한 펄5 문법 강조 사용" #: lib/Padre/Wx/Menu/Perl.pm:128 msgid "Automatic bracket completion" msgstr "자동 괄호 완성" #: lib/Padre/Wx/Menu/Experimental.pm:30 msgid "Disable Experimental Mode" msgstr "실험적인 모드 끄기" #: lib/Padre/Wx/Menu/Experimental.pm:44 msgid "Refresh Menu" msgstr "메뉴 새로 고치기" #: lib/Padre/Wx/Menu/Experimental.pm:55 lib/Padre/Wx/Menu/Experimental.pm:76 msgid "Refresh Counter: " msgstr "카운터 새로 고치기: " #: lib/Padre/Wx/Menu/Help.pm:38 msgid "Context Help\tF1" msgstr "문맥 도움말\tF1" #: lib/Padre/Wx/Menu/Help.pm:58 msgid "Current Document" msgstr "현재 문서" #: lib/Padre/Wx/Menu/Help.pm:70 msgid "Visit the PerlMonks" msgstr "펄몽크스 방문하기" #: lib/Padre/Wx/Menu/Help.pm:80 msgid "Report a New &Bug" msgstr "새로운 버그 보고하기(&B)" #: lib/Padre/Wx/Menu/Help.pm:87 msgid "View All &Open Bugs" msgstr "열려있는 모든 버그 보기(&O)" #: lib/Padre/Wx/Menu/Help.pm:97 msgid "&About" msgstr "정보(&A)" #: lib/Padre/Wx/Menu/Help.pm:151 msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" msgstr "저작권 2008-2009, Padre.pm 에 명시한 Padre 개발팀" #: lib/Padre/Wx/Menu/Plugins.pm:49 msgid "All available plugins on CPAN" msgstr "CPAN 에서 사용가능한 모든 플러그인" #: lib/Padre/Wx/Menu/Plugins.pm:60 msgid "Edit My Plugin" msgstr "My 플러그인 편집" #: lib/Padre/Wx/Menu/Plugins.pm:66 msgid "Could not find the Padre::Plugin::My plugin" msgstr "Padre::Plugin::My 플러그인을 찾을 수 없습니다." #: lib/Padre/Wx/Menu/Plugins.pm:75 msgid "Reload My Plugin" msgstr "My 플러그인을 다시 불러오기" #: lib/Padre/Wx/Menu/Plugins.pm:82 lib/Padre/Wx/Menu/Plugins.pm:85 #: lib/Padre/Wx/Menu/Plugins.pm:86 msgid "Reset My Plugin" msgstr "My 플러그인 초기화" #: lib/Padre/Wx/Menu/Plugins.pm:101 msgid "Reload All Plugins" msgstr "모든 플러그인을 다시 불러오기" #: lib/Padre/Wx/Menu/Plugins.pm:108 msgid "(Re)load Current Plugin" msgstr "현재 플러그인을 (다시) 불러오기" #: lib/Padre/Wx/Menu/Plugins.pm:115 msgid "Test A Plugin From Local Dir" msgstr "로컬 디렉터리에서 플러그인 테스트" #: lib/Padre/Wx/Menu/Plugins.pm:122 msgid "Plugin Tools" msgstr "플러그인 도구" #: lib/Padre/Wx/Menu/Edit.pm:31 msgid "&Undo" msgstr "되돌리기(&U)" #: lib/Padre/Wx/Menu/Edit.pm:43 msgid "&Redo" msgstr "다시 실행(&R)" #: lib/Padre/Wx/Menu/Edit.pm:59 msgid "Select" msgstr "선택" #: lib/Padre/Wx/Menu/Edit.pm:78 msgid "Mark selection start\tCtrl-[" msgstr "선택할 영역의 처음 표시\tCtrl-[" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Mark selection end\tCtrl-]" msgstr "선택할 영역의 끝 표시\tCtrl-]" #: lib/Padre/Wx/Menu/Edit.pm:102 msgid "Clear selection marks" msgstr "선택할 영역 표시 지우기" #: lib/Padre/Wx/Menu/Edit.pm:150 msgid "&Goto\tCtrl-G" msgstr "특정 줄로 이동(&G)\tCtrl-G" #: lib/Padre/Wx/Menu/Edit.pm:160 msgid "&AutoComp\tCtrl-P" msgstr "자동 완성(&A)\tCtrl-P" #: lib/Padre/Wx/Menu/Edit.pm:170 msgid "&Brace matching\tCtrl-1" msgstr "괄호 짝 맞추기(&B)\tCtrl-1" #: lib/Padre/Wx/Menu/Edit.pm:180 msgid "&Join lines\tCtrl-J" msgstr "줄 합치기(&J)\tCtrl-J" #: lib/Padre/Wx/Menu/Edit.pm:190 msgid "Snippets\tCtrl-Shift-A" msgstr "코드 조각\tCtrl-Shift-A" #: lib/Padre/Wx/Menu/Edit.pm:238 msgid "Tabs and Spaces" msgstr "탭과 빈 칸" #: lib/Padre/Wx/Menu/Edit.pm:244 msgid "Tabs to Spaces..." msgstr "탭을 빈 칸으로..." #: lib/Padre/Wx/Menu/Edit.pm:256 msgid "Spaces to Tabs..." msgstr "빈 칸을 탭으로..." #: lib/Padre/Wx/Menu/Edit.pm:270 msgid "Delete Trailing Spaces" msgstr "줄 끝의 빈 칸 지우기" #: lib/Padre/Wx/Menu/Edit.pm:283 msgid "Delete Leading Spaces" msgstr "줄 앞의 빈 칸 지우기" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Upper/Lower Case" msgstr "대소문자" #: lib/Padre/Wx/Menu/Edit.pm:303 msgid "Upper All\tCtrl-Shift-U" msgstr "모두 대문자로\tCtrl-Shift-U" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "Lower All\tCtrl-U" msgstr "모두 소문자로\tCtrl-U" #: lib/Padre/Wx/Menu/Edit.pm:330 msgid "Diff" msgstr "diff로 차이점 비교하기" #: lib/Padre/Wx/Menu/Edit.pm:340 msgid "Insert From File..." msgstr "파일을 통째로 집어넣기..." #: lib/Padre/Wx/Menu/Window.pm:46 msgid "Next File\tCtrl-TAB" msgstr "다음 파일\tCtrl-TAB" #: lib/Padre/Wx/Menu/Window.pm:55 msgid "Previous File\tCtrl-Shift-TAB" msgstr "이전 파일\tCtrl-Shift-TAB" #: lib/Padre/Wx/Menu/Window.pm:64 msgid "Last Visited File\tCtrl-6" msgstr "마지막에 열었던 파일\tCtrl-6" #: lib/Padre/Wx/Menu/Window.pm:73 msgid "Right Click\tAlt-/" msgstr "오른쪽 클릭\tAlt-/" #: lib/Padre/Wx/Menu/Window.pm:90 msgid "GoTo Subs Window" msgstr "함수 창으로 이동" #: lib/Padre/Wx/Menu/Window.pm:103 msgid "GoTo Outline Window\tAlt-L" msgstr "개요 창으로 이동\tAlt-L" #: lib/Padre/Wx/Menu/Window.pm:115 msgid "GoTo Output Window\tAlt-O" msgstr "출력 창으로 이동\tAlt-O" #: lib/Padre/Wx/Menu/Window.pm:125 msgid "GoTo Syntax Check Window\tAlt-C" msgstr "문법 점검 창으로 이동\tAlt-C" #: lib/Padre/Wx/Menu/Window.pm:140 msgid "GoTo Main Window\tAlt-M" msgstr "메인 창으로 이동\tAlt-M" #: lib/Padre/Wx/Menu/View.pm:37 msgid "Lock User Interface" msgstr "사용자 인터페이스 잠그기" #: lib/Padre/Wx/Menu/View.pm:52 msgid "Show Output" msgstr "출력 창 보기" #: lib/Padre/Wx/Menu/View.pm:64 msgid "Show Functions" msgstr "함수 창 보기" #: lib/Padre/Wx/Menu/View.pm:82 msgid "Show Outline" msgstr "개요 보기" #: lib/Padre/Wx/Menu/View.pm:94 msgid "Show Directory Tree" msgstr "디렉터리 트리 보기" #: lib/Padre/Wx/Menu/View.pm:106 msgid "Show Syntax Check" msgstr "문법 검사 보기" #: lib/Padre/Wx/Menu/View.pm:118 msgid "Show Error List" msgstr "오류 목록 보기" #: lib/Padre/Wx/Menu/View.pm:132 msgid "Show StatusBar" msgstr "상태 표시줄 보기" #: lib/Padre/Wx/Menu/View.pm:149 msgid "View Document As..." msgstr "문서를 다음 형식으로 보기..." #: lib/Padre/Wx/Menu/View.pm:183 msgid "Show Line Numbers" msgstr "줄 번호 보기" #: lib/Padre/Wx/Menu/View.pm:195 msgid "Show Code Folding" msgstr "코드 접기 보기" #: lib/Padre/Wx/Menu/View.pm:207 msgid "Show Call Tips" msgstr "호출 팁 보기" #: lib/Padre/Wx/Menu/View.pm:222 msgid "Show Current Line" msgstr "현재 줄 보기" #: lib/Padre/Wx/Menu/View.pm:237 msgid "Show Newlines" msgstr "줄 바꿈 보기" #: lib/Padre/Wx/Menu/View.pm:249 msgid "Show Whitespaces" msgstr "공백 문자 보기" #: lib/Padre/Wx/Menu/View.pm:261 msgid "Show Indentation Guide" msgstr "들여쓰기 안내선 보기" #: lib/Padre/Wx/Menu/View.pm:273 msgid "Word-Wrap" msgstr "줄 바꿔서 단어 넘기기" #: lib/Padre/Wx/Menu/View.pm:288 msgid "Increase Font Size\tCtrl-+" msgstr "글꼴 크기 늘리기\tCtrl-+" #: lib/Padre/Wx/Menu/View.pm:300 msgid "Decrease Font Size\tCtrl--" msgstr "글꼴 크기 줄이기\tCtrl--" #: lib/Padre/Wx/Menu/View.pm:312 msgid "Reset Font Size\tCtrl-/" msgstr "원래 글꼴 크기\tCtrl-/" #: lib/Padre/Wx/Menu/View.pm:327 msgid "Set Bookmark\tCtrl-B" msgstr "책갈피 꽂기\tCtrl-B" #: lib/Padre/Wx/Menu/View.pm:339 msgid "Goto Bookmark\tCtrl-Shift-B" msgstr "책갈피로 이동\tCtrl-Shift-B" #: lib/Padre/Wx/Menu/View.pm:355 msgid "Style" msgstr "스타일" #: lib/Padre/Wx/Menu/View.pm:359 msgid "Padre" msgstr "패드리(Padre)" #: lib/Padre/Wx/Menu/View.pm:360 msgid "Night" msgstr "밤(Night)" #: lib/Padre/Wx/Menu/View.pm:361 msgid "Ultraedit" msgstr "울트라에디트(Ultraedit)" #: lib/Padre/Wx/Menu/View.pm:362 msgid "Notepad++" msgstr "노트패드++(Notepad++)" #: lib/Padre/Wx/Menu/View.pm:410 msgid "Language" msgstr "언어" #: lib/Padre/Wx/Menu/View.pm:417 msgid "System Default" msgstr "시스템 기본 설정" #: lib/Padre/Wx/Menu/View.pm:464 msgid "&Full Screen\tF11" msgstr "전체 화면(&F)\tF11" Padre-1.00/share/locale/it-it.po0000644000175000017500000066251211730207264015106 0ustar petepetemsgid "" msgstr "" "Project-Id-Version: Padre_IT\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-14 04:10-0700\n" "PO-Revision-Date: \n" "Last-Translator: Simone Blandino \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Italian\n" "X-Poedit-Country: ITALY\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-Basepath: .\n" "X-Poedit-SearchPath-0: G:\\Documents\\Padre\\Padre\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "\".\" also matches newline" msgstr "\".\" corrisponde anche col fine riga" #: lib/Padre/Config.pm:487 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "\"Apri sessione\" chiederà quale sessione (insieme di file) aprire all'avvio di Padre." #: lib/Padre/Config.pm:489 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "\"File aperti in precedenza\" ricorderà i file aperti quando chiudete Padre e li riaprirà al prossimo avvio." #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" e \"$\" corrispondono all'inizio e alla fine di qualsiasi riga nella stringa" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# L'input è in $_\n" "$_ = $_;\n" "# L'output va in $_\n" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "$_ per entrambi" #: lib/Padre/Wx/Diff.pm:110 #, perl-format msgid "%d line added" msgstr "Aggiunta %d riga" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d line changed" msgstr "Modificata %d riga" #: lib/Padre/Wx/Diff.pm:121 #, perl-format msgid "%d line deleted" msgstr "Cancellata %d riga" #: lib/Padre/Wx/Diff.pm:109 #, perl-format msgid "%d lines added" msgstr "Aggiunte %d linee" #: lib/Padre/Wx/Diff.pm:98 #, perl-format msgid "%d lines changed" msgstr "Modificate %d righe" #: lib/Padre/Wx/Diff.pm:120 #, perl-format msgid "%d lines deleted" msgstr "Cancellate %d righe" #: lib/Padre/Wx/ReplaceInFiles.pm:214 #, perl-format msgid "%s (%s changed)" msgstr "%s (cambiati %s)" #: lib/Padre/Wx/Panel/FoundInFiles.pm:346 #, perl-format msgid "%s (%s results)" msgstr "%s (risultati %s)" #: lib/Padre/Wx/ReplaceInFiles.pm:222 #, perl-format msgid "%s (crashed)" msgstr "%s (crash)" #: lib/Padre/PluginManager.pm:527 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Crash istanziando: %s" #: lib/Padre/PluginManager.pm:473 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Crash caricando: %s" #: lib/Padre/PluginManager.pm:537 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "Impossibile istanziare il plug-in %s" #: lib/Padre/PluginManager.pm:497 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - non è una sottoclasse di Padre::Plugin" #: lib/Padre/PluginManager.pm:510 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - non compatibile con la versione %s - %s di Padre" #: lib/Padre/PluginManager.pm:485 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - il plugin è vuoto o privo di versione" #: lib/Padre/Wx/TaskList.pm:280 #: lib/Padre/Wx/Panel/TaskList.pm:172 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s nell'espressione regolare TODO, controllate la configurazione." #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s riga %s: %s" #: lib/Padre/Wx/VCS.pm:212 #, perl-format msgid "%s version control is not currently available" msgstr "Il sistema di controllo di versione %s non è attualmente disponibile" #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Riga: %s File: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2592 #: lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "&Informazioni su..." #: lib/Padre/Wx/FBP/Preferences.pm:1545 msgid "&Advanced..." msgstr "&Avanzate..." #: lib/Padre/Wx/ActionLibrary.pm:860 msgid "&Autocomplete" msgstr "Completamento &automatico" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "&Brace Matching" msgstr "Co&rrispondenza parentesi" #: lib/Padre/Wx/FBP/FindInFiles.pm:90 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:108 msgid "&Browse" msgstr "Sfoglia" #: lib/Padre/Wx/FBP/Preferences.pm:1561 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:153 #: lib/Padre/Wx/Dialog/OpenResource.pm:183 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&Annulla" #: lib/Padre/Wx/FBP/FindInFiles.pm:137 #: lib/Padre/Wx/FBP/Find.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:147 #: lib/Padre/Wx/FBP/Replace.pm:121 msgid "&Case Sensitive" msgstr "&Considera maiuscole/minuscole" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "Modifi&ca stile variabile" #: lib/Padre/Wx/ActionLibrary.pm:1706 msgid "&Check for Common (Beginner) Errors" msgstr "Verifi&ca errori comuni (da principianti)" #: lib/Padre/Wx/ActionLibrary.pm:532 msgid "&Clean Recent Files List" msgstr "Ripulis&ci elenco file recenti" #: lib/Padre/Wx/ActionLibrary.pm:658 msgid "&Clear Selection Marks" msgstr "Rimuovi indi&catori di selezione" #: lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:134 #: lib/Padre/Wx/Dialog/HelpSearch.pm:180 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:275 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 msgid "&Close" msgstr "&Chiudi" #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "&Comment Out" msgstr "&Commenta" #: lib/Padre/Wx/ActionLibrary.pm:2491 msgid "&Context Help" msgstr "Aiuto &contestuale" #: lib/Padre/Wx/ActionLibrary.pm:2376 msgid "&Context Menu" msgstr "Menù &contestuale" #: lib/Padre/Wx/ActionLibrary.pm:688 msgid "&Copy" msgstr "&Copia" #: lib/Padre/Wx/Menu/Debug.pm:68 msgid "&Debug" msgstr "&Debug" #: lib/Padre/Wx/ActionLibrary.pm:1638 msgid "&Decrease Font Size" msgstr "&Diminuisci dimensione carattere" #: lib/Padre/Wx/ActionLibrary.pm:369 #: lib/Padre/Wx/FBP/Preferences.pm:1213 #: lib/Padre/Wx/FBP/Bookmarks.pm:95 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "&Cancella" #: lib/Padre/Wx/ActionLibrary.pm:1073 msgid "&Delete Trailing Spaces" msgstr "&Elimina spaziatura a fine riga" #: lib/Padre/Wx/ActionLibrary.pm:1718 msgid "&Deparse selection" msgstr "&Deparse selezione" #: lib/Padre/Wx/Dialog/PluginManager.pm:104 msgid "&Disable" msgstr "&Disabilita" #: lib/Padre/Wx/ActionLibrary.pm:544 msgid "&Document Statistics" msgstr "Statistiche &documento" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "&Edit" msgstr "&Modifica" #: lib/Padre/Wx/ActionLibrary.pm:2255 msgid "&Edit My Plug-in" msgstr "&Modifica My Plug-in" #: lib/Padre/Wx/ActionLibrary.pm:2220 msgid "&Edit with Regex Editor..." msgstr "&Modifica con editor espressioni regolari" #: lib/Padre/Wx/Dialog/PluginManager.pm:110 #: lib/Padre/Wx/Dialog/PluginManager.pm:116 msgid "&Enable" msgstr "&Abilita" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "&Indicate un numero di riga tra 1 e %s:" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "&Indicate una posizione tra 1 e %s:" #: lib/Padre/Wx/Menu/File.pm:291 msgid "&File" msgstr "&File" #: lib/Padre/Wx/ActionLibrary.pm:930 msgid "&File..." msgstr "&File..." #: lib/Padre/Wx/FBP/Preferences.pm:1097 #: lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "&Filtro" #: lib/Padre/Wx/FBP/FindInFiles.pm:153 msgid "&Find" msgstr "Tro&va" #: lib/Padre/Wx/FBP/Find.pm:111 #: lib/Padre/Wx/FBP/Replace.pm:153 msgid "&Find Next" msgstr "Trova successivo" #: lib/Padre/Wx/ActionLibrary.pm:1220 msgid "&Find Previous" msgstr "&Trova precedente" #: lib/Padre/Wx/ActionLibrary.pm:1167 msgid "&Find..." msgstr "Tro&va..." #: lib/Padre/Wx/ActionLibrary.pm:1518 msgid "&Fold All" msgstr "Comprimi tutto" #: lib/Padre/Wx/ActionLibrary.pm:1538 msgid "&Fold/Unfold Current" msgstr "Comprimi/espandi" #: lib/Padre/Wx/ActionLibrary.pm:1282 msgid "&Go To..." msgstr "&Vai a..." #: lib/Padre/Wx/Outline.pm:141 msgid "&Go to Element" msgstr "&Vai all'elemento" #: lib/Padre/Wx/ActionLibrary.pm:2470 #: lib/Padre/Wx/Menu/Help.pm:115 msgid "&Help" msgstr "&Aiuto" #: lib/Padre/Wx/ActionLibrary.pm:1628 msgid "&Increase Font Size" msgstr "&Aumenta dimensione carattere" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "&Join Lines" msgstr "&Unisci righe" #: lib/Padre/Wx/ActionLibrary.pm:2110 msgid "&Launch Debugger" msgstr "Avvia Debugger" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "Supporto &live" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "Carica tutti i modu&li di Padre" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "&Lower All" msgstr "Tutto minusco&lo" #: lib/Padre/Wx/Dialog/HelpSearch.pm:155 msgid "&Matching Help Topics:" msgstr "&Argomenti corrispondenti:" #: lib/Padre/Wx/Dialog/OpenResource.pm:227 msgid "&Matching Items:" msgstr "&Elementi corrispondenti:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:181 msgid "&Matching Menu Items:" msgstr "&Voci di menu corrispondenti:" #: lib/Padre/Wx/Menu/Tools.pm:67 msgid "&Module Tools" msgstr "S&trumenti modulo" #: lib/Padre/Wx/ActionLibrary.pm:1926 msgid "&Move POD to __END__" msgstr "&Sposta POD dopo __END__" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "&Nuovo" #: lib/Padre/Wx/ActionLibrary.pm:1779 msgid "&Newline Same Column" msgstr "&Nuova riga, stessa colonna" #: lib/Padre/Wx/FBP/FindFast.pm:101 msgid "&Next" msgstr "&Successivo" #: lib/Padre/Wx/ActionLibrary.pm:791 msgid "&Next Difference" msgstr "Differenza &successiva" #: lib/Padre/Wx/ActionLibrary.pm:2353 msgid "&Next File" msgstr "File &successivo" #: lib/Padre/Wx/ActionLibrary.pm:780 msgid "&Next Problem" msgstr "Problema &successivo" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:149 #: lib/Padre/Wx/Dialog/OpenResource.pm:177 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "&Apri" #: lib/Padre/Wx/ActionLibrary.pm:523 msgid "&Open All Recent Files" msgstr "&Apri tutti i file recenti" #: lib/Padre/Wx/ActionLibrary.pm:195 msgid "&Open..." msgstr "&Apri..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:228 msgid "&Original text:" msgstr "Testo &originale:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "&Output testo:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:81 msgid "&POSIX Character classes" msgstr "Classi di caratteri &POSIX" #: lib/Padre/Wx/ActionLibrary.pm:2515 msgid "&Padre Support (English)" msgstr "Supporto &Padre (Inglese)" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "&Paste" msgstr "&Incolla" #: lib/Padre/Wx/ActionLibrary.pm:1107 msgid "&Patch..." msgstr "&Patch..." #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "Sorgente filtro &Perl:" #: lib/Padre/Wx/ActionLibrary.pm:2233 msgid "&Plug-in Manager" msgstr "Gestore &plug-in" #: lib/Padre/Wx/ActionLibrary.pm:2188 msgid "&Preferences" msgstr "&Preferenze" #: lib/Padre/Wx/FBP/FindFast.pm:85 msgid "&Previous" msgstr "&Precedente" #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "&Previous File" msgstr "File &precedente" #: lib/Padre/Wx/ActionLibrary.pm:503 msgid "&Print..." msgstr "Stam&pa..." #: lib/Padre/Wx/ActionLibrary.pm:556 msgid "&Project Statistics" msgstr "Statistiche &progetto" #: lib/Padre/Wx/Dialog/RegexEditor.pm:100 msgid "&Quantifiers" msgstr "&Quantificatori" #: lib/Padre/Wx/ActionLibrary.pm:803 msgid "&Quick Fix" msgstr "&Riparazione rapida" #: lib/Padre/Wx/ActionLibrary.pm:1331 msgid "&Quick Menu Access..." msgstr "Accesso &rapido al menu..." #: lib/Padre/Wx/ActionLibrary.pm:567 msgid "&Quit" msgstr "&Esci" #: lib/Padre/Wx/Menu/File.pm:248 msgid "&Recent Files" msgstr "File &recenti" #: lib/Padre/Wx/ActionLibrary.pm:607 msgid "&Redo" msgstr "&Ripristina" #: lib/Padre/Wx/ActionLibrary.pm:2210 msgid "&Regex Editor" msgstr "Editor espressioni ®olari" #: lib/Padre/Wx/FBP/FindInFiles.pm:129 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:155 msgid "&Regular Expression" msgstr "Espressioni &Regolari" #: lib/Padre/Wx/Dialog/RegexEditor.pm:168 msgid "&Regular expression:" msgstr "Espressione ®olare:" #: lib/Padre/Wx/ActionLibrary.pm:2272 msgid "&Reload My Plug-in" msgstr "&Ricarica My Plug-in" #: lib/Padre/Wx/Main.pm:4697 msgid "&Reload selected" msgstr "&Ricarica selezionato" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "&Rename Variable..." msgstr "&Rinomina variabile..." #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:171 #: lib/Padre/Wx/FBP/Replace.pm:169 msgid "&Replace" msgstr "&Sostituisci" #: lib/Padre/Wx/Dialog/RegexEditor.pm:249 msgid "&Replace text with:" msgstr "&Sostituisci testo con:" #: lib/Padre/Wx/FBP/Preferences.pm:1232 #: lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "&Reset" #: lib/Padre/Wx/ActionLibrary.pm:1648 msgid "&Reset Font Size" msgstr "&Ripristina dimensione carattere" #: lib/Padre/Wx/Dialog/RegexEditor.pm:259 msgid "&Result from replace:" msgstr "&risultato della sostituzione:" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "&Esegui" #: lib/Padre/Wx/ActionLibrary.pm:1942 msgid "&Run Script" msgstr "&Esegui script" #: lib/Padre/Wx/ActionLibrary.pm:413 #: lib/Padre/Wx/FBP/Preferences.pm:1536 msgid "&Save" msgstr "&Salva" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&Salva la sessione automaticamente" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "Documentazione di riferimento &Scintilla" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "C&erca" #: lib/Padre/Wx/ActionLibrary.pm:2479 msgid "&Search Help" msgstr "&Ricerca nell'help" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "&Seleziona" #: lib/Padre/Wx/Dialog/OpenResource.pm:205 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&Selezionate un elemento da aprire (? = qualsiasi carattere, * = qualsiasi stringa)" #: lib/Padre/Wx/Main.pm:4694 msgid "&Select files to reload:" msgstr "&Scegliete quali file ricaricare" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "&Imposta" #: lib/Padre/Wx/Dialog/PluginManager.pm:98 msgid "&Show Error Message" msgstr "&Mostra messaggio d'errore" #: lib/Padre/Wx/ActionLibrary.pm:918 msgid "&Snippets..." msgstr "&Frammenti..." #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "Avvia/Arresta &sub trace" #: lib/Padre/Wx/ActionLibrary.pm:2024 msgid "&Stop Execution" msgstr "&Interrompi esecuzione" #: lib/Padre/Wx/ActionLibrary.pm:943 msgid "&Toggle Comment" msgstr "&Imposta/rimuovi commento" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "S&trumenti" #: lib/Padre/Wx/ActionLibrary.pm:2581 msgid "&Translate Padre..." msgstr "&Traducete Padre..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:174 msgid "&Type a menu item name to access:" msgstr "&Digitate il nome di una voce di menu per accedervi:" #: lib/Padre/Wx/ActionLibrary.pm:968 msgid "&Uncomment" msgstr "Rim&uovi commento" #: lib/Padre/Wx/ActionLibrary.pm:587 msgid "&Undo" msgstr "&Annulla" #: lib/Padre/Wx/ActionLibrary.pm:1085 msgid "&Upper All" msgstr "Tutto mai&uscolo" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Valore:" #: lib/Padre/Wx/Menu/View.pm:247 msgid "&View" msgstr "&Visualizza" #: lib/Padre/Wx/Menu/View.pm:101 msgid "&View Document As..." msgstr "&Visualizza documento come..." #: lib/Padre/Wx/ActionLibrary.pm:2539 msgid "&Win32 Questions (English)" msgstr "Domande riguardo &Win32 (Inglese)" #: lib/Padre/Wx/Menu/Window.pm:82 msgid "&Window" msgstr "Fi&nestra" #: lib/Padre/Wx/ActionLibrary.pm:1615 msgid "&Word-Wrap File" msgstr "&A capo automatico per il file" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "Documentazione di riferimento &wxWidget %s" #: lib/Padre/Wx/Panel/Debugger.pm:618 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "'%s' non sembra una variabile. Prima selezionate una variabile nel codice e riprovate." #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "(Re)load &Current Plug-in" msgstr "(Ri)carica il Plugin &corrente" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(Dalla versione Perl %s)" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "(non definito)" #: lib/Padre/PluginManager.pm:777 msgid "(core)" msgstr "(nucleo)" #: lib/Padre/Wx/Dialog/About.pm:145 msgid "(disabled)" msgstr "(disabilitato)" #: lib/Padre/Wx/Dialog/About.pm:153 msgid "(unsupported)" msgstr "(non supportato)" #: lib/Padre/Wx/FBP/Preferences.pm:1165 #: lib/Padre/Wx/FBP/Preferences.pm:1179 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/VCS.pm:337 msgid ", " msgstr "," #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "- DEPRECATO!" #: lib/Padre/Wx/FBP/Debugger.pm:256 msgid ". Return to the executed line." msgstr ". Ritorna alla riga eseguita." #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "7-bit US-ASCII character" msgstr "Caratteri ASCII-US a 7 bit" #: lib/Padre/Wx/CPAN.pm:510 #, perl-format msgid "Loading %s..." msgstr "Caricamento %s..." #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "Una finestra di dialogo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "A comment" msgstr "Un commento" #: lib/Padre/Wx/Dialog/RegexEditor.pm:125 msgid "A group" msgstr "Un gruppo" #: lib/Padre/Config.pm:483 msgid "A new empty file" msgstr "Un nuovo file vuoto" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Un insieme variegato di strumenti usati dagli sviluppatori di Padre\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "A word boundary" msgstr "Delimitatore di parola" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/FBP/About.pm:296 msgid "Aaron Trevena" msgstr "Aaron Trevena" #: lib/Padre/Wx/FBP/About.pm:29 #: lib/Padre/Plugin/PopularityContest.pm:211 msgid "About" msgstr "Informazioni su..." #: lib/Padre/Wx/CPAN.pm:217 msgid "Abstract" msgstr "Sintesi" #: lib/Padre/Wx/FBP/Patch.pm:47 #: lib/Padre/Wx/Dialog/Preferences.pm:170 msgid "Action" msgstr "Azione" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Azione: %s" #: lib/Padre/Wx/FBP/About.pm:122 msgid "Adam Kennedy" msgstr "Adam Kennedy" #: lib/Padre/Wx/FBP/Preferences.pm:303 msgid "Add another closing bracket if there already is one" msgstr "Aggiunge un'altra parentesi chiusa se ce n'è già una" #: lib/Padre/Wx/VCS.pm:519 msgid "Add file to repository?" msgstr "Aggiungi file al repository?" #: lib/Padre/Wx/VCS.pm:248 #: lib/Padre/Wx/VCS.pm:262 msgid "Added" msgstr "Aggiunto" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Impostazioni avanzate" #: lib/Padre/Wx/FBP/Patch.pm:70 msgid "Against" msgstr "Contro" #: lib/Padre/Wx/FBP/About.pm:128 #: lib/Padre/Wx/FBP/About.pm:337 msgid "Ahmad Zawawi" msgstr "Ahmad Zawawi" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Alarm" msgstr "Allarme" #: lib/Padre/Wx/FBP/About.pm:200 msgid "Alexandr Ciornii" msgstr "Alexandr Ciornii" #: lib/Padre/Wx/Syntax.pm:83 msgid "Alien Error" msgstr "Errore alieno" #: lib/Padre/Wx/ActionLibrary.pm:1768 msgid "Align a selection of text to the same left column." msgstr "Allinea a sinistra, alla stessa colonna, il testo selezionato" #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "Tutto" #: lib/Padre/Wx/Main.pm:4426 #: lib/Padre/Wx/Main.pm:4427 #: lib/Padre/Wx/Main.pm:4782 #: lib/Padre/Wx/Main.pm:6003 #: lib/Padre/Wx/Choice/Files.pm:19 msgid "All Files" msgstr "Tutti i file" #: lib/Padre/Document/Perl.pm:547 msgid "All braces appear to be matched" msgstr "Tutte le parentesi sembrano corrispondere" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Allow the selection of another name to save the current document" msgstr "Consente la scelta di un altro nome per salvare il documento corrente" #: lib/Padre/Wx/Dialog/RegexEditor.pm:83 msgid "Alphabetic characters" msgstr "Caratteri alfabetici" #: lib/Padre/Config.pm:580 msgid "Alphabetical Order" msgstr "Ordine alfabetico" #: lib/Padre/Config.pm:581 msgid "Alphabetical Order (Private Last)" msgstr "Ordine alfabetico (privato per ultimo)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphanumeric characters" msgstr "Caratteri alfanumerici" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Alphanumeric characters plus \"_\"" msgstr "Caratteri alfanumerici più \"_\"" #: lib/Padre/Wx/FBP/Preferences.pm:1157 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:113 msgid "Alternation" msgstr "Alternativa" #: lib/Padre/Wx/FBP/About.pm:478 msgid "Amir E. Aharoni" msgstr "Amir E. Aharoni" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Andrew Bramble" msgstr "Andrew Bramble" #: lib/Padre/Wx/FBP/About.pm:625 msgid "Andrew Shitov" msgstr "Andrew Shitov" #: lib/Padre/Wx/Dialog/RegexEditor.pm:71 msgid "Any character except a newline" msgstr "Qualsiasi carattere tranne il fine riga" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any decimal digit" msgstr "Qualsiasi cifra decimale" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any non-digit" msgstr "Qualsiasi non cifra" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any non-whitespace character" msgstr "Qualsiasi carattere non di spaziatura" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any non-word character" msgstr "Qualsiasi carattere non utilizzato nelle parole" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any whitespace character" msgstr "Qualsiasi carattere di spaziatura" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any word character" msgstr "Qualsiasi carattere utilizzato nelle parole" #: lib/Padre/Wx/FBP/Preferences.pm:1921 msgid "Appearance" msgstr "Aspetto" #: lib/Padre/Wx/FBP/Preferences.pm:822 msgid "Appearance Preview" msgstr "Anteprima aspetto" #: lib/Padre/Wx/ActionLibrary.pm:804 msgid "Apply one of the quick fixes for the current document" msgstr "Applica una delle soluzioni rapide al documento corrente" #: lib/Padre/Locale.pm:157 #: lib/Padre/Wx/FBP/About.pm:328 msgid "Arabic" msgstr "Arabo" #: lib/Padre/Wx/ActionLibrary.pm:487 msgid "Ask for a session name and save the list of files currently opened" msgstr "Richiede un nome per la sessione e salva l'elenco dei file aperti" #: lib/Padre/Wx/ActionLibrary.pm:568 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Richiede se i file non salvati debbano essere salvati e poi esce da Padre" #: lib/Padre/Wx/ActionLibrary.pm:1904 msgid "Assign the selected expression to a newly declared variable" msgstr "Assegna l'espressione selezionata a una nuova variabile" #: lib/Padre/Wx/Outline.pm:387 msgid "Attributes" msgstr "Attributi" #: lib/Padre/Wx/FBP/Sync.pm:290 msgid "Authentication" msgstr "Autenticazione" #: lib/Padre/Wx/VCS.pm:55 #: lib/Padre/Wx/CPAN.pm:208 msgid "Author" msgstr "Autore" #: lib/Padre/Wx/FBP/Preferences.pm:328 msgid "Auto-fold POD markup when code folding enabled" msgstr "Coprimi automaticamente il markup POD quando la compressione del codice è abilitata" #: lib/Padre/Wx/FBP/Preferences.pm:1922 msgid "Autocomplete" msgstr "Completamento automatico" #: lib/Padre/Wx/FBP/Preferences.pm:200 msgid "Autocomplete always while typing" msgstr "Autocompleta sempre mentre si digita" #: lib/Padre/Wx/FBP/Preferences.pm:295 msgid "Autocomplete brackets" msgstr "Completamento automatico parentesi" #: lib/Padre/Wx/FBP/Preferences.pm:216 msgid "Autocomplete new functions in scripts" msgstr "Completa automaticamente le nuove funzioni negli script" #: lib/Padre/Wx/FBP/Preferences.pm:208 msgid "Autocomplete new methods in packages" msgstr "Completa automaticamente i nuovi metodi nei package" #: lib/Padre/Wx/Main.pm:3686 msgid "Autocompletion error" msgstr "Errore del completamento automatico" #: lib/Padre/Wx/FBP/Preferences.pm:1057 msgid "Autoindent" msgstr "Indentazione automatica" #: lib/Padre/Wx/StatusBar.pm:269 msgid "Background Tasks are running" msgstr "Ci sono task in esecuzione in background " #: lib/Padre/Wx/StatusBar.pm:270 msgid "Background Tasks are running with high load" msgstr "Ci sono task con un alto carico in esecuzione in background " #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Backreference to the nth group" msgstr "Riferimento al n-esimo gruppo" #: lib/Padre/Wx/Dialog/Preferences.pm:28 msgid "Backspace" msgstr "Backspace" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Beginning of line" msgstr "Inizio riga" #: lib/Padre/Wx/FBP/Preferences.pm:1924 msgid "Behaviour" msgstr "Comportamento" #: lib/Padre/MIME.pm:885 msgid "Binary File" msgstr "File binario" #: lib/Padre/Wx/FBP/About.pm:308 msgid "Blake Willmarth" msgstr "Blake Willmarth" #: lib/Padre/Wx/FBP/SLOC.pm:91 msgid "Blank Lines:" msgstr "Righe vuote:" #: lib/Padre/Wx/FBP/Preferences.pm:844 msgid "Bloat Reduction" msgstr "Riduzione " #: lib/Padre/Wx/FBP/About.pm:93 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "" "L'immagine di avvio farfalla blu su foglia verde è basata sul lavoro \n" "di Jerry Charlotte (blackbutterfly)" #: lib/Padre/Wx/FBP/Bookmarks.pm:29 msgid "Bookmarks" msgstr "Segnalibri" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Booleano" #: lib/Padre/Config.pm:60 msgid "Bottom Panel" msgstr "Pannello inferiore" #: lib/Padre/Wx/FBP/Preferences.pm:278 msgid "Brace Assist" msgstr "Assistenza parentesi" #: lib/Padre/Wx/Panel/Breakpoints.pm:55 msgid "Breakpoints" msgstr "Punti d'interruzione" #: lib/Padre/Wx/FBP/About.pm:170 #: lib/Padre/Wx/FBP/About.pm:583 msgid "Breno G. de Oliveira" msgstr "Breno G. de Oliveira" #: lib/Padre/Wx/FBP/About.pm:212 msgid "Brian Cassidy" msgstr "Brian Cassidy" #: lib/Padre/Wx/FBP/VCS.pm:83 msgid "Bring changes from the repository into the working copy" msgstr "Riporta le modifiche dal repository alla copia di lavoro" #: lib/Padre/Wx/ActionLibrary.pm:196 msgid "Browse directory of the current document to open one or several files" msgstr "Sfoglia la cartella del documento corrente per aprire uno o più file" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Browse the directory of the installed examples to open one file" msgstr "Sfoglia la cartella degli esempi installati per aprire un file" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "Browser: nessun visualizzatore per %s" #: lib/Padre/Wx/ActionLibrary.pm:1982 msgid "Builds the current project, then run all tests." msgstr "Compila il progetto corrente, poi esegue tutti i test." #: lib/Padre/Wx/FBP/About.pm:236 #: lib/Padre/Wx/FBP/About.pm:640 msgid "Burak Gursoy" msgstr "Burak Gursoy" #: lib/Padre/Wx/ActionLibrary.pm:2504 msgid "C&urrent Document" msgstr "Documento &corrente" #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "CHANGED" msgstr "MODIFICATO" #: lib/Padre/Wx/CPAN.pm:101 #: lib/Padre/Wx/FBP/Preferences.pm:421 msgid "CPAN Explorer" msgstr "Esplora CPAN" #: lib/Padre/Wx/FBP/Preferences.pm:915 msgid "CPAN Explorer Tool" msgstr "Strumento esplora CPAN" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/Snippet.pm:135 #: lib/Padre/Wx/FBP/FindInFiles.pm:162 #: lib/Padre/Wx/FBP/Bookmarks.pm:127 #: lib/Padre/Wx/FBP/Find.pm:136 #: lib/Padre/Wx/FBP/Special.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:180 #: lib/Padre/Wx/FBP/Replace.pm:202 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "Annulla" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "Impossibile trovare l'eseguibile python in PATH" #: lib/Padre/Document/Ruby.pm:54 msgid "Cannot find ruby executable in your PATH" msgstr "Impossibile trovare l'eseguibile ruby in PATH" #: lib/Padre/Wx/Main.pm:4079 #, perl-format msgid "Cannot open a directory: %s" msgstr "Impossibile aprire la cartella: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "Impossibile impostare un segnalibro in un documento non salvato" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Case-insensitive matching" msgstr "Corrispondenza non sensibile alla capitalizzazione" #: lib/Padre/Wx/FBP/About.pm:206 #: lib/Padre/Wx/FBP/About.pm:568 msgid "Cezary Morga" msgstr "Cezary Morga" #: lib/Padre/Wx/FBP/Preferences.pm:1259 msgid "Change Detection" msgstr "Individuazione modifiche" #: lib/Padre/Wx/FBP/Preferences.pm:939 msgid "Change Font Size (Outside Preferences)" msgstr "Modifica dimensione font (opzioni esterne)" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "Change the current selection to lower case" msgstr "Converti la selezione corrente in minuscolo" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Change the current selection to upper case" msgstr "Converti la selezione corrente in maiuscolo" #: lib/Padre/Wx/ActionLibrary.pm:982 msgid "Change the encoding of the current document to the default of the operating system" msgstr "Modifica la codifica del documento corrente in quella predefinita del sistema operativo" #: lib/Padre/Wx/ActionLibrary.pm:992 msgid "Change the encoding of the current document to utf-8" msgstr "Modifica la codifica del documento corrente in utf-8" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "Modifica il terminatore di riga del documento corrente in quello utilizzato per i file di Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1022 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "Modifica il terminatore di riga del documento corrente in quello utilizzato per i file di Unix, Linux, Mac OSX" #: lib/Padre/Wx/ActionLibrary.pm:1012 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "Modifica il terminatore di riga del documento corrente in quello utilizzato per i file di MS Windows" #: lib/Padre/Document/Perl.pm:1515 msgid "Change variable style" msgstr "Modifica stile variabile" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Change variable style from camelCase to Camel_Case" msgstr "Modifica lo stile della variabile da camelCase a Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1849 msgid "Change variable style from camelCase to camel_case" msgstr "Modifica lo stile della variabile da camelCase a camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1835 msgid "Change variable style from camel_case to CamelCase" msgstr "Modifica lo stile della variabile da camel_case a CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "Change variable style from camel_case to camelCase" msgstr "Modifica lo stile della variabile da camel_case a camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "Change variable to &camelCase" msgstr "Modifica nome variabile in &camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Change variable to &using_underscores" msgstr "Modifica nome della variabile in &utilizza_underscore" #: lib/Padre/Wx/ActionLibrary.pm:1834 msgid "Change variable to C&amelCase" msgstr "Modifica nome variabile in C&amelCase" #: lib/Padre/Wx/ActionLibrary.pm:1862 msgid "Change variable to U&sing_Underscores" msgstr "Modifica lo stile della variabile in U&tilizza_Underscore" #: lib/Padre/Wx/Dialog/RegexEditor.pm:69 msgid "Character classes" msgstr "Classi di caratteri" #: lib/Padre/Wx/Dialog/Goto.pm:343 msgid "Character position" msgstr "Posizione carattere" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Character set" msgstr "Insieme di caratteri" #: lib/Padre/Wx/FBP/Document.pm:174 msgid "Characters (All)" msgstr "Caratteri (tutti)" #: lib/Padre/Wx/FBP/Document.pm:192 msgid "Characters (Visible)" msgstr "Caratteri (visibili)" #: lib/Padre/Document/Perl.pm:548 msgid "Check Complete" msgstr "Verifica completata" #: lib/Padre/Document/Perl.pm:617 #: lib/Padre/Document/Perl.pm:673 #: lib/Padre/Document/Perl.pm:692 msgid "Check cancelled" msgstr "Verifica annullata" #: lib/Padre/Wx/ActionLibrary.pm:1707 msgid "Check the current file for common beginner errors" msgstr "Verifica errori comuni (da principianti) nel file corrente" #: lib/Padre/Locale.pm:431 msgid "Chinese" msgstr "Cinese" #: lib/Padre/Locale.pm:441 #: lib/Padre/Wx/FBP/About.pm:343 msgid "Chinese (Simplified)" msgstr "Cinese (semplificato)" #: lib/Padre/Locale.pm:451 #: lib/Padre/Wx/FBP/About.pm:364 msgid "Chinese (Traditional)" msgstr "Cinese (tradizionale)" #: lib/Padre/Wx/Main.pm:4298 #: lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "Scegli file" #: lib/Padre/Wx/FBP/About.pm:218 msgid "Chris Dolan" msgstr "Chris Dolan" #: lib/Padre/Wx/FBP/About.pm:358 msgid "Chuanren Wu" msgstr "Chuanren Wu" #: lib/Padre/Wx/FBP/About.pm:272 msgid "Claudio Ramirez" msgstr "Claudio Ramirez" #: lib/Padre/Wx/FBP/Preferences.pm:677 msgid "Clean up file content on saving (for supported document types)" msgstr "Ripulisci il contenuto del file durante il salvataggio (per i tipi di documento supportati)" #: lib/Padre/Wx/Dialog/OpenResource.pm:221 msgid "Click on the arrow for filter settings" msgstr "Cliccate sulla freccia per le impostazioni del filtro" #: lib/Padre/Wx/FBP/Patch.pm:120 #: lib/Padre/Wx/FBP/Text.pm:56 #: lib/Padre/Wx/FBP/PluginManager.pm:128 #: lib/Padre/Wx/FBP/About.pm:666 #: lib/Padre/Wx/FBP/SLOC.pm:176 #: lib/Padre/Wx/FBP/Sync.pm:253 #: lib/Padre/Wx/FBP/Diff.pm:94 #: lib/Padre/Wx/FBP/Document.pm:254 #: lib/Padre/Wx/FBP/SessionManager.pm:119 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:279 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "Chiudi" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close &Files..." msgstr "Chiudi &file..." #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close &all Files" msgstr "Chiudi &tutti i file" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close &this Project" msgstr "Chiudi ques&to progetto" #: lib/Padre/Wx/Main.pm:5199 msgid "Close all" msgstr "Chiudi tutto" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all &other Files" msgstr "Chiudi tutti i file tranne questo" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Chiude tutti i file che appartengono al progetto corrente" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Chiude tutti i file tranne quello corrente" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Chiude tutti i file aperti nell'editor" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Chiude tutti i file che non appartengono al progetto corrente" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "Chiude documento corrente" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Close current document and remove the file from disk" msgstr "Chiude il documento corrente e rimuove il file dal disco" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other &Projects" msgstr "Chiudi tutti i &progetti meno questo" #: lib/Padre/Wx/Main.pm:5268 msgid "Close some" msgstr "Chiudi alcuni" #: lib/Padre/Wx/Main.pm:5245 msgid "Close some files" msgstr "Chiude alcuni file" #: lib/Padre/Wx/ActionLibrary.pm:1683 msgid "Close the highest priority dialog or panel" msgstr "Chiude il pannello o la finestra a più alta priorità" #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "Chiudi questa finestra" #: lib/Padre/Wx/FBP/SLOC.pm:67 msgid "Code Lines:" msgstr "Righe di codice:" #: lib/Padre/Config.pm:579 msgid "Code Order" msgstr "Ordine del codice" #: lib/Padre/Wx/FBP/FoundInFiles.pm:91 msgid "Collapse All" msgstr "Comprimi tutto" #: lib/Padre/Wx/FBP/Preferences.pm:144 msgid "Coloured text in output window (ANSI)" msgstr "Testo colorato nella finestra di output (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1927 msgid "Combine scattered POD at the end of the document" msgstr "Combina elementi POD sparsi alla fine del documento" #: lib/Padre/Wx/Command.pm:97 msgid "Command" msgstr "Comando" #: lib/Padre/Wx/Main.pm:2721 msgid "Command line" msgstr "Riga di comando" #: lib/Padre/Wx/FBP/Preferences.pm:555 msgid "Command line files open in existing Padre instance" msgstr "Apre i file nell'istanza esistente di Padre da riga di comando" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "Comment out selected lines or the current line" msgstr "6Rimuove il commento dalle righe del documento selezionate" #: lib/Padre/Wx/ActionLibrary.pm:944 msgid "Comment out/remove comment for selected lines or the current line" msgstr "Commenta o rimuove il commento dalle righe del documento selezionate" #: lib/Padre/Wx/FBP/SLOC.pm:79 msgid "Comments Lines:" msgstr "Righe di commento:" #: lib/Padre/Wx/VCS.pm:499 msgid "Commit file/directory to repository?" msgstr "Effettua commit del file/cartella sul repository" #: lib/Padre/Wx/Dialog/About.pm:112 msgid "Config" msgstr "Configurazione" #: lib/Padre/Wx/FBP/Sync.pm:134 #: lib/Padre/Wx/FBP/Sync.pm:163 msgid "Confirm:" msgstr "Conferma:" #: lib/Padre/Wx/VCS.pm:251 msgid "Conflicted" msgstr "In conflitto" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "Connessione al server FTP %s..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Connessione al server FTP avvenuta con successo." #: lib/Padre/Wx/FBP/SLOC.pm:103 msgid "Constructive Cost Model (COCOMO)" msgstr "Modello Costi Costruttivi (COCOMO)" #: lib/Padre/Wx/FBP/Preferences.pm:183 msgid "Content Assist" msgstr "Assistenza contenuto" #: lib/Padre/Config.pm:787 msgid "Contents of the status bar" msgstr "Contenuto della barra di stato" #: lib/Padre/Config.pm:532 msgid "Contents of the window title" msgstr "Contenuto del titolo della finestra" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Control character" msgstr "Carattere di controllo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Control characters" msgstr "Caratteri di controllo" #: lib/Padre/Wx/Menu/Edit.pm:188 msgid "Convert &Encoding" msgstr "Converti &codifica" #: lib/Padre/Wx/Menu/Edit.pm:210 msgid "Convert &Line Endings" msgstr "Converti fine &riga" #: lib/Padre/Wx/ActionLibrary.pm:1044 msgid "Convert all tabs to spaces in the current document" msgstr "Converte tutte le tabulazioni in spazi nel documento corrente" #: lib/Padre/Wx/ActionLibrary.pm:1054 msgid "Convert all the spaces to tabs in the current document" msgstr "Converte tutti gli spazi in tabulazioni nel documento corrente" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "Cop&ia speciale" #: lib/Padre/Wx/VCS.pm:265 msgid "Copied" msgstr "Copiato" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Copia" #: lib/Padre/Wx/ActionLibrary.pm:734 msgid "Copy &Directory Name" msgstr "Copia il &nome della cartella" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "Copy Editor &Content" msgstr "Copia il &contenuto dell'editor" #: lib/Padre/Wx/ActionLibrary.pm:719 msgid "Copy F&ilename" msgstr "Copia il nome f&ile" #: lib/Padre/Wx/ActionLibrary.pm:704 msgid "Copy Full &Filename" msgstr "Copia il nome &file completo" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Copia il nome" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Copia il valore" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Copy filename to clipboard" msgstr "Copia il nome file negli appunti" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Copy the current tab into a new document" msgstr "Copia la scheda corrente in un nuovo documento" #: lib/Padre/Wx/FBP/About.pm:87 msgid "" "Copyright 2008–2012 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "" "Copyright 2008-2011 il team di sviluppo di Padre Padre è un software libero; \n" "potete redistribuirlo e/o modificarlo negli stessi termini di Perl 5." #: lib/Padre/Wx/Directory/TreeCtrl.pm:197 #, perl-format msgid "Could not create: '%s': %s" msgstr "Impossibile creare: '%s': '%s'" #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, perl-format msgid "Could not delete: '%s': %s" msgstr "Impossibile cancellare: '%s': %s" #: lib/Padre/Wx/Panel/Debugger.pm:596 #, perl-format msgid "Could not evaluate '%s'" msgstr "Impossibile valutare '%s'" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "Impossibile trovare KDE o GNOME" #: lib/Padre/Wx/Dialog/HelpSearch.pm:312 msgid "Could not find a help provider for " msgstr "Impossibile trovare un provider dell'help per" #: lib/Padre/Wx/Main.pm:4286 #, perl-format msgid "Could not find file '%s'" msgstr "Impossibile trovare il file '%s'" #: lib/Padre/Wx/Main.pm:2787 msgid "Could not find perl executable" msgstr "Impossibile trovare l'eseguibile perl" #: lib/Padre/Wx/Main.pm:2757 #: lib/Padre/Wx/Main.pm:2818 #: lib/Padre/Wx/Main.pm:2872 msgid "Could not find project root" msgstr "Impossibile trovare la radice del progetto" #: lib/Padre/Wx/ActionLibrary.pm:2262 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "Impossibile trovare il plugin Padre::Plugin::My" #: lib/Padre/PluginManager.pm:906 msgid "Could not locate project directory." msgstr "Impossibile localizzare la cartella del progetto." #: lib/Padre/Wx/Main.pm:4588 #, perl-format msgid "Could not reload file: %s" msgstr "Impossibile ricaricare il file %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:178 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr "Impossibile rinominare: '%s' in '%s0: '%s'" #: lib/Padre/Wx/Main.pm:5025 msgid "Could not save file: " msgstr "Impossibile salvare il file:" #: lib/Padre/Wx/CPAN.pm:226 msgid "Count" msgstr "Conteggio" #: lib/Padre/Wx/Directory/TreeCtrl.pm:290 #: lib/Padre/Wx/Directory/TreeCtrl.pm:349 msgid "Create Directory" msgstr "Crea cartella" #: lib/Padre/Wx/ActionLibrary.pm:1793 msgid "Create Project &Tagsfile" msgstr "Crea i &tagfile del progetto" #: lib/Padre/Wx/ActionLibrary.pm:1296 msgid "Create a bookmark in the current file current row" msgstr "Crea un segnalibro sulla riga corrente del file corrente" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by Gábor Szabó" msgstr "Creato da Gábor Szabó" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "Crea un perltag - un file per il progetto corrente, per supportare i find_method e completamento automatico" #: lib/Padre/Wx/FBP/Preferences.pm:1149 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:673 msgid "Cu&t" msgstr "&Taglia" #: lib/Padre/Document/Perl.pm:691 #, perl-format msgid "Current '%s' not found" msgstr "'%s' corrente non trovato" #: lib/Padre/Wx/Dialog/OpenResource.pm:244 msgid "Current Directory: " msgstr "Cartella corrente:" #: lib/Padre/Document/Perl.pm:672 msgid "Current cursor does not seem to point at a method" msgstr "Il cursore corrente non sembra puntare ad un metodo" #: lib/Padre/Document/Perl.pm:616 #: lib/Padre/Document/Perl.pm:650 msgid "Current cursor does not seem to point at a variable" msgstr "Il cursore corrente non sembra puntare ad una variabile" #: lib/Padre/Document/Perl.pm:812 #: lib/Padre/Document/Perl.pm:862 #: lib/Padre/Document/Perl.pm:899 msgid "Current cursor does not seem to point at a variable." msgstr "Il cursore corrente non sembra puntare ad una variabile." #: lib/Padre/Wx/Main.pm:2812 #: lib/Padre/Wx/Main.pm:2863 msgid "Current document has no filename" msgstr "Il documento corrente non ha un nome file" #: lib/Padre/Wx/Main.pm:2866 msgid "Current document is not a .t file" msgstr "Il documento corrente non è un file .t" #: lib/Padre/Wx/VCS.pm:206 msgid "Current file is not in a version control system" msgstr "Il file corrente non è inserito nel sistema di controllo di versione" #: lib/Padre/Wx/VCS.pm:197 msgid "Current file is not saved in a version control system" msgstr "Il file corrente non è salvato in un sistema per il controllo delle versioni" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "Numero riga corrente: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "Posizione corrente: %s" #: lib/Padre/Wx/FBP/Preferences.pm:727 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "Frequenza di intermittenza del cursore (millisecondi - 0 = disattivata; 500 = predefinita)" #: lib/Padre/Wx/ActionLibrary.pm:1878 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "Taglia la selezione corrente e la trasforma in una nuova sub. Verrà aggiunta una chiamata a questa sub al posto della selezione." #: lib/Padre/Locale.pm:167 #: lib/Padre/Wx/FBP/About.pm:379 msgid "Czech" msgstr "Ceco" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "D&uplicate" msgstr "D&uplica" #: lib/Padre/Wx/Dialog/WindowList.pm:355 msgid "DELETED" msgstr "ELIMINATO" #: lib/Padre/Locale.pm:177 msgid "Danish" msgstr "Danese" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "Data/ora" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:370 msgid "Debug" msgstr "Debug" #: lib/Padre/Wx/Panel/DebugOutput.pm:50 msgid "Debug Output" msgstr "Output del debug" #: lib/Padre/Wx/FBP/Debugger.pm:552 msgid "Debug-Output Options" msgstr "Opzioni di output del debug" #: lib/Padre/Wx/Panel/Debugger.pm:60 msgid "Debugger" msgstr "Debugger" #: lib/Padre/Wx/Panel/Debugger.pm:250 msgid "Debugger is already running" msgstr "Il debugger è già in esecuzione" #: lib/Padre/Wx/Panel/Debugger.pm:319 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "Il debug è fallito. Avete verificato gli errori di sintassi del vostro programma?" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "Predefinito" #: lib/Padre/Wx/FBP/Preferences.pm:588 msgid "Default Newline Format:" msgstr "Carattere di fine riga predefinito:" #: lib/Padre/Wx/FBP/Preferences.pm:603 msgid "Default Project Directory:" msgstr "Cartella di progetto predefinita:" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Valore predefinito" #: lib/Padre/Wx/FBP/Preferences.pm:636 msgid "Default word wrap on for each file" msgstr "A capo automatico di default per ciascun file" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "Ritarda di 1 secondo la coda delle azioni" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "Ritarda di 10 secondi la coda delle azioni" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "Ritarda di 30 secondi la coda delle azioni" #: lib/Padre/Wx/FBP/Sync.pm:236 #: lib/Padre/Wx/Directory/TreeCtrl.pm:379 #: lib/Padre/Wx/Dialog/Preferences.pm:36 msgid "Delete" msgstr "Cancella" #: lib/Padre/Wx/FBP/Bookmarks.pm:111 msgid "Delete &All" msgstr "Cancella &tutto" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Delete &Leading Spaces" msgstr "Elimina spaziatura a &inizio riga" #: lib/Padre/Wx/Directory/TreeCtrl.pm:266 msgid "Delete Directory" msgstr "Elimina cartella" #: lib/Padre/Wx/Directory/TreeCtrl.pm:325 msgid "Delete File" msgstr "Cancella file" #: lib/Padre/Wx/FBP/Breakpoints.pm:43 msgid "" "Delete MARKER_NOT_BREAKABLE\n" "Current File Only" msgstr "" "Elimina MARKER_NOT_BREAKABLE\n" "File corrente" #: lib/Padre/Wx/FBP/SessionManager.pm:103 msgid "Delete Session" msgstr "Cancella Sessione" #: lib/Padre/Wx/FBP/Breakpoints.pm:130 msgid "Delete all project Breakpoints" msgstr "Elimina tutti i punti d'interruzione del progetto" #: lib/Padre/Wx/VCS.pm:538 msgid "Delete file from repository??" msgstr "Elimina file dal repository??" #: lib/Padre/Wx/FBP/Preferences.pm:1218 msgid "Delete the keyboard binding" msgstr "Elimina la scorciatoia da tastiera" #: lib/Padre/Wx/VCS.pm:249 #: lib/Padre/Wx/VCS.pm:263 msgid "Deleted" msgstr "Cancellato" #: lib/Padre/Wx/Syntax.pm:53 msgid "Deprecation" msgstr "Deprecato" #: lib/Padre/Wx/Dialog/Preferences.pm:171 #: lib/Padre/Wx/Dialog/SessionManager2.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "Descrizione" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "Descrizione:" #: lib/Padre/Wx/FBP/Preferences.pm:1520 msgid "Detect Perl 6 files" msgstr "Individuazione file Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1049 msgid "Detect indent settings for each file" msgstr "Individuazione impostazioni indentazione per ogni file" #: lib/Padre/Wx/FBP/About.pm:842 msgid "Development" msgstr "Sviluppo" #: lib/Padre/Wx/FBP/SLOC.pm:156 msgid "Development Cost (USD):" msgstr "Costo di sviluppo (USD):" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "Non è stato fornito un nome per il segnalibro" #: lib/Padre/CPAN.pm:113 #: lib/Padre/CPAN.pm:137 msgid "Did not provide a distribution" msgstr "Non è stata fornita un distribuzione" #: lib/Padre/Wx/Dialog/Bookmarks.pm:94 msgid "Did not select a bookmark" msgstr "Non avete selezionato un segnalibro" #: lib/Padre/Wx/FBP/Diff.pm:29 msgid "Diff" msgstr "Diff" #: lib/Padre/Wx/Dialog/Patch.pm:479 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "Diff effettuato con successo, dovreste vedere un nuovo tab denominato %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Digits" msgstr "Cifre" #: lib/Padre/Config.pm:635 msgid "Directories First" msgstr "Prima le cartelle" #: lib/Padre/Config.pm:636 msgid "Directories Mixed" msgstr "Cartelle miste" #: lib/Padre/Wx/Directory/TreeCtrl.pm:95 msgid "Directory" msgstr "Cartella" #: lib/Padre/Wx/FBP/FindInFiles.pm:73 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:91 msgid "Directory:" msgstr "Cartella:" #: lib/Padre/Wx/FBP/About.pm:403 msgid "Dirk De Nijs" msgstr "Dirk De Nijs" #: lib/Padre/PluginHandle.pm:27 msgid "Disabled" msgstr "Disabilitato" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Disk" msgstr "Disco" #: lib/Padre/Wx/FBP/Debugger.pm:143 msgid "Display Value" msgstr "Mostra valore" #: lib/Padre/Wx/CPAN.pm:207 #: lib/Padre/Wx/CPAN.pm:216 #: lib/Padre/Wx/CPAN.pm:225 #: lib/Padre/Wx/Dialog/About.pm:131 msgid "Distribution" msgstr "Distribuzione" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "Non mostrare nuovamente" #: lib/Padre/Wx/Main.pm:5386 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "Desiderate davvero chiudere %s e cancellarlo dal disco?" #: lib/Padre/Wx/VCS.pm:518 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "Volete aggiungere '%s' al vostro repository" #: lib/Padre/Wx/VCS.pm:498 msgid "Do you want to commit?" msgstr "Volete effettuare un commit?" #: lib/Padre/Wx/Main.pm:3117 msgid "Do you want to continue?" msgstr "Volete continuare?" #: lib/Padre/Wx/VCS.pm:537 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "Desiderate eliminare '%s' dal repository?" #: lib/Padre/Wx/Dialog/Preferences.pm:488 msgid "Do you want to override it with the selected action?" msgstr "Desiderate sostituirlo con l'azione selezionata?" #: lib/Padre/Wx/VCS.pm:564 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "Volete annullare le modifiche a '%s'" #: lib/Padre/Wx/FBP/Document.pm:123 msgid "Document" msgstr "Documento" #: lib/Padre/Wx/FBP/Document.pm:67 msgid "Document Class" msgstr "Classe Documento" #: lib/Padre/Wx/FBP/Document.pm:29 msgid "Document Information" msgstr "Informazioni documento" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "Strumenti documento" #: lib/Padre/Wx/FBP/Document.pm:55 msgid "Document Type" msgstr "Tipo documento" #: lib/Padre/Wx/Main.pm:6814 #, perl-format msgid "Document encoded to (%s)" msgstr "Documento codificato in (%s)" #: lib/Padre/Wx/Dialog/Preferences.pm:32 msgid "Down" msgstr "Giù" #: lib/Padre/Wx/FBP/Sync.pm:219 msgid "Download" msgstr "Scaricamento" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "Esegui il dump dell'oggetto Padre su STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Esegue il dump completo dell'oggetto di Padre su STDOUT per test/debug." #: lib/Padre/Locale.pm:351 #: lib/Padre/Wx/FBP/About.pm:394 msgid "Dutch" msgstr "Olandese" #: lib/Padre/Locale.pm:361 msgid "Dutch (Belgium)" msgstr "Olandese (Belgio)" #: lib/Padre/Wx/FBP/Debugger.pm:376 msgid "" "E\n" "Display all thread ids the current one will be identified: ." msgstr "" "E\n" "Mostra tutti i thread id. Quello corrente sarà identificato da: ." #: lib/Padre/Wx/ActionLibrary.pm:1031 msgid "EOL to &Mac Classic" msgstr "Fine riga in formato &Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1021 msgid "EOL to &Unix" msgstr "Fine riga in formato &Unix" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "EOL to &Windows" msgstr "Fine riga in formato &Windows" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:364 msgid "Edit" msgstr "Modifica" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Edit user and host preferences" msgstr "Modifica le preferenze dell'utente e dell'host" #: lib/Padre/Wx/Dialog/WindowList.pm:224 msgid "Editor" msgstr "Edtor" #: lib/Padre/Wx/FBP/Preferences.pm:867 msgid "Editor Bookmark Support" msgstr "Supporto segnalibri dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:875 msgid "Editor Code Folding" msgstr "Raggruppamento codice dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:799 msgid "Editor Current Line Background Colour" msgstr "Colore di sfondo della riga corrente dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:883 msgid "Editor Cursor Memory" msgstr "Memoria cursore dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:907 msgid "Editor Diff Feature" msgstr "Funzionalità diff dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:775 msgid "Editor Font" msgstr "Font dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:619 msgid "Editor Options" msgstr "Segnalibri esistenti" #: lib/Padre/Wx/FBP/Preferences.pm:891 msgid "Editor Session Support" msgstr "Supporto sessioni dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:693 #: lib/Padre/Wx/FBP/Preferences.pm:1925 msgid "Editor Style" msgstr "Stile dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:899 msgid "Editor Syntax Annotations" msgstr "Annotazione sintassi dell'editor" #: lib/Padre/Wx/Dialog/Sync.pm:155 msgid "Email and confirmation do not match." msgstr "Email e conferma non coincidono" #: lib/Padre/Wx/FBP/Sync.pm:75 #: lib/Padre/Wx/FBP/Sync.pm:120 msgid "Email:" msgstr "Email:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:651 msgid "Empty regex" msgstr "Espressione regolare vuota" #: lib/Padre/Wx/FBP/PluginManager.pm:96 msgid "Enable" msgstr "Abilita" #: lib/Padre/Wx/FBP/Preferences.pm:1397 msgid "Enable Perl beginner mode" msgstr "Abilita modalità principiante del Perl" #: lib/Padre/Wx/FBP/Preferences.pm:652 msgid "Enable Smart highlighting while typing" msgstr "Abilita evidenziazione Smart mentre si digita" #: lib/Padre/Config.pm:1418 msgid "Enable document differences feature" msgstr "Abilita funzionalità differenza documenti" #: lib/Padre/Config.pm:1371 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "Abilta o disabilita Esegui con Devel::EndStats se è installato." #: lib/Padre/Config.pm:1390 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "Abilita o disabilita Esegui con Devel::TraceUse se è installato." #: lib/Padre/Config.pm:1409 msgid "Enable syntax checker annotations in the editor" msgstr "Abilita annotazioni dell'analizzatore sintassi nell'edito" #: lib/Padre/Config.pm:1436 msgid "Enable the CPAN Explorer, powered by MetaCPAN" msgstr "Abilita Esplora CPAN, grazie a MetaCPAN" #: lib/Padre/Config.pm:1454 msgid "Enable the experimental command line interface" msgstr "Abilita l'interfaccia sperimentale a riga di comando" #: lib/Padre/Config.pm:1427 msgid "Enable version control system support" msgstr "Abilita il supporto del sistema per il controllo di versione" #: lib/Padre/PluginHandle.pm:28 msgid "Enabled" msgstr "Abilitato" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "Encode Document &to..." msgstr "Codifica il documento &in..." #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Encode Document to &System Default" msgstr "Codifica il documento con la modalità predefinita del &sistema" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Encode Document to &utf-8" msgstr "Codifica il documento in &utf-8" #: lib/Padre/Wx/Main.pm:6836 msgid "Encode document to..." msgstr "Codifica il documento in..." #: lib/Padre/Wx/Main.pm:6835 msgid "Encode to:" msgstr "Codifica in:" #: lib/Padre/Wx/FBP/Document.pm:91 msgid "Encoding" msgstr "Codifica" #: lib/Padre/Wx/Dialog/Preferences.pm:38 msgid "End" msgstr "Fine" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "End case modification/metacharacter quoting" msgstr "Fine modifica capitalizzazione/metacarattere di citazione" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "End of line" msgstr "Fine riga" #: lib/Padre/Locale.pm:197 msgid "English" msgstr "Inglese" #: lib/Padre/Locale.pm:125 msgid "English (Australia)" msgstr "Inglese (Australia)" #: lib/Padre/Locale.pm:206 msgid "English (Canada)" msgstr "Inglese (Canada)" #: lib/Padre/Locale.pm:215 msgid "English (New Zealand)" msgstr "Inglese (Nuova Zelanda)" #: lib/Padre/Locale.pm:86 msgid "English (United Kingdom)" msgstr "Inglese (Regno Unito)" #: lib/Padre/Locale.pm:226 msgid "English (United States)" msgstr "Inglese (Stati Uniti)" #: lib/Padre/Wx/FBP/About.pm:610 msgid "Enrique Nell" msgstr "Enrique Nell" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enter" msgstr "Invio" #: lib/Padre/CPAN.pm:127 msgid "" "Enter URL to install\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Introducete l'URL per installare\\n" "Es. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:214 msgid "Enter parts of the resource name to find it" msgstr "Digitate parte del nome della risorsa per trovarla" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "Epoca" #: lib/Padre/PluginHandle.pm:23 #: lib/Padre/Document.pm:455 #: lib/Padre/Wx/Editor.pm:939 #: lib/Padre/Wx/Main.pm:5026 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/PluginManager.pm:209 #: lib/Padre/Wx/Dialog/Sync.pm:79 #: lib/Padre/Wx/Dialog/Sync.pm:87 #: lib/Padre/Wx/Dialog/Sync.pm:100 #: lib/Padre/Wx/Dialog/Sync.pm:118 #: lib/Padre/Wx/Dialog/Sync.pm:135 #: lib/Padre/Wx/Dialog/Sync.pm:146 #: lib/Padre/Wx/Dialog/Sync.pm:156 #: lib/Padre/Wx/Dialog/Sync.pm:174 #: lib/Padre/Wx/Dialog/Sync.pm:185 #: lib/Padre/Wx/Dialog/Sync.pm:196 #: lib/Padre/Wx/Dialog/Sync.pm:207 msgid "Error" msgstr "Errore" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Errore di connessione a %s:%s: %s" #: lib/Padre/Wx/Main.pm:5402 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "Errore cancellando %s:\n" "%s" #: lib/Padre/Wx/Main.pm:5613 msgid "Error loading perl filter dialog." msgstr "Errore nel caricamento della dialog del filtro perl" #: lib/Padre/Wx/Dialog/PluginManager.pm:137 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Errore nel caricamento del pod per la classe '%s': %s" #: lib/Padre/Wx/Main.pm:5584 msgid "Error loading regex editor." msgstr "Errore nel caricamento dell'editor di espressioni regolari" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Errore di login a %s:%s: %s" #: lib/Padre/Wx/Main.pm:6790 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "Errore restituito dallo strumento filtro:\n" "%s" #: lib/Padre/Wx/Main.pm:6772 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Errore eseguendo lo strumento filtro:\n" "%s" #: lib/Padre/PluginManager.pm:849 #, perl-format msgid "Error when calling menu for plug-in %s: %s" msgstr "Errore richiamando il menù del plugin %s: %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:83 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:327 #, perl-format msgid "Error while calling %s %s" msgstr "Errore richiamando %s %s" #: lib/Padre/Document.pm:282 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Errore di determinazione del tipo MIME\n" "Può essere un problema di codifica\n" "State cercando di caricare un file binario?" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "Errore nel caricamento di Aspect, è installato?" #: lib/Padre/Document.pm:232 msgid "Error while opening file: no file object" msgstr "Si è verificato un errore aprendo un file: nessun oggetto file" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Errore nella ricerca del POD" #: lib/Padre/Wx/VCS.pm:448 msgid "Error while trying to perform Padre action" msgstr "Errore nell'esecuzione di un'azione di Padre" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:91 #: lib/Padre/Wx/Dialog/OpenResource.pm:119 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Errore nell'esecuzione di un'azione di Padre: %s" #: lib/Padre/Wx/Dialog/PerlFilter.pm:323 msgid "Error:\n" msgstr "Errore:\n" #: lib/Padre/Document/Perl.pm:510 msgid "Error: " msgstr "Errore:" #: lib/Padre/Wx/Main.pm:6108 #: lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "Errore: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:42 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Escape (Esc)" msgstr "Escape (ESC)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:138 msgid "Escape characters" msgstr "Caratteri di escape" #: lib/Padre/Wx/FBP/SLOC.pm:132 msgid "Estimated Project Years:" msgstr "Anni di progetto stimati:" #: lib/Padre/Wx/FBP/Expression.pm:80 msgid "Evaluate" msgstr "Valuta" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "Valuta &espressione" #: lib/Padre/Wx/FBP/Expression.pm:29 msgid "Evaluate Expression" msgstr "Valuta espressione" #: lib/Padre/Wx/FBP/Debugger.pm:424 msgid "" "Evaluate expression\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Same as print {$DB::OUT} expr in the current package. In particular, because this is just Perl's own print function.\n" "\n" "x [maxdepth] expr\n" "Evaluates its expression in list context and dumps out the result in a pretty-printed fashion. Nested data structures are printed out recursively," msgstr "" "Valuta espressione\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p espressione \n" "Come print {$DB::OUT} espressione nel package corrente. Si tratta semplicemente della funzione print di Perl.\n" "\n" "x [massima profondità] espressione\n" "Valuta espressione in un contesto di lista e mostra il risultato formattato in modo ordinato. Le strutture dati annidate vengono mostrate ricorsivamente" #: lib/Padre/Wx/Main.pm:4799 msgid "Exist" msgstr "Esiste" #: lib/Padre/Wx/FBP/Bookmarks.pm:63 msgid "Existing Bookmarks:" msgstr "Segnalibri esistenti:" #: lib/Padre/Wx/FBP/FoundInFiles.pm:71 msgid "Expand All" msgstr "Espandi tutto" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "Funzionalità sperimentale. Digitate '?' al fondo della pagina per ottenere l'elenco dei comandi. Se non funziona, è colpa di szabgab.\n" "\n" #: lib/Padre/Wx/FBP/Debugger.pm:503 msgid "Expression To Evaluate" msgstr "Espressione da valutare" #: lib/Padre/Wx/Dialog/RegexEditor.pm:484 msgid "Extended (&x)" msgstr "&Esteso (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "Le espressioni regolari consentono la formattazione e i commenti liberi (la spaziatura viene ignorata) " #: lib/Padre/Wx/ActionLibrary.pm:1876 msgid "Extract &Subroutine..." msgstr "Estrai &subroutine..." #: lib/Padre/Wx/ActionLibrary.pm:1889 msgid "Extract Subroutine" msgstr "Estrai subroutine" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "Password FTP" #: lib/Padre/Wx/Main.pm:4919 #, perl-format msgid "Failed to create path '%s'" msgstr "Impossibile creare il percorso '%s'" #: lib/Padre/Wx/Main.pm:1135 msgid "Failed to create server" msgstr "Creazione del server non riuscita" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "Impossibile eliminare i frammenti POD" #: lib/Padre/PluginHandle.pm:402 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Impossibile disabilitare il plug-in '%s': %s" #: lib/Padre/PluginHandle.pm:272 #: lib/Padre/PluginHandle.pm:299 #: lib/Padre/PluginHandle.pm:322 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Impossibile abilitare il plug-in '%s': %s" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "Impossibile eseguire il processo\n" #: lib/Padre/Wx/ActionLibrary.pm:1228 msgid "Failed to find any matches" msgstr "Impossibile trovare delle corrispondenze" #: lib/Padre/CPAN.pm:83 msgid "Failed to find your CPAN configuration" msgstr "Impossibile trovare la vostra configurazione CPAN" #: lib/Padre/PluginManager.pm:928 #: lib/Padre/PluginManager.pm:1022 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Errore nel Caricamento del plug-in '%s'\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "Impossibile unire i frammenti POD" #: lib/Padre/Wx/Main.pm:3049 #, perl-format msgid "Failed to start '%s' command" msgstr "Impossibile eseguire il comando '%s'" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Falso" #: lib/Padre/Wx/Syntax.pm:65 msgid "Fatal Error" msgstr "Errore fatale" #: lib/Padre/Wx/FBP/CPAN.pm:278 msgid "Favorite" msgstr "Preferiti" #: lib/Padre/Wx/FBP/About.pm:176 #: lib/Padre/Wx/FBP/About.pm:352 msgid "Fayland Lam" msgstr "Fayland Lam" #: lib/Padre/Wx/FBP/Preferences.pm:1926 msgid "Features" msgstr "Funzionalità" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:363 #: lib/Padre/Wx/Dialog/WindowList.pm:223 #: lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "File" #: lib/Padre/Wx/Menu/File.pm:393 #, perl-format msgid "File %s not found." msgstr "File %s non trovato" #: lib/Padre/Wx/FBP/Preferences.pm:1929 msgid "File Handling" msgstr "Gestione file" #: lib/Padre/Wx/FBP/Preferences.pm:391 msgid "File Outline" msgstr "Schema file" #: lib/Padre/Wx/FBP/Document.pm:210 msgid "File Size (Bytes)" msgstr "Dimensione file (byte)" #: lib/Padre/Wx/FBP/FindInFiles.pm:106 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:124 msgid "File Types:" msgstr "Tipi file:" #: lib/Padre/Wx/Main.pm:4905 msgid "File already exists" msgstr "Il file esiste già" #: lib/Padre/Wx/Main.pm:4798 msgid "File already exists. Overwrite it?" msgstr "Il file esiste già. Sovrascriverlo?" #: lib/Padre/Wx/Main.pm:5015 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Il file è stato modificato su disco dall'ultimo salvataggio. Sovrascriverlo?" #: lib/Padre/Wx/Main.pm:5110 msgid "File changed. Do you want to save it?" msgstr "File modificato. Intendi salvarlo?" #: lib/Padre/Wx/ActionLibrary.pm:295 #: lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "Il file non appartiene ad un progetto" #: lib/Padre/Wx/Main.pm:4462 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "Il nome file %s contiene * o ? che sono caratteri speciali per molti computer. Ignorare?" #: lib/Padre/Wx/Main.pm:4482 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "Il nome file %s non esiste su disco. Ignorarlo?" #: lib/Padre/Wx/Main.pm:5016 msgid "File not in sync" msgstr "File non sincronizzato" #: lib/Padre/Wx/Main.pm:5380 msgid "File was never saved and has no filename - can't delete from disk" msgstr "Il file non è mai stato salvato e non ha nome - impossibile cancellarlo da disco" #: lib/Padre/Wx/FBP/Patch.pm:138 msgid "File-1" msgstr "File-1" #: lib/Padre/Wx/FBP/Patch.pm:161 msgid "File-2" msgstr "File-2" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "File/Cartella" #: lib/Padre/Wx/Notebook.pm:70 msgid "Files" msgstr "File" #: lib/Padre/Wx/FBP/SLOC.pm:55 msgid "Files:" msgstr "File:" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Comando di filtro" #: lib/Padre/Wx/ActionLibrary.pm:1134 msgid "Filter through &Perl..." msgstr "Filtra con &Perl..." #: lib/Padre/Wx/ActionLibrary.pm:1125 msgid "Filter through E&xternal Tool..." msgstr "Filtra con uno strumento esterno..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Filtra attraverso lo strumento" #: lib/Padre/Wx/FBP/Snippet.pm:38 msgid "Filter:" msgstr "Filtro:" #: lib/Padre/Wx/ActionLibrary.pm:1126 msgid "Filters the selection (or the whole document) through any external command." msgstr "Filtra la selezione (o l'intero documento) attraverso un qualsiasi comando esterno." #: lib/Padre/Wx/FBP/Find.pm:30 msgid "Find" msgstr "Trova" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "Trova t&utti" #: lib/Padre/Wx/ActionLibrary.pm:1754 msgid "Find &Method Declaration" msgstr "Cerca dichiarazione del &metodo" #: lib/Padre/Wx/ActionLibrary.pm:1208 msgid "Find &Next" msgstr "Trova &successivo" #: lib/Padre/Wx/ActionLibrary.pm:1742 msgid "Find &Variable Declaration" msgstr "Trova dichiarazione &variabile" #: lib/Padre/Wx/ActionLibrary.pm:1730 msgid "Find Unmatched &Brace" msgstr "Trova &parentesi senza corrispondenza" #: lib/Padre/Wx/ActionLibrary.pm:1250 msgid "Find in Fi&les..." msgstr "Trova nei fi&le..." #: lib/Padre/Wx/FBP/Preferences.pm:485 #: lib/Padre/Wx/FBP/FindInFiles.pm:32 #: lib/Padre/Wx/Panel/FoundInFiles.pm:438 msgid "Find in Files" msgstr "Trova nei file" #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find text and replace it" msgstr "Cerca un testo e lo sostituisce" #: lib/Padre/Wx/ActionLibrary.pm:1168 msgid "Find text or regular expressions using a traditional dialog" msgstr "Cerca testo o espressione regolare usando una dialog tradizionale" #: lib/Padre/Wx/ActionLibrary.pm:1755 msgid "Find where the selected function was defined and put the focus there." msgstr "Cerca dove è stata definita la funzione selezionata e vi sposta il focus." #: lib/Padre/Wx/ActionLibrary.pm:1743 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "Cerca dove è stata dichiarata la varibile selezionata usando \"my\" e vi sposta il focus." #: lib/Padre/Wx/FBP/FindFast.pm:55 msgid "Find:" msgstr "Trova:" #: lib/Padre/Document/Perl.pm:948 msgid "First character of selection does not seem to point at a token." msgstr "Il primo carattere della selezione non sembra puntare ad un token." #: lib/Padre/Wx/Editor.pm:1906 msgid "First character of selection must be a non-word character to align" msgstr "Per allineare, il primo carattere della selezione non deve essere alfabetico" #: lib/Padre/Wx/ActionLibrary.pm:1519 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "Ripiega tutti i blocchi che possono essere ripiegati (è necessario che il ripiegamento sia attivo)" #: lib/Padre/Wx/Menu/View.pm:178 msgid "Font Si&ze" msgstr "&Dimensione carattere" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "Cerca di determinare in base al contenuto il nome file per un nuovo documento e propone di salvarlo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Form feed" msgstr "Form feed" #: lib/Padre/Wx/Syntax.pm:474 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "Trovata(e) %d problematica(e) in %s negli ultimi %3.2f secondi." #: lib/Padre/Wx/Syntax.pm:480 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "Trovata(e) %d problematica(e) negli ultimi %3.2f secondi." #: lib/Padre/Wx/Dialog/HelpSearch.pm:397 #, perl-format msgid "Found %s help topic(s)\n" msgstr "Trovato(i) %s argomento(i) d'aiuto\n" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "Trovati %s moduli scaricati" #: lib/Padre/Locale.pm:283 #: lib/Padre/Wx/FBP/About.pm:409 msgid "French" msgstr "Francese" #: lib/Padre/Locale.pm:269 msgid "French (Canada)" msgstr "Francese (Canada)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Amico" #: lib/Padre/Wx/ActionLibrary.pm:1664 msgid "Full Sc&reen" msgstr "Sche&rmo intero" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Funzione" #: lib/Padre/Wx/FBP/Preferences.pm:56 #: lib/Padre/Wx/FBP/Preferences.pm:376 msgid "Function List" msgstr "Lista funzioni" #: lib/Padre/Wx/FunctionList.pm:148 msgid "Functions" msgstr "Funzioni" #: lib/Padre/Wx/FBP/About.pm:116 msgid "Gabor Szabo" msgstr "Gabor Szabo" #: lib/Padre/Wx/FBP/About.pm:302 #: lib/Padre/Wx/FBP/About.pm:589 msgid "Gabriel Vieira" msgstr "Gabriel Vieira" #: lib/Padre/Locale.pm:187 #: lib/Padre/Wx/FBP/About.pm:430 msgid "German" msgstr "Tedesco" #: lib/Padre/Wx/Dialog/RegexEditor.pm:489 msgid "Global (&g)" msgstr "Globale (&g)" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr " Vai a" #: lib/Padre/Wx/ActionLibrary.pm:2446 msgid "Go to &Command Line Window" msgstr "Vai alla finestra della riga di &comando" #: lib/Padre/Wx/ActionLibrary.pm:2401 msgid "Go to &Functions Window" msgstr "Vai alla finestra delle &funzioni" #: lib/Padre/Wx/ActionLibrary.pm:2457 msgid "Go to &Main Window" msgstr "Vai alla finestra &principale" #: lib/Padre/Wx/ActionLibrary.pm:1306 msgid "Go to Bookmar&k..." msgstr "Vai al &segnalibro..." #: lib/Padre/Wx/ActionLibrary.pm:2390 msgid "Go to CPAN E&xplorer Window" msgstr "Vai alla finestra E&splora CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2413 msgid "Go to O&utline Window" msgstr "Vai alla finestra dello &schema" #: lib/Padre/Wx/ActionLibrary.pm:2424 msgid "Go to Ou&tput Window" msgstr "Vai alla finestra di ou&tput" #: lib/Padre/Wx/ActionLibrary.pm:2435 msgid "Go to S&yntax Check Window" msgstr "Vai alla finestra di verifica della s&intassi" #: lib/Padre/Wx/FBP/Preferences.pm:923 msgid "Graphical Debugger Tool" msgstr "Strumento di debug grafico" #: lib/Padre/Wx/Dialog/RegexEditor.pm:123 msgid "Grouping constructs" msgstr "Costrutti di Raggruppamento" #: lib/Padre/Wx/FBP/Preferences.pm:1016 msgid "Guess from Current Document" msgstr "Determina dal documento corrente" #: lib/Padre/Wx/FBP/About.pm:493 msgid "Gyorgy Pasztor" msgstr "Gyorgy Pasztor" #: lib/Padre/Locale.pm:293 #: lib/Padre/Wx/FBP/About.pm:457 msgid "Hebrew" msgstr "Ebraico" #: lib/Padre/Wx/FBP/About.pm:194 #: lib/Padre/Wx/FBP/About.pm:439 msgid "Heiko Jansen" msgstr "Heiko Jansen" #: lib/Padre/Wx/Browser.pm:63 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:373 msgid "Help" msgstr "Aiuto" #: lib/Padre/Wx/Dialog/HelpSearch.pm:41 #: lib/Padre/Wx/Dialog/HelpSearch.pm:98 msgid "Help Search" msgstr "Cerca nella guida" #: lib/Padre/Wx/ActionLibrary.pm:2582 msgid "Help by translating Padre to your local language" msgstr "Aiutate traducendo Padre nella vostra lingua" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "Aiuto non trovato" #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Hex character" msgstr "Carattere esadecimale" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Hexadecimal digits" msgstr "Cifre esadecimali" #: lib/Padre/Wx/ActionLibrary.pm:1564 msgid "Highlight the line where the cursor is" msgstr "Evidenzia la linea su cui è posizionato il cursore" #: lib/Padre/Wx/Directory.pm:595 msgid "Hit unfixed bug in directory browser, disabling it" msgstr "Trovato baco non risolto in esplora cartelle, disabilitato" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Home" msgstr "Home" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "Host" #: lib/Padre/Wx/Main.pm:6287 msgid "How many spaces for each tab:" msgstr "Numero spazi per ogni tabulazione:" #: lib/Padre/Locale.pm:303 #: lib/Padre/Wx/FBP/About.pm:484 msgid "Hungarian" msgstr "Ungherese" #: lib/Padre/Wx/ActionLibrary.pm:1346 msgid "If activated, do not allow moving around some of the windows" msgstr "Se attivato, non consente all'utente di spostare alcune delle finestre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:472 msgid "Ignore case (&i)" msgstr "Ignora maiuscole/minuscole (&i)" #: lib/Padre/Wx/VCS.pm:252 #: lib/Padre/Wx/FBP/VCS.pm:205 msgid "Ignored" msgstr "Ignorato" #: lib/Padre/Wx/FBP/Preferences.pm:1475 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "Cartella di inclusione: -l\n" "Abilita controlli: -T\n" "Abilita molti avvertimenti utili: -w\n" "Abilita tutti gli avvertimenti: -W\n" "Disabilita tutti gli avvertimenti: -X" #: lib/Padre/PluginHandle.pm:26 msgid "Incompatible" msgstr "Incompatibile" #: lib/Padre/Config.pm:895 msgid "Indent Deeply" msgstr "Indenta profondamente" #: lib/Padre/Wx/FBP/Preferences.pm:1032 msgid "Indent Detection" msgstr "Individua indentazione" #: lib/Padre/Wx/FBP/Preferences.pm:955 msgid "Indent Settings" msgstr "Impostazioni indentazione" #: lib/Padre/Wx/FBP/Preferences.pm:980 msgid "Indent Spaces:" msgstr "Spazi indentazione:" #: lib/Padre/Wx/FBP/Preferences.pm:1074 msgid "Indent on Newline:" msgstr "Indentazione per nuova riga:" #: lib/Padre/Config.pm:894 msgid "Indent to Same Depth" msgstr "Indenta alla stessa profondità" #: lib/Padre/Wx/FBP/Preferences.pm:1927 msgid "Indentation" msgstr "Indentazione" #: lib/Padre/Wx/FBP/About.pm:844 msgid "Information" msgstr "Informazioni" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "Input/output:" #: lib/Padre/Wx/FBP/Snippet.pm:118 #: lib/Padre/Wx/FBP/Special.pm:78 #: lib/Padre/Wx/Menu/Edit.pm:119 #: lib/Padre/Wx/Dialog/Preferences.pm:35 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:270 msgid "Insert" msgstr "Inserisci" #: lib/Padre/Wx/FBP/Snippet.pm:29 msgid "Insert Snippet" msgstr "Inserisci frammento" #: lib/Padre/Wx/FBP/Special.pm:29 msgid "Insert Special Values" msgstr "Inserisci valori speciali" #: lib/Padre/Wx/FBP/CPAN.pm:207 msgid "Insert Synopsis" msgstr "Inserisci sinossi" #: lib/Padre/Wx/FBP/CPAN.pm:239 msgid "Install" msgstr "Installa" #: lib/Padre/Wx/ActionLibrary.pm:2331 msgid "Install &Remote Distribution" msgstr "Installa distribuzione &remota" #: lib/Padre/Wx/ActionLibrary.pm:2321 msgid "Install L&ocal Distribution" msgstr "Installa distribuzione &locale" #: lib/Padre/CPAN.pm:128 msgid "Install Local Distribution" msgstr "Installa distribuzione locale" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Intero" #: lib/Padre/Wx/Syntax.pm:71 msgid "Internal Error" msgstr "Errore interno" #: lib/Padre/Wx/Main.pm:6109 msgid "Internal error" msgstr "Errore interno" #: lib/Padre/Wx/ActionLibrary.pm:1903 msgid "Introduce &Temporary Variable..." msgstr "Introduce variabile temporanea..." #: lib/Padre/Wx/ActionLibrary.pm:1912 msgid "Introduce Temporary Variable" msgstr "Introduce variabile temporanea" #: lib/Padre/Locale.pm:317 #: lib/Padre/Wx/FBP/About.pm:499 msgid "Italian" msgstr "Italiano" #: lib/Padre/Wx/FBP/Preferences.pm:105 msgid "Item Regular Expression:" msgstr "Elementi espressione regolare:" #: lib/Padre/Locale.pm:327 #: lib/Padre/Wx/FBP/About.pm:514 msgid "Japanese" msgstr "Giapponese" #: lib/Padre/Wx/Main.pm:4405 msgid "JavaScript Files" msgstr "File JavaScript" #: lib/Padre/Wx/FBP/About.pm:146 #: lib/Padre/Wx/FBP/About.pm:418 msgid "Jerome Quelin" msgstr "Jerome Quelin" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Join the next line to the end of the current line." msgstr "Unisce la riga successiva a quella corrente" #: lib/Padre/Wx/ActionLibrary.pm:1283 msgid "Jump to a specific line number or character position" msgstr "Vai ad un numero &riga specifico o a una posizione carattere" #: lib/Padre/Wx/ActionLibrary.pm:792 msgid "Jump to the code that has been changed" msgstr "Vai al codice che è stato modificato" #: lib/Padre/Wx/ActionLibrary.pm:781 msgid "Jump to the code that triggered the next error" msgstr "Vai al codice che ha generato l'errore successivo" #: lib/Padre/Wx/ActionLibrary.pm:872 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Vai alla parentesi di chiusura o di apertura corrispondente: { }, ( ), [ ], < >" #: lib/Padre/Wx/FBP/About.pm:278 msgid "Kaare Rasmussen" msgstr "Kaare Rasmussen" #: lib/Padre/Wx/FBP/About.pm:290 msgid "Kartik Thakore" msgstr "Kartik Thakore" #: lib/Padre/Wx/FBP/About.pm:248 #: lib/Padre/Wx/FBP/About.pm:538 msgid "Keedi Kim" msgstr "Keedi Kim" #: lib/Padre/Wx/FBP/About.pm:242 #: lib/Padre/Wx/FBP/About.pm:523 msgid "Kenichi Ishigaki" msgstr "Kenichi Ishigaki" #: lib/Padre/Wx/Dialog/About.pm:136 msgid "Kernel" msgstr "Kernel" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Kevin Dawson" msgstr "Kevin Dawson" #: lib/Padre/Wx/FBP/Preferences.pm:1928 msgid "Key Bindings" msgstr "Scorciatoie da tastiera" #: lib/Padre/Wx/FBP/About.pm:553 msgid "Kjetil Skotheim" msgstr "Kjetil Skotheim" #: lib/Padre/Locale.pm:465 msgid "Klingon" msgstr "Klingon" #: lib/Padre/Locale.pm:337 #: lib/Padre/Wx/FBP/About.pm:529 msgid "Korean" msgstr "Coreano" #: lib/Padre/Wx/FBP/Debugger.pm:296 msgid "" "L [abw]\n" "List (default all) actions, breakpoints and watch expressions" msgstr "" "L [abw]\n" "Elenca (per impostazione predefinita tutto) azioni, punti di interruzione ed espressioni di controllo" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Etichetta uno" #: lib/Padre/Wx/Menu/View.pm:210 msgid "Lan&guage" msgstr "Lin&gua" #: lib/Padre/Wx/FBP/Preferences.pm:1930 msgid "Language - Perl 5" msgstr "Linguaggio - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:1931 msgid "Language - Perl 6" msgstr "Linguaggio - Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1380 #: lib/Padre/Wx/FBP/Preferences.pm:1503 msgid "Language Integration" msgstr "Integrazione col linguaggio" #: lib/Padre/Wx/Dialog/SessionManager2.pm:30 msgid "Last Updated" msgstr "Ultimo aggiornamento" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "Ultimo aggiornamento" #: lib/Padre/Wx/ActionLibrary.pm:2111 msgid "Launch Debugger" msgstr "Avvia debugger" #: lib/Padre/Wx/Dialog/Preferences.pm:33 msgid "Left" msgstr "Sinistra" #: lib/Padre/Config.pm:58 msgid "Left Panel" msgstr "Pannello sinistro" #: lib/Padre/Wx/FBP/Diff.pm:72 msgid "Left side" msgstr "Lato sinistr" #: lib/Padre/Wx/ActionLibrary.pm:1781 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "Come premere ENTER da qualche parte in una riga, ma usa la posizione corrente per indentare la nuova riga" #: lib/Padre/Wx/Syntax.pm:509 #, perl-format msgid "Line %d: (%s) %s" msgstr "Riga %d: (%s) %s" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "Riga %d: %s" #: lib/Padre/Wx/Dialog/Goto.pm:342 msgid "Line number" msgstr "Numero riga" #: lib/Padre/Wx/FBP/Document.pm:138 #: lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "Righe" #: lib/Padre/Wx/Dialog/WindowList.pm:210 msgid "List of open files" msgstr "Elenco file aperti" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Elenco sessioni" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "List the files that match the current selection and let the user pick one to open" msgstr "Elenca i file che corrispondono alla selezione corrente e consente all'utente di scegliere quale aprire" #: lib/Padre/PluginHandle.pm:25 msgid "Loaded" msgstr "Caricato" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "Caricati %s moduli" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Loc&k User Interface" msgstr "&Blocca l'interfaccia utente" #: lib/Padre/Wx/FBP/Preferences.pm:1276 msgid "Local file update poll interval in seconds (0 to disable)" msgstr "Intervallo di interrogazione aggiornamento file in secondi (0 per disabilitare)" #: lib/Padre/Wx/FBP/Sync.pm:58 msgid "Logged out" msgstr "Non connesso" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Connesso al server FTP come %s..." #: lib/Padre/Wx/FBP/Sync.pm:104 msgid "Login" msgstr "Accesso" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Long hex character" msgstr "Carattere esadecimale lungo" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Ricerca di Net::FTP in corso..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Lowercase characters" msgstr "Caratteri minuscoli" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Lowercase next character" msgstr "Rendi minuscolo carattere successivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Lowercase till \\E" msgstr "Minuscolo fino a \\E" #: lib/Padre/Wx/FBP/Debugger.pm:336 msgid "" "M\n" "Display all loaded modules and their versions." msgstr "" "M\n" "Mostra tutti i moduli caricati e le relative versioni" #: lib/Padre/Wx/FBP/Document.pm:79 msgid "MIME Type" msgstr "Tipo MIME" #: lib/Padre/Wx/ActionLibrary.pm:1629 msgid "Make the letters bigger in the editor window" msgstr "Rende i caratteri nella finestra dell'editor più grandi" #: lib/Padre/Wx/ActionLibrary.pm:1639 msgid "Make the letters smaller in the editor window" msgstr "Rende i caratteri nella finestra dell'editor più piccoli" #: lib/Padre/Wx/FBP/About.pm:388 msgid "Marcela Maslanova" msgstr "Marcela Maslanova" #: lib/Padre/Wx/ActionLibrary.pm:646 msgid "Mark Selection &End" msgstr "Indica la &fine della selezione" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Mark Selection &Start" msgstr "Indica l'&inizio della selezione" #: lib/Padre/Wx/ActionLibrary.pm:647 msgid "Mark the place where the selection should end" msgstr "Indica il punto in cui termina la selezione" #: lib/Padre/Wx/ActionLibrary.pm:635 msgid "Mark the place where the selection should start" msgstr "Indica il punto in cui comincia la selezione" #: lib/Padre/Wx/Dialog/RegexEditor.pm:102 msgid "Match 0 or more times" msgstr "Ricorre nessuna o più volte" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or 0 times" msgstr "Ricorre una o nessuna volta" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 1 or more times" msgstr "Ricorre una o più volte" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least m but not more than n times" msgstr "Ricorre almeno m volte, ma non più di n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match at least n times" msgstr "Ricorre almeno n volte" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match exactly m times" msgstr "Ricorre esattamente m volte" #: lib/Padre/Wx/Dialog/RegexEditor.pm:677 #, perl-format msgid "Match failure in %s: %s" msgstr "Errore nella corrispondenza %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:688 #, perl-format msgid "Match warning in %s: %s" msgstr "Warning nella corrispondenza %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:697 #, perl-format msgid "Match with 0 width at character %s" msgstr "Corrisponde con larghezza 0 al carattere %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:235 msgid "Matched text:" msgstr "Testo corrispondente:" #: lib/Padre/Wx/FBP/About.pm:373 msgid "Matthew Lien" msgstr "Matthew Lien" #: lib/Padre/Wx/FBP/About.pm:254 msgid "Max Maischein" msgstr "Max Maischein" #: lib/Padre/Wx/FBP/Preferences.pm:242 msgid "Maximum number of suggestions" msgstr "Numero massimo di suggerimenti" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Messaggio" #: lib/Padre/Wx/FBP/CPAN.pm:223 msgid "MetaCPAN..." msgstr "MetaCPAN..." #: lib/Padre/Wx/Outline.pm:386 msgid "Methods" msgstr "Metodi" #: lib/Padre/Wx/FBP/Preferences.pm:260 msgid "Minimum characters for autocomplete" msgstr "Numero minimo di caratteri per il completamento automatico" #: lib/Padre/Wx/FBP/Preferences.pm:224 msgid "Minimum length of suggestions" msgstr "Lunghezza minima dei suggerimenti" #: lib/Padre/Wx/FBP/Preferences.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:111 msgid "Miscellaneous" msgstr "Varie" #: lib/Padre/Wx/VCS.pm:254 msgid "Missing" msgstr "Mancante" #: lib/Padre/Wx/VCS.pm:250 #: lib/Padre/Wx/VCS.pm:261 msgid "Modified" msgstr "Modificato" #: lib/Padre/Document/Perl/Starter.pm:122 msgid "Module Name:" msgstr "Nome modulo:" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Nome modulo:" #: lib/Padre/Wx/Outline.pm:385 msgid "Modules" msgstr "Moduli" #: lib/Padre/Wx/Dialog/RegexEditor.pm:480 msgid "Multi-line (&m)" msgstr "Multi-riga (&m)" #: lib/Padre/Wx/ActionLibrary.pm:2256 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "My Plug-in è il plug-in in cui gli sviluppatori possono estendere la loro installazione di Padre" #: lib/Padre/Wx/FBP/SLOC.pm:120 msgid "Mythical Man Months:" msgstr "Mitici mesi uomo:" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "NOME" #: lib/Padre/Wx/Dialog/SessionManager2.pm:28 #: lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "Nome" #: lib/Padre/Wx/ActionLibrary.pm:1888 msgid "Name for the new subroutine" msgstr "Nome della nuova subroutine" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "Nuo&vo" #: lib/Padre/Wx/Main.pm:6615 msgid "Need to select text in order to translate numbers" msgstr "Per convertire i numeri è necessario selezionare del testo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Negative lookahead assertion" msgstr "Asserzione di lookahead negativo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Negative lookbehind assertion" msgstr "Asserzione di lookbehind negativo" #: lib/Padre/Wx/FBP/Preferences.pm:571 msgid "New File Creation" msgstr "Creazione nuovo file" #: lib/Padre/Wx/Directory/TreeCtrl.pm:381 msgid "New Folder" msgstr "Nuova cartella" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "Indagine sulle nuove installazioni" #: lib/Padre/Document/Perl/Starter.pm:123 #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Nuovo modulo" #: lib/Padre/Document/Perl.pm:822 msgid "New name" msgstr "Nuovo nome" #: lib/Padre/PluginManager.pm:393 msgid "New plug-ins detected" msgstr "Individuati nuovi plug-in" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Newline" msgstr "Fine riga" #: lib/Padre/Wx/FBP/Document.pm:103 msgid "Newline Type" msgstr "Tipo fine riga" #: lib/Padre/Wx/Diff2.pm:29 #: lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "Differenza successiva" #: lib/Padre/Config.pm:893 msgid "No Autoindent" msgstr "Nessuna indentazione automatica:" #: lib/Padre/Wx/Main.pm:2784 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Impossibile trovare Build.PL, Makefile.PL o dist.ini" #: lib/Padre/Wx/Dialog/HelpSearch.pm:95 msgid "No Help found" msgstr "Argomento non trovato" #: lib/Padre/Wx/Diff.pm:256 msgid "No changes found" msgstr "Nessuna modifica trovata" #: lib/Padre/Document/Perl.pm:652 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Impossibile trovare una dichiarazione per la variabile (lessicale?) specificata" #: lib/Padre/Document/Perl.pm:901 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Impossibile trovare una dichiarazione per la variabile (lessicale?) specificata." #: lib/Padre/Wx/Main.pm:2751 #: lib/Padre/Wx/Main.pm:2806 #: lib/Padre/Wx/Main.pm:2857 msgid "No document open" msgstr "Nessun documento aperto" #: lib/Padre/Task/CPAN.pm:183 #, perl-format msgid "No documentation for '%s'" msgstr "Documentazione non disponibile per '%s'" #: lib/Padre/Document/Perl.pm:512 msgid "No errors found." msgstr "Nessun errore trovato" #: lib/Padre/Wx/Syntax.pm:456 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "Nessun errore o avvertimento riscontrato in %s negli ultimi %3.2f secondi." #: lib/Padre/Wx/Syntax.pm:461 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "Nessun errore o avvertimento riscontrato negli ultimi %3.2f secondi." #: lib/Padre/Wx/Main.pm:3092 msgid "No execution mode was defined for this document type" msgstr "Nessuna modalità di esecuzione definita per questo tipo di documento" #: lib/Padre/PluginManager.pm:903 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Nessun nome file" #: lib/Padre/Wx/Dialog/RegexEditor.pm:716 msgid "No match" msgstr "Nessuna corrispondenza" #: lib/Padre/Wx/Dialog/Find.pm:62 #: lib/Padre/Wx/Dialog/Replace.pm:136 #: lib/Padre/Wx/Dialog/Replace.pm:159 #, perl-format msgid "No matches found for \"%s\"." msgstr "Nessuna corrispondenza per \"%s\"." #: lib/Padre/Wx/Main.pm:3074 msgid "No open document" msgstr "Nessun documento aperto" #: lib/Padre/Config.pm:484 msgid "No open files" msgstr "Nessun file aperto" #: lib/Padre/Wx/ReplaceInFiles.pm:259 #: lib/Padre/Wx/Panel/FoundInFiles.pm:305 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "Nessun risultato trovato per '%s' in '%s'" #: lib/Padre/Wx/Main.pm:931 #, perl-format msgid "No such session %s" msgstr "Sessione %s inesistente" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "No suggestions" msgstr "Nessun suggerimento" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "Non-capturing group" msgstr "Gruppo non ricordato" #: lib/Padre/Wx/Dialog/Preferences.pm:27 msgid "None" msgstr "Nessuno" #: lib/Padre/Wx/VCS.pm:247 #: lib/Padre/Wx/FBP/VCS.pm:173 msgid "Normal" msgstr "Normale" #: lib/Padre/Locale.pm:371 #: lib/Padre/Wx/FBP/About.pm:544 msgid "Norwegian" msgstr "Norvegese" #: lib/Padre/Wx/Panel/Debugger.pm:254 msgid "Not a Perl document" msgstr "Non è un documento Perl" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "Numero negativo." #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "Not a word boundary" msgstr "Diverso dal delimitatore di parola" #: lib/Padre/Wx/Main.pm:4244 msgid "Nothing selected. Enter what should be opened:" msgstr "Nessuna selezione. Specificate cosa dovrebbe essere aperto:" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "Adesso" #: lib/Padre/Wx/FBP/SLOC.pm:144 msgid "Number of Developers:" msgstr "Numero di sviluppatori:" #: lib/Padre/Wx/Menu/File.pm:84 msgid "O&pen" msgstr "A&pri" #: lib/Padre/Wx/FBP/Bookmarks.pm:86 #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "OK" #: lib/Padre/Wx/VCS.pm:255 msgid "Obstructed" msgstr "Ostruito" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Octal character" msgstr "Carattere ottale" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "Offer completions to the current string. See Preferences" msgstr "Propone il completamento della stringa corrente. Vedere preferenze" #: lib/Padre/Wx/FBP/About.pm:260 #: lib/Padre/Wx/FBP/About.pm:424 msgid "Olivier Mengue" msgstr "Olivier Mengue" #: lib/Padre/Wx/FBP/About.pm:466 msgid "Omer Zak" msgstr "Omer Zak" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Inutile effettuare l'unione: c'è un unico frammento di POD" #: lib/Padre/Wx/ActionLibrary.pm:2341 msgid "Open &CPAN Config File" msgstr "Apri il file di configurazione &CPAN" #: lib/Padre/Wx/Outline.pm:153 msgid "Open &Documentation" msgstr "Apri &Documentazione" #: lib/Padre/Wx/ActionLibrary.pm:251 msgid "Open &Example" msgstr "Apri l'&esempio" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open &Last Closed File" msgstr "Apri l'&ultimo file chiuso" #: lib/Padre/Wx/ActionLibrary.pm:1320 msgid "Open &Resources..." msgstr "Apri le &risorse..." #: lib/Padre/Wx/ActionLibrary.pm:463 msgid "Open &Selection" msgstr "Apri &selezione" #: lib/Padre/Wx/ActionLibrary.pm:206 msgid "Open &URL..." msgstr "Apri &URL..." #: lib/Padre/Wx/ActionLibrary.pm:2342 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "Apre CPAN::MyConfig.pm per modificarlo manualmente (per esperti)" #: lib/Padre/Wx/FBP/Preferences.pm:1329 msgid "Open FTP Files" msgstr "Apri file FTP" #: lib/Padre/Wx/Main.pm:4429 #: lib/Padre/Wx/Directory/TreeCtrl.pm:302 msgid "Open File" msgstr "Apri file" #: lib/Padre/Wx/FBP/Preferences.pm:540 msgid "Open Files:" msgstr "Apri file:" #: lib/Padre/Wx/FBP/Preferences.pm:1294 msgid "Open HTTP Files" msgstr "Apri file HTTP" #: lib/Padre/Wx/Dialog/OpenResource.pm:33 #: lib/Padre/Wx/Dialog/OpenResource.pm:79 msgid "Open Resources" msgstr "Apri le risorse" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "Open S&ession..." msgstr "Apri una s&essione..." #: lib/Padre/Wx/Main.pm:4287 msgid "Open Selection" msgstr "Apri selezione" #: lib/Padre/Wx/FBP/SessionManager.pm:86 msgid "Open Session" msgstr "Apri sessione" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "Apri URL" #: lib/Padre/Wx/Main.pm:4465 #: lib/Padre/Wx/Main.pm:4485 msgid "Open Warning" msgstr "Apri avvertimenti" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 module" msgstr "Apri un documento con lo scheletro di un modulo Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "Apri un documento con lo scheletro di uno script Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Apre un documento con lo scheletro di uno script di test Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Open a document with a skeleton Perl 6 script" msgstr "Apri un documento con lo scheletro di uno script Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Open a file from a remote location" msgstr "Apri un file da una posizione remota" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "Apri un nuovo documento vuoto" #: lib/Padre/Wx/ActionLibrary.pm:524 msgid "Open all the files listed in the recent files list" msgstr "Apre tutti i file nell'elenco di quelli aperti di recente" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "Apre la pagina di CPAN search che mostra i pacchetti Padre::Plugin" #: lib/Padre/Wx/Menu/File.pm:394 msgid "Open cancelled" msgstr "Apertura annullata" #: lib/Padre/PluginManager.pm:976 #: lib/Padre/Wx/Main.pm:6001 msgid "Open file" msgstr "Apri file" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Open in &Command Line" msgstr "Apri nella riga di &comando" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open in File &Browser" msgstr "Apri in &esplorazione file" #: lib/Padre/Wx/Directory/TreeCtrl.pm:253 #: lib/Padre/Wx/Directory/TreeCtrl.pm:312 msgid "Open in File Browser" msgstr "Apri in esplorazione file" #: lib/Padre/Wx/ActionLibrary.pm:2176 msgid "Open interesting and helpful Padre Wiki in your default web browser" msgstr "Apre un utile e interessante Wiki riguardo Padre nel vostro browser predefinito" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Open interesting and helpful Perl websites in your default web browser" msgstr "Apre interessanti siti riguardo Perl nel vostro browser predefinito" #: lib/Padre/Wx/Main.pm:4245 msgid "Open selection" msgstr "Apri selezione" #: lib/Padre/Config.pm:485 msgid "Open session" msgstr "Apri una sessione" #: lib/Padre/Wx/ActionLibrary.pm:2517 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "Aprite la chat del supporto live di Padre nel browser predefinito e parlate con chi potrebbe aiutarvi col vostro problema" #: lib/Padre/Wx/ActionLibrary.pm:2529 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "Aprite la chat del supporto live di Perl nel browser predefinito e parlate con chi potrebbe aiutarvi col vostro problema" #: lib/Padre/Wx/ActionLibrary.pm:2541 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "Aprite la chat del supporto live di Perl per Win32 nel browser predefinito e parlate con chi potrebbe aiutarvi col vostro problema" #: lib/Padre/Wx/ActionLibrary.pm:2211 msgid "Open the regular expression editing window" msgstr "Apri la finestra per l'editing delle espressioni regolari" #: lib/Padre/Wx/ActionLibrary.pm:2221 msgid "Open the selected text in the Regex Editor" msgstr "Apri il testo selezionato nell'editor di espressioni regolari" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Open with Default &System Editor" msgstr "Apri con l'editor predefinito del &sistema" #: lib/Padre/Wx/Main.pm:3203 #, perl-format msgid "Opening session %s..." msgstr "Apertura sessione %s..." #: lib/Padre/Wx/ActionLibrary.pm:242 msgid "Opens a command line using the current document folder" msgstr "Apre un terminale a riga di comando usando la cartella del documento corrente" #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Opens the current document using the file browser" msgstr "Apri il documento corrente usando esplorazione file" #: lib/Padre/Wx/ActionLibrary.pm:230 msgid "Opens the file with the default system editor" msgstr "Apre il file con l'editor predefinito del sistema" #: lib/Padre/Wx/ActionLibrary.pm:264 msgid "Opens the last closed file" msgstr "Apre l'ultimo file chiuso" #: lib/Padre/Wx/FBP/Preferences.pm:861 msgid "" "Optional features can be disabled to simplify the user interface,\n" "reduce memory consumption and make Padre run faster.\n" "\n" "Changes to features are only applied when Padre is restarted." msgstr "" "Le funzionalità opzionali possono essere disabilitate per semplificare l'interfaccia utente,\n" "ridurre l'occupazione di memoria e rendere Padre più veloce.\n" "\n" "Le modifiche alle funzionalità verranno applicate al riavvio di Padre." #: lib/Padre/Wx/FBP/Patch.pm:148 msgid "Options" msgstr "Opzioni" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Opzioni:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "Testo or&iginale:" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Altro (per favore specificate qui)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Altro evento" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Altro motore di ricerca" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "Oltre il limite." #: lib/Padre/Wx/Outline.pm:205 #: lib/Padre/Wx/Outline.pm:252 msgid "Outline" msgstr "Schema" #: lib/Padre/Wx/Output.pm:89 #: lib/Padre/Wx/FBP/Preferences.pm:470 msgid "Output" msgstr "Output" #: lib/Padre/Wx/Bottom.pm:53 msgid "Output View" msgstr "Visualizza Output" #: lib/Padre/Wx/Dialog/Preferences.pm:489 msgid "Override Shortcut" msgstr "Rimpiazza scorciatoia" #: lib/Padre/Wx/ActionLibrary.pm:2527 msgid "P&erl Help" msgstr "Aiuto riguardo P&erl" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "P&lug-in Tools" msgstr "Strumenti p&lug-in" #: lib/Padre/Wx/Main.pm:4409 msgid "PHP Files" msgstr "File PHP" #: lib/Padre/Wx/FBP/Preferences.pm:311 msgid "POD" msgstr "POD" #: lib/Padre/Wx/FBP/POD.pm:30 msgid "POD Viewer" msgstr "Visualizzatore POD" #: lib/Padre/Config.pm:1124 #: lib/Padre/Wx/Scintilla.pm:28 msgid "PPI Experimental" msgstr "PPI Sperimentale" #: lib/Padre/Config.pm:1125 #: lib/Padre/Wx/Scintilla.pm:34 msgid "PPI Standard" msgstr "PPI Standard" #: lib/Padre/Wx/FBP/About.pm:604 msgid "Paco Alguacil" msgstr "Paco Alguacil" #: lib/Padre/Wx/FBP/About.pm:841 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Sviluppatore di Padre" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Strumenti di sviluppo di Padre" #: lib/Padre/Wx/FBP/Preferences.pm:32 msgid "Padre Preferences" msgstr "Preferenze Padre" #: lib/Padre/Wx/FBP/Sync.pm:29 msgid "Padre Sync" msgstr "Sincronizza Padre" #: lib/Padre/Wx/FBP/About.pm:102 msgid "" "Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published by the \n" "Free Software Foundation; version 2 dated June, 1991." msgstr "" "Padre contiene icone di GNOME, potete redistribuirle e/o \n" "modificarle nei termini della GNU General Public License così com'è pubblicata dalla \n" "Free Software Foundation; versione 2 datata giugno, 1991" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "PageDown" msgstr "PagGiù" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "PageUp" msgstr "PagSu" #: lib/Padre/Wx/Dialog/Sync.pm:145 msgid "Password and confirmation do not match." msgstr "La password e la conferma non coincidono." #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "Password dell'utente '%s' a %s:" #: lib/Padre/Wx/FBP/Sync.pm:89 #: lib/Padre/Wx/FBP/Sync.pm:148 msgid "Password:" msgstr "Password:" #: lib/Padre/Wx/ActionLibrary.pm:766 msgid "Paste the clipboard to the current location" msgstr "Incolla gli appunti nella posizione corrente" #: lib/Padre/Wx/FBP/Patch.pm:29 msgid "Patch" msgstr "Patch" #: lib/Padre/Wx/Dialog/Patch.pm:407 msgid "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "I file patch dovrebbero terminare con .patch o .diff, dovreste riselezionarli e provare di nuovo" #: lib/Padre/Wx/Dialog/Patch.pm:422 msgid "Patch successful, you should see a new tab in editor called Unsaved #" msgstr "Patch applicata con successo, dovreste vedere un nuovo tab denominato non salvato #" #: lib/Padre/Wx/VCS.pm:54 msgid "Path" msgstr "Percorso" #: lib/Padre/Wx/FBP/About.pm:224 msgid "Patrick Donelan" msgstr "Patrick Donelan" #: lib/Padre/Wx/FBP/About.pm:266 msgid "Paweł Murias" msgstr "Paweł Murias" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:367 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl &6 Script" msgstr "Script Perl &6" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 &Module" msgstr "&Modulo Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "&Script Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 &Test" msgstr "&Test Perl 5" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "Perl Application Development and Refactoring Environment" #: lib/Padre/Wx/FBP/Preferences.pm:1461 msgid "Perl Arguments" msgstr "Argomenti Perl" #: lib/Padre/Wx/FBP/Preferences.pm:1419 msgid "Perl Ctags File:" msgstr "File Ctags di Perl:" #: lib/Padre/Wx/FBP/Preferences.pm:1405 msgid "Perl Executable:" msgstr "Eseguibile Perl:" #: lib/Padre/Wx/Main.pm:4407 #: lib/Padre/Wx/Choice/Files.pm:21 msgid "Perl Files" msgstr "File Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Filtro Perl" #: lib/Padre/Locale.pm:259 msgid "Persian (Iran)" msgstr "Persiano (Iran)" #: lib/Padre/Wx/FBP/About.pm:284 msgid "Petar Shangov" msgstr "Petar Shangov" #: lib/Padre/Wx/FBP/About.pm:134 msgid "Peter Lavender" msgstr "Peter Lavender" #: lib/Padre/Wx/Dialog/Sync.pm:134 msgid "Please ensure all inputs have appropriate values." msgstr "Verificate che tutti gli input abbiano valori appropriati." #: lib/Padre/Wx/Dialog/Sync.pm:99 msgid "Please input a valid value for both username and password" msgstr "Introducete un valore valido sia per il nome utente, sia per la password" #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the directory" msgstr "Digitare il nuovo nome della cartella" #: lib/Padre/Wx/Directory/TreeCtrl.pm:169 msgid "Please type in the new name of the file" msgstr "Digitare il nuovo nome del file" #: lib/Padre/Wx/Progress.pm:85 msgid "Please wait..." msgstr "Attendere prego..." #: lib/Padre/Wx/ActionLibrary.pm:2246 msgid "Plug-in &List (CPAN)" msgstr "E&lenco plug-in (CPAN)" #: lib/Padre/Wx/FBP/PluginManager.pm:29 msgid "Plug-in Manager" msgstr "Gestore plug-in" #: lib/Padre/PluginManager.pm:996 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "Il Plug-in deve avere '%s' come cartella base" #: lib/Padre/PluginManager.pm:788 #, perl-format msgid "Plugin %s" msgstr "Plugin %s" #: lib/Padre/PluginHandle.pm:341 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "Il plugin %s ha restituito %s invece di una lista hook su ->padre_hooks" #: lib/Padre/PluginHandle.pm:354 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "Il plugin %s ha tentato ti registrare un hook %s non valido" #: lib/Padre/PluginHandle.pm:362 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "Il plugin %s ha tentato di registrare un hook %s non-CODE" #: lib/Padre/PluginManager.pm:761 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "Il plugin %s, hook %s ha restituito un messaggio di errore vuoto" #: lib/Padre/PluginManager.pm:728 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Errore del Plugin sull'evento %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:371 msgid "Plugins" msgstr "Plugins" #: lib/Padre/Locale.pm:381 #: lib/Padre/Wx/FBP/About.pm:559 msgid "Polish" msgstr "Polacco" #: lib/Padre/Plugin/PopularityContest.pm:322 msgid "Popularity Contest Report" msgstr "Rapporto della Gara di Popolarità" #: lib/Padre/Locale.pm:391 #: lib/Padre/Wx/FBP/About.pm:574 msgid "Portuguese (Brazil)" msgstr "Portoghese (Brasile)" #: lib/Padre/Locale.pm:401 msgid "Portuguese (Portugal)" msgstr "Portoghese (Portogallo)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Tipo posizione" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Intero positivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Positive lookahead assertion" msgstr "Asserzione di lookahead positivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Positive lookbehind assertion" msgstr "Asserzione di lookbehind positivo" #: lib/Padre/Wx/Outline.pm:384 msgid "Pragmata" msgstr "Pragmata" #: lib/Padre/Wx/FBP/Preferences.pm:160 msgid "Prefered language for error diagnostics" msgstr "Linguaggio preferito per la diagnostica degli errori" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Nome preferenze" #: lib/Padre/Wx/FBP/PluginManager.pm:112 msgid "Preferences" msgstr "Preferenze" #: lib/Padre/Wx/ActionLibrary.pm:2199 msgid "Preferences &Sync..." msgstr "&Sincronizza preferenze" #: lib/Padre/PluginHandle.pm:283 #, perl-format msgid "Prerequisites missing suggest you read the POD for '%s': %s" msgstr "I prerequisiti mancanti suggeriscono che leggiate i POD di '%s': %s" #: lib/Padre/Wx/FBP/Snippet.pm:92 msgid "Preview:" msgstr "Anteprima:" #: lib/Padre/Wx/Diff2.pm:27 #: lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "Differenza precedente" #: lib/Padre/Config.pm:482 msgid "Previous open files" msgstr "File aperto in precedenza" #: lib/Padre/Wx/ActionLibrary.pm:504 msgid "Print the current document" msgstr "Stampa il documento corrente" #: lib/Padre/Wx/FBP/Patch.pm:104 msgid "Process" msgstr "Processo" #: lib/Padre/Wx/Directory.pm:200 #: lib/Padre/Wx/Dialog/WindowList.pm:222 msgid "Project" msgstr "Progetto" #: lib/Padre/Wx/FBP/Preferences.pm:361 msgid "Project Browser" msgstr "Browser di progetto" #: lib/Padre/Wx/ActionLibrary.pm:1429 msgid "Project Browser - Was known as the Directory Tree" msgstr "Browser di progetto - era noto come Albero delle Cartelle" #: lib/Padre/Wx/FBP/SLOC.pm:29 msgid "Project Statistics" msgstr "Statistiche progetto" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "Strumenti di progetto" #: lib/Padre/Wx/ActionLibrary.pm:1808 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "Richiede un nuovo nome per la variabile e ne sostituisce tutte le occorrenze" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Punctuation characters" msgstr "Caratteri di punteggiatura" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Put focus on the next tab to the right" msgstr "Imposta il focus sulla scheda successiva sulla destra" #: lib/Padre/Wx/ActionLibrary.pm:2365 msgid "Put focus on the previous tab to the left" msgstr "Imposta il focus sulla scheda successiva sulla sinistra" #: lib/Padre/Wx/ActionLibrary.pm:749 msgid "Put the content of the current document in the clipboard" msgstr "Metti il contenuto del documento corrente negli appunti" #: lib/Padre/Wx/ActionLibrary.pm:689 msgid "Put the current selection in the clipboard" msgstr "Mette negli appunti la selezione corrente " #: lib/Padre/Wx/ActionLibrary.pm:705 msgid "Put the full path of the current file in the clipboard" msgstr "Mette negli appunti il percorso completo del file corrente" #: lib/Padre/Wx/ActionLibrary.pm:735 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Mette negli appunti il percorso completo della cartella che contiene il file corrente" #: lib/Padre/Wx/ActionLibrary.pm:720 msgid "Put the name of the current file in the clipboard" msgstr "Mette negli appunti il nome del file corrente" #: lib/Padre/Wx/Main.pm:4411 msgid "Python Files" msgstr "File Python" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:43 msgid "Quick Menu Access" msgstr "Accesso rapido al menu" #: lib/Padre/Wx/ActionLibrary.pm:1332 msgid "Quick access to all menu functions" msgstr "Accesso rapido a tutte le funzioni di menù" #: lib/Padre/Wx/FBP/Debugger.pm:163 msgid "Quit Debugger" msgstr "Esci dal debugger" #: lib/Padre/Wx/ActionLibrary.pm:2163 msgid "Quit Debugger (&q)" msgstr "Esci dal debugger (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2164 msgid "Quit the process being debugged" msgstr "Esci dal processo sottoposto a debug" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "Cita (disabilita) i metacaratteri del pattern fino a \\E" #: lib/Padre/Wx/StatusBar.pm:411 msgid "R/W" msgstr "R/W" #: lib/Padre/Wx/Dialog/About.pm:155 msgid "RAM" msgstr "RAM" #: lib/Padre/Wx/FBP/Debugger.pm:484 msgid "" "Raw\n" "You can enter what ever debug command you want!" msgstr "" "Raw\n" "Potete introdurre qualsiasi comando di debug vogliate!" #: lib/Padre/Wx/Menu/File.pm:180 msgid "Re&load" msgstr "Ri&carica" #: lib/Padre/Wx/ActionLibrary.pm:2303 msgid "Re&load All Plug-ins" msgstr "Ri&carica tutti i plug-in" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Re&place in Files..." msgstr "Sostituisci nei file..." #: lib/Padre/Wx/ActionLibrary.pm:2281 msgid "Re&set My plug-in" msgstr "Re&setta My Plug-in" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Only" msgstr "Sola lettura" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Lettura dei file dal server FTP in corso..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:274 msgid "Reading items. Please wait" msgstr "Lettura degli elementi in corso. Attendere..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:327 msgid "Reading items. Please wait..." msgstr "Lettura degli elementi in corso. Attendere..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:215 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Cancellare davvero il file \"%s\"?" #: lib/Padre/Wx/FBP/CPAN.pm:277 msgid "Recent" msgstr "Recente" #: lib/Padre/Wx/ActionLibrary.pm:608 msgid "Redo last undo" msgstr "Ripeti l'ultimo annullamento" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "Ref&actor" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:368 msgid "Refactor" msgstr "Refactor" #: lib/Padre/Wx/Directory.pm:226 #: lib/Padre/Wx/FBP/CPAN.pm:132 #: lib/Padre/Wx/FBP/CPAN.pm:180 msgid "Refresh" msgstr "Aggiorna" #: lib/Padre/Wx/FBP/Breakpoints.pm:63 msgid "Refresh List" msgstr "Aggiorna elenco" #: lib/Padre/Wx/FBP/FoundInFiles.pm:51 msgid "Refresh Search" msgstr "Aggiorna ricerca" #: lib/Padre/Wx/FBP/VCS.pm:143 msgid "Refresh the status of working copy files and directories" msgstr "Aggiorna lo stato dei file e delle cartelle di lavoro" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Editor espressioni regolari" #: lib/Padre/Wx/FBP/Sync.pm:178 msgid "Register" msgstr "Registrati" #: lib/Padre/Wx/FBP/Sync.pm:315 msgid "Registration" msgstr "Registrazione" #: lib/Padre/Wx/FBP/Find.pm:79 #: lib/Padre/Wx/FBP/Replace.pm:129 msgid "Regular E&xpression" msgstr "Espressioni Regolari" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Reinstallando/installando su altri computer" #: lib/Padre/Wx/ActionLibrary.pm:389 msgid "Reload &All" msgstr "Ricarica &tutti" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload &File" msgstr "Ricarica &file" #: lib/Padre/Wx/ActionLibrary.pm:399 msgid "Reload &Some..." msgstr "Ricarica &alcuni..." #: lib/Padre/Wx/Main.pm:4693 msgid "Reload Files" msgstr "Ricarica file" #: lib/Padre/Wx/ActionLibrary.pm:390 msgid "Reload all files currently open" msgstr "Ricarica tutti i file attualmente aperti" #: lib/Padre/Wx/ActionLibrary.pm:2304 msgid "Reload all plug-ins from &disk" msgstr "Ricarica tutti i plugin da &disco" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Reload current file from disk" msgstr "Ricarica da disco il file corrente" #: lib/Padre/Wx/Main.pm:4636 msgid "Reloading Files" msgstr "Caricamento file" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Reloads (or initially loads) the current plug-in" msgstr "(Ri)carica il plug-in corrente" #: lib/Padre/Wx/ActionLibrary.pm:659 msgid "Remove all the selection marks" msgstr "Rimuovi tutti gli indicatori di selezione" #: lib/Padre/Wx/ActionLibrary.pm:969 msgid "Remove comment for selected lines or the current line" msgstr "Rimuove il commento dalle righe selezionate o da quella corrente" #: lib/Padre/Wx/ActionLibrary.pm:674 msgid "Remove the current selection and put it in the clipboard" msgstr "Rimuove la selezione corrente e la mette negli appunti" #: lib/Padre/Wx/ActionLibrary.pm:533 msgid "Remove the entries from the recent files list" msgstr "Rimuovi gli elementi dell'elenco dei file recenti" #: lib/Padre/Wx/ActionLibrary.pm:1064 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Rimuove gli spazi al'inizio della riga selezionata" #: lib/Padre/Wx/ActionLibrary.pm:1074 msgid "Remove the spaces from the end of the selected lines" msgstr "Rimuove gli spazi alla fine della riga selezionata" #: lib/Padre/Wx/Directory/TreeCtrl.pm:378 #: lib/Padre/Wx/Directory/TreeCtrl.pm:380 msgid "Rename" msgstr "Rinomina" #: lib/Padre/Wx/Directory/TreeCtrl.pm:277 msgid "Rename Directory" msgstr "Rinomina cartella" #: lib/Padre/Wx/Directory/TreeCtrl.pm:336 msgid "Rename File" msgstr "Rinomina file" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename directory" msgstr "Rinomina cartella" #: lib/Padre/Wx/Directory/TreeCtrl.pm:170 msgid "Rename file" msgstr "Rinomina file" #: lib/Padre/Document/Perl.pm:813 #: lib/Padre/Document/Perl.pm:823 msgid "Rename variable" msgstr "Rinomina variabile" #: lib/Padre/Wx/VCS.pm:264 msgid "Renamed" msgstr "Rinominato" #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Repeat the last find to find the next match" msgstr "Ripeti l'ultima ricerca fino a trovare la corrispondenza successiva" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Ripeti l'ultima ricerca, ma all'indietro, fino a trovare la corrispondenza precedente" #: lib/Padre/Wx/FBP/Replace.pm:31 msgid "Replace" msgstr "Sostituisci" #: lib/Padre/Wx/FBP/Replace.pm:186 msgid "Replace &All" msgstr "Sostituisci &tutto" #: lib/Padre/Wx/FBP/Replace.pm:88 msgid "Replace &With:" msgstr "Sostituisci con:" #: lib/Padre/Wx/FBP/Preferences.pm:500 msgid "Replace In Files" msgstr "Sostituisci nei file" #: lib/Padre/Document/Perl.pm:907 #: lib/Padre/Document/Perl.pm:956 msgid "Replace Operation Canceled" msgstr "Operazione di sostituzione annullata" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:66 msgid "Replace With:" msgstr "Sostituisci con:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Replace all occurrences of the pattern" msgstr "Sostituisci tutte le occorrenze dell'espressione" #: lib/Padre/Wx/ReplaceInFiles.pm:248 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Sostituzione completata, '%s' trovato %d volta(e) in %d file in '%s'" #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "Errore nella sostituzione %s: %s" #: lib/Padre/Wx/ReplaceInFiles.pm:132 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:32 msgid "Replace in Files" msgstr "Sostituisci nei file" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "Sostituisci..." #: lib/Padre/Wx/Dialog/Replace.pm:129 #, perl-format msgid "Replaced %d match" msgstr "Sostituite %d corrispondenze" #: lib/Padre/Wx/Dialog/Replace.pm:129 #, perl-format msgid "Replaced %d matches" msgstr "Sostituite %d corrispondenze:" #: lib/Padre/Wx/ReplaceInFiles.pm:189 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr "Sostituzione di '%s' in '%s'..." #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Report a New &Bug" msgstr "Segnala un nuovo &bug" #: lib/Padre/Wx/ActionLibrary.pm:2288 msgid "Reset My plug-in" msgstr "Resetta My Plug-in" #: lib/Padre/Wx/ActionLibrary.pm:2282 msgid "Reset the My plug-in to the default" msgstr "Reimposta My Plug-in al valore predefinito" #: lib/Padre/Wx/ActionLibrary.pm:1649 msgid "Reset the size of the letters to the default in the editor window" msgstr "Reimposta la dimensione dei caratteri a quella predefinita" #: lib/Padre/Wx/FBP/Preferences.pm:1237 msgid "Reset to default shortcut" msgstr "Reimposta la scorciatoia di default" #: lib/Padre/Wx/Main.pm:3233 msgid "Restore focus..." msgstr "Ripristina focus..." #: lib/Padre/Wx/FBP/VCS.pm:123 msgid "Restore pristine working copy file (undo most local edits)" msgstr "Ripristina la versione di lavoro precedente (annulla la maggior parte delle modifiche locali)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Return" msgstr "Return" #: lib/Padre/Wx/VCS.pm:565 msgid "Revert changes?" msgstr "Annullare modifiche?" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "Annulla questa modifca" #: lib/Padre/Wx/VCS.pm:56 msgid "Revision" msgstr "Version" #: lib/Padre/Wx/Dialog/Preferences.pm:34 msgid "Right" msgstr "Destra" #: lib/Padre/Config.pm:59 msgid "Right Panel" msgstr "Pannello destro" #: lib/Padre/Wx/FBP/Diff.pm:83 msgid "Right side" msgstr "Lato destro" #: lib/Padre/Wx/Main.pm:4413 msgid "Ruby Files" msgstr "File Ruby" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:369 msgid "Run" msgstr "Esegui" #: lib/Padre/Wx/ActionLibrary.pm:1981 msgid "Run &Build and Tests" msgstr "Esegue la &compilazione e i test" #: lib/Padre/Wx/ActionLibrary.pm:1970 msgid "Run &Command" msgstr "Esegui &comando" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "Esegui &documento in Padre" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "Esegue la &selezione in Padre" #: lib/Padre/Wx/ActionLibrary.pm:1993 msgid "Run &Tests" msgstr "Esegui &test" #: lib/Padre/Wx/FBP/Debugger.pm:43 msgid "" "Run Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" msgstr "" "Esegue Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" #: lib/Padre/Wx/ActionLibrary.pm:1958 msgid "Run Script (&Debug Info)" msgstr "Esegui script (con informazioni di &debug)" #: lib/Padre/Wx/ActionLibrary.pm:2012 msgid "Run T&his Test" msgstr "Esegui &questo test" #: lib/Padre/Wx/ActionLibrary.pm:1995 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "Esegui tutti i test del progetto corrente o del documento e mostra il risultato nella finestra di output." #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "Esegui filtro" #: lib/Padre/Wx/Main.pm:2722 msgid "Run setup" msgstr "Esegui setup" #: lib/Padre/Wx/ActionLibrary.pm:1959 msgid "Run the current document but include debug info in the output." msgstr "Esegui il documento corrente ma includi le informazionidi debug nell'output." #: lib/Padre/Wx/ActionLibrary.pm:2013 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "Esegui il test corrente se il documento è un test. (prove -lv)" #: lib/Padre/Wx/ActionLibrary.pm:1971 msgid "Runs a shell command and shows the output." msgstr "Esegue un comando di shell e ne mostra l'output." #: lib/Padre/Wx/ActionLibrary.pm:1943 msgid "Runs the current document and shows its output in the output panel." msgstr "Esegui il documento corrente e mostrane l'output nella finestra di output." #: lib/Padre/Locale.pm:411 #: lib/Padre/Wx/FBP/About.pm:616 msgid "Russian" msgstr "Russo" #: lib/Padre/Wx/FBP/About.pm:188 msgid "Ryan Niebur" msgstr "Ryan Niebur" #: lib/Padre/Wx/FBP/Debugger.pm:444 msgid "" "S [[!]regex]\n" "List subroutine names [not] matching the regex." msgstr "" "S [[!regex]\n" "Mostra i nomi di subroutine [non] corrispondenti all'espressione regolare" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "S&alva" #: lib/Padre/Wx/FBP/Preferences.pm:1194 msgid "S&et" msgstr "&Imposta" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Main.pm:4415 msgid "SQL Files" msgstr "File SQL" #: lib/Padre/Wx/Dialog/Patch.pm:572 #, perl-format msgid "SVN Diff successful. You should see a new tab in editor called %s." msgstr "Diff SVN avvenuto con successo. Dovreste vedere un nuovo tab denominato %s." #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "Salva" #: lib/Padre/Wx/ActionLibrary.pm:426 msgid "Save &As..." msgstr "Salva con nome..." #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save &Intuition" msgstr "Salva &intuizione" #: lib/Padre/Wx/ActionLibrary.pm:450 msgid "Save All" msgstr "Salva tutto" #: lib/Padre/Wx/ActionLibrary.pm:486 msgid "Save Sess&ion..." msgstr "Salva la sess&ione..." #: lib/Padre/Document.pm:783 msgid "Save Warning" msgstr "Salva segnalazione" #: lib/Padre/Wx/ActionLibrary.pm:451 msgid "Save all the files" msgstr "Salva tutti i file" #: lib/Padre/Wx/FBP/Preferences.pm:660 msgid "Save and Close" msgstr "Salva e chiudi" #: lib/Padre/Wx/ActionLibrary.pm:414 msgid "Save current document" msgstr "Salva il documento corrente" #: lib/Padre/Wx/Main.pm:4779 msgid "Save file as..." msgstr "Salva con nome..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Salva sessione con nome..." #: lib/Padre/Wx/FBP/SessionManager.pm:70 msgid "Save session automatically" msgstr "Salva sessione automaticamente" #: lib/Padre/Wx/FBP/VCS.pm:43 msgid "Schedule the file or directory for addition to the repository" msgstr "Pianifica l'aggiunta del file o della directory al repository" #: lib/Padre/Wx/FBP/VCS.pm:63 msgid "Schedule the file or directory for deletion from the repository" msgstr "Pianifica l'eliminazione del file o della cartella dal repository" #: lib/Padre/Config.pm:1123 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/FBP/Preferences.pm:1923 msgid "Screen Layout" msgstr "Disposizione schermo" #: lib/Padre/Wx/FBP/Preferences.pm:1481 msgid "Script Arguments" msgstr "Argomenti script" #: lib/Padre/Wx/FBP/Preferences.pm:1436 msgid "Script Execution" msgstr "Esecuzione script" #: lib/Padre/Wx/Main.pm:4421 msgid "Script Files" msgstr "File di script" #: lib/Padre/Wx/Directory.pm:84 #: lib/Padre/Wx/Directory.pm:505 #: lib/Padre/Wx/FBP/CPAN.pm:276 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:365 #: lib/Padre/Wx/Dialog/Find.pm:65 msgid "Search" msgstr "Cerca" #: lib/Padre/Wx/FBP/Find.pm:87 msgid "Search &Backwards" msgstr "Cerca in &precedenza" #: lib/Padre/Wx/FBP/FindInFiles.pm:48 #: lib/Padre/Wx/FBP/Find.pm:46 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:41 #: lib/Padre/Wx/FBP/Replace.pm:47 msgid "Search &Term:" msgstr "&Termine da ricercare:" #: lib/Padre/Document/Perl.pm:658 msgid "Search Canceled" msgstr "Ricerca annullata" #: lib/Padre/Wx/Dialog/Replace.pm:132 #: lib/Padre/Wx/Dialog/Replace.pm:137 #: lib/Padre/Wx/Dialog/Replace.pm:162 msgid "Search and Replace" msgstr "Trova e sostituisci" #: lib/Padre/Wx/ActionLibrary.pm:1267 msgid "Search and replace text in all files below a given directory" msgstr "Cerca e sostituisci un testo in tutti i file sotto una certa directory" #: lib/Padre/Wx/Panel/FoundInFiles.pm:292 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Ricerca completata, '%s' trovato %d volta(e) in %d file in '%s'" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Search for a text in all files below a given directory" msgstr "Cerca un testo in tutti i file sotto una certa directory" #: lib/Padre/Wx/Browser.pm:92 #: lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Ricerca perldoc - es. Padre::Task, Net::LDAP" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Search the Perl help pages (perldoc)" msgstr "Ricerca nelle pagine di aiuto di Perl (perldoc)" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "Cerca:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "Fallita ricerca di '%s'..." #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "Cerca nel codice sorgente delle parentesi a cui manca una parte (apertura/chiusura) corrispondente" #: lib/Padre/Wx/Panel/FoundInFiles.pm:242 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "Ricerca di '%s' in '%s'..." #: lib/Padre/Wx/FBP/About.pm:140 #: lib/Padre/Wx/FBP/About.pm:445 msgid "Sebastian Willing" msgstr "Sebastian Willing" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Seconda etichetta" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Visitare http://padre.perlide.org/ per informazioni aggiornate" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Seleziona" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Select &All" msgstr "Seleziona &tutto" #: lib/Padre/Wx/Dialog/FindInFiles.pm:52 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:44 msgid "Select Directory" msgstr "Seleziona cartella" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Seleziona funzione" #: lib/Padre/Wx/ActionLibrary.pm:1307 msgid "Select a bookmark created earlier and jump to that position" msgstr "Seleziona un segnalibro creato in precedenza e si sposta in quella posizione" #: lib/Padre/Wx/ActionLibrary.pm:907 msgid "Select a date, filename or other value and insert at the current location" msgstr "Seleziona una data, un nome file o un altro valore e lo inserisce nella posizione corrente" #: lib/Padre/Wx/FBP/Preferences.pm:1426 msgid "Select a file" msgstr "Seleziona un file" #: lib/Padre/Wx/ActionLibrary.pm:931 msgid "Select a file and insert its content at the current location" msgstr "Seleziona un file e ne inserisce il contenuto nella posizione corrente" #: lib/Padre/Wx/FBP/Preferences.pm:610 msgid "Select a folder" msgstr "Seleziona una cartella" #: lib/Padre/Wx/ActionLibrary.pm:476 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "Seleziona una sessione. Chiude tutti i file aperti e apre tutti quelli associati alla sessione" #: lib/Padre/Wx/ActionLibrary.pm:622 msgid "Select all the text in the current document" msgstr "Seleziona tutto il testo del documento corrente" #: lib/Padre/Wx/ActionLibrary.pm:1002 msgid "Select an encoding and encode the document to that" msgstr "Seleziona una codifica e la applica al documento" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "Select and insert a snippet at the current location" msgstr "Seleziona e inserisce un frammento nella posizione corrente" #: lib/Padre/CPAN.pm:100 msgid "Select distribution to install" msgstr "Seleziona la distribuzione da installare" #: lib/Padre/Wx/Main.pm:5246 msgid "Select files to close:" msgstr "Seleziona il file da chiudere:" #: lib/Padre/Wx/Dialog/OpenResource.pm:238 msgid "Select one or more resources to open" msgstr "Scegliete una o più risorse da aprire" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Scegli quali file aperti chiudere" #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Select some open files for reload" msgstr "Scegli quali file aperti ricaricare" #: lib/Padre/Wx/Dialog/HelpSearch.pm:131 msgid "Select the help &topic" msgstr "Scegli l'&argomento dell'help" #: lib/Padre/Wx/ActionLibrary.pm:882 msgid "Select to Matching &Brace" msgstr "Seleziona fino alla &parentesi corrispondente" #: lib/Padre/Wx/ActionLibrary.pm:883 msgid "Select to the matching opening or closing brace" msgstr "Seleziona fino alla parentesi di chiusura o di apertura corrispondente" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" "Seleziona prima di quale subroutine voi inserire\n" "la nuova subroutine" #: lib/Padre/Wx/FBP/Document.pm:129 msgid "Selection" msgstr "Selezione" #: lib/Padre/Document/Perl.pm:950 msgid "Selection not part of a Perl statement?" msgstr "La selezione non è parte di un'istruzione Perl?" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Send a bug report to the Padre developer team" msgstr "Invia un bug report al gruppo di sviluppo di Padre" #: lib/Padre/Wx/FBP/VCS.pm:103 msgid "Send changes from your working copy to the repository" msgstr "Invia le modifiche dalla vostra copia di lavoro al repository" #: lib/Padre/File/HTTP.pm:52 #, perl-format msgid "Sending HTTP request %s..." msgstr "Spedizione della richiesta HTTP %s..." #: lib/Padre/Wx/FBP/Sync.pm:38 msgid "Server:" msgstr "Server:" #: lib/Padre/Wx/FBP/SessionManager.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Gestione sessioni" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "Nome sessione" #: lib/Padre/Wx/ActionLibrary.pm:1295 msgid "Set &Bookmark" msgstr "Imposta segnali&bro" #: lib/Padre/Wx/FBP/Bookmarks.pm:38 msgid "Set Bookmark:" msgstr "Imposta segnalibro:" #: lib/Padre/Wx/ActionLibrary.pm:2142 msgid "Set Breakpoint (&b)" msgstr "Imposta il punto d'interruzione (&b)" #: lib/Padre/Wx/FBP/Breakpoints.pm:83 msgid "Set Breakpoints (toggle)" msgstr "Imposta/rimuovi punti d'interruzione " #: lib/Padre/Wx/ActionLibrary.pm:1665 msgid "Set Padre in full screen mode" msgstr "Imposta Padre in modalità a tutto schermo" #: lib/Padre/Wx/ActionLibrary.pm:2143 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "Imposta il punto d'interruzione nella posizione corrente del cursore, specificando una condizione" #: lib/Padre/Wx/ActionLibrary.pm:2391 msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "Imposta il focus sulla finestra \"Esplora CPAN\"" #: lib/Padre/Wx/ActionLibrary.pm:2447 msgid "Set the focus to the \"Command Line\" window" msgstr "Imposta il focus sulla finestra della \"Riga di comando\"" #: lib/Padre/Wx/ActionLibrary.pm:2402 msgid "Set the focus to the \"Functions\" window" msgstr "Imposta il focus sulla finestra delle \"funzioni\"" #: lib/Padre/Wx/ActionLibrary.pm:2414 msgid "Set the focus to the \"Outline\" window" msgstr "Imposta il focus sulla finestra dello \"schema\"" #: lib/Padre/Wx/ActionLibrary.pm:2425 msgid "Set the focus to the \"Output\" window" msgstr "Imposta il focus sulla finestra di \"output\"" #: lib/Padre/Wx/ActionLibrary.pm:2436 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Imposta il focus sulla finestra di \"controllo della sintassi\"" #: lib/Padre/Wx/ActionLibrary.pm:2458 msgid "Set the focus to the main editor window" msgstr "Imposta il focus sulla finestra principale dell'editor" #: lib/Padre/Wx/FBP/Preferences.pm:1199 msgid "Sets the keyboard binding" msgstr "Imposta la scorciatoiada tastiera" #: lib/Padre/Config.pm:532 #: lib/Padre/Config.pm:787 msgid "Several placeholders like the filename can be used" msgstr "Possono essere utilizzati diversi segnaposto come il nome file" #: lib/Padre/Wx/Syntax.pm:59 msgid "Severe Warning" msgstr "Segnalazione severa" #: lib/Padre/Wx/ActionLibrary.pm:2200 msgid "Share your preferences between multiple computers" msgstr "Condividete le preferenze tra diversi computer" #: lib/Padre/MIME.pm:1035 msgid "Shell Script" msgstr "Script shell" #: lib/Padre/Wx/FBP/Preferences.pm:1171 msgid "Shift" msgstr "Shift" #: lib/Padre/Wx/FBP/About.pm:472 msgid "Shlomi Fish" msgstr "Shlomi Fish" #: lib/Padre/Wx/Dialog/Preferences.pm:169 #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Scorciatoia" #: lib/Padre/Wx/FBP/Preferences.pm:1143 msgid "Shortcut:" msgstr "Scorciatoia:" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Shorten the common path in window list" msgstr "Accorcia il percorso comune nell'elenco finestre" #: lib/Padre/Wx/FBP/VCS.pm:239 #: lib/Padre/Wx/FBP/Breakpoints.pm:151 #: lib/Padre/Wx/FBP/Debugger.pm:519 msgid "Show" msgstr "Mostra" #: lib/Padre/Wx/ActionLibrary.pm:1377 msgid "Show &Command Line" msgstr "Mostra la finestra della riga di &comando" #: lib/Padre/Wx/Dialog/RegexEditor.pm:215 msgid "Show &Description" msgstr "Mostra &Descrizione:" #: lib/Padre/Wx/ActionLibrary.pm:1367 msgid "Show &Function List" msgstr "Mostra elenco &funzioni" #: lib/Padre/Wx/ActionLibrary.pm:1605 msgid "Show &Indentation Guide" msgstr "Mostra guide d'&indentazione" #: lib/Padre/Wx/ActionLibrary.pm:1417 msgid "Show &Outline" msgstr "Visualizza &schema" #: lib/Padre/Wx/ActionLibrary.pm:1357 msgid "Show &Output" msgstr "Mostra &output" #: lib/Padre/Wx/ActionLibrary.pm:1428 msgid "Show &Project Browser" msgstr "Mostra il browser di &progetto" #: lib/Padre/Wx/ActionLibrary.pm:1407 msgid "Show &Task List" msgstr "Mostra elenco delle a&ttività" #: lib/Padre/Wx/ActionLibrary.pm:1595 msgid "Show &Whitespaces" msgstr "Mostra spazi &vuoti" #: lib/Padre/Wx/ActionLibrary.pm:1563 msgid "Show C&urrent Line" msgstr "Evidenzia riga c&orrente" #: lib/Padre/Wx/ActionLibrary.pm:1387 msgid "Show CPA&N Explorer" msgstr "Mostra esplora CPA&N" #: lib/Padre/Wx/ActionLibrary.pm:1549 msgid "Show Ca&ll Tips" msgstr "Mostra &suggerimenti" #: lib/Padre/Wx/ActionLibrary.pm:1508 msgid "Show Code &Folding" msgstr "Mostra &raggruppamento codice" #: lib/Padre/Wx/ActionLibrary.pm:2062 msgid "Show Debug Breakpoints" msgstr "Mostra i punti d'interruzione" #: lib/Padre/Wx/ActionLibrary.pm:2075 msgid "Show Debug Output" msgstr "Mostra output del debug" #: lib/Padre/Wx/ActionLibrary.pm:2085 msgid "Show Debugger" msgstr "Mostra debugger" #: lib/Padre/Wx/FBP/Debugger.pm:212 msgid "Show Global Variables" msgstr "Mostra variabili globali" #: lib/Padre/Wx/ActionLibrary.pm:1497 msgid "Show Line &Numbers" msgstr "Mostra &numeri di riga" #: lib/Padre/Wx/FBP/Debugger.pm:193 msgid "Show Local Variables" msgstr "Mostra variabili locali" #: lib/Padre/Wx/ActionLibrary.pm:1585 msgid "Show Ne&wlines" msgstr "Mostra &carattere di fine riga" #: lib/Padre/Wx/ActionLibrary.pm:1573 msgid "Show Right &Margin" msgstr "Mostra &margine destro" #: lib/Padre/Wx/ActionLibrary.pm:1438 msgid "Show S&yntax Check" msgstr "Mostra verifica s&intassi" #: lib/Padre/Wx/ActionLibrary.pm:1459 msgid "Show St&atus Bar" msgstr "Mostra barra di st&ato" #: lib/Padre/Wx/FBP/Syntax.pm:63 msgid "Show Standard Error" msgstr "Mostra flusso errore standard" #: lib/Padre/Wx/Dialog/RegexEditor.pm:245 msgid "Show Subs&titution" msgstr "Mostra sos&tituzione" #: lib/Padre/Wx/ActionLibrary.pm:1469 msgid "Show Tool&bar" msgstr "Mostra &barra degli strumenti" #: lib/Padre/Wx/ActionLibrary.pm:1448 msgid "Show V&ersion Control" msgstr "Mostra controllo di v&ersione" #: lib/Padre/Wx/ActionLibrary.pm:1574 msgid "Show a vertical line indicating the right margin" msgstr "Mostra una riga verticale che indica il margine destro" #: lib/Padre/Wx/ActionLibrary.pm:1408 msgid "Show a window listing all task items in the current document" msgstr "Mostra una finestra che elenca tutte le attività nel documento corrente" #: lib/Padre/Wx/ActionLibrary.pm:1368 msgid "Show a window listing all the functions in the current document" msgstr "Mostra una finestra che elenca tutte le funzioni nel documento corrente" #: lib/Padre/Wx/ActionLibrary.pm:1418 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "Mostra una finestra che elenca tutte le parti del file corrente (funzioni, pragma, moduli)" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Show as" msgstr "Mostra come" #: lib/Padre/Wx/ActionLibrary.pm:1154 msgid "Show as &Decimal" msgstr "Mostra come &decimale" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Show as &Hexadecimal" msgstr "Mostra come &esadecimale" #: lib/Padre/Plugin/PopularityContest.pm:212 msgid "Show current report" msgstr "Mostra report corrente" #: lib/Padre/Wx/ActionLibrary.pm:1397 msgid "Show diff window!" msgstr "Mostra la finestra delle differenze!" #: lib/Padre/Wx/ActionLibrary.pm:2593 msgid "Show information about Padre" msgstr "Mostra informazioni riguardo Padre" #: lib/Padre/Wx/FBP/Preferences.pm:152 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "Mostra i messaggi informativi a bassa priorità nella barra di stato (non in un popup)" #: lib/Padre/Config.pm:1142 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "Mostra i messaggi informativi a bassa priorità nella barra di stato (non in un popup)" #: lib/Padre/Config.pm:779 msgid "Show or hide the status bar at the bottom of the window." msgstr "Mostra/nasconde la barra di stato al fondo della finestra." #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "Mostra la posizione precedente" #: lib/Padre/Wx/FBP/Preferences.pm:742 msgid "Show right margin at column" msgstr "Mostra il margine destro alla colonna" #: lib/Padre/Wx/FBP/Preferences.pm:563 msgid "Show splash screen" msgstr "Mostra la schermata di avvio" #: lib/Padre/Wx/ActionLibrary.pm:1155 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "Mostra il valori ASCII del testo selezionato nella finestra di output in decimale" #: lib/Padre/Wx/ActionLibrary.pm:1145 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "Mostra il valori ASCII del testo selezionato nella finestra di output in notazione esadecimale " #: lib/Padre/Wx/ActionLibrary.pm:2505 msgid "Show the POD (Perldoc) version of the current document" msgstr "Mostra la versione POD (perldoc) del documento corrente" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "Show the Padre help" msgstr "Mostra l'aiuto in linea di Padre" #: lib/Padre/Wx/ActionLibrary.pm:2234 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Mostra il gestore plug-in per abilitarli o disabilitarli" #: lib/Padre/Wx/ActionLibrary.pm:1378 msgid "Show the command line window" msgstr "Mostra la finestra della riga di comando" #: lib/Padre/Wx/ActionLibrary.pm:2492 msgid "Show the help article for the current context" msgstr "Mostra l'articolo d'aiuto per il contesto corrente" #: lib/Padre/Wx/ActionLibrary.pm:1358 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "Mostra le finestre che contengono il flusso di output e il flusso di errore degli script in esecuzione" #: lib/Padre/Wx/ActionLibrary.pm:1719 msgid "Show what perl thinks about your code" msgstr "Mostra cosa Perl pensi del tuo codice" #: lib/Padre/Wx/ActionLibrary.pm:1509 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "Mostra/nasconde una linea verticale sul lato sinistro della finestra per consentire di comprimere le righe" #: lib/Padre/Wx/ActionLibrary.pm:1498 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "Mostra/nasconde i numeri di riga di tutti i documenti sulla sinistra della finestra" #: lib/Padre/Wx/ActionLibrary.pm:1586 msgid "Show/hide the newlines with special character" msgstr "Mostra/nasconde il carattere di fine riga con un caratter particolare" #: lib/Padre/Wx/ActionLibrary.pm:1460 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Mostra/nasconde la barra di stato al fondo dello schermo" #: lib/Padre/Wx/ActionLibrary.pm:1596 msgid "Show/hide the tabs and the spaces with special characters" msgstr "Mostra/nasconde le tabulazioni e gli spazi con un carattere particolare" #: lib/Padre/Wx/ActionLibrary.pm:1470 msgid "Show/hide the toolbar at the top of the editor" msgstr "Mostra nascondi la barra degli strumenti nella parte alta dell'editor" #: lib/Padre/Wx/ActionLibrary.pm:1606 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "Mostra/nasconde una riga verticale sulla sinistra della riga ad ogni posizione d'indentazione " #: lib/Padre/Config.pm:469 msgid "Showing the splash image during start-up" msgstr "Mostra lo splash screen all'avvio" #: lib/Padre/Wx/FBP/About.pm:508 msgid "Simone Blandino" msgstr "Simone Blandino" #: lib/Padre/Wx/ActionLibrary.pm:1108 msgid "Simplistic Patch only works on saved files" msgstr "Il patch semplicistico funziona solo sui file salvati" #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "Simula crash in &background" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "Simula &crash" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "Simulazione &eccezione in background" #: lib/Padre/Wx/ActionLibrary.pm:2377 msgid "Simulate a right mouse button click to open the context menu" msgstr "Simula il click col tasto destro del mouse per aprire il menù contestuale" #: lib/Padre/Wx/Dialog/RegexEditor.pm:476 msgid "Single-line (&s)" msgstr "Riga singola (&s)" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "DimensioneDimensione carattere" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "Ignora la domanda senza dare feedback" #: lib/Padre/Wx/Dialog/OpenResource.pm:270 msgid "Skip using MANIFEST.SKIP" msgstr "Ignora usando MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/OpenResource.pm:266 msgid "Skip version control system files" msgstr "Ignora file di sistema del controllo di versione" #: lib/Padre/Document.pm:1415 #: lib/Padre/Document.pm:1416 msgid "Skipped for large files" msgstr "Evitato per file di grandi dimensioni" #: lib/Padre/Wx/FBP/Snippet.pm:61 msgid "Snippet:" msgstr "Frammento:" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "C'è qualcosa che non va nel vostro database di Padre:\n" "La sessione %s viene elencata ma non ci sono dati" #: lib/Padre/Wx/Dialog/Patch.pm:491 msgid "Sorry Diff Failed, are you sure your choice of files was correct for this action" msgstr "Diff fallito, siete sicuri che la vostra scelta di file fosse corretta per questa azione?" #: lib/Padre/Wx/Dialog/Patch.pm:588 msgid "Sorry, Diff failed. Are you sure your have access to the repository for this action" msgstr "Diff fallito. Siete sicuri di aver accesso al repository per questa azione" #: lib/Padre/Wx/Dialog/Patch.pm:434 msgid "Sorry, patch failed, are you sure your choice of files was correct for this action" msgstr "Patch fallito, siete sicuri che la vostra scelta di file fosse corretta per questa azione" #: lib/Padre/Wx/FBP/Preferences.pm:73 msgid "Sort Order:" msgstr "Ordinamento:" #: lib/Padre/Wx/FBP/Document.pm:228 msgid "Source Lines of Code" msgstr "Righe di codice sorgente" #: lib/Padre/Wx/Dialog/Preferences.pm:30 msgid "Space" msgstr "Spazio" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "Space and tab" msgstr "Spazi e tabulazioni" #: lib/Padre/Wx/Main.pm:6281 msgid "Space to Tab" msgstr "Da spazi a tabulazioni" #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Spaces to &Tabs..." msgstr "Da spazi a &tabulazioni..." #: lib/Padre/Locale.pm:249 #: lib/Padre/Wx/FBP/About.pm:595 msgid "Spanish" msgstr "Spagnolo" #: lib/Padre/Locale.pm:235 msgid "Spanish (Argentina)" msgstr "Spagnolo (Argentina)" #: lib/Padre/Wx/ActionLibrary.pm:906 msgid "Special &Value..." msgstr "&Valore speciale..." #: lib/Padre/Config.pm:1381 msgid "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "Specifica le opzioni di Devel::EndStats. Deve essere abilitato 'feature_devel_endstats'." #: lib/Padre/Config.pm:1400 msgid "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "Specifica le opzioni di Devel::TraceUse. Deve essere abilitato 'feature_devel_traceuse'." #: lib/Padre/Wx/FBP/Preferences.pm:523 msgid "Startup" msgstr "Avvio" #: lib/Padre/Wx/VCS.pm:53 #: lib/Padre/Wx/FBP/DebugOutput.pm:37 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:35 #: lib/Padre/Wx/CPAN/Listview.pm:59 msgid "Status" msgstr "Stato" #: lib/Padre/Wx/FBP/Sync.pm:52 msgid "Status:" msgstr "Stato:" #: lib/Padre/Wx/FBP/About.pm:152 msgid "Steffen Muller" msgstr "Steffen Muller" #: lib/Padre/Wx/FBP/FoundInFiles.pm:111 msgid "Stop Search" msgstr "Interrompi ricerca" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "Stop a running task." msgstr "Interrompi un processo in esecuzione." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "Interrompi per 1 secondo l'esecuzione degli altri elementi della coda delle azioni" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Interrompi per 10 secondi l'esecuzione degli altri elementi della coda delle azioni" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Interrompi per 30 secondi l'esecuzione degli altri elementi della coda delle azioni" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "Stringa" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "Sub-trace avviato" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "Sub-trace arrestato" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Modifica la lingua dell'interfaccia di Padre in %s" #: lib/Padre/Wx/ActionLibrary.pm:1484 msgid "Switch document type" msgstr "Modifica tipo documento" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Imposta la lingua a quella predefinita del sistema" #: lib/Padre/Wx/Syntax.pm:161 #: lib/Padre/Wx/FBP/Preferences.pm:455 msgid "Syntax Check" msgstr "Verifica sintassi" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Predefinito" #: lib/Padre/Wx/FBP/Debugger.pm:356 msgid "" "T\n" "Produce a stack backtrace." msgstr "" "T\n" "Produce backtrace dello stack." #: lib/Padre/Wx/Dialog/Preferences.pm:29 #: lib/Padre/Wx/Dialog/RegexEditor.pm:140 msgid "Tab" msgstr "Tab" #: lib/Padre/Wx/FBP/Preferences.pm:998 msgid "Tab Spaces:" msgstr "Spazi delle tabulazioni" #: lib/Padre/Wx/Main.pm:6282 msgid "Tab to Space" msgstr "Da tabulazioni a spazi" #: lib/Padre/Wx/Menu/Edit.pm:233 msgid "Tabs and S&paces" msgstr "Tabulazioni e s&pazi" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Tabs to &Spaces..." msgstr "Da tabulazioni a &spazi..." #: lib/Padre/Wx/TaskList.pm:184 #: lib/Padre/Wx/FBP/Preferences.pm:88 #: lib/Padre/Wx/FBP/Preferences.pm:406 #: lib/Padre/Wx/Panel/TaskList.pm:98 msgid "Task List" msgstr "Elenco attività" #: lib/Padre/MIME.pm:878 msgid "Text" msgstr "Testo" #: lib/Padre/Wx/Main.pm:4417 #: lib/Padre/Wx/Choice/Files.pm:20 msgid "Text Files" msgstr "File di testo" #: lib/Padre/Wx/Dialog/Bookmarks.pm:108 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "Il segnalibro '%s' non esiste più" #: lib/Padre/Document.pm:254 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "Il file %s che state cercando di aprire ha una dimensione di %s byte. Questo è superiore al limite arbitrario di Padre per la dimensione dei file che attualmente è %s. Aprire questo file può ridurre le prestazioni. Aprirlo comunque?" #: lib/Padre/Wx/Dialog/Preferences.pm:485 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "La scorciatoia '%s' è già usata per l'azione '%s'.\n" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "Non ci sono ancora posizioni salvate" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Questo documento non contiene nessun POD" #: lib/Padre/Wx/ActionLibrary.pm:2273 msgid "This function reloads the My plug-in without restarting Padre" msgstr "Questa funzione ricarica My plug-in senza riavviare Padre" #: lib/Padre/Config.pm:1372 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "Richiesta l'installazione di Devel::EndStats e il riavvio di Padre" #: lib/Padre/Config.pm:1391 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "Richiesta l'installazione di Devel::TraceUse e il riavvio di Padre" #: lib/Padre/Wx/Main.pm:5375 msgid "This type of file (URL) is missing delete support." msgstr "Questo tipo di file (URL) non supporta la cancellazione." #: lib/Padre/Wx/Dialog/About.pm:146 msgid "Threads" msgstr "Thread" #: lib/Padre/Wx/FBP/Preferences.pm:1311 #: lib/Padre/Wx/FBP/Preferences.pm:1354 msgid "Timeout (seconds)" msgstr "Timeout (in secondi)" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "Oggi" #: lib/Padre/Config.pm:1445 msgid "Toggle Diff window feature that compares two buffers graphically" msgstr "Attiva la funzionalità finestra delle differenze che confronta graficamente due buffer" #: lib/Padre/Config.pm:1463 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "Attiva l'individuazione automatica di Perl 6 nei file Perl 5" #: lib/Padre/Wx/FBP/Debugger.pm:316 msgid "" "Toggle running breakpoints (update DB)\n" "b\n" "Sets breakpoint on current line\n" "B line\n" "Delete a breakpoint from the specified line." msgstr "" "Attiva/disattiva punto di interruzione in esecuzione (aggiorna DB)\n" "b\n" "Imposta punto di interruzione sulla riga corrente\n" "B riga\n" "Elimina un punto di interruzione dalla riga specificata." #: lib/Padre/Wx/FBP/About.pm:230 msgid "Tom Eliaz" msgstr "Tom Eliaz" #: lib/Padre/Wx/FBP/Preferences.pm:344 msgid "Tool Positions" msgstr "Posizioni strumenti" #: lib/Padre/Wx/FBP/Debugger.pm:231 msgid "Trace" msgstr "Trace" #: lib/Padre/Wx/FBP/About.pm:843 msgid "Translation" msgstr "Traduzione" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Vero" #: lib/Padre/Locale.pm:421 #: lib/Padre/Wx/FBP/About.pm:631 msgid "Turkish" msgstr "Turco" #: lib/Padre/Wx/ActionLibrary.pm:1388 msgid "Turn on CPAN explorer" msgstr "Attiva esplora CPAN" #: lib/Padre/Wx/ActionLibrary.pm:1398 msgid "Turn on Diff window" msgstr "Attiva finestra differenze" #: lib/Padre/Wx/ActionLibrary.pm:2063 msgid "Turn on debug breakpoints panel" msgstr "Attiva il pannello dei punti di interruzione per il debug" #: lib/Padre/Wx/ActionLibrary.pm:1439 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "Abilita la verifica della sintassi per il documento corrente e mostra l'output in una finestra" #: lib/Padre/Wx/ActionLibrary.pm:1450 msgid "Turn on version control view of the current project and show version control changes in a window" msgstr "Attiva la vista del controllo di versione del progetto corrente e mostra le modifiche in una finestra" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Tipo" #: lib/Padre/Wx/Dialog/HelpSearch.pm:148 msgid "Type a help &keyword to read:" msgstr "&Digita una parola chiave da leggere:" #: lib/Padre/MIME.pm:40 msgid "UNKNOWN" msgstr "SCONOSCIUTO" #: lib/Padre/Wx/ActionLibrary.pm:1528 msgid "Un&fold All" msgstr "&Espandi tutto" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "Impossibile interpretare %s" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Undo last change in current file" msgstr "Annulla l'ultima modifica nel file corrente" #: lib/Padre/Wx/ActionLibrary.pm:1529 #: lib/Padre/Wx/ActionLibrary.pm:1539 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "Espande tutti i blocchi che possono essere espansi (è necessario che il raggruppamantp sia attivo)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Unicode character 'name'" msgstr "'Nome' carattere Unicode" #: lib/Padre/Locale.pm:143 #: lib/Padre/Wx/Main.pm:4161 msgid "Unknown" msgstr "Sconosciuto" #: lib/Padre/PluginManager.pm:778 #: lib/Padre/Document/Perl.pm:654 #: lib/Padre/Document/Perl.pm:903 #: lib/Padre/Document/Perl.pm:952 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "Errore sconosciuto" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Errore sconosciuto da" #: lib/Padre/PluginHandle.pm:24 msgid "Unloaded" msgstr "Scaricato" #: lib/Padre/Wx/VCS.pm:260 msgid "Unmodified" msgstr "Non modificato" #: lib/Padre/Document.pm:1063 #, perl-format msgid "Unsaved %d" msgstr "Da salvare %d" #: lib/Padre/Wx/Main.pm:5111 msgid "Unsaved File" msgstr "File da salvare" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "OS non supportato: %s" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "Senza titolo" #: lib/Padre/Wx/VCS.pm:253 #: lib/Padre/Wx/VCS.pm:267 #: lib/Padre/Wx/FBP/VCS.pm:189 msgid "Unversioned" msgstr "Senza versione" #: lib/Padre/Wx/Dialog/Preferences.pm:31 msgid "Up" msgstr "Su" #: lib/Padre/Wx/VCS.pm:266 msgid "Updated but unmerged" msgstr "Aggiornato ma merge da effettuare" #: lib/Padre/Wx/FBP/Sync.pm:202 msgid "Upload" msgstr "Caricamento" #: lib/Padre/Wx/Menu/Edit.pm:263 msgid "Upper/Lo&wer Case" msgstr "Maiuscole/&minuscole" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Uppercase characters" msgstr "Caratteri maiuscoli" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Uppercase next character" msgstr "Rendi maiuscolo carattere successivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Uppercase till \\E" msgstr "Maiuscolo fino a \\E" #: lib/Padre/Wx/FBP/Preferences.pm:1346 msgid "Use FTP passive mode" msgstr "Usa modalità FTP passiva" #: lib/Padre/Wx/ActionLibrary.pm:1135 msgid "Use Perl source as filter" msgstr "Usa il sorgente Perl come filtro" #: lib/Padre/Wx/FBP/Preferences.pm:644 msgid "Use X11 middle button paste style" msgstr "Usa per incollare la pressione del pulsante centrale (in stile X11)" #: lib/Padre/Wx/ActionLibrary.pm:1321 msgid "Use a filter to select one or more files" msgstr "Usate un filtro per selezionare un file" #: lib/Padre/Wx/FBP/Preferences.pm:1453 msgid "Use external window for execution" msgstr "Usa una finestra esterna per l'esecuzione" #: lib/Padre/Wx/FBP/Preferences.pm:972 msgid "Use tabs instead of spaces" msgstr "Usa tab invece degli spazi" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "Utente" #: lib/Padre/Wx/ActionLibrary.pm:2322 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "Usa CPAN.pm per installare un pacchetto simil-CPAN aperto localmente" #: lib/Padre/Wx/ActionLibrary.pm:2332 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "Usa pip per scaricare un file tar.gz ed installarlo usando CPAN.pm" #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Valore" #: lib/Padre/Wx/ActionLibrary.pm:1911 msgid "Variable Name" msgstr "Nome variabile" #: lib/Padre/Document/Perl.pm:863 msgid "Variable case change" msgstr "Cambia capitalizzazione variabile" #: lib/Padre/Wx/VCS.pm:126 #: lib/Padre/Wx/FBP/Preferences.pm:438 msgid "Version Control" msgstr "Controllo di versione" #: lib/Padre/Wx/FBP/Preferences.pm:931 msgid "Version Control Tool" msgstr "Strumento controllo di versione" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Vertically &Align Selected" msgstr "&Allinea verticalmente la selezione" #: lib/Padre/Wx/Syntax.pm:77 msgid "Very Fatal Error" msgstr "Errore davvero fatale" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:366 msgid "View" msgstr "Visualizza" #: lib/Padre/Wx/ActionLibrary.pm:2572 msgid "View All &Open Bugs" msgstr "Visualizza tutti i bug &aperti" #: lib/Padre/Wx/ActionLibrary.pm:2573 msgid "View all known and currently unsolved bugs in Padre" msgstr "Mostra tutti i bachi conosciuti e attualmente irrisolti di Padre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Visible characters" msgstr "Caratteri visibili" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Visible characters and spaces" msgstr "Caratteri visibili e spazi" #: lib/Padre/Wx/ActionLibrary.pm:2175 msgid "Visit Debug &Wiki..." msgstr "Visitate il &Wiki del debug" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Visit Perl Websites..." msgstr "Visitate i siti web riguardo Perl" #: lib/Padre/Document.pm:779 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "Il nome file %s visualizzato non corrisponde al nome file interno %s, vuoi interrompere il salvataggio?" #: lib/Padre/Document.pm:260 #: lib/Padre/Wx/Syntax.pm:47 #: lib/Padre/Wx/Main.pm:3118 #: lib/Padre/Wx/Main.pm:3840 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Attenzione" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "Attenzione! Questo cancellerà tutte le modifiche fatte a 'My plug-in' e le sostituirà con il codice predefinito fornito dalla vostra installazione di Padre" #: lib/Padre/Wx/Dialog/Patch.pm:529 #, perl-format msgid "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache Subversion\"" msgstr "Attenzione: trovato SVN v%s, ma richiediamo SVN v%s che ora è denominato \"Apache Subversion\"" #: lib/Padre/Wx/FBP/Expression.pm:96 msgid "Watch" msgstr "Sorveglia" #: lib/Padre/PluginManager.pm:383 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Abbiamo trovato alcuni nuovi plugin.\n" "Per configurarli e abilitarli clicca su\n" "Plugin -> Gestione plugin\n" "\n" "Elenco nuovi plugin:\n" "\n" #: lib/Padre/Wx/ActionLibrary.pm:2076 #: lib/Padre/Wx/ActionLibrary.pm:2086 msgid "We should not need this menu item" msgstr "Non dovremmo aver bisogno di questa voce di menu" #: lib/Padre/Wx/Main.pm:4419 msgid "Web Files" msgstr "File Web" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Qualsiasi" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "When typing in functions allow showing short examples of the function" msgstr "Permette di mostrare un breve esempio di una funzione mentre la si digita" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "Dove hai sentito parlare di Padre?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Whitespace characters" msgstr "Caratteri di spaziatura" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:372 msgid "Window" msgstr "Finestra" #: lib/Padre/Wx/Dialog/WindowList.pm:34 msgid "Window list" msgstr "Elenco finestre" #: lib/Padre/Wx/ActionLibrary.pm:545 msgid "Word count and other statistics of the current document" msgstr "Conteggio parole e altre statistiche del documento" #: lib/Padre/Wx/FBP/Document.pm:156 msgid "Words" msgstr "Parole" #: lib/Padre/Wx/ActionLibrary.pm:1616 msgid "Wrap long lines" msgstr "A capo automatico per le righe lunghe" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Scrittura del file sul server FTP..." #: lib/Padre/Wx/Output.pm:165 #: lib/Padre/Wx/Main.pm:2974 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "La versione di Wx::Perl::ProcessStream è la %s che notoriamente causa problemi. Scarica almeno la 0.20\n" "digitando cpan WX::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "Anno" #: lib/Padre/File/HTTP.pm:162 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "" "State per scrivere un file usando HTTP PUT.\n" "Si tratta di una funzionalità decisamente sperimentale e non supportata dalla maggioranza dei server!" #: lib/Padre/Wx/Editor.pm:1890 msgid "You must select a range of lines" msgstr "Devi selezionare un insieme di righe" #: lib/Padre/Wx/Main.pm:3839 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "C'è ancora un processo in esecuzione. Vuoi arrestarlo e uscire?" #: lib/Padre/MIME.pm:1212 msgid "ZIP Archive" msgstr "Archivio ZIP" #: lib/Padre/Wx/FBP/About.pm:158 #: lib/Padre/Wx/FBP/About.pm:451 msgid "Zeno Gantner" msgstr "Zeno Gantner" #: lib/Padre/Wx/FBP/Debugger.pm:123 msgid "" "c [line|sub]\n" "Continue, optionally inserting a one-time-only breakpoint at the specified line or subroutine." msgstr "" "c [riga|sub]\n" "Continua, inserendo opzionalmente un punto di interruzione temporaneo sulla riga o subroutine specificata." #: lib/Padre/Wx/FBP/About.pm:314 msgid "code4pay" msgstr "code4pay" #: lib/Padre/CPAN.pm:180 msgid "cpanm is unexpectedly not installed" msgstr "Inaspettatamente, cpanm non è installato" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "es." #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:353 msgid "fresh" msgstr "nuovo" #: lib/Padre/Wx/FBP/Debugger.pm:83 msgid "" "n [expr]\n" "Next. Executes over subroutine calls, until the beginning of the next statement. If an expression is supplied that includes function calls, those functions will be executed with stops before each statement." msgstr "" "n [espressione]\n" "Successivo. Esegue senza passare alle chiamate alle subroutine, fino all'inizio dell'istruzione successiva. Se viene fornita un'espressione che include chiamate a funzioni, esse verranno eseguite fermandosi prima di ogni istruzione." #: lib/Padre/Wx/FBP/Debugger.pm:396 msgid "" "o\n" "Display all options.\n" "\n" "o booloption ...\n" "Set each listed Boolean option to the value 1.\n" "\n" "o anyoption? ...\n" "Print out the value of one or more options.\n" "\n" "o option=value ...\n" "Set the value of one or more options. If the value has internal whitespace, it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" to call less with those specific options. You may use either single or double quotes, but if you do, you must escape any embedded instances of same sort of quote you began with, as well as any escaping any escapes that immediately precede that quote but which are not meant to escape the quote itself. In other words, you follow single-quoting rules irrespective of the quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?\"\" .\n" "\n" "For historical reasons, the =value is optional, but defaults to 1 only where it is safe to do so--that is, mostly for Boolean options. It is always better to assign a specific value using = . The option can be abbreviated, but for clarity probably should not be. Several options can be set together. See Configurable Options for a list of these." msgstr "" "o\n" "Mostra tutte le opzioni.\n" "\n" "o opzionebooleana ...\n" "Imposta ogni opzione booleana elencata al valore 1.\n" "\n" "o qualsiasiopzione? ...\n" "Mostra il valore di una o più opzioni.\n" "\n" "o opzione=valore ...\n" "Imposta il valore di una o più opzioni. Se il valore ha spazi interni dovrebbe essere citato. Per esempio, potete impostare o pager=\"less -MQeicsNfr\" per chiamare less con quelle specifiche opzioni. Potete usare sia apici singoli che doppi, ma se lo fate, dovreste usare il carattere di escape per qualsiasi istanza dello stesso tipo di apice con cui avete cominciato, così come per qualsiasi carattere di escape che preceda un apice ma che non sia inteso come escape dell'apice stesso. In altre parole, seguite le regole per gli apici singoli indipendentemente dal tipo di apice; es: o opzione= 'questo non e' male' o opzione =\"Lei disse, \"Non e' così?\"\".\n" "\n" "Per ragioni storiche, =valore è opzionale, ma assume il valore predefinito di 1 solo dove è sicuro farlo-- cioè principalmente per le opzioni booleane. È sempre meglio assegnare un valore preciso usando = . Le opzioni possono essere accorciate ma per chiarezza probabilmente non lo dovrebbero essere. Molte opzioni possono essere impostate insieme. Vedere Opzioni Configurabili per sapere quali." #: lib/Padre/Wx/FBP/Breakpoints.pm:105 msgid "project" msgstr "progetto" #: lib/Padre/Wx/FBP/Debugger.pm:103 msgid "" "r\n" "Continue until the return from the current subroutine. Dump the return value if the PrintRet option is set (default)." msgstr "" "r\n" "Continua finché la subroutine corrente non restituisce il controllo. Mostra il valore restituito se è impostata l'opzione PrintRet (predefinito)." #: lib/Padre/Wx/FBP/Debugger.pm:63 msgid "" "s [expr]\n" "Single step. Executes until the beginning of another statement, descending into subroutine calls. If an expression is supplied that includes function calls, it too will be single-stepped." msgstr "" "s [espressioni]\n" "Avanzamento singolo. Esegue fino all'inizio di un'altra istruzione, entrando nelle subroutine chiamate. Se viene fornita un espressione che include chiamate a funzioni, anch'esse avanzeranno allo stesso modo." #: lib/Padre/Wx/FBP/Breakpoints.pm:110 msgid "show breakpoints in project" msgstr "Mostra punti di interruzione del progetto" #: lib/Padre/Wx/FBP/Debugger.pm:236 msgid "" "t\n" "Toggle trace mode (see also the AutoTrace option)." msgstr "" "t\n" "Abilita/disabilità modalità trace (vedere anche opzione AutoTrace)." #: lib/Padre/Wx/FBP/Debugger.pm:276 msgid "v [line] View window around line." msgstr "v [riga] Mostra la finestra intorno alla riga." #: lib/Padre/Wx/FBP/Debugger.pm:464 msgid "" "w expr\n" "Add a global watch-expression. Whenever a watched global changes the debugger will stop and display the old and new values.\n" "\n" "W expr\n" "Delete watch-expression\n" "W *\n" "Delete all watch-expressions." msgstr "" "w expr\n" "Aggiunge un'espressione di controllo globale. Quandoquest'ultima cambia, il debugger si fermerà e mostrerà il vecchio e il nuovo valore.\n" "\n" "W expr\n" "Elimina le espressioni di controllo\n" "W *\n" "Mostra tutte le espressioni di controllo." #: lib/Padre/Wx/FBP/Debugger.pm:217 msgid "" "working now with some gigery pokery to get around\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" msgstr "" "Lavori in corso per evitare\n" "Errore Intermittente, Non potete eseguire FIRSTKEY sull'hash %~" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "Racchiudi tra grep { }" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "Racchiudi tra map { }" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "Supporto &Live wxPerl" #: lib/Padre/Wx/FBP/Debugger.pm:198 msgid "" "y [level [vars]]\n" "Display all (or some) lexical variables (mnemonic: mY variables) in the current scope or level scopes higher. You can limit the variables that you see with vars which works exactly as it does for the V and X commands. Requires the PadWalker module version 0.08 or higher; will warn if this isn't installed. Output is pretty-printed in the same style as for V and the format is controlled by the same options." msgstr "" "y [livello [variabili]]\n" "Mostra tutte (o alcune) variabili lessicali (dall'inglese: mY variables) nell'ambito corrente. Potete limitare le variabili mostrate con l'argomento 'variabili' che funziona esattamente come per i comandi V e X. Richiede la versione 0.08 o superiore del modulo PadWalker; verrete avvertiti se non è installato. L'output è formattato in modo leggibile nello stesso stile di V, ed è controllato dalle stesse opzioni." #~ msgid "Show Local Variables (y 0)" #~ msgstr "Mostra variabili locali (y 0)" #~ msgid "Username" #~ msgstr "Utente" #~ msgid "Code:" #~ msgstr "Codice:" #, fuzzy #~ msgid "SLOC &Count" #~ msgstr "Conteggio" #~ msgid "Move to other panel" #~ msgstr "Sposta in un altro pannello" #~ msgid "&Update" #~ msgstr "Aggiorna" #~ msgid "Auto-Complete" #~ msgstr "Completamento automatico" #~ msgid "Automatic indentation style detection" #~ msgstr "Individuazione automatica stile di indentazione" #~ msgid "BreakPoints" #~ msgstr "Punti d'interruzione" #~ msgid "Case &sensitive" #~ msgstr "&Considera maiuscole/minuscole" #~ msgid "Characters (including whitespace)" #~ msgstr "Caratteri (spaziatura compresa)" #~ msgid "Check for file updates on disk every (seconds)" #~ msgstr "Verifica aggiornamenti ai file su disco ogni (secondi):" #~ msgid "Close Window on &Hit" #~ msgstr "Chiudi la finestra se trovato" #~ msgid "Content" #~ msgstr "Contenuto" #~ msgid "Copy &All" #~ msgstr "Copia &tutto" #~ msgid "Copy &Selected" #~ msgstr "Copia &selezione" #~ msgid "Could not determine the comment character for %s document type" #~ msgstr "" #~ "Impossibile determinare il carattere di commento per il documento di tipo " #~ "%s" #~ msgid "Created by:" #~ msgstr "Creato da:" #~ msgid "Default line ending" #~ msgstr "Carattere di fine riga predefinito" #~ msgid "Default projects directory" #~ msgstr "Cartella di progetto predefinita" #~ msgid "Document Tools (Right)" #~ msgstr "Strumenti documento (Destra)" #~ msgid "Document type" #~ msgstr "Tipo documento" #~ msgid "File access via FTP" #~ msgstr "Accesso al file mediante FTP" #~ msgid "File access via HTTP" #~ msgstr "Accesso al file mediante HTTP" #~ msgid "Filename" #~ msgstr "Nome file" #~ msgid "Find Results (%s)" #~ msgstr "Risultati della ricerca (%s)" #~ msgid "Find Text:" #~ msgstr "Trova il testo:" #~ msgid "Find and Replace" #~ msgstr "Trova e sostituisci" #~ msgid "Go to &Todo Window" #~ msgstr "Vai alla finestra delle &attività" #~ msgid "Indentation width (in columns)" #~ msgstr "Larghezza dell'indentazione (in colonne)" #~ msgid "Interpreter arguments" #~ msgstr "Argomenti dell'interprete" #~ msgid "Kibibytes (kiB)" #~ msgstr "Kibibyte (kiB)" #~ msgid "Kilobytes (kB)" #~ msgstr "Kilobyte (kB)" #~ msgid "Line" #~ msgstr "Riga" #~ msgid "Line break mode" #~ msgstr "Modalità interruzione riga" #~ msgid "Local/Remote File Access" #~ msgstr "Accesso file locale/remoto" #~ msgid "Methods order" #~ msgstr "Ordine dei metodi" #~ msgid "MyLabel" #~ msgstr "MiaEtichetta" #~ msgid "Non-whitespace characters" #~ msgstr "Caratteri diversi dalla spaziatura" #~ msgid "Open files" #~ msgstr "Apri file" #~ msgid "Perl ctags file" #~ msgstr "File ctags di Perl" #~ msgid "Perl interpreter" #~ msgstr "Interprete Perl" #~ msgid "Project Tools (Left)" #~ msgstr "Strumenti di progetto (sinistra)" #~ msgid "RegExp for TODO panel" #~ msgstr "Espressione regolare per la finestra delle attività" #~ msgid "Regular &Expression" #~ msgstr "&Espressione regolare" #~ msgid "Related editor has been closed" #~ msgstr "L'editor associato è stato chiuso" #~ msgid "Reload all files" #~ msgstr "Ricarica tutti i file" #~ msgid "Reload some" #~ msgstr "Ricarica alcuni" #~ msgid "Reload some files" #~ msgstr "Ricarica alcuni file" #~ msgid "Replace 2..." #~ msgstr "Sostituisci con" #~ msgid "Replace Text:" #~ msgstr "Testo sostitutivo:" #~ msgid "Search again for '%s'" #~ msgstr "Ricerca nuovamente '%s'" #~ msgid "Set the focus to the \"Todo\" window" #~ msgstr "Imposta il focus sulla finestra delle \"attività\"" #~ msgid "Syntax Highlighter" #~ msgstr "Evidenziatore sintassi" #~ msgid "Tab display size (in spaces)" #~ msgstr "Dimensione delle tabulazioni (in spazi)" #~ msgid "" #~ "The directory browser got an undef object and may stop working now. " #~ "Please save your work and restart Padre." #~ msgstr "" #~ "Il browser delle cartelle ha riscontrato un oggetto non definito e " #~ "potrebbe smettere subito di funzionare. Salvate il vostro lavoro e " #~ "riavviate Padre." #~ msgid "To-do" #~ msgstr "Attività" #~ msgid "Toggle MetaCPAN CPAN explorer panel" #~ msgstr "Attiva la finestra esplora CPAN di MetaCPAN" #~ msgid "Use Tabs" #~ msgstr "Usa tabulazioni" #~ msgid "none" #~ msgstr "nessuno" #~ msgid "&Plug-in Manager 2" #~ msgstr "Gestore &plug-in 2" #~ msgid "Cl&ose Window on Hit" #~ msgstr "Chiudi la finestra se tr&ovato" #~ msgid "Did not find any matches." #~ msgstr "Impossibile trovare delle corrispondenze" #~ msgid "Match Case" #~ msgstr "Considera capitalizzazione" #~ msgid "Next" #~ msgstr "Successivo" #~ msgid "No file is open" #~ msgstr "Nessun file aperto" #~ msgid "Plug-in Name" #~ msgstr "Nome Plug-in" #~ msgid "Previ&ous" #~ msgstr "&Precedente" #~ msgid "Replace All" #~ msgstr "Sostituisci tutto" #~ msgid "Stats" #~ msgstr "Statistiche" #~ msgid "Version" #~ msgstr "Versione" #~ msgid "X" #~ msgstr "X" #~ msgid "disabled" #~ msgstr "Disabilitato" #~ msgid "enabled" #~ msgstr "Abilitato" #~ msgid "error" #~ msgstr "errore" #~ msgid "incompatible" #~ msgstr "Incompatibile" #~ msgid "Ahmad Zawawi: Developer" #~ msgstr "Ahmad Zawawi: sviluppatore" #~ msgid "Core Team" #~ msgstr "Team principale" #~ msgid "Could not set breakpoint on file '%s' row '%s'" #~ msgstr "" #~ "Impossibile impostare un punto d'interruzione nel file '%s' alla riga '%" #~ "s' " #~ msgid "Debugger not running" #~ msgstr "Il debugger non è in esecuzione" #~ msgid "Developers" #~ msgstr "Sviluppatori" #~ msgid "" #~ "Display the current value of a variable in the right hand side debugger " #~ "pane" #~ msgstr "" #~ "Mostra il valore corrente di una variabile nel pannello di debug sulla " #~ "destra" #~ msgid "Evaluate Expression..." #~ msgstr "Valuta espressione..." #~ msgid "" #~ "Execute the next statement, enter subroutine if needed. (Start debugger " #~ "if it is not yet running)" #~ msgstr "" #~ "Esegue l'istruzione successiva, entrando nella subroutine se necessario. " #~ "(Avvia il debug se non è ancora in esecuzione)" #~ msgid "" #~ "Execute the next statement. If it is a subroutine call, stop only after " #~ "it returned. (Start debugger if it is not yet running)" #~ msgstr "" #~ "Esegue l'istruzione successiva, se è la chiamata ad una subroutine, si " #~ "ferma solo dopo che restituisce un valore. (Avvia il debug se non è " #~ "ancora in esecuzione)" #~ msgid "Expr" #~ msgstr "Espr" #~ msgid "Expression:" #~ msgstr "Espressione:" #~ msgid "Gabor Szabo: Project Manager" #~ msgstr "Gabor Szabo: responsabile di progetto" #~ msgid "If within a subroutine, run till return is called and then stop." #~ msgstr "" #~ "Se è all'interno di una subroutine, la esegue fino al return e poi si " #~ "ferma" #~ msgid "Jump to Current Execution Line" #~ msgstr "Vai alla riga attualmente in esecuzione" #~ msgid "List All Breakpoints" #~ msgstr "Elenca tutti i punti d'interruzione" #~ msgid "List all the breakpoints on the console" #~ msgstr "Elenca tutti i punti d'interruzione nella console" #~ msgid "Padre:-" #~ msgstr "Padre:-" #~ msgid "Remove Breakpoint" #~ msgstr "Elimina il punto d'interruzione" #~ msgid "Remove the breakpoint at the current location of the cursor" #~ msgstr "" #~ "Rimuovi il punto d'interruzione nella posizione corrente del cursore" #~ msgid "Run till Breakpoint (&c)" #~ msgstr "Esegui fino al punto d'interruzione (&c)" #~ msgid "Run to Cursor" #~ msgstr "Esegui fino al cursore" #, fuzzy #~ msgid "Set Breakpoints (&b)" #~ msgstr "Imposta il punto d'interruzione (&b)" #~ msgid "Set a breakpoint at the line where to cursor is and run till there" #~ msgstr "" #~ "Imposta un punto di interruzione sulla riga dove si trova il cursore, ed " #~ "esegui fino a quel punto" #~ msgid "" #~ "Set focus to the line where the current statement is in the debugging " #~ "process" #~ msgstr "Sposta il focus sull'istruzione corrente del processo di dbug" #~ msgid "Show Stack Trace (&t)" #~ msgstr "Mostra il contenuto dello stack (&t)" #~ msgid "Show Value Now (&x)" #~ msgstr "Mostra valore corrente (&x)" #~ msgid "Show the value of a variable now in a pop-up window." #~ msgstr "Mostra il valore corrente di una variabile in una finestra pop-up." #~ msgid "Start running and/or continue running till next breakpoint or watch" #~ msgstr "" #~ "Avvia e/o continua l'esecuzione fino al punto di interruzione o " #~ "l'espressione di controllo successiva" #~ msgid "Step In (&s)" #~ msgstr "Esegui (&s)" #~ msgid "Step Out (&r)" #~ msgstr "Esci (&r)" #~ msgid "Step Over (&n)" #~ msgstr "Salta (&n)" #~ msgid "" #~ "The debugger is not running.\n" #~ "You can start the debugger using one of the commands 'Step In', 'Step " #~ "Over', or 'Run till Breakpoint' in the Debug menu." #~ msgstr "" #~ "Il debugger non è in esecuzione\n" #~ "Potete avviare il debugger usando uno dei seguenti comandi nel menu " #~ "Debug: 'Esegui', 'Salta', 'Esegui fino al punto d'interruzione'." #~ msgid "Type in any expression and evaluate it in the debugged process" #~ msgstr "" #~ "Digita una qualsiasi espressione e valutala nel processo sottoposto a " #~ "debug" #~ msgid "Variable" #~ msgstr "Variabile" #~ msgid "" #~ "When in a subroutine call show all the calls since the main of the program" #~ msgstr "" #~ "Quando ci si trova in una subroutine, mostra tutte le chiamate dal " #~ "programma principale" #~ msgid "&Install CPAN Module" #~ msgstr "&Installa modulo CPAN" #~ msgid "Fast but might be out of date" #~ msgstr "Veloce, ma potrebbe essere obsoleto" #~ msgid "Filter" #~ msgstr "Filtro" #~ msgid "" #~ "Hopefully faster than the PPI Traditional. Big file will fall back to " #~ "Scintilla highlighter." #~ msgstr "" #~ "Forse più veloce del tradizionale PPI. I file di grandi dimensioni " #~ "ricorreranno all'evidenziatore di Scintilla." #~ msgid "Install a Perl module from CPAN" #~ msgstr "Installa un modulo Perl da CPAN" #~ msgid "MIME type did not have a class entry when %s(%s) was called" #~ msgstr "Il tipo Mime non aveva una classe quando %s (%s) è stato chiamato" #~ msgid "MIME type is not supported when %s(%s) was called" #~ msgstr "Il tipo Mime non è supportato quando %s (%s) è stato chiamato" #~ msgid "MIME type was not supported when %s(%s) was called" #~ msgstr "Il tipo Mime non era supportato quando %s (%s) è stato chiamato" #~ msgid "No module mime_type='%s' filename='%s'" #~ msgstr "Nessun modulo con tipo mime='%s' nome file='%s'" #~ msgid "Replace With" #~ msgstr "Sostituisci con" #~ msgid "Search &Term" #~ msgstr "&Termine da ricercare" #~ msgid "Set Bookmark" #~ msgstr "Imposta segnalibro" #~ msgid "Slow but accurate and we have full control so bugs can be fixed" #~ msgstr "" #~ "Lento ma accurato e abbiamo controllo completo così i bug possono essere " #~ "eliminati" #~ msgid "no highlighter for mime-type '%s' using stc" #~ msgstr "Nessun evidenziatore per il tipo mime '%s' usando stc" #~ msgid "%s has no constructor" #~ msgstr "%s non ha costruttore" #~ msgid "&Back" #~ msgstr "&Indietro" #~ msgid "&Go to previous position" #~ msgstr "&Vai alla posizione precedente" #~ msgid "&Hide Find in Files" #~ msgstr "&Nascondi Trova nei file" #~ msgid "&Key Bindings" #~ msgstr "&Scorciatoie da tastiera" #~ msgid "&Last Visited File" #~ msgstr "&Ultimo file visualizzato" #~ msgid "&Oldest Visited File" #~ msgstr "File più &vecchio visualizzato" #~ msgid "&Right Click" #~ msgstr "&Menù contestuale" #~ msgid "&Show previous positions..." #~ msgstr "&Mostra le posizioni precedenti..." #~ msgid "&Wizard Selector" #~ msgstr "Selettore &wizard" #~ msgid "About Padre" #~ msgstr "Informazioni su Padre" #~ msgid "Advanced..." #~ msgstr "Avanzate..." #~ msgid "Apply Diff to &File" #~ msgstr "Applica differenze al &file" #~ msgid "Apply Diff to &Project" #~ msgstr "Applica differenze al &progetto" #~ msgid "Apply a patch file to the current document" #~ msgstr "Applica un file di patch al documento corrente" #~ msgid "Apply a patch file to the current project" #~ msgstr "Applica un file di patch al progetto corrente" #~ msgid "Blue butterfly on a green leaf" #~ msgstr "Farfalla blu su una foglia verde" #~ msgid "Cannot diff if file was never saved" #~ msgstr "Impossibile eseguire diff se il file non è mai stato salvato" #~ msgid "" #~ "Compare the file in the editor to that on the disk and show the diff in " #~ "the output window" #~ msgstr "" #~ "Confronta il file nell'editor con quello su disco e mostra le differenze " #~ "nella finestra di output" #~ msgid "Creates a Padre Plugin" #~ msgstr "Crea un Plugin per Padre" #~ msgid "Creates a Padre document" #~ msgstr "Crea un documento Padre" #~ msgid "Creates a Perl 5 module or script" #~ msgstr "Crea un modulo o un script Perl 5" #~ msgid "Dark" #~ msgstr "Scuro" #~ msgid "Di&ff Tools" #~ msgstr "Strumenti per le di&fferenze" #~ msgid "Diff to &Saved Version" #~ msgstr "Differenze rispetto alla versione &salvata" #~ msgid "Diff tool" #~ msgstr "Strumento per le differenze" #~ msgid "Error while loading %s" #~ msgstr "Errore caricando %s" #~ msgid "Evening" #~ msgstr "Sera" #~ msgid "External Tools" #~ msgstr "Strumenti esterno" #~ msgid "Failed to find template file '%s'" #~ msgstr "Impossibile trovare il file template '%s'" #~ msgid "Find &Previous" #~ msgstr "Trova &precedente" #~ msgid "" #~ "Find next matching text using a toolbar-like dialog at the bottom of the " #~ "editor" #~ msgstr "" #~ "Trova la corrispondenza successiva usando la barra degli strumenti al " #~ "fondo dell'editor" #~ msgid "" #~ "Find previous matching text using a toolbar-like dialog at the bottom of " #~ "the editor" #~ msgstr "" #~ "Trova la corrispondenza precedente usando la barra degli strumenti al " #~ "fondo dell'editor" #~ msgid "Found %d issue(s)" #~ msgstr "Trovata(e) %d occorrenza(e)" #~ msgid "Hide the list of matches for a Find in Files search" #~ msgstr "Nasconde la lista di corrispondenze per la ricerca 'Trova nei file'" #~ msgid "Imitate clicking on the right mouse button" #~ msgstr "Imita il click del tasto destro del mouse" #~ msgid "Jump between the two last visited files back and forth" #~ msgstr "Passa alternativamente tra gli ultimi due file visualizzati" #~ msgid "Jump to the last position saved in memory" #~ msgstr "Passa all'ultima posizione salvata in memoria" #~ msgid "Last Visited File" #~ msgstr "Ultimo file visualizzato" #~ msgid "Module" #~ msgstr "Modulo" #~ msgid "Night" #~ msgstr "Notte" #~ msgid "No errors or warnings found." #~ msgstr "Nessun errore o avvertimento riscontrato" #~ msgid "Notepad++" #~ msgstr "Notepad++" #~ msgid "Opens the Padre document wizard" #~ msgstr "Apre il wizard per i documenti Padre" #~ msgid "Opens the Padre plugin wizard" #~ msgstr "Apre il wizard per i plugin di Padre" #~ msgid "Opens the Perl 5 module wizard" #~ msgstr "Apre il wizard per un modulo Perl 5" #~ msgid "Padre Document Wizard" #~ msgstr "Wizard per documento Padre" #~ msgid "Padre Plugin Wizard" #~ msgstr "Wizard per i plugin di Padre" #~ msgid "Perl 5" #~ msgstr "Perl 5" #~ msgid "Perl 5 Module Wizard" #~ msgstr "Wizard per un modulo Perl 5" #~ msgid "Plugin" #~ msgstr "Plugin" #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "Imposta il focus sulla scheda visitata per prima" #~ msgid "Select a Wizard" #~ msgstr "Scegli un wizard" #~ msgid "Selects and opens a wizard" #~ msgstr "Sceglie ed apre un wizard" #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "" #~ "Mostra la finestra di dialogo per configurare le scorciatoie da tastiera " #~ "di Padre" #~ msgid "Show the list of positions recently visited" #~ msgstr "Mostra la lista delle posizioni visitate di recente" #~ msgid "Solarize" #~ msgstr "Solarize" #~ msgid "Switch highlighting colours" #~ msgstr "Modifica dei colori di evidenziazione" #~ msgid "" #~ "Switch to edit the file that was previously edited (can switch back and " #~ "forth)" #~ msgstr "" #~ "Spostamento sul file che veniva modificato precedentemente (lo " #~ "spostamento va avanti e indietro)" #~ msgid "System Info" #~ msgstr "Informazioni di sistema" #~ msgid "The Padre Development Team" #~ msgstr "Il gruppo di sviluppo di Padre" #~ msgid "The Padre Translation Team" #~ msgstr "Il gruppo di traduzione di Padre" #~ msgid "There are no differences\n" #~ msgstr "Non ci sono differenze\n" #~ msgid "Ultraedit" #~ msgstr "Ultraedit" #~ msgid "Uptime:" #~ msgstr "Uptime:" #~ msgid "Use panel order for Ctrl-Tab (not usage history)" #~ msgstr "" #~ "Usa l'ordine delle schede per CTRL-TAB (non la cronologia dell'utilizzo)" #~ msgid "Visit the PerlM&onks" #~ msgstr "Visita PerlM&onks" #~ msgid "Wizard Selector" #~ msgstr "Selettore wizard" #~ msgid "splash image is based on work by" #~ msgstr "Immagine di avvio basata sul lavoro di" #~ msgid "&Comment Selected Lines" #~ msgstr "&Commenta le righe selezionate" #~ msgid "&Uncomment Selected Lines" #~ msgstr "&Rimuove commento dalle righe selezionate" #~ msgid "Case &insensitive" #~ msgstr "Ignora maiuscole/minuscole" #~ msgid "Find Next" #~ msgstr "Trova successivo" #~ msgid "Rename Variable" #~ msgstr "Rinomina variabile" #~ msgid "&About..." #~ msgstr "&Informazioni su..." #~ msgid "" #~ "Enable or disable the newer Wx::Scintilla source code editing component. " #~ msgstr "" #~ "Abilita o disabilita il più recente componente Wx::Scintilla per " #~ "l'editing del codice sorgente." #~ msgid "This requires an installed Wx::Scintilla and a Padre restart" #~ msgstr "Richiesta l'installazione di Wx::Scintilla e il riavvio di Padre" #~ msgid "&Insert" #~ msgstr "&Inserisci" #~ msgid "" #~ "An error has occured while generating '%s':\n" #~ "%s" #~ msgstr "" #~ "Si è verificato un errore generando '%s':\n" #~ "%s" #~ msgid "Artistic License 1.0" #~ msgstr "Artistic License 1.0" #~ msgid "Artistic License 2.0" #~ msgstr "Artistic License 2.0" #~ msgid "Builder:" #~ msgstr "Builder:" #~ msgid "Category:" #~ msgstr "Categoria:" #~ msgid "Class:" #~ msgstr "Classe:" #, fuzzy #~ msgid "Copy of current file" #~ msgstr "Controlla il file corrente" #~ msgid "Dump" #~ msgstr "Dump" #~ msgid "Dump %INC and @INC" #~ msgstr "Dump di %INC e di @INC" #~ msgid "Dump Current Document" #~ msgstr "Dump del documento corrente" #~ msgid "Dump Current PPI Tree" #~ msgstr "Dump dell'albero PPI corrente" #~ msgid "Dump Display Geometry" #~ msgstr "Dump geometria della visualizzazione" #~ msgid "Dump Expression..." #~ msgstr "Dump dell'espressione..." #~ msgid "Dump Task Manager" #~ msgstr "Dump del task manager" #~ msgid "Dump Top IDE Object" #~ msgstr "Dump dell'oggetto IDE principale" #~ msgid "Edit/Add Snippets" #~ msgstr "Modifica/aggiungi frammenti" #~ msgid "Email Address:" #~ msgstr "Indirizzo email:" #~ msgid "Field %s was missing. Module not created." #~ msgstr "Il campo %s è mancante. Modulo non creato." #~ msgid "GPL 2 or later" #~ msgstr "GPL 2 o successiva" #~ msgid "LGPL 2.1 or later" #~ msgstr "LGPL 2.1 o successiva" #~ msgid "License:" #~ msgstr "Licenza:" #~ msgid "MIT License" #~ msgstr "MIT License" #~ msgid "Module Start" #~ msgstr "Crea modulo " #~ msgid "Mozilla Public License" #~ msgstr "Mozilla Public License" #~ msgid "Name:" #~ msgstr "Nome:" #~ msgid "No Perl 5 file is open" #~ msgstr "Nessun file Perl 5 aperto" #~ msgid "Open Source" #~ msgstr "Apri sorgente" #, fuzzy #~ msgid "Open a document and copy the content of the current tab" #~ msgstr "Conteggio parole e altre statistiche del documento" #, fuzzy #~ msgid "Other Open Source" #~ msgstr "Apri sorgente" #, fuzzy #~ msgid "Other Unrestricted" #~ msgstr "senza restrizioni" #~ msgid "Parent Directory:" #~ msgstr "Cartella superiore:" #, fuzzy #~ msgid "Perl Distribution (New)..." #~ msgstr "Distribuzione Perl..." #~ msgid "Perl licensing terms" #~ msgstr "Termini di licenza Perl" #~ msgid "Pick parent directory" #~ msgstr "Scegli cartella superiore" #~ msgid "Proprietary/Restrictive" #~ msgstr "Proprietaria/restrittiva" #~ msgid "Revised BSD License" #~ msgstr "Revised BSD License" #~ msgid "Search Directory:" #~ msgstr "Cartella in cui cercare:" #~ msgid "Search in Types:" #~ msgstr "Ricerca nei tipi:" #, fuzzy #~ msgid "Setup a skeleton Perl distribution" #~ msgstr "Imposta lo scheletro di una distribuzione Perl" #~ msgid "Setup a skeleton Perl module distribution" #~ msgstr "Imposta lo scheletro di una distribuzione Perl" #~ msgid "Snippets" #~ msgstr "Frammenti" #~ msgid "Snippit:" #~ msgstr "Frammento:" #~ msgid "Special Value:" #~ msgstr "Valore speciale:" #~ msgid "The same as Perl itself" #~ msgstr "Lo stesso di Perl" #~ msgid "Use rege&x" #~ msgstr "Usa espressioni regolari" #~ msgid "Wizard Selector..." #~ msgstr "Selettore wizard..." #~ msgid "restrictive" #~ msgstr "restrittiva" #~ msgid "Mime type already had a class '%s' when %s(%s) was called" #~ msgstr "" #~ "Il tipo Mime aveva già una classe '%s' quando %s (%s) è stato chiamato" #~ msgid "" #~ "Add another closing bracket if there is already one (and the " #~ "'Autocomplete brackets' above is enabled)" #~ msgstr "" #~ "Aggiunge un'altra parentesi chiusa se ce n'è già una (e la funzione " #~ "'completa parentesi automaticamente' è abilitata)" #~ msgid "Any changes to these options require a restart:" #~ msgstr "Una qualsiasi modifica a queste opzioni richiede un riavvio:" #~ msgid "Autocomplete new subroutines in scripts" #~ msgstr "Completa automaticamente le nuove subroutine negli script" #~ msgid "Autoindent:" #~ msgstr "Indentazione automatica:" #~ msgid "Browse..." #~ msgstr "Sfoglia..." #~ msgid "Change font size" #~ msgstr "Modifica dimensione carattere" #~ msgid "Check for file updates on disk every (seconds):" #~ msgstr "Verifica aggiornamenti ai file su disco ogni (secondi):" #~ msgid "Choose the default projects directory" #~ msgstr "Seleziona la cartella di progetto predefinita" #~ msgid "Colored text in output window (ANSI)" #~ msgstr "Testo colorato nella finestra di output (ANSI)" #~ msgid "Content type:" #~ msgstr "Tipo di contenuto:" #~ msgid "Current Document: %s" #~ msgstr "Documento corrente: %s" #~ msgid "Cursor Blink Rate (milliseconds - 0 = blink off; 500 = default):" #~ msgstr "" #~ "Frequenza di intermittenza del cursore (millisecondi - 0 = disattivata; " #~ "500 = predefinita):" #~ msgid "Diff tool:" #~ msgstr "Strumento per le differenze:" #~ msgid "Document name:" #~ msgstr "Nome documento:" #~ msgid "Edit the user preferences" #~ msgstr "Modifica le preferenze dell'utente" #~ msgid "Editor Current Line Background Colour:" #~ msgstr "Colore di sfondo della riga corrente:" #~ msgid "Editor Font:" #~ msgstr "Font dell'editor:" #~ msgid "Enable bookmarks" #~ msgstr "Abilita segnalibri:" #~ msgid "Enable session manager" #~ msgstr "Abilita gestione delle sessioni" #~ msgid "Enable?" #~ msgstr "Abilita?" #~ msgid "File type:" #~ msgstr "Tipo file:" #~ msgid "Find All" #~ msgstr "Trova tutti" #~ msgid "Guess" #~ msgstr "Determina" #~ msgid "Guess from current document:" #~ msgstr "Determina dal documento corrente:" #~ msgid "Highlighter" #~ msgstr "Evidenziatore" #~ msgid "Highlighter:" #~ msgstr "Evidenziatore sintassi:" #~ msgid "Indentation width (in columns):" #~ msgstr "Larghezza dell'indentazione (in colonne):" #~ msgid "Interpreter arguments:" #~ msgstr "Argomenti dell'interprete:" #~ msgid "Max. number of suggestions:" #~ msgstr "Numero massimo di suggerimenti:" #~ msgid "Methods order:" #~ msgstr "Ordine dei metodi:" #~ msgid "Min. chars for autocompletion:" #~ msgstr "Numero minimo di caratteri per il completamento automatico:" #~ msgid "Min. length of suggestions:" #~ msgstr "Lunghezza minima dei suggerimenti:" #~ msgid "N/A" #~ msgstr "n.d." #~ msgid "No Document" #~ msgstr "Nessun documento" #~ msgid "Perl Auto Complete" #~ msgstr "Completamento automatico Perl" #~ msgid "Perl interpreter:" #~ msgstr "Interprete Perl:" #~ msgid "Preferences 2.0" #~ msgstr "Preferenze 2.0" #~ msgid "Preferred language for error diagnostics:" #~ msgstr "Linguaggio preferito per la diagnostica degli errori" #~ msgid "RegExp for TODO-panel:" #~ msgstr "Espressione regolare per la finestra delle attività:" #~ msgid "Run Parameters" #~ msgstr "Parametri di esecuzione" #~ msgid "Save settings" #~ msgstr "Salvataggio impostazioni" #~ msgid "Script arguments:" #~ msgstr "Argomenti script:" #~ msgid "Search Backwards" #~ msgstr "Cerca in precedenza" #~ msgid "Settings Demo" #~ msgstr "Impostazioni demo" #~ msgid "Show right margin at column:" #~ msgstr "Mostra il margine destro alla colonna:" #~ msgid "Style:" #~ msgstr "Stile:" #~ msgid "Tab display size (in spaces):" #~ msgstr "Dimensione delle tabulazioni (in spazi):" #~ msgid "Timeout (in seconds):" #~ msgstr "Timeout (in secondi)" #~ msgid "Unsaved" #~ msgstr "Da salvare" #~ msgid "Use Splash Screen" #~ msgstr "Usare la schermata di avvio" #~ msgid "alphabetical" #~ msgstr "alfabetico" #~ msgid "alphabetical_private_last" #~ msgstr "ultimo_privato_alfabetico" #~ msgid "application/x-perl" #~ msgstr "application/x-perl" #~ msgid "deep" #~ msgstr "profondo" #~ msgid "" #~ "i.e.\n" #~ "\tinclude directory: -I\n" #~ "\tenable tainting checks: -T\n" #~ "\tenable many useful warnings: -w\n" #~ "\tenable all warnings: -W\n" #~ "\tdisable all warnings: -X\n" #~ msgstr "" #~ "es.\n" #~ "\tcartella di inclusione: -l\n" #~ "\tabilita controlli: -T\n" #~ "\tabilita molti warning utili: -w\n" #~ "\tabilita tutti i warning: -W\n" #~ "\tdisabilita tutti i warning: -X\n" #~ msgid "last" #~ msgstr "ultimo" #~ msgid "new" #~ msgstr "nuovo" #~ msgid "no" #~ msgstr "no" #~ msgid "nothing" #~ msgstr "nulla" #~ msgid "original" #~ msgstr "originale" #~ msgid "same_level" #~ msgstr "stesso_livello" #~ msgid "session" #~ msgstr "sessione" #~ msgid "TAB" #~ msgstr "TAB" #~ msgid "Current file's basename" #~ msgstr "Nome base del file corrente" #~ msgid "Current file's dirname" #~ msgstr "Nome directory del file corrente" #~ msgid "Current filename" #~ msgstr "Nome file corrente" #~ msgid "Current filename relative to project" #~ msgstr "Nome del file corrente relativo al progetto" #~ msgid "Indication if current file was modified" #~ msgstr "Indicazione che il file corrente è stato modificato" #~ msgid "Name of the current subroutine" #~ msgstr "Nome della subroutine corrente" #~ msgid "Padre version" #~ msgstr "Versione Padre" #~ msgid "Project name" #~ msgstr "Nome progetto" #~ msgid "Statusbar:" #~ msgstr "Barra di stato:" #~ msgid "Window title:" #~ msgstr "Titolo finestra:" #~ msgid "" #~ "User can configure what Padre will show in the statusbar of the window." #~ msgstr "L'utente può configurare cosa mostrerà Padre nella barra di stato." #~ msgid "User can configure what Padre will show in the title of the window." #~ msgstr "" #~ "L'utente può configurare cosa mostrerà Padre nel titolo della finestra" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "La cartella di progetto %s non esiste (più). Si tratta di una situazione " #~ "irreversibile che causerà problemi, chiudi o salva con nome questo file a " #~ "meno che non sappiate cosa state facendo." #~ msgid "Automatic Bracket Completion" #~ msgstr "Completamento automatico delle parentesi" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "Quando si digita { inserisce automaticamente }" #~ msgid "" #~ "You have tried to save a file without a suitable file extension based on " #~ "the current document's mimetype.\n" #~ "\n" #~ "Based on the current mimetype, suitable file extensions are:\n" #~ "\n" #~ "%s.\n" #~ "\n" #~ "\n" #~ "Do you wish to continue?" #~ msgstr "" #~ "Avete cercato di salvare un file senza un'estensione appropriata rispetto " #~ "al tipo mime del documento corrente.\n" #~ "\n" #~ "In base al tipo mime corrente, le estensioni appropriate sarebbero:\n" #~ "\n" #~ "%s.\n" #~ "\n" #~ "\n" #~ "Volete continuare?" #~ msgid "File extension missing warning..." #~ msgstr "Avvertimento estensione file mancante..." #~ msgid "Find &Text:" #~ msgstr "Trova il &testo:" #~ msgid "Not a valid search" #~ msgstr "Ricerca non valida" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Simula crash di un processo di background" #~ msgid "Quick Find" #~ msgstr "Ricerca rapida" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "La ricerca incrementale ha superato il fondo della finestra" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "" #~ "Mostra l'elenco degli errori riscontrati durante l'esecuzione dello script" #~ msgid "No diagnostics available for this error." #~ msgstr "Diagnostica non disponibile per questo errore." #~ msgid "Diagnostics" #~ msgstr "Diagnostica" #~ msgid "Errors" #~ msgstr "Errori" #~ msgid "Info" #~ msgstr "Informazioni" #~ msgid "Wizard Selector (WARNING: Experimental)" #~ msgstr "Selettore wizard (ATTENZIONE: sperimentale)" #~ msgid "File Wizard..." #~ msgstr "File Wizard..." #~ msgid "Create a new document from the file wizard" #~ msgstr "Crea un nuovo documento dal file wizard" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "" #~ "Mostra una finestra per esplorare la struttura della directory del " #~ "progetto corrente" #~ msgid "Search in Files/Types:" #~ msgstr "Ricerca nei file/tipi:" #~ msgid "Case &Insensitive" #~ msgstr "&Ignora maiuscole/minuscole" #~ msgid "I&gnore hidden subdirectories" #~ msgstr "&Ignora sottocartelle nascoste" #~ msgid "Show only files that don't match" #~ msgstr "Mostra solo i file che non corrispondono" #~ msgid "Found %d files and %d matches\n" #~ msgstr "Trovati %d file e %d corrispondenze\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "Impossibile trovare '%s' nel file '%s'\n" #~ msgid "???" #~ msgstr "???" #~ msgid "FindInFiles" #~ msgstr "TrovaNeiFile" #~ msgid "..." #~ msgstr "..." #~ msgid "Pick &directory" #~ msgstr "Scegli &cartella" #~ msgid "Key binding name" #~ msgstr "Nome scorciatoia" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "Impossibile aprire %s perchè supera il limite arbitrario delle dimensioni " #~ "di un file in Padre, che attualmente è %s" #~ msgid "Line No" #~ msgstr "Riga n." #~ msgid "%s worker threads are running.\n" #~ msgstr "%s thread attivi in esecuzione.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "Attualmente non c'è nessun processo in esecuzione in background:\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "I seguenti processi sono in esecuzione in background:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s di tipo '%s':\n" #~ " (nei thread %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "Inoltre, ci sono %s processi bloccati.\n" #~ msgid "Term:" #~ msgstr "Termine:" #~ msgid "Dir:" #~ msgstr "Cartella:" #~ msgid "Choose a directory" #~ msgstr "Seleziona cartella" #~ msgid "Please choose a different name." #~ msgstr "Scegliere un nome file differente." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "In questa cartella esiste già un file con lo stesso nome" #~ msgid "Move here" #~ msgstr "Sposta qui" #~ msgid "Copy here" #~ msgstr "Copia qui" #~ msgid "folder" #~ msgstr "cartella" #~ msgid "Rename / Move" #~ msgstr "Rinomina / sposta" #~ msgid "Move to trash" #~ msgstr "Sposta nel cestino" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "Sei sicuro di voler eliminare questo elemento?" #~ msgid "Show hidden files" #~ msgstr "Mostra file nascosti" #~ msgid "Skip hidden files" #~ msgstr "Ignora i file nascosti" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "Ignora le cartelle CVS/.svn/.git/blib" #~ msgid "Tree listing" #~ msgstr "Elenco ad albero" #~ msgid "Change listing mode view" #~ msgstr "Modifica la modalità di visualizzazione dell'elenco" #~ msgid "Switch menus to %s" #~ msgstr "Modifica i menù in %s" #~ msgid "Convert EOL" #~ msgstr "Converti fine riga" #~ msgid "GoTo Bookmark" #~ msgstr "Vai al segnalibro" #~ msgid "Finished Searching" #~ msgstr "Ricerca terminata" #~ msgid "Open In File Browser" #~ msgstr "Apri in esplorazione file" #~ msgid "'%s' does not look like a variable" #~ msgstr "'%s' non sembra una variabile" #~ msgid "Error List" #~ msgstr "Elenco errori" #~ msgid "Lexically Rename Variable" #~ msgstr "Rinomina lessicalmente la variabile" #~ msgid "Norwegian (Norway)" #~ msgstr "Norvegese (Norvegia)" #~ msgid "" #~ "Ask the user for a line number or a character position and jump there" #~ msgstr "" #~ "Chiede all'utente un numero di riga o la posizione di un carattere e si " #~ "sposta lì" #~ msgid "Insert Special Value" #~ msgstr "Inserisci valore speciale" #~ msgid "Insert From File..." #~ msgstr "Inserisci da file..." #~ msgid "Show as hexa" #~ msgstr "Mostra come esadecimale" #~ msgid "" #~ "Show the ASCII values of the selected text in hexa in the output window" #~ msgstr "" #~ "Mostra il valori ASCII del testo selezionato nella finestra di output in " #~ "esadecimale" #~ msgid "New Subroutine Name" #~ msgstr "Nome della nuova subroutine" #~ msgid "Show the about-Padre information" #~ msgstr "Mostra le informazioni riguardo Padre" #~ msgid "Save &As" #~ msgstr "Salva &con nome" #~ msgid "&Print" #~ msgstr "Stam&pa" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Lines: %d" #~ msgstr "Righe: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Caratteri esclusi gli spazi: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Caratteri compresi gli spazi: %d" #~ msgid "Size on disk: %s" #~ msgstr "Dimensione su disco: %s" #~ msgid "Skip VCS files" #~ msgstr "Ignora i file VCS" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "%s apparentemente creato. Vuoi aprirlo adesso?" #~ msgid "Timeout:" #~ msgstr "Tempo massimo:" #~ msgid "Close..." #~ msgstr "Chiudi..." #~ msgid "Reload..." #~ msgstr "Ricarica..." #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "" #~ "Il file è stato eliminato dal disco, vuoi RIPULIRE la finestra " #~ "dell'editor?" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "File su disco modificato dall'ultimo salvataggio. Ricaricarlo?" #~ msgid "&Is it a line number or a position?" #~ msgstr "Si tratta di un numero di riga o di una posizione?" #~ msgid "Pl&ugins" #~ msgstr "Pl&ugins" #~ msgid "Refac&tor" #~ msgstr "Refac&tor" #~ msgid "Regex editor" #~ msgstr "Editor espressioni regolari" #~ msgid "Close some Files" #~ msgstr "Chiudi alcuni file" #~ msgid "(running from SVN checkout)" #~ msgstr "(In esecuzione dal checkout SVN)" #~ msgid "Workspace View" #~ msgstr "Visualizza Workspace" #~ msgid "Subs" #~ msgstr "Sub" #~ msgid "L:" #~ msgstr "R:" #~ msgid "Ch:" #~ msgstr "Car:" #~ msgid "Autocompletions error" #~ msgstr "Errore di completamento automatico" #~ msgid "Self error" #~ msgstr "Self error" #~ msgid "Words: %d" #~ msgstr "Parole: %d" #~ msgid "Chars without spaces: %d" #~ msgstr "Caratteri esclusi gli spazi: %d" #~ msgid "Failed to enable plugin '%s': %s" #~ msgstr "Impossibile abilitare il plugin '%s': %s" #~ msgid "Failed to disable plugin '%s': %s" #~ msgstr "Impossibile disabilitare il plugin '%s': %s" #~ msgid "" #~ "We found several new plugins.\n" #~ "In order to configure and enable them go to\n" #~ "Plugins -> Plugin Manager\n" #~ "\n" #~ "List of new plugins:\n" #~ "\n" #~ msgstr "" #~ "Abbiamo trovato alcuni nuovi plugin.\n" #~ "Per configurarli e abilitarli clicca su\n" #~ "Plugin -> Gestione plugin\n" #~ "\n" #~ "Elenco nuovi plugin:\n" #~ "\n" #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "Plugin:%s - errore nel caricamento del modulo: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "Plugin:%s Non compatibile con l'API Padre::Plugin. Deve essere una classe " #~ "derivata da Padre::Plugin" #~ msgid "Plugin:%s - Could not instantiate plugin object" #~ msgstr "Plugin:%s - Impossibile istanziare l'oggetto plugin" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "Plugin:%s - impossibile istanziare l'oggetto plugin: il costruttore non " #~ "restituisce un oggetto di tipo Padre::Plugin" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "Plugin:%s - menu non presenti" #~ msgid "Error when calling menu for plugin" #~ msgstr "Errore richiamando il menù dei plugin" #~ msgid "" #~ "Failed to load the plugin '%s'\n" #~ "%s" #~ msgstr "" #~ "Errore nel Caricamento del plugin '%s'\n" #~ "%s" #~ msgid "Plugin must have '%s' as base directory" #~ msgstr "Il Plugin deve avere '%s' come cartella base" #~ msgid "Not implemented yet" #~ msgstr "Non implementato" #~ msgid "Not yet available" #~ msgstr "Non ancora disponibile" #~ msgid "Select Project" #~ msgstr "Seleziona progetto" #~ msgid "Select Project Name or type in new one" #~ msgstr "Seleziona nome progetto, o digitane un altro" #~ msgid "Select Project Directory" #~ msgstr "Seleziona cartella di progetto" #~ msgid "Line number between (1-%s):" #~ msgstr "Numero di righa tra (1-%s)" #~ msgid "Go to line number" #~ msgstr "Vai alla riga numero:" #~ msgid "Save File" #~ msgstr "Salva file" #~ msgid "Undo" #~ msgstr "Annulla" #~ msgid "Redo" #~ msgstr "Ripristina" #~ msgid "Paste" #~ msgstr "Incolla" #~ msgid "Toggle Comments" #~ msgstr "Imposta/rimuovi commento" #~ msgid "Document Stats" #~ msgstr "Statistiche documento" #~ msgid "E&xperimental" #~ msgstr "&Sperimentale" #~ msgid "&Close\tCtrl+W" #~ msgstr "&Chiudi\tCtrl-W" #~ msgid "&Open\tCtrl+O" #~ msgstr "&Apri\tCtrl-O" #~ msgid "E&xit\tCtrl+X" #~ msgstr "&Esci\tCtrl-X" #~ msgid "Select all\tCtrl-A" #~ msgstr "Seleziona tutto\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Copia\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "&Taglia\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "&Incolla\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "Imposta/rimuovi commento\tCtrl-Shift-C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "&Commenta le righe selezionate\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "&Rimuovi commento dalle righe selezionate\tCtrl-Shift-M" #~ msgid "&Split window" #~ msgstr "&Dividi finestra" #~ msgid "Mark selection start\tCtrl-[" #~ msgstr "Indica l'inizio della selezione\tCtrl-[" #~ msgid "Mark selection end\tCtrl-]" #~ msgstr "Indica la fine della selezione\tCtrl-]" #~ msgid "&Goto\tCtrl-G" #~ msgstr "Vai alla ri&ga\tCtrl-G" #~ msgid "&AutoComp\tCtrl-P" #~ msgstr "Completamento &automatico\tCtrl-P" #~ msgid "&Brace matching\tCtrl-1" #~ msgstr "&Corrispondenza parentesi\tCtrl-1" #~ msgid "&Join lines\tCtrl-J" #~ msgstr "&Unisci righe\tCtrl-J" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "Frammenti\tCtrl-Shift-A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "Tutto maiuscolo\tCtrl-Shift-U" #~ msgid "Lower All\tCtrl-U" #~ msgstr "Tutto minuscolo\tCtrl-U" #~ msgid "Context Help\tF1" #~ msgstr "Aiuto contestuale\tF1" #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "" #~ "Copyright 2008-2009 Il team di sviluppo di Padre come indicato in Padre.pm" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "File successivo\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "File precedente\tCtrl-Shift-TAB" #~ msgid "Last Visited File\tCtrl-Shift-P" #~ msgstr "Ultimo file visualizzato\tCtrl-Shift-P" #~ msgid "Right Click\tAlt-/" #~ msgstr "Menù contestuale\tAlt-/" #~ msgid "GoTo Subs Window" #~ msgstr "Vai alla finestra delle sub" #~ msgid "GoTo Outline Window\tAlt-L" #~ msgstr "Vai alla finestra dello schema\tAlt-L" #~ msgid "GoTo Output Window\tAlt-O" #~ msgstr "Vai alla finestra di output\tAlt-O" #~ msgid "GoTo Syntax Check Window\tAlt-C" #~ msgstr "Vai alla finestra di verifica della sintassi\tAlt-C" #~ msgid "GoTo Main Window\tAlt-M" #~ msgstr "Vai alla finestra principale\tAlt-M" #~ msgid "&Find\tCtrl-F" #~ msgstr "T&rova\tCtrl-F" #~ msgid "Find Next\tF3" #~ msgstr "Trova successivo\tF3" #~ msgid "Find Previous\tShift-F3" #~ msgstr "Trova precedente\tShift-F3" #~ msgid "Find Next\tF4" #~ msgstr "Trova succesivo\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "Trova precedente\tShift-F4" #~ msgid "Replace\tCtrl-R" #~ msgstr "Sostituisci\tCtrl-R" #~ msgid "Run Script\tF5" #~ msgstr "Esegui script\tF5" #~ msgid "Run Script (debug info)\tShift-F5" #~ msgstr "Esegui script (con informazioni di debug)\tShift-F5" #~ msgid "Run Command\tCtrl-F5" #~ msgstr "Esegui comando\tCtrl-F5" #~ msgid "Stop\tF6" #~ msgstr "Termina\tF6" #~ msgid "&New\tCtrl-N" #~ msgstr "&Nuovo\tCtrl-N" #~ msgid "&Open...\tCtrl-O" #~ msgstr "&Apri...\tCtrl-O" #~ msgid "&Close\tCtrl-W" #~ msgstr "&Chiudi\tCtrl-W" #~ msgid "Close All" #~ msgstr "Chiudi tutto" #~ msgid "Close All but Current" #~ msgstr "Chiudi tutti tranne quella corrente" #~ msgid "&Save\tCtrl-S" #~ msgstr "&Salva\tCtrl-S" #~ msgid "Save &As...\tF12" #~ msgstr "S&alva con nome...\tF12" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "Apri selezione\tCtrl-Shift-O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "Apri una sessione...\tCtrl-Alt-O" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "Salva la sessione...\tCtrl-Alt-S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "&Esci\tCtrl-Q" #~ msgid "Show StatusBar" #~ msgstr "Mostra barra di stato" #~ msgid "Increase Font Size\tCtrl-+" #~ msgstr "Aumenta dimensione carattere\tCtrl-+" #~ msgid "Decrease Font Size\tCtrl--" #~ msgstr "Diminuisci dimensione carattere\tCtrl--" #~ msgid "Reset Font Size\tCtrl-/" #~ msgstr "Ripristina dimensione carattere\tCtrl-/" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "Imposta segnalibro\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "Vai al segnalibro\tCtrl-Shift-B" #~ msgid "&Full Screen\tF11" #~ msgstr "S&chermo intero\tF11" #~ msgid "Disable Experimental Mode" #~ msgstr "Disabilita modalità sperimentale" #~ msgid "Refresh Counter: " #~ msgstr "Aggiorna contatore" #~ msgid "Plugin Manager" #~ msgstr "Gestore plugin" #~ msgid "Plugin List (CPAN)" #~ msgstr "Elenco plugin (CPAN)" #~ msgid "Edit My Plugin" #~ msgstr "Modifica My Plugin" #~ msgid "Could not find the Padre::Plugin::My plugin" #~ msgstr "Impossibile trovare il plugin Padre::Plugin::My" #~ msgid "Reload My Plugin" #~ msgstr "Ricarica My Plugin" #~ msgid "Reset My Plugin" #~ msgstr "Resetta My Plugin" #~ msgid "Reload All Plugins" #~ msgstr "Ricarica tutti i plugin" #~ msgid "(Re)load Current Plugin" #~ msgstr "(Ri)carica il Plugin corrente" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Prova un plugin da una cartella locale" #~ msgid "Plugin Tools" #~ msgstr "Strumenti plugin" #~ msgid "Use external window for execution (xterm)" #~ msgstr "Usa una finestra esterna per l'esecuzione (xterm)" #~ msgid "&Use Regex" #~ msgstr "&Utilizza espressioni regolari" #~ msgid "Close Window on &hit" #~ msgstr "Chiude la finestra se cliccato" #~ msgid "%s occurences were replaced" #~ msgstr "Sono state sostituite %s occorrenze" #~ msgid "Nothing to replace" #~ msgstr "Niente da sostituire" #~ msgid "Cannot build regex for '%s'" #~ msgstr "Non posso costruire un espressione regolare con '%s'" #~ msgid "%s apparantly created. Do you want to open it now?" #~ msgstr "%s apparentemente creato. Vuoi aprirlo adesso?" #~ msgid "Failed to find '%s' in current document." #~ msgstr "Impossibile trovare '%s' nel documento corrente" #~ msgid "Not Found" #~ msgstr "Non trovato" #~ msgid "Install Module..." #~ msgstr "Installa modulo..." #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "Enable logging" #~ msgstr "Abilita log" #~ msgid "Disable logging" #~ msgstr "Disabilita log" #~ msgid "Enable trace when logging" #~ msgstr "Abilitazione trace in fase di log" #~ msgid "Disable trace" #~ msgstr "Disabilita trace" #~ msgid "wxWidgets 2.8.10 Reference" #~ msgstr "Documentazione di riferimento wxWidget 2.8.10" #~ msgid "User set" #~ msgstr "Impostazioni utente" #~ msgid "ASCII" #~ msgstr "ASCII" #~ msgid "Error while calling help_render: " #~ msgstr "Errore nella chiamata a help_render:" #~ msgid "Error while calling get_help_provider: " #~ msgstr "Errore nella chiamata a get_help_provider:" #~ msgid "Start Debugger (Debug::Client)" #~ msgstr "Avvia debugger (Debug::Client)" #~ msgid "Run the current document through the Debug::Client." #~ msgstr "Esegui il documento corrente mediante Debug::Client." #~ msgid "&Count All" #~ msgstr "&Conta tutto" #~ msgid "Found %d matching occurrences" #~ msgstr "Trovate %d corrispondenze" #~ msgid "Hopefully faster than the PPI Traditional" #~ msgstr "Forse più veloce del tradizionale PPI" #~ msgid "&AutoComp" #~ msgstr "Completamento &automatico" #~ msgid "Found %d matching occurances" #~ msgstr "Trovate %d corrispondenze" #~ msgid "Dump PPI Document" #~ msgstr "Dump del documento PPI" #~ msgid " item(s) found" #~ msgstr "Voci trovate" #~ msgid "Mime type:" #~ msgstr "Mime type:" #~ msgid "Run PerlCritic" #~ msgstr "Esegui PerlCritic" #~ msgid "Filter: Document Delete" #~ msgstr "Filtro: cancella documento" #~ msgid "Filter: Selection Remain" #~ msgstr "Filtro: conserva selezione" #~ msgid "Filter: Selection Delete" #~ msgstr "Filtro: cancella selezione" #~ msgid "Time (eg: 23:55):" #~ msgstr "Orario (es: 23:55):" #~ msgid "Frequency:" #~ msgstr "Frequenza:" #~ msgid "Set Alarm Time" #~ msgstr "Imposta orario avviso" #~ msgid "" #~ "Possible Value Format: \\d:\\d\\d or \\d\\d:\\d\\d like 6:13 or 23:55" #~ msgstr "" #~ "Valori di formato possibili: \\d:\\d\\d oppure \\d\\d:\\d\\d come 6:13 o " #~ "23:55" #~ msgid "Wrong Alarm Time" #~ msgstr "Orario avviso non valido" #~ msgid "Encode document to ..." #~ msgstr "Codifica il documento in..." #~ msgid "Tidy the selected text" #~ msgstr "Riordina il testo selezionato" #~ msgid "Export active document to HTML file" #~ msgstr "Esporta il documento attivo in un file HTML" #~ msgid "Export selected text to HTML file" #~ msgstr "Esporta il testo selezionato in un file HTML" #~ msgid "Copyright 2008 Gabor Szabo" #~ msgstr "Copyright 2008 Gabor Szabo" #~ msgid "This is not a XML document!" #~ msgstr "Non è un documento XML" #~ msgid "Tidying failed due to error(s):" #~ msgstr "Riordinamento fallito a causa di errore(i):" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "Plugin:%s - Non compatibile con l'API Padre::Plugin. Il plugin non è " #~ "istanziabile" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "Plugin:%s Non compatibile con l'API Padre::Plugin. Deve avere la " #~ "subroutine padre_interfaces" #~ msgid "Ack (Find in Files)" #~ msgstr "Ack (trova nei file)" #~ msgid "No output" #~ msgstr "Nessun output" #~ msgid "Sub List" #~ msgstr "Elenco Sub" #~ msgid "Background Tasks are idle" #~ msgstr "I task in backround sono inattivi" #~ msgid "Convert..." #~ msgstr "Converti..." #~ msgid "Doc Stats" #~ msgstr "Statistiche documento" #~ msgid "Ac&k Search" #~ msgstr "Cerca con Ac&k" #~ msgid "" #~ "Module Name:\n" #~ "e.g.: Perl::Critic" #~ msgstr "" #~ "Nome modulo:\n" #~ "Es.: Perl::Critic" #~ msgid "Show Directory tree" #~ msgstr "Mostra la gerarchia delle cartelle" #~ msgid "GoTo Subs Window\tAlt-S" #~ msgstr "Vai alla finestra delle sub\tAlt-S" #~ msgid "Replace &all" #~ msgstr "Sostituisci &tutto" #~ msgid "Automatic indentation style" #~ msgstr "Stile di indentazione automatico" #~ msgid "Check Canceled" #~ msgstr "Verifica cancellata" #~ msgid "Text to find:" #~ msgstr "Testo da trovare:" #~ msgid "All available plugins on CPAN" #~ msgstr "Tutti i plugin disponibili su CAPN" #~ msgid "Failed to load the following plugin(s):\n" #~ msgstr "Errore nel caricamento dei seguenti plugin:\n" #~ msgid "Failed to load the plugin '%s'" #~ msgstr "Errore nel caricamento del plugin '%s'" #~ msgid "Context Help\tCtrl-Shift-H" #~ msgstr "Aiuto contestuale\tCtrl-Shift-H" #~ msgid "Find variable declaration" #~ msgstr "Trova dichiarazione variabile" #~ msgid "Lexically replace variable" #~ msgstr "Sostituisci lessicalmente la variabile" #~ msgid "&Full screen\tF11" #~ msgstr "S&chermo intero\tF11" #~ msgid "Ac&k" #~ msgstr "Ac&k" #~ msgid "Recent Projects" #~ msgstr "Progetti recenti" #~ msgid "Use PPI for Perl5 syntax highlighting" #~ msgstr "Usa PPI per l'evidenziazione sintassi Perl5" #~ msgid "TAB display size (in spaces)" #~ msgstr "Dimensione delle tabulazioni (in spazi)" #~ msgid "Syntax" #~ msgstr "Sintassi" #~ msgid "Only .pl files can be executed" #~ msgstr "Si possono eseguire Solo i file .pl" Padre-1.00/share/locale/es-es.po0000644000175000017500000065600411745646534015110 0ustar petepete# Spanish translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Paco Alguacil , 2008. # Enrique Nell , 2009-2010. # msgid "" msgstr "Project-Id-Version: 0.93\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-12 08:10-0700\n" "PO-Revision-Date: 2010-12-04 16:23+0100\n" "Last-Translator: Enrique Nell \n" "Language-Team: Spanish\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Spanish\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "\".\" also matches newline" msgstr "\".\" también detecta una nueva línea" #: lib/Padre/Config.pm:487 msgid "" "\"Open session\" will ask which session (set of files) to open when you " "launch Padre." msgstr "\"Abrir sesión\" preguntará qué sesión (conjunto de archivos) se desea abrir al iniciar Padre." #: lib/Padre/Config.pm:489 msgid "" "\"Previous open files\" will remember the open files when you close Padre " "and open the same files next time you launch Padre." msgstr "\"Archivos abiertos en la sesión anterior\" recordará los archivos que estaban abiertos al cerrar Padre y abrirá los mismos archivos la próxima vez que inicie Padre." #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" y \"$\" encuentran el comienzo y el fin de cualquiera línea dentro de la cadena de texto" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "# La entrada está en $_\n" "$_ = $_;\n" "# La salida va a $_\n" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "$_ para ambos" #: lib/Padre/Wx/Diff.pm:110 #, perl-format msgid "%d line added" msgstr "%d línea agregada" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d line changed" msgstr "%d línea modificada" #: lib/Padre/Wx/Diff.pm:121 #, perl-format msgid "%d line deleted" msgstr "%d línea eliminada" #: lib/Padre/Wx/Diff.pm:109 #, perl-format msgid "%d lines added" msgstr "%d líneas agregadas" #: lib/Padre/Wx/Diff.pm:98 #, perl-format msgid "%d lines changed" msgstr "%d líneas modificadas" #: lib/Padre/Wx/Diff.pm:120 #, perl-format msgid "%d lines deleted" msgstr "%d líneas eliminadas" #: lib/Padre/Wx/ReplaceInFiles.pm:214 #, perl-format msgid "%s (%s changed)" msgstr "%s (%s modificados)" #: lib/Padre/Wx/Panel/FoundInFiles.pm:346 #, perl-format msgid "%s (%s results)" msgstr "%s (%s resultados)" #: lib/Padre/Wx/ReplaceInFiles.pm:222 #, perl-format msgid "%s (crashed)" msgstr "%s (bloqueado)" #: lib/Padre/PluginManager.pm:527 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Bloqueo al crear una instancia de %s" #: lib/Padre/PluginManager.pm:473 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Bloqueo al cargar %s" #: lib/Padre/PluginManager.pm:537 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - No se pudo crear una instancia del complemento" #: lib/Padre/PluginManager.pm:497 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - No es una subclase de Padre::Plugin" #: lib/Padre/PluginManager.pm:510 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - No es compatible con Padre %s - %s" #: lib/Padre/PluginManager.pm:485 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - El complemento está vacío o no hay control de versiones" #: lib/Padre/Wx/TaskList.pm:280 lib/Padre/Wx/Panel/TaskList.pm:172 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s en expresión regular de tareas pendientes; compruebe su configuración." #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s línea %s: %s" #: lib/Padre/Wx/VCS.pm:212 #, perl-format msgid "%s version control is not currently available" msgstr "El control de versiones de %s no está disponible actualmente" #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Línea: %s Archivo: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2592 lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "&Acerca de" #: lib/Padre/Wx/FBP/Preferences.pm:1545 msgid "&Advanced..." msgstr "&Avanzadas..." #: lib/Padre/Wx/ActionLibrary.pm:860 msgid "&Autocomplete" msgstr "&Autocompletar" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "&Brace Matching" msgstr "&Emparejamiento de llaves" #: lib/Padre/Wx/FBP/FindInFiles.pm:90 lib/Padre/Wx/FBP/ReplaceInFiles.pm:108 msgid "&Browse" msgstr "E&xaminar" #: lib/Padre/Wx/FBP/Preferences.pm:1561 lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:153 #: lib/Padre/Wx/Dialog/OpenResource.pm:183 lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&Cancelar" #: lib/Padre/Wx/FBP/FindInFiles.pm:137 lib/Padre/Wx/FBP/Find.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:147 lib/Padre/Wx/FBP/Replace.pm:121 msgid "&Case Sensitive" msgstr "&Distinguir mayúsculas de minúsculas" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "&Cambiar estilo de variable" #: lib/Padre/Wx/ActionLibrary.pm:1706 msgid "&Check for Common (Beginner) Errors" msgstr "&Detectar errores comunes (de principiante)" #: lib/Padre/Wx/ActionLibrary.pm:532 msgid "&Clean Recent Files List" msgstr "&Borrar lista de archivos recientes" #: lib/Padre/Wx/ActionLibrary.pm:658 msgid "&Clear Selection Marks" msgstr "&Borrar marcas de selección" #: lib/Padre/Wx/ActionLibrary.pm:274 lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:134 lib/Padre/Wx/Dialog/HelpSearch.pm:180 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:275 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 msgid "&Close" msgstr "Ce&rrar" #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "&Comment Out" msgstr "Marcas como &comentario" #: lib/Padre/Wx/ActionLibrary.pm:2491 msgid "&Context Help" msgstr "Ayuda &contextual" #: lib/Padre/Wx/ActionLibrary.pm:2376 msgid "&Context Menu" msgstr "Menú &contextual" #: lib/Padre/Wx/ActionLibrary.pm:688 msgid "&Copy" msgstr "&Copiar" #: lib/Padre/Wx/Menu/Debug.pm:68 msgid "&Debug" msgstr "&Depurar" #: lib/Padre/Wx/ActionLibrary.pm:1638 msgid "&Decrease Font Size" msgstr "&Reducir tamaño de fuente" #: lib/Padre/Wx/ActionLibrary.pm:369 lib/Padre/Wx/FBP/Preferences.pm:1213 #: lib/Padre/Wx/FBP/Bookmarks.pm:95 lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "Eli&minar" #: lib/Padre/Wx/ActionLibrary.pm:1073 msgid "&Delete Trailing Spaces" msgstr "Eliminar espacios &finales" #: lib/Padre/Wx/ActionLibrary.pm:1718 msgid "&Deparse selection" msgstr "Restaurar &selección a partir de análisis" #: lib/Padre/Wx/Dialog/PluginManager.pm:104 msgid "&Disable" msgstr "&Deshabilitar" #: lib/Padre/Wx/ActionLibrary.pm:544 msgid "&Document Statistics" msgstr "Estadísticas del &documento" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "&Edit" msgstr "Edi&tar" #: lib/Padre/Wx/ActionLibrary.pm:2255 msgid "&Edit My Plug-in" msgstr "&Editar complemento personalizado" #: lib/Padre/Wx/ActionLibrary.pm:2220 msgid "&Edit with Regex Editor..." msgstr "&Editar con el Editor de expresiones regulares" #: lib/Padre/Wx/Dialog/PluginManager.pm:110 #: lib/Padre/Wx/Dialog/PluginManager.pm:116 msgid "&Enable" msgstr "&Habilitar" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "&Escriba un número de línea entre 1 y %s:" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "Escri&ba una posición entre 1 y %s:" #: lib/Padre/Wx/Menu/File.pm:291 msgid "&File" msgstr "&Archivo" #: lib/Padre/Wx/ActionLibrary.pm:930 msgid "&File..." msgstr "Arc&hivo..." #: lib/Padre/Wx/FBP/Preferences.pm:1097 lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "&Filtro:" #: lib/Padre/Wx/FBP/FindInFiles.pm:153 msgid "&Find" msgstr "&Buscar" #: lib/Padre/Wx/FBP/Find.pm:111 lib/Padre/Wx/FBP/Replace.pm:153 msgid "&Find Next" msgstr "&Buscar siguiente" #: lib/Padre/Wx/ActionLibrary.pm:1220 msgid "&Find Previous" msgstr "Buscar &anterior" #: lib/Padre/Wx/ActionLibrary.pm:1167 msgid "&Find..." msgstr "&Buscar..." #: lib/Padre/Wx/ActionLibrary.pm:1518 msgid "&Fold All" msgstr "&Plegar todo" #: lib/Padre/Wx/ActionLibrary.pm:1538 msgid "&Fold/Unfold Current" msgstr "Plegar/&Desplegar actual" #: lib/Padre/Wx/ActionLibrary.pm:1282 msgid "&Go To..." msgstr "&Ir a..." #: lib/Padre/Wx/Outline.pm:141 msgid "&Go to Element" msgstr "Ir al &elemento" #: lib/Padre/Wx/ActionLibrary.pm:2470 lib/Padre/Wx/Menu/Help.pm:115 msgid "&Help" msgstr "Ay&uda" #: lib/Padre/Wx/ActionLibrary.pm:1628 msgid "&Increase Font Size" msgstr "Aumentar tamaño de &fuente" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "&Join Lines" msgstr "&Unir líneas" #: lib/Padre/Wx/ActionLibrary.pm:2110 msgid "&Launch Debugger" msgstr "&Iniciar depurador" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "Soporte en &línea" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "Cargar todos &los módulos de Padre" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "&Lower All" msgstr "Convertir todo a &minúsculas" #: lib/Padre/Wx/Dialog/HelpSearch.pm:155 msgid "&Matching Help Topics:" msgstr "Temas de ay&uda coincidentes" #: lib/Padre/Wx/Dialog/OpenResource.pm:227 msgid "&Matching Items:" msgstr "Ele&mentos coincidentes:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:181 msgid "&Matching Menu Items:" msgstr "Ele&mentos de menú coincidentes:" #: lib/Padre/Wx/Menu/Tools.pm:67 msgid "&Module Tools" msgstr "Herramientas para &módulos" #: lib/Padre/Wx/ActionLibrary.pm:1926 msgid "&Move POD to __END__" msgstr "&Mover POD a __END__" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "&Nuevo" #: lib/Padre/Wx/ActionLibrary.pm:1779 msgid "&Newline Same Column" msgstr "Carácter de nueva línea en la &misma columna" #: lib/Padre/Wx/FBP/FindFast.pm:101 msgid "&Next" msgstr "Siguie&nte" #: lib/Padre/Wx/ActionLibrary.pm:791 msgid "&Next Difference" msgstr "Siguiente &diferencia" #: lib/Padre/Wx/ActionLibrary.pm:2353 msgid "&Next File" msgstr "Archivo &siguiente" #: lib/Padre/Wx/ActionLibrary.pm:780 msgid "&Next Problem" msgstr "Pro&blema siguiente" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:149 #: lib/Padre/Wx/Dialog/OpenResource.pm:177 lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&Aceptar" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "&Abrir" #: lib/Padre/Wx/ActionLibrary.pm:523 msgid "&Open All Recent Files" msgstr "&Abrir todos los archivos recientes" #: lib/Padre/Wx/ActionLibrary.pm:195 msgid "&Open..." msgstr "&Abrir..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:228 msgid "&Original text:" msgstr "Texto &original:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "Text&o resultante:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:81 msgid "&POSIX Character classes" msgstr "Clases de caracteres &POSIX" #: lib/Padre/Wx/ActionLibrary.pm:2515 msgid "&Padre Support (English)" msgstr "Soporte técnico de &Padre (en inglés)" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "&Paste" msgstr "&Pegar" #: lib/Padre/Wx/ActionLibrary.pm:1107 msgid "&Patch..." msgstr "&Aplicar revisión..." #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "Código fuente de filtro en &Perl:" #: lib/Padre/Wx/ActionLibrary.pm:2233 msgid "&Plug-in Manager" msgstr "Administrador de com&plementos" #: lib/Padre/Wx/ActionLibrary.pm:2188 msgid "&Preferences" msgstr "&Preferencias" #: lib/Padre/Wx/FBP/FindFast.pm:85 msgid "&Previous" msgstr "Anteri&or" #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "&Previous File" msgstr "Arc&hivo anterior" #: lib/Padre/Wx/ActionLibrary.pm:503 msgid "&Print..." msgstr "I&mprimir..." #: lib/Padre/Wx/ActionLibrary.pm:556 msgid "&Project Statistics" msgstr "Estadísticas del pr&oyecto" #: lib/Padre/Wx/Dialog/RegexEditor.pm:100 msgid "&Quantifiers" msgstr "Cuanti&ficadores" #: lib/Padre/Wx/ActionLibrary.pm:803 msgid "&Quick Fix" msgstr "C&orrección rápida" #: lib/Padre/Wx/ActionLibrary.pm:1331 msgid "&Quick Menu Access..." msgstr "&Menú de acceso rápido..." #: lib/Padre/Wx/ActionLibrary.pm:567 msgid "&Quit" msgstr "&Salir" #: lib/Padre/Wx/Menu/File.pm:248 msgid "&Recent Files" msgstr "Archivos &recientes" #: lib/Padre/Wx/ActionLibrary.pm:607 msgid "&Redo" msgstr "Re&hacer" #: lib/Padre/Wx/ActionLibrary.pm:2210 msgid "&Regex Editor" msgstr "Editor de expresiones ®ulares" #: lib/Padre/Wx/FBP/FindInFiles.pm:129 lib/Padre/Wx/FBP/ReplaceInFiles.pm:155 msgid "&Regular Expression" msgstr "Expresión ®ular" #: lib/Padre/Wx/Dialog/RegexEditor.pm:168 msgid "&Regular expression:" msgstr "E&xpresión regular:" #: lib/Padre/Wx/ActionLibrary.pm:2272 msgid "&Reload My Plug-in" msgstr "Volve&r a cargar el complemento personalizado" #: lib/Padre/Wx/Main.pm:4697 msgid "&Reload selected" msgstr "&Volver a cargar seleccionados" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "&Rename Variable..." msgstr "Cambiar nombre de va&riable..." #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:171 lib/Padre/Wx/FBP/Replace.pm:169 msgid "&Replace" msgstr "&Reemplazar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:249 msgid "&Replace text with:" msgstr "Reempla&zar texto con:" #: lib/Padre/Wx/FBP/Preferences.pm:1232 lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "&Volver a establecer" #: lib/Padre/Wx/ActionLibrary.pm:1648 msgid "&Reset Font Size" msgstr "&Restaurar tamaño de fuente" #: lib/Padre/Wx/Dialog/RegexEditor.pm:259 msgid "&Result from replace:" msgstr "&Resultado de sustitución:" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "&Ejecutar" #: lib/Padre/Wx/ActionLibrary.pm:1942 msgid "&Run Script" msgstr "Ejecutar &script" #: lib/Padre/Wx/ActionLibrary.pm:413 lib/Padre/Wx/FBP/Preferences.pm:1536 msgid "&Save" msgstr "&Guardar" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&Guardar sesión automáticamente" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "Referencia de &Scintilla" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "&Buscar" #: lib/Padre/Wx/ActionLibrary.pm:2479 msgid "&Search Help" msgstr "&Buscar en la Ayuda" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "&Seleccionar" #: lib/Padre/Wx/Dialog/OpenResource.pm:205 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&Seleccionar un elemento para abrir (? = cualquier carácter, * = cualquier cadena):" #: lib/Padre/Wx/Main.pm:4694 msgid "&Select files to reload:" msgstr "&Seleccionar archivos para volver a cargar:" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "&Establecer" #: lib/Padre/Wx/Dialog/PluginManager.pm:98 msgid "&Show Error Message" msgstr "&Mostrar mensaje de error" #: lib/Padre/Wx/ActionLibrary.pm:918 msgid "&Snippets..." msgstr "&Fragmentos de código..." #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "Iniciar/detener &seguimiento de subrutina" #: lib/Padre/Wx/ActionLibrary.pm:2024 msgid "&Stop Execution" msgstr "&Detener ejecución" #: lib/Padre/Wx/ActionLibrary.pm:943 msgid "&Toggle Comment" msgstr "Acti&var/desactivar marcas de comentario" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "&Herramientas" #: lib/Padre/Wx/ActionLibrary.pm:2581 msgid "&Translate Padre..." msgstr "&Traducir Padre..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:174 msgid "&Type a menu item name to access:" msgstr "&Elemento de menú que desea seleccionar:" #: lib/Padre/Wx/ActionLibrary.pm:968 msgid "&Uncomment" msgstr "&Quitar marca de comentario" #: lib/Padre/Wx/ActionLibrary.pm:587 msgid "&Undo" msgstr "&Deshacer" #: lib/Padre/Wx/ActionLibrary.pm:1085 msgid "&Upper All" msgstr "Convertir todo a mayúsc&ulas" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Valor:" #: lib/Padre/Wx/Menu/View.pm:247 msgid "&View" msgstr "&Ver" #: lib/Padre/Wx/Menu/View.pm:101 msgid "&View Document As..." msgstr "&Ver documento como..." #: lib/Padre/Wx/ActionLibrary.pm:2539 msgid "&Win32 Questions (English)" msgstr "Preguntas sobre &Win32 (en inglés)" #: lib/Padre/Wx/Menu/Window.pm:82 msgid "&Window" msgstr "Ve&ntana" #: lib/Padre/Wx/ActionLibrary.pm:1615 msgid "&Word-Wrap File" msgstr "Ajustar líneas de arc&hivo" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "Referencia de &wxWidgets %s" #: lib/Padre/Wx/Panel/Debugger.pm:620 #, perl-format msgid "" "'%s' does not look like a variable. First select a variable in the code and " "then try again." msgstr "'%s' no parece una variable. Seleccione una variable en el código e inténtelo de nuevo." #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "(Re)load &Current Plug-in" msgstr "Volver a &cargar el complemento actual" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(Desde Perl %s)" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "(sin definir)" #: lib/Padre/PluginManager.pm:777 msgid "(core)" msgstr "(básico)" #: lib/Padre/Wx/Dialog/About.pm:145 msgid "(disabled)" msgstr "(deshabilitado)" #: lib/Padre/Wx/Dialog/About.pm:153 msgid "(unsupported)" msgstr "(no se admite)" #: lib/Padre/Wx/FBP/Preferences.pm:1165 lib/Padre/Wx/FBP/Preferences.pm:1179 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/VCS.pm:337 msgid ", " msgstr ", " #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "- OBSOLETO" #: lib/Padre/Wx/FBP/Debugger.pm:256 msgid ". Return to the executed line." msgstr ". Volver a la línea ejecutada." #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "7-bit US-ASCII character" msgstr "Carácter US-ASCII de 7 bits" #: lib/Padre/Wx/CPAN.pm:510 #, perl-format msgid "Loading %s..." msgstr "Cargando %s..." #: lib/Padre/Wx/Dialog/Shortcut.pm:32 lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "Un cuadro de diálogo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "A comment" msgstr "Un comentario" #: lib/Padre/Wx/Dialog/RegexEditor.pm:125 msgid "A group" msgstr "Un grupo" #: lib/Padre/Config.pm:483 msgid "A new empty file" msgstr "Un archivo nuevo vacío" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Diversas herramientas usadas por los programadores de Padre\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "A word boundary" msgstr "Límite de palabra" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/FBP/About.pm:296 msgid "Aaron Trevena" msgstr "Aaron Trevena" #: lib/Padre/Wx/FBP/About.pm:29 lib/Padre/Plugin/PopularityContest.pm:211 msgid "About" msgstr "Acerca de" #: lib/Padre/Wx/CPAN.pm:217 msgid "Abstract" msgstr "Resumen" #: lib/Padre/Wx/FBP/Patch.pm:47 lib/Padre/Wx/Dialog/Preferences.pm:170 msgid "Action" msgstr "Acción" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Acción: %s" #: lib/Padre/Wx/FBP/About.pm:122 msgid "Adam Kennedy" msgstr "Adam Kennedy" #: lib/Padre/Wx/FBP/Preferences.pm:303 msgid "Add another closing bracket if there already is one" msgstr "Agregar otra llave de cierre si ya hay una" #: lib/Padre/Wx/VCS.pm:519 msgid "Add file to repository?" msgstr "¿Desea agregar el archivo al repositorio?" #: lib/Padre/Wx/VCS.pm:248 lib/Padre/Wx/VCS.pm:262 msgid "Added" msgstr "Agregado" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Configuración avanzada" #: lib/Padre/Wx/FBP/Patch.pm:70 msgid "Against" msgstr "En" #: lib/Padre/Wx/FBP/About.pm:128 lib/Padre/Wx/FBP/About.pm:337 msgid "Ahmad Zawawi" msgstr "Ahmad Zawawi" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Alarm" msgstr "Alarma" #: lib/Padre/Wx/FBP/About.pm:200 msgid "Alexandr Ciornii" msgstr "Alexandr Ciornii" #: lib/Padre/Wx/Syntax.pm:83 msgid "Alien Error" msgstr "Error externo" #: lib/Padre/Wx/ActionLibrary.pm:1768 msgid "Align a selection of text to the same left column." msgstr "Alinea una selección de texto a la misma columna izquierda" #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "Todo" #: lib/Padre/Wx/Main.pm:4426 lib/Padre/Wx/Main.pm:4427 #: lib/Padre/Wx/Main.pm:4782 lib/Padre/Wx/Main.pm:6003 #: lib/Padre/Wx/Choice/Files.pm:19 msgid "All Files" msgstr "Todos los archivos" #: lib/Padre/Document/Perl.pm:547 msgid "All braces appear to be matched" msgstr "Parece que no hay llaves desemparejadas" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Allow the selection of another name to save the current document" msgstr "Permite guardar el documento actual con otro nombre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:83 msgid "Alphabetic characters" msgstr "Caracteres alfabéticos" #: lib/Padre/Config.pm:580 msgid "Alphabetical Order" msgstr "Orden alfabético" #: lib/Padre/Config.pm:581 msgid "Alphabetical Order (Private Last)" msgstr "Orden alfabético (privados al final)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphanumeric characters" msgstr "Caracteres alfanuméricos" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Alphanumeric characters plus \"_\"" msgstr "Caracteres alfanuméricos y \"_\"" #: lib/Padre/Wx/FBP/Preferences.pm:1157 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:113 msgid "Alternation" msgstr "Alternancia" #: lib/Padre/Wx/FBP/About.pm:478 msgid "Amir E. Aharoni" msgstr "Amir E. Aharoni" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Andrew Bramble" msgstr "Andrew Bramble" #: lib/Padre/Wx/FBP/About.pm:625 msgid "Andrew Shitov" msgstr "Andrew Shitov" #: lib/Padre/Wx/Dialog/RegexEditor.pm:71 msgid "Any character except a newline" msgstr "Cualquier carácter excepto un carácter de nueva línea" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any decimal digit" msgstr "Cualquier dígito decimal" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any non-digit" msgstr "Cualquier carácter excepto un dígito" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any non-whitespace character" msgstr "Cualquier carácter excepto un espacio en blanco" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any non-word character" msgstr "Cualquier carácter excepto un carácter de palabra" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any whitespace character" msgstr "Cualquier tipo de espacio en blanco" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any word character" msgstr "Cualquier carácter de palabra" #: lib/Padre/Wx/FBP/Preferences.pm:1921 msgid "Appearance" msgstr "Apariencia" #: lib/Padre/Wx/FBP/Preferences.pm:822 msgid "Appearance Preview" msgstr "Vista previa de apariencia" #: lib/Padre/Wx/ActionLibrary.pm:804 msgid "Apply one of the quick fixes for the current document" msgstr "Aplica una de las correcciones rápidas para el documento actual" #: lib/Padre/Locale.pm:157 lib/Padre/Wx/FBP/About.pm:328 msgid "Arabic" msgstr "Árabe" #: lib/Padre/Wx/ActionLibrary.pm:487 msgid "Ask for a session name and save the list of files currently opened" msgstr "Pregunta un nombre de sesión y guarda la lista de archivos abiertos actualmente" #: lib/Padre/Wx/ActionLibrary.pm:568 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Pregunta al usuario si desea guardar los archivos no guardados y cierra Padre" #: lib/Padre/Wx/ActionLibrary.pm:1904 msgid "Assign the selected expression to a newly declared variable" msgstr "Asigna la expresión seleccionada a una variable recién declarada" #: lib/Padre/Wx/Outline.pm:387 msgid "Attributes" msgstr "Atributos" #: lib/Padre/Wx/FBP/Sync.pm:290 msgid "Authentication" msgstr "Autenticación" #: lib/Padre/Wx/VCS.pm:55 lib/Padre/Wx/CPAN.pm:208 msgid "Author" msgstr "Autor" #: lib/Padre/Wx/FBP/Preferences.pm:328 msgid "Auto-fold POD markup when code folding enabled" msgstr "Plegado automático de marcas POD si el plegado de código está habilitado" #: lib/Padre/Wx/FBP/Preferences.pm:1922 msgid "Autocomplete" msgstr "Autocompletar" #: lib/Padre/Wx/FBP/Preferences.pm:200 msgid "Autocomplete always while typing" msgstr "Autocompletar al escribir" #: lib/Padre/Wx/FBP/Preferences.pm:295 msgid "Autocomplete brackets" msgstr "Autocompletar llaves" #: lib/Padre/Wx/FBP/Preferences.pm:216 msgid "Autocomplete new functions in scripts" msgstr "Autocompletar funciones nuevas en scripts" #: lib/Padre/Wx/FBP/Preferences.pm:208 msgid "Autocomplete new methods in packages" msgstr "Autocompletar métodos nuevos de paquetes" #: lib/Padre/Wx/Main.pm:3686 msgid "Autocompletion error" msgstr "Error de Autocompletar" #: lib/Padre/Wx/FBP/Preferences.pm:1057 msgid "Autoindent" msgstr "Sangría automática" #: lib/Padre/Wx/StatusBar.pm:268 msgid "Background Tasks are running" msgstr "Tareas en segundo plano en ejecución" #: lib/Padre/Wx/StatusBar.pm:269 msgid "Background Tasks are running with high load" msgstr "Tareas en segundo plano en ejecución con mucha carga" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Backreference to the nth group" msgstr "Retrorreferencia al grupo enésimo" #: lib/Padre/Wx/Dialog/Preferences.pm:28 msgid "Backspace" msgstr "Retroceso" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Beginning of line" msgstr "Principio de línea" #: lib/Padre/Wx/FBP/Preferences.pm:1924 msgid "Behaviour" msgstr "Comportamiento" #: lib/Padre/MIME.pm:885 msgid "Binary File" msgstr "Archivo binario" #: lib/Padre/Wx/FBP/About.pm:308 msgid "Blake Willmarth" msgstr "Blake Willmarth" #: lib/Padre/Wx/FBP/SLOC.pm:91 msgid "Blank Lines:" msgstr "Líneas en blanco:" #: lib/Padre/Wx/FBP/Preferences.pm:844 msgid "Bloat Reduction" msgstr "Reducción de dimensión" #: lib/Padre/Wx/FBP/About.pm:93 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "La imagen de bienvenida de una mariposa azul sobre una hoja verde es obra de Jerry Charlotte (blackbutterfly)" #: lib/Padre/Wx/FBP/Bookmarks.pm:29 msgid "Bookmarks" msgstr "Marcadores" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Booleano" #: lib/Padre/Config.pm:60 msgid "Bottom Panel" msgstr "Panel inferior" #: lib/Padre/Wx/FBP/Preferences.pm:278 msgid "Brace Assist" msgstr "Ayuda para llaves" #: lib/Padre/Wx/Panel/Breakpoints.pm:55 msgid "Breakpoints" msgstr "Puntos de interrupción" #: lib/Padre/Wx/FBP/About.pm:170 lib/Padre/Wx/FBP/About.pm:583 msgid "Breno G. de Oliveira" msgstr "Breno G. de Oliveira" #: lib/Padre/Wx/FBP/About.pm:212 msgid "Brian Cassidy" msgstr "Brian Cassidy" #: lib/Padre/Wx/FBP/VCS.pm:83 msgid "Bring changes from the repository into the working copy" msgstr "Aplicar cambios del repositorio a la copia de trabajo" #: lib/Padre/Wx/ActionLibrary.pm:196 msgid "Browse directory of the current document to open one or several files" msgstr "Muestra el directorio del documento actual para abrir uno o varios archivos" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Browse the directory of the installed examples to open one file" msgstr "Muestra al usuario el directorio de ejemplos instalados para que elija el archivo que desea abrir" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "Navegador: no hay visor para %s" #: lib/Padre/Wx/ActionLibrary.pm:1982 msgid "Builds the current project, then run all tests." msgstr "Genera el proyecto actual y después ejecuta todos los tests." #: lib/Padre/Wx/FBP/About.pm:236 lib/Padre/Wx/FBP/About.pm:640 msgid "Burak Gursoy" msgstr "Burak Gursoy" #: lib/Padre/Wx/ActionLibrary.pm:2504 msgid "C&urrent Document" msgstr "Doc&umento actual" #: lib/Padre/Wx/Dialog/WindowList.pm:349 lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "CHANGED" msgstr "MODIFICADO" #: lib/Padre/Wx/CPAN.pm:101 lib/Padre/Wx/FBP/Preferences.pm:421 msgid "CPAN Explorer" msgstr "Explorador de CPAN" #: lib/Padre/Wx/FBP/Preferences.pm:915 msgid "CPAN Explorer Tool" msgstr "Herramienta de exploración de CPAN" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/Snippet.pm:135 lib/Padre/Wx/FBP/FindInFiles.pm:162 #: lib/Padre/Wx/FBP/Bookmarks.pm:127 lib/Padre/Wx/FBP/Find.pm:136 #: lib/Padre/Wx/FBP/Special.pm:95 lib/Padre/Wx/FBP/ReplaceInFiles.pm:180 #: lib/Padre/Wx/FBP/Replace.pm:202 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "Cancelar" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "No se encuentra la ruta del ejecutable de python en la variable de entorno PATH" #: lib/Padre/Document/Ruby.pm:54 msgid "Cannot find ruby executable in your PATH" msgstr "No se encuentra la ruta del ejecutable de ruby en la variable de entorno PATH" #: lib/Padre/Wx/Main.pm:4079 #, perl-format msgid "Cannot open a directory: %s" msgstr "No se puede abrir el directorio %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "No se puede establecer un marcador en un documento que no se ha guardado" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Case-insensitive matching" msgstr "No distinguir mayúsculas de minúsculas al buscar" #: lib/Padre/Wx/FBP/About.pm:206 lib/Padre/Wx/FBP/About.pm:568 msgid "Cezary Morga" msgstr "Cezary Morga" #: lib/Padre/Wx/FBP/Preferences.pm:1259 msgid "Change Detection" msgstr "Detección de cambios" #: lib/Padre/Wx/FBP/Preferences.pm:939 msgid "Change Font Size (Outside Preferences)" msgstr "Cambiar tamaño de fuente (preferencias externas)" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "Change the current selection to lower case" msgstr "Convierte la selección actual a minúsculas" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Change the current selection to upper case" msgstr "Convierte la selección actual a mayúsculas" #: lib/Padre/Wx/ActionLibrary.pm:982 msgid "" "Change the encoding of the current document to the default of the operating " "system" msgstr "Cambia la codificación del documento actual a la predeterminada del sistema operativo" #: lib/Padre/Wx/ActionLibrary.pm:992 msgid "Change the encoding of the current document to utf-8" msgstr "Cambia la codificación del documento actual a UTF-8" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "" "Change the end of line character of the current document to that used on Mac " "Classic" msgstr "Cambia el carácter de fin de línea del documento actual por el usado en Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1022 msgid "" "Change the end of line character of the current document to that used on " "Unix, Linux, Mac OSX" msgstr "Cambia el carácter de fin de línea del documento actual por el usado en Unix, Linux y Mac OS X" #: lib/Padre/Wx/ActionLibrary.pm:1012 msgid "" "Change the end of line character of the current document to those used in " "files on MS Windows" msgstr "Cambia el carácter de fin de línea del documento actual por la secuencia usada en los archivos de MS Windows" #: lib/Padre/Document/Perl.pm:1515 msgid "Change variable style" msgstr "Cambiar estilo de variable" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Change variable style from camelCase to Camel_Case" msgstr "Cambiar el estilo de variable de camelCase a Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1849 msgid "Change variable style from camelCase to camel_case" msgstr "Cambiar el estilo de variable de camelCase a camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1835 msgid "Change variable style from camel_case to CamelCase" msgstr "Cambiar el estilo de variable de camel_case a CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "Change variable style from camel_case to camelCase" msgstr "Cambiar el estilo de variable de camel_case a camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "Change variable to &camelCase" msgstr "Cambiar variable a &camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Change variable to &using_underscores" msgstr "Cambiar variable a con_g&uiones" #: lib/Padre/Wx/ActionLibrary.pm:1834 msgid "Change variable to C&amelCase" msgstr "Cambiar variable a C&amelCase" #: lib/Padre/Wx/ActionLibrary.pm:1862 msgid "Change variable to U&sing_Underscores" msgstr "Cambiar variable a Con_&Guiones" #: lib/Padre/Wx/Dialog/RegexEditor.pm:69 msgid "Character classes" msgstr "Clases de caracteres" #: lib/Padre/Wx/Dialog/Goto.pm:343 msgid "Character position" msgstr "Posición del carácter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Character set" msgstr "Juego de caracteres" #: lib/Padre/Wx/FBP/Document.pm:174 msgid "Characters (All)" msgstr "Caracteres (todos)" #: lib/Padre/Wx/FBP/Document.pm:192 msgid "Characters (Visible)" msgstr "Caracteres (visibles)" #: lib/Padre/Document/Perl.pm:548 msgid "Check Complete" msgstr "Comprobación completada" #: lib/Padre/Document/Perl.pm:617 lib/Padre/Document/Perl.pm:673 #: lib/Padre/Document/Perl.pm:692 msgid "Check cancelled" msgstr "Comprobación cancelada" #: lib/Padre/Wx/ActionLibrary.pm:1707 msgid "Check the current file for common beginner errors" msgstr "Detecta errores típicos de principiante en el archivo actual" #: lib/Padre/Locale.pm:431 msgid "Chinese" msgstr "Chino" #: lib/Padre/Locale.pm:441 lib/Padre/Wx/FBP/About.pm:343 msgid "Chinese (Simplified)" msgstr "Chino (Simplificado)" #: lib/Padre/Locale.pm:451 lib/Padre/Wx/FBP/About.pm:364 msgid "Chinese (Traditional)" msgstr "Chino (Tradicional)" #: lib/Padre/Wx/Main.pm:4298 lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "Elegir archivo" #: lib/Padre/Wx/FBP/About.pm:218 msgid "Chris Dolan" msgstr "Chris Dolan" #: lib/Padre/Wx/FBP/About.pm:358 msgid "Chuanren Wu" msgstr "Chuanren Wu" #: lib/Padre/Wx/FBP/About.pm:272 msgid "Claudio Ramirez" msgstr "Claudio Ramírez" #: lib/Padre/Wx/FBP/Preferences.pm:677 msgid "Clean up file content on saving (for supported document types)" msgstr "Limpiar el contenido del archivo al guardar (sólo para tipos de documentos compatibles)" #: lib/Padre/Wx/Dialog/OpenResource.pm:221 msgid "Click on the arrow for filter settings" msgstr "Haga clic en la flecha para ver la configuración de filtro" #: lib/Padre/Wx/FBP/Patch.pm:120 lib/Padre/Wx/FBP/Text.pm:56 #: lib/Padre/Wx/FBP/PluginManager.pm:128 lib/Padre/Wx/FBP/About.pm:666 #: lib/Padre/Wx/FBP/SLOC.pm:176 lib/Padre/Wx/FBP/Sync.pm:253 #: lib/Padre/Wx/FBP/Diff.pm:94 lib/Padre/Wx/FBP/Document.pm:254 #: lib/Padre/Wx/FBP/SessionManager.pm:119 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 lib/Padre/Wx/Dialog/WindowList.pm:279 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "Cerrar" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close &Files..." msgstr "C&errar archivos..." #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close &all Files" msgstr "Cerrar todos los &archivos" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close &this Project" msgstr "Cerrar es&te proyecto" #: lib/Padre/Wx/Main.pm:5199 msgid "Close all" msgstr "Cerrar todos" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all &other Files" msgstr "Cerrar l&os demás archivos" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Cierra todos los archivos pertenecientes al proyecto actual" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Cierra todos los archivos excepto el actual" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Cierra todos los archivos abiertos en el editor" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Cierra todos los archivos que no pertenecen al proyecto actual" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "Cierra el documento actual" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Close current document and remove the file from disk" msgstr "Cierra el documento actual y elimina el archivo del disco" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other &Projects" msgstr "Cerrar otros &proyectos" #: lib/Padre/Wx/Main.pm:5268 msgid "Close some" msgstr "Cerrar algunos" #: lib/Padre/Wx/Main.pm:5245 msgid "Close some files" msgstr "Cerrar algunos archivos" #: lib/Padre/Wx/ActionLibrary.pm:1683 msgid "Close the highest priority dialog or panel" msgstr "Cerrar el cuadro de diálogo o panel de prioridad más alta" #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "Cerrar esta ventana" #: lib/Padre/Wx/FBP/SLOC.pm:67 msgid "Code Lines:" msgstr "Líneas de código:" #: lib/Padre/Config.pm:579 msgid "Code Order" msgstr "Orden del código" #: lib/Padre/Wx/FBP/FoundInFiles.pm:91 msgid "Collapse All" msgstr "Contraer todo" #: lib/Padre/Wx/FBP/Preferences.pm:144 msgid "Coloured text in output window (ANSI)" msgstr "Texto coloreado en la ventana de resultados (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1927 msgid "Combine scattered POD at the end of the document" msgstr "Combina al final del documento el POD distribuido" #: lib/Padre/Wx/Command.pm:97 msgid "Command" msgstr "Comando" #: lib/Padre/Wx/Main.pm:2721 msgid "Command line" msgstr "Línea de comandos" #: lib/Padre/Wx/FBP/Preferences.pm:555 msgid "Command line files open in existing Padre instance" msgstr "Archivos de línea de comandos abiertos en la instancia de Padre existente" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "Comment out selected lines or the current line" msgstr "Aplica marcas de comentario a las líneas seleccionadas o a la línea actual" #: lib/Padre/Wx/ActionLibrary.pm:944 msgid "Comment out/remove comment for selected lines or the current line" msgstr "Aplica o quita marcas de comentario a las líneas seleccionadas o a la línea actual" #: lib/Padre/Wx/FBP/SLOC.pm:79 msgid "Comments Lines:" msgstr "Líneas de comentarios:" #: lib/Padre/Wx/VCS.pm:499 msgid "Commit file/directory to repository?" msgstr "¿Desea depositar el archivo o directorio en el repositorio?" #: lib/Padre/Wx/Dialog/About.pm:112 msgid "Config" msgstr "Config" #: lib/Padre/Wx/FBP/Sync.pm:134 lib/Padre/Wx/FBP/Sync.pm:163 msgid "Confirm:" msgstr "Confirmar:" #: lib/Padre/Wx/VCS.pm:251 msgid "Conflicted" msgstr "En conflicto" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "Conectándose al servidor FTP %s..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Conexión con el servidor FTP establecida correctamente." #: lib/Padre/Wx/FBP/SLOC.pm:103 msgid "Constructive Cost Model (COCOMO)" msgstr "Modelo constructivo de costes (COCOMO)" #: lib/Padre/Wx/FBP/Preferences.pm:183 msgid "Content Assist" msgstr "Ayuda para contenido" #: lib/Padre/Config.pm:787 msgid "Contents of the status bar" msgstr "Contenido de la barra de estado" #: lib/Padre/Config.pm:532 msgid "Contents of the window title" msgstr "Contenido del título de la ventana" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Control character" msgstr "Carácter de control" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Control characters" msgstr "Caracteres de control" #: lib/Padre/Wx/Menu/Edit.pm:188 msgid "Convert &Encoding" msgstr "Conv&ertir codificación" #: lib/Padre/Wx/Menu/Edit.pm:210 msgid "Convert &Line Endings" msgstr "Convertir caracteres de fin de &línea" #: lib/Padre/Wx/ActionLibrary.pm:1044 msgid "Convert all tabs to spaces in the current document" msgstr "Convierte todas las tabulaciones en espacios en el documento actual" #: lib/Padre/Wx/ActionLibrary.pm:1054 msgid "Convert all the spaces to tabs in the current document" msgstr "Convierte todos los espacios en tabulaciones en el documento actual" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "Copiar &especiales" #: lib/Padre/Wx/VCS.pm:265 msgid "Copied" msgstr "Copiado" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Copiar" #: lib/Padre/Wx/ActionLibrary.pm:734 msgid "Copy &Directory Name" msgstr "Copiar nombre de &directorio" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "Copy Editor &Content" msgstr "&Copiar contenido del editor" #: lib/Padre/Wx/ActionLibrary.pm:719 msgid "Copy F&ilename" msgstr "Copiar nom&bre de archivo" #: lib/Padre/Wx/ActionLibrary.pm:704 msgid "Copy Full &Filename" msgstr "Copiar nombre de arc&hivo completo" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Copiar nombre" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Copiar valor" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Copy filename to clipboard" msgstr "Copiar nombre de archivo al portapapeles" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Copy the current tab into a new document" msgstr "Copiar la pestaña actual a un documento nuevo" #: lib/Padre/Wx/FBP/About.pm:87 msgid "" "Copyright 2008–2012 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "Copyright 2008–2012 El equipo de desarrollo de Padre - Padre es software libre; puede redistribuirlo o modificarlo bajo los mismos términos que Perl 5." #: lib/Padre/Wx/Directory/TreeCtrl.pm:197 #, perl-format msgid "Could not create: '%s': %s" msgstr "No se pudo crear: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, perl-format msgid "Could not delete: '%s': %s" msgstr "No se pudo eliminar: '%s': %s" #: lib/Padre/Wx/Panel/Debugger.pm:598 #, perl-format msgid "Could not evaluate '%s'" msgstr "No se pudo evaluar '%s'" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "No se encontró KDE ni GNOME" #: lib/Padre/Wx/Dialog/HelpSearch.pm:312 msgid "Could not find a help provider for " msgstr "No se encontró un proveedor de ayuda para " #: lib/Padre/Wx/Main.pm:4286 #, perl-format msgid "Could not find file '%s'" msgstr "No se encontró el archivo: '%s'" #: lib/Padre/Wx/Main.pm:2787 msgid "Could not find perl executable" msgstr "No se encontró el ejecutable de Perl" #: lib/Padre/Wx/Main.pm:2757 lib/Padre/Wx/Main.pm:2818 #: lib/Padre/Wx/Main.pm:2872 msgid "Could not find project root" msgstr "No se encontró la carpeta raíz del proyecto" #: lib/Padre/Wx/ActionLibrary.pm:2262 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "No se encuentra el complemento Padre::Plugin::My" #: lib/Padre/PluginManager.pm:906 msgid "Could not locate project directory." msgstr "No se encontró el directorio del proyecto." #: lib/Padre/Wx/Main.pm:4588 #, perl-format msgid "Could not reload file: %s" msgstr "No se pudo volver a cargar el archivo: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:178 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr "No se pudo cambiar el nombre de '%s' a '%s': %s" #: lib/Padre/Wx/Main.pm:5025 msgid "Could not save file: " msgstr "No se pudo guardar el archivo: " #: lib/Padre/Wx/CPAN.pm:226 msgid "Count" msgstr "Recuento" #: lib/Padre/Wx/Directory/TreeCtrl.pm:290 #: lib/Padre/Wx/Directory/TreeCtrl.pm:349 msgid "Create Directory" msgstr "Crear directorio" #: lib/Padre/Wx/ActionLibrary.pm:1793 msgid "Create Project &Tagsfile" msgstr "Crear archivo de e&tiquetas de proyecto" #: lib/Padre/Wx/ActionLibrary.pm:1296 msgid "Create a bookmark in the current file current row" msgstr "Crea un marcador en la línea actual del archivo actual" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by Gábor Szabó" msgstr "Creado por Gábor Szabó" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "" "Creates a perltags - file for the current project supporting find_method and " "autocomplete." msgstr "Crea un archivo perltags para el proyecto actual que admite los métodos find_method y autocomplete." #: lib/Padre/Wx/FBP/Preferences.pm:1149 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:673 msgid "Cu&t" msgstr "Cor&tar" #: lib/Padre/Document/Perl.pm:691 #, perl-format msgid "Current '%s' not found" msgstr "No se encuentra el %s actual." #: lib/Padre/Wx/Dialog/OpenResource.pm:244 msgid "Current Directory: " msgstr "Directorio actual: " #: lib/Padre/Document/Perl.pm:672 msgid "Current cursor does not seem to point at a method" msgstr "No parece que el cursor apunte a un método" #: lib/Padre/Document/Perl.pm:616 lib/Padre/Document/Perl.pm:650 msgid "Current cursor does not seem to point at a variable" msgstr "No parece que el cursor apunte a una variable" #: lib/Padre/Document/Perl.pm:812 lib/Padre/Document/Perl.pm:862 #: lib/Padre/Document/Perl.pm:899 msgid "Current cursor does not seem to point at a variable." msgstr "El cursor actual no parece apuntar a una variable." #: lib/Padre/Wx/Main.pm:2812 lib/Padre/Wx/Main.pm:2863 msgid "Current document has no filename" msgstr "El documento actual no tiene nombre de archivo" #: lib/Padre/Wx/Main.pm:2866 msgid "Current document is not a .t file" msgstr "El documento actual no es un archivo .t" #: lib/Padre/Wx/VCS.pm:206 msgid "Current file is not in a version control system" msgstr "El archivo actual no está en un sistema de control de versiones" #: lib/Padre/Wx/VCS.pm:197 msgid "Current file is not saved in a version control system" msgstr "El archivo actual no está guardado en un sistema de control de versiones" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "Número de línea actual: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "Posición actual: %s" #: lib/Padre/Wx/FBP/Preferences.pm:727 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "Velocidad de parpadeo del cursor (milisegundos - 0 = desactivado, 500 = predeterminado)" #: lib/Padre/Wx/ActionLibrary.pm:1878 msgid "" "Cut the current selection and create a new sub from it. A call to this sub " "is added in the place where the selection was." msgstr "Corta la selección actual y crea una subrutina nueva a partir de ella. La selección se sustituirá por una llamada a la subrutina." #: lib/Padre/Locale.pm:167 lib/Padre/Wx/FBP/About.pm:379 msgid "Czech" msgstr "Checo" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "D&uplicate" msgstr "D&uplicar" #: lib/Padre/Wx/Dialog/WindowList.pm:355 msgid "DELETED" msgstr "ELIMINADO" #: lib/Padre/Locale.pm:177 msgid "Danish" msgstr "Danés" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "Fecha/Hora" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:370 msgid "Debug" msgstr "Depurar" #: lib/Padre/Wx/Panel/DebugOutput.pm:50 msgid "Debug Output" msgstr "Resultados del depurador" #: lib/Padre/Wx/FBP/Debugger.pm:552 msgid "Debug-Output Options" msgstr "Opciones de resultados del depurador" #: lib/Padre/Wx/Panel/Debugger.pm:60 msgid "Debugger" msgstr "Depurador" #: lib/Padre/Wx/Panel/Debugger.pm:252 msgid "Debugger is already running" msgstr "El depurador ya se está ejecutando" #: lib/Padre/Wx/Panel/Debugger.pm:321 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "Error en la depuración. ¿Ha comprobado si hay errores de sintaxis en el programa?" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "Predeterminado" #: lib/Padre/Wx/FBP/Preferences.pm:588 msgid "Default Newline Format:" msgstr "Formato predeterminado de carácter de nueva línea:" #: lib/Padre/Wx/FBP/Preferences.pm:603 msgid "Default Project Directory:" msgstr "Directorio predeterminado del proyecto:" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Valor predeterminado:" #: lib/Padre/Wx/FBP/Preferences.pm:636 msgid "Default word wrap on for each file" msgstr "Modo de ajuste de línea predeterminado para cada archivo" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "Retrasar 1 segundo la cola de acciones" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "Retrasar 10 segundos la cola de acciones" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "Retrasar 30 segundos la cola de acciones" #: lib/Padre/Wx/FBP/Sync.pm:236 lib/Padre/Wx/Directory/TreeCtrl.pm:379 #: lib/Padre/Wx/Dialog/Preferences.pm:36 msgid "Delete" msgstr "Eliminar" #: lib/Padre/Wx/FBP/Bookmarks.pm:111 msgid "Delete &All" msgstr "&Borrar todo" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Delete &Leading Spaces" msgstr "E&liminar espacios iniciales" #: lib/Padre/Wx/Directory/TreeCtrl.pm:266 msgid "Delete Directory" msgstr "Eliminar directorio" #: lib/Padre/Wx/Directory/TreeCtrl.pm:325 msgid "Delete File" msgstr "Eliminar archivo" #: lib/Padre/Wx/FBP/Breakpoints.pm:43 msgid "" "Delete MARKER_NOT_BREAKABLE\n" "Current File Only" msgstr "Eliminar MARKER_NOT_BREAKABLE\n" "Solo en archivo actual" #: lib/Padre/Wx/FBP/SessionManager.pm:103 msgid "Delete Session" msgstr "Eliminar sesión" #: lib/Padre/Wx/FBP/Breakpoints.pm:130 msgid "Delete all project Breakpoints" msgstr "Eliminar todos los puntos de interrupción del proyecto" #: lib/Padre/Wx/VCS.pm:538 msgid "Delete file from repository??" msgstr "¿Desea eliminar el archivo del repositorio?" #: lib/Padre/Wx/FBP/Preferences.pm:1218 msgid "Delete the keyboard binding" msgstr "Elimina el acceso directo de teclado" #: lib/Padre/Wx/VCS.pm:249 lib/Padre/Wx/VCS.pm:263 msgid "Deleted" msgstr "Eliminado" #: lib/Padre/Wx/Syntax.pm:53 msgid "Deprecation" msgstr "Deprecación" #: lib/Padre/Wx/Dialog/Preferences.pm:171 #: lib/Padre/Wx/Dialog/SessionManager2.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "Descripción" #: lib/Padre/Wx/Dialog/Advanced.pm:158 lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "Descripción:" #: lib/Padre/Wx/FBP/Preferences.pm:1520 msgid "Detect Perl 6 files" msgstr "Detectar archivos de Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1049 msgid "Detect indent settings for each file" msgstr "Detectar configuración de sangría para cada archivo" #: lib/Padre/Wx/FBP/About.pm:842 msgid "Development" msgstr "Desarrollo" #: lib/Padre/Wx/FBP/SLOC.pm:156 msgid "Development Cost (USD):" msgstr "Coste de desarrollo (en dólares estadounidenses):" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "No especificó un nombre de marcador" #: lib/Padre/CPAN.pm:113 lib/Padre/CPAN.pm:137 msgid "Did not provide a distribution" msgstr "No especificó una distribución" #: lib/Padre/Wx/Dialog/Bookmarks.pm:94 msgid "Did not select a bookmark" msgstr "No seleccionó un marcador" #: lib/Padre/Wx/FBP/Diff.pm:29 msgid "Diff" msgstr "Diferencias" #: lib/Padre/Wx/Dialog/Patch.pm:479 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "Diff se ejecutó correctamente; debe ver una pestaña nueva llamada %s en el editor" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Digits" msgstr "Dígitos" #: lib/Padre/Config.pm:635 msgid "Directories First" msgstr "Directorios primero" #: lib/Padre/Config.pm:636 msgid "Directories Mixed" msgstr "Directorios mezclados" #: lib/Padre/Wx/Directory/TreeCtrl.pm:95 msgid "Directory" msgstr "Seleccionar directorio" #: lib/Padre/Wx/FBP/FindInFiles.pm:73 lib/Padre/Wx/FBP/ReplaceInFiles.pm:91 msgid "Directory:" msgstr "Directorio:" #: lib/Padre/Wx/FBP/About.pm:403 msgid "Dirk De Nijs" msgstr "Dirk De Nijs" #: lib/Padre/PluginHandle.pm:27 msgid "Disabled" msgstr "Deshabilitado" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Disk" msgstr "Disco" #: lib/Padre/Wx/FBP/Debugger.pm:143 msgid "Display Value" msgstr "Mostrar valor" #: lib/Padre/Wx/CPAN.pm:207 lib/Padre/Wx/CPAN.pm:216 lib/Padre/Wx/CPAN.pm:225 #: lib/Padre/Wx/Dialog/About.pm:131 msgid "Distribution" msgstr "Distribución" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "No volver a mostrar" #: lib/Padre/Wx/Main.pm:5386 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "¿Realmente desea cerrar y eliminar %s del disco?" #: lib/Padre/Wx/VCS.pm:518 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "¿Desea agregar '%s' al repositorio?" #: lib/Padre/Wx/VCS.pm:498 msgid "Do you want to commit?" msgstr "¿Desea depositar el archivo?" #: lib/Padre/Wx/Main.pm:3117 msgid "Do you want to continue?" msgstr "¿Desea continuar?" #: lib/Padre/Wx/VCS.pm:537 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "¿Desea eliminar '%s' del repositorio?" #: lib/Padre/Wx/Dialog/Preferences.pm:488 msgid "Do you want to override it with the selected action?" msgstr "¿Desea reemplazarlo con la acción seleccionada?" #: lib/Padre/Wx/VCS.pm:564 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "¿Desea realizar los cambios realizados a '%s'?" #: lib/Padre/Wx/FBP/Document.pm:123 msgid "Document" msgstr "Documento" #: lib/Padre/Wx/FBP/Document.pm:67 msgid "Document Class" msgstr "Clase de documento" #: lib/Padre/Wx/FBP/Document.pm:29 msgid "Document Information" msgstr "Información del documento" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "Herramientas de documento" #: lib/Padre/Wx/FBP/Document.pm:55 msgid "Document Type" msgstr "Tipo de documento" #: lib/Padre/Wx/Main.pm:6814 #, perl-format msgid "Document encoded to (%s)" msgstr "Documento codificado como (%s)" #: lib/Padre/Wx/Dialog/Preferences.pm:32 msgid "Down" msgstr "Abajo" #: lib/Padre/Wx/FBP/Sync.pm:219 msgid "Download" msgstr "Descargar" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "Volcar el objeto Padre en STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Vuelca el objeto Padre completo en STDOUT para realizar pruebas o depurar." #: lib/Padre/Locale.pm:351 lib/Padre/Wx/FBP/About.pm:394 msgid "Dutch" msgstr "Neerlandés" #: lib/Padre/Locale.pm:361 msgid "Dutch (Belgium)" msgstr "Neerlandés (Bélgica)" #: lib/Padre/Wx/FBP/Debugger.pm:376 msgid "" "E\n" "Display all thread ids the current one will be identified: ." msgstr "E\n" "Muestra todos los identificadores de hilo; se identificará el actual: ." #: lib/Padre/Wx/ActionLibrary.pm:1031 msgid "EOL to &Mac Classic" msgstr "EOL a &Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1021 msgid "EOL to &Unix" msgstr "EOL a &Unix" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "EOL to &Windows" msgstr "EOL a &Windows" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:364 msgid "Edit" msgstr "Editar" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Edit user and host preferences" msgstr "Editar preferencias de usuario y host" #: lib/Padre/Wx/Dialog/WindowList.pm:224 msgid "Editor" msgstr "Editor" #: lib/Padre/Wx/FBP/Preferences.pm:867 msgid "Editor Bookmark Support" msgstr "Compatibilidad con marcadores del editor" #: lib/Padre/Wx/FBP/Preferences.pm:875 msgid "Editor Code Folding" msgstr "Plegado de código del editor" #: lib/Padre/Wx/FBP/Preferences.pm:799 msgid "Editor Current Line Background Colour" msgstr "Color de fondo de la línea actual del editor" #: lib/Padre/Wx/FBP/Preferences.pm:883 msgid "Editor Cursor Memory" msgstr "Memoria de cursor del editor" #: lib/Padre/Wx/FBP/Preferences.pm:907 msgid "Editor Diff Feature" msgstr "Función de detección de diferencias del editor" #: lib/Padre/Wx/FBP/Preferences.pm:775 msgid "Editor Font" msgstr "Fuente del editor" #: lib/Padre/Wx/FBP/Preferences.pm:619 msgid "Editor Options" msgstr "Opciones del editor" #: lib/Padre/Wx/FBP/Preferences.pm:891 msgid "Editor Session Support" msgstr "Compatibilidad con sesiones del editor" #: lib/Padre/Wx/FBP/Preferences.pm:693 lib/Padre/Wx/FBP/Preferences.pm:1925 msgid "Editor Style" msgstr "Estilo del editor" #: lib/Padre/Wx/FBP/Preferences.pm:899 msgid "Editor Syntax Annotations" msgstr "Anotaciones de sintaxis del editor" #: lib/Padre/Wx/Dialog/Sync.pm:155 msgid "Email and confirmation do not match." msgstr "El correo electrónico no coincide con la confirmación." #: lib/Padre/Wx/FBP/Sync.pm:75 lib/Padre/Wx/FBP/Sync.pm:120 msgid "Email:" msgstr "Correo electrónico:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:651 msgid "Empty regex" msgstr "Expresión regular vacía" #: lib/Padre/Wx/FBP/PluginManager.pm:96 msgid "Enable" msgstr "Habilitar" #: lib/Padre/Wx/FBP/Preferences.pm:1397 msgid "Enable Perl beginner mode" msgstr "Habilitar el modo de Perl para principiantes" #: lib/Padre/Wx/FBP/Preferences.pm:652 msgid "Enable Smart highlighting while typing" msgstr "Habilitar resaltado de sintaxis inteligente al escribir" #: lib/Padre/Config.pm:1418 msgid "Enable document differences feature" msgstr "Habilitar función de detección de diferencias de documentos" #: lib/Padre/Config.pm:1371 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "Habilitar o deshabilitar la ejecución con Devel::EndStats (si está instalado). " #: lib/Padre/Config.pm:1390 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "Habilitar o deshabilitar la ejecución con Devel::TraceUse (si está instalado). " #: lib/Padre/Config.pm:1409 msgid "Enable syntax checker annotations in the editor" msgstr "Habilitar anotaciones del comprobador de sintaxis en el editor" #: lib/Padre/Config.pm:1436 msgid "Enable the CPAN Explorer, powered by MetaCPAN" msgstr "Habilitar el Explorador de CPAN, basado en MetaCPAN" #: lib/Padre/Config.pm:1454 msgid "Enable the experimental command line interface" msgstr "Habilitar la interfaz de línea de comandos experimental" #: lib/Padre/Config.pm:1427 msgid "Enable version control system support" msgstr "Habilitar compatibilidad con sistema de control de versiones" #: lib/Padre/PluginHandle.pm:28 msgid "Enabled" msgstr "Habilitado" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "Encode Document &to..." msgstr "Codificar &documento como..." #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Encode Document to &System Default" msgstr "Aplicar al documento la codificación predeterminada del &sistema" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Encode Document to &utf-8" msgstr "Codificar documento como &utf-8" #: lib/Padre/Wx/Main.pm:6836 msgid "Encode document to..." msgstr "Codificar documento como..." #: lib/Padre/Wx/Main.pm:6835 msgid "Encode to:" msgstr "Codificar como:" #: lib/Padre/Wx/FBP/Document.pm:91 msgid "Encoding" msgstr "Codificación" #: lib/Padre/Wx/Dialog/Preferences.pm:38 msgid "End" msgstr "Fin" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "End case modification/metacharacter quoting" msgstr "Modificación de último caso/escape de metacaracteres" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "End of line" msgstr "Final de línea" #: lib/Padre/Locale.pm:197 msgid "English" msgstr "Inglés" #: lib/Padre/Locale.pm:125 msgid "English (Australia)" msgstr "Inglés (Australia)" #: lib/Padre/Locale.pm:206 msgid "English (Canada)" msgstr "Inglés (Canadá)" #: lib/Padre/Locale.pm:215 msgid "English (New Zealand)" msgstr "Inglés (Nueva Zelanda)" #: lib/Padre/Locale.pm:86 msgid "English (United Kingdom)" msgstr "Inglés (Reino Unido)" #: lib/Padre/Locale.pm:226 msgid "English (United States)" msgstr "Inglés (Estados Unidos)" #: lib/Padre/Wx/FBP/About.pm:610 msgid "Enrique Nell" msgstr "Enrique Nell" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enter" msgstr "Entrar" #: lib/Padre/CPAN.pm:127 msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "Especifique la dirección URL desde la que se va a instalar\n" "p. ej., http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:214 msgid "Enter parts of the resource name to find it" msgstr "Escriba partes del nombre del recurso para buscarlo" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "Era" #: lib/Padre/PluginHandle.pm:23 lib/Padre/Document.pm:455 #: lib/Padre/Wx/Editor.pm:939 lib/Padre/Wx/Main.pm:5026 #: lib/Padre/Wx/Role/Dialog.pm:95 lib/Padre/Wx/Dialog/PluginManager.pm:209 #: lib/Padre/Wx/Dialog/Sync.pm:79 lib/Padre/Wx/Dialog/Sync.pm:87 #: lib/Padre/Wx/Dialog/Sync.pm:100 lib/Padre/Wx/Dialog/Sync.pm:118 #: lib/Padre/Wx/Dialog/Sync.pm:135 lib/Padre/Wx/Dialog/Sync.pm:146 #: lib/Padre/Wx/Dialog/Sync.pm:156 lib/Padre/Wx/Dialog/Sync.pm:174 #: lib/Padre/Wx/Dialog/Sync.pm:185 lib/Padre/Wx/Dialog/Sync.pm:196 #: lib/Padre/Wx/Dialog/Sync.pm:207 msgid "Error" msgstr "Error" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Error al conectarse a %s:%s: %s" #: lib/Padre/Wx/Main.pm:5402 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "Error al eliminar %s:\n" "%s" #: lib/Padre/Wx/Main.pm:5613 msgid "Error loading perl filter dialog." msgstr "Error al cargar el cuadro de diálogo de filtros en Perl." #: lib/Padre/Wx/Dialog/PluginManager.pm:137 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Error al cargar la documentación pod para la clase '%s': %s" #: lib/Padre/Wx/Main.pm:5584 msgid "Error loading regex editor." msgstr "Error al cargar el editor de expresiones regulares." #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Error de inicio de sesión en %s:%s: %s" #: lib/Padre/Wx/Main.pm:6790 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "Error devuelto por la herramienta de filtrado:\n" "%s" #: lib/Padre/Wx/Main.pm:6772 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "Error al ejecutar la herramienta de filtrado:\n" "%s" #: lib/Padre/PluginManager.pm:849 #, perl-format msgid "Error when calling menu for plug-in %s: %s" msgstr "Error al llamar al menú del complemento %s: %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:83 lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:327 #, perl-format msgid "Error while calling %s %s" msgstr "Error al llamar a %s %s" #: lib/Padre/Document.pm:282 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "Error al determinar el tipo MIME.\n" "Posiblemente sea un problema de codificación.\n" "¿Está intentando cargar un archivo binario?" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "Error al cargar Aspect. ¿Está instalado?" #: lib/Padre/Document.pm:232 msgid "Error while opening file: no file object" msgstr "Error al abrir archivo: no hay ningún objeto de archivo" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Error al buscar POD" #: lib/Padre/Wx/VCS.pm:448 msgid "Error while trying to perform Padre action" msgstr "Error al intentar ejecutar una acción de Padre" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:91 #: lib/Padre/Wx/Dialog/OpenResource.pm:119 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Error al intentar ejecutar una acción de Padre: %s" #: lib/Padre/Wx/Dialog/PerlFilter.pm:323 msgid "Error:\n" msgstr "Error:\n" #: lib/Padre/Document/Perl.pm:510 msgid "Error: " msgstr "Error: " #: lib/Padre/Wx/Main.pm:6108 lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "Error: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:42 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Escape (Esc)" msgstr "Escape (Esc)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:138 msgid "Escape characters" msgstr "Caracteres de escape" #: lib/Padre/Wx/FBP/SLOC.pm:132 msgid "Estimated Project Years:" msgstr "Estimación de años de proyecto:" #: lib/Padre/Wx/FBP/Expression.pm:80 msgid "Evaluate" msgstr "Evaluar" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "Evaluar &expresión" #: lib/Padre/Wx/FBP/Expression.pm:29 msgid "Evaluate Expression" msgstr "Evaluar expresión" #: lib/Padre/Wx/FBP/Debugger.pm:424 msgid "" "Evaluate expression\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Same as print {$DB::OUT} expr in the current package. In particular, because " "this is just Perl's own print function.\n" "\n" "x [maxdepth] expr\n" "Evaluates its expression in list context and dumps out the result in a " "pretty-printed fashion. Nested data structures are printed out recursively," msgstr "Evaluar expresión\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Igual que print {$DB::OUT} expr en el paquete actual. En concreto, porque esto no es más que la función print de Perl.\n" "\n" "x [profundidadmáxima] expr\n" "Evalúa su expresión en contexto de lista y vuelca el resultado en formato legible. Las estructuras anidadas se imprimen en pantalla de forma recursiva," #: lib/Padre/Wx/Main.pm:4799 msgid "Exist" msgstr "Existe" #: lib/Padre/Wx/FBP/Bookmarks.pm:63 msgid "Existing Bookmarks:" msgstr "Marcadores existentes:" #: lib/Padre/Wx/FBP/FoundInFiles.pm:71 msgid "Expand All" msgstr "Expandir todo" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of " "commands. If it does not work, blame szabgab.\n" "\n" msgstr "Función experimental. Escriba '?' al final de la página para ver la lista de comandos. Si no funciona, es responsabilidad de szabgab.\n" "\n" #: lib/Padre/Wx/FBP/Debugger.pm:503 msgid "Expression To Evaluate" msgstr "Expresión que se va a evaluar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:484 msgid "Extended (&x)" msgstr "Extendida (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "" "Extended regular expressions allow free formatting (whitespace is ignored) " "and comments" msgstr "Expresiones regulares extendidas permiten formateo libre (blancos son ignorados) y comentarios" #: lib/Padre/Wx/ActionLibrary.pm:1876 msgid "Extract &Subroutine..." msgstr "Extraer &subrutina..." #: lib/Padre/Wx/ActionLibrary.pm:1889 msgid "Extract Subroutine" msgstr "Extraer subrutina" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "Contraseña de FTP" #: lib/Padre/Wx/Main.pm:4919 #, perl-format msgid "Failed to create path '%s'" msgstr "No se pudo crear la ruta '%s'" #: lib/Padre/Wx/Main.pm:1135 msgid "Failed to create server" msgstr "No se pudo crear el servidor" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "No se pudo eliminar el fragmento de POD" #: lib/Padre/PluginHandle.pm:402 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "No se pudo deshabilitar el complemento '%s': %s" #: lib/Padre/PluginHandle.pm:272 lib/Padre/PluginHandle.pm:299 #: lib/Padre/PluginHandle.pm:322 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "No se pudo habilitar el complemento '%s': %s" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "No se pudo ejecutar el proceso\n" #: lib/Padre/Wx/ActionLibrary.pm:1228 msgid "Failed to find any matches" msgstr "No se encontró ninguna coincidencia" #: lib/Padre/CPAN.pm:83 msgid "Failed to find your CPAN configuration" msgstr "No se encontró su configuración de CPAN" #: lib/Padre/PluginManager.pm:928 lib/Padre/PluginManager.pm:1022 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "No se pudo cargar el complemento '%s'\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "No fue posible combinar los fragmentos de POD" #: lib/Padre/Wx/Main.pm:3049 #, perl-format msgid "Failed to start '%s' command" msgstr "No se pudo iniciar el comando '%s'" #: lib/Padre/Wx/Dialog/Advanced.pm:130 lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Falso" #: lib/Padre/Wx/Syntax.pm:65 msgid "Fatal Error" msgstr "Error fatal" #: lib/Padre/Wx/FBP/CPAN.pm:278 msgid "Favorite" msgstr "Favorito" #: lib/Padre/Wx/FBP/About.pm:176 lib/Padre/Wx/FBP/About.pm:352 msgid "Fayland Lam" msgstr "Fayland Lam" #: lib/Padre/Wx/FBP/Preferences.pm:1926 msgid "Features" msgstr "Características" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:363 #: lib/Padre/Wx/Dialog/WindowList.pm:223 lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "Archivo" #: lib/Padre/Wx/Menu/File.pm:393 #, perl-format msgid "File %s not found." msgstr "No se encuentra el archivo %s." #: lib/Padre/Wx/FBP/Preferences.pm:1929 msgid "File Handling" msgstr "Administración de archivos" #: lib/Padre/Wx/FBP/Preferences.pm:391 msgid "File Outline" msgstr "Esquema de archivo" #: lib/Padre/Wx/FBP/Document.pm:210 msgid "File Size (Bytes)" msgstr "Tamaño de archivo (bytes)" #: lib/Padre/Wx/FBP/FindInFiles.pm:106 lib/Padre/Wx/FBP/ReplaceInFiles.pm:124 msgid "File Types:" msgstr "Tipos de archivos:" #: lib/Padre/Wx/Main.pm:4905 msgid "File already exists" msgstr "El archivo ya existe" #: lib/Padre/Wx/Main.pm:4798 msgid "File already exists. Overwrite it?" msgstr "El archivo ya existe. ¿Desea sobrescribirlo?" #: lib/Padre/Wx/Main.pm:5015 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "El archivo ha cambiado en disco desde que se guardó por última vez. ¿Desea sobrescribirlo?" #: lib/Padre/Wx/Main.pm:5110 msgid "File changed. Do you want to save it?" msgstr "El archivo ha cambiado. ¿Desea guardarlo?" #: lib/Padre/Wx/ActionLibrary.pm:295 lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "El archivo no pertenece a un proyecto" #: lib/Padre/Wx/Main.pm:4462 #, perl-format msgid "" "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "El nombre de archivo %s contiene el carácter * o ?, que tiene un significado especial en la mayoría de los sistemas. ¿Desea omitirlo?" #: lib/Padre/Wx/Main.pm:4482 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "No existe ningún archivo con nombre %s en el disco. ¿Desea omitirlo?" #: lib/Padre/Wx/Main.pm:5016 msgid "File not in sync" msgstr "El archivo no está sincronizado" #: lib/Padre/Wx/Main.pm:5380 msgid "File was never saved and has no filename - can't delete from disk" msgstr "El archivo no se ha guardado nunca, por lo que no tiene nombre de archivo; no se puede eliminar del disco" #: lib/Padre/Wx/FBP/Patch.pm:138 msgid "File-1" msgstr "Archivo-1" #: lib/Padre/Wx/FBP/Patch.pm:161 msgid "File-2" msgstr "Archivo-2" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Archivo/Directorio" #: lib/Padre/Wx/Notebook.pm:70 msgid "Files" msgstr "Archivos" #: lib/Padre/Wx/FBP/SLOC.pm:55 msgid "Files:" msgstr "Archivos:" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Comando de filtrado:" #: lib/Padre/Wx/ActionLibrary.pm:1134 msgid "Filter through &Perl..." msgstr "Filtrar mediante código &Perl..." #: lib/Padre/Wx/ActionLibrary.pm:1125 msgid "Filter through E&xternal Tool..." msgstr "Filtrar mediante herramienta e&xterna..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Filtrar mediante herramienta" #: lib/Padre/Wx/FBP/Snippet.pm:38 msgid "Filter:" msgstr "Filtro:" #: lib/Padre/Wx/ActionLibrary.pm:1126 msgid "" "Filters the selection (or the whole document) through any external command." msgstr "Filtra la selección (o todo el documento) mediante un comando externo." #: lib/Padre/Wx/FBP/Find.pm:30 msgid "Find" msgstr "Buscar" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "Buscar &todas" #: lib/Padre/Wx/ActionLibrary.pm:1754 msgid "Find &Method Declaration" msgstr "Buscar declaración de &método" #: lib/Padre/Wx/ActionLibrary.pm:1208 msgid "Find &Next" msgstr "Buscar &siguiente" #: lib/Padre/Wx/ActionLibrary.pm:1742 msgid "Find &Variable Declaration" msgstr "Buscar declaración de &variable" #: lib/Padre/Wx/ActionLibrary.pm:1730 msgid "Find Unmatched &Brace" msgstr "Buscar llave &desemparejada" #: lib/Padre/Wx/ActionLibrary.pm:1250 msgid "Find in Fi&les..." msgstr "Buscar en arc&hivos..." #: lib/Padre/Wx/FBP/Preferences.pm:485 lib/Padre/Wx/FBP/FindInFiles.pm:32 #: lib/Padre/Wx/Panel/FoundInFiles.pm:438 msgid "Find in Files" msgstr "Buscar en archivos" #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find text and replace it" msgstr "Buscar texto y reemplazarlo" #: lib/Padre/Wx/ActionLibrary.pm:1168 msgid "Find text or regular expressions using a traditional dialog" msgstr "Permite buscar texto o expresiones regulares en un cuadro de diálogo tradicional" #: lib/Padre/Wx/ActionLibrary.pm:1755 msgid "Find where the selected function was defined and put the focus there." msgstr "Establece el foco en la línea en la que se definió la función seleccionada." #: lib/Padre/Wx/ActionLibrary.pm:1743 msgid "" "Find where the selected variable was declared using \"my\" and put the focus " "there." msgstr "Establece el foco en la línea en la que se declaró con \"my\" la variable seleccionada." #: lib/Padre/Wx/FBP/FindFast.pm:55 msgid "Find:" msgstr "Buscar:" #: lib/Padre/Document/Perl.pm:948 msgid "First character of selection does not seem to point at a token." msgstr "Parece que el primer carácter de la selección no apunta a un token." #: lib/Padre/Wx/Editor.pm:1906 msgid "First character of selection must be a non-word character to align" msgstr "El primer carácter de la selección debe ser un carácter no alfabético para alinear" #: lib/Padre/Wx/ActionLibrary.pm:1519 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "Pliega todos los bloques que se pueden plegar (el plegado debe estar habilitado)" #: lib/Padre/Wx/Menu/View.pm:178 msgid "Font Si&ze" msgstr "Tamaño de &fuente" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "" "For new document try to guess the filename based on the file content and " "offer to save it." msgstr "Para un documento nuevo, intenta determinar el nombre del archivo a partir de su contenido y ofrece la posibilidad de guardar el archivo con ese nombre." #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Form feed" msgstr "Avance de página" #: lib/Padre/Wx/Syntax.pm:474 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "Se detectaron %d problemas en %s en %3.2f segundos." #: lib/Padre/Wx/Syntax.pm:480 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "Se detectaron %d problemas en %3.2f segundos." #: lib/Padre/Wx/Dialog/HelpSearch.pm:397 #, perl-format msgid "Found %s help topic(s)\n" msgstr "Se han encontrado %s temas de ayuda\n" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "Se han encontrado %s módulos descargados" #: lib/Padre/Locale.pm:283 lib/Padre/Wx/FBP/About.pm:409 msgid "French" msgstr "Francés" #: lib/Padre/Locale.pm:269 msgid "French (Canada)" msgstr "Francés (Canadá)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "A través de un amigo" #: lib/Padre/Wx/ActionLibrary.pm:1664 msgid "Full Sc&reen" msgstr "&Pantalla completa" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Función" #: lib/Padre/Wx/FBP/Preferences.pm:56 lib/Padre/Wx/FBP/Preferences.pm:376 msgid "Function List" msgstr "Lista de funciones" #: lib/Padre/Wx/FunctionList.pm:148 msgid "Functions" msgstr "Funciones" #: lib/Padre/Wx/FBP/About.pm:116 msgid "Gabor Szabo" msgstr "Gabor Szabo" #: lib/Padre/Wx/FBP/About.pm:302 lib/Padre/Wx/FBP/About.pm:589 msgid "Gabriel Vieira" msgstr "Gabriel Vieira" #: lib/Padre/Locale.pm:187 lib/Padre/Wx/FBP/About.pm:430 msgid "German" msgstr "Alemán" #: lib/Padre/Wx/Dialog/RegexEditor.pm:489 msgid "Global (&g)" msgstr "Global (&g)" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr "Ir a..." #: lib/Padre/Wx/ActionLibrary.pm:2446 msgid "Go to &Command Line Window" msgstr "Ir a ventana de línea de &comandos" #: lib/Padre/Wx/ActionLibrary.pm:2401 msgid "Go to &Functions Window" msgstr "Ir a ventana de &funciones" #: lib/Padre/Wx/ActionLibrary.pm:2457 msgid "Go to &Main Window" msgstr "Ir a ventana pr&incipal" #: lib/Padre/Wx/ActionLibrary.pm:1306 msgid "Go to Bookmar&k..." msgstr "Ir a &marcador" #: lib/Padre/Wx/ActionLibrary.pm:2390 msgid "Go to CPAN E&xplorer Window" msgstr "Ir a ventana E&xplorador de CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2413 msgid "Go to O&utline Window" msgstr "Ir a ventana de &esquema" #: lib/Padre/Wx/ActionLibrary.pm:2424 msgid "Go to Ou&tput Window" msgstr "Ir a ventana de &resultados" #: lib/Padre/Wx/ActionLibrary.pm:2435 msgid "Go to S&yntax Check Window" msgstr "Ir a ventana de comprobación de si&ntaxis" #: lib/Padre/Wx/FBP/Preferences.pm:923 msgid "Graphical Debugger Tool" msgstr "Herramienta de depuración gráfica" #: lib/Padre/Wx/Dialog/RegexEditor.pm:123 msgid "Grouping constructs" msgstr "Construcciones de agrupación" #: lib/Padre/Wx/FBP/Preferences.pm:1016 msgid "Guess from Current Document" msgstr "Detectar en el documento actual" #: lib/Padre/Wx/FBP/About.pm:493 msgid "Gyorgy Pasztor" msgstr "Gyorgy Pasztor" #: lib/Padre/Locale.pm:293 lib/Padre/Wx/FBP/About.pm:457 msgid "Hebrew" msgstr "Hebreo" #: lib/Padre/Wx/FBP/About.pm:194 lib/Padre/Wx/FBP/About.pm:439 msgid "Heiko Jansen" msgstr "Heiko Jansen" #: lib/Padre/Wx/Browser.pm:63 lib/Padre/Wx/Dialog/QuickMenuAccess.pm:373 msgid "Help" msgstr "Ayuda" #: lib/Padre/Wx/Dialog/HelpSearch.pm:41 lib/Padre/Wx/Dialog/HelpSearch.pm:98 msgid "Help Search" msgstr "Búsqueda en la ayuda" #: lib/Padre/Wx/ActionLibrary.pm:2582 msgid "Help by translating Padre to your local language" msgstr "Ayude a traducir Padre a su idioma" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "No se encuentra la Ayuda." #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Hex character" msgstr "Carácter hexadecimal" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Hexadecimal digits" msgstr "Dígitos hexadecimales" #: lib/Padre/Wx/ActionLibrary.pm:1564 msgid "Highlight the line where the cursor is" msgstr "Resalta la línea en la que se encuentra el cursor" #: lib/Padre/Wx/Directory.pm:595 msgid "Hit unfixed bug in directory browser, disabling it" msgstr "Localiza error sin corregir en el navegador de directorios, y lo deshabilita" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Home" msgstr "Inicio" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "Host" #: lib/Padre/Wx/Main.pm:6287 msgid "How many spaces for each tab:" msgstr "Número de espacios por tabulación:" #: lib/Padre/Locale.pm:303 lib/Padre/Wx/FBP/About.pm:484 msgid "Hungarian" msgstr "Húngaro" #: lib/Padre/Wx/ActionLibrary.pm:1346 msgid "If activated, do not allow moving around some of the windows" msgstr "Si está activada, no permite mover algunas de las ventanas" #: lib/Padre/Wx/Dialog/RegexEditor.pm:472 msgid "Ignore case (&i)" msgstr "No distinguir mayúsculas de minúsculas (&i)" #: lib/Padre/Wx/VCS.pm:252 lib/Padre/Wx/FBP/VCS.pm:205 msgid "Ignored" msgstr "Omitido" #: lib/Padre/Wx/FBP/Preferences.pm:1475 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "Incluir directorio: -I\n" "Habilitar comprobaciones de seguridad: -T\n" "Habilitar muchas advertencias útiles: -w\n" "Habilitar todas las advertencias: -W\n" "Deshabilitar todas las advertencias: -X" #: lib/Padre/PluginHandle.pm:26 msgid "Incompatible" msgstr "Incompatible" #: lib/Padre/Config.pm:895 msgid "Indent Deeply" msgstr "Sangría profunda" #: lib/Padre/Wx/FBP/Preferences.pm:1032 msgid "Indent Detection" msgstr "Detección de sangría" #: lib/Padre/Wx/FBP/Preferences.pm:955 msgid "Indent Settings" msgstr "Configuración de sangría" #: lib/Padre/Wx/FBP/Preferences.pm:980 msgid "Indent Spaces:" msgstr "Espacios de sangría:" #: lib/Padre/Wx/FBP/Preferences.pm:1074 msgid "Indent on Newline:" msgstr "Sangría en nueva línea:" #: lib/Padre/Config.pm:894 msgid "Indent to Same Depth" msgstr "Sangría a la misma profundidad" #: lib/Padre/Wx/FBP/Preferences.pm:1927 msgid "Indentation" msgstr "Sangría" #: lib/Padre/Wx/FBP/About.pm:844 msgid "Information" msgstr "Información" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "Entrada/salida:" #: lib/Padre/Wx/FBP/Snippet.pm:118 lib/Padre/Wx/FBP/Special.pm:78 #: lib/Padre/Wx/Menu/Edit.pm:119 lib/Padre/Wx/Dialog/Preferences.pm:35 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:270 msgid "Insert" msgstr "Insertar" #: lib/Padre/Wx/FBP/Snippet.pm:29 msgid "Insert Snippet" msgstr "Insertar fragmento" #: lib/Padre/Wx/FBP/Special.pm:29 msgid "Insert Special Values" msgstr "Insertar valores especiales" #: lib/Padre/Wx/FBP/CPAN.pm:207 msgid "Insert Synopsis" msgstr "Insertar sinopsis" #: lib/Padre/Wx/FBP/CPAN.pm:239 msgid "Install" msgstr "Instalar" #: lib/Padre/Wx/ActionLibrary.pm:2331 msgid "Install &Remote Distribution" msgstr "Instalar distribución &remota" #: lib/Padre/Wx/ActionLibrary.pm:2321 msgid "Install L&ocal Distribution" msgstr "Instalar distribución l&ocal" #: lib/Padre/CPAN.pm:128 msgid "Install Local Distribution" msgstr "Instalar distribución local" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Entero" #: lib/Padre/Wx/Syntax.pm:71 msgid "Internal Error" msgstr "Error interno" #: lib/Padre/Wx/Main.pm:6109 msgid "Internal error" msgstr "Error interno" #: lib/Padre/Wx/ActionLibrary.pm:1903 msgid "Introduce &Temporary Variable..." msgstr "Introducir variable &temporal..." #: lib/Padre/Wx/ActionLibrary.pm:1912 msgid "Introduce Temporary Variable" msgstr "Insertar variable temporal" #: lib/Padre/Locale.pm:317 lib/Padre/Wx/FBP/About.pm:499 msgid "Italian" msgstr "Italiano" #: lib/Padre/Wx/FBP/Preferences.pm:105 msgid "Item Regular Expression:" msgstr "Expresión regular de elemento:" #: lib/Padre/Locale.pm:327 lib/Padre/Wx/FBP/About.pm:514 msgid "Japanese" msgstr "Japonés" #: lib/Padre/Wx/Main.pm:4405 msgid "JavaScript Files" msgstr "Archivos JavaScript" #: lib/Padre/Wx/FBP/About.pm:146 lib/Padre/Wx/FBP/About.pm:418 msgid "Jerome Quelin" msgstr "Jerome Quelin" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Join the next line to the end of the current line." msgstr "Une la línea siguiente al final de la línea actual." #: lib/Padre/Wx/ActionLibrary.pm:1283 msgid "Jump to a specific line number or character position" msgstr "Salta a una posición de carácter o a un número de línea específico" #: lib/Padre/Wx/ActionLibrary.pm:792 msgid "Jump to the code that has been changed" msgstr "Saltar al código que ha cambiado" #: lib/Padre/Wx/ActionLibrary.pm:781 msgid "Jump to the code that triggered the next error" msgstr "Salta al código que desencadenó el siguiente error" #: lib/Padre/Wx/ActionLibrary.pm:872 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Salta a la llave o el paréntesis de apertura o cierre correspondiente: { }, ( ), [ ], < >" #: lib/Padre/Wx/FBP/About.pm:278 msgid "Kaare Rasmussen" msgstr "Kaare Rasmussen" #: lib/Padre/Wx/FBP/About.pm:290 msgid "Kartik Thakore" msgstr "Kartik Thakore" #: lib/Padre/Wx/FBP/About.pm:248 lib/Padre/Wx/FBP/About.pm:538 msgid "Keedi Kim" msgstr "Keedi Kim" #: lib/Padre/Wx/FBP/About.pm:242 lib/Padre/Wx/FBP/About.pm:523 msgid "Kenichi Ishigaki" msgstr "Kenichi Ishigaki" #: lib/Padre/Wx/Dialog/About.pm:136 msgid "Kernel" msgstr "Núcleo" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Kevin Dawson" msgstr "Kevin Dawson" #: lib/Padre/Wx/FBP/Preferences.pm:1928 msgid "Key Bindings" msgstr "Asociaciones de teclas" #: lib/Padre/Wx/FBP/About.pm:553 msgid "Kjetil Skotheim" msgstr "Kjetil Skotheim" #: lib/Padre/Locale.pm:465 msgid "Klingon" msgstr "Klingon" #: lib/Padre/Locale.pm:337 lib/Padre/Wx/FBP/About.pm:529 msgid "Korean" msgstr "Coreano" #: lib/Padre/Wx/FBP/Debugger.pm:296 msgid "" "L [abw]\n" "List (default all) actions, breakpoints and watch expressions" msgstr "L [abw]\n" "Muestra acciones, puntos de interrupción y expresiones de inspección (todo de manera predeterminada)" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Primera etiqueta" #: lib/Padre/Wx/Menu/View.pm:210 msgid "Lan&guage" msgstr "Len&guaje" #: lib/Padre/Wx/FBP/Preferences.pm:1930 msgid "Language - Perl 5" msgstr "Lenguaje - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:1931 msgid "Language - Perl 6" msgstr "Lenguaje - Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1380 lib/Padre/Wx/FBP/Preferences.pm:1503 msgid "Language Integration" msgstr "Integración de lenguaje" #: lib/Padre/Wx/Dialog/SessionManager2.pm:30 msgid "Last Updated" msgstr "Última actualización" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "Última actualización" #: lib/Padre/Wx/ActionLibrary.pm:2111 msgid "Launch Debugger" msgstr "Iniciar depurador" #: lib/Padre/Wx/Dialog/Preferences.pm:33 msgid "Left" msgstr "Izquierda" #: lib/Padre/Config.pm:58 msgid "Left Panel" msgstr "Panel izquierdo" #: lib/Padre/Wx/FBP/Diff.pm:72 msgid "Left side" msgstr "Lado izquierdo" #: lib/Padre/Wx/ActionLibrary.pm:1781 msgid "" "Like pressing ENTER somewhere on a line, but use the current position as " "ident for the new line." msgstr "Como presionar Entrar en algún punto de la línea, pero usando la posición actual como sangría para el carácter de nueva línea." #: lib/Padre/Wx/Syntax.pm:509 #, perl-format msgid "Line %d: (%s) %s" msgstr "Línea %d: (%s) %s" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "Línea %d: %s" #: lib/Padre/Wx/Dialog/Goto.pm:342 msgid "Line number" msgstr "Número de línea" #: lib/Padre/Wx/FBP/Document.pm:138 lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "Líneas" #: lib/Padre/Wx/Dialog/WindowList.pm:210 msgid "List of open files" msgstr "Lista de archivos abiertos" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Lista de sesiones" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "" "List the files that match the current selection and let the user pick one to " "open" msgstr "Muestra los archivos que coinciden con la selección actual y permite que el usuario seleccione el que desea abrir" #: lib/Padre/PluginHandle.pm:25 msgid "Loaded" msgstr "Cargado" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "%s módulos cargados" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Loc&k User Interface" msgstr "&Bloquear interfaz de usuario" #: lib/Padre/Wx/FBP/Preferences.pm:1276 msgid "Local file update poll interval in seconds (0 to disable)" msgstr "Intervalo de sondeo de actualización de archivo local (0 para deshabilitar)" #: lib/Padre/Wx/FBP/Sync.pm:58 msgid "Logged out" msgstr "Sesión cerrada" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Iniciando sesión en el servidor FTP como %s..." #: lib/Padre/Wx/FBP/Sync.pm:104 msgid "Login" msgstr "Iniciar sesión" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Long hex character" msgstr "Carácter hexadecimal largo" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Buscando Net::FTP..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Lowercase characters" msgstr "Caracteres en minúsculas" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Lowercase next character" msgstr "Siguiente carácter en minúscula" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Lowercase till \\E" msgstr "Minúsculas hasta \\E" #: lib/Padre/Wx/FBP/Debugger.pm:336 msgid "" "M\n" "Display all loaded modules and their versions." msgstr "M\n" "Muestra todos los módulos cargados y sus versiones." #: lib/Padre/Wx/FBP/Document.pm:79 msgid "MIME Type" msgstr "Tipo MIME" #: lib/Padre/Wx/ActionLibrary.pm:1629 msgid "Make the letters bigger in the editor window" msgstr "Aumenta el tamaño de fuente en la ventana del editor" #: lib/Padre/Wx/ActionLibrary.pm:1639 msgid "Make the letters smaller in the editor window" msgstr "Reduce el tamaño de fuente en la ventana del editor" #: lib/Padre/Wx/FBP/About.pm:388 msgid "Marcela Maslanova" msgstr "Marcela Maslanova" #: lib/Padre/Wx/ActionLibrary.pm:646 msgid "Mark Selection &End" msgstr "Marca &fin de selección" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Mark Selection &Start" msgstr "Marcar inicio de &selección" #: lib/Padre/Wx/ActionLibrary.pm:647 msgid "Mark the place where the selection should end" msgstr "Marca el punto de fin de la selección." #: lib/Padre/Wx/ActionLibrary.pm:635 msgid "Mark the place where the selection should start" msgstr "Marca el punto de inicio de la selección" #: lib/Padre/Wx/Dialog/RegexEditor.pm:102 msgid "Match 0 or more times" msgstr "Detectar 0 o más veces" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or 0 times" msgstr "Detectar 1 ó 0 veces" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 1 or more times" msgstr "Detectar 1 o más veces" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least m but not more than n times" msgstr "Detectar al menos m veces, pero no más de n veces" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match at least n times" msgstr "Detectar al menos n veces" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match exactly m times" msgstr "Detectar exactamente m veces" #: lib/Padre/Wx/Dialog/RegexEditor.pm:677 #, perl-format msgid "Match failure in %s: %s" msgstr "No hay coincidencias en %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:688 #, perl-format msgid "Match warning in %s: %s" msgstr "Advertencia de coincidencia en %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:697 #, perl-format msgid "Match with 0 width at character %s" msgstr "Coincidencia de ancho 0 en el carácter %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:235 msgid "Matched text:" msgstr "Texto detectado:" #: lib/Padre/Wx/FBP/About.pm:373 msgid "Matthew Lien" msgstr "Matthew Lien" #: lib/Padre/Wx/FBP/About.pm:254 msgid "Max Maischein" msgstr "Max Maischein" #: lib/Padre/Wx/FBP/Preferences.pm:242 msgid "Maximum number of suggestions" msgstr "Número máximo de sugerencias" #: lib/Padre/Wx/Role/Dialog.pm:69 lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Mensaje" #: lib/Padre/Wx/FBP/CPAN.pm:223 msgid "MetaCPAN..." msgstr "MetaCPAN..." #: lib/Padre/Wx/Outline.pm:386 msgid "Methods" msgstr "Métodos" #: lib/Padre/Wx/FBP/Preferences.pm:260 msgid "Minimum characters for autocomplete" msgstr "Número mínimo de caracteres para autocompletar:" #: lib/Padre/Wx/FBP/Preferences.pm:224 msgid "Minimum length of suggestions" msgstr "Longitud mínima de las sugerencias" #: lib/Padre/Wx/FBP/Preferences.pm:119 lib/Padre/Wx/Dialog/RegexEditor.pm:111 msgid "Miscellaneous" msgstr "Varios" #: lib/Padre/Wx/VCS.pm:254 msgid "Missing" msgstr "Falta" #: lib/Padre/Wx/VCS.pm:250 lib/Padre/Wx/VCS.pm:261 msgid "Modified" msgstr "Modificado" #: lib/Padre/Document/Perl/Starter.pm:122 msgid "Module Name:" msgstr "Nombre del módulo:" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Nombre del módulo:" #: lib/Padre/Wx/Outline.pm:385 msgid "Modules" msgstr "Módulos" #: lib/Padre/Wx/Dialog/RegexEditor.pm:480 msgid "Multi-line (&m)" msgstr "Multilínea (&m)" #: lib/Padre/Wx/ActionLibrary.pm:2256 msgid "" "My Plug-in is a plug-in where developers could extend their Padre " "installation" msgstr "El complemento personalizado permite a los programadores ampliar su instalación de Padre" #: lib/Padre/Wx/FBP/SLOC.pm:120 msgid "Mythical Man Months:" msgstr "Meses-hombre míticos:" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "NOMBRE" #: lib/Padre/Wx/Dialog/SessionManager2.pm:28 lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "Nombre" #: lib/Padre/Wx/ActionLibrary.pm:1888 msgid "Name for the new subroutine" msgstr "Nombre de la nueva subrutina" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "&Nuevo" #: lib/Padre/Wx/Main.pm:6615 msgid "Need to select text in order to translate numbers" msgstr "Hay que seleccionar texto para traducir números" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Negative lookahead assertion" msgstr "Aserción de lectura posterior negativa" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Negative lookbehind assertion" msgstr "Aserción de lectura previa negativa" #: lib/Padre/Wx/FBP/Preferences.pm:571 msgid "New File Creation" msgstr "Creación de nuevo archivo" #: lib/Padre/Wx/Directory/TreeCtrl.pm:381 msgid "New Folder" msgstr "Nueva carpeta" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "Nueva encuesta de instalación" #: lib/Padre/Document/Perl/Starter.pm:123 lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Nuevo módulo" #: lib/Padre/Document/Perl.pm:822 msgid "New name" msgstr "Nuevo nombre" #: lib/Padre/PluginManager.pm:393 msgid "New plug-ins detected" msgstr "Se han detectado complementos nuevos" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Newline" msgstr "Carácter de nueva línea" #: lib/Padre/Wx/FBP/Document.pm:103 msgid "Newline Type" msgstr "Tipo de carácter de nueva línea" #: lib/Padre/Wx/Diff2.pm:29 lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "Siguiente diferencia" #: lib/Padre/Config.pm:893 msgid "No Autoindent" msgstr "Sin sangría automática" #: lib/Padre/Wx/Main.pm:2784 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "No se encontró un archivo Build.PL, Makefile.PL o dist.ini" #: lib/Padre/Wx/Dialog/HelpSearch.pm:95 msgid "No Help found" msgstr "No se encontró ayuda" #: lib/Padre/Wx/Diff.pm:256 msgid "No changes found" msgstr "No se detectó ningún cambio" #: lib/Padre/Document/Perl.pm:652 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "No se encontró ninguna declaración (¿léxica?) para la variable especificada" #: lib/Padre/Document/Perl.pm:901 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "No se encontró ninguna declaración para la variable (¿léxica?) especificada." #: lib/Padre/Wx/Main.pm:2751 lib/Padre/Wx/Main.pm:2806 #: lib/Padre/Wx/Main.pm:2857 msgid "No document open" msgstr "Ningún documento abierto" #: lib/Padre/Task/CPAN.pm:183 #, perl-format msgid "No documentation for '%s'" msgstr "No hay documentación para '%s'" #: lib/Padre/Document/Perl.pm:512 msgid "No errors found." msgstr "No se detectó ningún error." #: lib/Padre/Wx/Syntax.pm:456 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "No se detectó ningún error o advertencia en %s en %3.2f segundos." #: lib/Padre/Wx/Syntax.pm:461 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "No se detectó ningún error o advertencia en %3.2f segundos." #: lib/Padre/Wx/Main.pm:3092 msgid "No execution mode was defined for this document type" msgstr "No se ha definido un modo de ejecución para este documento" #: lib/Padre/PluginManager.pm:903 lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Sin nombre de archivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:716 msgid "No match" msgstr "Ninguna coincidencia" #: lib/Padre/Wx/Dialog/Find.pm:62 lib/Padre/Wx/Dialog/Replace.pm:136 #: lib/Padre/Wx/Dialog/Replace.pm:159 #, perl-format msgid "No matches found for \"%s\"." msgstr "No se detectaron coincidencias para \"%s\"." #: lib/Padre/Wx/Main.pm:3074 msgid "No open document" msgstr "Ningún documento abierto" #: lib/Padre/Config.pm:484 msgid "No open files" msgstr "Ningún archivo abierto" #: lib/Padre/Wx/ReplaceInFiles.pm:259 lib/Padre/Wx/Panel/FoundInFiles.pm:305 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "No se encontró resultados para '%s' dentro de '%s'" #: lib/Padre/Wx/Main.pm:931 #, perl-format msgid "No such session %s" msgstr "No existe la sesión %s" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "No suggestions" msgstr "Ninguna sugerencia" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "Non-capturing group" msgstr "Grupo sin captura" #: lib/Padre/Wx/Dialog/Preferences.pm:27 msgid "None" msgstr "Ninguna" #: lib/Padre/Wx/VCS.pm:247 lib/Padre/Wx/FBP/VCS.pm:173 msgid "Normal" msgstr "Normal" #: lib/Padre/Locale.pm:371 lib/Padre/Wx/FBP/About.pm:544 msgid "Norwegian" msgstr "Noruego" #: lib/Padre/Wx/Panel/Debugger.pm:256 msgid "Not a Perl document" msgstr "No es un documento Perl" #: lib/Padre/Wx/Dialog/Goto.pm:200 lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "No es un número positivo." #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "Not a word boundary" msgstr "No es un límite de palabra" #: lib/Padre/Wx/Main.pm:4244 msgid "Nothing selected. Enter what should be opened:" msgstr "No hay nada seleccionado. Indique qué es lo que desea abrir:" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "Ahora" #: lib/Padre/Wx/FBP/SLOC.pm:144 msgid "Number of Developers:" msgstr "Número de desarrolladores:" #: lib/Padre/Wx/Menu/File.pm:84 msgid "O&pen" msgstr "A&brir" #: lib/Padre/Wx/FBP/Bookmarks.pm:86 lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "Aceptar" #: lib/Padre/Wx/VCS.pm:255 msgid "Obstructed" msgstr "Obstruido" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Octal character" msgstr "Carácter octal" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "Offer completions to the current string. See Preferences" msgstr "Ofrece sugerencias para completar la cadena actual. Ver Preferencias." #: lib/Padre/Wx/FBP/About.pm:260 lib/Padre/Wx/FBP/About.pm:424 msgid "Olivier Mengue" msgstr "Olivier Mengue" #: lib/Padre/Wx/FBP/About.pm:466 msgid "Omer Zak" msgstr "Omer Zak" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Sólo hay un fragmento de POD; no se intentará combinar" #: lib/Padre/Wx/ActionLibrary.pm:2341 msgid "Open &CPAN Config File" msgstr "Abrir archivo de configuración de &CPAN" #: lib/Padre/Wx/Outline.pm:153 msgid "Open &Documentation" msgstr "Abrir &documentación" #: lib/Padre/Wx/ActionLibrary.pm:251 msgid "Open &Example" msgstr "Abrir &ejemplo" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open &Last Closed File" msgstr "Abrir ú<imo archivo cerrado" #: lib/Padre/Wx/ActionLibrary.pm:1320 msgid "Open &Resources..." msgstr "Abrir &recursos..." #: lib/Padre/Wx/ActionLibrary.pm:463 msgid "Open &Selection" msgstr "Abrir &selección" #: lib/Padre/Wx/ActionLibrary.pm:206 msgid "Open &URL..." msgstr "Abrir &URL..." #: lib/Padre/Wx/ActionLibrary.pm:2342 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "Abre CPAN::MyConfig.pm para editarlo manualmente (sólo para expertos)" #: lib/Padre/Wx/FBP/Preferences.pm:1329 msgid "Open FTP Files" msgstr "Abrir archivos de FTP" #: lib/Padre/Wx/Main.pm:4429 lib/Padre/Wx/Directory/TreeCtrl.pm:302 msgid "Open File" msgstr "Abrir archivo" #: lib/Padre/Wx/FBP/Preferences.pm:540 msgid "Open Files:" msgstr "Abrir archivos:" #: lib/Padre/Wx/FBP/Preferences.pm:1294 msgid "Open HTTP Files" msgstr "Abrir archivos de HTTP" #: lib/Padre/Wx/Dialog/OpenResource.pm:33 #: lib/Padre/Wx/Dialog/OpenResource.pm:79 msgid "Open Resources" msgstr "Abrir recursos" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "Open S&ession..." msgstr "Abrir s&esión..." #: lib/Padre/Wx/Main.pm:4287 msgid "Open Selection" msgstr "Abrir selección" #: lib/Padre/Wx/FBP/SessionManager.pm:86 msgid "Open Session" msgstr "Abrir sesión" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "Abrir URL" #: lib/Padre/Wx/Main.pm:4465 lib/Padre/Wx/Main.pm:4485 msgid "Open Warning" msgstr "Advertencia al abrir" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 module" msgstr "Abre un documento con estructura de módulo de Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "Abre un documento con estructura de script de Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Abre un documento con estructura de script de test de Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Open a document with a skeleton Perl 6 script" msgstr "Abre un documento con estructura de script de Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Open a file from a remote location" msgstr "Abre un archivo desde una ubicación remota" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "Abre un documento nuevo vacío" #: lib/Padre/Wx/ActionLibrary.pm:524 msgid "Open all the files listed in the recent files list" msgstr "Abre todos los archivos incluidos en la lista de archivos recientes" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "Abre en el navegador una búsqueda en CPAN de los paquetes Padre::Plugin" #: lib/Padre/Wx/Menu/File.pm:394 msgid "Open cancelled" msgstr "Apertura cancelada" #: lib/Padre/PluginManager.pm:976 lib/Padre/Wx/Main.pm:6001 msgid "Open file" msgstr "Abrir archivo" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Open in &Command Line" msgstr "Abrir en la línea de &comandos" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open in File &Browser" msgstr "Abrir en el navegador de arc&hivos" #: lib/Padre/Wx/Directory/TreeCtrl.pm:253 #: lib/Padre/Wx/Directory/TreeCtrl.pm:312 msgid "Open in File Browser" msgstr "Abrir en el navegador de archivos" #: lib/Padre/Wx/ActionLibrary.pm:2176 msgid "Open interesting and helpful Padre Wiki in your default web browser" msgstr "Abre el interesante y útil wiki de Padre en su navegador web predeterminado" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Open interesting and helpful Perl websites in your default web browser" msgstr "Abre sitios web sobre Perl útiles e interesantes en el navegador predeterminado" #: lib/Padre/Wx/Main.pm:4245 msgid "Open selection" msgstr "Abrir selección" #: lib/Padre/Config.pm:485 msgid "Open session" msgstr "Abrir sesión" #: lib/Padre/Wx/ActionLibrary.pm:2517 msgid "" "Open the Padre live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "Abre en el navegador el chat de soporte en línea de Padre, donde podrá charlar con otros usuarios que pueden ayudarle" #: lib/Padre/Wx/ActionLibrary.pm:2529 msgid "" "Open the Perl live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "Abre en el navegador el chat de soporte en línea de Perl, donde podrá charlar con otros usuarios que pueden ayudarle" #: lib/Padre/Wx/ActionLibrary.pm:2541 msgid "" "Open the Perl/Win32 live support chat in your web browser and talk to others " "who may help you with your problem" msgstr "Abre en el navegador el chat de soporte en línea de Perl/Win32, donde podrá charlar con otros usuarios que pueden ayudarle" #: lib/Padre/Wx/ActionLibrary.pm:2211 msgid "Open the regular expression editing window" msgstr "Abre la ventana de edición de expresiones regulares" #: lib/Padre/Wx/ActionLibrary.pm:2221 msgid "Open the selected text in the Regex Editor" msgstr "Abre el texto seleccionado en el Editor de expresiones regulares" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Open with Default &System Editor" msgstr "Abrir con el editor predeterminado del &sistema" #: lib/Padre/Wx/Main.pm:3203 #, perl-format msgid "Opening session %s..." msgstr "Abriendo la sesión %s..." #: lib/Padre/Wx/ActionLibrary.pm:242 msgid "Opens a command line using the current document folder" msgstr "Abre una ventana de línea de comandos en la carpeta del documento actual" #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Opens the current document using the file browser" msgstr "Abre el documento actual en el navegador de archivos" #: lib/Padre/Wx/ActionLibrary.pm:230 msgid "Opens the file with the default system editor" msgstr "Abre el archivo en el editor predeterminado del sistema" #: lib/Padre/Wx/ActionLibrary.pm:264 msgid "Opens the last closed file" msgstr "Abre el último archivo cerrado" #: lib/Padre/Wx/FBP/Preferences.pm:861 msgid "" "Optional features can be disabled to simplify the user interface,\n" "reduce memory consumption and make Padre run faster.\n" "\n" "Changes to features are only applied when Padre is restarted." msgstr "Se pueden deshabilitar las características opcionales para simplificar la interfaz de usuario, reducir el consumo de memoria y acelerar la ejecución de Padre.\n" "\n" "Los cambios realizados en las características solo se aplicarán cuando se reinicie Padre." #: lib/Padre/Wx/FBP/Patch.pm:148 msgid "Options" msgstr "Opciones" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Opciones:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "Texto or&iginal:" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Otro (especificar)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "En otro evento" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "En otro motor de búsqueda" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "Fuera del intervalo." #: lib/Padre/Wx/Outline.pm:205 lib/Padre/Wx/Outline.pm:252 msgid "Outline" msgstr "Esquema" #: lib/Padre/Wx/Output.pm:89 lib/Padre/Wx/FBP/Preferences.pm:470 msgid "Output" msgstr "Resultados" #: lib/Padre/Wx/Bottom.pm:53 msgid "Output View" msgstr "Vista de resultados" #: lib/Padre/Wx/Dialog/Preferences.pm:489 msgid "Override Shortcut" msgstr "Reemplazar acceso directo" #: lib/Padre/Wx/ActionLibrary.pm:2527 msgid "P&erl Help" msgstr "Ayuda de P&erl" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "P&lug-in Tools" msgstr "Herramientas para comp&lementos" #: lib/Padre/Wx/Main.pm:4409 msgid "PHP Files" msgstr "Archivos PHP" #: lib/Padre/Wx/FBP/Preferences.pm:311 msgid "POD" msgstr "POD" #: lib/Padre/Wx/FBP/POD.pm:30 msgid "POD Viewer" msgstr "Visor de POD" #: lib/Padre/Config.pm:1124 lib/Padre/Wx/Scintilla.pm:28 msgid "PPI Experimental" msgstr "PPI e&xperimental" #: lib/Padre/Config.pm:1125 lib/Padre/Wx/Scintilla.pm:34 msgid "PPI Standard" msgstr "PPI estándar" #: lib/Padre/Wx/FBP/About.pm:604 msgid "Paco Alguacil" msgstr "Paco Alguacil" #: lib/Padre/Wx/FBP/About.pm:841 lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Programador de Padre" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Herramientas para programadores de Padre" #: lib/Padre/Wx/FBP/Preferences.pm:32 msgid "Padre Preferences" msgstr "Preferencias de Padre" #: lib/Padre/Wx/FBP/Sync.pm:29 msgid "Padre Sync" msgstr "Sincronización de Padre" #: lib/Padre/Wx/FBP/About.pm:102 msgid "" "Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published " "by the \n" "Free Software Foundation; version 2 dated June, 1991." msgstr "Padre contiene iconos de GNOME. Puede redistribuirlo o modificarlo bajo los términos de la licencia GNU GPL (General Public License) versión 2, publicada por la Free Software Foundation en junio de 1991." #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "PageDown" msgstr "AvPág" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "PageUp" msgstr "RePág" #: lib/Padre/Wx/Dialog/Sync.pm:145 msgid "Password and confirmation do not match." msgstr "La contraseña no coincide con la confirmación." #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "Contraseña para el usuario '%s' en %s:" #: lib/Padre/Wx/FBP/Sync.pm:89 lib/Padre/Wx/FBP/Sync.pm:148 msgid "Password:" msgstr "Contraseña:" #: lib/Padre/Wx/ActionLibrary.pm:766 msgid "Paste the clipboard to the current location" msgstr "Pega el contenido del portapapeles en la ubicación actual" #: lib/Padre/Wx/FBP/Patch.pm:29 msgid "Patch" msgstr "Revisión" #: lib/Padre/Wx/Dialog/Patch.pm:407 msgid "" "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "El nombre de un archivo de revisión debe tener la extensión .patch o .diff; vuelva a seleccionarlo e inténtelo de nuevo" #: lib/Padre/Wx/Dialog/Patch.pm:422 msgid "Patch successful, you should see a new tab in editor called Unsaved #" msgstr "Revisión aplicada correctamente; debe ver una nueva pestaña en el editor llamada #\n" "(sin guardar)" #: lib/Padre/Wx/VCS.pm:54 msgid "Path" msgstr "&Pegar" #: lib/Padre/Wx/FBP/About.pm:224 msgid "Patrick Donelan" msgstr "Patrick Donelan" #: lib/Padre/Wx/FBP/About.pm:266 msgid "Paweł Murias" msgstr "Paweł Murias" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:367 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl &6 Script" msgstr "Script de Perl &6" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 &Module" msgstr "&Módulo de Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "&Script de Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 &Test" msgstr "&Test de Perl 5" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "Entorno de desarrollo y refactorización de aplicaciones Perl" #: lib/Padre/Wx/FBP/Preferences.pm:1461 msgid "Perl Arguments" msgstr "Argumentos de Perl" #: lib/Padre/Wx/FBP/Preferences.pm:1419 msgid "Perl Ctags File:" msgstr "Archivo ctags de Perl:" #: lib/Padre/Wx/FBP/Preferences.pm:1405 msgid "Perl Executable:" msgstr "Ejecutable de Perl:" #: lib/Padre/Wx/Main.pm:4407 lib/Padre/Wx/Choice/Files.pm:21 msgid "Perl Files" msgstr "Archivos Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Filtro Perl" #: lib/Padre/Locale.pm:259 msgid "Persian (Iran)" msgstr "Persa (Irán)" #: lib/Padre/Wx/FBP/About.pm:284 msgid "Petar Shangov" msgstr "Petar Shangov" #: lib/Padre/Wx/FBP/About.pm:134 msgid "Peter Lavender" msgstr "Peter Lavender" #: lib/Padre/Wx/Dialog/Sync.pm:134 msgid "Please ensure all inputs have appropriate values." msgstr "Asegúrese de escribir valores adecuados en todas las entradas." #: lib/Padre/Wx/Dialog/Sync.pm:99 msgid "Please input a valid value for both username and password" msgstr "Especifique valores válidos para el nombre de usuario y la contraseña" #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the directory" msgstr "Escriba el nuevo nombre del directorio" #: lib/Padre/Wx/Directory/TreeCtrl.pm:169 msgid "Please type in the new name of the file" msgstr "Escriba el nuevo nombre del archivo" #: lib/Padre/Wx/Progress.pm:85 msgid "Please wait..." msgstr "Espere..." #: lib/Padre/Wx/ActionLibrary.pm:2246 msgid "Plug-in &List (CPAN)" msgstr "&Lista de complementos (CPAN)" #: lib/Padre/Wx/FBP/PluginManager.pm:29 msgid "Plug-in Manager" msgstr "Administrador de complementos" #: lib/Padre/PluginManager.pm:996 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "El directorio base del complemento debe ser '%s'" #: lib/Padre/PluginManager.pm:788 #, perl-format msgid "Plugin %s" msgstr "Complemento %s" #: lib/Padre/PluginHandle.pm:341 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "El complemento %s devolvió %s en lugar de una lista de enlaces en ->padre_hooks" #: lib/Padre/PluginHandle.pm:354 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "El complemento %s intentó registrar un enlace no válido, %s" #: lib/Padre/PluginHandle.pm:362 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "El complemento %s intentó registrar el enlace %s, que no es de tipo CODE" #: lib/Padre/PluginManager.pm:761 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "(Complemento %s) El enlace %s devolvió un mensaje de error vacío" #: lib/Padre/PluginManager.pm:728 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Error del complemento en el evento %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:371 msgid "Plugins" msgstr "Complementos" #: lib/Padre/Locale.pm:381 lib/Padre/Wx/FBP/About.pm:559 msgid "Polish" msgstr "Polaco" #: lib/Padre/Plugin/PopularityContest.pm:323 msgid "Popularity Contest Report" msgstr "Informe del concurso de popularidad" #: lib/Padre/Locale.pm:391 lib/Padre/Wx/FBP/About.pm:574 msgid "Portuguese (Brazil)" msgstr "Portugués (Brasil)" #: lib/Padre/Locale.pm:401 msgid "Portuguese (Portugal)" msgstr "Portugués (Portugal)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Tipo de posición" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Entero positivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Positive lookahead assertion" msgstr "Aserción de lectura posterior positiva" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Positive lookbehind assertion" msgstr "Aserción de lectura previa positiva" #: lib/Padre/Wx/Outline.pm:384 msgid "Pragmata" msgstr "Pragmas" #: lib/Padre/Wx/FBP/Preferences.pm:160 msgid "Prefered language for error diagnostics" msgstr "Idioma preferido para diagnósticos de error" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Nombre de preferencia" #: lib/Padre/Wx/FBP/PluginManager.pm:112 msgid "Preferences" msgstr "Preferencias" #: lib/Padre/Wx/ActionLibrary.pm:2199 msgid "Preferences &Sync..." msgstr "&Sincronizar preferencias..." #: lib/Padre/PluginHandle.pm:283 #, perl-format msgid "Prerequisites missing suggest you read the POD for '%s': %s" msgstr "Los requisitos previos que faltan sugieren que debe leer la documentación POD de '%s': %s" #: lib/Padre/Wx/FBP/Snippet.pm:92 msgid "Preview:" msgstr "Vista previa:" #: lib/Padre/Wx/Diff2.pm:27 lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "Diferencia anterior" #: lib/Padre/Config.pm:482 msgid "Previous open files" msgstr "Archivos abiertos en la sesión anterior" #: lib/Padre/Wx/ActionLibrary.pm:504 msgid "Print the current document" msgstr "Imprime el documento actual" #: lib/Padre/Wx/FBP/Patch.pm:104 msgid "Process" msgstr "Proceso" #: lib/Padre/Wx/Directory.pm:200 lib/Padre/Wx/Dialog/WindowList.pm:222 msgid "Project" msgstr "Proyecto" #: lib/Padre/Wx/FBP/Preferences.pm:361 msgid "Project Browser" msgstr "Navegador de proyectos" #: lib/Padre/Wx/ActionLibrary.pm:1429 msgid "Project Browser - Was known as the Directory Tree" msgstr "Navegador de proyectos (antes conocido como Árbol de directorios" #: lib/Padre/Wx/FBP/SLOC.pm:29 msgid "Project Statistics" msgstr "Estadísticas del proyecto" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "Herramientas de proyecto" #: lib/Padre/Wx/ActionLibrary.pm:1808 msgid "" "Prompt for a replacement variable name and replace all occurrences of this " "variable" msgstr "Pregunta el nuevo nombre de variable y sustituye todas las instancias de esta variable" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Punctuation characters" msgstr "Caracteres de puntuación" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Put focus on the next tab to the right" msgstr "Establece el foco en la pestaña siguiente a la derecha" #: lib/Padre/Wx/ActionLibrary.pm:2365 msgid "Put focus on the previous tab to the left" msgstr "Establece el foco en la pestaña anterior a la izquierda" #: lib/Padre/Wx/ActionLibrary.pm:749 msgid "Put the content of the current document in the clipboard" msgstr "Coloca el contenido del documento actual en el portapapeles" #: lib/Padre/Wx/ActionLibrary.pm:689 msgid "Put the current selection in the clipboard" msgstr "Coloca la selección actual en el portapapeles" #: lib/Padre/Wx/ActionLibrary.pm:705 msgid "Put the full path of the current file in the clipboard" msgstr "Coloca la ruta de acceso completa del archivo actual en el portapapeles" #: lib/Padre/Wx/ActionLibrary.pm:735 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Coloca la ruta de acceso completa del directorio del archivo actual en el portapapeles" #: lib/Padre/Wx/ActionLibrary.pm:720 msgid "Put the name of the current file in the clipboard" msgstr "Coloca el nombre del archivo actual en el portapapeles" #: lib/Padre/Wx/Main.pm:4411 msgid "Python Files" msgstr "Archivos Python" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:43 msgid "Quick Menu Access" msgstr "Acceso rápido al menú" #: lib/Padre/Wx/ActionLibrary.pm:1332 msgid "Quick access to all menu functions" msgstr "Acceso rápido a todas las funciones del menú" #: lib/Padre/Wx/FBP/Debugger.pm:163 msgid "Quit Debugger" msgstr "Salir del depurador" #: lib/Padre/Wx/ActionLibrary.pm:2163 msgid "Quit Debugger (&q)" msgstr "Salir del depurador (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2164 msgid "Quit the process being debugged" msgstr "Sale del proceso que se está depurando" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "Escape de metacaracteres del patrón hasta \\E" #: lib/Padre/Wx/Dialog/About.pm:155 msgid "RAM" msgstr "RAM" #: lib/Padre/Wx/FBP/Debugger.pm:484 msgid "" "Raw\n" "You can enter what ever debug command you want!" msgstr "Sin procesar\n" "Puede especificar el comando de depuración que desee." #: lib/Padre/Wx/Menu/File.pm:180 msgid "Re&load" msgstr "Vo&lver a cargar" #: lib/Padre/Wx/ActionLibrary.pm:2303 msgid "Re&load All Plug-ins" msgstr "Vo&lver a cargar todos los complementos" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Re&place in Files..." msgstr "Reem&plazar en archivos..." #: lib/Padre/Wx/ActionLibrary.pm:2281 msgid "Re&set My plug-in" msgstr "Re&stablecer el complemento personalizado" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Only" msgstr "Sólo lectura" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Write" msgstr "Lectura y escritura" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Leyendo archivo del servidor FTP..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:274 msgid "Reading items. Please wait" msgstr "Leyendo elementos. Espere..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:327 msgid "Reading items. Please wait..." msgstr "Leyendo elementos. Espere..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:215 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "¿Realmente desea eliminar el archivo \"%s\"?" #: lib/Padre/Wx/FBP/CPAN.pm:277 msgid "Recent" msgstr "Archivos recientes" #: lib/Padre/Wx/ActionLibrary.pm:608 msgid "Redo last undo" msgstr "Rehace la última acción deshecha" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "Ref&actorizar" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:368 msgid "Refactor" msgstr "Refactorizar" #: lib/Padre/Wx/Directory.pm:226 lib/Padre/Wx/FBP/CPAN.pm:132 #: lib/Padre/Wx/FBP/CPAN.pm:180 msgid "Refresh" msgstr "Actualizar" #: lib/Padre/Wx/FBP/Breakpoints.pm:63 msgid "Refresh List" msgstr "Actualizar lista" #: lib/Padre/Wx/FBP/FoundInFiles.pm:51 msgid "Refresh Search" msgstr "Actualizar búsqueda" #: lib/Padre/Wx/FBP/VCS.pm:143 msgid "Refresh the status of working copy files and directories" msgstr "Actualiza el estado de los archivos y directorios de la copia de trabajo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Editor de expresiones regulares" #: lib/Padre/Wx/FBP/Sync.pm:178 msgid "Register" msgstr "Registrar" #: lib/Padre/Wx/FBP/Sync.pm:315 msgid "Registration" msgstr "Registro" #: lib/Padre/Wx/FBP/Find.pm:79 lib/Padre/Wx/FBP/Replace.pm:129 msgid "Regular E&xpression" msgstr "Expresión ®ular" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Al reinstalar o instalar en otro equipo" #: lib/Padre/Wx/ActionLibrary.pm:389 msgid "Reload &All" msgstr "Volver a cargar &todos" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload &File" msgstr "Volver a cargar arc&hivo" #: lib/Padre/Wx/ActionLibrary.pm:399 msgid "Reload &Some..." msgstr "Volver a cargar &algunos..." #: lib/Padre/Wx/Main.pm:4693 msgid "Reload Files" msgstr "Volver a cargar archivos" #: lib/Padre/Wx/ActionLibrary.pm:390 msgid "Reload all files currently open" msgstr "Vuelve a cargar todos los archivos abiertos actualmente" #: lib/Padre/Wx/ActionLibrary.pm:2304 msgid "Reload all plug-ins from &disk" msgstr "Vuelve a cargar todos los complementos desde el &disco" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Reload current file from disk" msgstr "Vuelve a cargar el archivo actual desde el disco" #: lib/Padre/Wx/Main.pm:4636 msgid "Reloading Files" msgstr "Cargando archivos de nuevo" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Reloads (or initially loads) the current plug-in" msgstr "Vuelve a cargar (o hace la carga inicial) del complemento actual" #: lib/Padre/Wx/ActionLibrary.pm:659 msgid "Remove all the selection marks" msgstr "Quita todas las marcas de selección" #: lib/Padre/Wx/ActionLibrary.pm:969 msgid "Remove comment for selected lines or the current line" msgstr "Quita las marcas de comentario de las líneas seleccionadas o de la línea actual" #: lib/Padre/Wx/ActionLibrary.pm:674 msgid "Remove the current selection and put it in the clipboard" msgstr "Quita la selección actual y la coloca en el portapapeles" #: lib/Padre/Wx/ActionLibrary.pm:533 msgid "Remove the entries from the recent files list" msgstr "Quita las entradas de la lista de archivos recientes" #: lib/Padre/Wx/ActionLibrary.pm:1064 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Quita los espacios iniciales de las líneas seleccionadas" #: lib/Padre/Wx/ActionLibrary.pm:1074 msgid "Remove the spaces from the end of the selected lines" msgstr "Quita los espacios finales de las líneas seleccionadas" #: lib/Padre/Wx/Directory/TreeCtrl.pm:378 #: lib/Padre/Wx/Directory/TreeCtrl.pm:380 msgid "Rename" msgstr "Cambiar nombre" #: lib/Padre/Wx/Directory/TreeCtrl.pm:277 msgid "Rename Directory" msgstr "Cambiar nombre de directorio" #: lib/Padre/Wx/Directory/TreeCtrl.pm:336 msgid "Rename File" msgstr "Cambiar nombre de archivo" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename directory" msgstr "Cambiar nombre de directorio" #: lib/Padre/Wx/Directory/TreeCtrl.pm:170 msgid "Rename file" msgstr "Cambiar nombre de archivo" #: lib/Padre/Document/Perl.pm:813 lib/Padre/Document/Perl.pm:823 msgid "Rename variable" msgstr "Cambiar nombre de variable" #: lib/Padre/Wx/VCS.pm:264 msgid "Renamed" msgstr "Nombre cambiado" #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Repeat the last find to find the next match" msgstr "Repite la última búsqueda para buscar la siguiente coincidencia" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Repite la última búsqueda, pero en sentido inverso, para buscar la coincidencia anterior" #: lib/Padre/Wx/FBP/Replace.pm:31 msgid "Replace" msgstr "Reemplazar" #: lib/Padre/Wx/FBP/Replace.pm:186 msgid "Replace &All" msgstr "Reemplazar &todo" #: lib/Padre/Wx/FBP/Replace.pm:88 msgid "Replace &With:" msgstr "Reemplazar &con:" #: lib/Padre/Wx/FBP/Preferences.pm:500 msgid "Replace In Files" msgstr "Reemplazar en archivos" #: lib/Padre/Document/Perl.pm:907 lib/Padre/Document/Perl.pm:956 msgid "Replace Operation Canceled" msgstr "Operación de sustitución cancelada" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:66 msgid "Replace With:" msgstr "Reemplazar con:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Replace all occurrences of the pattern" msgstr "Remplaza todas las ocurrencias del patrón" #: lib/Padre/Wx/ReplaceInFiles.pm:248 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Reemplazamiento completado. Se detectó '%s' %d veces en %d archivos dentro de '%s'" #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "Error al reemplazar en %s: %s" #: lib/Padre/Wx/ReplaceInFiles.pm:132 lib/Padre/Wx/FBP/ReplaceInFiles.pm:32 msgid "Replace in Files" msgstr "Reemplazar en archivos" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "Reemplazar..." #: lib/Padre/Wx/Dialog/Replace.pm:129 #, perl-format msgid "Replaced %d match" msgstr "Se ha reemplazado %d coincidencia" #: lib/Padre/Wx/Dialog/Replace.pm:129 #, perl-format msgid "Replaced %d matches" msgstr "Se han reemplazado %d coincidencias" #: lib/Padre/Wx/ReplaceInFiles.pm:189 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr "Reemplazando '%s' en '%s'..." #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Report a New &Bug" msgstr "&Notificar error" #: lib/Padre/Wx/ActionLibrary.pm:2288 msgid "Reset My plug-in" msgstr "Restablecer el complemento personalizado" #: lib/Padre/Wx/ActionLibrary.pm:2282 msgid "Reset the My plug-in to the default" msgstr "Restablece la config. predeterminada del complemento personalizado" #: lib/Padre/Wx/ActionLibrary.pm:1649 msgid "Reset the size of the letters to the default in the editor window" msgstr "Restablece el tamaño de fuente predeterminado en la ventana del editor" #: lib/Padre/Wx/FBP/Preferences.pm:1237 msgid "Reset to default shortcut" msgstr "Restablecer acceso directo predeterminado" #: lib/Padre/Wx/Main.pm:3233 msgid "Restore focus..." msgstr "Restaurar foco..." #: lib/Padre/Wx/FBP/VCS.pm:123 msgid "Restore pristine working copy file (undo most local edits)" msgstr "Restaura una copia de trabajo limpia (deshace la mayor parte de los cambios locales)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Return" msgstr "Volver" #: lib/Padre/Wx/VCS.pm:565 msgid "Revert changes?" msgstr "¿Desea revertir los cambios?" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "Revertir este cambio" #: lib/Padre/Wx/VCS.pm:56 msgid "Revision" msgstr "Revisión" #: lib/Padre/Wx/Dialog/Preferences.pm:34 msgid "Right" msgstr "Derecha" #: lib/Padre/Config.pm:59 msgid "Right Panel" msgstr "Panel derecho" #: lib/Padre/Wx/FBP/Diff.pm:83 msgid "Right side" msgstr "Lado derecho" #: lib/Padre/Wx/Main.pm:4413 msgid "Ruby Files" msgstr "Archivos Ruby" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:369 msgid "Run" msgstr "Ejecutar" #: lib/Padre/Wx/ActionLibrary.pm:1981 msgid "Run &Build and Tests" msgstr "&Generar y ejecutar todos los tests" #: lib/Padre/Wx/ActionLibrary.pm:1970 msgid "Run &Command" msgstr "Ejecutar &comando" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "Ejecutar &documento en Padre" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "Ejecutar &selección en Padre" #: lib/Padre/Wx/ActionLibrary.pm:1993 msgid "Run &Tests" msgstr "Ejecutar &tests" #: lib/Padre/Wx/FBP/Debugger.pm:43 msgid "" "Run Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" msgstr "Ejecutar depurador\n" "BLUE MORPHO CATERPILLAR \n" "error interesante" #: lib/Padre/Wx/ActionLibrary.pm:1958 msgid "Run Script (&Debug Info)" msgstr "Ejecutar script (info. de &depuración)" #: lib/Padre/Wx/ActionLibrary.pm:2012 msgid "Run T&his Test" msgstr "&Ejecutar este test" #: lib/Padre/Wx/ActionLibrary.pm:1995 msgid "" "Run all tests for the current project or document and show the results in " "the output panel." msgstr "Ejecuta todos los tests del proyecto o documento actual y muestra los resultados en el panel de resultados." #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "Ejecutar filtro" #: lib/Padre/Wx/Main.pm:2722 msgid "Run setup" msgstr "Ejecutar configuración" #: lib/Padre/Wx/ActionLibrary.pm:1959 msgid "Run the current document but include debug info in the output." msgstr "Ejecuta el documento actual, pero incluye información de depuración en los resultados." #: lib/Padre/Wx/ActionLibrary.pm:2013 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "Ejecuta el test actual si el documento actual es un test. (prove -lv)" #: lib/Padre/Wx/ActionLibrary.pm:1971 msgid "Runs a shell command and shows the output." msgstr "Ejecuta un comando de shell y muestra el resultado." #: lib/Padre/Wx/ActionLibrary.pm:1943 msgid "Runs the current document and shows its output in the output panel." msgstr "Ejecuta el documento actual y muestra el resultado en el panel de resultados." #: lib/Padre/Locale.pm:411 lib/Padre/Wx/FBP/About.pm:616 msgid "Russian" msgstr "Ruso" #: lib/Padre/Wx/FBP/About.pm:188 msgid "Ryan Niebur" msgstr "Ryan Niebur" #: lib/Padre/Wx/FBP/Debugger.pm:444 msgid "" "S [[!]regex]\n" "List subroutine names [not] matching the regex." msgstr "S [[!]regex]\n" "Muestra los nombres de las subrutinas que [no] coinciden con la expresión regular." #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "&Guardar" #: lib/Padre/Wx/FBP/Preferences.pm:1194 msgid "S&et" msgstr "&Establecer" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "MAYÚS" #: lib/Padre/Wx/Main.pm:4415 msgid "SQL Files" msgstr "Archivos SQL" #: lib/Padre/Wx/Dialog/Patch.pm:572 #, perl-format msgid "SVN Diff successful. You should see a new tab in editor called %s." msgstr "SVN Diff se ejecutó correctamente. Debe ver una nueva pestaña llamada %s en el editor." #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "Guardar" #: lib/Padre/Wx/ActionLibrary.pm:426 msgid "Save &As..." msgstr "Guardar &como..." #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save &Intuition" msgstr "Guardar con &intuición" #: lib/Padre/Wx/ActionLibrary.pm:450 msgid "Save All" msgstr "Guardar todos" #: lib/Padre/Wx/ActionLibrary.pm:486 msgid "Save Sess&ion..." msgstr "Guardar ses&ión..." #: lib/Padre/Document.pm:783 msgid "Save Warning" msgstr "Advertencia al guardar" #: lib/Padre/Wx/ActionLibrary.pm:451 msgid "Save all the files" msgstr "Guarda todos los archivos" #: lib/Padre/Wx/FBP/Preferences.pm:660 msgid "Save and Close" msgstr "Guardar y cerrar" #: lib/Padre/Wx/ActionLibrary.pm:414 msgid "Save current document" msgstr "Guarda el documento actual" #: lib/Padre/Wx/Main.pm:4779 msgid "Save file as..." msgstr "Guardar archivo como..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Guardar sesión como..." #: lib/Padre/Wx/FBP/SessionManager.pm:70 msgid "Save session automatically" msgstr "Guardar sesión automáticamente" #: lib/Padre/Wx/FBP/VCS.pm:43 msgid "Schedule the file or directory for addition to the repository" msgstr "Programar la adición al repositorio del archivo o directorio" #: lib/Padre/Wx/FBP/VCS.pm:63 msgid "Schedule the file or directory for deletion from the repository" msgstr "Programar la eliminación del repositorio del archivo o directorio" #: lib/Padre/Config.pm:1123 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/FBP/Preferences.pm:1923 msgid "Screen Layout" msgstr "Distribución de pantalla" #: lib/Padre/Wx/FBP/Preferences.pm:1481 msgid "Script Arguments" msgstr "Argumentos del script" #: lib/Padre/Wx/FBP/Preferences.pm:1436 msgid "Script Execution" msgstr "Ejecución del script" #: lib/Padre/Wx/Main.pm:4421 msgid "Script Files" msgstr "Archivos de script" #: lib/Padre/Wx/Directory.pm:84 lib/Padre/Wx/Directory.pm:505 #: lib/Padre/Wx/FBP/CPAN.pm:276 lib/Padre/Wx/Dialog/QuickMenuAccess.pm:365 #: lib/Padre/Wx/Dialog/Find.pm:65 msgid "Search" msgstr "Buscar" #: lib/Padre/Wx/FBP/Find.pm:87 msgid "Search &Backwards" msgstr "Buscar hacia &atrás" #: lib/Padre/Wx/FBP/FindInFiles.pm:48 lib/Padre/Wx/FBP/Find.pm:46 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:41 lib/Padre/Wx/FBP/Replace.pm:47 msgid "Search &Term:" msgstr "Buscar &término:" #: lib/Padre/Document/Perl.pm:658 msgid "Search Canceled" msgstr "Búsqueda cancelada" #: lib/Padre/Wx/Dialog/Replace.pm:132 lib/Padre/Wx/Dialog/Replace.pm:137 #: lib/Padre/Wx/Dialog/Replace.pm:162 msgid "Search and Replace" msgstr "Buscar y reemplazar" #: lib/Padre/Wx/ActionLibrary.pm:1267 msgid "Search and replace text in all files below a given directory" msgstr "Busca y reemplazar texto contenido en todos los archivos de un directorio especificado" #: lib/Padre/Wx/Panel/FoundInFiles.pm:292 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Búsqueda completa, se encontró '%s' %d vez/ces en %d archivos(s) dentro de '%s'" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Search for a text in all files below a given directory" msgstr "Busca texto contenido en todos los archivos de un directorio especificado" #: lib/Padre/Wx/Browser.pm:92 lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Buscar con perldoc, p. ej., Padre::Task, Net::LDAP" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Search the Perl help pages (perldoc)" msgstr "Buscar en las páginas de ayuda de Perl (perldoc)" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "Buscar:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "Se ha buscado '%s' sin éxito..." #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "" "Searches the source code for brackets with lack a matching (opening/closing) " "part." msgstr "Busca llaves desemparejadas en el código fuente." #: lib/Padre/Wx/Panel/FoundInFiles.pm:242 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "Buscando '%s' en '%s'..." #: lib/Padre/Wx/FBP/About.pm:140 lib/Padre/Wx/FBP/About.pm:445 msgid "Sebastian Willing" msgstr "Sebastian Willing" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Segunda etiqueta" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Vea http://padre.perlide.org/ para obtener información actualizada" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Seleccionar" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Select &All" msgstr "Seleccionar &todo" #: lib/Padre/Wx/Dialog/FindInFiles.pm:52 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:44 msgid "Select Directory" msgstr "Seleccionar directorio" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Seleccionar función" #: lib/Padre/Wx/ActionLibrary.pm:1307 msgid "Select a bookmark created earlier and jump to that position" msgstr "Permite seleccionar un marcador creado anteriormente y saltar a esa posición" #: lib/Padre/Wx/ActionLibrary.pm:907 msgid "" "Select a date, filename or other value and insert at the current location" msgstr "Permite seleccionar una fecha, un nombre de archivo u otro valor, e inserta dicho valor en la ubicación actual" #: lib/Padre/Wx/FBP/Preferences.pm:1426 msgid "Select a file" msgstr "Seleccionar un archivo" #: lib/Padre/Wx/ActionLibrary.pm:931 msgid "Select a file and insert its content at the current location" msgstr "Permite seleccionar un archivo e insertar su contenido en la ubicación actual" #: lib/Padre/Wx/FBP/Preferences.pm:610 msgid "Select a folder" msgstr "Seleccionar una carpeta" #: lib/Padre/Wx/ActionLibrary.pm:476 msgid "" "Select a session. Close all the files currently open and open all the listed " "in the session" msgstr "Seleccione una sesión. Cierra todos los archivos abiertos actualmente y abre todos los especificados en la sesión" #: lib/Padre/Wx/ActionLibrary.pm:622 msgid "Select all the text in the current document" msgstr "Selecciona todo el texto del documento actual" #: lib/Padre/Wx/ActionLibrary.pm:1002 msgid "Select an encoding and encode the document to that" msgstr "Permite seleccionar una codificación para el documento" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "Select and insert a snippet at the current location" msgstr "Permite seleccionar e insertar un fragmento de código en la ubicación actual" #: lib/Padre/CPAN.pm:100 msgid "Select distribution to install" msgstr "Seleccionar distribución para instalar" #: lib/Padre/Wx/Main.pm:5246 msgid "Select files to close:" msgstr "Seleccione los archivos que desea cerrar:" #: lib/Padre/Wx/Dialog/OpenResource.pm:238 msgid "Select one or more resources to open" msgstr "Permite seleccionar uno o varios recursos para abrirlos" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Permite seleccionar los archivos que se desea cerrar" #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Select some open files for reload" msgstr "Permite seleccionar los archivos abiertos que se desea volver a cargar" #: lib/Padre/Wx/Dialog/HelpSearch.pm:131 msgid "Select the help &topic" msgstr "Seleccionar el &tema de ayuda" #: lib/Padre/Wx/ActionLibrary.pm:882 msgid "Select to Matching &Brace" msgstr "&Seleccionar hasta llave de correspondiente" #: lib/Padre/Wx/ActionLibrary.pm:883 msgid "Select to the matching opening or closing brace" msgstr "Selecciona hasta la llave de apertura o cierre correspondiente" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "Permite seleccionar la subrutina antes de la cual se desea insertar\n" "la nueva subrutina." #: lib/Padre/Wx/FBP/Document.pm:129 msgid "Selection" msgstr "Selección" #: lib/Padre/Document/Perl.pm:950 msgid "Selection not part of a Perl statement?" msgstr "¿La selección no forma parte de una instrucción Perl?" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Send a bug report to the Padre developer team" msgstr "Permite enviar un informe de error al equipo de programadores de Padre" #: lib/Padre/Wx/FBP/VCS.pm:103 msgid "Send changes from your working copy to the repository" msgstr "Enviar cambios de la copia de trabajo al repositorio" #: lib/Padre/File/HTTP.pm:52 #, perl-format msgid "Sending HTTP request %s..." msgstr "Enviando solicitud HTTP %s..." #: lib/Padre/Wx/FBP/Sync.pm:38 msgid "Server:" msgstr "Servidor:" #: lib/Padre/Wx/FBP/SessionManager.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Administrador de sesiones" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "Nombre de la sesión:" #: lib/Padre/Wx/ActionLibrary.pm:1295 msgid "Set &Bookmark" msgstr "Establecer &marcador" #: lib/Padre/Wx/FBP/Bookmarks.pm:38 msgid "Set Bookmark:" msgstr "Establecer marcador:" #: lib/Padre/Wx/ActionLibrary.pm:2142 msgid "Set Breakpoint (&b)" msgstr "Establecer punto de interrupción (&b)" #: lib/Padre/Wx/FBP/Breakpoints.pm:83 msgid "Set Breakpoints (toggle)" msgstr "Establecer puntos de interrupción (alternar)" #: lib/Padre/Wx/ActionLibrary.pm:1665 msgid "Set Padre in full screen mode" msgstr "Establece el modo de pantalla completa de Padre" #: lib/Padre/Wx/ActionLibrary.pm:2143 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "Establece un punto de interrupción en la ubicación actual del cursor con una condición" #: lib/Padre/Wx/ActionLibrary.pm:2391 msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "Establece el foco en la ventana \"Explorador de CPAN\"" #: lib/Padre/Wx/ActionLibrary.pm:2447 msgid "Set the focus to the \"Command Line\" window" msgstr "Establece el foco en la ventana \"Línea de comandos\"" #: lib/Padre/Wx/ActionLibrary.pm:2402 msgid "Set the focus to the \"Functions\" window" msgstr "Establece el foco en la ventana \"Funciones\"" #: lib/Padre/Wx/ActionLibrary.pm:2414 msgid "Set the focus to the \"Outline\" window" msgstr "Establece el foco en la ventana \"Esquema\"" #: lib/Padre/Wx/ActionLibrary.pm:2425 msgid "Set the focus to the \"Output\" window" msgstr "Establece el foco en la ventana \"Resultados\"" #: lib/Padre/Wx/ActionLibrary.pm:2436 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Establece el foco en la ventana \"Comprobación de sintaxis\"" #: lib/Padre/Wx/ActionLibrary.pm:2458 msgid "Set the focus to the main editor window" msgstr "Establece el foco en la ventana principal del editor" #: lib/Padre/Wx/FBP/Preferences.pm:1199 msgid "Sets the keyboard binding" msgstr "Establece el acceso directo de teclado" #: lib/Padre/Config.pm:532 lib/Padre/Config.pm:787 msgid "Several placeholders like the filename can be used" msgstr "Se pueden usar varios marcadores de posición como nombre de archivo" #: lib/Padre/Wx/Syntax.pm:59 msgid "Severe Warning" msgstr "Advertencia grave" #: lib/Padre/Wx/ActionLibrary.pm:2200 msgid "Share your preferences between multiple computers" msgstr "Permite compartir las preferencias con varios equipos" #: lib/Padre/MIME.pm:1035 msgid "Shell Script" msgstr "Script de shell" #: lib/Padre/Wx/FBP/Preferences.pm:1171 msgid "Shift" msgstr "Mayús" #: lib/Padre/Wx/FBP/About.pm:472 msgid "Shlomi Fish" msgstr "Shlomi Fish" #: lib/Padre/Wx/Dialog/Preferences.pm:169 lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Acceso directo" #: lib/Padre/Wx/FBP/Preferences.pm:1143 msgid "Shortcut:" msgstr "Acceso directo:" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Shorten the common path in window list" msgstr "Acortar la ruta común en la lista de ventanas" #: lib/Padre/Wx/FBP/VCS.pm:239 lib/Padre/Wx/FBP/Breakpoints.pm:151 #: lib/Padre/Wx/FBP/Debugger.pm:519 msgid "Show" msgstr "Mostrar" #: lib/Padre/Wx/ActionLibrary.pm:1377 msgid "Show &Command Line" msgstr "Mostrar línea de &comandos" #: lib/Padre/Wx/Dialog/RegexEditor.pm:215 msgid "Show &Description" msgstr "Mostrar &descripción" #: lib/Padre/Wx/ActionLibrary.pm:1367 msgid "Show &Function List" msgstr "Mostrar lista de &funciones" #: lib/Padre/Wx/ActionLibrary.pm:1605 msgid "Show &Indentation Guide" msgstr "Mostrar guía de &sangría" #: lib/Padre/Wx/ActionLibrary.pm:1417 msgid "Show &Outline" msgstr "Mostrar &esquema" #: lib/Padre/Wx/ActionLibrary.pm:1357 msgid "Show &Output" msgstr "Mostrar &resultados" #: lib/Padre/Wx/ActionLibrary.pm:1428 msgid "Show &Project Browser" msgstr "Mostrar Navegador de pro&yectos" #: lib/Padre/Wx/ActionLibrary.pm:1407 msgid "Show &Task List" msgstr "Mostrar lista de &tareas" #: lib/Padre/Wx/ActionLibrary.pm:1595 msgid "Show &Whitespaces" msgstr "Mostrar espacios en &blanco" #: lib/Padre/Wx/ActionLibrary.pm:1563 msgid "Show C&urrent Line" msgstr "Mostrar línea act&ual" #: lib/Padre/Wx/ActionLibrary.pm:1387 msgid "Show CPA&N Explorer" msgstr "Mostrar Explorador de CPA&N" #: lib/Padre/Wx/ActionLibrary.pm:1549 msgid "Show Ca&ll Tips" msgstr "Mostrar &información sobre sintaxis" #: lib/Padre/Wx/ActionLibrary.pm:1508 msgid "Show Code &Folding" msgstr "Mostrar plega&do de código" #: lib/Padre/Wx/ActionLibrary.pm:2062 msgid "Show Debug Breakpoints" msgstr "Mostrar puntos de interrupción de depuración" #: lib/Padre/Wx/ActionLibrary.pm:2075 msgid "Show Debug Output" msgstr "Mostrar resultados de depuración" #: lib/Padre/Wx/ActionLibrary.pm:2085 msgid "Show Debugger" msgstr "Mostrar depurador" #: lib/Padre/Wx/FBP/Debugger.pm:212 msgid "Show Global Variables" msgstr "Mostrar variables globales" #: lib/Padre/Wx/ActionLibrary.pm:1497 msgid "Show Line &Numbers" msgstr "Mo&strar números de línea" #: lib/Padre/Wx/FBP/Debugger.pm:193 msgid "Show Local Variables" msgstr "Mostrar variables locales" #: lib/Padre/Wx/ActionLibrary.pm:1585 msgid "Show Ne&wlines" msgstr "Mostrar caracteres de nue&va línea" #: lib/Padre/Wx/ActionLibrary.pm:1573 msgid "Show Right &Margin" msgstr "&Mostrar margen derecho" #: lib/Padre/Wx/ActionLibrary.pm:1438 msgid "Show S&yntax Check" msgstr "Mostrar c&omprobación de sintaxis" #: lib/Padre/Wx/ActionLibrary.pm:1459 msgid "Show St&atus Bar" msgstr "Mostrar b&arra de estado" #: lib/Padre/Wx/FBP/Syntax.pm:63 msgid "Show Standard Error" msgstr "Mostrar salida estándar de errores" #: lib/Padre/Wx/Dialog/RegexEditor.pm:245 msgid "Show Subs&titution" msgstr "Mostrar sus&titución" #: lib/Padre/Wx/ActionLibrary.pm:1469 msgid "Show Tool&bar" msgstr "Mostrar &barra de herramientas" #: lib/Padre/Wx/ActionLibrary.pm:1448 msgid "Show V&ersion Control" msgstr "Mostrar control de v&ersiones" #: lib/Padre/Wx/ActionLibrary.pm:1574 msgid "Show a vertical line indicating the right margin" msgstr "Muestra una línea vertical que indica el margen derecho" #: lib/Padre/Wx/ActionLibrary.pm:1408 msgid "Show a window listing all task items in the current document" msgstr "Muestra una ventana con una lista de todas las tareas del documento actual" #: lib/Padre/Wx/ActionLibrary.pm:1368 msgid "Show a window listing all the functions in the current document" msgstr "Muestra una ventana con una lista de todas las funciones del documento actual" #: lib/Padre/Wx/ActionLibrary.pm:1418 msgid "" "Show a window listing all the parts of the current file (functions, pragmas, " "modules)" msgstr "Muestra una ventana con una lista de todos los componentes del archivo actual (funciones, pragmas, módulos)" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Show as" msgstr "Mostrar como" #: lib/Padre/Wx/ActionLibrary.pm:1154 msgid "Show as &Decimal" msgstr "Mostrar como &decimales" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Show as &Hexadecimal" msgstr "Mostrar como &hexadecimales" #: lib/Padre/Plugin/PopularityContest.pm:212 msgid "Show current report" msgstr "Mostrar informe actual" #: lib/Padre/Wx/ActionLibrary.pm:1397 msgid "Show diff window!" msgstr "Mostrar ventana de diferencias" #: lib/Padre/Wx/ActionLibrary.pm:2593 msgid "Show information about Padre" msgstr "Muestra información acerca de Padre" #: lib/Padre/Wx/FBP/Preferences.pm:152 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "Mostrar mensajes informativos de baja prioridad en la barra de estado (no en cuadros emergentes)" #: lib/Padre/Config.pm:1142 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "Mostrar información de baja prioridad en la barra de estado (no en un cuadro emergente)" #: lib/Padre/Config.pm:779 msgid "Show or hide the status bar at the bottom of the window." msgstr "Muestra u oculta la barra de estado en la parte inferior de la ventana" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "Mostrar posiciones anteriores" #: lib/Padre/Wx/FBP/Preferences.pm:742 msgid "Show right margin at column" msgstr "Mostrar margen derecho en la columna" #: lib/Padre/Wx/FBP/Preferences.pm:563 msgid "Show splash screen" msgstr "Mostrar pantalla de bienvenida" #: lib/Padre/Wx/ActionLibrary.pm:1155 msgid "" "Show the ASCII values of the selected text in decimal numbers in the output " "window" msgstr "Muestra los valores ASCII del texto seleccionado como números decimales en la ventana de resultados" #: lib/Padre/Wx/ActionLibrary.pm:1145 msgid "" "Show the ASCII values of the selected text in hexadecimal notation in the " "output window" msgstr "Muestra los valores ASCII del texto seleccionado como números hexadecimales en la ventana de resultados" #: lib/Padre/Wx/ActionLibrary.pm:2505 msgid "Show the POD (Perldoc) version of the current document" msgstr "Muestra la versión POD (Perldoc) del documento actual" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "Show the Padre help" msgstr "Muestra la ayuda de Padre" #: lib/Padre/Wx/ActionLibrary.pm:2234 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Muestra el administrador de complementos de Padre, donde se pueden habilitar o deshabilitar los complementos" #: lib/Padre/Wx/ActionLibrary.pm:1378 msgid "Show the command line window" msgstr "Ir a ventana de línea de comandos" #: lib/Padre/Wx/ActionLibrary.pm:2492 msgid "Show the help article for the current context" msgstr "Muestra el artículo de ayuda para el contexto actual" #: lib/Padre/Wx/ActionLibrary.pm:1358 msgid "" "Show the window displaying the standard output and standard error of the " "running scripts" msgstr "Muestra la ventana en la que se visualizan la salida estándar y la salida de error estándar de los scripts que se están ejecutando" #: lib/Padre/Wx/ActionLibrary.pm:1719 msgid "Show what perl thinks about your code" msgstr "Ver qué opina perl de su código" #: lib/Padre/Wx/ActionLibrary.pm:1509 msgid "" "Show/hide a vertical line on the left hand side of the window to allow " "folding rows" msgstr "Muestra/oculta una línea vertical en el lado izquierdo de la ventana para permitir el plegado de líneas" #: lib/Padre/Wx/ActionLibrary.pm:1498 msgid "" "Show/hide the line numbers of all the documents on the left side of the " "window" msgstr "Muestra/oculta los números de línea en la parte izquierda de la ventana para todos los documentos" #: lib/Padre/Wx/ActionLibrary.pm:1586 msgid "Show/hide the newlines with special character" msgstr "Muestra/oculta los caracteres de nueva línea con un carácter especial" #: lib/Padre/Wx/ActionLibrary.pm:1460 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Muestra/oculta la barra de estado en la parte inferior de la pantalla" #: lib/Padre/Wx/ActionLibrary.pm:1596 msgid "Show/hide the tabs and the spaces with special characters" msgstr "Muestra/oculta las tabulaciones y los espacios con caracteres especiales" #: lib/Padre/Wx/ActionLibrary.pm:1470 msgid "Show/hide the toolbar at the top of the editor" msgstr "Muestra/oculta la barra de herramientas en la parte superior del editor" #: lib/Padre/Wx/ActionLibrary.pm:1606 msgid "" "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "Muestra/oculta barras verticales en cada posición de sangría a la izquierda de las líneas" #: lib/Padre/Config.pm:469 msgid "Showing the splash image during start-up" msgstr "Mostrando la imagen de bienvenida en el inicio" #: lib/Padre/Wx/FBP/About.pm:508 msgid "Simone Blandino" msgstr "Simone Blandino" #: lib/Padre/Wx/ActionLibrary.pm:1108 msgid "Simplistic Patch only works on saved files" msgstr "La aplicación sencilla de revisiones solo funciona en archivos guardados" #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "Simular bloqueo en segundo &plano" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "Simular &bloqueo" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "Simular &excepción en segundo plano" #: lib/Padre/Wx/ActionLibrary.pm:2377 msgid "Simulate a right mouse button click to open the context menu" msgstr "Simular clic en botón secundario para abrir el menú contextual" #: lib/Padre/Wx/Dialog/RegexEditor.pm:476 msgid "Single-line (&s)" msgstr "Una sola línea (&s)" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "Tamaño" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "No responder a la pregunta" #: lib/Padre/Wx/Dialog/OpenResource.pm:270 msgid "Skip using MANIFEST.SKIP" msgstr "Omitir MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/OpenResource.pm:266 msgid "Skip version control system files" msgstr "Omitir archivos del sistema de control de versiones" #: lib/Padre/Document.pm:1415 lib/Padre/Document.pm:1416 msgid "Skipped for large files" msgstr "Omitido para archivos grandes" #: lib/Padre/Wx/FBP/Snippet.pm:61 msgid "Snippet:" msgstr "Fragmento de código:" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "Hay algún problema en la base de datos de Padre:\n" "la sesión %s figura en la lista, pero no hay datos" #: lib/Padre/Wx/Dialog/Patch.pm:491 msgid "" "Sorry Diff Failed, are you sure your choice of files was correct for this " "action" msgstr "Diff no se ejecutó correctamente; compruebe que la elección de archivos es correcta para esta acción" #: lib/Padre/Wx/Dialog/Patch.pm:588 msgid "" "Sorry, Diff failed. Are you sure your have access to the repository for this " "action" msgstr "Diff no se ejecutó correctamente. Asegúrese de que tiene acceso al repositorio para esta acción" #: lib/Padre/Wx/Dialog/Patch.pm:434 msgid "" "Sorry, patch failed, are you sure your choice of files was correct for this " "action" msgstr "No se pudo aplicar la revisión. Compruebe que su elección de archivos sea correcta para esta acción." #: lib/Padre/Wx/FBP/Preferences.pm:73 msgid "Sort Order:" msgstr "Criterio de ordenación:" #: lib/Padre/Wx/FBP/Document.pm:228 msgid "Source Lines of Code" msgstr "Líneas de código fuente" #: lib/Padre/Wx/Dialog/Preferences.pm:30 msgid "Space" msgstr "Espacio" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "Space and tab" msgstr "Espacio y tabulación" #: lib/Padre/Wx/Main.pm:6281 msgid "Space to Tab" msgstr "Espacio a tabulación" #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Spaces to &Tabs..." msgstr "Convertir espacios en &tabulaciones..." #: lib/Padre/Locale.pm:249 lib/Padre/Wx/FBP/About.pm:595 msgid "Spanish" msgstr "Español" #: lib/Padre/Locale.pm:235 msgid "Spanish (Argentina)" msgstr "Español (Argentina)" #: lib/Padre/Wx/ActionLibrary.pm:906 msgid "Special &Value..." msgstr "&Valor especial..." #: lib/Padre/Config.pm:1381 msgid "" "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "Especifique las opciones de Devel::EndStats. Hay que habilitar 'feature_devel_endstats'." #: lib/Padre/Config.pm:1400 msgid "" "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "Especifique las opciones de Devel::TraceUse. Hay que habilitar 'feature_devel_traceuse'." #: lib/Padre/Wx/FBP/Preferences.pm:523 msgid "Startup" msgstr "Inicio" #: lib/Padre/Wx/VCS.pm:53 lib/Padre/Wx/FBP/DebugOutput.pm:37 #: lib/Padre/Wx/Dialog/Advanced.pm:111 lib/Padre/Wx/CPAN/Listview.pm:35 #: lib/Padre/Wx/CPAN/Listview.pm:59 msgid "Status" msgstr "Estado" #: lib/Padre/Wx/FBP/Sync.pm:52 msgid "Status:" msgstr "Estado:" #: lib/Padre/Wx/FBP/About.pm:152 msgid "Steffen Muller" msgstr "Steffen Muller" #: lib/Padre/Wx/FBP/FoundInFiles.pm:111 msgid "Stop Search" msgstr "Detener búsqueda" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "Stop a running task." msgstr "Detiene una tarea que se está ejecutando." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "Detiene el procesamiento de otros elementos de la cola de acciones durante 1 segundo" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Detiene el procesamiento de otros elementos de la cola de acciones durante 10 segundos" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Detiene el procesamiento de otros elementos de la cola de acciones durante 30 segundos" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "Cadena" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "Seguimiento de subrutina detenido" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "Seguimiento de subrutina detenido" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Cambia el idioma de la interfaz de Padre a %s" #: lib/Padre/Wx/ActionLibrary.pm:1484 msgid "Switch document type" msgstr "Cambia tipo de documento" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Cambiar idioma al predeterminado del sistema" #: lib/Padre/Wx/Syntax.pm:161 lib/Padre/Wx/FBP/Preferences.pm:455 msgid "Syntax Check" msgstr "Comprobación de sintaxis" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Predeterminado del sistema" #: lib/Padre/Wx/FBP/Debugger.pm:356 msgid "" "T\n" "Produce a stack backtrace." msgstr "T\n" "Produce un seguimiento inverso de pila." #: lib/Padre/Wx/Dialog/Preferences.pm:29 #: lib/Padre/Wx/Dialog/RegexEditor.pm:140 msgid "Tab" msgstr "Tabulador" #: lib/Padre/Wx/FBP/Preferences.pm:998 msgid "Tab Spaces:" msgstr "Espacios de tabulación:" #: lib/Padre/Wx/Main.pm:6282 msgid "Tab to Space" msgstr "Tabulación a espacio" #: lib/Padre/Wx/Menu/Edit.pm:233 msgid "Tabs and S&paces" msgstr "Tabulaciones y es&pacios" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Tabs to &Spaces..." msgstr "Convertir tabulaciones en e&spacios..." #: lib/Padre/Wx/TaskList.pm:184 lib/Padre/Wx/FBP/Preferences.pm:88 #: lib/Padre/Wx/FBP/Preferences.pm:406 lib/Padre/Wx/Panel/TaskList.pm:98 msgid "Task List" msgstr "Lista de tareas" #: lib/Padre/MIME.pm:878 msgid "Text" msgstr "Texto" #: lib/Padre/Wx/Main.pm:4417 lib/Padre/Wx/Choice/Files.pm:20 msgid "Text Files" msgstr "Archivos de texto" #: lib/Padre/Wx/Dialog/Bookmarks.pm:108 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "El marcador '%s' ya no existe" #: lib/Padre/Document.pm:254 #, perl-format msgid "" "The file %s you are trying to open is %s bytes large. It is over the " "arbitrary file size limit of Padre which is currently %s. Opening this file " "may reduce performance. Do you still want to open the file?" msgstr "El archivo %s que intenta abrir ocupa %s bytes. Supera el límite de tamaño de archivo en Padre, que actualmente es de %s. Si abre este archivo el rendimiento puede verse afectado. ¿Desea abrir el archivo de todos modos?" #: lib/Padre/Wx/Dialog/Preferences.pm:485 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "El acceso directo '%s' ya está asignado a la acción '%s'.\n" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "Aún no hay ninguna posición guardada" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Este documento no contiene POD" #: lib/Padre/Wx/ActionLibrary.pm:2273 msgid "This function reloads the My plug-in without restarting Padre" msgstr "Esta función vuelve a cargar el complemento personalizado sin reiniciar Padre" #: lib/Padre/Config.pm:1372 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "Esto requiere instalar Devel::EndStats y reiniciar Padre" #: lib/Padre/Config.pm:1391 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "Esto requiere instalar Devel::TraceUse y reiniciar Padre" #: lib/Padre/Wx/Main.pm:5375 msgid "This type of file (URL) is missing delete support." msgstr "Este tipo de archivo (URL) no se puede eliminar." #: lib/Padre/Wx/Dialog/About.pm:146 msgid "Threads" msgstr "Hilos de ejecución" #: lib/Padre/Wx/FBP/Preferences.pm:1311 lib/Padre/Wx/FBP/Preferences.pm:1354 msgid "Timeout (seconds)" msgstr "Tiempo de espera (en segundos)" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "Hoy" #: lib/Padre/Config.pm:1445 msgid "Toggle Diff window feature that compares two buffers graphically" msgstr "Alterna la ventana de diferencias, que permite comparar dos búferes gráficamente" #: lib/Padre/Config.pm:1463 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "Alterna la detección automática de Perl 6 en archivos de Perl 5" #: lib/Padre/Wx/FBP/Debugger.pm:316 msgid "" "Toggle running breakpoints (update DB)\n" "b\n" "Sets breakpoint on current line\n" "B line\n" "Delete a breakpoint from the specified line." msgstr "Alterna puntos de interrupción de ejecución (actualiza base de datos)\n" "b\n" "Establece un punto de interrupción en la línea actual\n" "B línea\n" "Elimina un punto de interrupción de la línea especificada." #: lib/Padre/Wx/FBP/About.pm:230 msgid "Tom Eliaz" msgstr "Tom Eliaz" #: lib/Padre/Wx/FBP/Preferences.pm:344 msgid "Tool Positions" msgstr "Posición de herramientas" #: lib/Padre/Wx/FBP/Debugger.pm:231 msgid "Trace" msgstr "Seguimiento" #: lib/Padre/Wx/FBP/About.pm:843 msgid "Translation" msgstr "Traducción" #: lib/Padre/Wx/Dialog/Advanced.pm:129 lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Verdadero" #: lib/Padre/Locale.pm:421 lib/Padre/Wx/FBP/About.pm:631 msgid "Turkish" msgstr "Turco" #: lib/Padre/Wx/ActionLibrary.pm:1388 msgid "Turn on CPAN explorer" msgstr "Activa el Explorador de CPAN" #: lib/Padre/Wx/ActionLibrary.pm:1398 msgid "Turn on Diff window" msgstr "Activa la ventana de diferencias" #: lib/Padre/Wx/ActionLibrary.pm:2063 msgid "Turn on debug breakpoints panel" msgstr "Activar panel de puntos de interrupción de depuración" #: lib/Padre/Wx/ActionLibrary.pm:1439 msgid "" "Turn on syntax checking of the current document and show output in a window" msgstr "Activa la comprobación de sintaxis para el documento actual y muestra los resultados en una ventana" #: lib/Padre/Wx/ActionLibrary.pm:1450 msgid "" "Turn on version control view of the current project and show version control " "changes in a window" msgstr "Activa la vista de control de versiones del proyecto actual y muestra los cambios de control de versiones en una ventana" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Tipo" #: lib/Padre/Wx/Dialog/HelpSearch.pm:148 msgid "Type a help &keyword to read:" msgstr "&Palabra clave que desea buscar en la ayuda:" #: lib/Padre/MIME.pm:40 msgid "UNKNOWN" msgstr "DESCONOCIDO" #: lib/Padre/Wx/ActionLibrary.pm:1528 msgid "Un&fold All" msgstr "&Desplegar todo" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "No se puede analizar %s" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Undo last change in current file" msgstr "Deshace el último cambio realizado en el archivo actual" #: lib/Padre/Wx/ActionLibrary.pm:1529 lib/Padre/Wx/ActionLibrary.pm:1539 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "Expande todos los bloques que se pueden plegar (el plegado debe estar habilitado)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Unicode character 'name'" msgstr "'Nombre' de carácter Unicode" #: lib/Padre/Locale.pm:143 lib/Padre/Wx/Main.pm:4161 msgid "Unknown" msgstr "Desconocido" #: lib/Padre/PluginManager.pm:778 lib/Padre/Document/Perl.pm:654 #: lib/Padre/Document/Perl.pm:903 lib/Padre/Document/Perl.pm:952 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "Error desconocido" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Error desconocido de " #: lib/Padre/PluginHandle.pm:24 msgid "Unloaded" msgstr "Descargado" #: lib/Padre/Wx/VCS.pm:260 msgid "Unmodified" msgstr "Sin modificar" #: lib/Padre/Document.pm:1063 #, perl-format msgid "Unsaved %d" msgstr "%d (sin guardar)" #: lib/Padre/Wx/Main.pm:5111 msgid "Unsaved File" msgstr "Archivo sin guardar" #: lib/Padre/Util/FileBrowser.pm:63 lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "SO incompatible: %s" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "Sin título" #: lib/Padre/Wx/VCS.pm:253 lib/Padre/Wx/VCS.pm:267 lib/Padre/Wx/FBP/VCS.pm:189 msgid "Unversioned" msgstr "Sin control de versiones" #: lib/Padre/Wx/Dialog/Preferences.pm:31 msgid "Up" msgstr "Arriba" #: lib/Padre/Wx/VCS.pm:266 msgid "Updated but unmerged" msgstr "Actualizado pero sin combinar" #: lib/Padre/Wx/FBP/Sync.pm:202 msgid "Upload" msgstr "Cargar" #: lib/Padre/Wx/Menu/Edit.pm:263 msgid "Upper/Lo&wer Case" msgstr "&Mayúsculas/Minúsculas" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Uppercase characters" msgstr "Caracteres en mayúsculas" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Uppercase next character" msgstr "Siguiente carácter en mayúscula" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Uppercase till \\E" msgstr "Mayúsculas hasta \\E" #: lib/Padre/Wx/FBP/Preferences.pm:1346 msgid "Use FTP passive mode" msgstr "Usar el modo pasivo de FTP" #: lib/Padre/Wx/ActionLibrary.pm:1135 msgid "Use Perl source as filter" msgstr "Usa código fuente Perl como filtro" #: lib/Padre/Wx/FBP/Preferences.pm:644 msgid "Use X11 middle button paste style" msgstr "Usar estilo de pegar con botón central de X11" #: lib/Padre/Wx/ActionLibrary.pm:1321 msgid "Use a filter to select one or more files" msgstr "Usar un filtro para seleccionar uno o varios archivos" #: lib/Padre/Wx/FBP/Preferences.pm:1453 msgid "Use external window for execution" msgstr "Usar ventana externa para la ejecución" #: lib/Padre/Wx/FBP/Preferences.pm:972 msgid "Use tabs instead of spaces" msgstr "Usar tabulaciones en lugar de espacios" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "Usuario" #: lib/Padre/Wx/ActionLibrary.pm:2322 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "Usa CPAN.pm para instalar un paquete preparado para CPAN abierto localmente" #: lib/Padre/Wx/ActionLibrary.pm:2332 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "Usa pip para descargar un archivo tar.gz e instalarlo con CPAN.pm" #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Valor" #: lib/Padre/Wx/ActionLibrary.pm:1911 msgid "Variable Name" msgstr "Nombre de variable" #: lib/Padre/Document/Perl.pm:863 msgid "Variable case change" msgstr "Cambiar mayúsculas/minúsculas de variable" #: lib/Padre/Wx/VCS.pm:126 lib/Padre/Wx/FBP/Preferences.pm:438 msgid "Version Control" msgstr "Control de versiones" #: lib/Padre/Wx/FBP/Preferences.pm:931 msgid "Version Control Tool" msgstr "Herramienta de control de versiones" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Vertically &Align Selected" msgstr "Alinear seleccionadas &verticalmente" #: lib/Padre/Wx/Syntax.pm:77 msgid "Very Fatal Error" msgstr "Error fatal grave" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:366 msgid "View" msgstr "Ver" #: lib/Padre/Wx/ActionLibrary.pm:2572 msgid "View All &Open Bugs" msgstr "&Ver todos los errores abiertos" #: lib/Padre/Wx/ActionLibrary.pm:2573 msgid "View all known and currently unsolved bugs in Padre" msgstr "Muestra todos los errores conocidos y pendientes de Padre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Visible characters" msgstr "Caracteres visibles" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Visible characters and spaces" msgstr "Caracteres visibles y espacios" #: lib/Padre/Wx/ActionLibrary.pm:2175 msgid "Visit Debug &Wiki..." msgstr "Visitar &wiki de depuración..." #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Visit Perl Websites..." msgstr "Visitar sitios web sobre Perl..." #: lib/Padre/Document.pm:779 #, perl-format msgid "" "Visual filename %s does not match the internal filename %s, do you want to " "abort saving?" msgstr "El nombre de archivo visible, %s, no coincide con el nombre de archivo interno, %s. ¿Desea cancelar la operación de almacenamiento?" #: lib/Padre/Document.pm:260 lib/Padre/Wx/Syntax.pm:47 #: lib/Padre/Wx/Main.pm:3118 lib/Padre/Wx/Main.pm:3840 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Aviso" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "" "Warning! This will delete all the changes you made to 'My plug-in' and " "replace it with the default code that comes with your installation of Padre" msgstr "Advertencia: Esto eliminará todos los cambios realizados en el complemento personalizado (\"My\") y los sustituirá por el código predeterminado incluido en la instalación de Padre" #: lib/Padre/Wx/Dialog/Patch.pm:529 #, perl-format msgid "" "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache " "Subversion\"" msgstr "Advertencia: se detectó SVN v%s per necesita SVN v%s, que ahora se llama \"Apache Subversion\"" #: lib/Padre/Wx/FBP/Expression.pm:96 msgid "Watch" msgstr "Inspección" #: lib/Padre/PluginManager.pm:383 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "Se han detectado varios complementos nuevos.\n" " Para configurarlos y habilitarlos, vaya a\n" "Complementos -> Administrador de complementos\n" "\n" "Lista de complementos nuevos:\n" "\n" #: lib/Padre/Wx/ActionLibrary.pm:2076 lib/Padre/Wx/ActionLibrary.pm:2086 msgid "We should not need this menu item" msgstr "Este elemento de menú no debería ser necesario" #: lib/Padre/Wx/Main.pm:4419 msgid "Web Files" msgstr "Archivos web" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Cualquier cosa" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "When typing in functions allow showing short examples of the function" msgstr "Al escribir funciones, permite mostrar ejemplos breves de uso de la función" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "¿Cómo descubrió Padre?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Whitespace characters" msgstr "Caracteres de espacio en blanco" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:372 msgid "Window" msgstr "Ventana" #: lib/Padre/Wx/Dialog/WindowList.pm:34 msgid "Window list" msgstr "Lista de ventanas" #: lib/Padre/Wx/ActionLibrary.pm:545 msgid "Word count and other statistics of the current document" msgstr "Recuento de palabras y otras estadísticas del documento actual" #: lib/Padre/Wx/FBP/Document.pm:156 msgid "Words" msgstr "Palabras" #: lib/Padre/Wx/ActionLibrary.pm:1616 msgid "Wrap long lines" msgstr "Ajusta las líneas largas" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Escribiendo archivo en el servidor FTP..." #: lib/Padre/Wx/Output.pm:165 lib/Padre/Wx/Main.pm:2974 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get " "at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "La versión %s de Wx::Perl::ProcessStream causa problemas. Debe usar como mínimo la versión 0.20. Para ello, escriba\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "Año" #: lib/Padre/File/HTTP.pm:162 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "Va a escribir un archivo con HTTP PUT.\n" "Esta característica es muy experimental y no la admiten la mayoría de los servidores." #: lib/Padre/Wx/Editor.pm:1890 msgid "You must select a range of lines" msgstr "Debe seleccionar un intervalo de líneas" #: lib/Padre/Wx/Main.pm:3839 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Se está ejecutando un proceso. ¿Desea eliminarlo y salir?" #: lib/Padre/MIME.pm:1212 msgid "ZIP Archive" msgstr "ZIP Archive" #: lib/Padre/Wx/FBP/About.pm:158 lib/Padre/Wx/FBP/About.pm:451 msgid "Zeno Gantner" msgstr "Zeno Gantner" #: lib/Padre/Wx/FBP/Debugger.pm:123 msgid "" "c [line|sub]\n" "Continue, optionally inserting a one-time-only breakpoint at the specified " "line or subroutine." msgstr "c [línea|sub]\n" "Continúa, insertando opcionalmente un punto de interrupción de un solo uso en la línea o subrutina especificada." #: lib/Padre/Wx/FBP/About.pm:314 msgid "code4pay" msgstr "code4pay" #: lib/Padre/CPAN.pm:180 msgid "cpanm is unexpectedly not installed" msgstr "No se esperaba que cpanm no estuviera instalado" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "p. ej." #: lib/Padre/Wx/Dialog/WindowList.pm:349 lib/Padre/Wx/Dialog/WindowList.pm:353 msgid "fresh" msgstr "recién instalado" #: lib/Padre/Wx/FBP/Debugger.pm:83 msgid "" "n [expr]\n" "Next. Executes over subroutine calls, until the beginning of the next " "statement. If an expression is supplied that includes function calls, those " "functions will be executed with stops before each statement." msgstr "n [expr]\n" "Siguiente. Se ejecuta paso a paso por llamadas a subrutina, hasta el principio de la siguiente instrucción. Si se suministra una expresión que incluye llamadas a funciones, dichas funciones se ejecutarán con interrupciones antes de cada instrucción." #: lib/Padre/Wx/FBP/Debugger.pm:396 msgid "" "o\n" "Display all options.\n" "\n" "o booloption ...\n" "Set each listed Boolean option to the value 1.\n" "\n" "o anyoption? ...\n" "Print out the value of one or more options.\n" "\n" "o option=value ...\n" "Set the value of one or more options. If the value has internal whitespace, " "it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" " "to call less with those specific options. You may use either single or " "double quotes, but if you do, you must escape any embedded instances of same " "sort of quote you began with, as well as any escaping any escapes that " "immediately precede that quote but which are not meant to escape the quote " "itself. In other words, you follow single-quoting rules irrespective of the " "quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?" "\"\" .\n" "\n" "For historical reasons, the =value is optional, but defaults to 1 only where " "it is safe to do so--that is, mostly for Boolean options. It is always " "better to assign a specific value using = . The option can be abbreviated, " "but for clarity probably should not be. Several options can be set together. " "See Configurable Options for a list of these." msgstr "o\n" "Mostrar todas las opciones.\n" "\n" "o opciónbooleana ...\n" "Establece 1 como valor de cada opción booleana mostrada.\n" "\n" "o cualquieropción? ...\n" "Imprime en pantalla el valor de una o más opciones.\n" "\n" "o opción=valor ...\n" "Establece el valor de una o más opciones. Si el valor contiene espacios, debe escribirse entre comillas. Por ejemplo, puede establecer o pager=\"less -MQeicsNfr\" para llamar a less con esas opciones específicas. Puede usar comillas simples o comillas dobles, pero en cualquier caso debe marcar con una secuencia de escape las instancias incrustadas de comillas de cualquier tipo, así como las secuencias de escape que precedan a una comilla pero que no representen una secuencia de escape. Es decir, debe seguir las reglas para comillas simples, independientemente del tipo de comilla; p. ej., ,o opción='tarda 10' o más', o opción=\"Dijo que \"10' o más\"\" .\n" "\n" "Por razones históricas, el valor de =valor es opcional, pero su valor predeterminado es 1 solo cuando sea seguro hacerlo así (es decir, básicamente para opciones booleanas). Siempre es mejor asignar un valor específico con = . La opción se puede abreviar, pero por claridad probablemente sea mejor no hacerlo. Se pueden establecer varias opciones a la vez. Puede ver una lista en Opciones configurables." #: lib/Padre/Wx/FBP/Breakpoints.pm:105 msgid "project" msgstr "proyecto" #: lib/Padre/Wx/FBP/Debugger.pm:103 msgid "" "r\n" "Continue until the return from the current subroutine. Dump the return value " "if the PrintRet option is set (default)." msgstr "r\n" "Continúa hasta la instrucción return de la subrutina actual. Vuelva el valor de retorno si la opción PrintRet está establecida (predeterminado)." #: lib/Padre/Wx/FBP/Debugger.pm:63 msgid "" "s [expr]\n" "Single step. Executes until the beginning of another statement, descending " "into subroutine calls. If an expression is supplied that includes function " "calls, it too will be single-stepped." msgstr "s [expr]\n" "Paso a paso. Se ejecuta hasta el principio de otra instrucción, entrando en llamadas a subrutinas. Si se suministra una expresión que contiene llamadas a funciones, estas también se recorrerán paso a paso." #: lib/Padre/Wx/FBP/Breakpoints.pm:110 msgid "show breakpoints in project" msgstr "mostrar puntos de interrupción en proyecto" #: lib/Padre/Wx/FBP/Debugger.pm:236 msgid "" "t\n" "Toggle trace mode (see also the AutoTrace option)." msgstr "t\n" "Alterna el modo de seguimiento (vea también la opción AutoTrace)." #: lib/Padre/Wx/FBP/Debugger.pm:276 msgid "v [line] View window around line." msgstr "v [línea] Muestra una ventana en torno a la línea." #: lib/Padre/Wx/FBP/Debugger.pm:464 msgid "" "w expr\n" "Add a global watch-expression. Whenever a watched global changes the " "debugger will stop and display the old and new values.\n" "\n" "W expr\n" "Delete watch-expression\n" "W *\n" "Delete all watch-expressions." msgstr "w expr\n" "Agrega una expresión de inspección global. Siempre que un valor inspeccionado cambia, se detiene el depurador y muestra el valor antiguo y el nuevo.\n" "\n" "W expr\n" "Elimina una expresión de inspección\n" "W *\n" "Elimina todas las expresiones de inspección." #: lib/Padre/Wx/FBP/Debugger.pm:217 msgid "" "working now with some gigery pokery to get around\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" msgstr "apaño para solucionar error intermitente; no se puede usar FIRSTKEY con el hash %~" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "incluir en grep { }" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "incluir en map { }" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "Soporte en &línea de wxPerl" #: lib/Padre/Wx/FBP/Debugger.pm:198 msgid "" "y [level [vars]]\n" "Display all (or some) lexical variables (mnemonic: mY variables) in the " "current scope or level scopes higher. You can limit the variables that you " "see with vars which works exactly as it does for the V and X commands. " "Requires the PadWalker module version 0.08 or higher; will warn if this " "isn't installed. Output is pretty-printed in the same style as for V and the " "format is controlled by the same options." msgstr "y [nivel [vars]]\n" "Muestra todas (o algunas de las) variables léxicas (regla nemotécnica: variables mY) del ámbito actual o de ámbitos de nivel superior. Puede limitar las variables que ve con vars, que funciona exactamente igual que para los comandos V y X. Requiere el módulo PadWalker versión 0.08 o superior; si no está instalado, mostrará una advertencia. Muestra los resultados de forma legible, con el mismo estilo usado para V, y se controla el formato con las mismas opciones." #~ msgid "&Install CPAN Module" #~ msgstr "&Instalar módulo de CPAN" #~ msgid "&Update" #~ msgstr "Act&ualizar" #~ msgid "Ahmad Zawawi: Developer" #~ msgstr "Ahmad Zawawi: Programador" #~ msgid "Auto-Complete" #~ msgstr "Autocompletar" #~ msgid "Automatic indentation style detection" #~ msgstr "Detección de estilo de sangría automática" #~ msgid "Case &sensitive" #~ msgstr "&Distinguir mayúsculas de minúsculas" #~ msgid "Characters (including whitespace)" #~ msgstr "Caracteres (incluidos espacios)" #~ msgid "Check for file updates on disk every (seconds)" #~ msgstr "" #~ "Comprobar si hay actualizaciones de archivos en disco cada (segundos)" #~ msgid "Cl&ose Window on Hit" #~ msgstr "Cerrar &ventana al encontrar coincidencia" #~ msgid "Close Window on &Hit" #~ msgstr "Cerrar &ventana al encontrar coincidencia" #~ msgid "Content" #~ msgstr "Contenido" #~ msgid "Copy &All" #~ msgstr "Copi&ar todo" #~ msgid "Copy &Selected" #~ msgstr "Copiar &seleccionadas" #~ msgid "Core Team" #~ msgstr "Equipo titular" #~ msgid "Could not determine the comment character for %s document type" #~ msgstr "" #~ "No se pudo determinar el carácter de comentario para el tipo de documento " #~ "%s" #~ msgid "Could not set breakpoint on file '%s' row '%s'" #~ msgstr "" #~ "No se pudo establecer el punto de interrupción en el archivo '%s', fila " #~ "'%s'" #~ msgid "Created by:" #~ msgstr "Creado por:" #~ msgid "Debugger not running" #~ msgstr "El depurador no se está ejecutando" #~ msgid "Developers" #~ msgstr "Programadores" #~ msgid "Did not find any matches." #~ msgstr "No se encontró ninguna coincidencia." #~ msgid "" #~ "Display the current value of a variable in the right hand side debugger " #~ "pane" #~ msgstr "" #~ "Muestra el valor actual de una variable en el panel del depurador situado " #~ "a la derecha" #~ msgid "Document Tools (Right)" #~ msgstr "Herramientas para documentos (derecha)" #~ msgid "Evaluate Expression..." #~ msgstr "Evaluar expresión..." #~ msgid "" #~ "Execute the next statement, enter subroutine if needed. (Start debugger " #~ "if it is not yet running)" #~ msgstr "" #~ "Ejecuta la siguiente instrucción y entra en la subrutina si es necesario. " #~ "(Debe iniciarse el depurador si no se está ejecutando.)" #~ msgid "" #~ "Execute the next statement. If it is a subroutine call, stop only after " #~ "it returned. (Start debugger if it is not yet running)" #~ msgstr "" #~ "Ejecutar la siguiente instrucción. Si se trata de una llamada a " #~ "subrutina, sólo se detiene cuando la subrutina devuelve el control. (Debe " #~ "iniciarse el depurador si no se está ejecutando.)" #~ msgid "Expr" #~ msgstr "Expr" #~ msgid "Expression:" #~ msgstr "Expresión:" #~ msgid "Fast but might be out of date" #~ msgstr "Rápido, aunque un poco obsoleto" #~ msgid "File access via FTP" #~ msgstr "Acceso a archivos a través de FTP" #~ msgid "File access via HTTP" #~ msgstr "Acceso a archivos a través de HTTP" #~ msgid "Filename" #~ msgstr "Nombre de archivo" #~ msgid "Filter" #~ msgstr "Filtro" #~ msgid "Find Results (%s)" #~ msgstr "Resultados (%s)" #~ msgid "Find Text:" #~ msgstr "Buscar texto:" #~ msgid "Find and Replace" #~ msgstr "Buscar y reemplazar" #~ msgid "Gabor Szabo: Project Manager" #~ msgstr "Gabor Szabo: Jefe de proyecto" #~ msgid "Go to &Todo Window" #~ msgstr "Ir a ventana de &tareas pendientes" #~ msgid "" #~ "Hopefully faster than the PPI Traditional. Big file will fall back to " #~ "Scintilla highlighter." #~ msgstr "" #~ "Esperemos que más rápido que PPI. Para los archivos grandes se usará el " #~ "resaltador de sintaxis de Scintilla." #~ msgid "If within a subroutine, run till return is called and then stop." #~ msgstr "" #~ "Si la línea actual está dentro de una subrutina, se ejecuta el código " #~ "hasta que se llama a return y entonces se detiene la ejecución." #~ msgid "Indentation width (in columns)" #~ msgstr "Ancho de sangría (en columnas)" #~ msgid "Install a Perl module from CPAN" #~ msgstr "Instala un módulo Perl desde CPAN" #~ msgid "Interpreter arguments" #~ msgstr "Argumentos del intérprete" #~ msgid "Jump to Current Execution Line" #~ msgstr "Saltar a la línea de ejecución actual" #~ msgid "Kibibytes (kiB)" #~ msgstr "Kibibytes (KiB)" #~ msgid "Kilobytes (kB)" #~ msgstr "Kilobytes (KB)" #~ msgid "Line" #~ msgstr "Línea" #~ msgid "Line break mode" #~ msgstr "Modo de salto de línea" #~ msgid "List all the breakpoints on the console" #~ msgstr "Muestra todos los puntos de interrupción en la consola" #~ msgid "Local/Remote File Access" #~ msgstr "Acceso a archivos locales/remotos" #~ msgid "MIME type did not have a class entry when %s(%s) was called" #~ msgstr "El tipo MIME no tenía una entrada de clase cuando se llamó a %s(%s)" #~ msgid "MIME type is not supported when %s(%s) was called" #~ msgstr "No se admitía el tipo MIME cuando se llamó a %s(%s)" #~ msgid "MIME type was not supported when %s(%s) was called" #~ msgstr "No se admitía el tipo MIME cuando se llamó a %s(%s)" #~ msgid "Match Case" #~ msgstr "Coincidir mayúsculas y minúsculas" #~ msgid "Methods order" #~ msgstr "Orden de los métodos" #~ msgid "Move to other panel" #~ msgstr "Mover a otro panel" #~ msgid "MyLabel" #~ msgstr "Mi_etiqueta" #~ msgid "Next" #~ msgstr "Siguiente" #~ msgid "No file is open" #~ msgstr "Ningún archivo abierto" #~ msgid "No module mime_type='%s' filename='%s'" #~ msgstr "No hay ningún módulo con mime_type='%s' filename='%s'" #~ msgid "Non-whitespace characters" #~ msgstr "Caracteres que no sean espacios" #~ msgid "Open files" #~ msgstr "Abrir archivos" #~ msgid "Padre:-" #~ msgstr "Padre:-" #~ msgid "Perl interpreter" #~ msgstr "Intérprete de Perl" #~ msgid "Plug-in Name" #~ msgstr "Nombre del complemento" #~ msgid "Previ&ous" #~ msgstr "Anteri&or" #~ msgid "Project Tools (Left)" #~ msgstr "Herramientas para proyectos (izquierda)" #~ msgid "R/W" #~ msgstr "Lectura y escritura" #~ msgid "RegExp for TODO panel" #~ msgstr "Expresión regular del panel de tareas pendientes" #~ msgid "Regular &Expression" #~ msgstr "Expresión ®ular" #~ msgid "Related editor has been closed" #~ msgstr "Se ha cerrado un editor relacionado" #~ msgid "Reload all files" #~ msgstr "Volver a cargar todos los archivos" #~ msgid "Reload some" #~ msgstr "Volver a cargar algunos" #~ msgid "Reload some files" #~ msgstr "Volver a cargar algunos archivos" #~ msgid "Remove the breakpoint at the current location of the cursor" #~ msgstr "Quita el punto de interrupción de la ubicación actual del cursor" #~ msgid "Replace All" #~ msgstr "Reemplazar todo" #~ msgid "Replace Text:" #~ msgstr "Reemplazar texto:" #~ msgid "Replace With" #~ msgstr "Reemplazar con" #~ msgid "Run till Breakpoint (&c)" #~ msgstr "Ejecutar hasta un punto de interrupción (&c)" #~ msgid "Run to Cursor" #~ msgstr "Ejecutar hasta el cursor" #~ msgid "Search &Term" #~ msgstr "Buscar &término" #~ msgid "Search again for '%s'" #~ msgstr "Buscar '%s' de nuevo" #~ msgid "Set Bookmark" #~ msgstr "Establecer marcador" #~ msgid "Set a breakpoint at the line where to cursor is and run till there" #~ msgstr "" #~ "Establece un punto de interrupción en la línea en la que se encuentra el " #~ "cursor y ejecuta el código hasta dicha línea" #~ msgid "" #~ "Set focus to the line where the current statement is in the debugging " #~ "process" #~ msgstr "" #~ "Establece el foco en la línea en la que se encuentra la instrucción " #~ "actual en el proceso de depuración" #~ msgid "Set the focus to the \"Todo\" window" #~ msgstr "Establece el foco en la ventana \"Tareas pendientes\"" #~ msgid "Show Stack Trace (&t)" #~ msgstr "Mostrar se&guimiento de pila" #~ msgid "Show Value Now (&x)" #~ msgstr "Mostrar valor ahora (&x)" #~ msgid "Show the value of a variable now in a pop-up window." #~ msgstr "Muestra el valor actual de una variable en una ventana emergente." #~ msgid "Slow but accurate and we have full control so bugs can be fixed" #~ msgstr "" #~ "Aunque lento, es preciso y ofrece control completo, lo que permite " #~ "corregir errores de programación" #~ msgid "Start running and/or continue running till next breakpoint or watch" #~ msgstr "" #~ "Inicia o continúa la ejecución hasta el siguiente punto de interrupción o " #~ "inspección" #~ msgid "Stats" #~ msgstr "Estadísticas" #~ msgid "Step In (&s)" #~ msgstr "Paso a paso por instrucciones (&s)" #~ msgid "Step Out (&r)" #~ msgstr "Paso a paso hasta salir (&r)" #~ msgid "Step Over (&n)" #~ msgstr "Paso a paso por funciones (&n)" #~ msgid "Syntax Highlighter" #~ msgstr "Resaltador de sintaxis" #~ msgid "Tab display size (in spaces)" #~ msgstr "Tamaño de tabulación (en espacios)" #~ msgid "" #~ "The debugger is not running.\n" #~ "You can start the debugger using one of the commands 'Step In', 'Step " #~ "Over', or 'Run till Breakpoint' in the Debug menu." #~ msgstr "" #~ "No se está ejecutando el depurador.\n" #~ "Puede iniciar el depurador con uno de los siguientes comandos del menú " #~ "Depurar: 'Paso a paso por instrucciones', 'Paso a paso por funciones' o " #~ "'Ejecutar hasta un punto de interrupción'." #~ msgid "" #~ "The directory browser got an undef object and may stop working now. " #~ "Please save your work and restart Padre." #~ msgstr "" #~ "El navegador de directorios recibió un objeto undef y podría dejar de " #~ "funcionar. Guarde el trabajo y reinicie Padre." #~ msgid "To-do" #~ msgstr "Tareas pendientes" #~ msgid "Toggle MetaCPAN CPAN explorer panel" #~ msgstr "Alterna el panel de explorador de MetaCPAN y CPAN" #~ msgid "Type in any expression and evaluate it in the debugged process" #~ msgstr "Permite escribir una expresión y la evalúa en el proceso depurado" #~ msgid "Use Tabs" #~ msgstr "Usar tabulaciones" #~ msgid "Username" #~ msgstr "Nombre de usuario" #~ msgid "Variable" #~ msgstr "Variable" #~ msgid "Version" #~ msgstr "Versión" #~ msgid "" #~ "When in a subroutine call show all the calls since the main of the program" #~ msgstr "" #~ "Dentro de una subrutina, muestra todas las llamadas desde el programa " #~ "principal" #~ msgid "X" #~ msgstr "X" #~ msgid "disabled" #~ msgstr "deshabilitado" #~ msgid "enabled" #~ msgstr "habilitado" #~ msgid "error" #~ msgstr "error" #~ msgid "no highlighter for mime-type '%s' using stc" #~ msgstr "no hay resaltador para mime-type '%s' con stc" #~ msgid "none" #~ msgstr "ninguno" #~ msgid "%s has no constructor" #~ msgstr "%s no tiene un constructor" #~ msgid "&Back" #~ msgstr "&Atrás" #~ msgid "&Key Bindings" #~ msgstr "Asociaciones de &teclas" #~ msgid "&Uncomment Selected Lines" #~ msgstr "&Quitar marca de comentario de seleccionadas" #~ msgid "About Padre" #~ msgstr "Acerca de Padre" #~ msgid "Apply Diff to File" #~ msgstr "Aplicar diferencias a archivo" #~ msgid "Apply Diff to Project" #~ msgstr "Aplicar diferencias a proyecto" #~ msgid "Apply a patch file to the current document" #~ msgstr "Aplica un archivo de revisión al documento actual" #~ msgid "Apply a patch file to the current project" #~ msgstr "Aplica un archivo de revisión al proyecto actual" #~ msgid "Blue butterfly on a green leaf" #~ msgstr "Mariposa azul sobre una hoja verde" #~ msgid "Cannot diff if file was never saved" #~ msgstr "" #~ "No es posible determinar las diferencias si el archivo no se ha guardado " #~ "nunca" #~ msgid "Case &insensitive" #~ msgstr "No distinguir mayúsculas de minúsculas" #~ msgid "" #~ "Compare the file in the editor to that on the disk and show the diff in " #~ "the output window" #~ msgstr "" #~ "Compara el archivo del editor con el archivo almacenado en el disco y " #~ "muestra las diferencias en la ventana de resultados" #~ msgid "Creates a Padre Plugin" #~ msgstr "Crea un Complemento de Padre" #~ msgid "Creates a Padre document" #~ msgstr "Crea un documento de Padre" #~ msgid "Creates a Perl 5 module or script" #~ msgstr "Crea un módulo o script Perl 5" #~ msgid "Diff Tools" #~ msgstr "Herramientas de comparación" #~ msgid "Diff to Saved Version" #~ msgstr "Comparar con versión guardada" #~ msgid "Diff tool" #~ msgstr "Herramienta de comparación" #~ msgid "" #~ "Enable or disable the newer Wx::Scintilla source code editing component. " #~ msgstr "" #~ "Habilitar o deshabilitar el componente de edición de código fuente Wx::" #~ "Scintilla más reciente. " #~ msgid "Error while loading %s" #~ msgstr "Error al cargar %s" #~ msgid "Evening" #~ msgstr "Evening" #~ msgid "External Tools" #~ msgstr "Herramientas externas" #~ msgid "Failed to find template file '%s'" #~ msgstr "No se encuentra el archivo de plantilla '%s'" #~ msgid "Find Next" #~ msgstr "Buscar siguiente" #~ msgid "Find Previous" #~ msgstr "Buscar anterior" #~ msgid "" #~ "Find next matching text using a toolbar-like dialog at the bottom of the " #~ "editor" #~ msgstr "" #~ "Busca coincidencias mediante un diálogo tipo barra de herramientas en la " #~ "parte inferior del editor" #~ msgid "" #~ "Find previous matching text using a toolbar-like dialog at the bottom of " #~ "the editor" #~ msgstr "" #~ "Busca la coincidencia anterior mediante un diálogo tipo barra de " #~ "herramientas en la parte inferior del editor" #~ msgid "Found %d issue(s)" #~ msgstr "Se encontraron %d problema(s)" #~ msgid "Goto" #~ msgstr "Ir a" #~ msgid "Goto previous position" #~ msgstr "Ir a la posición anterior" #~ msgid "Hide Find in Files" #~ msgstr "Esconder Buscar en archivos" #~ msgid "Hide the list of matches for a Find in Files search" #~ msgstr "Esconder la lista de aciertos para una Búsqueda de Ficheros" #~ msgid "Imitate clicking on the right mouse button" #~ msgstr "Simula un clic con el botón secundario" #~ msgid "Jump between the two last visited files back and forth" #~ msgstr "Saltar entre los dos últimos archivos visitados" #~ msgid "Jump to the last position saved in memory" #~ msgstr "Ir a la última posición guardada en memoria" #~ msgid "Last Visited File" #~ msgstr "Último archivo visto" #~ msgid "Module" #~ msgstr "Módulo" #~ msgid "New" #~ msgstr "Nuevo" #~ msgid "Night" #~ msgstr "Night" #~ msgid "No errors or warnings found." #~ msgstr "No se detectó ningún error o advertencia." #~ msgid "Notepad++" #~ msgstr "Notepad++" #~ msgid "Oldest Visited File" #~ msgstr "Archivo más antiguo visto" #~ msgid "Opens the Padre document wizard" #~ msgstr "Abre el asistente para documentos de Padre" #~ msgid "Opens the Padre plugin wizard" #~ msgstr "Abre el asistente para complementos de Padre" #~ msgid "Opens the Perl 5 module wizard" #~ msgstr "Abre el asistente para módulos Perl 5" #~ msgid "Padre Document Wizard" #~ msgstr "Asistente de Documento de Padre" #~ msgid "Padre Plugin Wizard" #~ msgstr "Asistente de complementos de Padre" #~ msgid "Perl 5" #~ msgstr "Perl 5" #~ msgid "Perl 5 Module Wizard" #~ msgstr "Asistente pare Módulo de Perl 5" #~ msgid "Plugin" #~ msgstr "Complemento" #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "Establece el foco en la pestaña del primer documento visto." #~ msgid "Rename Variable" #~ msgstr "Cambiar nombre de variable" #~ msgid "Select a Wizard" #~ msgstr "Seleccione un asistente" #~ msgid "Selects and opens a wizard" #~ msgstr "Selecciona y abre un asistente" #~ msgid "Show previous positions..." #~ msgstr "Mostrar posiciones anteriores..." #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "" #~ "Mostrar el cuadro de diálogo de asociaciones de teclas para configurar " #~ "los accesos directos de Padre" #~ msgid "Show the list of positions recently visited" #~ msgstr "Mostrar la lista de posiciones visitadas recientemente" #~ msgid "Solarize" #~ msgstr "Tamaño" #~ msgid "Switch highlighting colours" #~ msgstr "Cambiar el resaltado de colores" #~ msgid "" #~ "Switch to edit the file that was previously edited (can switch back and " #~ "forth)" #~ msgstr "" #~ "Cambia a la ventana de edición del archivo que se editó previamente (o de " #~ "ésta a la actual)" #~ msgid "System Info" #~ msgstr "Info. del sistema" #~ msgid "The Padre Development Team" #~ msgstr "El equipo de programadores de Padre" #~ msgid "The Padre Translation Team" #~ msgstr "El equipo de traductores de Padre" #~ msgid "There are no differences\n" #~ msgstr "" #~ "No existen diferencias\n" #~ "\n" #~ msgid "This requires an installed Wx::Scintilla and a Padre restart" #~ msgstr "Esto requiere instalar Wx::Scintilla y reiniciar Padre" #~ msgid "Ultraedit" #~ msgstr "Ultraedit" #~ msgid "Uptime" #~ msgstr "Tiempo de uso" #~ msgid "Use panel order for Ctrl-Tab (not usage history)" #~ msgstr "Usar orden de panel para Ctrl+Tab (en lugar del historial de uso)" #~ msgid "Visit the PerlMonks" #~ msgstr "Visitar PerlMonks" #~ msgid "Wizard Selector" #~ msgstr "Selector de asistentes" #~ msgid "splash image is based on work by" #~ msgstr "la imagen de bienvenida se basa en el trabajo de" #~ msgid "&Add" #~ msgstr "&Agregar" #~ msgid "&Insert" #~ msgstr "&Insertar" #~ msgid "" #~ "An error has occured while generating '%s':\n" #~ "%s" #~ msgstr "" #~ "Error al generar '%s':\n" #~ "%s" #~ msgid "Apache License" #~ msgstr "Licencia Apache" #~ msgid "Artistic License 1.0" #~ msgstr "Licencia Artistic 1.0" #~ msgid "Artistic License 2.0" #~ msgstr "Licencia Artistic 2.0" #~ msgid "Builder:" #~ msgstr "Generador:" #~ msgid "Category:" #~ msgstr "Categoría:" #~ msgid "Class:" #~ msgstr "Clase:" #~ msgid "Copy of current file" #~ msgstr "Copia del archivo actual" #~ msgid "Dump" #~ msgstr "Volcado" #~ msgid "Dump %INC and @INC" #~ msgstr "Volcado de %INC y @INC" #~ msgid "Dump Current Document" #~ msgstr "Volcado de documento actual" #~ msgid "Dump Current PPI Tree" #~ msgstr "Volcado de árbol de PPI actual" #~ msgid "Dump Display Geometry" #~ msgstr "Volcado de geometría de pantalla" #~ msgid "Dump Expression..." #~ msgstr "Volcado de expresión..." #~ msgid "Dump Task Manager" #~ msgstr "Administrador de tareas de volcado" #~ msgid "Dump Top IDE Object" #~ msgstr "Volcado de objeto IDE de nivel superior" #~ msgid "Edit/Add Snippets" #~ msgstr "Editar o agregar fragmentos de código" #~ msgid "Email Address:" #~ msgstr "Correo electrónico:" #~ msgid "Field %s was missing. Module not created." #~ msgstr "Falta el campo %s. No se ha creado el módulo." #~ msgid "GPL 2 or later" #~ msgstr "GPL 2 o posterior" #~ msgid "LGPL 2.1 or later" #~ msgstr "LGPL 2.1 o posterior" #~ msgid "License:" #~ msgstr "Licencia:" #~ msgid "MIT License" #~ msgstr "Licencia MIT" #~ msgid "Module Start" #~ msgstr "Nuevo módulo" #~ msgid "Mozilla Public License" #~ msgstr "Licencia Pública de Mozilla" #~ msgid "Name:" #~ msgstr "Nombre:" #~ msgid "No Perl 5 file is open" #~ msgstr "Ningún archivo de Perl 5 abierto" #~ msgid "Open Source" #~ msgstr "Open Source" #~ msgid "Open a document and copy the content of the current tab" #~ msgstr "Abre un documento y copia el contenido de la pestaña actual" #~ msgid "Other Open Source" #~ msgstr "Otro (Open Source)" #~ msgid "Other Unrestricted" #~ msgstr "Otro (sin restricciones)" #~ msgid "Parent Directory:" #~ msgstr "Directorio principal:" #~ msgid "Perl Distribution (New)..." #~ msgstr "Distribución de Perl (nueva)..." #~ msgid "Perl licensing terms" #~ msgstr "Términos de licencia de Perl" #~ msgid "Pick parent directory" #~ msgstr "Seleccionar el directorio principal" #~ msgid "Proprietary/Restrictive" #~ msgstr "Comercial/Con restricciones" #~ msgid "Revised BSD License" #~ msgstr "Licencia BSD revisada" #~ msgid "Search Directory:" #~ msgstr "Buscar en directorio:" #~ msgid "Search in Types:" #~ msgstr "Buscar en tipos:" #~ msgid "Setup a skeleton Perl distribution" #~ msgstr "Configura una estructura de distribución de Perl" #~ msgid "Setup a skeleton Perl module distribution" #~ msgstr "Configura una estructura de distribución de módulo Perl" #~ msgid "Snippets" #~ msgstr "Fragmentos de código" #~ msgid "Snippit:" #~ msgstr "Fragmento de código:" #~ msgid "Special Value:" #~ msgstr "Valor especial:" #~ msgid "The same as Perl itself" #~ msgstr "La misma que Perl" #~ msgid "Use rege&x" #~ msgstr "Usar expresión regular" #~ msgid "Wizard Selector..." #~ msgstr "Selector de asistentes..." #~ msgid "restrictive" #~ msgstr "restrictiva" #~ msgid "Any changes to these options require a restart:" #~ msgstr "La modificaci√≥n de estas opciones requiere reiniciar:" #~ msgid "Browse..." #~ msgstr "Examinar..." #~ msgid "Change font size" #~ msgstr "Cambiar tama√±o de fuente" #~ msgid "Choose the default projects directory" #~ msgstr "Elija el directorio de proyectos predeterminado" #~ msgid "Current Document: %s" #~ msgstr "Documento actual: %s" #~ msgid "Current file's basename" #~ msgstr "Nombre base del archivo actual" #~ msgid "Current file's dirname" #~ msgstr "Directorio de archivo actual" #~ msgid "Current filename" #~ msgstr "Nombre de archivo actual" #~ msgid "Current filename relative to project" #~ msgstr "Nombre de archivo actual con respecto al proyecto" #~ msgid "Document name:" #~ msgstr "Nombre del documento:" #~ msgid "Enable bookmarks" #~ msgstr "Habilitar marcadores" #~ msgid "Enable session manager" #~ msgstr "Habilitar el administrador de sesiones" #~ msgid "Enable?" #~ msgstr "Habilitar" #~ msgid "Guess" #~ msgstr "Detectar" #~ msgid "Indication if current file was modified" #~ msgstr "Indicaci√≥n de si se ha modificado el archivo actual" #~ msgid "Mime type already had a class '%s' when %s(%s) was called" #~ msgstr "El tipo MIME ya ten√≠a una clase '%s' cuando se llam√≥ a %s(%s)" #~ msgid "N/A" #~ msgstr "No disponible" #~ msgid "Name of the current subroutine" #~ msgstr "Nombre de la subrutina actual" #~ msgid "No Document" #~ msgstr "Ning√∫n documento" #~ msgid "Padre version" #~ msgstr "Versi√≥n de Padre" #~ msgid "Perl Auto Complete" #~ msgstr "Autocompletar c√≥digo Perl" #~ msgid "Project name" #~ msgstr "Nombre del proyecto" #~ msgid "Run Parameters" #~ msgstr "Par√°metros de ejecuci√≥n" #~ msgid "Save settings" #~ msgstr "Guardar configuraci√≥n" #~ msgid "Search Backwards" #~ msgstr "Buscar hacia atr√°s" #~ msgid "Settings Demo" #~ msgstr "Demo de configuraci√≥n" #~ msgid "Statusbar:" #~ msgstr "Barra de estado:" #~ msgid "Style" #~ msgstr "Estilo" #~ msgid "Unsaved" #~ msgstr "Sin guardar" #~ msgid "Window title:" #~ msgstr "T√≠tulo de ventana:" #~ msgid "alphabetical" #~ msgstr "alfab√©tico" #~ msgid "alphabetical_private_last" #~ msgstr "alfab√©tico_privados_final" #~ msgid "deep" #~ msgstr "profunda" #~ msgid "last" #~ msgstr "√∫ltimo" #~ msgid "new" #~ msgstr "nuevo" #~ msgid "no" #~ msgstr "no" #~ msgid "nothing" #~ msgstr "nada" #~ msgid "original" #~ msgstr "original" #~ msgid "same_level" #~ msgstr "mismo nivel" #~ msgid "session" #~ msgstr "sesi√≥n" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "El directorio del proyecto %s ya no existe. Este error es grave y va a " #~ "provocar problemas. Si no est‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ª seguro de lo " #~ "que debe hacer, cierre o guarde este archivo." #~ msgid "Find &Text:" #~ msgstr "Buscar te&xto:" #~ msgid "Not a valid search" #~ msgstr "" #~ "La b‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•squeda no es v‚Äö√Ñ√∂‚àö‚Ć‚àö" #~ "‚àǬ¨¬®‚Äö√†√ªlida" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Simular bloqueo de tarea de segundo plano" #~ msgid "Info" #~ msgstr "Informaci‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n" #~ msgid "No diagnostics available for this error." #~ msgstr "" #~ "No hay ning‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•n diagn‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ" #~ "‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢stico disponible para este error." #~ msgid "File Wizard..." #~ msgstr "Asistente para crear archivo..." #~ msgid "Create a new document from the file wizard" #~ msgstr "Crea un documento nuevo con el asistente para crear archivos" #~ msgid "Quick Find" #~ msgstr "" #~ "B‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•squeda r‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®" #~ "‚Äö√†√ªpida" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "" #~ "Muestra la b‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•squeda incremental en la " #~ "parte inferior de la ventana" #~ msgid "Automatic Bracket Completion" #~ msgstr "Cierre autom‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªtico de llaves" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "" #~ "Al escribir una llave de apertura ({) inserta una llave de cierre (}) " #~ "autom‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªticamente" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "No se puede abrir %s, ya que supera el l‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬" #~ "¢‚Äö√тĆmite de tama‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®¬¨¬±o para archivos " #~ "arbitrarios de Padre, que actualmente es %s" #~ msgid "%s worker threads are running.\n" #~ msgstr "" #~ "Se est‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªn ejecutando %s subprocesos de " #~ "trabajo.\n" #~ "\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "" #~ "Actualmente no se est‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªn ejecutando tareas en " #~ "segundo plano\n" #~ "\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "" #~ "Se est‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªn ejecutando las siguientes tareas en " #~ "segundo plano:\n" #~ "\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s de tipo '%s':\n" #~ " (en los subprocesos %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "\n" #~ "Adem‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªs, hay %s tareas pendientes de ejecuci" #~ "‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n.\n" #~ "\n" #~ msgid "Term:" #~ msgstr "T‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®¬¨¬©rmino:" #~ msgid "Dir:" #~ msgstr "Directorio:" #~ msgid "Pick &directory" #~ msgstr "Elegir &directorio" #~ msgid "In Files/Types:" #~ msgstr "En Archivos/Tipos:" #~ msgid "Case &Insensitive" #~ msgstr "" #~ "&No distinguir may‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•sculas de min‚Äö√Ñ√∂" #~ "‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•sculas" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "&Omitir subdirectorios ocultos" #~ msgid "Show only files that don't match" #~ msgstr "" #~ "Mostrar s‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢lo archivos no coincidentes" #~ msgid "Found %d files and %d matches\n" #~ msgstr "Se encontraron %d archivos y %d coincidencias\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "Falta '%s' en el archivo '%s'\n" #~ msgid "Choose a directory" #~ msgstr "Elegir un directorio" #~ msgid "Errors" #~ msgstr "Errores" #~ msgid "Diagnostics" #~ msgstr "Diagn‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢sticos" #~ msgid "Line No" #~ msgstr "" #~ "N¬¨¬®¬¨¬Æ‚Äö√Ñ√∂‚àö‚Ƭ¨¬• de l‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√тĆnea" #~ msgid "Please choose a different name." #~ msgstr "Elija otro nombre." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "En este directorio ya existe un archivo con ese nombre" #~ msgid "Move here" #~ msgstr "Mover aqu‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√тĆ" #~ msgid "Copy here" #~ msgstr "Copiar aqu‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√тĆ" #~ msgid "folder" #~ msgstr "carpeta" #~ msgid "Rename / Move" #~ msgstr "Cambiar nombre / Mover" #~ msgid "Move to trash" #~ msgstr "Mover a la papelera" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "¬¨¬®¬¨¬Æ‚Äö√†√∂‚Äö√†√®Realmente desea eliminar este elemento?" #~ msgid "Show hidden files" #~ msgstr "Mostrar archivos ocultos" #~ msgid "Skip hidden files" #~ msgstr "Omitir archivos ocultos" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "Omitir carpetas CVS/.svn/.git/blib" #~ msgid "Tree listing" #~ msgstr "Lista de ‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªrbol" #~ msgid "Navigate" #~ msgstr "Navegar" #~ msgid "Change listing mode view" #~ msgstr "Cambiar vista de lista" #~ msgid "Switch menus to %s" #~ msgstr "Cambia el idioma de la interfaz a %s" #~ msgid "Convert EOL" #~ msgstr "Convertir EOL" #~ msgid "Key binding name" #~ msgstr "Nombre de asociaci‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n de teclas" #~ msgid "GoTo Bookmark" #~ msgstr "Ir a marcador" #~ msgid "Replacement" #~ msgstr "Sustituci‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "" #~ "Muestra una ventana con un ‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªrbol de " #~ "directorios del proyecto actual" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "Muestra la lista de errores encontrados al ejecutar un script" #~ msgid "???" #~ msgstr "???" #~ msgid "Finished Searching" #~ msgstr "B‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•squeda finalizada" #~ msgid "Norwegian (Norway)" #~ msgstr "Noruego (Noruega)" #~ msgid "'%s' does not look like a variable" #~ msgstr "No parece que '%s' sea una variable" #~ msgid "Error List" #~ msgstr "Lista de errores" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Lines: %d" #~ msgstr "L‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√тĆneas: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Caracteres sin espacios: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Caracteres con espacios: %d" #~ msgid "Size on disk: %s" #~ msgstr "Tama‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®¬¨¬±o en disco: %s" #~ msgid "Skip VCS files" #~ msgstr "Omitir archivos de VCS" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "" #~ "Parece que se ha creado %s correctamente. ¬¨¬®¬¨¬Æ‚Äö√†√∂‚Äö√†√®Desea " #~ "abrirlo ahora?" #~ msgid "Done" #~ msgstr "Listo" #~ msgid "Timeout:" #~ msgstr "Tiempo de espera:" #~ msgid "Close..." #~ msgstr "Cerrar..." #~ msgid "Reload..." #~ msgstr "Volver a cargar.." #~ msgid "Open In File Browser" #~ msgstr "Abrir en el navegador de archivos" #~ msgid "Reload Some Dialog..." #~ msgstr "Volver a cargar algunos..." #~ msgid "Save &As" #~ msgstr "Guardar c&omo" #~ msgid "&Goto" #~ msgstr "&Ir a" #~ msgid "" #~ "Ask the user for a line number or a character position and jump there" #~ msgstr "" #~ "Pregunta al usuario el n‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•mero de l" #~ "‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√тĆnea o la posici‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ" #~ "‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n de car‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªcter al que " #~ "desea saltar y salta a dicha l‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√тĆnea " #~ "o posici‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n" #~ msgid "Insert Special Value" #~ msgstr "Insertar valor especial" #~ msgid "Insert From File..." #~ msgstr "Insertar desde archivo..." #~ msgid "Show as hexa" #~ msgstr "Mostrar como hexadecimal" #~ msgid "" #~ "Show the ASCII values of the selected text in hexa in the output window" #~ msgstr "" #~ "Muestra los valores ASCII del texto seleccionado como n‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ" #~ "‚Äö√Ñ√∂‚àö‚Ƭ¨¬•meros hexadecimales en la ventana de resultados" #~ msgid "Show the about-Padre information" #~ msgstr "" #~ "Muestra informaci‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n acerca de Padre" #~ msgid "New Subroutine Name" #~ msgstr "Nombre de subrutina nueva" #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "" #~ "Se elimin‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢ el archivo del disco. " #~ "¬¨¬®¬¨¬Æ‚Äö√†√∂‚Äö√†√®Desea borrar la ventana del editor?" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "" #~ "El archivo ha cambiado en disco desde que fue guardado por ‚Äö√Ñ√∂‚àö‚Ć" #~ "‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•ltima vez. ¬¨¬®¬¨¬Æ‚Äö√†√∂‚Äö√†√®Desea volver a " #~ "cargarlo?" #~ msgid "Pl&ugins" #~ msgstr "&Complementos" #~ msgid "Refac&tor" #~ msgstr "Refac&torizar" #~ msgid "Close some Files" #~ msgstr "Cerrar todos los archivos" #~ msgid "Regex editor" #~ msgstr "Editor de expresiones regulares" #~ msgid "Run the current document through the Debug::Client." #~ msgstr "" #~ "Ejecuta el documento actual a trav‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®¬¨¬©s de Debug::" #~ "Client." #~ msgid "Select all\tCtrl-A" #~ msgstr "Seleccionar todo\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Copiar\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "Cor&tar\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "&Pegar\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "Ayuda contextual\tCtrl-May‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•s-H" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "&Marcar seleccionadas como comentario\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "&Quitar marca de comentario de seleccionadas\tCtrl-M" #~ msgid "Error while calling help_render: " #~ msgstr "Error al llamar a help_render:" #~ msgid "Error while calling get_help_provider: " #~ msgstr "Error al llamar a get_help_provider: " #~ msgid "Enable logging" #~ msgstr "Habilitar registro" #~ msgid "Disable logging" #~ msgstr "Deshabilitar registro" #~ msgid "Enable trace when logging" #~ msgstr "Habilitar seguimiento al registrar" #~ msgid "Found %d matching occurrences" #~ msgstr "Se encontraron %d coincidencias" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "&Split window" #~ msgstr "&Dividir ventana" #~ msgid "&Close\tCtrl+W" #~ msgstr "&Cerrar\tCtrl+W" #~ msgid "&Open\tCtrl+O" #~ msgstr "&Abrir...\tCtrl+O" #~ msgid "E&xit\tCtrl+X" #~ msgstr "Cor&tar\tCtrl+X" #~ msgid "GoTo Subs Window" #~ msgstr "Ir a ventana de funciones" #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "Complemento:%s - No se pudo cargar el modulo %s." #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "Complemento:%s - No es compatible con la API de Padre::Plugin. Debe ser " #~ "una subclase de Padre::Plugin." #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "Complemento:%s - No se pudo crear una instancia del objeto del " #~ "complemento: el constructor no devuelve un objeto Padre::Plugin." #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "Complemento:%s - No se pudo cargar el modulo %s." #~ msgid "Install Module..." #~ msgstr "Instalar m‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢dulo..." #~ msgid "&Use Regex" #~ msgstr "&Usar expresi‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n regular" #~ msgid "Cannot build regex for '%s'" #~ msgstr "" #~ "No se puede crear expresi‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n regular " #~ "para '%s'" #~ msgid "Mime-types" #~ msgstr "Tipos Mime" #~ msgid "Close Window on &hit" #~ msgstr "Cerrar &ventana al encontrar coincidencia" #~ msgid "%s occurences were replaced" #~ msgstr "%s instancias sustituidas" #~ msgid "Nothing to replace" #~ msgstr "No hay nada que reemplazar" #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "" #~ "Copyright 2008-2009. El equipo de desarrollo de Padre que figura en Padre." #~ "pm." #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Probar complemento desde directorio local" #~ msgid "Save File" #~ msgstr "Guardar archivo" #~ msgid "Undo" #~ msgstr "Deshacer" #~ msgid "Redo" #~ msgstr "Rehacer" #~ msgid "Workspace View" #~ msgstr "Vista del ‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªrea de trabajo" #~ msgid "&Find\tCtrl-F" #~ msgstr "&Buscar\tCtrl-F" #~ msgid "Find Next\tF3" #~ msgstr "Buscar siguiente\tF3" #~ msgid "Find Next\tF4" #~ msgstr "Buscar siguiente\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "Buscar anterior\tMay‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•s-F4" #~ msgid "Replace\tCtrl-R" #~ msgstr "Reemplazar\tCtrl-R" #~ msgid "Stop\tF6" #~ msgstr "&Detener" #~ msgid "&Goto\tCtrl-G" #~ msgstr "I&r a\tCtrl-G" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "" #~ "Fragmentos de c‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢digo\tCtrl-May‚Äö√Ñ√∂" #~ "‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•s-A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "" #~ "Convertir todo a may‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•sculas\tCtrl-May" #~ "‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•s-U" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "Archivo siguiente\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "Archivo anterior\tCtrl-May‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•s-TAB" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "Establecer marcador\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "Ir a marcador\tCtrl-May‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•s-B" #~ msgid "&New\tCtrl-N" #~ msgstr "&Nuevo\tCtrl-N" #~ msgid "&Close\tCtrl-W" #~ msgstr "&Cerrar\tCtrl-W" #~ msgid "Close All but Current" #~ msgstr "Cerrar todos excepto el actual" #~ msgid "&Save\tCtrl-S" #~ msgstr "&Guardar\tCtrl-S" #~ msgid "Save &As...\tF12" #~ msgstr "Guardar c&omo...\tF12" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "" #~ "Abrir selecci‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n\tCtrl-May‚Äö√Ñ√∂‚àö" #~ "‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•s-O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "Abrir sesi‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n...\tCtrl-Alt-O" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "Guardar sesi‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n...\tCtrl-Alt-S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "&Salir\tCtrl-Q" #~ msgid "L:" #~ msgstr "L:" #~ msgid "Ch:" #~ msgstr "Car:" #~ msgid "Use PPI Syntax Highlighting" #~ msgstr "Usar PPI para el resaltado de sintaxis de PPI" #~ msgid "Disable Experimental Mode" #~ msgstr "Deshabilitar modo experimental" #~ msgid "Refresh Counter: " #~ msgstr "Actualizar contador: " #~ msgid "Text to find:" #~ msgstr "Buscar texto:" #~ msgid "Sub List" #~ msgstr "Lista de funciones" #~ msgid "Convert..." #~ msgstr "Convertir..." #~ msgid "All available plugins on CPAN" #~ msgstr "Todos los complementos disponibles en CPAN" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "Complemento:%s - No es compatible con la API de Padre::Plugin. No se " #~ "puede crear una instancia del complemento." #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "Complemento:%s - No es compatible con la API de Padre::Plugin. Debe " #~ "incluir la funci‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n padre_interfaces." #~ msgid "Command line parameters" #~ msgstr "" #~ "Par‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªmetros de l‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬" #~ "¢‚Äö√тĆnea de comandos" #~ msgid "No output" #~ msgstr "Ning‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•n resultado" #~ msgid "Background Tasks are idle" #~ msgstr "Tareas en segundo plano inactivas" #~ msgid "Run Parameters\tShift-Ctrl-F5" #~ msgstr "" #~ "Par‚Äö√Ñ√∂‚àö‚Ć‚àö‚àǬ¨¬®‚Äö√†√ªmetros de ejecuci‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ" #~ "‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢n\tMay‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö‚Ƭ¨¬•s-Ctrl-F5" #~ msgid "Ac&k Search" #~ msgstr "Buscar con Ac&k" #~ msgid "" #~ "Module Name:\n" #~ "e.g.: Perl::Critic" #~ msgstr "" #~ "Nombre del m‚Äö√Ñ√∂‚àö‚Ć‚àö‚àÇ‚Äö√Ñ√∂‚àö¬¢‚Äö√Ѭ¢dulo:\n" #~ "p. ej., Perl::Critic" #~ msgid "Select Project Name or type in new one" #~ msgstr "Seleccionar nombre de proyecto o escribir un nombre nuevo" #~ msgid "Recent Projects" #~ msgstr "Proyectos recientes" #~ msgid "Ac&k" #~ msgstr "Ac&k" Padre-1.00/share/locale/zh-tw.po0000644000175000017500000043021311606654515015127 0ustar petepete# Chinese/Traditional translation of Padre. # Copyright (C) 2008 THE Padre'S COPYRIGHT HOLDER # This file is distributed under the same license as the Padre package. # BlueT - Matthew Lien , 2008. # , fuzzy # # msgid "" msgstr "" "Project-Id-Version: Padre 0.18\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-07-11 08:10-0700\n" "PO-Revision-Date: 2011-07-12 04:11+0800\n" "Last-Translator: BlueT - Matthew Lien - 練喆明 \n" "Language-Team: Chinese/Traditional \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:474 msgid "\".\" also matches newline" msgstr "\".\" 也會符合換行符號" #: lib/Padre/Config.pm:458 msgid "" "\"Open session\" will ask which session (set of files) to open when you " "launch Padre." msgstr "" "\"開啟 session\" 將會詢問你在啟動 Padre 時要開啟哪個 session (一組檔案)" #: lib/Padre/Config.pm:460 msgid "" "\"Previous open files\" will remember the open files when you close Padre " "and open the same files next time you launch Padre." msgstr "" "\"之前開啟檔案\" 會在你關閉 Padre 時記住你已經開啟的檔案,並在下次啟動 Padre " "時自動開啟。" #: lib/Padre/Wx/Dialog/RegexEditor.pm:478 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" 和 \"$\" 會符合一個字串中的頭與尾" #: lib/Padre/Wx/Dialog/PerlFilter.pm:208 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# 輸入的東西在 $_ 裡\n" "$_ = $_;\n" "# 輸出到 $_ 裡\n" #: lib/Padre/Wx/FindInFiles.pm:155 #, perl-format msgid "%s (%s results)" msgstr "%s (%s 結果)" #: lib/Padre/PluginManager.pm:614 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - 在例舉時損毀: %s" #: lib/Padre/PluginManager.pm:563 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - 載入時損毀: %s" #: lib/Padre/PluginManager.pm:624 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - 無法例舉外掛物件" #: lib/Padre/PluginManager.pm:586 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - 不是 Padre::Plugin 的 subclass" #: lib/Padre/PluginManager.pm:599 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - 與 Padre 不相容 %s - %s" #: lib/Padre/PluginManager.pm:574 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - Plugin 是空的或是未標示版本號" #: lib/Padre/Wx/Dialog/WizardSelector.pm:174 #, perl-format msgid "%s has no constructor" msgstr "%s 沒有建構子 (constructor)" #: lib/Padre/Wx/TodoList.pm:257 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s 在 TODO regex 中,請檢查你的設定檔。" #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s 列 %s: %s" #: lib/Padre/Wx/Dialog/Positions.pm:124 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s 列 %s 檔案: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2769 msgid "&About" msgstr "&A 關於" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "&A 新增加入" #: lib/Padre/Wx/ActionLibrary.pm:849 msgid "&Autocomplete" msgstr "&A 自動補完" #: lib/Padre/Wx/Dialog/WizardSelector.pm:86 msgid "&Back" msgstr "&B 倒回" #: lib/Padre/Wx/ActionLibrary.pm:860 msgid "&Brace Matching" msgstr "&B 括號匹配" #: lib/Padre/Wx/FBP/FindInFiles.pm:78 msgid "&Browse" msgstr "&B 瀏覽" #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:155 #: lib/Padre/Wx/Dialog/OpenResource.pm:184 #: lib/Padre/Wx/Dialog/WizardSelector.pm:88 lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&C 取消" #: lib/Padre/Wx/FBP/FindInFiles.pm:123 lib/Padre/Wx/FBP/Find.pm:85 msgid "&Case Sensitive" msgstr "&C 區分大小寫" #: lib/Padre/Wx/ActionLibrary.pm:294 lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/About.pm:85 lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 lib/Padre/Wx/Dialog/PerlFilter.pm:99 #: lib/Padre/Wx/Dialog/RegexEditor.pm:276 #: lib/Padre/Wx/Dialog/KeyBindings.pm:139 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 #: lib/Padre/Wx/Dialog/Replace.pm:189 msgid "&Close" msgstr "&C 關閉" #: lib/Padre/Wx/ActionLibrary.pm:945 msgid "&Comment Selected Lines" msgstr "&C 註解所選擇的列(可多列)" #: lib/Padre/Wx/ActionLibrary.pm:685 msgid "&Copy" msgstr "&C 複製" #: lib/Padre/Wx/Menu/Debug.pm:116 msgid "&Debug" msgstr "&D 除錯" #: lib/Padre/Wx/ActionLibrary.pm:379 lib/Padre/Wx/FBP/Bookmarks.pm:90 #: lib/Padre/Wx/Dialog/KeyBindings.pm:126 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "&D 刪除" #: lib/Padre/Wx/Dialog/PluginManager.pm:516 msgid "&Disable" msgstr "&D 關閉" #: lib/Padre/Wx/Menu/Edit.pm:349 lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Edit" msgstr "&E 編輯" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:528 msgid "&Enable" msgstr "&E 啟用" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "&E 輸入一個介於 1 到 %s 間的列數:" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "&E 輸入一個介於 1 到 %s 間的位置:" #: lib/Padre/Wx/Menu/File.pm:308 msgid "&File" msgstr "&F 檔案" #: lib/Padre/Wx/Dialog/Advanced.pm:97 lib/Padre/Wx/Dialog/KeyBindings.pm:64 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:26 msgid "&Filter:" msgstr "&F 過濾器:" #: lib/Padre/Wx/FBP/FindInFiles.pm:139 lib/Padre/Wx/Dialog/Replace.pm:148 msgid "&Find" msgstr "&F 尋找" #: lib/Padre/Wx/ActionLibrary.pm:1264 msgid "&Find Previous" msgstr "&F 尋找上一個" #: lib/Padre/Wx/ActionLibrary.pm:1170 msgid "&Find..." msgstr "&F 尋找..." #: lib/Padre/Wx/ActionLibrary.pm:1699 msgid "&Full Screen" msgstr "&F 全螢幕" #: lib/Padre/Wx/ActionLibrary.pm:772 msgid "&Go To..." msgstr "&G 前往..." #: lib/Padre/Wx/Outline.pm:225 msgid "&Go to Element" msgstr "&G 前往某元件(Element)" #: lib/Padre/Wx/Menu/Help.pm:121 msgid "&Help" msgstr "&H 幫助" #: lib/Padre/Wx/Dialog/Snippets.pm:24 lib/Padre/Wx/Dialog/SpecialValues.pm:50 msgid "&Insert" msgstr "&I 插入" #: lib/Padre/Wx/ActionLibrary.pm:883 msgid "&Join Lines" msgstr "&J 連結多列" #: lib/Padre/Wx/Dialog/HelpSearch.pm:153 msgid "&Matching Help Topics:" msgstr "&M 符合的幫助主題" #: lib/Padre/Wx/Dialog/OpenResource.pm:228 msgid "&Matching Items:" msgstr "&M 符合的項目:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:183 msgid "&Matching Menu Items:" msgstr "&M 符合的選單項目:" #: lib/Padre/Wx/ActionLibrary.pm:130 msgid "&New" msgstr "&N 新增" #: lib/Padre/Wx/Dialog/FindFast.pm:181 #: lib/Padre/Wx/Dialog/WizardSelector.pm:87 msgid "&Next" msgstr "&N 下一個" #: lib/Padre/Wx/ActionLibrary.pm:783 msgid "&Next Problem" msgstr "&N 下一個問題" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 #: lib/Padre/Wx/Dialog/OpenResource.pm:178 lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&O 確認" #: lib/Padre/Wx/ActionLibrary.pm:226 lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "&O 開啟" #: lib/Padre/Wx/Dialog/RegexEditor.pm:229 msgid "&Original text:" msgstr "&O 原始文字:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:81 msgid "&Output text:" msgstr "&O 輸出文字:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "&POSIX 字元類別" #: lib/Padre/Wx/ActionLibrary.pm:758 msgid "&Paste" msgstr "&P 貼上" #: lib/Padre/Wx/Menu/Perl.pm:101 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:67 msgid "&Perl filter source:" msgstr "&Perl 過濾來源:" #: lib/Padre/Wx/Dialog/PluginManager.pm:131 msgid "&Preferences" msgstr "&P 偏好設定" #: lib/Padre/Wx/ActionLibrary.pm:510 msgid "&Print..." msgstr "&P 列印..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "&Q 數量" #: lib/Padre/Wx/ActionLibrary.pm:794 msgid "&Quick Fix" msgstr "&Q 快速修復" #: lib/Padre/Wx/ActionLibrary.pm:564 msgid "&Quit" msgstr "&Q 離開" #: lib/Padre/Wx/Menu/File.pm:268 msgid "&Recent Files" msgstr "&R 最近的檔案" #: lib/Padre/Wx/ActionLibrary.pm:604 msgid "&Redo" msgstr "&R 取消復原" #: lib/Padre/Wx/FBP/FindInFiles.pm:115 lib/Padre/Wx/FBP/Find.pm:69 msgid "&Regular Expression" msgstr "&Regex 正規表示式" #: lib/Padre/Wx/Dialog/RegexEditor.pm:169 msgid "&Regular expression:" msgstr "&Regex 正規表示式" #: lib/Padre/Wx/Main.pm:4232 lib/Padre/Wx/Main.pm:6218 msgid "&Reload selected" msgstr "&R 重新載入所選擇的" #: lib/Padre/Wx/Dialog/Replace.pm:168 msgid "&Replace" msgstr "&R 取代" #: lib/Padre/Wx/Dialog/RegexEditor.pm:250 msgid "&Replace text with:" msgstr "&R 以...取代:" #: lib/Padre/Wx/Dialog/Advanced.pm:178 lib/Padre/Wx/Dialog/KeyBindings.pm:132 msgid "&Reset" msgstr "&R 重設" #: lib/Padre/Wx/Dialog/RegexEditor.pm:260 msgid "&Result from replace:" msgstr "&R 取代的結果:" #: lib/Padre/Wx/Menu/Run.pm:74 msgid "&Run" msgstr "&R 執行" #: lib/Padre/Wx/ActionLibrary.pm:423 lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "&S 儲存" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&S 自動儲存 session" #: lib/Padre/Wx/Menu/Search.pm:85 msgid "&Search" msgstr "&S 搜尋" #: lib/Padre/Wx/Dialog/OpenResource.pm:206 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&S 選擇一個項目以開啟 (? = 任何字元, * = 任何字串):" #: lib/Padre/Wx/Main.pm:4231 lib/Padre/Wx/Main.pm:6217 msgid "&Select files to reload:" msgstr "&S 選擇檔案以重新載入:" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "&Select to Matching Brace" msgstr "&S 選擇以進行括號匹配" #: lib/Padre/Wx/Dialog/Advanced.pm:172 lib/Padre/Wx/Dialog/KeyBindings.pm:120 msgid "&Set" msgstr "&S 設定" #: lib/Padre/Wx/Dialog/PluginManager.pm:489 #: lib/Padre/Wx/Dialog/PluginManager.pm:501 msgid "&Show error message" msgstr "&S 顯示錯誤訊息" #: lib/Padre/Wx/ActionLibrary.pm:932 msgid "&Toggle Comment" msgstr "&T 縮放延展註解" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "&T 工具" #: lib/Padre/Wx/ActionLibrary.pm:2757 msgid "&Translate Padre..." msgstr "&T 翻譯 Padre..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:176 msgid "&Type a menu item name to access:" msgstr "&T 鍵入一個選單項目以存取:" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "&Uncomment Selected Lines" msgstr "&U 取消註解所選擇的列(可多列)" #: lib/Padre/Wx/ActionLibrary.pm:584 msgid "&Undo" msgstr "&U 復原" #: lib/Padre/Wx/Dialog/DocStats.pm:60 msgid "&Update" msgstr "&U 更新" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&V 值:" #: lib/Padre/Wx/Menu/View.pm:258 msgid "&View" msgstr "&V 檢視" #: lib/Padre/Wx/Menu/Window.pm:110 msgid "&Window" msgstr "&W 視窗" #: lib/Padre/Wx/Debugger.pm:407 #, perl-format msgid "" "'%s' does not look like a variable. First select a variable in the code and " "then try again." msgstr "'%s' 看起來並不像是個變數。請先選擇程式碼中的一個變數再試一次。" #: lib/Padre/Wx/ActionLibrary.pm:2409 msgid "(Re)load Current Plug-in" msgstr "(重新)載入目前的外掛" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(自從 Perl %s)" #: lib/Padre/PluginManager.pm:919 msgid "(core)" msgstr "(core)" #: lib/Padre/Wx/Dialog/Shortcut.pm:61 lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "7-bit US-ASCII 字元" #: lib/Padre/Wx/Dialog/Shortcut.pm:32 lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "一個對話框" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 msgid "A comment" msgstr "一個註解" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "一個群組" #: lib/Padre/Config.pm:454 msgid "A new empty file" msgstr "一個新的空檔案" #: lib/Padre/Plugin/Devel.pm:291 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "給 Padre 開發者用的一組不相關的工具\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "一個字的邊界" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Plugin/PopularityContest.pm:201 lib/Padre/Plugin/Devel.pm:102 msgid "About" msgstr "關於" #: lib/Padre/Wx/About.pm:25 msgid "About Padre" msgstr "關於 Padre" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "動作: %s" #: lib/Padre/Wx/FBP/Preferences.pm:331 msgid "Add another closing bracket if there already is one" msgstr "加入另一個封閉括號,如果已經有一個的話" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "進階設定" #: lib/Padre/Wx/FBP/Preferences.pm:889 msgid "Advanced..." msgstr "進階..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Alarm" msgstr "警示" #: lib/Padre/Wx/Syntax.pm:67 msgid "Alien Error" msgstr "外部錯誤" #: lib/Padre/Wx/ActionLibrary.pm:1771 msgid "Align a selection of text to the same left column." msgstr "" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "全部" #: lib/Padre/Wx/Main.pm:4051 lib/Padre/Wx/Main.pm:4052 #: lib/Padre/Wx/Main.pm:4425 lib/Padre/Wx/Main.pm:5716 msgid "All Files" msgstr "所有檔案" #: lib/Padre/Document/Perl.pm:515 msgid "All braces appear to be matched" msgstr "所有括號顯示為都匹配" #: lib/Padre/Wx/ActionLibrary.pm:437 msgid "Allow the selection of another name to save the current document" msgstr "允許以所選的另一個名稱來儲存目前文件" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphabetic characters" msgstr "字母字元" #: lib/Padre/Config.pm:586 msgid "Alphabetical Order" msgstr "字母順序" #: lib/Padre/Config.pm:587 msgid "Alphabetical Order (Private Last)" msgstr "字母順序 (Private Last)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "字母數字字元" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "字母數字加上 \"_\"" #: lib/Padre/Wx/Dialog/KeyBindings.pm:90 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Alternation" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:182 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" "產生 '%s' 時有錯誤:\n" "%s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "除了換行字元之外的任何字元" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "任何十進位數字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "任何非數字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "任何非空白字元" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "任何不是字母的字元" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "任何空白字元" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "任何字母字元" #: lib/Padre/Config.pm:381 lib/Padre/Wx/Dialog/ModuleStart.pm:16 #: lib/Padre/Wx/Dialog/ModuleStart.pm:36 msgid "Apache License" msgstr "Apache 版權" #: lib/Padre/Wx/FBP/Preferences.pm:1122 msgid "Appearance" msgstr "顯示" #: lib/Padre/Wx/FBP/Preferences.pm:189 msgid "Appearance Preview" msgstr "顯示預覽" #: lib/Padre/Wx/ActionLibrary.pm:1106 msgid "Apply Diff to File" msgstr "接受 Diff 到檔案" #: lib/Padre/Wx/ActionLibrary.pm:1116 msgid "Apply Diff to Project" msgstr "接受 Diff 到專案" #: lib/Padre/Wx/ActionLibrary.pm:1107 msgid "Apply a patch file to the current document" msgstr "接受一個 patch 檔案到目前文件" #: lib/Padre/Wx/ActionLibrary.pm:1117 msgid "Apply a patch file to the current project" msgstr "接受一個 patch 檔案到目前專案" #: lib/Padre/Wx/ActionLibrary.pm:795 msgid "Apply one of the quick fixes for the current document" msgstr "接受 quick fixes 中的一個到目前文件" #: lib/Padre/Locale.pm:156 msgid "Arabic" msgstr "阿拉伯文" #: lib/Padre/Config.pm:382 lib/Padre/Wx/Dialog/ModuleStart.pm:17 #: lib/Padre/Wx/Dialog/ModuleStart.pm:37 msgid "Artistic License 1.0" msgstr "Artistic 版權 1.0" #: lib/Padre/Config.pm:383 lib/Padre/Wx/Dialog/ModuleStart.pm:18 #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "Artistic License 2.0" msgstr "Artistic 版權 2.0" #: lib/Padre/Wx/ActionLibrary.pm:495 msgid "Ask for a session name and save the list of files currently opened" msgstr "詢問一個 session 名稱用以儲存目前已開啟檔案的列表" #: lib/Padre/Wx/ActionLibrary.pm:565 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "詢問是否要儲存尚未儲存的檔案然後離開 Padre" #: lib/Padre/Wx/ActionLibrary.pm:1907 msgid "Assign the selected expression to a newly declared variable" msgstr "指派所選的表示式到一個新定義的變數" #: lib/Padre/Wx/Outline.pm:364 msgid "Attributes" msgstr "屬性" #: lib/Padre/Wx/FBP/Sync.pm:287 msgid "Authentication" msgstr "認證" #: lib/Padre/Wx/FBP/ModuleStarter.pm:49 lib/Padre/Wx/Dialog/ModuleStart.pm:58 msgid "Author:" msgstr "作者:" #: lib/Padre/Wx/FBP/Preferences.pm:1123 msgid "Auto-Complete" msgstr "自動補齊" #: lib/Padre/Wx/FBP/Preferences.pm:356 msgid "Auto-fold POD markup when code folding enabled" msgstr "當 程式碼摺疊 功能被啟用時, 自動摺疊 POD" #: lib/Padre/Wx/FBP/Preferences.pm:228 msgid "Autocomplete always while typing" msgstr "總是再打自時自動補齊" #: lib/Padre/Wx/FBP/Preferences.pm:323 msgid "Autocomplete brackets" msgstr "自動補齊括號" #: lib/Padre/Wx/FBP/Preferences.pm:244 msgid "Autocomplete new functions in scripts" msgstr "在腳本中自動補齊新函式" #: lib/Padre/Wx/FBP/Preferences.pm:236 msgid "Autocomplete new methods in packages" msgstr "在套件中自動補齊新 methods" #: lib/Padre/Wx/Main.pm:3398 msgid "Autocompletion error" msgstr "自動補完功能出錯" #: lib/Padre/Wx/FBP/Preferences.pm:634 msgid "Autoindent" msgstr "自動縮排:" #: lib/Padre/Wx/FBP/Preferences.pm:582 msgid "Automatic indentation style detection" msgstr "自動縮排風格偵測" #: lib/Padre/Wx/StatusBar.pm:293 msgid "Background Tasks are running" msgstr "背景作業運作中" #: lib/Padre/Wx/StatusBar.pm:294 msgid "Background Tasks are running with high load" msgstr "背景作業運行中且負載滿高的" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "Backreference 到 nth 群組" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Backspace" msgstr "BackSpace" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "列首" #: lib/Padre/Wx/FBP/Preferences.pm:1124 msgid "Behaviour" msgstr "行為" #: lib/Padre/Wx/About.pm:105 msgid "Blue butterfly on a green leaf" msgstr "藍色蝴蝶在綠色樹葉上" #: lib/Padre/Wx/FBP/Bookmarks.pm:26 msgid "Bookmarks" msgstr "書籤" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "布林值" #: lib/Padre/Wx/FBP/Preferences.pm:306 msgid "Braces Assist" msgstr "括號協助" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Browse directory of the current document to open one or several files" msgstr "瀏覽目前文件所在的目錄以開啟一個或數個檔案" #: lib/Padre/Wx/ActionLibrary.pm:283 msgid "Browse the directory of the installed examples to open one file" msgstr "瀏覽已安裝範例的目錄以開啟一個檔案" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "瀏覽:沒有對應的檢視器可用於" #: lib/Padre/Wx/FBP/ModuleStarter.pm:77 lib/Padre/Wx/Dialog/ModuleStart.pm:64 msgid "Builder:" msgstr "建立者:" #: lib/Padre/Wx/ActionLibrary.pm:1985 msgid "Builds the current project, then run all tests." msgstr "建構目前專案,然後執行所有測試。" #: lib/Padre/Wx/Dialog/WindowList.pm:350 lib/Padre/Wx/Dialog/WindowList.pm:358 msgid "CHANGED" msgstr "已更改" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/Preferences.pm:903 lib/Padre/Wx/FBP/ModuleStarter.pm:146 #: lib/Padre/Wx/FBP/FindInFiles.pm:146 lib/Padre/Wx/FBP/Bookmarks.pm:118 #: lib/Padre/Wx/FBP/Find.pm:130 lib/Padre/Wx/FBP/Insert.pm:103 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "取消" #: lib/Padre/Wx/Main.pm:5196 msgid "Cannot diff if file was never saved" msgstr "若未存檔則無法 diff (檢視差異)" #: lib/Padre/Wx/Main.pm:3745 #, perl-format msgid "Cannot open a directory: %s" msgstr "無法開啟一個目錄: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "在未儲存的文件裡不能設定書籤" #: lib/Padre/Wx/Dialog/FindFast.pm:189 msgid "Case &insensitive" msgstr "忽略大小寫(&i)" #: lib/Padre/Wx/Dialog/Replace.pm:78 msgid "Case &sensitive" msgstr "區分大小寫(&s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:470 msgid "Case-insensitive matching" msgstr "忽略大小寫的匹配" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "分類:" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Change the current selection to lower case" msgstr "更改目前選擇的為小寫" #: lib/Padre/Wx/ActionLibrary.pm:1075 msgid "Change the current selection to upper case" msgstr "更改目前選擇的為大寫" #: lib/Padre/Wx/ActionLibrary.pm:971 msgid "" "Change the encoding of the current document to the default of the operating " "system" msgstr "更改目前文件的編碼方式成系統預設的" #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Change the encoding of the current document to utf-8" msgstr "更改目前文件的編碼方式成 utf-8" #: lib/Padre/Wx/ActionLibrary.pm:1021 msgid "" "Change the end of line character of the current document to that used on Mac " "Classic" msgstr "更改目前文件的檔案結尾字元成 Mac 早期的" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "" "Change the end of line character of the current document to that used on " "Unix, Linux, Mac OSX" msgstr "更改目前文件的檔案結尾字元成 Unix/Linux/MacOSX 的" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "" "Change the end of line character of the current document to those used in " "files on MS Windows" msgstr "更改目前文件的檔案結尾字元成 MS Windows 的" #: lib/Padre/Wx/Menu/Refactor.pm:49 lib/Padre/Document/Perl.pm:1573 msgid "Change variable style" msgstr "更改變數風格" #: lib/Padre/Wx/ActionLibrary.pm:1866 msgid "Change variable style from camelCase to Camel_Case" msgstr "更改變數風格從 camelCase 成 Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1852 msgid "Change variable style from camelCase to camel_case" msgstr "更改變數風格從 camelCase 成 camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1838 msgid "Change variable style from camel_case to CamelCase" msgstr "更改變數風格從 camel_case 成 CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1824 msgid "Change variable style from camel_case to camelCase" msgstr "更改變數風格從 camel_case 成 camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1865 msgid "Change variable style to Using_Underscores" msgstr "更改變數風格成 Using_Underscores" #: lib/Padre/Wx/ActionLibrary.pm:1851 msgid "Change variable style to using_underscores" msgstr "更改變數風格成 using_underscores" #: lib/Padre/Wx/ActionLibrary.pm:1837 msgid "Change variable to CamelCase" msgstr "更改變數成 CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1823 msgid "Change variable to camelCase" msgstr "更改變數成 camelCase" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "Character classes" msgstr "字元類型" #: lib/Padre/Wx/Dialog/Goto.pm:88 lib/Padre/Wx/Dialog/Goto.pm:236 msgid "Character position" msgstr "字元位置" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "字元集" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "字元(包括空白字元)" #: lib/Padre/Document/Perl.pm:516 msgid "Check Complete" msgstr "檢查完成" #: lib/Padre/Document/Perl.pm:586 lib/Padre/Document/Perl.pm:640 #: lib/Padre/Document/Perl.pm:675 msgid "Check cancelled" msgstr "取消檢查" #: lib/Padre/Wx/ActionLibrary.pm:1721 msgid "Check for Common (Beginner) Errors" msgstr "檢查通常(初學者)會發生的問題" #: lib/Padre/Wx/FBP/Preferences.pm:457 msgid "Check for file updates on disk every (seconds)" msgstr "檢查檔案在硬碟上的更新,每(秒)" #: lib/Padre/Wx/ActionLibrary.pm:1722 msgid "Check the current file for common beginner errors" msgstr "檢查通常初學者會發生的問題" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "中文" #: lib/Padre/Locale.pm:440 msgid "Chinese (Simplified)" msgstr "中文 (簡體)" #: lib/Padre/Locale.pm:450 msgid "Chinese (Traditional)" msgstr "中文 (正體/繁體)" #: lib/Padre/Wx/Main.pm:3925 lib/Padre/Wx/Dialog/Positions.pm:120 msgid "Choose File" msgstr "選擇檔案" #: lib/Padre/Wx/FBP/Find.pm:93 msgid "Cl&ose Window on Hit" msgstr "&o 關閉所點擊的視窗" #: lib/Padre/Wx/Dialog/Snippets.pm:22 lib/Padre/Wx/Dialog/SpecialValues.pm:46 msgid "Class:" msgstr "類別(Class):" #: lib/Padre/Wx/ActionLibrary.pm:539 msgid "Clean Recent Files List" msgstr "清除最近檔案列表" #: lib/Padre/Wx/FBP/Preferences.pm:380 msgid "Clean up file content on saving (for supported document types)" msgstr "儲存時清理檔案內容 (對於支援的文件類型)" #: lib/Padre/Wx/ActionLibrary.pm:655 msgid "Clear Selection Marks" msgstr "清除選取標示" #: lib/Padre/Wx/Dialog/OpenResource.pm:222 msgid "Click on the arrow for filter settings" msgstr "點擊箭頭以過濾設定" #: lib/Padre/Wx/FBP/Text.pm:54 lib/Padre/Wx/FBP/Sync.pm:252 #: lib/Padre/Wx/Menu/File.pm:149 lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:280 #: lib/Padre/Wx/Dialog/SessionSave.pm:230 msgid "Close" msgstr "關閉" #: lib/Padre/Wx/ActionLibrary.pm:369 msgid "Close Files..." msgstr "關閉檔案..." #: lib/Padre/Wx/Dialog/Replace.pm:106 msgid "Close Window on &Hit" msgstr "關閉所點擊的視窗(&H)" #: lib/Padre/Wx/Main.pm:4887 msgid "Close all" msgstr "關閉全部" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close all Files" msgstr "關閉所有檔案" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "Close all other Files" msgstr "關閉所有其他檔案" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close all the files belonging to the current project" msgstr "關閉所有與此專案相關的檔案" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Close all the files except the current one" msgstr "關閉除目前這一個以外的所有檔案" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Close all the files open in the editor" msgstr "關閉所有在編輯器中開啟的檔案" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files that do not belong to the current project" msgstr "關閉所有與此專案不相關的檔案" #: lib/Padre/Wx/ActionLibrary.pm:295 msgid "Close current document" msgstr "關閉目前的文件" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Close current document and remove the file from disk" msgstr "關閉目前文件並從磁碟上刪除檔案" #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close other Projects" msgstr "關閉其他專案" #: lib/Padre/Wx/Main.pm:4943 msgid "Close some" msgstr "關閉一些" #: lib/Padre/Wx/Main.pm:4927 msgid "Close some files" msgstr "關閉一些檔案" #: lib/Padre/Wx/ActionLibrary.pm:308 msgid "Close this Project" msgstr "關閉這個專案" #: lib/Padre/Config.pm:585 msgid "Code Order" msgstr "程式碼排序" #: lib/Padre/Wx/FBP/Preferences.pm:86 msgid "Coloured text in output window (ANSI)" msgstr "輸出視窗中上色的文字 (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1930 msgid "Combine scattered POD at the end of the document" msgstr "合併散亂的 POD 到文件尾端" #: lib/Padre/Wx/Command.pm:262 msgid "Command" msgstr "指令" #: lib/Padre/Wx/Main.pm:2519 msgid "Command line" msgstr "命令列" #: lib/Padre/Wx/ActionLibrary.pm:933 msgid "Comment out or remove comment out of selected lines in the document" msgstr "在文件中所選取的列上設定註解或取消註解" #: lib/Padre/Wx/ActionLibrary.pm:946 msgid "Comment out selected lines in the document" msgstr "在文件中所選取的列上設定註解" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "" "Compare the file in the editor to that on the disk and show the diff in the " "output window" msgstr "比較檔案在編輯器中與磁碟上的差異,並顯示 diff 在輸出視窗中" #: lib/Padre/Wx/About.pm:317 msgid "Config:" msgstr "設定檔:" #: lib/Padre/Wx/FBP/Sync.pm:143 lib/Padre/Wx/FBP/Sync.pm:171 msgid "Confirm" msgstr "確認" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "正在連線到 FTP 伺服器 %s..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "連線到 FTP 伺服器成功。" #: lib/Padre/Wx/FindResult.pm:178 msgid "Content" msgstr "內容" #: lib/Padre/Wx/FBP/Preferences.pm:211 msgid "Content Assist" msgstr "內容協助" #: lib/Padre/Config.pm:501 msgid "Contents of the status bar" msgstr "狀態列的內容" #: lib/Padre/Config.pm:490 msgid "Contents of the window title" msgstr "視窗標題的內容" #: lib/Padre/Wx/ActionLibrary.pm:2666 msgid "Context Help" msgstr "內容求助" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Control character" msgstr "控制字元" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "控制字元" #: lib/Padre/Wx/Menu/Edit.pm:200 msgid "Convert Encoding" msgstr "轉換編碼" #: lib/Padre/Wx/Menu/Edit.pm:222 msgid "Convert Line Endings" msgstr "轉換列位字符" #: lib/Padre/Wx/ActionLibrary.pm:1033 msgid "Convert all tabs to spaces in the current document" msgstr "在目前文件中轉換所有跳格 (tab) 成空白" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Convert all the spaces to tabs in the current document" msgstr "在目前文件中轉換所有空白成跳格 (tab)" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "複製" #: lib/Padre/Wx/FindResult.pm:249 msgid "Copy &All" msgstr "&A 複製全部" #: lib/Padre/Wx/FindResult.pm:226 msgid "Copy &Selected" msgstr "&S 複製所選擇的" #: lib/Padre/Wx/ActionLibrary.pm:729 msgid "Copy Directory Name" msgstr "複製目錄名稱" #: lib/Padre/Wx/ActionLibrary.pm:742 msgid "Copy Editor Content" msgstr "複製編輯器內容" #: lib/Padre/Wx/ActionLibrary.pm:715 msgid "Copy Filename" msgstr "複製檔案名稱" #: lib/Padre/Wx/ActionLibrary.pm:701 msgid "Copy Full Filename" msgstr "複製完整檔案名稱" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "複製名稱" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Copy Specials" msgstr "複製的特殊選項" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "複製其值" #: lib/Padre/Wx/Dialog/OpenResource.pm:262 msgid "Copy filename to clipboard" msgstr "複製檔案名稱到剪貼簿" #: lib/Padre/Wx/ActionLibrary.pm:142 msgid "Copy of current file" msgstr "複製目前檔案" #: lib/Padre/Wx/Directory/TreeCtrl.pm:163 #, perl-format msgid "Could not create: '%s': %s" msgstr "無法創建: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:182 #, perl-format msgid "Could not delete: '%s': %s" msgstr "無法刪除: '%s': %s" #: lib/Padre/Wx/Main.pm:3349 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "無法判定 %s 文件格式的註解字元" #: lib/Padre/Wx/Debugger.pm:389 #, perl-format msgid "Could not evaluate '%s'" msgstr "無法估算 '%s'" #: lib/Padre/Util/FileBrowser.pm:216 msgid "Could not find KDE or GNOME" msgstr "無法找到 KDE 或 GNOME" #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 msgid "Could not find a help provider for " msgstr "無法找到求助資訊提供者給 " #: lib/Padre/Wx/Main.pm:3914 #, perl-format msgid "Could not find file '%s'" msgstr "無法找到檔案 '%s'" #: lib/Padre/Wx/Main.pm:2585 msgid "Could not find perl executable" msgstr "無法找到可執行的 perl" #: lib/Padre/Wx/Main.pm:2555 lib/Padre/Wx/Main.pm:2616 #: lib/Padre/Wx/Main.pm:2671 msgid "Could not find project root" msgstr "無法找到專案根目錄" #: lib/Padre/Wx/ActionLibrary.pm:2359 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "無法找到 Padre::Plugin::My plug-in" #: lib/Padre/PluginManager.pm:1068 msgid "Could not locate project directory." msgstr "無法取得專案目錄。" #: lib/Padre/Wx/Main.pm:4309 #, perl-format msgid "Could not reload file: %s" msgstr "無法重讀檔案: '%s" #: lib/Padre/Wx/Main.pm:4717 msgid "Could not save file: " msgstr "無法儲存檔案: " #: lib/Padre/Wx/Debugger.pm:226 #, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "無法設定中斷點於檔案 '%s' 列 '%s'" #: lib/Padre/Wx/Directory/TreeCtrl.pm:237 msgid "Create Directory" msgstr "創建目錄:" #: lib/Padre/Wx/ActionLibrary.pm:1796 msgid "Create Project Tagsfile" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1647 msgid "Create a bookmark in the current file current row" msgstr "創建一個書籤於目前檔案目前列" #: lib/Padre/Wx/About.pm:101 msgid "Created by" msgstr "創建於" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:15 msgid "Creates a Padre Plugin" msgstr "創建一個 Padre Plugin" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:15 msgid "Creates a Padre document" msgstr "創建一個 Padre 文件" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:17 msgid "Creates a Perl 5 module or script" msgstr "創建一個 Perl 5 模組或腳本" #: lib/Padre/Wx/ActionLibrary.pm:1797 msgid "" "Creates a perltags - file for the current project supporting find_method and " "autocomplete." msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:89 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:670 msgid "Cu&t" msgstr "&t 剪下" #: lib/Padre/Document/Perl.pm:674 #, perl-format msgid "Current '%s' not found" msgstr "目前的 '%s' 未找到" #: lib/Padre/Wx/Dialog/OpenResource.pm:245 msgid "Current Directory: " msgstr "目前目錄: " #: lib/Padre/Wx/ActionLibrary.pm:2679 msgid "Current Document" msgstr "目前的文件" #: lib/Padre/Document/Perl.pm:639 msgid "Current cursor does not seem to point at a method" msgstr "目前游標看起來不像是指向一個 method" #: lib/Padre/Document/Perl.pm:585 lib/Padre/Document/Perl.pm:619 msgid "Current cursor does not seem to point at a variable" msgstr "目前游標看起來不像是指向一個變數" #: lib/Padre/Document/Perl.pm:863 lib/Padre/Document/Perl.pm:913 #: lib/Padre/Document/Perl.pm:951 msgid "Current cursor does not seem to point at a variable." msgstr "目前游標看起來不像是指向一個變數。" #: lib/Padre/Wx/Main.pm:2610 lib/Padre/Wx/Main.pm:2662 msgid "Current document has no filename" msgstr "目前的文件沒有檔案名稱" #: lib/Padre/Wx/Main.pm:2665 msgid "Current document is not a .t file" msgstr "目前的文件不是一個 .t 檔案" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "目前列號: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "目前位置: %s" #: lib/Padre/Wx/FBP/Preferences.pm:475 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "游標閃爍速度 (milliseconds - 0 = 關閉, 500 = 預設)" #: lib/Padre/Wx/ActionLibrary.pm:1881 msgid "" "Cut the current selection and create a new sub from it. A call to this sub " "is added in the place where the selection was." msgstr "" "剪下目前所選的並以此建立一個新的 sub 函式。目前所選的位置會加上一個對此 sub " "的呼叫。" #: lib/Padre/Locale.pm:166 msgid "Czech" msgstr "捷克文" #: lib/Padre/Wx/Dialog/WindowList.pm:356 msgid "DELETED" msgstr "已被刪除" #: lib/Padre/Locale.pm:176 msgid "Danish" msgstr "丹麥文" #: lib/Padre/Wx/Dialog/SpecialValues.pm:15 msgid "Date/Time" msgstr "日期/時間" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:395 msgid "Debug" msgstr "除錯" #: lib/Padre/Wx/Debug.pm:113 msgid "Debugger" msgstr "除錯工具" #: lib/Padre/Wx/Debugger.pm:78 msgid "Debugger is already running" msgstr "除錯工具已在運行中" #: lib/Padre/Wx/Debugger.pm:193 lib/Padre/Wx/Debugger.pm:275 #: lib/Padre/Wx/Debugger.pm:299 lib/Padre/Wx/Debugger.pm:333 #: lib/Padre/Wx/Debugger.pm:353 msgid "Debugger not running" msgstr "除錯工具沒有運行中" #: lib/Padre/Wx/Debugger.pm:137 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "除錯失敗。你檢查過你程式的語法錯誤了嗎?" #: lib/Padre/Wx/ActionLibrary.pm:1623 msgid "Decrease Font Size" msgstr "縮小字體大小" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "預設" #: lib/Padre/Wx/FBP/Preferences.pm:763 msgid "Default line ending" msgstr "預設列尾字符" #: lib/Padre/Wx/FBP/Preferences.pm:403 msgid "Default projects directory" msgstr "預設專案目錄" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "預設值:" #: lib/Padre/Wx/FBP/Preferences.pm:755 msgid "Default word wrap on for each file" msgstr "預設對每列使用過長文字跳列(Warp)" #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Delay the action queue for 10 seconds" msgstr "延後動作佇列約 10 秒" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Delay the action queue for 30 seconds" msgstr "延後動作佇列約 30 秒" #: lib/Padre/Wx/FBP/Sync.pm:237 lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Delete" msgstr "刪除" #: lib/Padre/Wx/FBP/Bookmarks.pm:104 msgid "Delete &All" msgstr "&A 全部刪除" #: lib/Padre/Wx/Directory/TreeCtrl.pm:226 msgid "Delete File" msgstr "刪除檔案" #: lib/Padre/Wx/ActionLibrary.pm:1062 msgid "Delete Leading Spaces" msgstr "刪除前導空白" #: lib/Padre/Wx/ActionLibrary.pm:1052 msgid "Delete Trailing Spaces" msgstr "刪除多餘的空白" #: lib/Padre/Wx/Syntax.pm:37 msgid "Deprecation" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "描述" #: lib/Padre/Wx/Dialog/Advanced.pm:158 lib/Padre/Wx/Dialog/SessionSave.pm:209 msgid "Description:" msgstr "描述:" #: lib/Padre/Wx/About.pm:63 msgid "Development" msgstr "開發" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "尚未提供書籤名稱" #: lib/Padre/CPAN.pm:118 lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "尚未提供套件" #: lib/Padre/Wx/Dialog/Bookmarks.pm:96 msgid "Did not select a bookmark" msgstr "尚未選擇書籤" #: lib/Padre/Wx/Menu/Edit.pm:295 msgid "Diff Tools" msgstr "Diff 工具" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "Diff to Saved Version" msgstr "與已儲存的版本做 Diff" #: lib/Padre/Wx/FBP/Preferences.pm:543 msgid "Diff tool" msgstr "Diff 工具" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "數字" #: lib/Padre/Config.pm:633 msgid "Directories First" msgstr "目錄優先" #: lib/Padre/Config.pm:634 msgid "Directories Mixed" msgstr "目錄混和" #: lib/Padre/Wx/Directory/TreeCtrl.pm:83 msgid "Directory" msgstr "目錄" #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Disk" msgstr "磁碟" #: lib/Padre/Wx/ActionLibrary.pm:2213 msgid "Display Value" msgstr "顯示其值" #: lib/Padre/Wx/ActionLibrary.pm:2214 msgid "" "Display the current value of a variable in the right hand side debugger pane" msgstr "顯示右側除錯面板中變數的值" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "不要再次顯示" #: lib/Padre/Wx/Main.pm:5061 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "你真的想要關閉並且從磁碟刪除 %s 嗎?" #: lib/Padre/Wx/Main.pm:2902 msgid "Do you want to continue?" msgstr "你是否想要繼續?" #: lib/Padre/Wx/Dialog/KeyBindings.pm:391 msgid "Do you want to override it with the selected action?" msgstr "你是否想要以所選的動作複寫它?" #: lib/Padre/Wx/WizardLibrary.pm:36 lib/Padre/Wx/Dialog/DocStats.pm:95 msgid "Document" msgstr "文件" #: lib/Padre/Wx/ActionLibrary.pm:551 lib/Padre/Wx/Dialog/DocStats.pm:31 msgid "Document Statistics" msgstr "文件統計" #: lib/Padre/Wx/Right.pm:52 msgid "Document Tools" msgstr "文件工具" #: lib/Padre/Config.pm:647 msgid "Document Tools (Right)" msgstr "文件工具 (右)" #: lib/Padre/Wx/Main.pm:6763 #, perl-format msgid "Document encoded to (%s)" msgstr "文件編碼為 (%s)" #: lib/Padre/Wx/Dialog/DocStats.pm:133 msgid "Document type" msgstr "文件類型" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Down" msgstr "下" #: lib/Padre/Wx/FBP/Sync.pm:222 msgid "Download" msgstr "下載" #: lib/Padre/Plugin/Devel.pm:71 msgid "Dump" msgstr "Dump" #: lib/Padre/Plugin/Devel.pm:77 msgid "Dump %INC and @INC" msgstr "Dump %INC 與 @INC" #: lib/Padre/Plugin/Devel.pm:73 msgid "Dump Current Document" msgstr "Dump 目前文件" #: lib/Padre/Plugin/Devel.pm:76 msgid "Dump Current PPI Tree" msgstr "Dump 目前 PPI 樹" #: lib/Padre/Plugin/Devel.pm:78 msgid "Dump Display Geometry" msgstr "Dump 顯示的幾何座標位置 (Display Geometry)" #: lib/Padre/Plugin/Devel.pm:72 msgid "Dump Expression..." msgstr "Dump 表示式..." #: lib/Padre/Plugin/Devel.pm:74 msgid "Dump Task Manager" msgstr "Dump 工作管理員" #: lib/Padre/Plugin/Devel.pm:75 msgid "Dump Top IDE Object" msgstr "Dump 頂層 IDE 物件" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dump the Padre object to STDOUT" msgstr "Dump 這個 Padre 物件到標準輸出" #: lib/Padre/Wx/ActionLibrary.pm:90 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Dump 這個完整的 Padre 物件到標準輸出以測試/除錯。" #: lib/Padre/Locale.pm:350 msgid "Dutch" msgstr "荷蘭語" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "荷蘭語 (比利時)" #: lib/Padre/Wx/ActionLibrary.pm:1020 msgid "EOL to Mac Classic" msgstr "EOL·to·Mac·Classic" #: lib/Padre/Wx/ActionLibrary.pm:1010 msgid "EOL to Unix" msgstr "EOL to Unix" #: lib/Padre/Wx/ActionLibrary.pm:1000 msgid "EOL to Windows" msgstr "EOL to Windows" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 msgid "Edit" msgstr "編輯" #: lib/Padre/Wx/ActionLibrary.pm:2352 msgid "Edit My Plug-in" msgstr "編輯我的外掛" #: lib/Padre/Wx/ActionLibrary.pm:2276 msgid "Edit user and host preferences" msgstr "編輯使用者與主機偏好" #: lib/Padre/Wx/ActionLibrary.pm:2314 msgid "Edit with Regex Editor" msgstr "以標準表示式 (Regex) 編輯器編輯" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "編輯/新增小片段" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Editor" msgstr "編輯器" #: lib/Padre/Wx/FBP/Preferences.pm:158 msgid "Editor Current Line Background Colour" msgstr "編輯器中目前所在列的背景顏色" #: lib/Padre/Wx/FBP/Preferences.pm:134 msgid "Editor Font" msgstr "編輯器字型" #: lib/Padre/Wx/FBP/Preferences.pm:730 msgid "Editor Options" msgstr "編輯器選項" #: lib/Padre/Wx/FBP/Preferences.pm:52 msgid "Editor Style" msgstr "編輯器風格" #: lib/Padre/Wx/FBP/Sync.pm:157 msgid "Email" msgstr "Email" #: lib/Padre/Wx/FBP/ModuleStarter.pm:63 lib/Padre/Wx/Dialog/ModuleStart.pm:61 msgid "Email Address:" msgstr "Email 地址:" #: lib/Padre/Wx/Dialog/Sync2.pm:152 lib/Padre/Wx/Dialog/Sync.pm:537 msgid "Email and confirmation do not match." msgstr "Email 與確認並不相匹配。" #: lib/Padre/Wx/Dialog/RegexEditor.pm:649 msgid "Empty regex" msgstr "空的標準表示式" #: lib/Padre/Wx/FBP/Preferences.pm:489 msgid "Enable Smart highlighting while typing" msgstr "啟用聰明醒目 (highlight) 功能於打字中" #: lib/Padre/Config.pm:1271 msgid "" "Enable or disable the newer Wx::Scintilla source code editing component. " msgstr "啟用或關閉較新的 Wx::Scintilla 原始碼編輯元件。" #: lib/Padre/Wx/ActionLibrary.pm:970 msgid "Encode Document to System Default" msgstr "將文件編碼為系統預設編碼" #: lib/Padre/Wx/ActionLibrary.pm:980 msgid "Encode Document to utf-8" msgstr "將文件編碼為 utf-8" #: lib/Padre/Wx/ActionLibrary.pm:990 msgid "Encode Document to..." msgstr "將文件編碼為..." #: lib/Padre/Wx/Main.pm:6785 msgid "Encode document to..." msgstr "將文件編碼為..." #: lib/Padre/Wx/Main.pm:6784 msgid "Encode to:" msgstr "編碼為..." #: lib/Padre/Wx/Dialog/DocStats.pm:131 msgid "Encoding" msgstr "檔案編碼" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "End" msgstr "結束" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "End case modification/metacharacter quoting" msgstr "結束大小寫修改/meta字元敘述" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "End of line" msgstr "列尾" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "英文" #: lib/Padre/Locale.pm:124 msgid "English (Australia)" msgstr "英文 (澳洲)" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "英文 (加拿大)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "英文 (紐西蘭)" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "英文 (英國)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "英文 (美國)" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Enter" msgstr "Enter" #: lib/Padre/CPAN.pm:132 msgid "" "Enter URL to install\\ne.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00." "tar.gz" msgstr "" "輸入 URL 以安裝\\n例如·http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar." "gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:215 msgid "Enter parts of the resource name to find it" msgstr "輸入部份的資源名稱以尋找" #: lib/Padre/Wx/Dialog/SpecialValues.pm:19 msgid "Epoch" msgstr "Epoch" #: lib/Padre/Document.pm:440 lib/Padre/Wx/Editor.pm:244 #: lib/Padre/Wx/Main.pm:4718 lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/ModuleStart.pm:185 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 lib/Padre/Wx/Dialog/Sync2.pm:67 #: lib/Padre/Wx/Dialog/Sync2.pm:75 lib/Padre/Wx/Dialog/Sync2.pm:89 #: lib/Padre/Wx/Dialog/Sync2.pm:108 lib/Padre/Wx/Dialog/Sync2.pm:132 #: lib/Padre/Wx/Dialog/Sync2.pm:143 lib/Padre/Wx/Dialog/Sync2.pm:153 #: lib/Padre/Wx/Dialog/Sync2.pm:171 lib/Padre/Wx/Dialog/Sync2.pm:182 #: lib/Padre/Wx/Dialog/Sync2.pm:193 lib/Padre/Wx/Dialog/Sync2.pm:204 #: lib/Padre/Wx/Dialog/PerlFilter.pm:274 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:90 lib/Padre/Wx/Dialog/Sync.pm:447 #: lib/Padre/Wx/Dialog/Sync.pm:455 lib/Padre/Wx/Dialog/Sync.pm:469 #: lib/Padre/Wx/Dialog/Sync.pm:493 lib/Padre/Wx/Dialog/Sync.pm:517 #: lib/Padre/Wx/Dialog/Sync.pm:528 lib/Padre/Wx/Dialog/Sync.pm:538 #: lib/Padre/Wx/Dialog/Sync.pm:556 lib/Padre/Wx/Dialog/Sync.pm:567 #: lib/Padre/Wx/Dialog/Sync.pm:578 lib/Padre/Wx/Dialog/Sync.pm:589 #: lib/Padre/Wx/Dialog/OpenResource.pm:118 msgid "Error" msgstr "錯誤" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "連線時發生問題 %s:%s:%s" #: lib/Padre/Wx/Main.pm:5077 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "刪除時發生錯誤 %s:\n" "%s" #: lib/Padre/Wx/Main.pm:5345 msgid "Error loading perl filter dialog." msgstr "載入 perl 過濾器對話框時發生錯誤" #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "載入 pod 時發生錯誤於類別 '%s': %s" #: lib/Padre/Wx/Main.pm:5316 msgid "Error loading regex editor." msgstr "載入標準表示式 (regex) 編輯器時發生錯誤" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "登入時發生錯誤 %s:%s: %s" #: lib/Padre/Wx/Main.pm:6743 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "過濾工具回傳了錯誤:\n" "%s" #: lib/Padre/Wx/Main.pm:6728 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "運行過濾工具時發生錯誤:\n" "%s" #: lib/Padre/PluginManager.pm:1008 msgid "Error when calling menu for plug-in " msgstr "呼叫外掛選單時發生錯誤" #: lib/Padre/Wx/Dialog/HelpSearch.pm:81 lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "呼叫時發生錯誤 %s %s" #: lib/Padre/Document.pm:281 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "判別 MIME 格式時發生錯誤。\n" "這也許是個編碼上的問題。\n" "你是否正試著載入一個二進位檔案?" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:126 #, perl-format msgid "Error while loading %s" msgstr "載入時發生錯誤 %s" #: lib/Padre/Plugin/Devel.pm:248 msgid "Error while loading Aspect, is it installed?" msgstr "載入 Aspect 時發生錯誤,它是否已被安裝?" #: lib/Padre/Document.pm:231 msgid "Error while opening file: no file object" msgstr "開啟檔案時發生錯誤:無此檔案物件" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "尋找 POD 時發生錯誤" #: lib/Padre/Wx/Dialog/OpenResource.pm:117 msgid "Error while trying to perform Padre action" msgstr "嘗試執行 Padre 動作時發生錯誤" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "嘗試執行 Padre 動作時發生錯誤: %s" #: lib/Padre/Document/Perl.pm:474 msgid "Error: " msgstr "錯誤: " #: lib/Padre/Wx/Main.pm:5821 lib/Padre/Plugin/Devel.pm:334 #, perl-format msgid "Error: %s" msgstr "錯誤: %s" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Escape (Esc)" msgstr "Escape (Esc)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:139 msgid "Escape characters" msgstr "跳脫字元" #: lib/Padre/Wx/ActionLibrary.pm:2243 msgid "Evaluate Expression..." msgstr "" #: lib/Padre/Config/Style.pm:47 msgid "Evening" msgstr "傍晚" #: lib/Padre/Wx/ActionLibrary.pm:2057 msgid "" "Execute the next statement, enter subroutine if needed. (Start debugger if " "it is not yet running)" msgstr "執行下一個陳述,若需要則進入附常式。(若除錯器尚未運行則將之啟動)" #: lib/Padre/Wx/ActionLibrary.pm:2074 msgid "" "Execute the next statement. If it is a subroutine call, stop only after it " "returned. (Start debugger if it is not yet running)" msgstr "" "執行下一個陳述。若其為一個附常式呼叫,則在其 return 後停止。(若除錯器尚未運行" "則將之啟動)" #: lib/Padre/Wx/Main.pm:4499 msgid "Exist" msgstr "存在" #: lib/Padre/Wx/FBP/Bookmarks.pm:60 msgid "Existing Bookmarks:" msgstr "已存在的書籤:" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of " "commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "實驗性的功能。按 '?' 於此頁底端以取得指令列表。若不能動,就責怪 szabgab " "吧。\n" #: lib/Padre/Wx/Debugger.pm:440 msgid "Expr" msgstr "Expr" #: lib/Padre/Plugin/Devel.pm:120 lib/Padre/Plugin/Devel.pm:121 msgid "Expression" msgstr "表示式" #: lib/Padre/Wx/Debugger.pm:439 msgid "Expression:" msgstr "表示式:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "Extended (&x)" msgstr "擴展的 (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:483 msgid "" "Extended regular expressions allow free formatting (whitespace is ignored) " "and comments" msgstr "擴展的標準表示式能接受自由格式 (空白會被忽略) 與註解" #: lib/Padre/Wx/FBP/Preferences.pm:1125 msgid "External Tools" msgstr "外部工具" #: lib/Padre/Wx/ActionLibrary.pm:1892 msgid "Extract Subroutine" msgstr "取出附常式" #: lib/Padre/Wx/ActionLibrary.pm:1879 msgid "Extract Subroutine..." msgstr "取出附常式..." #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "FTP 密碼" #: lib/Padre/Wx/Main.pm:4616 #, perl-format msgid "Failed to create path '%s'" msgstr "創建路徑失敗 '%s'" #: lib/Padre/Wx/Main.pm:1024 msgid "Failed to create server" msgstr "創建伺服器失敗" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "刪除 POD 區段失敗" #: lib/Padre/PluginHandle.pm:327 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "關閉外掛失敗 '%s': %s" #: lib/Padre/PluginHandle.pm:211 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "啟用外掛失敗 '%s': %s" #: lib/Padre/Util/FileBrowser.pm:193 msgid "Failed to execute process\n" msgstr "執行程序失敗\n" #: lib/Padre/Wx/ActionLibrary.pm:1256 msgid "Failed to find any matches" msgstr "找尋匹配失敗" #: lib/Padre/Wx/Main.pm:6351 #, perl-format msgid "Failed to find template file '%s'" msgstr "創建路徑失敗 '%s'" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "失敗於尋找你的 CPAN 設定" #: lib/Padre/PluginManager.pm:1090 lib/Padre/PluginManager.pm:1186 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "載入外掛失敗 '%s'\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "創建路徑失敗 '%s'" #: lib/Padre/Wx/Main.pm:2834 #, perl-format msgid "Failed to start '%s' command" msgstr "啟始 '%s' 指令失敗" #: lib/Padre/Wx/Dialog/Advanced.pm:130 lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "檔案" #: lib/Padre/MimeTypes.pm:445 lib/Padre/MimeTypes.pm:454 msgid "Fast but might be out of date" msgstr "快速但可能是過時的" #: lib/Padre/Wx/Syntax.pm:49 msgid "Fatal Error" msgstr "內部錯誤" #: lib/Padre/Wx/Dialog/ModuleStart.pm:147 #, perl-format msgid "Field %s was missing. Module not created." msgstr "欄位 %s 不見了。模組沒有被創造。" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 #: lib/Padre/Wx/Dialog/WindowList.pm:224 #: lib/Padre/Wx/Dialog/SpecialValues.pm:21 msgid "File" msgstr "檔案" #: lib/Padre/Wx/Menu/File.pm:407 #, perl-format msgid "File %s not found." msgstr "檔案 %s 找不到。" #: lib/Padre/Wx/FBP/Preferences.pm:842 msgid "File access via FTP" msgstr "檔案存取經由 FTP" #: lib/Padre/Wx/FBP/Preferences.pm:818 msgid "File access via HTTP" msgstr "檔案存取經由 HTTP" #: lib/Padre/Wx/Main.pm:4602 msgid "File already exists" msgstr "檔案已存在" #: lib/Padre/Wx/Main.pm:4498 msgid "File already exists. Overwrite it?" msgstr "檔案已存在。 是否覆蓋?" #: lib/Padre/Wx/Main.pm:4707 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "磁碟上的檔案在上次儲存後已被更動。 你想要覆寫它嗎?" #: lib/Padre/Wx/Main.pm:4803 msgid "File changed. Do you want to save it?" msgstr "檔案已更改。 是否儲存?" #: lib/Padre/Wx/ActionLibrary.pm:315 lib/Padre/Wx/ActionLibrary.pm:335 msgid "File is not in a project" msgstr "檔案不在專案中" #: lib/Padre/Wx/Main.pm:4091 #, perl-format msgid "" "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "檔名 %s 包含了 * 或 ? 等大多數電腦上的特殊字元。是否略過?" #: lib/Padre/Wx/Main.pm:4111 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "檔名 %s 並不存在於磁碟上。是否略過?" #: lib/Padre/Wx/Main.pm:4708 msgid "File not in sync" msgstr "檔案未同步" #: lib/Padre/Wx/Main.pm:5055 msgid "File was never saved and has no filename - can't delete from disk" msgstr "檔案從未儲存也沒有檔名 - 無法從磁碟上刪除" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "File..." msgstr "檔案" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "目錄" #: lib/Padre/Wx/Dialog/DocStats.pm:39 msgid "Filename" msgstr "檔名: %s" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "檔案" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "過濾指令:" #: lib/Padre/Wx/ActionLibrary.pm:1128 msgid "Filter through External Tool..." msgstr "使用外部工具過濾..." #: lib/Padre/Wx/ActionLibrary.pm:1137 msgid "Filter through Perl..." msgstr "使用 Perl 過濾..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "使用工具過濾" #: lib/Padre/Wx/FBP/Insert.pm:35 msgid "Filter:" msgstr "過濾器:" #: lib/Padre/Wx/ActionLibrary.pm:1129 msgid "" "Filters the selection (or the whole document) through any external command." msgstr "以任何外部指令過濾所選(或整個文件)" #: lib/Padre/Wx/FBP/Find.pm:27 lib/Padre/Wx/Dialog/Replace.pm:216 msgid "Find" msgstr "尋找" #: lib/Padre/Wx/FBP/Find.pm:124 msgid "Find &All" msgstr "尋找所有(&A)" #: lib/Padre/Wx/FBP/Find.pm:109 msgid "Find &Next" msgstr "尋找下一個" #: lib/Padre/Wx/ActionLibrary.pm:1757 msgid "Find Method Declaration" msgstr "尋找 Method 宣告" #: lib/Padre/Wx/ActionLibrary.pm:1221 lib/Padre/Wx/ActionLibrary.pm:1277 msgid "Find Next" msgstr "尋找下一個" #: lib/Padre/Wx/ActionLibrary.pm:1288 msgid "Find Previous" msgstr "尋找上一個" #: lib/Padre/Wx/FindResult.pm:88 #, perl-format msgid "Find Results (%s)" msgstr "搜尋結果 (%s)" #: lib/Padre/Wx/Dialog/Replace.pm:224 msgid "Find Text:" msgstr "尋找字串:" #: lib/Padre/Wx/ActionLibrary.pm:1733 msgid "Find Unmatched Brace" msgstr "尋找未匹配的括號" #: lib/Padre/Wx/ActionLibrary.pm:1745 msgid "Find Variable Declaration" msgstr "尋找變數宣告" #: lib/Padre/Wx/ActionLibrary.pm:1302 msgid "Find a text and replace it" msgstr "尋找字串並取代" #: lib/Padre/Wx/Dialog/Replace.pm:48 msgid "Find and Replace" msgstr "尋找並取代" #: lib/Padre/Wx/ActionLibrary.pm:1314 msgid "Find in Fi&les..." msgstr "在檔案中尋找(&l)..." #: lib/Padre/Wx/FindInFiles.pm:320 lib/Padre/Wx/FBP/FindInFiles.pm:27 msgid "Find in Files" msgstr "在檔案中尋找" #: lib/Padre/Wx/ActionLibrary.pm:1278 msgid "" "Find next matching text using a toolbar-like dialog at the bottom of the " "editor" msgstr "使用編輯器下方類似工具列的對話框來尋找下一個匹配文字" #: lib/Padre/Wx/ActionLibrary.pm:1289 msgid "" "Find previous matching text using a toolbar-like dialog at the bottom of the " "editor" msgstr "使用編輯器下方類似工具列的對話框來尋找上一個匹配文字" #: lib/Padre/Wx/ActionLibrary.pm:1171 msgid "Find text or regular expressions using a traditional dialog" msgstr "使用傳統對話框來尋找文字或標準表示式" #: lib/Padre/Wx/ActionLibrary.pm:1758 msgid "Find where the selected function was defined and put the focus there." msgstr "尋找所選擇的函式是在哪裡被定義的並將焦點移到那個地方" #: lib/Padre/Wx/ActionLibrary.pm:1746 msgid "" "Find where the selected variable was declared using \"my\" and put the focus " "there." msgstr "尋找所選擇的變數是在哪裡用 \"my\" 被定義的並將焦點移到那個地方" #: lib/Padre/Wx/FBP/FindFast.pm:48 lib/Padre/Wx/Dialog/FindFast.pm:144 msgid "Find:" msgstr "尋找:" #: lib/Padre/Document/Perl.pm:1000 msgid "First character of selection does not seem to point at a token." msgstr "所選擇部份的開頭字元看起來不像是指到一個 token." #: lib/Padre/Wx/Editor.pm:1700 msgid "First character of selection must be a non-word character to align" msgstr "所選的開頭字元必須不是單字字母才能校準(align)" #: lib/Padre/Wx/ActionLibrary.pm:1505 msgid "Fold all" msgstr "全部摺疊" #: lib/Padre/Wx/ActionLibrary.pm:1506 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "折疊所有能被折疊的區塊(需要啟動程式碼折疊功能)" #: lib/Padre/Wx/ActionLibrary.pm:1525 msgid "Fold/Unfold this" msgstr "將此折疊/展開" #: lib/Padre/Wx/Menu/View.pm:189 msgid "Font Size" msgstr "字體大小" #: lib/Padre/Wx/ActionLibrary.pm:450 msgid "" "For new document try to guess the filename based on the file content and " "offer to save it." msgstr "對於新文件,試著以檔案內容猜測檔名並提供其用以儲存" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Form feed" msgstr "" #: lib/Padre/Wx/Syntax.pm:412 #, perl-format msgid "Found %d issue(s)" msgstr "找到 %d 問題" #: lib/Padre/Wx/Syntax.pm:411 #, perl-format msgid "Found %d issue(s) in %s" msgstr "找到 %d 問題於 %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "找到 %s 幫助主題\n" #: lib/Padre/Plugin/Devel.pm:311 #, perl-format msgid "Found %s unloaded modules" msgstr "找到 %s 未被載入的模組" #: lib/Padre/Locale.pm:282 msgid "French" msgstr "法文" #: lib/Padre/Locale.pm:268 msgid "French (Canada)" msgstr "法文 (法國)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "尋找" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "函式" #: lib/Padre/Wx/FunctionList.pm:234 msgid "Functions" msgstr "函式" #: lib/Padre/Config.pm:385 lib/Padre/Wx/Dialog/ModuleStart.pm:20 #: lib/Padre/Wx/Dialog/ModuleStart.pm:40 msgid "GPL 2 or later" msgstr "GPL 2 或更新" #: lib/Padre/Locale.pm:186 msgid "German" msgstr "德文" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "Global (&g)" msgstr "全域 (&g)" #: lib/Padre/Wx/ActionLibrary.pm:1657 msgid "Go to Bookmark" msgstr "前往書籤" #: lib/Padre/Wx/ActionLibrary.pm:2620 msgid "Go to Command Line Window" msgstr "前往主視窗" #: lib/Padre/Wx/ActionLibrary.pm:2561 msgid "Go to Functions Window" msgstr "前往 Functions 視窗" #: lib/Padre/Wx/ActionLibrary.pm:2631 msgid "Go to Main Window" msgstr "前往主視窗" #: lib/Padre/Wx/ActionLibrary.pm:2587 msgid "Go to Outline Window" msgstr "前往大綱視窗" #: lib/Padre/Wx/ActionLibrary.pm:2598 msgid "Go to Output Window" msgstr "前往輸出視窗" #: lib/Padre/Wx/ActionLibrary.pm:2609 msgid "Go to Syntax Check Window" msgstr "前往文法檢查視窗" #: lib/Padre/Wx/ActionLibrary.pm:2575 msgid "Go to Todo Window" msgstr "前往主視窗" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Goto" msgstr "前往" #: lib/Padre/Wx/ActionLibrary.pm:2520 msgid "Goto previous position" msgstr "前往上一個位置" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "Grouping constructs" msgstr "群組建構" #: lib/Padre/Wx/FBP/Preferences.pm:568 msgid "Guess from Current Document" msgstr "以目前的文件猜測:" #: lib/Padre/Locale.pm:292 msgid "Hebrew" msgstr "希伯來語/猶太/以色列" #: lib/Padre/Wx/ActionLibrary.pm:2645 lib/Padre/Wx/Browser.pm:63 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:398 msgid "Help" msgstr "求助" #: lib/Padre/Wx/Dialog/HelpSearch.pm:39 lib/Padre/Wx/Dialog/HelpSearch.pm:96 msgid "Help Search" msgstr "求助搜尋" #: lib/Padre/Wx/ActionLibrary.pm:2758 msgid "Help by translating Padre to your local language" msgstr "以翻譯 Padre 到你的在地語言以幫助" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "檔案 %s 找不到。" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Hex character" msgstr "十六進位字元" #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "十六進位數字" #: lib/Padre/Wx/ActionLibrary.pm:1437 msgid "Hide Find in Files" msgstr "在檔案中尋找" #: lib/Padre/Wx/ActionLibrary.pm:1438 msgid "Hide the list of matches for a Find in Files search" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "Highlight the line where the cursor is" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Home" msgstr "" #: lib/Padre/MimeTypes.pm:466 msgid "" "Hopefully faster than the PPI Traditional. Big file will fall back to " "Scintilla highlighter." msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:807 msgid "Host" msgstr "" #: lib/Padre/Wx/Main.pm:6049 msgid "How many spaces for each tab:" msgstr "每個 tab 要多少個空格:" #: lib/Padre/Locale.pm:302 msgid "Hungarian" msgstr "匈牙利語" #: lib/Padre/Wx/ActionLibrary.pm:1356 msgid "If activated, do not allow moving around some of the windows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2091 msgid "If within a subroutine, run till return is called and then stop." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:469 msgid "Ignore case (&i)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2548 msgid "Imitate clicking on the right mouse button" msgstr "模擬點擊滑鼠右鍵" #: lib/Padre/Wx/FBP/Preferences.pm:710 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "換言之\n" "\tinclude·directory:··-I\n" "\tenable·tainting·checks:··-T\n" "\tenable·many·useful·warnings:··-w\n" "\tenable·all·warnings:··-W\n" "\tdisable·all·warnings:··-X\n" #: lib/Padre/Wx/ActionLibrary.pm:1613 msgid "Increase Font Size" msgstr "加大字體大小" #: lib/Padre/Config.pm:840 msgid "Indent Deeply" msgstr "" #: lib/Padre/Config.pm:839 msgid "Indent to Same Depth" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1126 msgid "Indentation" msgstr "縮排" #: lib/Padre/Wx/FBP/Preferences.pm:616 msgid "Indentation width (in columns)" msgstr "縮排寬度 (以欄位計算):" #: lib/Padre/Wx/FBP/Insert.pm:96 lib/Padre/Wx/Menu/Edit.pm:121 #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 lib/Padre/Wx/Dialog/RegexEditor.pm:271 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Insert" msgstr "插入" #: lib/Padre/Wx/FBP/Insert.pm:26 msgid "Insert Snippit" msgstr "插入" #: lib/Padre/Wx/Dialog/SpecialValues.pm:63 msgid "Insert Special Values" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2418 msgid "Install CPAN Module" msgstr "安裝 CPAN 模組" #: lib/Padre/CPAN.pm:133 lib/Padre/Wx/ActionLibrary.pm:2431 msgid "Install Local Distribution" msgstr "安裝本地套件" #: lib/Padre/Wx/ActionLibrary.pm:2441 msgid "Install Remote Distribution" msgstr "安裝遠端套件" #: lib/Padre/Wx/ActionLibrary.pm:2419 msgid "Install a Perl module from CPAN" msgstr "從 CPAN 安裝 Perl 模組" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "插入" #: lib/Padre/Wx/Syntax.pm:55 msgid "Internal Error" msgstr "內部錯誤" #: lib/Padre/Wx/Main.pm:5822 msgid "Internal error" msgstr "內部錯誤" #: lib/Padre/Wx/FBP/Preferences.pm:696 msgid "Interpreter arguments" msgstr "直譯器參數:" #: lib/Padre/Wx/ActionLibrary.pm:1915 msgid "Introduce Temporary Variable" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1906 msgid "Introduce Temporary Variable..." msgstr "" #: lib/Padre/Locale.pm:316 msgid "Italian" msgstr "義大利文" #: lib/Padre/Locale.pm:326 msgid "Japanese" msgstr "日文" #: lib/Padre/Wx/Main.pm:4030 msgid "JavaScript Files" msgstr "JavaScript 檔案" #: lib/Padre/Wx/ActionLibrary.pm:884 msgid "Join the next line to the end of the current line." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2510 msgid "Jump between the two last visited files back and forth" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2121 msgid "Jump to Current Execution Line" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:773 msgid "Jump to a specific line number or character position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:784 msgid "Jump to the code that triggered the next error" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2521 msgid "Jump to the last position saved in memory" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2295 lib/Padre/Wx/Dialog/KeyBindings.pm:29 msgid "Key Bindings" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "克林貢語" #: lib/Padre/Locale.pm:336 msgid "Korean" msgstr "韓文" #: lib/Padre/Config.pm:386 lib/Padre/Wx/Dialog/ModuleStart.pm:21 #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "LGPL 2.1 or later" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "" #: lib/Padre/Wx/Menu/View.pm:220 msgid "Language" msgstr "語言" #: lib/Padre/Wx/FBP/Preferences.pm:1127 msgid "Language - Perl 5" msgstr "語言" #: lib/Padre/Wx/FBP/Preferences.pm:657 msgid "Language Integration" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2463 lib/Padre/Wx/ActionLibrary.pm:2509 msgid "Last Visited File" msgstr "最後參觀的檔案" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "最後更新" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Left" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:92 lib/Padre/Wx/Dialog/ModuleStart.pm:67 msgid "License:" msgstr "版權:" #: lib/Padre/Wx/ActionLibrary.pm:1784 msgid "" "Like pressing ENTER somewhere on a line, but use the current position as " "ident for the new line." msgstr "" #: lib/Padre/Wx/FindResult.pm:177 msgid "Line" msgstr "列" #: lib/Padre/Wx/Syntax.pm:433 #, perl-format msgid "Line %d: (%s) %s" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:88 lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:232 lib/Padre/Wx/Dialog/Goto.pm:251 msgid "Line number" msgstr "顯示列數" #: lib/Padre/Wx/Dialog/DocStats.pm:98 msgid "Lines" msgstr "列" #: lib/Padre/Wx/ActionLibrary.pm:2167 msgid "List All Breakpoints" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2168 msgid "List all the breakpoints on the console" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:211 msgid "List of open files" msgstr "無開啟檔案" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Session 列表" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "" "List the files that match the current selection and let the user pick one to " "open" msgstr "" #: lib/Padre/Wx/Menu/Help.pm:60 msgid "Live Support" msgstr "" #: lib/Padre/Plugin/Devel.pm:83 msgid "Load All Padre Modules" msgstr "" #: lib/Padre/Plugin/Devel.pm:323 #, perl-format msgid "Loaded %s modules" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1128 msgid "Local/Remote File Access" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1355 msgid "Lock User Interface" msgstr "所定使用者介面" #: lib/Padre/Wx/FBP/Sync.pm:55 msgid "Logged out" msgstr "" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:101 msgid "Login" msgstr "列" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Long hex character" msgstr "" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1085 msgid "Lower All" msgstr "全轉為小寫" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Lowercase next character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Lowercase till \\E" msgstr "全轉為小寫" #: lib/Padre/MimeTypes.pm:520 #, perl-format msgid "MIME type did not have a class entry when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:509 lib/Padre/MimeTypes.pm:542 #, perl-format msgid "MIME type is not supported when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:491 #, perl-format msgid "MIME type was not supported when %s(%s) was called" msgstr "" #: lib/Padre/Config.pm:387 lib/Padre/Wx/Dialog/ModuleStart.pm:22 #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "MIT License" msgstr "版權:" #: lib/Padre/Wx/ActionLibrary.pm:1614 msgid "Make the letters bigger in the editor window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1624 msgid "Make the letters smaller in the editor window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:643 msgid "Mark Selection End" msgstr "標示選取結束" #: lib/Padre/Wx/ActionLibrary.pm:631 msgid "Mark Selection Start" msgstr "標示選取開始" #: lib/Padre/Wx/ActionLibrary.pm:644 msgid "Mark the place where the selection should end" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:632 msgid "Mark the place where the selection should start" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "" #: lib/Padre/Wx/FBP/FindFast.pm:100 msgid "Match Case" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:675 #, perl-format msgid "Match failure in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:686 #, perl-format msgid "Match warning in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:695 #, perl-format msgid "Match with 0 width at character %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:236 msgid "Matched text:" msgstr "取代字串:" #: lib/Padre/Wx/FBP/Preferences.pm:270 msgid "Maximum number of suggestions" msgstr "建議的最大數目:" #: lib/Padre/Wx/Role/Dialog.pm:69 lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "訊息" #: lib/Padre/Wx/Outline.pm:363 msgid "Methods" msgstr "Methods 順序:" #: lib/Padre/Wx/FBP/Preferences.pm:427 msgid "Methods order" msgstr "Methods 順序:" #: lib/Padre/Wx/FBP/Preferences.pm:288 msgid "Minimum characters for autocomplete" msgstr "自動補完功能最小字數限制:" #: lib/Padre/Wx/FBP/Preferences.pm:252 msgid "Minimum length of suggestions" msgstr "建議的最小長度:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 msgid "Miscellaneous" msgstr "" #: lib/Padre/Wx/WizardLibrary.pm:20 msgid "Module" msgstr "模組名稱:" #: lib/Padre/Wx/FBP/ModuleStarter.pm:35 lib/Padre/Wx/Dialog/ModuleStart.pm:55 msgid "Module Name:" msgstr "模組名稱:" #: lib/Padre/Wx/FBP/ModuleStarter.pm:26 lib/Padre/Wx/Dialog/ModuleStart.pm:97 msgid "Module Start" msgstr "模組開始" #: lib/Padre/Wx/Menu/Tools.pm:65 msgid "Module Tools" msgstr "" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "模組名稱:" #: lib/Padre/Wx/Outline.pm:362 msgid "Modules" msgstr "模組名稱:" #: lib/Padre/Wx/ActionLibrary.pm:1929 msgid "Move POD to __END__" msgstr "" #: lib/Padre/Wx/Directory.pm:112 msgid "Move to other panel" msgstr "" #: lib/Padre/Config.pm:388 lib/Padre/Wx/Dialog/ModuleStart.pm:23 #: lib/Padre/Wx/Dialog/ModuleStart.pm:43 msgid "Mozilla Public License" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "Multi-line (&m)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2353 msgid "" "My Plug-in is a plug-in where developers could extend their Padre " "installation" msgstr "" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "名稱" #: lib/Padre/Wx/Dialog/PluginManager.pm:66 #: lib/Padre/Wx/Dialog/SpecialValues.pm:25 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "名稱" #: lib/Padre/Wx/ActionLibrary.pm:1891 msgid "Name for the new subroutine" msgstr "" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "名稱:" #: lib/Padre/Wx/Main.pm:6585 msgid "Need to select text in order to translate to hex" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "" #: lib/Padre/Wx/Menu/File.pm:43 msgid "New" msgstr "新增(&N)" #: lib/Padre/Wx/FBP/WhereFrom.pm:26 msgid "New Installation Survey" msgstr "" #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Perl 5 模組" #: lib/Padre/Document/Perl.pm:873 msgid "New name" msgstr "名稱" #: lib/Padre/PluginManager.pm:431 msgid "New plug-ins detected" msgstr "偵測到新的外掛程式" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Newline" msgstr "顯示換行符號" #: lib/Padre/Wx/ActionLibrary.pm:1782 msgid "Newline Same Column" msgstr "" #: lib/Padre/Wx/FBP/FindFast.pm:71 msgid "Next" msgstr "下一個(&N)" #: lib/Padre/Wx/ActionLibrary.pm:2485 msgid "Next File" msgstr "下一個檔案" #: lib/Padre/Config/Style.pm:48 msgid "Night" msgstr "晚上" #: lib/Padre/Config.pm:838 msgid "No Autoindent" msgstr "沒有自動縮排" #: lib/Padre/Wx/Main.pm:2582 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:93 msgid "No Help found" msgstr "" #: lib/Padre/Plugin/Devel.pm:170 msgid "No Perl 5 file is open" msgstr "沒有已開啟的 Perl 5 檔案" #: lib/Padre/Document/Perl.pm:621 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "找不到特定的 (詞彙語意?) 變數宣告" #: lib/Padre/Document/Perl.pm:953 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "找不到特定的 (詞彙語意?) 變數宣告" #: lib/Padre/Wx/Main.pm:2549 lib/Padre/Wx/Main.pm:2604 #: lib/Padre/Wx/Main.pm:2656 msgid "No document open" msgstr "沒有開啟文件" #: lib/Padre/Document/Perl.pm:476 msgid "No errors found." msgstr "沒有發現錯誤。" #: lib/Padre/Wx/Syntax.pm:399 #, perl-format msgid "No errors or warnings found in %s." msgstr "" #: lib/Padre/Wx/Syntax.pm:402 msgid "No errors or warnings found." msgstr "" #: lib/Padre/Wx/Main.pm:2877 msgid "No execution mode was defined for this document type" msgstr "此文件的執行模式尚未被定義" #: lib/Padre/Wx/Main.pm:6015 lib/Padre/Plugin/Devel.pm:149 msgid "No file is open" msgstr "沒有開啟檔案" #: lib/Padre/PluginManager.pm:1065 lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "沒有檔案名稱" #: lib/Padre/Wx/Dialog/RegexEditor.pm:714 msgid "No match" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:79 lib/Padre/Wx/Dialog/Replace.pm:537 #: lib/Padre/Wx/Dialog/Replace.pm:585 #, perl-format msgid "No matches found for \"%s\"." msgstr "" #: lib/Padre/Document.pm:325 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "" #: lib/Padre/Wx/Main.pm:2859 msgid "No open document" msgstr "沒有開啟文件" #: lib/Padre/Config.pm:455 msgid "No open files" msgstr "無開啟檔案" #: lib/Padre/Wx/FindInFiles.pm:223 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "" #: lib/Padre/Wx/Main.pm:817 #, perl-format msgid "No such session %s" msgstr "沒有這個 session 呢 %s" #: lib/Padre/Wx/ActionLibrary.pm:820 msgid "No suggestions" msgstr "沒有建議" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "None" msgstr "無" #: lib/Padre/Locale.pm:370 msgid "Norwegian" msgstr "韓文" #: lib/Padre/Wx/Debugger.pm:82 msgid "Not a Perl document" msgstr "不是 Perl 文件" #: lib/Padre/Wx/Dialog/Goto.pm:200 lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number!" msgstr "前往第幾列" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "" #: lib/Padre/Config/Style.pm:50 msgid "Notepad++" msgstr "Notepad++" #: lib/Padre/Wx/Main.pm:3872 msgid "Nothing selected. Enter what should be opened:" msgstr "啥都沒選. 請輸入啥該被開啟:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:16 msgid "Now" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:30 msgid "Number of lines" msgstr "最小模組數" #: lib/Padre/Wx/FBP/ModuleStarter.pm:139 lib/Padre/Wx/FBP/Bookmarks.pm:83 #: lib/Padre/Wx/FBP/WhereFrom.pm:58 msgid "OK" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Octal character" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:850 msgid "Offer completions to the current string. See Preferences" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2474 msgid "Oldest Visited File" msgstr "最早參觀的檔案" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "" #: lib/Padre/Wx/Outline.pm:239 msgid "Open &Documentation" msgstr "開啟文件(&D)" #: lib/Padre/Wx/ActionLibrary.pm:237 msgid "Open &URL..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:530 msgid "Open All Recent Files" msgstr "開啟所有最近的檔案" #: lib/Padre/Wx/ActionLibrary.pm:2451 msgid "Open CPAN Config File" msgstr "開啟 CPAN 設定檔" #: lib/Padre/Wx/ActionLibrary.pm:2452 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:282 msgid "Open Example" msgstr "開啟範例" #: lib/Padre/Wx/Main.pm:4054 lib/Padre/Wx/Directory/TreeCtrl.pm:210 msgid "Open File" msgstr "開啟檔案" #: lib/Padre/Wx/Dialog/OpenResource.pm:30 #: lib/Padre/Wx/Dialog/OpenResource.pm:76 msgid "Open Resources" msgstr "開啟 session" #: lib/Padre/Wx/ActionLibrary.pm:1328 msgid "Open Resources..." msgstr "正在開啟 session %s..." #: lib/Padre/Wx/ActionLibrary.pm:473 lib/Padre/Wx/Main.pm:3915 msgid "Open Selection" msgstr "開啟所選擇的" #: lib/Padre/Wx/ActionLibrary.pm:483 msgid "Open Session..." msgstr "開啟 Session" #: lib/Padre/Wx/Dialog/ModuleStart.pm:24 lib/Padre/Wx/Dialog/ModuleStart.pm:44 msgid "Open Source" msgstr "開啟 Session" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "開啟 URL" #: lib/Padre/Wx/Main.pm:4094 lib/Padre/Wx/Main.pm:4114 msgid "Open Warning" msgstr "開啟警告" #: lib/Padre/Wx/ActionLibrary.pm:143 msgid "Open a document and copy the content of the current tab" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:161 msgid "Open a document with a skeleton Perl 5 module" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:152 msgid "Open a document with a skeleton Perl 5 script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Open a document with a skeleton Perl 6 script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:238 msgid "Open a file from a remote location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:131 msgid "Open a new empty document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:531 msgid "Open all the files listed in the recent files list" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2344 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "" #: lib/Padre/Wx/Menu/File.pm:408 msgid "Open cancelled" msgstr "已取消開啟" #: lib/Padre/PluginManager.pm:1140 lib/Padre/Wx/Main.pm:5714 msgid "Open file" msgstr "開啟檔案" #: lib/Padre/Wx/FBP/Preferences.pm:388 msgid "Open files" msgstr "開啟檔案:" #: lib/Padre/Wx/FBP/Preferences.pm:419 msgid "Open files in existing Padre" msgstr "在目前的 Padre 中開啟檔案" #: lib/Padre/Wx/ActionLibrary.pm:272 msgid "Open in Command Line" msgstr "命令列" #: lib/Padre/Wx/ActionLibrary.pm:248 lib/Padre/Wx/Directory/TreeCtrl.pm:218 msgid "Open in File Browser" msgstr "開啟於檔案瀏覽器中" #: lib/Padre/Wx/ActionLibrary.pm:2730 msgid "" "Open perlmonks.org, one of the biggest Perl community sites, in your default " "web browser" msgstr "" #: lib/Padre/Wx/Main.pm:3873 msgid "Open selection" msgstr "開啟所選擇的" #: lib/Padre/Config.pm:456 msgid "Open session" msgstr "開啟 session" #: lib/Padre/Wx/ActionLibrary.pm:2692 msgid "" "Open the Padre live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2704 msgid "" "Open the Perl live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2716 msgid "" "Open the Perl/Win32 live support chat in your web browser and talk to others " "who may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2305 msgid "Open the regular expression editing window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2315 msgid "Open the selected text in the Regex Editor" msgstr "關閉所有在編輯器中開啟的檔案" #: lib/Padre/Wx/ActionLibrary.pm:258 msgid "Open with Default System Editor" msgstr "" #: lib/Padre/Wx/Menu/File.pm:105 msgid "Open..." msgstr "開啟(&O)..." #: lib/Padre/Wx/Main.pm:2988 #, perl-format msgid "Opening session %s..." msgstr "正在開啟 session %s..." #: lib/Padre/Wx/ActionLibrary.pm:273 msgid "Opens a command line using the current document folder" msgstr "" #: lib/Padre/Wx/WizardLibrary.pm:38 msgid "Opens the Padre document wizard" msgstr "" #: lib/Padre/Wx/WizardLibrary.pm:30 msgid "Opens the Padre plugin wizard" msgstr "" #: lib/Padre/Wx/WizardLibrary.pm:22 msgid "Opens the Perl 5 module wizard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:249 msgid "Opens the current document using the file browser" msgstr "目前的文件不是一個 .t 檔案" #: lib/Padre/Wx/ActionLibrary.pm:261 msgid "Opens the file with the default system editor" msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:302 msgid "Options" msgstr "選項" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "選項" #: lib/Padre/Wx/Dialog/PerlFilter.pm:74 msgid "Or&iginal text:" msgstr "原始的" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "" #: lib/Padre/Config.pm:390 msgid "Other Open Source" msgstr "" #: lib/Padre/Config.pm:391 msgid "Other Unrestricted" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range!" msgstr "" #: lib/Padre/Wx/Outline.pm:114 lib/Padre/Wx/Outline.pm:316 msgid "Outline" msgstr "大綱" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "輸出" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "輸出顯示" #: lib/Padre/Wx/Dialog/KeyBindings.pm:392 msgid "Override Shortcut" msgstr "捷徑" #: lib/Padre/Wx/Main.pm:4034 msgid "PHP Files" msgstr "PHP 檔案" #: lib/Padre/Wx/FBP/Preferences.pm:339 msgid "POD" msgstr "" #: lib/Padre/MimeTypes.pm:460 lib/Padre/Config.pm:1063 msgid "PPI Experimental" msgstr "PPI 進階" #: lib/Padre/MimeTypes.pm:465 lib/Padre/Config.pm:1064 msgid "PPI Standard" msgstr "" #: lib/Padre/Wx/About.pm:58 lib/Padre/Wx/WizardLibrary.pm:29 #: lib/Padre/Wx/WizardLibrary.pm:37 lib/Padre/Wx/Dialog/Form.pm:98 #: lib/Padre/Config/Style.pm:46 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Padre 開發者工具" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Padre 開發者工具" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:16 msgid "Padre Document Wizard" msgstr "" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:16 msgid "Padre Plugin Wizard" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:27 msgid "Padre Preferences" msgstr "偏好設定" #: lib/Padre/Wx/ActionLibrary.pm:2690 msgid "Padre Support (English)" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:26 lib/Padre/Wx/Dialog/Sync.pm:43 msgid "Padre Sync" msgstr "Padre" #: lib/Padre/Wx/About.pm:104 msgid "" "Padre is free software; you can redistribute it and/or modify it under the " "same terms as Perl 5." msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageDown" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageUp" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:115 lib/Padre/Wx/Dialog/ModuleStart.pm:70 msgid "Parent Directory:" msgstr "父(上層)目錄:" #: lib/Padre/Wx/FBP/Sync.pm:86 lib/Padre/Wx/FBP/Sync.pm:129 msgid "Password" msgstr "" #: lib/Padre/Wx/Dialog/Sync2.pm:142 lib/Padre/Wx/Dialog/Sync.pm:527 msgid "Password and confirmation do not match." msgstr "" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:759 msgid "Paste the clipboard to the current location" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 msgid "Perl" msgstr "Perl(&P)" #: lib/Padre/Wx/WizardLibrary.pm:21 msgid "Perl 5" msgstr "Perl(&P)" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Perl 5 Module" msgstr "Perl 5 模組" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:18 msgid "Perl 5 Module Wizard" msgstr "Perl 5 模組" #: lib/Padre/Wx/ActionLibrary.pm:151 msgid "Perl 5 Script" msgstr "Perl 5 Script" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 Test" msgstr "Perl 5 測試" #: lib/Padre/Wx/ActionLibrary.pm:180 msgid "Perl 6 Script" msgstr "Perl 6 Script" #: lib/Padre/Wx/ActionLibrary.pm:201 msgid "Perl Distribution (New)..." msgstr "Perl 套件 (Module::Starter)" #: lib/Padre/Wx/ActionLibrary.pm:191 msgid "Perl Distribution..." msgstr "Perl 套件 (Module::Starter)" #: lib/Padre/Wx/Main.pm:4032 msgid "Perl Files" msgstr "Perl 檔案" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Perl 檔案" #: lib/Padre/Wx/ActionLibrary.pm:2702 msgid "Perl Help" msgstr "Perl 求助" #: lib/Padre/Wx/FBP/Preferences.pm:747 msgid "Perl beginner mode" msgstr "Perl 初心者模式" #: lib/Padre/Wx/FBP/Preferences.pm:793 msgid "Perl ctags file" msgstr "Perl ctags 檔案:" #: lib/Padre/Wx/FBP/Preferences.pm:674 msgid "Perl interpreter" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:25 lib/Padre/Wx/Dialog/ModuleStart.pm:45 #: lib/Padre/Wx/Dialog/ModuleStart.pm:113 msgid "Perl licensing terms" msgstr "" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "波斯語" #: lib/Padre/Wx/Dialog/ModuleStart.pm:71 msgid "Pick parent directory" msgstr "選擇父(上層)目錄" #: lib/Padre/Wx/Dialog/Sync2.pm:131 lib/Padre/Wx/Dialog/Sync.pm:516 msgid "Please ensure all inputs have appropriate values." msgstr "" #: lib/Padre/Wx/Dialog/Sync2.pm:88 lib/Padre/Wx/Dialog/Sync.pm:468 msgid "Please input a valid value for both username and password" msgstr "" #: lib/Padre/Wx/Progress.pm:76 msgid "Please wait..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2343 msgid "Plug-in List (CPAN)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2327 lib/Padre/Wx/Dialog/PluginManager.pm:35 msgid "Plug-in Manager" msgstr "外掛管理員" #: lib/Padre/Wx/Dialog/PluginManager.pm:102 msgid "Plug-in Name" msgstr "外掛名稱" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "Plug-in Tools" msgstr "外掛工具組" #: lib/Padre/PluginManager.pm:1160 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "外掛必需有 '%s' 做為其基礎目錄" #: lib/Padre/Wx/WizardLibrary.pm:28 msgid "Plugin" msgstr "外掛" #: lib/Padre/PluginManager.pm:930 #, perl-format msgid "Plugin %s" msgstr "外掛 %s" #: lib/Padre/PluginHandle.pm:269 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "" #: lib/Padre/PluginHandle.pm:279 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "" #: lib/Padre/PluginHandle.pm:287 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "" #: lib/Padre/PluginManager.pm:903 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "" #: lib/Padre/PluginManager.pm:874 #, perl-format msgid "Plugin error on event %s: %s" msgstr "外掛失效於事件 %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:396 msgid "Plugins" msgstr "外掛" #: lib/Padre/Locale.pm:380 msgid "Polish" msgstr "波蘭文" #: lib/Padre/Plugin/PopularityContest.pm:305 msgid "Popularity Contest Report" msgstr "" #: lib/Padre/Locale.pm:390 msgid "Portuguese (Brazil)" msgstr "葡萄牙文 (巴西)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "葡萄牙文 (葡萄牙)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "文件類型:" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "" #: lib/Padre/Wx/Outline.pm:361 msgid "Pragmata" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:442 msgid "Prefered language for error diagnostics" msgstr "錯誤診斷時的偏好語言:" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "偏好設定" #: lib/Padre/Wx/ActionLibrary.pm:2275 msgid "Preferences" msgstr "偏好設定" #: lib/Padre/Wx/ActionLibrary.pm:2285 msgid "Preferences Sync" msgstr "偏好設定" #: lib/Padre/Wx/Dialog/FindFast.pm:163 msgid "Previ&ous" msgstr "前一個(&o)" #: lib/Padre/Wx/FBP/Insert.pm:73 msgid "Preview:" msgstr "" #: lib/Padre/Wx/FBP/FindFast.pm:86 msgid "Previous" msgstr "前一個(&o)" #: lib/Padre/Wx/ActionLibrary.pm:2496 msgid "Previous File" msgstr "前一個檔案" #: lib/Padre/Config.pm:453 msgid "Previous open files" msgstr "之前開啟檔案" #: lib/Padre/Wx/ActionLibrary.pm:511 msgid "Print the current document" msgstr "列印目前的文件" #: lib/Padre/Wx/Directory.pm:272 lib/Padre/Wx/Dialog/WindowList.pm:223 msgid "Project" msgstr "專案" #: lib/Padre/Wx/ActionLibrary.pm:1418 msgid "Project Browser - Was known as the Directory Tree." msgstr "" #: lib/Padre/Wx/Left.pm:52 msgid "Project Tools" msgstr "專案工具" #: lib/Padre/Config.pm:646 msgid "Project Tools (Left)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1811 msgid "" "Prompt for a replacement variable name and replace all occurrences of this " "variable" msgstr "" #: lib/Padre/Config.pm:392 msgid "Proprietary/Restrictive" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2475 msgid "Put focus on tab visited the longest time ago." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2486 msgid "Put focus on the next tab to the right" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2497 msgid "Put focus on the previous tab to the left" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:743 msgid "Put the content of the current document in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:686 msgid "Put the current selection in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:702 msgid "Put the full path of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:730 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:716 msgid "Put the name of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/Main.pm:4036 msgid "Python Files" msgstr "Python 檔案" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:40 msgid "Quick Menu Access" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1339 msgid "Quick Menu Access..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1340 msgid "Quick access to all menu functions" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2259 msgid "Quit Debugger (&q)" msgstr "除錯工具" #: lib/Padre/Wx/ActionLibrary.pm:2260 msgid "Quit the process being debugged" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:157 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "" #: lib/Padre/Wx/StatusBar.pm:435 msgid "R/W" msgstr "" #: lib/Padre/Wx/StatusBar.pm:435 msgid "Read Only" msgstr "唯讀" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 msgid "Reading items. Please wait" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:352 msgid "Reading items. Please wait..." msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "儲存全部檔案" #: lib/Padre/Wx/ActionLibrary.pm:605 msgid "Redo last undo" msgstr "" #: lib/Padre/Wx/Menu/Refactor.pm:94 msgid "Ref&actor" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 msgid "Refactor" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:249 msgid "Refresh" msgstr "刷新選單" #: lib/Padre/Wx/FBP/Preferences.pm:513 msgid "RegExp for TODO panel" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2304 lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:185 msgid "Register" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:314 msgid "Registration" msgstr "描述" #: lib/Padre/Wx/Dialog/Replace.pm:92 msgid "Regular &Expression" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "" #: lib/Padre/Wx/FindResult.pm:125 msgid "Related editor has been closed" msgstr "" #: lib/Padre/Wx/Menu/File.pm:193 msgid "Reload" msgstr "重新載入" #: lib/Padre/Wx/ActionLibrary.pm:399 msgid "Reload All" msgstr "重新載入檔案" #: lib/Padre/Wx/ActionLibrary.pm:2400 msgid "Reload All Plug-ins" msgstr "重新載入所有外掛" #: lib/Padre/Wx/ActionLibrary.pm:389 msgid "Reload File" msgstr "重新載入檔案" #: lib/Padre/Wx/ActionLibrary.pm:2369 msgid "Reload My Plug-in" msgstr "重新載入我的外掛" #: lib/Padre/Wx/ActionLibrary.pm:409 msgid "Reload Some..." msgstr "重新載入檔案" #: lib/Padre/Wx/Main.pm:4199 msgid "Reload all files" msgstr "重新載入所有檔案" #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Reload all files currently open" msgstr "重新載入所有目前開啟的檔案" #: lib/Padre/Wx/ActionLibrary.pm:2401 msgid "Reload all plug-ins from disk" msgstr "從硬碟中重新載入所有外掛" #: lib/Padre/Wx/ActionLibrary.pm:390 msgid "Reload current file from disk" msgstr "從硬碟重新載入目前的檔案" #: lib/Padre/Wx/Main.pm:4246 msgid "Reload some" msgstr "重新載入檔案" #: lib/Padre/Wx/Main.pm:4230 lib/Padre/Wx/Main.pm:6216 msgid "Reload some files" msgstr "重新載入所有檔案" #: lib/Padre/Wx/ActionLibrary.pm:2410 msgid "Reloads (or initially loads) the current plug-in" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2152 msgid "Remove Breakpoint" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:656 msgid "Remove all the selection marks" msgstr "清除所有選取標示" #: lib/Padre/Wx/ActionLibrary.pm:958 msgid "Remove comment out of selected lines in the document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2153 msgid "Remove the breakpoint at the current location of the cursor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:671 msgid "Remove the current selection and put it in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:540 msgid "Remove the entries from the recent files list" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Remove the spaces from the beginning of the selected lines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Remove the spaces from the end of the selected lines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1810 msgid "Rename Variable" msgstr "以語意詞彙為變數重新命名" #: lib/Padre/Document/Perl.pm:864 lib/Padre/Document/Perl.pm:874 msgid "Rename variable" msgstr "以語意詞彙為變數重新命名" #: lib/Padre/Wx/ActionLibrary.pm:1223 msgid "Repeat the last find to find the next match" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1265 msgid "Repeat the last find, but backwards to find the previous match" msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:248 msgid "Replace" msgstr "取代" #: lib/Padre/Wx/Dialog/Replace.pm:134 msgid "Replace &All" msgstr "全部取代(&A)" #: lib/Padre/Document/Perl.pm:959 lib/Padre/Document/Perl.pm:1008 msgid "Replace Operation Canceled" msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:256 msgid "Replace Text:" msgstr "取代字串:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:487 msgid "Replace all occurrences of the pattern" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:760 #, perl-format msgid "Replace failure in %s: %s" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1301 msgid "Replace..." msgstr "取代" #: lib/Padre/Wx/Dialog/Replace.pm:576 #, perl-format msgid "Replaced %d match" msgstr "取代了 %d 符合的項目" #: lib/Padre/Wx/Dialog/Replace.pm:576 #, perl-format msgid "Replaced %d matches" msgstr "取代了 %d 符合的項目" #: lib/Padre/Wx/ActionLibrary.pm:2740 msgid "Report a New &Bug" msgstr "回報一個新的 &Bug" #: lib/Padre/Wx/ActionLibrary.pm:1633 msgid "Reset Font Size" msgstr "重設字體大小" #: lib/Padre/Wx/ActionLibrary.pm:2378 lib/Padre/Wx/ActionLibrary.pm:2385 msgid "Reset My plug-in" msgstr "重設我的外掛" #: lib/Padre/Wx/ActionLibrary.pm:2379 msgid "Reset the My plug-in to the default" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1634 msgid "Reset the size of the letters to the default in the editor window" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:134 msgid "Reset to default shortcut" msgstr "" #: lib/Padre/Wx/Main.pm:3017 msgid "Restore focus..." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Return" msgstr "執行" #: lib/Padre/Config.pm:384 lib/Padre/Wx/Dialog/ModuleStart.pm:19 #: lib/Padre/Wx/Dialog/ModuleStart.pm:39 msgid "Revised BSD License" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Right" msgstr "晚上" #: lib/Padre/Wx/ActionLibrary.pm:2547 msgid "Right Click" msgstr "點擊滑鼠右鍵" #: lib/Padre/Wx/Main.pm:4038 msgid "Ruby Files" msgstr "Ruby 檔案" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:394 msgid "Run" msgstr "執行" #: lib/Padre/Wx/ActionLibrary.pm:1984 msgid "Run Build and Tests" msgstr "執行測試" #: lib/Padre/Wx/ActionLibrary.pm:1973 msgid "Run Command" msgstr "執行指令" #: lib/Padre/Plugin/Devel.pm:67 msgid "Run Document inside Padre" msgstr "在 Padre 裡執行文件" #: lib/Padre/Wx/ActionLibrary.pm:1945 msgid "Run Script" msgstr "執行腳本" #: lib/Padre/Wx/ActionLibrary.pm:1961 msgid "Run Script (Debug Info)" msgstr "執行腳本 (除錯資訊)" #: lib/Padre/Plugin/Devel.pm:68 msgid "Run Selection inside Padre" msgstr "在 Padre 裡執行所選擇的部份" #: lib/Padre/Wx/ActionLibrary.pm:1996 msgid "Run Tests" msgstr "執行測試" #: lib/Padre/Wx/ActionLibrary.pm:2015 msgid "Run This Test" msgstr "執行這個測試" #: lib/Padre/Wx/ActionLibrary.pm:1998 msgid "" "Run all tests for the current project or document and show the results in " "the output panel." msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:89 msgid "Run filter" msgstr "開啟檔案" #: lib/Padre/Wx/Main.pm:2520 msgid "Run setup" msgstr "執行設定" #: lib/Padre/Wx/ActionLibrary.pm:1962 msgid "Run the current document but include debug info in the output." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2016 msgid "Run the current test if the current document is a test. (prove -bv)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2106 msgid "Run till Breakpoint (&c)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2182 msgid "Run to Cursor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1974 msgid "Runs a shell command and shows the output." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1946 msgid "Runs the current document and shows its output in the output panel." msgstr "" #: lib/Padre/Locale.pm:410 msgid "Russian" msgstr "俄文" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "儲存" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "" #: lib/Padre/Wx/Main.pm:4040 msgid "SQL Files" msgstr "SQL 檔案" #: lib/Padre/Plugin/Devel.pm:93 msgid "STC Reference" msgstr "STC 偏好設定" #: lib/Padre/Wx/FBP/Preferences.pm:882 lib/Padre/Wx/Dialog/SessionSave.pm:229 msgid "Save" msgstr "儲存" #: lib/Padre/Wx/ActionLibrary.pm:436 msgid "Save &As..." msgstr "另存新檔(&A)...\tF12" #: lib/Padre/Wx/ActionLibrary.pm:460 msgid "Save All" msgstr "全部存檔" #: lib/Padre/Wx/ActionLibrary.pm:449 msgid "Save Intuition" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:494 msgid "Save Session..." msgstr "儲存 Session" #: lib/Padre/Document.pm:772 msgid "Save Warning" msgstr "儲存警告" #: lib/Padre/Wx/ActionLibrary.pm:461 msgid "Save all the files" msgstr "儲存全部檔案" #: lib/Padre/Wx/ActionLibrary.pm:424 msgid "Save current document" msgstr "儲存目前的文件" #: lib/Padre/Wx/Main.pm:4422 msgid "Save file as..." msgstr "將檔案儲存成..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "另存 session 為..." #: lib/Padre/MimeTypes.pm:444 lib/Padre/MimeTypes.pm:453 #: lib/Padre/Config.pm:1062 msgid "Scintilla" msgstr "" #: lib/Padre/Wx/Main.pm:4046 msgid "Script Files" msgstr "JavaScript 檔案" #: lib/Padre/Wx/FBP/Preferences.pm:716 msgid "Script arguments" msgstr "指令稿參數:" #: lib/Padre/Wx/Directory.pm:81 lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 #: lib/Padre/Wx/Dialog/Find.pm:82 msgid "Search" msgstr "搜尋" #: lib/Padre/Wx/FBP/Find.pm:77 lib/Padre/Wx/Dialog/Replace.pm:120 msgid "Search &Backwards" msgstr "向前搜尋(&B)" #: lib/Padre/Wx/FBP/FindInFiles.pm:36 lib/Padre/Wx/FBP/Find.pm:36 msgid "Search &Term:" msgstr "搜尋求助" #: lib/Padre/Document/Perl.pm:627 msgid "Search Canceled" msgstr "搜尋已取消的" #: lib/Padre/Wx/FBP/FindInFiles.pm:61 msgid "Search Directory:" msgstr "父(上層)目錄:" #: lib/Padre/Wx/ActionLibrary.pm:2654 msgid "Search Help" msgstr "搜尋求助" #: lib/Padre/Wx/Dialog/Replace.pm:538 lib/Padre/Wx/Dialog/Replace.pm:581 #: lib/Padre/Wx/Dialog/Replace.pm:586 msgid "Search and Replace" msgstr "尋找並取代" #: lib/Padre/Wx/FindInFiles.pm:212 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1315 msgid "Search for a text in all files below a given directory" msgstr "" #: lib/Padre/Wx/Browser.pm:92 lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:92 msgid "Search in Types:" msgstr "尋找並取代" #: lib/Padre/Wx/ActionLibrary.pm:2655 msgid "Search the Perl help pages (perldoc)" msgstr "" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "搜尋" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1734 msgid "" "Searches the source code for brackets with lack a matching (opening/closing) " "part." msgstr "" #: lib/Padre/Wx/FindInFiles.pm:129 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:49 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "選擇" #: lib/Padre/Wx/ActionLibrary.pm:618 msgid "Select All" msgstr "全選" #: lib/Padre/Wx/Dialog/FindInFiles.pm:64 msgid "Select Directory" msgstr "選取目錄" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "選擇函式" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:17 msgid "Select a Wizard" msgstr "全選" #: lib/Padre/Wx/ActionLibrary.pm:1658 msgid "Select a bookmark created earlier and jump to that position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "" "Select a date, filename or other value and insert at the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:920 msgid "Select a file and insert its content at the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:484 msgid "" "Select a session. Close all the files currently open and open all the listed " "in the session" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:619 msgid "Select all the text in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Select an encoding and encode the document to that" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:908 msgid "Select and insert a snippet at the current location" msgstr "" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "選擇套件以安裝" #: lib/Padre/Wx/Main.pm:4928 msgid "Select files to close:" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:239 msgid "Select one or more resources to open" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Select some open files for closing" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:410 msgid "Select some open files for reload" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:129 msgid "Select the help &topic" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:872 msgid "Select to the matching opening or closing brace" msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:40 msgid "Selection" msgstr "選擇" #: lib/Padre/Document/Perl.pm:1002 msgid "Selection not part of a Perl statement?" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:213 msgid "Selects and opens a wizard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2741 msgid "Send a bug report to the Padre developer team" msgstr "回報臭蟲給 Padre 開發者群組" #: lib/Padre/File/HTTP.pm:48 #, perl-format msgid "Sending HTTP request %s..." msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:35 msgid "Server" msgstr "儲存" #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Session 管理員" #: lib/Padre/Wx/Dialog/SessionSave.pm:200 msgid "Session name:" msgstr "Session 名稱:" #: lib/Padre/Wx/ActionLibrary.pm:1646 msgid "Set Bookmark" msgstr "設定書籤" #: lib/Padre/Wx/FBP/Bookmarks.pm:35 msgid "Set Bookmark:" msgstr "設定書籤" #: lib/Padre/Wx/ActionLibrary.pm:2137 msgid "Set Breakpoint (&b)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1700 msgid "Set Padre in full screen mode" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2183 msgid "Set a breakpoint at the line where to cursor is and run till there" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2138 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2122 msgid "" "Set focus to the line where the current statement is in the debugging process" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2621 msgid "Set the focus to the \"Command Line\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2562 msgid "Set the focus to the \"Functions\" window" msgstr "前往 Functions 視窗" #: lib/Padre/Wx/ActionLibrary.pm:2588 msgid "Set the focus to the \"Outline\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2599 msgid "Set the focus to the \"Output\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2610 msgid "Set the focus to the \"Syntax Check\" window" msgstr "前往文法檢查視窗" #: lib/Padre/Wx/ActionLibrary.pm:2576 msgid "Set the focus to the \"Todo\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2632 msgid "Set the focus to the main editor window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:202 msgid "Setup a skeleton Perl distribution" msgstr "使用 Module::Starter 設定一個 Perl 套件" #: lib/Padre/Wx/ActionLibrary.pm:192 msgid "Setup a skeleton Perl module distribution" msgstr "使用 Module::Starter 設定一個 Perl 套件" #: lib/Padre/Config.pm:490 lib/Padre/Config.pm:501 msgid "Several placeholders like the filename can be used" msgstr "" #: lib/Padre/Wx/Syntax.pm:43 msgid "Severe Warning" msgstr "儲存警告" #: lib/Padre/Wx/Dialog/KeyBindings.pm:86 msgid "Sh&ortcut:" msgstr "捷徑" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "Share your preferences between multiple computers" msgstr "" #: lib/Padre/MimeTypes.pm:302 msgid "Shell Script" msgstr "Perl 5 Script" #: lib/Padre/Wx/Dialog/KeyBindings.pm:91 msgid "Shift" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "捷徑" #: lib/Padre/Wx/FBP/Preferences.pm:497 msgid "Shorten the common path in window list" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:216 msgid "Show &Description" msgstr "描述" #: lib/Padre/Wx/ActionLibrary.pm:1535 msgid "Show Call Tips" msgstr "顯示呼叫提示" #: lib/Padre/Wx/ActionLibrary.pm:1495 msgid "Show Code Folding" msgstr "顯示程式碼縮摺" #: lib/Padre/Wx/ActionLibrary.pm:1387 msgid "Show Command Line window" msgstr "命令列" #: lib/Padre/Wx/ActionLibrary.pm:1549 msgid "Show Current Line" msgstr "顯視目前列" #: lib/Padre/Wx/ActionLibrary.pm:1377 msgid "Show Functions" msgstr "顯示函式(Functions)" #: lib/Padre/Wx/ActionLibrary.pm:1591 msgid "Show Indentation Guide" msgstr "顯示縮排指南" #: lib/Padre/Wx/ActionLibrary.pm:1485 msgid "Show Line Numbers" msgstr "顯示列數" #: lib/Padre/Wx/ActionLibrary.pm:1571 msgid "Show Newlines" msgstr "顯示換行符號" #: lib/Padre/Wx/ActionLibrary.pm:1407 msgid "Show Outline" msgstr "顯示大綱" #: lib/Padre/Wx/ActionLibrary.pm:1367 msgid "Show Output" msgstr "顯示輸出" #: lib/Padre/Wx/ActionLibrary.pm:1417 msgid "Show Project Browser/Tree" msgstr "顯示目錄樹" #: lib/Padre/Wx/ActionLibrary.pm:1559 msgid "Show Right Margin" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2197 msgid "Show Stack Trace (&t)" msgstr "顯示 Stack Trace" #: lib/Padre/Wx/ActionLibrary.pm:1446 msgid "Show Status Bar" msgstr "顯示狀態列" #: lib/Padre/Wx/Dialog/RegexEditor.pm:246 msgid "Show Subs&titution" msgstr "顯示函式(Functions)" #: lib/Padre/Wx/ActionLibrary.pm:1427 msgid "Show Syntax Check" msgstr "顯示文法檢查" #: lib/Padre/Wx/ActionLibrary.pm:1397 msgid "Show To-do List" msgstr "顯示錯誤列表" #: lib/Padre/Wx/ActionLibrary.pm:1456 msgid "Show Toolbar" msgstr "顯示工具列" #: lib/Padre/Wx/ActionLibrary.pm:2228 msgid "Show Value Now (&x)" msgstr "顯示其值" #: lib/Padre/Wx/ActionLibrary.pm:1581 msgid "Show Whitespaces" msgstr "顯示空白字元" #: lib/Padre/Wx/ActionLibrary.pm:1560 msgid "Show a vertical line indicating the right margin" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1378 msgid "Show a window listing all the functions in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1408 msgid "" "Show a window listing all the parts of the current file (functions, pragmas, " "modules)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1398 msgid "Show a window listing all todo items in the current document" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:331 msgid "Show as" msgstr "以 hexa 方式檢視" #: lib/Padre/Wx/ActionLibrary.pm:1157 msgid "Show as Decimal" msgstr "以 hexa 方式檢視" #: lib/Padre/Wx/ActionLibrary.pm:1147 msgid "Show as Hexadecimal" msgstr "以 hexa 方式檢視" #: lib/Padre/Plugin/PopularityContest.pm:202 msgid "Show current report" msgstr "顯示目前報告" #: lib/Padre/Wx/ActionLibrary.pm:2770 msgid "Show information about Padre" msgstr "顯示縮排指南" #: lib/Padre/Wx/FBP/Preferences.pm:94 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "" #: lib/Padre/Config.pm:1081 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "" #: lib/Padre/Config.pm:722 msgid "Show or hide the status bar at the bottom of the window." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2533 lib/Padre/Wx/Dialog/Positions.pm:108 msgid "Show previous positions" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:102 msgid "Show right margin at column" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1158 msgid "" "Show the ASCII values of the selected text in decimal numbers in the output " "window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1148 msgid "" "Show the ASCII values of the selected text in hexadecimal notation in the " "output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2680 msgid "Show the POD (Perldoc) version of the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2646 msgid "Show the Padre help" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2328 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1388 msgid "Show the command line window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2667 msgid "Show the help article for the current context" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2296 msgid "Show the key bindings dialog to configure Padre shortcuts" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2534 msgid "Show the list of positions recently visited" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2229 msgid "Show the value of a variable now in a pop-up window." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1368 msgid "" "Show the window displaying the standard output and standard error of the " "running scripts" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1496 msgid "" "Show/hide a vertical line on the left hand side of the window to allow " "folding rows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1486 msgid "" "Show/hide the line numbers of all the documents on the left side of the " "window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1572 msgid "Show/hide the newlines with special character" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1447 msgid "Show/hide the status bar at the bottom of the screen" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1582 msgid "Show/hide the tabs and the spaces with special characters" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1457 msgid "Show/hide the toolbar at the top of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1592 msgid "" "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "" #: lib/Padre/Config.pm:440 msgid "Showing the splash image during start-up" msgstr "" #: lib/Padre/Plugin/Devel.pm:86 msgid "Simulate Background Crash" msgstr "模擬程式當掉掛點" #: lib/Padre/Plugin/Devel.pm:85 msgid "Simulate Background Exception" msgstr "" #: lib/Padre/Plugin/Devel.pm:84 msgid "Simulate Crash" msgstr "模擬程式當掉掛點" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Single-line (&s)" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:22 msgid "Size" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:64 msgid "Skip question without giving feedback" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:271 msgid "Skip using MANIFEST.SKIP" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:267 msgid "Skip version control system files" msgstr "" #: lib/Padre/Document.pm:1368 lib/Padre/Document.pm:1369 msgid "Skipped for large files" msgstr "跳過大檔案" #: lib/Padre/MimeTypes.pm:461 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "" #: lib/Padre/Wx/Dialog/Snippets.pm:23 lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "小片段:" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "小片段" #: lib/Padre/Wx/ActionLibrary.pm:907 msgid "Snippets..." msgstr "小片段" #: lib/Padre/Wx/FBP/Insert.pm:50 msgid "Snippit:" msgstr "小片段:" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Space" msgstr "取代" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Space and tab" msgstr "空白轉為跳格(Tabs)" #: lib/Padre/Wx/Main.pm:6043 msgid "Space to Tab" msgstr "空白轉為跳格(Tabs)" #: lib/Padre/Wx/ActionLibrary.pm:1042 msgid "Spaces to Tabs..." msgstr "空白轉為跳格(Tabs)..." #: lib/Padre/Locale.pm:248 msgid "Spanish" msgstr "西班牙文" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "西班牙文 (阿根廷)" #: lib/Padre/Wx/ActionLibrary.pm:894 msgid "Special Value..." msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:47 msgid "Special Value:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2107 msgid "Start running and/or continue running till next breakpoint or watch" msgstr "" #: lib/Padre/Plugin/Devel.pm:79 msgid "Start/Stop sub trace" msgstr "" #: lib/Padre/Wx/Main.pm:6015 msgid "Stats" msgstr "狀態" #: lib/Padre/Wx/FBP/Sync.pm:49 lib/Padre/Wx/Dialog/PluginManager.pm:68 #: lib/Padre/Wx/Dialog/Advanced.pm:111 lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 msgid "Status" msgstr "狀態" #: lib/Padre/Wx/ActionLibrary.pm:2055 msgid "Step In (&s)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2090 msgid "Step Out (&r)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2072 msgid "Step Over (&n)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2027 msgid "Stop Execution" msgstr "終止執行" #: lib/Padre/Wx/ActionLibrary.pm:2028 msgid "Stop a running task." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:111 msgid "Stops processing of other action queue items for 10 seconds" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:120 msgid "Stops processing of other action queue items for 30 seconds" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "警告" #: lib/Padre/Plugin/Devel.pm:260 msgid "Sub-tracing started" msgstr "" #: lib/Padre/Plugin/Devel.pm:242 msgid "Sub-tracing stopped" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "轉換文件類型成 %s" #: lib/Padre/Wx/ActionLibrary.pm:1472 msgid "Switch document type" msgstr "轉換文件類型成 %s" #: lib/Padre/Wx/ActionLibrary.pm:1682 msgid "Switch highlighting colours" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2464 msgid "" "Switch to edit the file that was previously edited (can switch back and " "forth)" msgstr "" #: lib/Padre/Wx/Syntax.pm:301 msgid "Syntax Check" msgstr "文法(語意)檢查" #: lib/Padre/Wx/FBP/Preferences.pm:778 msgid "Syntax Highlighter" msgstr "使用 PPI 文法醒目功能" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "系統預設" #: lib/Padre/Wx/About.pm:73 lib/Padre/Wx/About.pm:316 msgid "System Info" msgstr "系統預設" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Tab" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:598 msgid "Tab display size (in spaces)" msgstr "跳格(TAB)顯示大小 (以空白表示):" #: lib/Padre/Wx/Main.pm:6044 msgid "Tab to Space" msgstr "跳格(Tabs)轉為空格" #: lib/Padre/Wx/Menu/Edit.pm:245 msgid "Tabs and Spaces" msgstr "跳格(Tabs)和空白" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "Tabs to Spaces..." msgstr "跳格(Tabs)轉為空白" #: lib/Padre/MimeTypes.pm:406 msgid "Text" msgstr "下一個(&N)" #: lib/Padre/Wx/Main.pm:4042 msgid "Text Files" msgstr "純文字檔案" #: lib/Padre/Wx/About.pm:102 lib/Padre/Wx/About.pm:134 msgid "The Padre Development Team" msgstr "Padre 開發組" #: lib/Padre/Wx/About.pm:226 msgid "The Padre Translation Team" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:110 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "書籤 '%s' 已不復存在" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', " "or 'Run till Breakpoint' in the Debug menu." msgstr "" #: lib/Padre/Wx/Directory.pm:518 msgid "" "The directory browser got an undef object and may stop working now. Please " "save your work and restart Padre." msgstr "" #: lib/Padre/Document.pm:253 #, perl-format msgid "" "The file %s you are trying to open is %s bytes large. It is over the " "arbitrary file size limit of Padre which is currently %s. Opening this file " "may reduce performance. Do you still want to open the file?" msgstr "" #: lib/Padre/Config.pm:389 msgid "The same as Perl itself" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:388 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "" #: lib/Padre/Wx/Main.pm:5220 msgid "There are no differences\n" msgstr "沒有差異\n" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "There are no positions saved yet" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2370 msgid "This function reloads the My plug-in without restarting Padre" msgstr "" #: lib/Padre/Config.pm:1272 msgid "This requires an installed Wx::Scintilla and a Padre restart" msgstr "" #: lib/Padre/Wx/Main.pm:5050 msgid "This type of file (URL) is missing delete support." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:824 lib/Padre/Wx/FBP/Preferences.pm:848 msgid "Timeout (in seconds)" msgstr "" #: lib/Padre/Wx/TodoList.pm:209 msgid "To-do" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:17 msgid "Today" msgstr "" #: lib/Padre/Wx/About.pm:68 msgid "Translation" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:129 lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "" #: lib/Padre/Locale.pm:420 msgid "Turkish" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1428 msgid "" "Turn on syntax checking of the current document and show output in a window" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "類型" #: lib/Padre/Wx/Dialog/HelpSearch.pm:146 msgid "Type a help &keyword to read:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2244 msgid "Type in any expression and evaluate it in the debugged process" msgstr "" #: lib/Padre/MimeTypes.pm:701 msgid "UNKNOWN" msgstr "" #: lib/Padre/Config/Style.pm:49 msgid "Ultraedit" msgstr "Ultraedit" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "跳格(Tabs)轉為空格" #: lib/Padre/Wx/ActionLibrary.pm:585 msgid "Undo last change in current file" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1515 msgid "Unfold all" msgstr "全部取消摺疊" #: lib/Padre/Wx/ActionLibrary.pm:1516 lib/Padre/Wx/ActionLibrary.pm:1526 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Unicode character 'name'" msgstr "" #: lib/Padre/Locale.pm:142 lib/Padre/Wx/Main.pm:3838 msgid "Unknown" msgstr "未知的" #: lib/Padre/PluginManager.pm:920 lib/Padre/Document/Perl.pm:623 #: lib/Padre/Document/Perl.pm:955 lib/Padre/Document/Perl.pm:1004 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "未知的錯誤" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "未知的錯誤" #: lib/Padre/Document.pm:967 #, perl-format msgid "Unsaved %d" msgstr "未儲存檔案 %d" #: lib/Padre/Wx/Main.pm:4804 msgid "Unsaved File" msgstr "未儲存檔案" #: lib/Padre/Util/FileBrowser.pm:63 lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "未命名" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Up" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:207 msgid "Upload" msgstr "已載入" #: lib/Padre/Wx/ActionLibrary.pm:1074 msgid "Upper All" msgstr "全轉成大寫" #: lib/Padre/Wx/Menu/Edit.pm:275 msgid "Upper/Lower Case" msgstr "大小寫轉換" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Uppercase next character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "Uppercase till \\E" msgstr "全轉成大寫" #: lib/Padre/Wx/About.pm:336 msgid "Uptime" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:866 msgid "Use FTP passive mode" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1138 msgid "Use Perl source as filter" msgstr "Perl ctags 檔案:" #: lib/Padre/Wx/FBP/Preferences.pm:590 msgid "Use Tabs" msgstr "使用跳格(Tabs)" #: lib/Padre/Wx/FBP/Preferences.pm:505 msgid "Use X11 middle button paste style" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1329 msgid "Use a filter to select one or more files" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:688 msgid "Use external window for execution" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:372 msgid "Use panel order for Ctrl-Tab (not usage history)" msgstr "" #: lib/Padre/Wx/Dialog/FindFast.pm:193 msgid "Use rege&x" msgstr "使用正歸表示式(&x)" #: lib/Padre/Wx/FBP/Preferences.pm:527 msgid "Use splash screen" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:807 msgid "User" msgstr "插入" #: lib/Padre/Wx/FBP/Sync.pm:72 lib/Padre/Wx/FBP/Sync.pm:115 msgid "Username" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2432 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2442 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "" #: lib/Padre/Wx/Debug.pm:139 lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "值" #: lib/Padre/Wx/Debug.pm:138 msgid "Variable" msgstr "變數" #: lib/Padre/Wx/ActionLibrary.pm:1914 msgid "Variable Name" msgstr "變數名稱" #: lib/Padre/Document/Perl.pm:914 msgid "Variable case change" msgstr "變數名稱" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 msgid "Version" msgstr "版本" #: lib/Padre/Wx/ActionLibrary.pm:1770 msgid "Vertically Align Selected" msgstr "垂直校準功能被選取" #: lib/Padre/Wx/Syntax.pm:61 msgid "Very Fatal Error" msgstr "內部錯誤" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 msgid "View" msgstr "檢視(&V)" #: lib/Padre/Wx/ActionLibrary.pm:2748 msgid "View All &Open Bugs" msgstr "檢視所有已開啟的 Bugs(&O)" #: lib/Padre/Wx/Menu/View.pm:82 msgid "View Document As..." msgstr "將文件當成什麼東西來檢視..." #: lib/Padre/Wx/ActionLibrary.pm:2749 msgid "View all known and currently unsolved bugs in Padre" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Visible characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2728 msgid "Visit the PerlMonks" msgstr "參觀 PerlMonks" #: lib/Padre/Document.pm:768 #, perl-format msgid "" "Visual filename %s does not match the internal filename %s, do you want to " "abort saving?" msgstr "" #: lib/Padre/Document.pm:259 lib/Padre/Wx/Syntax.pm:31 #: lib/Padre/Wx/Main.pm:2903 lib/Padre/Wx/Main.pm:3516 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "警告" #: lib/Padre/Wx/ActionLibrary.pm:2383 msgid "" "Warning! This will delete all the changes you made to 'My plug-in' and " "replace it with the default code that comes with your installation of Padre" msgstr "" #: lib/Padre/PluginManager.pm:421 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "我們找到了一些新的外掛程式(plug-ins).\n" "要設定並啟用它們的話請到\n" "Plug-ins -> Plug-in Manager\n" "\n" "新的外掛列表:\n" "\n" #: lib/Padre/Wx/Main.pm:4044 msgid "Web Files" msgstr "網頁檔案" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2198 msgid "" "When in a subroutine call show all the calls since the main of the program" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1536 msgid "When typing in functions allow showing short examples of the function" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:35 msgid "Where did you hear about Padre?" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2714 msgid "Win32 Questions (English)" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:397 msgid "Window" msgstr "視窗(&W)" #: lib/Padre/Wx/Dialog/WindowList.pm:35 msgid "Window list" msgstr "視窗標題:" #: lib/Padre/Wx/Dialog/WizardSelector.pm:47 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:18 msgid "Wizard Selector" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:212 msgid "Wizard Selector..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:552 msgid "Word count and other statistics of the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1601 msgid "Word-Wrap" msgstr "單字跳列(Warp)" #: lib/Padre/Wx/Dialog/DocStats.pm:102 msgid "Words" msgstr "單字: %s" #: lib/Padre/Wx/ActionLibrary.pm:1602 msgid "Wrap long lines" msgstr "" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "" #: lib/Padre/Wx/Output.pm:141 lib/Padre/Wx/Main.pm:2759 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get " "at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" #: lib/Padre/Wx/FBP/FindFast.pm:34 msgid "X" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:18 msgid "Year" msgstr "搜尋" #: lib/Padre/Wx/Editor.pm:1684 msgid "You must select a range of lines" msgstr "你得先選個幾行或是區段才行" #: lib/Padre/Wx/Main.pm:3515 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "" #: lib/Padre/CPAN.pm:185 msgid "cpanm is unexpectedly not installed" msgstr "pip 無預期地沒有被安裝" #: lib/Padre/PluginHandle.pm:93 lib/Padre/Wx/Dialog/PluginManager.pm:530 msgid "disabled" msgstr "已關閉" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "新的..." #: lib/Padre/PluginHandle.pm:94 lib/Padre/Wx/Dialog/PluginManager.pm:518 msgid "enabled" msgstr "已啟用" #: lib/Padre/PluginHandle.pm:89 lib/Padre/Wx/Dialog/PluginManager.pm:491 msgid "error" msgstr "錯誤" #: lib/Padre/Wx/Dialog/WindowList.pm:350 lib/Padre/Wx/Dialog/WindowList.pm:354 msgid "fresh" msgstr "" #: lib/Padre/PluginHandle.pm:92 lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "incompatible" msgstr "不相容" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "已載入" #: lib/Padre/Wx/Dialog/ModuleStart.pm:148 msgid "missing field" msgstr "不見了欄位" #: lib/Padre/Document.pm:947 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "無" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 lib/Padre/Wx/Dialog/ModuleStart.pm:46 msgid "restrictive" msgstr "" #: lib/Padre/Wx/About.pm:106 msgid "splash image is based on work by" msgstr "" #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "已卸載" #: lib/Padre/Wx/Dialog/ModuleStart.pm:27 lib/Padre/Wx/Dialog/ModuleStart.pm:47 msgid "unrestricted" msgstr "未命名" #: lib/Padre/Wx/About.pm:341 msgid "unsupported" msgstr "" #: lib/Padre/Plugin/Devel.pm:96 msgid "wxPerl Live Support" msgstr "" #: lib/Padre/Plugin/Devel.pm:90 #, perl-format msgid "wxWidgets %s Reference" msgstr "wxWidgets %s 參考文件" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "無法開啟 %s 因為它超過了 Padre 目前的檔案大小限制 %s" #~ msgid "Norwegian (Norway)" #~ msgstr "挪威語 (挪威)" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s worker 執行緒正在運行中.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "目前沒有背景作業程序被執行.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "以下的作業階段目前正在背景執行:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "另外順便跟你說一下, 有 %s 個作業正在等待執行.\n" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "模擬背景作業當掉掛點" #~ msgid "Info" #~ msgstr "資訊" #~ msgid "Insert From File..." #~ msgstr "插入其他檔案的內容..." #~ msgid "Replacement" #~ msgstr "取代" #~ msgid "Quick Find" #~ msgstr "快速尋找" #~ msgid "Automatic bracket completion" #~ msgstr "自動補上括弧" #~ msgid "???" #~ msgstr "???" #~ msgid "Save &As" #~ msgstr "另存新檔(&A)" #~ msgid "Choose a directory" #~ msgstr "選取一個目錄" #~ msgid "Line No" #~ msgstr "列數" #~ msgid "Lines: %d" #~ msgstr "列: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "無空白字元: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "帶空白字元: %d" #~ msgid "Newline type: %s" #~ msgstr "換行字元型態: %s" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "磁碟上的檔案在上次儲存後已被更動。 你想要重新載入它嗎?" #~ msgid "Term:" #~ msgstr "終端機:" #~ msgid "Dir:" #~ msgstr "目錄:" #~ msgid "Pick &directory" #~ msgstr "選擇目錄(&d)" #~ msgid "In Files/Types:" #~ msgstr "在檔案/類型中:" #~ msgid "Case &Insensitive" #~ msgstr "不分大小寫(&I)" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "忽略隱藏的子目錄(&g)" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Error List" #~ msgstr "錯誤列表" #~ msgid "No diagnostics available for this error!" #~ msgstr "無法診斷這個錯誤!" #~ msgid "Diagnostics" #~ msgstr "診斷" #~ msgid "Copy here" #~ msgstr "複製這裡" #~ msgid "Show hidden files" #~ msgstr "顯示隱藏檔案" #~ msgid "Skip hidden files" #~ msgstr "略過隱藏檔案" #~ msgid "Change project directory" #~ msgstr "目前專案目錄" #~ msgid "Navigate" #~ msgstr "導覽" #~ msgid "&Find Next" #~ msgstr "尋找下一個(&F)" #~ msgid "Find &Text:" #~ msgstr "尋找文字(&T)" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "%s 似乎已創造。你想要現在打開它嗎?" #~ msgid "Skip VCS files" #~ msgstr "略過 VCS 檔案" #~ msgid "GoTo Bookmark" #~ msgstr "前往書籤" #~ msgid "Enable bookmarks" #~ msgstr "啟用書籤" #~ msgid "Enable session manager" #~ msgstr "啟用 Session 管理員" #~ msgid "Guess" #~ msgstr "猜測" #~ msgid "Choose the default projects directory" #~ msgstr "選擇預設專案目錄" #~ msgid "Settings Demo" #~ msgstr "設定範例" #~ msgid "Enable?" #~ msgstr "啟用?" #~ msgid "Crashed" #~ msgstr "當掉掛了" #~ msgid "Unsaved" #~ msgstr "未儲存檔案" #~ msgid "N/A" #~ msgstr "無" #~ msgid "Document name:" #~ msgstr "文件名稱:" #~ msgid "Document location:" #~ msgstr "文件位置:" #~ msgid "Run Parameters" #~ msgstr "執行時的參數" #~ msgid "new" #~ msgstr "新的" #~ msgid "nothing" #~ msgstr "沒有" #~ msgid "last" #~ msgstr "最後" #~ msgid "no" #~ msgstr "不要啦" #~ msgid "same_level" #~ msgstr "同一階層" #~ msgid "deep" #~ msgstr "深" #~ msgid "alphabetical" #~ msgstr "字母順序" #~ msgid "alphabetical_private_last" #~ msgstr "alphabetical_private_last" #~ msgid "Convert EOL" #~ msgstr "轉換 EOL" #~ msgid "Style" #~ msgstr "風格" #~ msgid "Close..." #~ msgstr "關閉..." #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "外掛:%s - 載入模組失敗: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "外掛:%s - 與 Padre::Plugin API 版本不合. 必須是 Padre::Plugin 的子類別" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "外掛:%s - 無法例舉外掛物件: 建構子沒有 return 一個 Padre::Plugin 物件" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "外掛:%s - 沒有選單" #~ msgid "Workspace View" #~ msgstr "工作區檢視" #~ msgid "Save File" #~ msgstr "儲存檔案" #~ msgid "Undo" #~ msgstr "復原" #~ msgid "Redo" #~ msgstr "取消復原" #~ msgid "L:" #~ msgstr "L:" #~ msgid "Ch:" #~ msgstr "Ch:" #~ msgid "Select all\tCtrl-A" #~ msgstr "全選\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "複製(&C)\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "剪下(&t)\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "貼上(&P)\tCtrl-V" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "取消所選擇的列(可多列)的註解(&U)\tCtrl-M" #~ msgid "&Split window" #~ msgstr "切割視窗(&S)" #~ msgid "Sub List" #~ msgstr "子函式列表" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "設定書籤\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "前往書籤\tCtrl-Shift-B" #~ msgid "Stop\tF6" #~ msgstr "停止\tF6" #~ msgid "&Find\tCtrl-F" #~ msgstr "尋找(&F)\tCtrl-F" #~ msgid "Replace\tCtrl-R" #~ msgstr "取代\tCtrl-R" #~ msgid "Find Next\tF4" #~ msgstr "尋找下一個\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "尋找前一個\tShift-F4" #~ msgid "All available plugins on CPAN" #~ msgstr "所有 CPAN 上的外掛" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "從本地目錄測試一個外掛" #~ msgid "&Goto\tCtrl-G" #~ msgstr "前往(&G)\tCtrl-G" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "小片段\tCtrl-Shift-A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "全轉為大寫\tCtrl-Shift-U" #~ msgid "Diff" #~ msgstr "Diff (比對差別)" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "下一個檔案\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "前一個檔案\tCtrl-Shift-TAB" #~ msgid "Disable Experimental Mode" #~ msgstr "關閉進階模式" #~ msgid "Refresh Counter: " #~ msgstr "刷新計數器: " #~ msgid "&New\tCtrl-N" #~ msgstr "新檔案(&N)\tCtrl-N" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "開啟所選擇的\tCtrl-Shift-O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "開啟 Session...\tCtrl-Alt-O" #~ msgid "&Close\tCtrl-W" #~ msgstr "關閉(&C)\tCtrl-W" #~ msgid "Close All but Current" #~ msgstr "關閉除了目前檔案外的全部" #~ msgid "&Save\tCtrl-S" #~ msgstr "存檔(&S)\tCtrl-S" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "儲存 Session...\tCtrl-Alt-S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "離開(&Q)\tCtrl-Q" #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "版權所有 2008-2009 The Padre development team as listed in Padre.pm" #~ msgid "Text to find:" #~ msgstr "尋找字串:" #~ msgid "&Use Regex" #~ msgstr "使用正規表示式(&U)" #~ msgid "%s occurences were replaced" #~ msgstr "%s 事件已被取代" #~ msgid "Enable logging" #~ msgstr "啟動記錄功能" #~ msgid "Disable logging" #~ msgstr "關閉記錄功能" #~ msgid "Enable trace when logging" #~ msgstr "在記錄功能作用時啟用追蹤功能" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "Install Module..." #~ msgstr "安裝模組..." #~ msgid "Background Tasks are idle" #~ msgstr "背景作業閒置中" #~ msgid "%s apparantly created." #~ msgstr "%s 似乎已創造。" #~ msgid "EOL to Mac" #~ msgstr "EOL to Mac" #~ msgid "Recent Projects" #~ msgstr "最近的專案" #~ msgid "Subs\tAlt-S" #~ msgstr "Subs\tAlt-S" #~ msgid "Not implemented yet" #~ msgstr "尚未被實做" #~ msgid "Not Yes" #~ msgstr "不是 Yes" #~ msgid "Select Project Name or type in new one" #~ msgstr "選擇專案名稱或是輸入新的" #~ msgid "No output" #~ msgstr "沒有輸出" #~ msgid "" #~ "Perl Application Development and Refactoring Environment\n" #~ "\n" #~ msgstr "" #~ "Perl 應用程式開發及重構環境\n" #~ "\n" #~ msgid "Based on Wx.pm %s and %s\n" #~ msgstr "基於 Wx.pm %s 及 %s\n" #~ msgid "Copyright 2008 Gabor Szabo" #~ msgstr "版權所有·2008·Gabor·Szabo" #~ msgid "(running from SVN checkout)" #~ msgstr "(從 SVN checkout 執行)" #~ msgid "Only .pl files can be executed" #~ msgstr "只有 .pl 檔案才能被執行" #~ msgid "Need to have something selected" #~ msgstr "得選些什麼才行" #~ msgid "Syntax" #~ msgstr "文法" Padre-1.00/share/locale/ja.po0000644000175000017500000055402411650042140014437 0ustar petepete# Japanese translations for Padre. # Copyright (C) 2009 The Padre development team as list in Padre.pm # This file is distributed under the same license as the Padre package. # Kenichi Ishigaki , 2009. # msgid "" msgstr "" "Project-Id-Version: Padre-JA-20090504\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-10-20 04:10-0700\n" "PO-Revision-Date: 2011-10-21 00:57+0900\n" "Last-Translator: Kenichi Ishigaki \n" "Language-Team: Japanese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:478 msgid "\".\" also matches newline" msgstr "\".\"は改行にもマッチするようになります" #: lib/Padre/Config.pm:469 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "Padre起動時に開くセッション(ファイルの組み合わせ)をたずねるようになります" #: lib/Padre/Wx/FBP/About.pm:127 msgid "" "\"Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published by the \n" "Free Software Foundation; version 2 dated June, 1991.\"" msgstr "" #: lib/Padre/Config.pm:471 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:482 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\"と\"$\"は文字列の各行頭・行末にマッチするようになります" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "" #: lib/Padre/Wx/Diff.pm:110 #, perl-format msgid "%d line added" msgstr "%d 行追加しました" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d line changed" msgstr "%d 行変更しました" #: lib/Padre/Wx/Diff.pm:120 #, perl-format msgid "%d line deleted" msgstr "%d 行削除しました" #: lib/Padre/Wx/Diff.pm:109 #, perl-format msgid "%d lines added" msgstr "%d 行追加しました" #: lib/Padre/Wx/Diff.pm:98 #, perl-format msgid "%d lines changed" msgstr "%d 行変更しました" #: lib/Padre/Wx/Diff.pm:119 #, perl-format msgid "%d lines deleted" msgstr "%d 行削除しました" #: lib/Padre/Wx/ReplaceInFiles.pm:145 #, perl-format msgid "%s (%s changed)" msgstr "%s (%s件置換)" #: lib/Padre/Wx/FindInFiles.pm:268 #, perl-format msgid "%s (%s results)" msgstr "%s (%s件)" #: lib/Padre/Wx/ReplaceInFiles.pm:153 #, perl-format msgid "%s (crashed)" msgstr "%s (クラッシュ)" #: lib/Padre/PluginManager.pm:614 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - %sのインスタンス作成中にクラッシュしました" #: lib/Padre/PluginManager.pm:563 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - %sのロード中にクラッシュしました" #: lib/Padre/PluginManager.pm:624 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - インスタンスを作成できませんでした" #: lib/Padre/PluginManager.pm:586 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - Padre::Pluginのサブクラスではありません" #: lib/Padre/PluginManager.pm:599 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - Padreの%sと互換性がありません - %s" #: lib/Padre/PluginManager.pm:574 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - プラグインが空かバージョンがありません" #: lib/Padre/Wx/TodoList.pm:267 #, perl-format msgid "%s in TODO regex, check your config." msgstr "TODOの正規表現に%sが含まれています。設定を確認してください" #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s 行 %s: %s" #: lib/Padre/Wx/VCS.pm:193 #, perl-format msgid "%s version control is not currently available" msgstr "バージョン管理システム%sは現在利用できません" #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s 行: %s ファイル: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2714 #: lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "Padreについて(&A)" #: lib/Padre/Wx/FBP/Preferences.pm:1057 msgid "&Advanced..." msgstr "高度な設定(&A)..." #: lib/Padre/Wx/ActionLibrary.pm:849 msgid "&Autocomplete" msgstr "オートコンプリート(&A)" #: lib/Padre/Wx/ActionLibrary.pm:860 msgid "&Brace Matching" msgstr "対応するかっこに移動する(&B)" #: lib/Padre/Wx/FBP/FindInFiles.pm:80 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:105 msgid "&Browse" msgstr "表示(&B)" #: lib/Padre/Wx/FBP/Preferences.pm:1073 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 #: lib/Padre/Wx/Dialog/OpenResource.pm:181 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "キャンセル(&C)" #: lib/Padre/Wx/FBP/FindInFiles.pm:127 #: lib/Padre/Wx/FBP/Find.pm:87 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:152 msgid "&Case Sensitive" msgstr "大文字と小文字を区別する(&C)" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "変数のスタイルを変更する(&C)" #: lib/Padre/Wx/ActionLibrary.pm:1701 msgid "&Check for Common (Beginner) Errors" msgstr "よくある(初心者的な)エラーを確認する(&C)" #: lib/Padre/Wx/ActionLibrary.pm:529 msgid "&Clean Recent Files List" msgstr "最近使ったファイルの一覧を消去する(&C)" #: lib/Padre/Wx/ActionLibrary.pm:645 msgid "&Clear Selection Marks" msgstr "選択範囲のマークをクリアする(&C)" #: lib/Padre/Wx/ActionLibrary.pm:271 #: lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:128 #: lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:276 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 #: lib/Padre/Wx/Dialog/Replace.pm:190 msgid "&Close" msgstr "閉じる(&C)" #: lib/Padre/Wx/ActionLibrary.pm:945 msgid "&Comment Out" msgstr "コメントアウト(&C)" #: lib/Padre/Wx/ActionLibrary.pm:2600 msgid "&Context Help" msgstr "コンテキストヘルプ(&C)" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "&Context Menu" msgstr "コンテキストメニュー(&C)" #: lib/Padre/Wx/ActionLibrary.pm:675 msgid "&Copy" msgstr "コピー(&C)" #: lib/Padre/Wx/Menu/Debug.pm:98 msgid "&Debug" msgstr "デバッグ(&D)" #: lib/Padre/Wx/ActionLibrary.pm:1634 msgid "&Decrease Font Size" msgstr "フォントを小さくする(&D)" #: lib/Padre/Wx/ActionLibrary.pm:366 #: lib/Padre/Wx/FBP/Preferences.pm:744 #: lib/Padre/Wx/FBP/Bookmarks.pm:94 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "削除(&D)" #: lib/Padre/Wx/ActionLibrary.pm:1062 msgid "&Delete Trailing Spaces" msgstr "行末のスペースを削除する(&D)" #: lib/Padre/Wx/ActionLibrary.pm:1713 msgid "&Deparse selection" msgstr "選択範囲を逆構文解析する(&D)" #: lib/Padre/Wx/Dialog/PluginManager.pm:516 msgid "&Disable" msgstr "無効(&D)" #: lib/Padre/Wx/ActionLibrary.pm:541 msgid "&Document Statistics" msgstr "ドキュメントの統計情報(&D)" #: lib/Padre/Wx/Menu/Edit.pm:317 msgid "&Edit" msgstr "編集(&E)" #: lib/Padre/Wx/ActionLibrary.pm:2337 msgid "&Edit My Plug-in" msgstr "Myプラグインを編集(&E)" #: lib/Padre/Wx/ActionLibrary.pm:2299 msgid "&Edit with Regex Editor..." msgstr "正規表現エディタで編集(&E)" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:528 msgid "&Enable" msgstr "有効(&E)" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "行番号(&E)(1-%s):" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "行番号を入力(&E) (1-%s):" #: lib/Padre/Wx/Menu/File.pm:281 msgid "&File" msgstr "ファイル(&F)" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "&File..." msgstr "ファイル(&F)..." #: lib/Padre/Wx/FBP/Preferences.pm:628 #: lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "フィルタ(&F):" #: lib/Padre/Wx/FBP/FindInFiles.pm:143 #: lib/Padre/Wx/Dialog/Replace.pm:149 msgid "&Find" msgstr "検索(&F)" #: lib/Padre/Wx/ActionLibrary.pm:1225 msgid "&Find Previous" msgstr "前を検索する(&F)" #: lib/Padre/Wx/ActionLibrary.pm:1156 msgid "&Find..." msgstr "検索(&F)..." #: lib/Padre/Wx/ActionLibrary.pm:1514 msgid "&Fold All" msgstr "すべて折りたたむ(&F)" #: lib/Padre/Wx/ActionLibrary.pm:1534 msgid "&Fold/Unfold Current" msgstr "現在位置を折りたたむ/展開する(&F)" #: lib/Padre/Wx/ActionLibrary.pm:1288 msgid "&Go To..." msgstr "移動(&G)..." #: lib/Padre/Wx/Outline.pm:124 msgid "&Go to Element" msgstr "要素に移動する(&G)" #: lib/Padre/Wx/ActionLibrary.pm:2579 #: lib/Padre/Wx/Menu/Help.pm:115 msgid "&Help" msgstr "ヘルプ(&H)" #: lib/Padre/Wx/ActionLibrary.pm:1624 msgid "&Increase Font Size" msgstr "フォントを大きくする(&I)" #: lib/Padre/Wx/ActionLibrary.pm:2403 msgid "&Install CPAN Module" msgstr "CPANモジュールのインストール(&I)" #: lib/Padre/Wx/ActionLibrary.pm:884 msgid "&Join Lines" msgstr "行を結合する(&J)" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "ライブサポート(&L)" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "すべてのPadreモジュールをロードする(&L)" #: lib/Padre/Wx/ActionLibrary.pm:1085 msgid "&Lower All" msgstr "すべて小文字に(&L)" #: lib/Padre/Wx/Dialog/HelpSearch.pm:154 msgid "&Matching Help Topics:" msgstr "マッチしたヘルプトピック(&M):" #: lib/Padre/Wx/Dialog/OpenResource.pm:225 msgid "&Matching Items:" msgstr "マッチした項目(&M):" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:179 msgid "&Matching Menu Items:" msgstr "マッチしたメニュー項目(&M):" #: lib/Padre/Wx/Menu/Tools.pm:59 msgid "&Module Tools" msgstr "モジュールツール(&M)" #: lib/Padre/Wx/ActionLibrary.pm:1921 msgid "&Move POD to __END__" msgstr "PODを__END__以下に移動(&M)" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "新規作成(&N)" #: lib/Padre/Wx/ActionLibrary.pm:1774 msgid "&Newline Same Column" msgstr "同じインデントで新しい行を追加(&N)" #: lib/Padre/Wx/Dialog/FindFast.pm:173 msgid "&Next" msgstr "次(&N)" #: lib/Padre/Wx/ActionLibrary.pm:779 msgid "&Next Difference" msgstr "次の違い(&N)" #: lib/Padre/Wx/ActionLibrary.pm:2448 msgid "&Next File" msgstr "次のファイル(&N)" #: lib/Padre/Wx/ActionLibrary.pm:767 msgid "&Next Problem" msgstr "次の問題(&N)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:147 #: lib/Padre/Wx/Dialog/OpenResource.pm:175 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "開く(&O)" #: lib/Padre/Wx/ActionLibrary.pm:520 msgid "&Open All Recent Files" msgstr "最近使ったすべてのファイルを開く(&O)" #: lib/Padre/Wx/ActionLibrary.pm:192 msgid "&Open..." msgstr "開く(&O)..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:229 msgid "&Original text:" msgstr "元のテキスト(&O):" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "出力テキスト(&O):" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "&POSIX文字クラス" #: lib/Padre/Wx/ActionLibrary.pm:2624 msgid "&Padre Support (English)" msgstr "&Padreサポート(英語)" #: lib/Padre/Wx/ActionLibrary.pm:752 msgid "&Paste" msgstr "貼り付け(&P)" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "&Patch..." msgstr "パッチ(&P)..." #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "Perlフィルタのソース(&P):" #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "&Plug-in Manager" msgstr "プラグインマネージャー(&P)" #: lib/Padre/Wx/ActionLibrary.pm:2267 #: lib/Padre/Wx/Dialog/PluginManager.pm:131 msgid "&Preferences" msgstr "設定(&P)" #: lib/Padre/Wx/ActionLibrary.pm:2459 msgid "&Previous File" msgstr "前のファイル(&P)" #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "&Print..." msgstr "印刷する(&P)..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "量指定子(&Q)" #: lib/Padre/Wx/ActionLibrary.pm:792 msgid "&Quick Fix" msgstr "クイックフィックス(&Q)" #: lib/Padre/Wx/ActionLibrary.pm:1337 msgid "&Quick Menu Access..." msgstr "クイックメニューアクセス(&Q)..." #: lib/Padre/Wx/ActionLibrary.pm:554 msgid "&Quit" msgstr "終了(&Q)" #: lib/Padre/Wx/Menu/File.pm:243 msgid "&Recent Files" msgstr "最近使ったファイル(&R)" #: lib/Padre/Wx/ActionLibrary.pm:594 msgid "&Redo" msgstr "やり直す(&R)" #: lib/Padre/Wx/ActionLibrary.pm:2289 msgid "&Regex Editor" msgstr "正規表現エディタ(&R)" #: lib/Padre/Wx/FBP/FindInFiles.pm:119 #: lib/Padre/Wx/FBP/Find.pm:71 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:144 msgid "&Regular Expression" msgstr "正規表現(&R)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:169 msgid "&Regular expression:" msgstr "正規表現(&R):" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "&Reload My Plug-in" msgstr "Myプラグインをリロードする(&R)" #: lib/Padre/Wx/Main.pm:4562 #: lib/Padre/Wx/Main.pm:6433 msgid "&Reload selected" msgstr "選択したファイルをリロードする(&RO" #: lib/Padre/Wx/ActionLibrary.pm:1802 msgid "&Rename Variable..." msgstr "変数をリネームする(&R)..." #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:168 #: lib/Padre/Wx/Dialog/Replace.pm:169 msgid "&Replace" msgstr "置換(&R)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:250 msgid "&Replace text with:" msgstr "テキストを置換(&R):" #: lib/Padre/Wx/ActionLibrary.pm:1243 msgid "&Replace..." msgstr "置換(&R)..." #: lib/Padre/Wx/FBP/Preferences.pm:763 #: lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "リセット(&R)" #: lib/Padre/Wx/ActionLibrary.pm:1644 msgid "&Reset Font Size" msgstr "フォントの大きさをリセットする(&R)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:260 msgid "&Result from replace:" msgstr "置換結果(&R):" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "実行(&R)" #: lib/Padre/Wx/ActionLibrary.pm:1937 msgid "&Run Script" msgstr "スクリプトを実行する(&R)" #: lib/Padre/Wx/ActionLibrary.pm:410 #: lib/Padre/Wx/FBP/Preferences.pm:1048 msgid "&Save" msgstr "保存する(&S)" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "セッションを自動保存する(&S)" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "&Scintillaリファレンス" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "検索(&S)" #: lib/Padre/Wx/ActionLibrary.pm:2588 msgid "&Search Help" msgstr "ヘルプ検索(&S)" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "選択する(&S)" #: lib/Padre/Wx/Dialog/OpenResource.pm:203 msgid "&Select an item to open (? = any character, * = any string):" msgstr "開くアイテムを選択(&S) (? = 任意の文字, * = 任意の文字列):" #: lib/Padre/Wx/Main.pm:4561 #: lib/Padre/Wx/Main.pm:6432 msgid "&Select files to reload:" msgstr "リロードするファイルを選択(&S):" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "設定(&S)" #: lib/Padre/Wx/Dialog/PluginManager.pm:489 #: lib/Padre/Wx/Dialog/PluginManager.pm:501 msgid "&Show error message" msgstr "エラーメッセージを表示する(&S)" #: lib/Padre/Wx/ActionLibrary.pm:907 msgid "&Snippets..." msgstr "スニペット(&S)..." #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "サブルーチンのトレースを開始/終了する(&S)" #: lib/Padre/Wx/ActionLibrary.pm:2019 msgid "&Stop Execution" msgstr "実行を中断する(&S)" #: lib/Padre/Wx/ActionLibrary.pm:932 msgid "&Toggle Comment" msgstr "コメントをトグルする(&T)" #: lib/Padre/Wx/Menu/Tools.pm:191 msgid "&Tools" msgstr "ツール(&T)" #: lib/Padre/Wx/ActionLibrary.pm:2691 msgid "&Translate Padre..." msgstr "Padreの翻訳について(&T)..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:172 msgid "&Type a menu item name to access:" msgstr "アクセスするメニュー項目名を入力してください(&T):" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "&Uncomment" msgstr "コメントを外す(&U)" #: lib/Padre/Wx/ActionLibrary.pm:574 msgid "&Undo" msgstr "元に戻す(&U)" #: lib/Padre/Wx/Dialog/DocStats.pm:60 msgid "&Update" msgstr "更新(&U)" #: lib/Padre/Wx/ActionLibrary.pm:1074 msgid "&Upper All" msgstr "すべて大文字に(&U)" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "値(&V):" #: lib/Padre/Wx/Menu/View.pm:243 msgid "&View" msgstr "表示(&V)" #: lib/Padre/Wx/Menu/View.pm:95 msgid "&View Document As..." msgstr "ドキュメントの表示を変える(&V)..." #: lib/Padre/Wx/ActionLibrary.pm:2648 msgid "&Win32 Questions (English)" msgstr "&Win32の質問(英語)" #: lib/Padre/Wx/Menu/Window.pm:81 msgid "&Window" msgstr "ウィンドウ(&W)" #: lib/Padre/Wx/ActionLibrary.pm:1611 msgid "&Word-Wrap File" msgstr "ファイルのワードラップ(&W)" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "&wxWidgets %s リファレンス" #: lib/Padre/Wx/Debugger.pm:407 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "「%s」は変数名に見えません。コード中の変数を選択してから再実行してください" #: lib/Padre/Wx/ActionLibrary.pm:2394 msgid "(Re)load &Current Plug-in" msgstr "現在のプラグインを(リ)ロードする(&C)" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(Perl %s以降)" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "(未定義)" #: lib/Padre/PluginManager.pm:927 msgid "(core)" msgstr "(コア)" #: lib/Padre/Wx/Dialog/About.pm:189 msgid "(disabled)" msgstr "(無効)" #: lib/Padre/Wx/Dialog/About.pm:194 msgid "(unsupported)" msgstr "(未サポート)" #: lib/Padre/Wx/FBP/Preferences.pm:696 #: lib/Padre/Wx/FBP/Preferences.pm:710 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/VCS.pm:318 msgid ", " msgstr ", " #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "- 廃止!" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "7ビットUS-ASCII文字" #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "ダイアログ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 msgid "A comment" msgstr "コメント" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "グループ" #: lib/Padre/Config.pm:465 msgid "A new empty file" msgstr "新しい空のファイル" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Padre開発者が利用している外部ツール群\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "単語境界" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/FBP/About.pm:355 msgid "Aaron Trevena" msgstr "Aaron Trevena" #: lib/Padre/Wx/FBP/About.pm:28 #: lib/Padre/Plugin/PopularityContest.pm:207 msgid "About" msgstr "コンテストについて" #: lib/Padre/Wx/FBP/Patch.pm:46 msgid "Action" msgstr "アクション" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "アクション: %s" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Adam Kennedy: Chief Bugger" msgstr "Adam Kennedy: Chief Bugger" #: lib/Padre/Wx/FBP/Preferences.pm:333 msgid "Add another closing bracket if there already is one" msgstr "すでにあればもうひとつ閉じかっこを追加する" #: lib/Padre/Wx/VCS.pm:506 msgid "Add file to repository?" msgstr "ファイルをリポジトリに追加しますか" #: lib/Padre/Wx/VCS.pm:229 #: lib/Padre/Wx/VCS.pm:243 msgid "Added" msgstr "追加しました" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "高度な設定" #: lib/Padre/Wx/FBP/Patch.pm:69 msgid "Against" msgstr "" #: lib/Padre/Wx/FBP/About.pm:396 msgid "Ahmad Zawawi" msgstr "Ahmad Zawawi" #: lib/Padre/Wx/FBP/About.pm:170 msgid "Ahmad Zawawi: Developer" msgstr "Ahmad Zawawi: Developer" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Alarm" msgstr "アラーム" #: lib/Padre/Wx/FBP/About.pm:259 msgid "Alexandr Ciornii" msgstr "Alexandr Ciornii" #: lib/Padre/Wx/Syntax.pm:79 msgid "Alien Error" msgstr "外部エラー" #: lib/Padre/Wx/ActionLibrary.pm:1763 msgid "Align a selection of text to the same left column." msgstr "選択したテキストを同じ左カラムに揃える" #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "すべて" #: lib/Padre/Wx/Main.pm:4368 #: lib/Padre/Wx/Main.pm:4369 #: lib/Padre/Wx/Main.pm:4756 #: lib/Padre/Wx/Main.pm:5976 msgid "All Files" msgstr "すべてのファイル" #: lib/Padre/Document/Perl.pm:532 msgid "All braces appear to be matched" msgstr "かっこはすべて対応がとれているようです" #: lib/Padre/Wx/ActionLibrary.pm:424 msgid "Allow the selection of another name to save the current document" msgstr "現在のドキュメントを保存するときに別の名前を選択できるようにする" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphabetic characters" msgstr "アルファベット" #: lib/Padre/Config.pm:613 msgid "Alphabetical Order" msgstr "アルファベット順" #: lib/Padre/Config.pm:614 msgid "Alphabetical Order (Private Last)" msgstr "プライベート変数は最後" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "英数字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "英数字と\"_\"" #: lib/Padre/Wx/FBP/Preferences.pm:688 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Alternation" msgstr "選択" #: lib/Padre/Wx/FBP/About.pm:537 msgid "Amir E. Aharoni" msgstr "Amir E. Aharoni" #: lib/Padre/Wx/FBP/About.pm:223 msgid "Andrew Bramble" msgstr "Andrew Bramble" #: lib/Padre/Wx/FBP/About.pm:684 msgid "Andrew Shitov" msgstr "Andrew Shitov" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "改行以外のあらゆる文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "あらゆる数字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "数字以外のあらゆる文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "空白以外のあらゆる文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "単語を構成しないあらゆる文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "あらゆる空白文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "単語を構成するあらゆる文字" #: lib/Padre/Wx/FBP/Preferences.pm:1322 msgid "Appearance" msgstr "表示" #: lib/Padre/Wx/FBP/Preferences.pm:191 msgid "Appearance Preview" msgstr "プレビュー" #: lib/Padre/Wx/ActionLibrary.pm:793 msgid "Apply one of the quick fixes for the current document" msgstr "現在のドキュメントにクイックフィックスのひとつを適用する" #: lib/Padre/Locale.pm:156 #: lib/Padre/Wx/FBP/About.pm:387 msgid "Arabic" msgstr "アラビア語" #: lib/Padre/Wx/ActionLibrary.pm:484 msgid "Ask for a session name and save the list of files currently opened" msgstr "セッション名を入力して現在開いているファイル一覧を保存する" #: lib/Padre/Wx/ActionLibrary.pm:555 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "保存されていないファイルがあれば確認したあと、Padreを終了する" #: lib/Padre/Wx/ActionLibrary.pm:1899 msgid "Assign the selected expression to a newly declared variable" msgstr "選択した式を新しく宣言した変数に割り当てる" #: lib/Padre/Wx/Outline.pm:372 msgid "Attributes" msgstr "属性" #: lib/Padre/Wx/FBP/Sync.pm:303 msgid "Authentication" msgstr "認証" #: lib/Padre/Wx/CPAN2.pm:36 #: lib/Padre/Wx/VCS.pm:51 msgid "Author" msgstr "作者" #: lib/Padre/Wx/FBP/Preferences.pm:968 msgid "Auto detect Perl 6 files" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1323 msgid "Auto-Complete" msgstr "オートコンプリート" #: lib/Padre/Wx/FBP/Preferences.pm:358 msgid "Auto-fold POD markup when code folding enabled" msgstr "コードを折りたたむときはPODも自動的に折りたたむ" #: lib/Padre/Wx/FBP/Preferences.pm:230 msgid "Autocomplete always while typing" msgstr "入力中、常にオートコンプリートを行う" #: lib/Padre/Wx/FBP/Preferences.pm:325 msgid "Autocomplete brackets" msgstr "かっこのオートコンプリート" #: lib/Padre/Wx/FBP/Preferences.pm:246 msgid "Autocomplete new functions in scripts" msgstr "スクリプトの新しい関数にオートコンプリートを適用する" #: lib/Padre/Wx/FBP/Preferences.pm:238 msgid "Autocomplete new methods in packages" msgstr "パッケージの新しいメソッドにオートコンプリートを適用する" #: lib/Padre/Wx/Main.pm:3683 msgid "Autocompletion error" msgstr "オートコンプリートエラー" #: lib/Padre/Wx/FBP/Preferences.pm:605 msgid "Autoindent" msgstr "自動インデント" #: lib/Padre/Wx/FBP/Preferences.pm:553 msgid "Automatic indentation style detection" msgstr "インデントスタイルの自動検出" #: lib/Padre/Wx/StatusBar.pm:293 msgid "Background Tasks are running" msgstr "バックグラウンドタスクが実行中です" #: lib/Padre/Wx/StatusBar.pm:294 msgid "Background Tasks are running with high load" msgstr "バックグラウンドタスクが高負荷になっています" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "n番目のグループへの後方参照" #: lib/Padre/Wx/Dialog/Preferences.pm:135 msgid "Backspace" msgstr "Backspace" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "行頭" #: lib/Padre/Wx/FBP/Preferences.pm:1324 msgid "Behaviour" msgstr "動作" #: lib/Padre/Wx/FBP/About.pm:367 msgid "Blake Willmarth" msgstr "Blake Willmarth" #: lib/Padre/Wx/FBP/About.pm:96 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "" #: lib/Padre/Wx/FBP/Bookmarks.pm:28 msgid "Bookmarks" msgstr "しおりをはさむ" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "ブール値" #: lib/Padre/Wx/FBP/Preferences.pm:308 msgid "Braces Assist" msgstr "かっこの補助" #: lib/Padre/Wx/FBP/About.pm:229 #: lib/Padre/Wx/FBP/About.pm:642 msgid "Breno G. de Oliveira" msgstr "Breno G. de Oliveira" #: lib/Padre/Wx/FBP/About.pm:271 msgid "Brian Cassidy" msgstr "Brian Cassidy" #: lib/Padre/Wx/FBP/VCS.pm:82 msgid "Bring changes from the repository into the working copy" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:193 msgid "Browse directory of the current document to open one or several files" msgstr "現在のドキュメントがあるディレクトリを閲覧" #: lib/Padre/Wx/ActionLibrary.pm:249 msgid "Browse the directory of the installed examples to open one file" msgstr "インストール済みの例があるディレクトリを閲覧" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "ブラウザ: %sのビューアがありません" #: lib/Padre/Wx/ActionLibrary.pm:1977 msgid "Builds the current project, then run all tests." msgstr "現在のプロジェクトをビルドしてすべてのテストを実行" #: lib/Padre/Wx/FBP/About.pm:295 #: lib/Padre/Wx/FBP/About.pm:699 msgid "Burak Gursoy" msgstr "Burak Gursoy" #: lib/Padre/Wx/ActionLibrary.pm:2613 msgid "C&urrent Document" msgstr "現在のドキュメント(&u)" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:358 msgid "CHANGED" msgstr "変更有" #: lib/Padre/Wx/CPAN2.pm:141 msgid "CPAN Explorer" msgstr "CPANエクスプローラ" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/Snippet.pm:134 #: lib/Padre/Wx/FBP/FindInFiles.pm:152 #: lib/Padre/Wx/FBP/Bookmarks.pm:126 #: lib/Padre/Wx/FBP/Find.pm:136 #: lib/Padre/Wx/FBP/Special.pm:94 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:177 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "キャンセル" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "pythonの実行ファイルが見つかりません" #: lib/Padre/Document/Ruby.pm:51 msgid "Cannot find ruby executable in your PATH" msgstr "rubyの実行ファイルが見つかりません" #: lib/Padre/Wx/Main.pm:4032 #, perl-format msgid "Cannot open a directory: %s" msgstr "ディレクトリを開けません: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "保存されていないドキュメントにはしおりをはさめません" #: lib/Padre/Wx/Dialog/FindFast.pm:181 #: lib/Padre/Wx/Dialog/Replace.pm:79 msgid "Case &sensitive" msgstr "大文字と小文字を区別する(&s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:474 msgid "Case-insensitive matching" msgstr "大文字と小文字を区別しない" #: lib/Padre/Wx/FBP/About.pm:265 #: lib/Padre/Wx/FBP/About.pm:627 msgid "Cezary Morga" msgstr "Cezary Morga" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Change the current selection to lower case" msgstr "現在の選択範囲を小文字に変換" #: lib/Padre/Wx/ActionLibrary.pm:1075 msgid "Change the current selection to upper case" msgstr "現在の選択範囲を大文字に変換" #: lib/Padre/Wx/ActionLibrary.pm:971 msgid "Change the encoding of the current document to the default of the operating system" msgstr "現在のドキュメントの文字コードをOSのデフォルトに変更する" #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Change the encoding of the current document to utf-8" msgstr "現在のドキュメントをutf-8に変換する" #: lib/Padre/Wx/ActionLibrary.pm:1021 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "現在のドキュメントの改行文字をMac Classicで使われているものに変更" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "現在のドキュメントの改行文字をUnix、Linux、Mac OSXで使われているものに変更" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "現在のドキュメントの改行文字をMS Windowsで使われているものに変更" #: lib/Padre/Document/Perl.pm:1503 msgid "Change variable style" msgstr "変数のスタイルを変更する" #: lib/Padre/Wx/ActionLibrary.pm:1858 msgid "Change variable style from camelCase to Camel_Case" msgstr "変数名をcamelCaseからCamel_Caseに変更" #: lib/Padre/Wx/ActionLibrary.pm:1844 msgid "Change variable style from camelCase to camel_case" msgstr "変数名camelCaseからcamel_caseに変更" #: lib/Padre/Wx/ActionLibrary.pm:1830 msgid "Change variable style from camel_case to CamelCase" msgstr "変数名をcamel_caseからCamelCaseに変更" #: lib/Padre/Wx/ActionLibrary.pm:1816 msgid "Change variable style from camel_case to camelCase" msgstr "変数名をcamel_caseからcamelCaseに変更" #: lib/Padre/Wx/ActionLibrary.pm:1815 msgid "Change variable to &camelCase" msgstr "変数名を&camelCaseに変更" #: lib/Padre/Wx/ActionLibrary.pm:1843 msgid "Change variable to &using_underscores" msgstr "変数名を&using_underscoresに変更" #: lib/Padre/Wx/ActionLibrary.pm:1829 msgid "Change variable to C&amelCase" msgstr "変数名をC&amelCaseに変更" #: lib/Padre/Wx/ActionLibrary.pm:1857 msgid "Change variable to U&sing_Underscores" msgstr "変数名をU&sing_Underscoresに変更" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "Character classes" msgstr "文字クラス" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:236 msgid "Character position" msgstr "文字位置" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "文字セット" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "文字(空白含む)" #: lib/Padre/Document/Perl.pm:533 msgid "Check Complete" msgstr "チェックが完了しました" #: lib/Padre/Document/Perl.pm:602 #: lib/Padre/Document/Perl.pm:658 #: lib/Padre/Document/Perl.pm:677 msgid "Check cancelled" msgstr "チェックはキャンセルされました" #: lib/Padre/Wx/FBP/Preferences.pm:451 msgid "Check for file updates on disk every (seconds)" msgstr "ディスク上のファイルの更新を確認する間隔(秒)" #: lib/Padre/Wx/ActionLibrary.pm:1702 msgid "Check the current file for common beginner errors" msgstr "現在のファイルによくある初心者的なエラーがないか確認する" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "中国語" #: lib/Padre/Locale.pm:440 #: lib/Padre/Wx/FBP/About.pm:402 msgid "Chinese (Simplified)" msgstr "中国語(簡体字)" #: lib/Padre/Locale.pm:450 #: lib/Padre/Wx/FBP/About.pm:423 msgid "Chinese (Traditional)" msgstr "中国語(繁体字)" #: lib/Padre/Wx/Main.pm:4240 #: lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "ファイルを選択する" #: lib/Padre/Wx/FBP/About.pm:277 msgid "Chris Dolan" msgstr "Chris Dolan" #: lib/Padre/Wx/FBP/About.pm:417 msgid "Chuanren Wu" msgstr "Chuanren Wu" #: lib/Padre/Wx/FBP/Find.pm:95 msgid "Cl&ose Window on Hit" msgstr "見つかったらウィンドウを閉じる(&o)" #: lib/Padre/Wx/FBP/About.pm:331 msgid "Claudio Ramirez" msgstr "Claudio Ramirez" #: lib/Padre/Wx/FBP/Preferences.pm:374 msgid "Clean up file content on saving (for supported document types)" msgstr "保存時にファイルのコンテンツをきれいに整理する(サポートしているドキュメントタイプの場合)" #: lib/Padre/Wx/Dialog/OpenResource.pm:219 msgid "Click on the arrow for filter settings" msgstr "フィルタの設定は矢印をクリック" #: lib/Padre/Wx/FBP/Patch.pm:119 #: lib/Padre/Wx/FBP/Text.pm:55 #: lib/Padre/Wx/FBP/About.pm:726 #: lib/Padre/Wx/FBP/Sync.pm:266 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:280 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "閉じる" #: lib/Padre/Wx/ActionLibrary.pm:346 msgid "Close &Files..." msgstr "ファイルを閉じる(&F)..." #: lib/Padre/Wx/ActionLibrary.pm:326 msgid "Close &all Files" msgstr "すべてのファイルを閉じる(&a)" #: lib/Padre/Wx/ActionLibrary.pm:285 msgid "Close &this Project" msgstr "このプロジェクトを閉じる(&t)" #: lib/Padre/Wx/Dialog/Replace.pm:107 msgid "Close Window on &Hit" msgstr "見つかったらウィンドウを閉じる(&h)" #: lib/Padre/Wx/Main.pm:5224 msgid "Close all" msgstr "すべて閉じる" #: lib/Padre/Wx/ActionLibrary.pm:336 msgid "Close all &other Files" msgstr "ほかのすべてのファイルを閉じる(&o)" #: lib/Padre/Wx/ActionLibrary.pm:286 msgid "Close all the files belonging to the current project" msgstr "現在のプロジェクトに属するすべてのファイルを閉じる" #: lib/Padre/Wx/ActionLibrary.pm:337 msgid "Close all the files except the current one" msgstr "現在のファイル以外のすべてのファイルを閉じる" #: lib/Padre/Wx/ActionLibrary.pm:327 msgid "Close all the files open in the editor" msgstr "エディタで開いているすべてのファイルを閉じる" #: lib/Padre/Wx/ActionLibrary.pm:307 msgid "Close all the files that do not belong to the current project" msgstr "現在のプロジェクトに属していないすべてのファイルを閉じる" #: lib/Padre/Wx/ActionLibrary.pm:272 msgid "Close current document" msgstr "現在のドキュメントを閉じる" #: lib/Padre/Wx/ActionLibrary.pm:367 msgid "Close current document and remove the file from disk" msgstr "現在のドキュメントを閉じてディスクからも削除する" #: lib/Padre/Wx/ActionLibrary.pm:306 msgid "Close other &Projects" msgstr "他のプロジェクトを閉じる(&P)" #: lib/Padre/Wx/Main.pm:5286 msgid "Close some" msgstr "ファイルを閉じる" #: lib/Padre/Wx/Main.pm:5270 msgid "Close some files" msgstr "ファイルを閉じる" #: lib/Padre/Wx/ActionLibrary.pm:1681 msgid "Close the highest priority panel (usually using ESC key)" msgstr "優先度が最も高いパネルを閉じる(ふつうはESCキーで)" #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "このウインドウを閉じる" #: lib/Padre/Config.pm:612 msgid "Code Order" msgstr "コード内の出現順" #: lib/Padre/Wx/FindInFiles.pm:78 msgid "Collapse all" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:88 msgid "Coloured text in output window (ANSI)" msgstr "出力ウィンドウのテキストに色をつける(ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1922 msgid "Combine scattered POD at the end of the document" msgstr "散在するPODをドキュメント末尾にまとめる" #: lib/Padre/Wx/Command.pm:262 msgid "Command" msgstr "コマンド" #: lib/Padre/Wx/Main.pm:2690 msgid "Command line" msgstr "コマンドライン" #: lib/Padre/Wx/ActionLibrary.pm:946 msgid "Comment out selected lines or the current line" msgstr "選択した行ないし現在の行をコメントアウトする" #: lib/Padre/Wx/ActionLibrary.pm:933 msgid "Comment out/remove comment for selected lines or the current line" msgstr "選択した行ないし現在の行をコメントアウトする/コメントを外す" #: lib/Padre/Wx/VCS.pm:486 msgid "Commit file/directory to repository?" msgstr "" #: lib/Padre/Wx/Dialog/About.pm:149 msgid "Config" msgstr "設定" #: lib/Padre/Wx/FBP/Sync.pm:148 #: lib/Padre/Wx/FBP/Sync.pm:177 msgid "Confirm" msgstr "確認" #: lib/Padre/Wx/VCS.pm:232 msgid "Conflicted" msgstr "" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "FTPサーバ%sに接続中..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "FTPサーバに接続しました" #: lib/Padre/Wx/FindResult.pm:182 msgid "Content" msgstr "内容" #: lib/Padre/Wx/FBP/Preferences.pm:213 msgid "Content Assist" msgstr "コンテンツの入力補助" #: lib/Padre/Config.pm:528 msgid "Contents of the status bar" msgstr "ステータスバーの内容" #: lib/Padre/Config.pm:517 msgid "Contents of the window title" msgstr "ウィンドウタイトルの内容" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Control character" msgstr "制御文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "制御文字" #: lib/Padre/Wx/Menu/Edit.pm:190 msgid "Convert &Encoding" msgstr "文字コードを変換する(&E)" #: lib/Padre/Wx/Menu/Edit.pm:212 msgid "Convert &Line Endings" msgstr "改行コードを変換する(&L)" #: lib/Padre/Wx/ActionLibrary.pm:1033 msgid "Convert all tabs to spaces in the current document" msgstr "現在のドキュメントのすべてのタブをスペースに変換します" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Convert all the spaces to tabs in the current document" msgstr "現在のドキュメントのすべてのスペースをタブに変換します" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "特殊な値をコピー(&y)" #: lib/Padre/Wx/VCS.pm:246 msgid "Copied" msgstr "コピーしました" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "コピー" #: lib/Padre/Wx/FindResult.pm:254 msgid "Copy &All" msgstr "すべてコピー(&A)" #: lib/Padre/Wx/ActionLibrary.pm:721 msgid "Copy &Directory Name" msgstr "ディレクトリ名をコピー(&D)" #: lib/Padre/Wx/FindResult.pm:231 msgid "Copy &Selected" msgstr "選択範囲をコピー(&S)" #: lib/Padre/Wx/ActionLibrary.pm:735 msgid "Copy Editor &Content" msgstr "エディタの内容をコピー(&C):" #: lib/Padre/Wx/ActionLibrary.pm:706 msgid "Copy F&ilename" msgstr "ファイル名をコピー(&i)" #: lib/Padre/Wx/ActionLibrary.pm:691 msgid "Copy Full &Filename" msgstr "完全なファイル名をコピー(&F)" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "名前をコピー" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "値をコピー" #: lib/Padre/Wx/Dialog/OpenResource.pm:259 msgid "Copy filename to clipboard" msgstr "ファイル名をクリップボードにコピー" #: lib/Padre/Wx/ActionLibrary.pm:357 msgid "Copy the current tab into a new document" msgstr "現在のタブを新規ドキュメントにコピー" #: lib/Padre/Wx/FBP/About.pm:113 msgid "" "Copyright 2008–2011 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "" "Copyright 2008–2011 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." #: lib/Padre/Wx/FBP/About.pm:141 msgid "Core Team" msgstr "コア開発チーム" #: lib/Padre/Wx/Directory/TreeCtrl.pm:193 #, perl-format msgid "Could not create: '%s': %s" msgstr "「%s」を作成できません: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:224 #, perl-format msgid "Could not delete: '%s': %s" msgstr "「%s」を削除できません: %s" #: lib/Padre/Wx/Main.pm:3634 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "ドキュメントタイプ%sのコメント文字が決まっていません" #: lib/Padre/Wx/Debugger.pm:389 #, perl-format msgid "Could not evaluate '%s'" msgstr "「%s」を評価できません" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "KDE/GNOMEが見つかりません" #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 msgid "Could not find a help provider for " msgstr "ヘルプが見つかりません" #: lib/Padre/Wx/Main.pm:4228 #, perl-format msgid "Could not find file '%s'" msgstr "ファイル「%s」が見つかりません" #: lib/Padre/Wx/Main.pm:2756 msgid "Could not find perl executable" msgstr "Perlの実行ファイルが見つかりません" #: lib/Padre/Wx/Main.pm:2726 #: lib/Padre/Wx/Main.pm:2787 #: lib/Padre/Wx/Main.pm:2842 msgid "Could not find project root" msgstr "プロジェクトルートが見つかりません" #: lib/Padre/Wx/ActionLibrary.pm:2344 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "Padre::Plugin::Myプラグインが見つかりません" #: lib/Padre/PluginManager.pm:1069 msgid "Could not locate project directory." msgstr "プロジェクトディレクトリが見つかりません" #: lib/Padre/Wx/Main.pm:4642 #, perl-format msgid "Could not reload file: %s" msgstr "ファイル「%s」をリロードできません" #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr "「%s」を「%s」にリネームできません: %s" #: lib/Padre/Wx/Main.pm:5050 msgid "Could not save file: " msgstr "ファイルを保存できません: " #: lib/Padre/Wx/Debugger.pm:226 #, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "ファイル「%s」の「%s」行目にはブレークポイントをセットできません" #: lib/Padre/Wx/Directory/TreeCtrl.pm:286 #: lib/Padre/Wx/Directory/TreeCtrl.pm:345 msgid "Create Directory" msgstr "ディレクトリを作成" #: lib/Padre/Wx/ActionLibrary.pm:1788 msgid "Create Project &Tagsfile" msgstr "プロジェクトタグファイルを作成(&T)" #: lib/Padre/Wx/ActionLibrary.pm:1302 msgid "Create a bookmark in the current file current row" msgstr "現在のファイルの現在の行にしおりを作成" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by:" msgstr "作者:" #: lib/Padre/Wx/ActionLibrary.pm:1789 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "現在のプロジェクトに検索メソッドとオートコンプリートをサポートしたPerlタグファイルを作成します" #: lib/Padre/Wx/FBP/Preferences.pm:680 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:660 msgid "Cu&t" msgstr "切り取り(&t)" #: lib/Padre/Document/Perl.pm:676 #, perl-format msgid "Current '%s' not found" msgstr "現在の「%s」が見つかりません" #: lib/Padre/Wx/Dialog/OpenResource.pm:242 msgid "Current Directory: " msgstr "現在のディレクトリ:" #: lib/Padre/Document/Perl.pm:657 msgid "Current cursor does not seem to point at a method" msgstr "現在のカーソル位置にはメソッドが見つかりません" #: lib/Padre/Document/Perl.pm:601 #: lib/Padre/Document/Perl.pm:635 msgid "Current cursor does not seem to point at a variable" msgstr "現在のカーソル位置には変数が見つかりません" #: lib/Padre/Document/Perl.pm:797 #: lib/Padre/Document/Perl.pm:847 #: lib/Padre/Document/Perl.pm:884 msgid "Current cursor does not seem to point at a variable." msgstr "現在のカーソル位置には変数が見つかりません" #: lib/Padre/Wx/Main.pm:2781 #: lib/Padre/Wx/Main.pm:2833 msgid "Current document has no filename" msgstr "現在のドキュメントにはファイル名がありません" #: lib/Padre/Wx/Main.pm:2836 msgid "Current document is not a .t file" msgstr "現在のドキュメントは.tファイルではありません" #: lib/Padre/Wx/VCS.pm:187 msgid "Current file is not in a version control system" msgstr "現在のファイルはバージョン管理下にありません" #: lib/Padre/Wx/VCS.pm:178 msgid "Current file is not saved in a version control system" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "現在の行番号: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "現在の位置: %s" #: lib/Padre/Wx/FBP/Preferences.pm:469 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "カーソルの点滅速度(ミリ秒 - 0 = 点滅しない、500 = デフォルト)" #: lib/Padre/Wx/ActionLibrary.pm:1873 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "現在の選択範囲を切り取って新しいサブルーチンを作成する。選択範囲があった場所にはかわりにこのサブルーチンの呼び出しが追加される" #: lib/Padre/Locale.pm:166 #: lib/Padre/Wx/FBP/About.pm:438 msgid "Czech" msgstr "チェコ語" #: lib/Padre/Wx/ActionLibrary.pm:356 msgid "D&uplicate" msgstr "複製を作る" #: lib/Padre/Wx/Dialog/WindowList.pm:356 msgid "DELETED" msgstr "削除済" #: lib/Padre/Locale.pm:176 msgid "Danish" msgstr "デンマーク語" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "日/時" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 msgid "Debug" msgstr "デバッグ" #: lib/Padre/Wx/Debug.pm:97 msgid "Debugger" msgstr "デバッガ" #: lib/Padre/Wx/Debugger.pm:79 msgid "Debugger is already running" msgstr "デバッガはすでに起動済みです" #: lib/Padre/Wx/Debugger.pm:193 #: lib/Padre/Wx/Debugger.pm:275 #: lib/Padre/Wx/Debugger.pm:299 #: lib/Padre/Wx/Debugger.pm:333 #: lib/Padre/Wx/Debugger.pm:353 msgid "Debugger not running" msgstr "デバッガが起動していません" #: lib/Padre/Wx/Debugger.pm:138 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "デバッグに失敗しました。シンタックスエラーがないか確認してください" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "デフォルト" #: lib/Padre/Wx/FBP/Preferences.pm:896 msgid "Default line ending" msgstr "デフォルトの改行文字" #: lib/Padre/Wx/FBP/Preferences.pm:397 msgid "Default projects directory" msgstr "デフォルトのプロジェクトディレクトリ" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "デフォルト値:" #: lib/Padre/Wx/FBP/Preferences.pm:888 msgid "Default word wrap on for each file" msgstr "デフォルトでワードラップ" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "アクションキューの遅延を1秒にする" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "アクションキューの遅延を10秒にする" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "アクションキューの遅延を30秒にする" #: lib/Padre/Wx/FBP/Sync.pm:249 #: lib/Padre/Wx/Directory/TreeCtrl.pm:375 #: lib/Padre/Wx/Dialog/Preferences.pm:136 msgid "Delete" msgstr "Delete" #: lib/Padre/Wx/FBP/Bookmarks.pm:110 msgid "Delete &All" msgstr "全削除(&A)" #: lib/Padre/Wx/ActionLibrary.pm:1052 msgid "Delete &Leading Spaces" msgstr "行頭のスペースを削除する(&L)" #: lib/Padre/Wx/Directory/TreeCtrl.pm:262 msgid "Delete Directory" msgstr "ディレクトリを削除" #: lib/Padre/Wx/Directory/TreeCtrl.pm:321 msgid "Delete File" msgstr "ファイルを削除" #: lib/Padre/Wx/VCS.pm:525 msgid "Delete file from repository??" msgstr "リポジトリからファイルを削除しますか" #: lib/Padre/Wx/FBP/Preferences.pm:749 msgid "Delete the keyboard binding" msgstr "キーボード割り当てを削除する" #: lib/Padre/Wx/VCS.pm:230 #: lib/Padre/Wx/VCS.pm:244 msgid "Deleted" msgstr "削除済" #: lib/Padre/Wx/Syntax.pm:49 msgid "Deprecation" msgstr "廃止" #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "説明" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "説明:" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Developers" msgstr "開発チーム" #: lib/Padre/Wx/FBP/About.pm:924 msgid "Development" msgstr "開発" #: lib/Padre/Wx/ActionLibrary.pm:1217 msgid "Did not find any matches." msgstr "マッチしませんでした" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "しおり名が指定されていません" #: lib/Padre/CPAN.pm:118 #: lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "ディストリビューションが指定されていません" #: lib/Padre/Wx/Dialog/Bookmarks.pm:96 msgid "Did not select a bookmark" msgstr "しおりが選択されていません" #: lib/Padre/Wx/FBP/Diff.pm:28 msgid "Diff" msgstr "差分をとる" #: lib/Padre/Wx/Dialog/Patch.pm:490 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "数字" #: lib/Padre/Config.pm:660 msgid "Directories First" msgstr "ディレクトリを優先する" #: lib/Padre/Config.pm:661 msgid "Directories Mixed" msgstr "ディレクトリを優先しない" #: lib/Padre/Wx/FBP/FindInFiles.pm:63 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:88 #: lib/Padre/Wx/Directory/TreeCtrl.pm:91 msgid "Directory" msgstr "ディレクトリ" #: lib/Padre/Wx/FBP/About.pm:462 msgid "Dirk De Nijs" msgstr "Dirk De Nijs" #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Disk" msgstr "ディスク" #: lib/Padre/Wx/ActionLibrary.pm:2205 msgid "Display Value" msgstr "値を表示" #: lib/Padre/Wx/ActionLibrary.pm:2206 msgid "Display the current value of a variable in the right hand side debugger pane" msgstr "変数の現在の値を右側のデバッガペインに表示する" #: lib/Padre/Wx/CPAN2.pm:35 #: lib/Padre/Wx/Dialog/About.pm:173 msgid "Distribution" msgstr "ディストリビューション" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "今後は表示しない" #: lib/Padre/Wx/Main.pm:5404 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "本当に%sを閉じてディスクから削除しますか" #: lib/Padre/Wx/VCS.pm:505 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "リポジトリに %s を追加しますか" #: lib/Padre/Wx/VCS.pm:485 msgid "Do you want to commit?" msgstr "コミットしますか" #: lib/Padre/Wx/Main.pm:3087 msgid "Do you want to continue?" msgstr "続行しますか" #: lib/Padre/Wx/VCS.pm:524 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "リポジトリから %s を削除しますか" #: lib/Padre/Wx/Dialog/Preferences.pm:462 msgid "Do you want to override it with the selected action?" msgstr "選択したアクションで上書きしますか" #: lib/Padre/Wx/VCS.pm:551 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "%s の変更を取り消しますか" #: lib/Padre/Wx/Dialog/DocStats.pm:95 msgid "Document" msgstr "ドキュメント" #: lib/Padre/Wx/Dialog/DocStats.pm:31 msgid "Document Statistics" msgstr "ドキュメントの統計情報" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "ドキュメントツール" #: lib/Padre/Config.pm:674 msgid "Document Tools (Right)" msgstr "ドキュメントツール (右)" #: lib/Padre/Wx/Main.pm:6958 #, perl-format msgid "Document encoded to (%s)" msgstr "ドキュメントの文字コード(%s)" #: lib/Padre/Wx/Dialog/DocStats.pm:133 msgid "Document type" msgstr "ドキュメントタイプ" #: lib/Padre/Wx/Dialog/Preferences.pm:135 msgid "Down" msgstr "↓" #: lib/Padre/Wx/FBP/Sync.pm:232 msgid "Download" msgstr "ダウンロード" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "PadreオブジェクトをSTDOUTにダンプする" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "テスト/デバッグ用にPadreのオブジェクト全体をSTDOUTにダンプします" #: lib/Padre/Locale.pm:350 #: lib/Padre/Wx/FBP/About.pm:453 msgid "Dutch" msgstr "オランダ語" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "オランダ語(ベルギー)" #: lib/Padre/Wx/ActionLibrary.pm:1020 msgid "EOL to &Mac Classic" msgstr "改行を&Mac Classic風に" #: lib/Padre/Wx/ActionLibrary.pm:1010 msgid "EOL to &Unix" msgstr "改行を&Unix風に" #: lib/Padre/Wx/ActionLibrary.pm:1000 msgid "EOL to &Windows" msgstr "改行を&Windows風に" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:384 msgid "Edit" msgstr "編集" #: lib/Padre/Wx/ActionLibrary.pm:2268 msgid "Edit user and host preferences" msgstr "ユーザ/ホストの設定を編集する" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Editor" msgstr "エディタ" #: lib/Padre/Wx/FBP/Preferences.pm:160 msgid "Editor Current Line Background Colour" msgstr "エディタの現在の行の背景色" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Editor Font" msgstr "エディタのフォント" #: lib/Padre/Wx/FBP/Preferences.pm:863 msgid "Editor Options" msgstr "エディタのオプション" #: lib/Padre/Wx/FBP/Preferences.pm:54 msgid "Editor Style" msgstr "エディタのスタイル" #: lib/Padre/Wx/FBP/Sync.pm:163 msgid "Email" msgstr "メールアドレス" #: lib/Padre/Wx/Dialog/Sync.pm:162 msgid "Email and confirmation do not match." msgstr "メールアドレスが一致しません" #: lib/Padre/Wx/Dialog/RegexEditor.pm:653 msgid "Empty regex" msgstr "空の正規表現" #: lib/Padre/Wx/FBP/Preferences.pm:483 msgid "Enable Smart highlighting while typing" msgstr "入力中もスマートハイライトを有効にする" #: lib/Padre/Config.pm:1404 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "Devel::EndStatsがインストールされている場合に有効にするかどうか" #: lib/Padre/Config.pm:1423 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "Devel::TraceUseがインストールされている場合に有効にするかどうか" #: lib/Padre/Wx/ActionLibrary.pm:990 msgid "Encode Document &to..." msgstr "文字コードを変更する(&t)..." #: lib/Padre/Wx/ActionLibrary.pm:970 msgid "Encode Document to &System Default" msgstr "システムデフォルトに変換する(&S)" #: lib/Padre/Wx/ActionLibrary.pm:980 msgid "Encode Document to &utf-8" msgstr "&utf-8に変換する" #: lib/Padre/Wx/Main.pm:6980 msgid "Encode document to..." msgstr "文字コードを..." #: lib/Padre/Wx/Main.pm:6979 msgid "Encode to:" msgstr "文字コード:" #: lib/Padre/Wx/Dialog/DocStats.pm:131 msgid "Encoding" msgstr "エンコーディング" #: lib/Padre/Wx/Dialog/Preferences.pm:136 msgid "End" msgstr "End" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "End case modification/metacharacter quoting" msgstr "大文字小文字の変換やメタ文字のクォートを終える" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "End of line" msgstr "行末" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "英語" #: lib/Padre/Locale.pm:124 msgid "English (Australia)" msgstr "英語(オーストラリア)" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "英語(カナダ)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "英語(ニュージーランド)" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "英語(英国)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "英語(米国)" #: lib/Padre/Wx/FBP/About.pm:669 msgid "Enrique Nell" msgstr "Enrique Nell" #: lib/Padre/Wx/Dialog/Preferences.pm:137 msgid "Enter" msgstr "Enter" #: lib/Padre/CPAN.pm:132 msgid "" "Enter URL to install\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "インストールするURLを入力してください\n" "例: http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:212 msgid "Enter parts of the resource name to find it" msgstr "検索するリソース名の一部を入力してください" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "エポック時" #: lib/Padre/Document.pm:1150 #: lib/Padre/Wx/Editor.pm:709 #: lib/Padre/Wx/Main.pm:5051 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 #: lib/Padre/Wx/Dialog/Sync.pm:78 #: lib/Padre/Wx/Dialog/Sync.pm:86 #: lib/Padre/Wx/Dialog/Sync.pm:99 #: lib/Padre/Wx/Dialog/Sync.pm:118 #: lib/Padre/Wx/Dialog/Sync.pm:142 #: lib/Padre/Wx/Dialog/Sync.pm:153 #: lib/Padre/Wx/Dialog/Sync.pm:163 #: lib/Padre/Wx/Dialog/Sync.pm:183 #: lib/Padre/Wx/Dialog/Sync.pm:194 #: lib/Padre/Wx/Dialog/Sync.pm:205 #: lib/Padre/Wx/Dialog/Sync.pm:216 msgid "Error" msgstr "エラー" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "%s:%sに接続できません: %s" #: lib/Padre/Wx/Main.pm:5420 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "%sを削除できません:\n" "%s" #: lib/Padre/Wx/Main.pm:5631 msgid "Error loading perl filter dialog." msgstr "Perlフィルタダイアログをロードできません" #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "クラス「%s」のpodをロードできません: %s" #: lib/Padre/Wx/Main.pm:5602 msgid "Error loading regex editor." msgstr "正規表現エディタをロードできません" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "%s:%sにログインできません: %s" #: lib/Padre/Wx/Main.pm:6938 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "フィルタツールがエラーを返してきました:\n" "%s" #: lib/Padre/Wx/Main.pm:6923 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "フィルタツールがエラーを返してきました:\n" "%s" #: lib/Padre/PluginManager.pm:1014 msgid "Error when calling menu for plug-in " msgstr "プラグインメニューの呼び出し中にエラーが発生しました" #: lib/Padre/Wx/Dialog/HelpSearch.pm:82 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "%sの呼び出し中にエラーが発生しました %s" #: lib/Padre/Document.pm:954 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "MIMEタイプ判定中にエラーが発生しました\n" "文字コードの問題かもしれません\n" "バイナリファイルをロードしようとしていませんか" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "Aspectのロード中にエラーが発生しました。インストールされているか確認してください" #: lib/Padre/Document.pm:904 msgid "Error while opening file: no file object" msgstr "ファイルを開いている最中にエラーが発生しました。ファイルオブジェクトがありません" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "PODの検索中にエラーが発生しました" #: lib/Padre/Wx/VCS.pm:436 msgid "Error while trying to perform Padre action" msgstr "Padreのアクションを実行しようとしてエラーが発生しました" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #: lib/Padre/Wx/Dialog/OpenResource.pm:117 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Padreのアクションを実行しようとしてエラーが発生しました: %s" #: lib/Padre/Wx/Dialog/PerlFilter.pm:323 msgid "Error:\n" msgstr "エラー:\n" #: lib/Padre/Document/Perl.pm:491 msgid "Error: " msgstr "エラー:" #: lib/Padre/Wx/Main.pm:6081 #: lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "エラー: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:137 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Escape (Esc)" msgstr "エスケープ(Esc)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:139 msgid "Escape characters" msgstr "エスケープ文字" #: lib/Padre/Wx/FBP/Expression.pm:71 msgid "Evaluate" msgstr "評価" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "式を評価する(&E)" #: lib/Padre/Wx/FBP/Expression.pm:28 msgid "Evaluate Expression" msgstr "式を評価する" #: lib/Padre/Wx/ActionLibrary.pm:2235 msgid "Evaluate Expression..." msgstr "式を評価する..." #: lib/Padre/Wx/ActionLibrary.pm:2049 msgid "Execute the next statement, enter subroutine if needed. (Start debugger if it is not yet running)" msgstr "次の文を実行。必要があればサブルーチンに入る (必要ならデバッガも起動する)" #: lib/Padre/Wx/ActionLibrary.pm:2066 msgid "Execute the next statement. If it is a subroutine call, stop only after it returned. (Start debugger if it is not yet running)" msgstr "次の文を実行。サブルーチン呼び出しの場合は戻ってくるまで停止しない (必要ならデバッガも起動する)" #: lib/Padre/Wx/Main.pm:4828 msgid "Exist" msgstr "存在" #: lib/Padre/Wx/FBP/Bookmarks.pm:62 msgid "Existing Bookmarks" msgstr "既存のしおり" #: lib/Padre/Wx/FindInFiles.pm:77 msgid "Expand all" msgstr "すべて展開する" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" #: lib/Padre/Wx/Debugger.pm:440 msgid "Expr" msgstr "式" #: lib/Padre/Wx/Debugger.pm:439 msgid "Expression:" msgstr "式:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:485 msgid "Extended (&x)" msgstr "拡張(&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:487 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "拡張正規表現を使うと自由な書式(空白無視)やコメントが利用できるようになります" #: lib/Padre/Wx/ActionLibrary.pm:1871 msgid "Extract &Subroutine..." msgstr "サブルーチンを抽出する(&S)..." #: lib/Padre/Wx/ActionLibrary.pm:1884 msgid "Extract Subroutine" msgstr "サブルーチンを抽出する" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "FTPパスワード" #: lib/Padre/Wx/Main.pm:4945 #, perl-format msgid "Failed to create path '%s'" msgstr "「%s」を作成できません" #: lib/Padre/Wx/Main.pm:1086 msgid "Failed to create server" msgstr "サーバを作成できません" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "PODを削除できません" #: lib/Padre/PluginHandle.pm:328 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "プラグイン「%s」を無効にできません: %s" #: lib/Padre/PluginHandle.pm:211 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "プラグイン「%s」を有効にできません: %s" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "プロセスを実行できません\n" #: lib/Padre/Wx/ActionLibrary.pm:1233 msgid "Failed to find any matches" msgstr "マッチしませんでした" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "CPANの設定が見つかりません" #: lib/Padre/PluginManager.pm:1091 #: lib/Padre/PluginManager.pm:1187 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "プラグイン「%s」をロードできません\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "PODをマージできません" #: lib/Padre/Wx/Main.pm:3019 #, perl-format msgid "Failed to start '%s' command" msgstr "「%s」コマンドを起動できません" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "偽" #: lib/Padre/MimeTypes.pm:450 #: lib/Padre/MimeTypes.pm:459 msgid "Fast but might be out of date" msgstr "高速ですが古いかも" #: lib/Padre/Wx/Syntax.pm:61 msgid "Fatal Error" msgstr "致命的なエラー" #: lib/Padre/Wx/FBP/About.pm:235 #: lib/Padre/Wx/FBP/About.pm:411 msgid "Fayland Lam" msgstr "Fayland Lam" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:383 #: lib/Padre/Wx/Dialog/WindowList.pm:224 #: lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "ファイル" #: lib/Padre/Wx/Menu/File.pm:383 #, perl-format msgid "File %s not found." msgstr "ファイル%sが見つかりません" #: lib/Padre/Wx/FBP/FindInFiles.pm:96 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:121 msgid "File Types" msgstr "ファイルタイプ" #: lib/Padre/Wx/FBP/Preferences.pm:1008 msgid "File access via FTP" msgstr "FTPでのファイルアクセス" #: lib/Padre/Wx/FBP/Preferences.pm:984 msgid "File access via HTTP" msgstr "HTTPでのファイルアクセス" #: lib/Padre/Wx/Main.pm:4931 msgid "File already exists" msgstr "ファイルはすでに存在します" #: lib/Padre/Wx/Main.pm:4827 msgid "File already exists. Overwrite it?" msgstr "ファイルはすでに存在します。上書きしますか?" #: lib/Padre/Wx/Main.pm:5040 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "最後に保存してからファイルが変更されています。上書きしますか?" #: lib/Padre/Wx/Main.pm:5135 msgid "File changed. Do you want to save it?" msgstr "ファイルが変更されています。保存しますか?" #: lib/Padre/Wx/ActionLibrary.pm:292 #: lib/Padre/Wx/ActionLibrary.pm:312 msgid "File is not in a project" msgstr "プロジェクトのファイルではありません" #: lib/Padre/Wx/Main.pm:4404 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "ファイル名%sにはほとんどのコンピュータで特殊文字になる*や?が含まれています。スキップしますか" #: lib/Padre/Wx/Main.pm:4424 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "ファイル名%sはディスク上に存在しません。スキップしますか" #: lib/Padre/Wx/Main.pm:5041 msgid "File not in sync" msgstr "ファイルの同期がとれていません" #: lib/Padre/Wx/Main.pm:5398 msgid "File was never saved and has no filename - can't delete from disk" msgstr "ファイルは未保存でファイル名がありません。ディスクから削除できません" #: lib/Padre/Wx/FBP/Patch.pm:137 msgid "File-1" msgstr "ファイル1" #: lib/Padre/Wx/FBP/Patch.pm:160 msgid "File-2" msgstr "ファイル2" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "ファイル/ディレクトリ" #: lib/Padre/Wx/Dialog/DocStats.pm:39 msgid "Filename" msgstr "ファイル名" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "ファイル" #: lib/Padre/Wx/FBP/Snippet.pm:37 msgid "Filter" msgstr "フィルタ" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "フィルタコマンド:" #: lib/Padre/Wx/ActionLibrary.pm:1123 msgid "Filter through &Perl..." msgstr "&Perlでフィルタリング..." #: lib/Padre/Wx/ActionLibrary.pm:1114 msgid "Filter through E&xternal Tool..." msgstr "外部ツールでフィルタリング(&x)..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "ツールでフィルタリング" #: lib/Padre/Wx/ActionLibrary.pm:1115 msgid "Filters the selection (or the whole document) through any external command." msgstr "外部コマンドを利用して選択範囲(またはドキュメント全体)のフィルタリングを実行する" #: lib/Padre/Wx/FBP/FindFast.pm:52 #: lib/Padre/Wx/FBP/Find.pm:29 #: lib/Padre/Wx/Dialog/Replace.pm:217 msgid "Find" msgstr "検索する" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "全検索(&A)" #: lib/Padre/Wx/ActionLibrary.pm:1749 msgid "Find &Method Declaration" msgstr "メソッド宣言を検索する(&M)" #: lib/Padre/Wx/ActionLibrary.pm:1208 #: lib/Padre/Wx/FBP/Find.pm:111 msgid "Find &Next" msgstr "次を検索する(&N)" #: lib/Padre/Wx/ActionLibrary.pm:1737 msgid "Find &Variable Declaration" msgstr "変数宣言を検索する(&V)" #: lib/Padre/Wx/FindResult.pm:92 #, perl-format msgid "Find Results (%s)" msgstr "検索結果(%s)" #: lib/Padre/Wx/Dialog/Replace.pm:225 msgid "Find Text:" msgstr "検索語:" #: lib/Padre/Wx/ActionLibrary.pm:1725 msgid "Find Unmatched &Brace" msgstr "対応していないかっこを検索する(&B)" #: lib/Padre/Wx/ActionLibrary.pm:1244 msgid "Find a text and replace it" msgstr "テキストを検索して置換する" #: lib/Padre/Wx/Dialog/Replace.pm:49 msgid "Find and Replace" msgstr "検索と置換" #: lib/Padre/Wx/ActionLibrary.pm:1256 msgid "Find in Fi&les..." msgstr "複数ファイル検索(&l)..." #: lib/Padre/Wx/FindInFiles.pm:466 #: lib/Padre/Wx/FBP/FindInFiles.pm:29 msgid "Find in Files" msgstr "複数ファイル検索" #: lib/Padre/Wx/ActionLibrary.pm:1157 msgid "Find text or regular expressions using a traditional dialog" msgstr "伝統的なダイアログを使って適すとや正規表現を検索する" #: lib/Padre/Wx/ActionLibrary.pm:1750 msgid "Find where the selected function was defined and put the focus there." msgstr "選択した関数がどこで定義されているかを見つけてそこにフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:1738 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "選択した変数がどこでmy宣言されているかを見つけてそこにフォーカスを移動する" #: lib/Padre/Wx/Dialog/FindFast.pm:136 msgid "Find:" msgstr "検索:" #: lib/Padre/Document/Perl.pm:933 msgid "First character of selection does not seem to point at a token." msgstr "選択範囲の最初の文字はトークンではないようです" #: lib/Padre/Wx/Editor.pm:1530 msgid "First character of selection must be a non-word character to align" msgstr "選択範囲の最初の文字は英数字以外にしてください" #: lib/Padre/Wx/ActionLibrary.pm:1515 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "折りたためるブロックをすべて折りたたむ (折りたたみが有効の場合)" #: lib/Padre/Wx/Menu/View.pm:174 msgid "Font Si&ze" msgstr "フォントの大きさ(&z)" #: lib/Padre/Wx/ActionLibrary.pm:437 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "新規ドキュメントの場合ファイルの内容から保存するファイル名を推測する" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Form feed" msgstr "フォームフィード" #: lib/Padre/Wx/Syntax.pm:439 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "" #: lib/Padre/Wx/Syntax.pm:442 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "%s件のヘルプトピックが見つかりました\n" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "%s件の未ロードモジュールが見つかりました" #: lib/Padre/Locale.pm:282 #: lib/Padre/Wx/FBP/About.pm:468 msgid "French" msgstr "フランス語" #: lib/Padre/Locale.pm:268 msgid "French (Canada)" msgstr "フランス語(カナダ)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "友人" #: lib/Padre/Wx/ActionLibrary.pm:1660 msgid "Full Sc&reen" msgstr "フルスクリーン(&r)" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "関数" #: lib/Padre/Wx/FunctionList.pm:227 msgid "Functions" msgstr "関数" #: lib/Padre/Wx/FBP/About.pm:82 msgid "Gabor Szabo" msgstr "Gabor Szabo" #: lib/Padre/Wx/FBP/About.pm:158 msgid "Gabor Szabo: Project Manager" msgstr "Gabor Szabo: Project Manager" #: lib/Padre/Wx/FBP/About.pm:361 #: lib/Padre/Wx/FBP/About.pm:648 msgid "Gabriel Vieira" msgstr "Gabriel Vieira" #: lib/Padre/Locale.pm:186 #: lib/Padre/Wx/FBP/About.pm:489 msgid "German" msgstr "ドイツ語" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Global (&g)" msgstr "グローバル(&g)" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr "移動" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Go to &Command Line Window" msgstr "コマンドラインウィンドウに移動する(&C)" #: lib/Padre/Wx/ActionLibrary.pm:2496 msgid "Go to &Functions Window" msgstr "関数ウィンドウに移動する(&F)" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Go to &Main Window" msgstr "メインウィンドウに移動する(&M)" #: lib/Padre/Wx/ActionLibrary.pm:2508 msgid "Go to &Todo Window" msgstr "&TODOウィンドウに移動する" #: lib/Padre/Wx/ActionLibrary.pm:1312 msgid "Go to Bookmar&k..." msgstr "しおりに移動する(&k)..." #: lib/Padre/Wx/ActionLibrary.pm:2485 msgid "Go to CPAN E&xplorer Window" msgstr "CPANエクスプローラウィンドウに移動する(&x)" #: lib/Padre/Wx/ActionLibrary.pm:2521 msgid "Go to O&utline Window" msgstr "アウトラインウィンドウに移動する(&u)" #: lib/Padre/Wx/ActionLibrary.pm:2532 msgid "Go to Ou&tput Window" msgstr "出力ウィンドウに移動する(&t)" #: lib/Padre/Wx/ActionLibrary.pm:2543 msgid "Go to S&yntax Check Window" msgstr "構文チェックウィンドウに移動する(&y)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "Grouping constructs" msgstr "グループ化" #: lib/Padre/Wx/FBP/Preferences.pm:537 msgid "Guess from Current Document" msgstr "現在のドキュメントから推測" #: lib/Padre/Wx/FBP/About.pm:552 msgid "Gyorgy Pasztor" msgstr "Gyorgy Pasztor" #: lib/Padre/Locale.pm:292 #: lib/Padre/Wx/FBP/About.pm:516 msgid "Hebrew" msgstr "ヘブライ語" #: lib/Padre/Wx/FBP/About.pm:253 #: lib/Padre/Wx/FBP/About.pm:498 msgid "Heiko Jansen" msgstr "Heiko Jansen" #: lib/Padre/Wx/Browser.pm:63 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 msgid "Help" msgstr "ヘルプ" #: lib/Padre/Wx/Dialog/HelpSearch.pm:40 #: lib/Padre/Wx/Dialog/HelpSearch.pm:97 msgid "Help Search" msgstr "ヘルプ検索" #: lib/Padre/Wx/ActionLibrary.pm:2692 msgid "Help by translating Padre to your local language" msgstr "Padreの翻訳に協力する" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "ヘルプが見つかりません" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Hex character" msgstr "16進表記の文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "16進数" #: lib/Padre/Wx/ActionLibrary.pm:1560 msgid "Highlight the line where the cursor is" msgstr "カーソル行を強調表示する" #: lib/Padre/Wx/Dialog/Preferences.pm:136 msgid "Home" msgstr "Home" #: lib/Padre/MimeTypes.pm:471 msgid "Hopefully faster than the PPI Traditional. Big file will fall back to Scintilla highlighter." msgstr "従来のPPIよりは速いはず。大きなファイルはScintillaを使います" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "ホスト" #: lib/Padre/Wx/Main.pm:6284 msgid "How many spaces for each tab:" msgstr "タブ幅:" #: lib/Padre/Locale.pm:302 #: lib/Padre/Wx/FBP/About.pm:543 msgid "Hungarian" msgstr "ハンガリー語" #: lib/Padre/Wx/ActionLibrary.pm:1352 msgid "If activated, do not allow moving around some of the windows" msgstr "有効になっている場合、いくつかのウィンドウを行き来することができなくなります" #: lib/Padre/Wx/ActionLibrary.pm:2083 msgid "If within a subroutine, run till return is called and then stop." msgstr "サブルーチンの中にいる場合、returnが呼ばれるまで実行して中断します" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Ignore case (&i)" msgstr "大文字小文字を無視する(&i)" #: lib/Padre/Wx/VCS.pm:233 #: lib/Padre/Wx/FBP/VCS.pm:212 msgid "Ignored" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:843 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "例\n" "インクルードディレクトリ: -I\n" "汚染チェックを有効にする: -T\n" "便利な警告を有効にする: -w\n" "すべての警告を有効にする: -W\n" "すべての警告を無効にする: -X" #: lib/Padre/Config.pm:904 msgid "Indent Deeply" msgstr "インデントを深くする" #: lib/Padre/Config.pm:903 msgid "Indent to Same Depth" msgstr "同じ深さでインデント" #: lib/Padre/Wx/FBP/Preferences.pm:1325 msgid "Indentation" msgstr "インデントガイドを表示する" #: lib/Padre/Wx/FBP/Preferences.pm:587 msgid "Indentation width (in columns)" msgstr "インデント幅(カラム数)" #: lib/Padre/Wx/FBP/About.pm:926 msgid "Information" msgstr "情報" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "入出力:" #: lib/Padre/Wx/FBP/Snippet.pm:117 #: lib/Padre/Wx/FBP/Special.pm:77 #: lib/Padre/Wx/Menu/Edit.pm:119 #: lib/Padre/Wx/Dialog/Preferences.pm:136 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:271 msgid "Insert" msgstr "挿入" #: lib/Padre/Wx/FBP/Snippet.pm:28 msgid "Insert Snippet" msgstr "スニペットを挿入する" #: lib/Padre/Wx/FBP/Special.pm:28 msgid "Insert Special Values" msgstr "特殊な値を挿入する" #: lib/Padre/Wx/FBP/CPAN.pm:105 msgid "Insert Synopsis" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2426 msgid "Install &Remote Distribution" msgstr "リモートディストリビューションのインストール(&R)" #: lib/Padre/Wx/ActionLibrary.pm:2416 msgid "Install L&ocal Distribution" msgstr "ローカルディストリビューションのインストール(&o)" #: lib/Padre/CPAN.pm:133 msgid "Install Local Distribution" msgstr "ローカルディストリビューションのインストール" #: lib/Padre/Wx/ActionLibrary.pm:2404 msgid "Install a Perl module from CPAN" msgstr "CPANモジュールのインストール" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "整数" #: lib/Padre/Wx/Syntax.pm:67 msgid "Internal Error" msgstr "内部エラー" #: lib/Padre/Wx/Main.pm:6082 msgid "Internal error" msgstr "内部エラー" #: lib/Padre/Wx/FBP/Preferences.pm:829 msgid "Interpreter arguments" msgstr "インタプリタの引数" #: lib/Padre/Wx/ActionLibrary.pm:1898 msgid "Introduce &Temporary Variable..." msgstr "一時変数を導入する(&T)..." #: lib/Padre/Wx/ActionLibrary.pm:1907 msgid "Introduce Temporary Variable" msgstr "一時変数を導入する" #: lib/Padre/Locale.pm:316 #: lib/Padre/Wx/FBP/About.pm:558 msgid "Italian" msgstr "イタリア語" #: lib/Padre/Locale.pm:326 #: lib/Padre/Wx/FBP/About.pm:573 msgid "Japanese" msgstr "日本語" #: lib/Padre/Wx/Main.pm:4347 msgid "JavaScript Files" msgstr "JavaScriptファイル" #: lib/Padre/Wx/FBP/About.pm:205 #: lib/Padre/Wx/FBP/About.pm:477 msgid "Jerome Quelin" msgstr "Jerome Quelin" #: lib/Padre/Wx/ActionLibrary.pm:885 msgid "Join the next line to the end of the current line." msgstr "次の行を現在の行末に結合する" #: lib/Padre/Wx/ActionLibrary.pm:2113 msgid "Jump to Current Execution Line" msgstr "現在の実行行に移動する" #: lib/Padre/Wx/ActionLibrary.pm:1289 msgid "Jump to a specific line number or character position" msgstr "特定の行番号ないし文字位置に移動する" #: lib/Padre/Wx/ActionLibrary.pm:780 msgid "Jump to the code that has been changed" msgstr "変更されたコードに移動する" #: lib/Padre/Wx/ActionLibrary.pm:768 msgid "Jump to the code that triggered the next error" msgstr "次のエラーを起こすコードに移動する" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "対応するかっこに移動する: { }, ( ), [ ], < >" #: lib/Padre/Wx/FBP/About.pm:337 msgid "Kaare Rasmussen" msgstr "Kaare Rasmussen" #: lib/Padre/Wx/FBP/About.pm:349 msgid "Kartik Thakore" msgstr "Kartik Thakore" #: lib/Padre/Wx/FBP/About.pm:307 #: lib/Padre/Wx/FBP/About.pm:597 msgid "Keedi Kim" msgstr "Keedi Kim" #: lib/Padre/Wx/FBP/About.pm:301 #: lib/Padre/Wx/FBP/About.pm:582 msgid "Kenichi Ishigaki" msgstr "Kenichi Ishigaki" #: lib/Padre/Wx/Dialog/About.pm:178 msgid "Kernel" msgstr "カーネル" #: lib/Padre/Wx/FBP/About.pm:241 msgid "Kevin Dawson" msgstr "Kevin Dawson" #: lib/Padre/Wx/FBP/Preferences.pm:1326 msgid "Key Bindings" msgstr "キー割当て" #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "キビバイト(kiB)" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "キロバイト(kB)" #: lib/Padre/Wx/FBP/About.pm:612 msgid "Kjetil Skotheim" msgstr "Kjetil Skotheim" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "クリンゴン語" #: lib/Padre/Locale.pm:336 #: lib/Padre/Wx/FBP/About.pm:588 msgid "Korean" msgstr "韓国語" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "ラベル1" #: lib/Padre/Wx/Menu/View.pm:206 msgid "Lan&guage" msgstr "言語(&g)" #: lib/Padre/Wx/FBP/Preferences.pm:1327 msgid "Language - Perl 5" msgstr "言語 - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:1328 msgid "Language - Perl 6" msgstr "言語 - Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:790 #: lib/Padre/Wx/FBP/Preferences.pm:951 msgid "Language Integration" msgstr "言語統合" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "最終更新" #: lib/Padre/Wx/Dialog/Preferences.pm:136 msgid "Left" msgstr "←" #: lib/Padre/Wx/ActionLibrary.pm:1776 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "" #: lib/Padre/Wx/FindResult.pm:181 msgid "Line" msgstr "行" #: lib/Padre/Wx/Syntax.pm:504 #, perl-format msgid "Line %d: (%s) %s" msgstr "%d 行目: (%s) %s" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "%d 行: %s" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "改行モード" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:232 #: lib/Padre/Wx/Dialog/Goto.pm:251 msgid "Line number" msgstr "行番号" #: lib/Padre/Wx/Dialog/DocStats.pm:98 #: lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "行" #: lib/Padre/Wx/ActionLibrary.pm:2159 msgid "List All Breakpoints" msgstr "ブレークポイント一覧" #: lib/Padre/Wx/ActionLibrary.pm:2160 msgid "List all the breakpoints on the console" msgstr "すべてのブレークポイントをコンソールに一覧表示する" #: lib/Padre/Wx/Dialog/WindowList.pm:211 msgid "List of open files" msgstr "開いているファイル一覧" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "セッション一覧" #: lib/Padre/Wx/ActionLibrary.pm:461 msgid "List the files that match the current selection and let the user pick one to open" msgstr "現在の選択に一致するファイルの一覧から開くファイルを選択できます" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "%s個のモジュールをロードしました" #: lib/Padre/Wx/ActionLibrary.pm:1351 msgid "Loc&k User Interface" msgstr "ユーザインタフェースをロックする(&k)" #: lib/Padre/Wx/FBP/Preferences.pm:1329 msgid "Local/Remote File Access" msgstr "ローカル/リモートファイルアクセス" #: lib/Padre/Wx/FBP/Sync.pm:57 msgid "Logged out" msgstr "ログアウトしました" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "FTPサーバに%sでログイン中..." #: lib/Padre/Wx/FBP/Sync.pm:103 msgid "Login" msgstr "ログイン" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Long hex character" msgstr "長い16進文字" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Net::FTPを探しています..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "小文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Lowercase next character" msgstr "次の文字を小文字にする" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Lowercase till \\E" msgstr "\\Eまでの文字を小文字にする" #: lib/Padre/MimeTypes.pm:525 #, perl-format msgid "MIME type did not have a class entry when %s(%s) was called" msgstr "%s(%s)が呼ばれましたがMIMEタイプにクラスが登録されていません" #: lib/Padre/MimeTypes.pm:514 #: lib/Padre/MimeTypes.pm:547 #, perl-format msgid "MIME type is not supported when %s(%s) was called" msgstr "%s(%s)が呼ばれましたがMIMEタイプが未対応です" #: lib/Padre/MimeTypes.pm:496 #, perl-format msgid "MIME type was not supported when %s(%s) was called" msgstr "%s(%s)が呼ばれましたがMIMEタイプが未対応です" #: lib/Padre/Wx/ActionLibrary.pm:1625 msgid "Make the letters bigger in the editor window" msgstr "エディタウィンドウの文字を大きくする" #: lib/Padre/Wx/ActionLibrary.pm:1635 msgid "Make the letters smaller in the editor window" msgstr "エディタウィンドウの文字を小さくする" #: lib/Padre/Wx/FBP/About.pm:447 msgid "Marcela Maslanova" msgstr "Marcela Maslanova" #: lib/Padre/Wx/ActionLibrary.pm:633 msgid "Mark Selection &End" msgstr "選択範囲の終点をマークする(&E)" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Mark Selection &Start" msgstr "選択範囲の始点をマークする(&S)" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Mark the place where the selection should end" msgstr "選択範囲の終点をマークしてください" #: lib/Padre/Wx/ActionLibrary.pm:622 msgid "Mark the place where the selection should start" msgstr "選択範囲の始点をマークしてください" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "0回以上のマッチ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "0または1回のマッチ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "1回以上のマッチ" #: lib/Padre/Wx/FBP/FindFast.pm:108 msgid "Match Case" msgstr "大文字と小文字を区別する" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "最低m回、最高n回マッチ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "最低n回マッチ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "ちょうどm回マッチ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:679 #, perl-format msgid "Match failure in %s: %s" msgstr "検索失敗 %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:690 #, perl-format msgid "Match warning in %s: %s" msgstr "検索警告 %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:699 #, perl-format msgid "Match with 0 width at character %s" msgstr "%sに0幅でマッチ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:236 msgid "Matched text:" msgstr "マッチしたテキスト:" #: lib/Padre/Wx/FBP/About.pm:432 msgid "Matthew Lien" msgstr "Matthew Lien" #: lib/Padre/Wx/FBP/About.pm:313 msgid "Max Maischein" msgstr "Max Maischein" #: lib/Padre/Wx/FBP/Preferences.pm:272 msgid "Maximum number of suggestions" msgstr "候補の最大件数" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "メッセージ" #: lib/Padre/Wx/Outline.pm:371 msgid "Methods" msgstr "メソッド" #: lib/Padre/Wx/FBP/Preferences.pm:421 msgid "Methods order" msgstr "メソッドの並び順" #: lib/Padre/Wx/FBP/Preferences.pm:290 msgid "Minimum characters for autocomplete" msgstr "オートコンプリートを実行する最小文字数" #: lib/Padre/Wx/FBP/Preferences.pm:254 msgid "Minimum length of suggestions" msgstr "候補を表示する最小の文字列長" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 msgid "Miscellaneous" msgstr "その他" #: lib/Padre/Wx/VCS.pm:235 msgid "Missing" msgstr "" #: lib/Padre/Wx/VCS.pm:231 #: lib/Padre/Wx/VCS.pm:242 msgid "Modified" msgstr "" #: lib/Padre/Wx/Main.pm:6508 #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "モジュール名:" #: lib/Padre/Wx/Outline.pm:370 msgid "Modules" msgstr "モジュール" #: lib/Padre/Wx/Directory.pm:179 msgid "Move to other panel" msgstr "他のパネルに移動" #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "Multi-line (&m)" msgstr "複数行(&m)" #: lib/Padre/Wx/ActionLibrary.pm:2338 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "Myプラグインは開発者がインストール済みのPadreを拡張するのに使うプラグインです" #: lib/Padre/Wx/FBP/FindInFiles/Output.pm:37 msgid "MyLabel" msgstr "" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "名前" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 #: lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "名前" #: lib/Padre/Wx/ActionLibrary.pm:1883 msgid "Name for the new subroutine" msgstr "新しいサブルーチン名" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "新規作成(&w)" #: lib/Padre/Wx/Main.pm:6759 msgid "Need to select text in order to translate to hex" msgstr "16進数に変換するテキストを選択してください" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "ゼロ幅の否定の先読み" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "ゼロ幅の否定の後読み" #: lib/Padre/Wx/Directory/TreeCtrl.pm:377 msgid "New Folder" msgstr "新しいフォルダ" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "新規インストール数調査" #: lib/Padre/Wx/Main.pm:6509 #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "新しいモジュール" #: lib/Padre/Document/Perl.pm:807 msgid "New name" msgstr "新しい名前" #: lib/Padre/PluginManager.pm:431 msgid "New plug-ins detected" msgstr "新しいプラグインを検出しました" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Newline" msgstr "改行" #: lib/Padre/Wx/FBP/FindFast.pm:91 msgid "Next" msgstr "次" #: lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "次の違い" #: lib/Padre/Config.pm:902 msgid "No Autoindent" msgstr "自動インデントしない" #: lib/Padre/Wx/Main.pm:2753 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Build.PL、Makefile.PL、dist.iniが見つかりません" #: lib/Padre/Wx/Dialog/HelpSearch.pm:94 msgid "No Help found" msgstr "ヘルプが見つかりませんでした" #: lib/Padre/Wx/Diff.pm:252 msgid "No changes found" msgstr "変更点は見つかりませんでした" #: lib/Padre/Document/Perl.pm:637 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "指定された(レキシカル?)変数の宣言が見つかりません" #: lib/Padre/Document/Perl.pm:886 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "指定された(レキシカル?)変数の宣言が見つかりません" #: lib/Padre/Wx/Main.pm:2720 #: lib/Padre/Wx/Main.pm:2775 #: lib/Padre/Wx/Main.pm:2827 msgid "No document open" msgstr "開いているドキュメントはありません" #: lib/Padre/Document/Perl.pm:493 msgid "No errors found." msgstr "エラーは見つかりませんでした" #: lib/Padre/Wx/Syntax.pm:422 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "" #: lib/Padre/Wx/Syntax.pm:427 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "" #: lib/Padre/Wx/Main.pm:3062 msgid "No execution mode was defined for this document type" msgstr "このドキュメントタイプには実行モードが定義されていません" #: lib/Padre/Wx/Main.pm:6250 msgid "No file is open" msgstr "開いているファイルはありません" #: lib/Padre/PluginManager.pm:1066 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "ファイル名はありません" #: lib/Padre/Wx/Dialog/RegexEditor.pm:718 msgid "No match" msgstr "見つかりませんでした" #: lib/Padre/Wx/Dialog/Find.pm:71 #: lib/Padre/Wx/Dialog/Replace.pm:526 #: lib/Padre/Wx/Dialog/Replace.pm:573 #, perl-format msgid "No matches found for \"%s\"." msgstr "「%s」は見つかりませんでした" #: lib/Padre/Document.pm:998 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "" #: lib/Padre/Wx/Main.pm:3044 msgid "No open document" msgstr "開いているドキュメントはありません" #: lib/Padre/Config.pm:466 msgid "No open files" msgstr "ファイルを開かない" #: lib/Padre/Wx/FindInFiles.pm:218 #: lib/Padre/Wx/ReplaceInFiles.pm:190 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "「%s」は「%s」以下には見つかりませんでした" #: lib/Padre/Wx/Main.pm:878 #, perl-format msgid "No such session %s" msgstr "セッション「%s」が見つかりません" #: lib/Padre/Wx/ActionLibrary.pm:819 msgid "No suggestions" msgstr "候補が見つかりません" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "キャプチャしないグループ" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "非空白文字" #: lib/Padre/Wx/Dialog/Preferences.pm:135 msgid "None" msgstr "なし" #: lib/Padre/Wx/VCS.pm:228 #: lib/Padre/Wx/FBP/VCS.pm:180 msgid "Normal" msgstr "" #: lib/Padre/Locale.pm:370 #: lib/Padre/Wx/FBP/About.pm:603 msgid "Norwegian" msgstr "ノルウェー語" #: lib/Padre/Wx/Debugger.pm:83 msgid "Not a Perl document" msgstr "Perlのドキュメントではありません" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "正の数ではありません" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "非単語境界" #: lib/Padre/Wx/Main.pm:4186 msgid "Nothing selected. Enter what should be opened:" msgstr "選択されているものがありません。開くファイル名を入力してください:" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "現在" #: lib/Padre/Wx/Menu/File.pm:78 msgid "O&pen" msgstr "開く(&p)" #: lib/Padre/Wx/FBP/Bookmarks.pm:85 #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "OK" #: lib/Padre/Wx/VCS.pm:236 msgid "Obstructed" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Octal character" msgstr "8進表記の文字" #: lib/Padre/Wx/ActionLibrary.pm:850 msgid "Offer completions to the current string. See Preferences" msgstr "現在の文字列を補完する候補を提供します。設定をご覧ください" #: lib/Padre/Wx/FBP/About.pm:319 #: lib/Padre/Wx/FBP/About.pm:483 msgid "Olivier Mengue" msgstr "Olivier Mengue" #: lib/Padre/Wx/FBP/About.pm:525 msgid "Omer Zak" msgstr "Omer Zak" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "PODがひとつしかないのでマージしません" #: lib/Padre/Wx/ActionLibrary.pm:2436 msgid "Open &CPAN Config File" msgstr "&CPANコンフィグファイルを開く" #: lib/Padre/Wx/Outline.pm:138 msgid "Open &Documentation" msgstr "ドキュメントを開く(&D)" #: lib/Padre/Wx/ActionLibrary.pm:248 msgid "Open &Example" msgstr "例を開く(&E)" #: lib/Padre/Wx/ActionLibrary.pm:259 msgid "Open &Last Closed File" msgstr "最後に閉じたファイルを開く(&L)" #: lib/Padre/Wx/ActionLibrary.pm:1326 msgid "Open &Resources..." msgstr "リソースを開く(&R)..." #: lib/Padre/Wx/ActionLibrary.pm:460 msgid "Open &Selection" msgstr "選択範囲を開く(&S)" #: lib/Padre/Wx/ActionLibrary.pm:203 msgid "Open &URL..." msgstr "&URLを開く..." #: lib/Padre/Wx/ActionLibrary.pm:2437 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "CPAN::MyConfigを開いて手直しする(上級者向け)" #: lib/Padre/Wx/Main.pm:4371 #: lib/Padre/Wx/Directory/TreeCtrl.pm:298 msgid "Open File" msgstr "ファイルを開く" #: lib/Padre/Wx/Dialog/OpenResource.pm:31 #: lib/Padre/Wx/Dialog/OpenResource.pm:77 msgid "Open Resources" msgstr "リソースを開く" #: lib/Padre/Wx/ActionLibrary.pm:471 msgid "Open S&ession..." msgstr "セッションを開く(&e)..." #: lib/Padre/Wx/Main.pm:4229 msgid "Open Selection" msgstr "選択範囲を開く" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "URLを開く" #: lib/Padre/Wx/Main.pm:4407 #: lib/Padre/Wx/Main.pm:4427 msgid "Open Warning" msgstr "警告を開く" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Open a document with a skeleton Perl 5 module" msgstr "Perl 5モジュールのひな形を埋め込んだドキュメントを開く" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "Perl 5スクリプトのひな形を埋め込んだドキュメントを開く" #: lib/Padre/Wx/ActionLibrary.pm:168 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Perl 5テストスクリプトのひな形を埋め込んだドキュメントを開く" #: lib/Padre/Wx/ActionLibrary.pm:179 msgid "Open a document with a skeleton Perl 6 script" msgstr "Perl 6スクリプトのひな形を埋め込んだドキュメントを開く" #: lib/Padre/Wx/ActionLibrary.pm:204 msgid "Open a file from a remote location" msgstr "リモートのファイルを開く" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "空の新規ドキュメントを開く" #: lib/Padre/Wx/ActionLibrary.pm:521 msgid "Open all the files listed in the recent files list" msgstr "最近使ったファイル一覧にあるすべてのファイルを開く" #: lib/Padre/Wx/ActionLibrary.pm:2329 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "WebブラウザでCPAN検索サイトを開き、Padre::Pluginパッケージの検索結果を表示する" #: lib/Padre/Wx/Menu/File.pm:384 msgid "Open cancelled" msgstr "開くのをキャンセルしました" #: lib/Padre/PluginManager.pm:1141 #: lib/Padre/Wx/Main.pm:5974 msgid "Open file" msgstr "ファイルを開く" #: lib/Padre/Wx/FBP/Preferences.pm:382 msgid "Open files" msgstr "ファイルを開く" #: lib/Padre/Wx/FBP/Preferences.pm:413 msgid "Open files in existing Padre" msgstr "既存のPadreでファイルを開く(MDIモード)" #: lib/Padre/Wx/ActionLibrary.pm:238 msgid "Open in &Command Line" msgstr "コマンドラインで開く(&C)" #: lib/Padre/Wx/ActionLibrary.pm:214 msgid "Open in File &Browser" msgstr "ファイルブラウザで開く(&B)" #: lib/Padre/Wx/Directory/TreeCtrl.pm:249 #: lib/Padre/Wx/Directory/TreeCtrl.pm:308 msgid "Open in File Browser" msgstr "ファイルブラウザで開く" #: lib/Padre/Wx/ActionLibrary.pm:2664 msgid "Open perlmonks.org, one of the biggest Perl community sites, in your default web browser" msgstr "デフォルトWebブラウザでperlmonks.org (Perl最大のコミュニティサイトのひとつ)を開く" #: lib/Padre/Wx/Main.pm:4187 msgid "Open selection" msgstr "選択範囲を開く" #: lib/Padre/Config.pm:467 msgid "Open session" msgstr "セッションを開く" #: lib/Padre/Wx/ActionLibrary.pm:2626 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "WebブラウザでPadreのライブサポートチャンネルを開いて他の人に助けを求める" #: lib/Padre/Wx/ActionLibrary.pm:2638 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "WebブラウザでPerlのライブサポートチャンネルを開いて他の人に助けを求める" #: lib/Padre/Wx/ActionLibrary.pm:2650 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "WebブラウザでPerl/Win32のライブサポートチャンネルを開いて他の人に助けを求める" #: lib/Padre/Wx/ActionLibrary.pm:2290 msgid "Open the regular expression editing window" msgstr "正規表現を編集するウィンドウを開く" #: lib/Padre/Wx/ActionLibrary.pm:2300 msgid "Open the selected text in the Regex Editor" msgstr "選択したテキストを正規表現エディタで開く" #: lib/Padre/Wx/ActionLibrary.pm:224 msgid "Open with Default &System Editor" msgstr "デフォルトのシステムエディタで開く(&S)" #: lib/Padre/Wx/Main.pm:3173 #, perl-format msgid "Opening session %s..." msgstr "セッションを開く %s..." #: lib/Padre/Wx/ActionLibrary.pm:239 msgid "Opens a command line using the current document folder" msgstr "現在のドキュメントがあるフォルダでコマンドラインを開く" #: lib/Padre/Wx/ActionLibrary.pm:215 msgid "Opens the current document using the file browser" msgstr "現在のドキュメントをファイルブラウザで開く" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Opens the file with the default system editor" msgstr "デフォルトのシステムエディタでファイルを開く" #: lib/Padre/Wx/ActionLibrary.pm:261 msgid "Opens the last closed file" msgstr "最後に閉じたファイルを開く" #: lib/Padre/Wx/FBP/Patch.pm:147 #: lib/Padre/Wx/Dialog/Replace.pm:303 msgid "Options" msgstr "オプション" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "オプション:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "元のテキスト(&i):" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "その他(ご記入ください)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "その他のイベント" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "その他の検索エンジン" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "範囲外です" #: lib/Padre/Wx/Outline.pm:241 #: lib/Padre/Wx/Outline.pm:296 msgid "Outline" msgstr "アウトライン" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "出力" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "出力ビュー" #: lib/Padre/Wx/Dialog/Preferences.pm:463 msgid "Override Shortcut" msgstr "ショートカットを上書きする" #: lib/Padre/Wx/ActionLibrary.pm:2636 msgid "P&erl Help" msgstr "P&erlヘルプ" #: lib/Padre/Wx/Menu/Tools.pm:96 msgid "P&lug-in Tools" msgstr "プラグインツール(&l)" #: lib/Padre/Wx/Main.pm:4351 msgid "PHP Files" msgstr "PHPファイル" #: lib/Padre/Wx/FBP/Preferences.pm:341 msgid "POD" msgstr "POD" #: lib/Padre/MimeTypes.pm:465 #: lib/Padre/Config.pm:1149 msgid "PPI Experimental" msgstr "PPI(実験的)" #: lib/Padre/MimeTypes.pm:470 #: lib/Padre/Config.pm:1150 msgid "PPI Standard" msgstr "PPI(標準的)" #: lib/Padre/Wx/FBP/About.pm:663 msgid "Paco Alguacil" msgstr "Paco Alguacil" #: lib/Padre/Wx/FBP/About.pm:923 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Padre開発者" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Padre開発者用ツール" #: lib/Padre/Wx/FBP/Preferences.pm:30 msgid "Padre Preferences" msgstr "設定" #: lib/Padre/Wx/FBP/Sync.pm:28 msgid "Padre Sync" msgstr "Padre Sync" #: lib/Padre/Wx/FBP/About.pm:55 msgid "Padre:-" msgstr "Padre:-" #: lib/Padre/Wx/Dialog/Preferences.pm:137 msgid "PageDown" msgstr "PageDown" #: lib/Padre/Wx/Dialog/Preferences.pm:137 msgid "PageUp" msgstr "PageUp" #: lib/Padre/Wx/FBP/Sync.pm:88 #: lib/Padre/Wx/FBP/Sync.pm:133 msgid "Password" msgstr "パスワード" #: lib/Padre/Wx/Dialog/Sync.pm:152 msgid "Password and confirmation do not match." msgstr "パスワードが一致しません" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:753 msgid "Paste the clipboard to the current location" msgstr "クリップボードの内容を現在の位置に貼り付ける" #: lib/Padre/Wx/FBP/Patch.pm:28 msgid "Patch" msgstr "パッチ" #: lib/Padre/Wx/Dialog/Patch.pm:419 msgid "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:434 msgid "Patch successful, you should see a new tab in editor called Unsaved #" msgstr "" #: lib/Padre/Wx/VCS.pm:50 msgid "Path" msgstr "パス" #: lib/Padre/Wx/FBP/About.pm:283 msgid "Patrick Donelan" msgstr "Patrick Donelan" #: lib/Padre/Wx/FBP/About.pm:325 msgid "Paweł Murias" msgstr "Paweł Murias" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:387 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/ActionLibrary.pm:178 msgid "Perl &6 Script" msgstr "Perl &6スクリプト" #: lib/Padre/Wx/ActionLibrary.pm:158 msgid "Perl 5 &Module" msgstr "Perl 5モジュール(&M)" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "Perl 5スクリプト(&S)" #: lib/Padre/Wx/ActionLibrary.pm:167 msgid "Perl 5 &Test" msgstr "Perl 5テスト(&T)" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "" #: lib/Padre/Wx/Main.pm:4349 msgid "Perl Files" msgstr "Perlファイル" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Perlフィルタ" #: lib/Padre/Wx/FBP/Preferences.pm:880 msgid "Perl beginner mode" msgstr "Perl初心者モード" #: lib/Padre/Wx/FBP/Preferences.pm:926 msgid "Perl ctags file" msgstr "Perl ctagsファイル" #: lib/Padre/Wx/FBP/Preferences.pm:807 msgid "Perl interpreter" msgstr "Perlインタプリタ" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "ペルシャ語(イラン)" #: lib/Padre/Wx/FBP/About.pm:343 msgid "Petar Shangov" msgstr "Petar Shangov" #: lib/Padre/Wx/FBP/About.pm:176 msgid "Peter Lavender: Release Manager" msgstr "Peter Lavender: Release Manager" #: lib/Padre/Wx/Dialog/Sync.pm:141 msgid "Please ensure all inputs have appropriate values." msgstr "入力した値がすべて適切か確認してください" #: lib/Padre/Wx/Dialog/Sync.pm:98 msgid "Please input a valid value for both username and password" msgstr "ユーザ名とパスワードに適切な値を入力してください" #: lib/Padre/Wx/Directory/TreeCtrl.pm:161 msgid "Please type in the new name of the directory" msgstr "新しいディレクトリ名を入力してください" #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the file" msgstr "新しいファイル名を入力してください" #: lib/Padre/Wx/Progress.pm:76 msgid "Please wait..." msgstr "お待ちください..." #: lib/Padre/Wx/ActionLibrary.pm:2328 msgid "Plug-in &List (CPAN)" msgstr "プラグイン一覧(&L) (CPAN)" #: lib/Padre/Wx/Dialog/PluginManager.pm:36 msgid "Plug-in Manager" msgstr "プラグインマネージャー" #: lib/Padre/Wx/Dialog/PluginManager.pm:103 msgid "Plug-in Name" msgstr "プラグイン名" #: lib/Padre/PluginManager.pm:1161 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "プラグインのベースディレクトリは「%s」でなければなりません" #: lib/Padre/PluginManager.pm:938 #, perl-format msgid "Plugin %s" msgstr "プラグイン %s" #: lib/Padre/PluginHandle.pm:269 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "プラグイン%sがフック一覧ではなく%sを返してきました" #: lib/Padre/PluginHandle.pm:279 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "プラグイン%sが無効なフック%sを登録しようとしました" #: lib/Padre/PluginHandle.pm:287 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "プラグイン%sがコア以外のフック%sを登録しようとしました" #: lib/Padre/PluginManager.pm:911 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "プラグイン%sの%sフックが空のエラーメッセージを返しました" #: lib/Padre/PluginManager.pm:882 #, perl-format msgid "Plugin error on event %s: %s" msgstr "プラグインエラー(イベント%s): %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 msgid "Plugins" msgstr "プラグイン" #: lib/Padre/Locale.pm:380 #: lib/Padre/Wx/FBP/About.pm:618 msgid "Polish" msgstr "ポーランド語" #: lib/Padre/Plugin/PopularityContest.pm:311 msgid "Popularity Contest Report" msgstr "人気投票結果報告" #: lib/Padre/Locale.pm:390 #: lib/Padre/Wx/FBP/About.pm:633 msgid "Portuguese (Brazil)" msgstr "ポルトガル語(ブラジル)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "ポルトガル語(ポルトガル)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "位置種別" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "正の整数" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "ゼロ幅の肯定の先読み" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "ゼロ幅の肯定の後読み" #: lib/Padre/Wx/Outline.pm:369 msgid "Pragmata" msgstr "プラグマ" #: lib/Padre/Wx/FBP/Preferences.pm:436 msgid "Prefered language for error diagnostics" msgstr "エラーメッセージの言語" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "設定名" #: lib/Padre/Wx/ActionLibrary.pm:2278 msgid "Preferences &Sync..." msgstr "設定の同期(&S)..." #: lib/Padre/Wx/Dialog/FindFast.pm:155 msgid "Previ&ous" msgstr "前(&o)" #: lib/Padre/Wx/FBP/Snippet.pm:91 msgid "Preview" msgstr "プレビュー" #: lib/Padre/Wx/FBP/FindFast.pm:75 msgid "Previous" msgstr "前" #: lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "前の違い" #: lib/Padre/Config.pm:464 msgid "Previous open files" msgstr "以前開いていたファイル" #: lib/Padre/Wx/ActionLibrary.pm:501 msgid "Print the current document" msgstr "現在のドキュメントを印刷" #: lib/Padre/Wx/FBP/Patch.pm:103 msgid "Process" msgstr "プロセス" #: lib/Padre/Wx/Directory.pm:321 #: lib/Padre/Wx/Dialog/WindowList.pm:223 msgid "Project" msgstr "プロジェクト" #: lib/Padre/Wx/ActionLibrary.pm:1425 msgid "Project Browser - Was known as the Directory Tree" msgstr "プロジェクトブラウザ (ディレクトリツリー)" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "プロジェクトツール" #: lib/Padre/Config.pm:673 msgid "Project Tools (Left)" msgstr "プロジェクトツール(左)" #: lib/Padre/Wx/ActionLibrary.pm:1803 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "句読点" #: lib/Padre/Wx/ActionLibrary.pm:2449 msgid "Put focus on the next tab to the right" msgstr "右隣のタブにフォーカスを移す" #: lib/Padre/Wx/ActionLibrary.pm:2460 msgid "Put focus on the previous tab to the left" msgstr "左隣のタブにフォーカスを移す" #: lib/Padre/Wx/ActionLibrary.pm:736 msgid "Put the content of the current document in the clipboard" msgstr "現在のドキュメントの内容をクリップボードに入れる" #: lib/Padre/Wx/ActionLibrary.pm:676 msgid "Put the current selection in the clipboard" msgstr "現在の選択範囲をクリップボードに入れる" #: lib/Padre/Wx/ActionLibrary.pm:692 msgid "Put the full path of the current file in the clipboard" msgstr "現在のファイルの完全パス名をクリップボードに入れる" #: lib/Padre/Wx/ActionLibrary.pm:722 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "現在のファイルがあるディレクトリの完全パス名をクリップボードに入れる" #: lib/Padre/Wx/ActionLibrary.pm:707 msgid "Put the name of the current file in the clipboard" msgstr "現在のファイル名をクリップボードに入れる" #: lib/Padre/Wx/Main.pm:4353 msgid "Python Files" msgstr "Pythonファイル" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:41 msgid "Quick Menu Access" msgstr "クイックメニューアクセス" #: lib/Padre/Wx/ActionLibrary.pm:1338 msgid "Quick access to all menu functions" msgstr "すべてのメニュー機能に素早くアクセスする" #: lib/Padre/Wx/ActionLibrary.pm:2251 msgid "Quit Debugger (&q)" msgstr "デバッガを終了する(&q)" #: lib/Padre/Wx/ActionLibrary.pm:2252 msgid "Quit the process being debugged" msgstr "デバッグ中のプロセスを終了する" #: lib/Padre/Wx/Dialog/RegexEditor.pm:157 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "\\Eが出てくるまでパターン中のメタ文字をクォートする(無効にする)" #: lib/Padre/Wx/StatusBar.pm:435 msgid "R/W" msgstr "R/W" #: lib/Padre/Wx/Dialog/About.pm:195 msgid "RAM" msgstr "RAM" #: lib/Padre/Wx/Menu/File.pm:167 msgid "Re&load" msgstr "リロードする(&l)" #: lib/Padre/Wx/ActionLibrary.pm:2385 msgid "Re&load All Plug-ins" msgstr "すべてのプラグインをリロードする(&l)" #: lib/Padre/Wx/ActionLibrary.pm:1272 msgid "Re&place in Files..." msgstr "複数ファイル置換(&R)..." #: lib/Padre/Wx/ActionLibrary.pm:2363 msgid "Re&set My plug-in" msgstr "Myプラグインをリセットする(&s)" #: lib/Padre/Wx/StatusBar.pm:435 msgid "Read Only" msgstr "読込専用" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "FTPサーバからファイルを読み込んでいます..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 msgid "Reading items. Please wait" msgstr "読み込み中。お待ちください" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:347 msgid "Reading items. Please wait..." msgstr "読み込み中。お待ちください..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:211 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "本当に「%s」を削除してもよいですか" #: lib/Padre/Wx/ActionLibrary.pm:595 msgid "Redo last undo" msgstr "最後のアンドゥを取り消す" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "リファクタリング(&a)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 msgid "Refactor" msgstr "リファクタリング" #: lib/Padre/Wx/Directory.pm:166 msgid "Refresh" msgstr "リフレッシュする" #: lib/Padre/Wx/FBP/VCS.pm:142 msgid "Refresh the status of working copy files and directories" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:507 msgid "RegExp for TODO panel" msgstr "TODOパネル用の正規表現" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "正規表現エディタ" #: lib/Padre/Wx/FBP/Sync.pm:191 msgid "Register" msgstr "登録する" #: lib/Padre/Wx/FBP/Sync.pm:330 msgid "Registration" msgstr "登録" #: lib/Padre/Wx/Dialog/Replace.pm:93 msgid "Regular &Expression" msgstr "正規表現(&E)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "ほかのコンピュータに(再)インストールする" #: lib/Padre/Wx/FindResult.pm:129 msgid "Related editor has been closed" msgstr "関連づけられていたエディタが閉じられました" #: lib/Padre/Wx/ActionLibrary.pm:386 msgid "Reload &All" msgstr "すべてリロード(&A)" #: lib/Padre/Wx/ActionLibrary.pm:376 msgid "Reload &File" msgstr "ファイルをリロードする(&F)" #: lib/Padre/Wx/ActionLibrary.pm:396 msgid "Reload &Some..." msgstr "リロードする(&S)..." #: lib/Padre/Wx/Main.pm:4529 msgid "Reload all files" msgstr "すべてのファイルをリロードする" #: lib/Padre/Wx/ActionLibrary.pm:387 msgid "Reload all files currently open" msgstr "現在開いているすべてのファイルをリロードする" #: lib/Padre/Wx/ActionLibrary.pm:2386 msgid "Reload all plug-ins from &disk" msgstr "すべてのプラグインをディスクからリロードする(&d)" #: lib/Padre/Wx/ActionLibrary.pm:377 msgid "Reload current file from disk" msgstr "現在のファイルをディスクからリロードする" #: lib/Padre/Wx/Main.pm:4576 msgid "Reload some" msgstr "リロードする" #: lib/Padre/Wx/Main.pm:4560 #: lib/Padre/Wx/Main.pm:6431 msgid "Reload some files" msgstr "いくつかのファイルをリロードする" #: lib/Padre/Wx/ActionLibrary.pm:2395 msgid "Reloads (or initially loads) the current plug-in" msgstr "現在のプラグインを(リ)ロードする" #: lib/Padre/Wx/ActionLibrary.pm:2144 msgid "Remove Breakpoint" msgstr "ブレークポイントを削除する" #: lib/Padre/Wx/ActionLibrary.pm:646 msgid "Remove all the selection marks" msgstr "選択範囲のマークをクリアする" #: lib/Padre/Wx/ActionLibrary.pm:958 msgid "Remove comment for selected lines or the current line" msgstr "選択した行ないし現在の行のコメントを外す" #: lib/Padre/Wx/ActionLibrary.pm:2145 msgid "Remove the breakpoint at the current location of the cursor" msgstr "カーソルの現在位置にあるブレークポイントを削除する" #: lib/Padre/Wx/ActionLibrary.pm:661 msgid "Remove the current selection and put it in the clipboard" msgstr "現在の選択範囲を削除してクリップボードに移す" #: lib/Padre/Wx/ActionLibrary.pm:530 msgid "Remove the entries from the recent files list" msgstr "最近使ったファイル一覧からエントリを削除する" #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Remove the spaces from the beginning of the selected lines" msgstr "選択した行頭の空白を削除する" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Remove the spaces from the end of the selected lines" msgstr "選択した行末の空白を削除する" #: lib/Padre/Wx/Directory/TreeCtrl.pm:374 #: lib/Padre/Wx/Directory/TreeCtrl.pm:376 msgid "Rename" msgstr "リネーム" #: lib/Padre/Wx/Directory/TreeCtrl.pm:273 msgid "Rename Directory" msgstr "ディレクトリをリネームする" #: lib/Padre/Wx/Directory/TreeCtrl.pm:332 msgid "Rename File" msgstr "ファイルをリネームする" #: lib/Padre/Wx/Directory/TreeCtrl.pm:162 msgid "Rename directory" msgstr "ディレクトリをリネームする" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename file" msgstr "ファイルをリネームする" #: lib/Padre/Document/Perl.pm:798 #: lib/Padre/Document/Perl.pm:808 msgid "Rename variable" msgstr "変数をリネームする" #: lib/Padre/Wx/VCS.pm:245 msgid "Renamed" msgstr "リネームしました" #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Repeat the last find to find the next match" msgstr "最後に実行した検索をドキュメントの末尾方向に再実行する" #: lib/Padre/Wx/ActionLibrary.pm:1226 msgid "Repeat the last find, but backwards to find the previous match" msgstr "最後に実行した検索をドキュメントの先頭方向に再実行する" #: lib/Padre/Wx/Dialog/Replace.pm:249 msgid "Replace" msgstr "置換(&R)" #: lib/Padre/Wx/Dialog/Replace.pm:135 msgid "Replace &All" msgstr "全置換(&A)" #: lib/Padre/Document/Perl.pm:892 #: lib/Padre/Document/Perl.pm:941 msgid "Replace Operation Canceled" msgstr "置換はキャンセルされました" #: lib/Padre/Wx/Dialog/Replace.pm:257 msgid "Replace Text:" msgstr "置換:" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:63 msgid "Replace With" msgstr "置換する語" #: lib/Padre/Wx/Dialog/RegexEditor.pm:491 msgid "Replace all occurrences of the pattern" msgstr "このパターンを見つけたらすべて置換します" #: lib/Padre/Wx/ReplaceInFiles.pm:179 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "置換完了。「%s」は%d件見つかりました(ファイル数 %d、検索ディレクトリ %s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:763 #, perl-format msgid "Replace failure in %s: %s" msgstr "置換失敗。%s: %s" #: lib/Padre/Wx/ReplaceInFiles.pm:228 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:29 msgid "Replace in Files" msgstr "複数ファイル置換" #: lib/Padre/Wx/Dialog/Replace.pm:564 #, perl-format msgid "Replaced %d match" msgstr "%d件置換しました" #: lib/Padre/Wx/Dialog/Replace.pm:564 #, perl-format msgid "Replaced %d matches" msgstr "%d件置換しました" #: lib/Padre/Wx/ReplaceInFiles.pm:120 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr "「%s」を置換中(%s)..." #: lib/Padre/Wx/ActionLibrary.pm:2674 msgid "Report a New &Bug" msgstr "新しいバグを報告する(&B)" #: lib/Padre/Wx/ActionLibrary.pm:2370 msgid "Reset My plug-in" msgstr "Myプラグインをリセットする" #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "Reset the My plug-in to the default" msgstr "Myプラグインをデフォルトにリセットする" #: lib/Padre/Wx/ActionLibrary.pm:1645 msgid "Reset the size of the letters to the default in the editor window" msgstr "エディタウィンドウの文字の大きさをデフォルトにリセット" #: lib/Padre/Wx/FBP/Preferences.pm:768 msgid "Reset to default shortcut" msgstr "デフォルトのショートカットに戻す" #: lib/Padre/Wx/Main.pm:3202 msgid "Restore focus..." msgstr "フォーカスを復元する..." #: lib/Padre/Wx/FBP/VCS.pm:122 msgid "Restore pristine working copy file (undo most local edits)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Return" msgstr "戻る" #: lib/Padre/Wx/VCS.pm:552 msgid "Revert changes?" msgstr "" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "この変更を取り消す" #: lib/Padre/Wx/VCS.pm:52 msgid "Revision" msgstr "リビジョン" #: lib/Padre/Wx/Dialog/Preferences.pm:136 msgid "Right" msgstr "→" #: lib/Padre/Wx/Main.pm:4355 msgid "Ruby Files" msgstr "Rubyファイル" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 msgid "Run" msgstr "実行" #: lib/Padre/Wx/ActionLibrary.pm:1976 msgid "Run &Build and Tests" msgstr "ビルドとテストを実行する(&B)" #: lib/Padre/Wx/ActionLibrary.pm:1965 msgid "Run &Command" msgstr "コマンドを実行する(&C)" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "Padre内部でドキュメントを実行する(&D)" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "Padre内部で選択範囲を実行する(&S)" #: lib/Padre/Wx/ActionLibrary.pm:1988 msgid "Run &Tests" msgstr "テストを実行する(&T)" #: lib/Padre/Wx/ActionLibrary.pm:1953 msgid "Run Script (&Debug Info)" msgstr "スクリプトを実行する (デバッグ情報)(&D)" #: lib/Padre/Wx/ActionLibrary.pm:2007 msgid "Run T&his Test" msgstr "このテストを実行する(&h)" #: lib/Padre/Wx/ActionLibrary.pm:1990 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "現在のプロジェクトないしドキュメントの全テストを実行して結果を出力パネルに表示する" #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "フィルタを実行する" #: lib/Padre/Wx/Main.pm:2691 msgid "Run setup" msgstr "セットアップを実行する" #: lib/Padre/Wx/ActionLibrary.pm:1954 msgid "Run the current document but include debug info in the output." msgstr "現在のドキュメントを実行する (デバッグ情報も出力に含める)" #: lib/Padre/Wx/ActionLibrary.pm:2008 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "現在のドキュメントがテストならテストを実行する (prove -lv)" #: lib/Padre/Wx/ActionLibrary.pm:2098 msgid "Run till Breakpoint (&c)" msgstr "ブレークポイントまで実行する(&c)" #: lib/Padre/Wx/ActionLibrary.pm:2174 msgid "Run to Cursor" msgstr "カーソルまで実行" #: lib/Padre/Wx/ActionLibrary.pm:1966 msgid "Runs a shell command and shows the output." msgstr "シェルコマンドを実行して出力を表示する" #: lib/Padre/Wx/ActionLibrary.pm:1938 msgid "Runs the current document and shows its output in the output panel." msgstr "現在のドキュメントを実行して結果を出力パネルに表示する" #: lib/Padre/Locale.pm:410 #: lib/Padre/Wx/FBP/About.pm:675 msgid "Russian" msgstr "ロシア語" #: lib/Padre/Wx/FBP/About.pm:247 msgid "Ryan Niebur" msgstr "Ryan Niebur" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "保存(&a)" #: lib/Padre/Wx/FBP/Preferences.pm:725 msgid "S&et" msgstr "設定(&e)" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Main.pm:4357 msgid "SQL Files" msgstr "SQLファイル" #: lib/Padre/Wx/Dialog/Patch.pm:581 #, perl-format msgid "SVN Diff successful, you should see a new tab in editor called %s" msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "保存" #: lib/Padre/Wx/ActionLibrary.pm:423 msgid "Save &As..." msgstr "名前をつけて保存する(&A)..." #: lib/Padre/Wx/ActionLibrary.pm:436 msgid "Save &Intuition" msgstr "適切なファイル名をつけて保存する(&I)" #: lib/Padre/Wx/ActionLibrary.pm:447 msgid "Save All" msgstr "すべて保存する" #: lib/Padre/Wx/ActionLibrary.pm:483 msgid "Save Sess&ion..." msgstr "セッションを保存する(&i)" #: lib/Padre/Document.pm:1484 msgid "Save Warning" msgstr "警告を保存する" #: lib/Padre/Wx/ActionLibrary.pm:448 msgid "Save all the files" msgstr "すべてのファイルを保存する" #: lib/Padre/Wx/ActionLibrary.pm:411 msgid "Save current document" msgstr "現在のドキュメントを保存する" #: lib/Padre/Wx/Main.pm:4753 msgid "Save file as..." msgstr "名前をつけて保存する..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "名前をつけてセッションを保存する..." #: lib/Padre/Wx/FBP/VCS.pm:42 msgid "Schedule the file or directory for addition to the repository" msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:62 msgid "Schedule the file or directory for deletion from the repository" msgstr "" #: lib/Padre/MimeTypes.pm:449 #: lib/Padre/MimeTypes.pm:458 #: lib/Padre/Config.pm:1148 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/Main.pm:4363 msgid "Script Files" msgstr "スクリプトファイル" #: lib/Padre/Wx/FBP/Preferences.pm:849 msgid "Script arguments" msgstr "スクリプトの引数" #: lib/Padre/Wx/Directory.pm:82 #: lib/Padre/Wx/Directory.pm:514 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:385 #: lib/Padre/Wx/Dialog/Find.pm:74 msgid "Search" msgstr "検索" #: lib/Padre/Wx/FBP/Find.pm:79 #: lib/Padre/Wx/Dialog/Replace.pm:121 msgid "Search &Backwards" msgstr "後方検索(&B)" #: lib/Padre/Wx/FBP/FindInFiles.pm:38 #: lib/Padre/Wx/FBP/Find.pm:38 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:38 msgid "Search &Term" msgstr "検索語(&T)" #: lib/Padre/Document/Perl.pm:643 msgid "Search Canceled" msgstr "検索はキャンセルされました" #: lib/Padre/Wx/FindInFiles.pm:230 #, perl-format msgid "Search again for '%s'" msgstr "「%s」を再検索" #: lib/Padre/Wx/Dialog/Replace.pm:527 #: lib/Padre/Wx/Dialog/Replace.pm:569 #: lib/Padre/Wx/Dialog/Replace.pm:574 msgid "Search and Replace" msgstr "検索と置換" #: lib/Padre/Wx/ActionLibrary.pm:1273 msgid "Search and replace text in all files below a given directory" msgstr "指定したディレクトリ以下にあるすべてのファイルのテキストを検索・置換する" #: lib/Padre/Wx/FindInFiles.pm:208 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "検索完了。「%s」は%d件見つかりました(ファイル数 %d、検索ディレクトリ %s)" #: lib/Padre/Wx/ActionLibrary.pm:1257 msgid "Search for a text in all files below a given directory" msgstr "指定したディレクトリ以下にあるすべてのファイルのテキストを検索する" #: lib/Padre/Wx/Browser.pm:92 #: lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "perldocを検索する(Padre::Task, Net::LDAPなど)" #: lib/Padre/Wx/CPAN2.pm:126 msgid "Search in recent" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2589 msgid "Search the Perl help pages (perldoc)" msgstr "Perlのヘルプページ(perldoc)を検索する" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "検索:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "「%s」の検索に失敗しました..." #: lib/Padre/Wx/ActionLibrary.pm:1726 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "対応するかっこのないかっこを検索する" #: lib/Padre/Wx/FindInFiles.pm:157 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "「%s」を検索中(%s)..." #: lib/Padre/Wx/FBP/About.pm:199 #: lib/Padre/Wx/FBP/About.pm:504 msgid "Sebastian Willing" msgstr "Sebastian Willing" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "ラベル2" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "詳しくは http://padre.perlide.org/ をご覧ください" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "選択する" #: lib/Padre/Wx/ActionLibrary.pm:608 msgid "Select &All" msgstr "すべてを選択(&A)" #: lib/Padre/Wx/Dialog/FindInFiles.pm:60 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:53 msgid "Select Directory" msgstr "ディレクトリを選択" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "関数を選択" #: lib/Padre/Wx/ActionLibrary.pm:1313 msgid "Select a bookmark created earlier and jump to that position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Select a date, filename or other value and insert at the current location" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:933 msgid "Select a file" msgstr "ファイルを選択" #: lib/Padre/Wx/ActionLibrary.pm:920 msgid "Select a file and insert its content at the current location" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:404 msgid "Select a folder" msgstr "フォルダを選択" #: lib/Padre/Wx/ActionLibrary.pm:473 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:609 msgid "Select all the text in the current document" msgstr "現在のドキュメントのすべてのテキストを選択" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Select an encoding and encode the document to that" msgstr "文字コードを選択してドキュメントを変換する" #: lib/Padre/Wx/ActionLibrary.pm:908 msgid "Select and insert a snippet at the current location" msgstr "スニペットを選択して現在の位置に挿入" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "インストールするディストリビューションを選択してください" #: lib/Padre/Wx/Main.pm:5271 msgid "Select files to close:" msgstr "閉じるファイルを選択してください:" #: lib/Padre/Wx/Dialog/OpenResource.pm:236 msgid "Select one or more resources to open" msgstr "開くリソースを選択する" #: lib/Padre/Wx/ActionLibrary.pm:347 msgid "Select some open files for closing" msgstr "閉じるファイルを選択する" #: lib/Padre/Wx/ActionLibrary.pm:397 msgid "Select some open files for reload" msgstr "リロードするファイルを選択する" #: lib/Padre/Wx/Dialog/HelpSearch.pm:130 msgid "Select the help &topic" msgstr "ヘルプトピックを選択してください(&t)" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "Select to Matching &Brace" msgstr "対応するかっこまで選択(&B)" #: lib/Padre/Wx/ActionLibrary.pm:872 msgid "Select to the matching opening or closing brace" msgstr "対応するかっこまで選択する" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:40 msgid "Selection" msgstr "選択" #: lib/Padre/Document/Perl.pm:935 msgid "Selection not part of a Perl statement?" msgstr "選択範囲は本当にPerlのステートメントですか?" #: lib/Padre/Wx/ActionLibrary.pm:2675 msgid "Send a bug report to the Padre developer team" msgstr "Padre開発チームにバグレポートを送る" #: lib/Padre/Wx/FBP/VCS.pm:102 msgid "Send changes from your working copy to the repository" msgstr "" #: lib/Padre/File/HTTP.pm:51 #, perl-format msgid "Sending HTTP request %s..." msgstr "HTTPリクエストを送信中 %s..." #: lib/Padre/Wx/FBP/Sync.pm:37 msgid "Server" msgstr "サーバ" #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "セッションマネージャー" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "セッション名:" #: lib/Padre/Wx/ActionLibrary.pm:1301 msgid "Set &Bookmark" msgstr "しおりをはさむ(&B)" #: lib/Padre/Wx/FBP/Bookmarks.pm:37 msgid "Set Bookmark" msgstr "しおりをはさむ" #: lib/Padre/Wx/ActionLibrary.pm:2129 msgid "Set Breakpoint (&b)" msgstr "ブレークポイントを設定する(&b)" #: lib/Padre/Wx/ActionLibrary.pm:1661 msgid "Set Padre in full screen mode" msgstr "Padreを全画面モードにする" #: lib/Padre/Wx/ActionLibrary.pm:2175 msgid "Set a breakpoint at the line where to cursor is and run till there" msgstr "カーソルのある行にブレークポイントを設定して、そこまで実行する" #: lib/Padre/Wx/ActionLibrary.pm:2130 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "カーソルの現在位置に条件付きブレークポイントを設定する" #: lib/Padre/Wx/ActionLibrary.pm:2114 msgid "Set focus to the line where the current statement is in the debugging process" msgstr "デバッグ中に実行中の文がある行にフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:2486 msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "CPANエクスプローラウィンドウにフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:2555 msgid "Set the focus to the \"Command Line\" window" msgstr "コマンドラインウィンドウにフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:2497 msgid "Set the focus to the \"Functions\" window" msgstr "関数ウィンドウにフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:2522 msgid "Set the focus to the \"Outline\" window" msgstr "アウトラインウィンドウにフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:2533 msgid "Set the focus to the \"Output\" window" msgstr "出力ウィンドウにフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:2544 msgid "Set the focus to the \"Syntax Check\" window" msgstr "構文チェックウィンドウにフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:2509 msgid "Set the focus to the \"Todo\" window" msgstr "TODOウィンドウにフォーカスを移動する" #: lib/Padre/Wx/ActionLibrary.pm:2566 msgid "Set the focus to the main editor window" msgstr "メインのエディタウィンドウにフォーカスを移動する" #: lib/Padre/Wx/FBP/Preferences.pm:730 msgid "Sets the keyboard binding" msgstr "キーボード割り当てを設定する" #: lib/Padre/Config.pm:517 #: lib/Padre/Config.pm:528 msgid "Several placeholders like the filename can be used" msgstr "ファイル名などいくつかのプレースホルダが利用できます" #: lib/Padre/Wx/Syntax.pm:55 msgid "Severe Warning" msgstr "強い警告" #: lib/Padre/Wx/ActionLibrary.pm:2279 msgid "Share your preferences between multiple computers" msgstr "複数のコンピュータで設定を共有する" #: lib/Padre/MimeTypes.pm:309 msgid "Shell Script" msgstr "シェルスクリプト" #: lib/Padre/Wx/FBP/Preferences.pm:702 msgid "Shift" msgstr "Shift" #: lib/Padre/Wx/FBP/About.pm:531 msgid "Shlomi Fish" msgstr "Shlomi Fish" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "ショートカット" #: lib/Padre/Wx/FBP/Preferences.pm:674 msgid "Shortcut:" msgstr "ショートカット:" #: lib/Padre/Wx/FBP/Preferences.pm:491 msgid "Shorten the common path in window list" msgstr "ウィンドウ一覧で共通のパスを短縮する" #: lib/Padre/Wx/FBP/VCS.pm:246 msgid "Show" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1383 msgid "Show &Command Line" msgstr "コマンドラインを表示する(&C)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:216 msgid "Show &Description" msgstr "説明を表示する(&D)" #: lib/Padre/Wx/ActionLibrary.pm:1373 msgid "Show &Functions" msgstr "関数を表示する(&F)" #: lib/Padre/Wx/ActionLibrary.pm:1601 msgid "Show &Indentation Guide" msgstr "インデントガイドを表示する(&I)" #: lib/Padre/Wx/ActionLibrary.pm:1413 msgid "Show &Outline" msgstr "アウトラインを表示する(&O)" #: lib/Padre/Wx/ActionLibrary.pm:1363 msgid "Show &Output" msgstr "出力を表示する(&O)" #: lib/Padre/Wx/ActionLibrary.pm:1424 msgid "Show &Project Browser" msgstr "プロジェクトブラウザを表示する(&P)" #: lib/Padre/Wx/ActionLibrary.pm:1403 msgid "Show &To-do List" msgstr "&TODO一覧を表示する" #: lib/Padre/Wx/ActionLibrary.pm:1591 msgid "Show &Whitespaces" msgstr "空白を表示する(&W)" #: lib/Padre/Wx/ActionLibrary.pm:1559 msgid "Show C&urrent Line" msgstr "現在の行を表示する(&u)" #: lib/Padre/Wx/ActionLibrary.pm:1393 msgid "Show CPA&N Explorer" msgstr "CPANエクスプローラを表示する(&N)" #: lib/Padre/Wx/ActionLibrary.pm:1545 msgid "Show Ca&ll Tips" msgstr "コールチップを表示する(&l)" #: lib/Padre/Wx/FBP/CPAN.pm:121 msgid "Show Changes" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1504 msgid "Show Code &Folding" msgstr "コードの折りたたみを表示する(&F)" #: lib/Padre/Wx/ActionLibrary.pm:1493 msgid "Show Line &Numbers" msgstr "行番号を表示する(&N)" #: lib/Padre/Wx/ActionLibrary.pm:1581 msgid "Show Ne&wlines" msgstr "改行を表示する(&w)" #: lib/Padre/Wx/ActionLibrary.pm:1569 msgid "Show Right &Margin" msgstr "右マージンを表示する(&M)" #: lib/Padre/Wx/ActionLibrary.pm:1434 msgid "Show S&yntax Check" msgstr "構文チェックを表示する(&y)" #: lib/Padre/Wx/ActionLibrary.pm:1454 msgid "Show St&atus Bar" msgstr "ステータスバーを表示する(&a)" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Show Stack Trace (&t)" msgstr "スタックトレースを表示する(&t)" #: lib/Padre/Wx/FBP/Syntax.pm:70 msgid "Show Standard Error" msgstr "標準エラーを表示する" #: lib/Padre/Wx/Dialog/RegexEditor.pm:246 msgid "Show Subs&titution" msgstr "関数を表示する(&t)" #: lib/Padre/Wx/ActionLibrary.pm:1464 msgid "Show Tool&bar" msgstr "ツールバーを表示する(&b)" #: lib/Padre/Wx/ActionLibrary.pm:1444 msgid "Show V&ersion Control" msgstr "バージョン管理システムを表示する(&e)" #: lib/Padre/Wx/ActionLibrary.pm:2220 msgid "Show Value Now (&x)" msgstr "現在の値を表示する(&x)" #: lib/Padre/Wx/ActionLibrary.pm:1570 msgid "Show a vertical line indicating the right margin" msgstr "右マージンを示す縦線を表示する" #: lib/Padre/Wx/ActionLibrary.pm:1374 msgid "Show a window listing all the functions in the current document" msgstr "現在のドキュメントのすべての関数を一覧表示するウィンドウを表示する" #: lib/Padre/Wx/ActionLibrary.pm:1414 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "現在のファイルのすべてのパーツ(関数、プラグマ、モジュール)を一覧するウィンドウを表示する" #: lib/Padre/Wx/ActionLibrary.pm:1404 msgid "Show a window listing all todo items in the current document" msgstr "現在のドキュメントのTODO項目を一覧表示するウィンドウを表示する" #: lib/Padre/Wx/Menu/Edit.pm:299 msgid "Show as" msgstr "選択範囲の表記..." #: lib/Padre/Wx/ActionLibrary.pm:1143 msgid "Show as &Decimal" msgstr "10進数表記(&D)" #: lib/Padre/Wx/ActionLibrary.pm:1133 msgid "Show as &Hexadecimal" msgstr "16進数表記(&H)" #: lib/Padre/Plugin/PopularityContest.pm:208 msgid "Show current report" msgstr "現在のレポートを表示する" #: lib/Padre/Wx/ActionLibrary.pm:2715 msgid "Show information about Padre" msgstr "Padreの情報を表示する" #: lib/Padre/Wx/FBP/Preferences.pm:96 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "優先度の低いメッセージは(ポップアップではなく)ステータスバーに表示" #: lib/Padre/Config.pm:1167 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "優先度の低いメッセージは(ポップアップではなく)ステータスバーに表示" #: lib/Padre/Config.pm:777 msgid "Show or hide the status bar at the bottom of the window." msgstr "ウィンドウの最下部にステータスバーを表示する/隠す" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "以前の位置を表示する" #: lib/Padre/Wx/FBP/Preferences.pm:104 msgid "Show right margin at column" msgstr "カラムに右マージンを表示する" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "選択したテキストの10進表記を出力ウィンドウに表示する" #: lib/Padre/Wx/ActionLibrary.pm:1134 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "選択したテキストの16進表記を出力ウィンドウに表示する" #: lib/Padre/Wx/ActionLibrary.pm:2614 msgid "Show the POD (Perldoc) version of the current document" msgstr "現在のドキュメントのPOD (Perldoc)バージョンを表示する" #: lib/Padre/Wx/ActionLibrary.pm:2580 msgid "Show the Padre help" msgstr "Padreヘルプを表示する" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Padreプラグインマネージャを表示してプラグインを有効/無効にする" #: lib/Padre/Wx/ActionLibrary.pm:1384 msgid "Show the command line window" msgstr "コマンドラインウィンドウを表示する" #: lib/Padre/Wx/ActionLibrary.pm:2601 msgid "Show the help article for the current context" msgstr "現在のコンテキストにあったヘルプ記事を表示する" #: lib/Padre/Wx/ActionLibrary.pm:2221 msgid "Show the value of a variable now in a pop-up window." msgstr "現在の変数の値をポップアップウィンドウに表示する" #: lib/Padre/Wx/ActionLibrary.pm:1364 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "実行中のスクリプトの標準出力と標準エラーの内容を表示するウィンドウを表示する" #: lib/Padre/Wx/ActionLibrary.pm:1714 msgid "Show what perl thinks about your code" msgstr "perlがコードをどのように評価しているかを表示する" #: lib/Padre/Wx/ActionLibrary.pm:1505 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1494 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "すべてのドキュメントの行番号をウィンドウの左側に表示する/しない" #: lib/Padre/Wx/ActionLibrary.pm:1582 msgid "Show/hide the newlines with special character" msgstr "改行を特殊な文字で表示する/しない" #: lib/Padre/Wx/ActionLibrary.pm:1455 msgid "Show/hide the status bar at the bottom of the screen" msgstr "ウィンドウの最下部にステータスバーを表示する/しない" #: lib/Padre/Wx/ActionLibrary.pm:1592 msgid "Show/hide the tabs and the spaces with special characters" msgstr "タブや空白を特殊な文字で表示する/しない" #: lib/Padre/Wx/ActionLibrary.pm:1465 msgid "Show/hide the toolbar at the top of the editor" msgstr "エディタの最上部にツールバーを表示する/しない" #: lib/Padre/Wx/ActionLibrary.pm:1602 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "インデントごとに縦線を表示する/しない" #: lib/Padre/Config.pm:451 msgid "Showing the splash image during start-up" msgstr "起動時にスプラッシュ画像を表示する" #: lib/Padre/Wx/FBP/About.pm:567 msgid "Simone Blandino" msgstr "Simone Blandino" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "Simplistic Patch only works on saved files" msgstr "" #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "バックグラウンドでのクラッシュをシミュレートする(&B)" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "クラッシュをシミュレートする(&C)" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "バックグラウンドでの例外をシミュレートする(&E)" #: lib/Padre/Wx/ActionLibrary.pm:2472 msgid "Simulate a right mouse button click to open the context menu" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "Single-line (&s)" msgstr "単一行(&s)" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "大きさ" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "フィードバックせずに質問をスキップする" #: lib/Padre/Wx/Dialog/OpenResource.pm:268 msgid "Skip using MANIFEST.SKIP" msgstr "MANIFEST.SKIPを使ってスキップ" #: lib/Padre/Wx/Dialog/OpenResource.pm:264 msgid "Skip version control system files" msgstr "バージョン管理システムのファイルはスキップする" #: lib/Padre/Document.pm:2051 #: lib/Padre/Document.pm:2052 msgid "Skipped for large files" msgstr "大きなファイルでは省略" #: lib/Padre/MimeTypes.pm:466 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "遅いですが正確。自前のモジュールなのでバグ対応も可" #: lib/Padre/Wx/FBP/Snippet.pm:60 msgid "Snippet" msgstr "スニペット" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "Padreデータベースに問題があります\n" "セッション%sは登録済みですがデータがありません" #: lib/Padre/Wx/Dialog/Patch.pm:502 msgid "Sorry Diff Failed, are you sure your choice of files was correct for this action" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:597 msgid "Sorry Diff Failed, are you sure your have access to the repository for this action" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:446 msgid "Sorry Patch Failed, are you sure your choice of files was correct for this action" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:135 msgid "Space" msgstr "スペース" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Space and tab" msgstr "スペースとタブ" #: lib/Padre/Wx/Main.pm:6278 msgid "Space to Tab" msgstr "スペースからタブ" #: lib/Padre/Wx/ActionLibrary.pm:1042 msgid "Spaces to &Tabs..." msgstr "スペースからタブ(&T)..." #: lib/Padre/Locale.pm:248 #: lib/Padre/Wx/FBP/About.pm:654 msgid "Spanish" msgstr "スペイン語" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "スペイン語(アルゼンチン)" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "Special &Value..." msgstr "特殊な値(&V)..." #: lib/Padre/Config.pm:1414 msgid "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "Devel::EndStatsのオプションを指定してください。'feature_devel_endstats'を有効にする必要もあります。" #: lib/Padre/Config.pm:1433 msgid "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "Devel::TraceUseのオプションを指定してください。'feature_devel_traceuse'を有効にする必要もあります。" #: lib/Padre/Wx/ActionLibrary.pm:2099 msgid "Start running and/or continue running till next breakpoint or watch" msgstr "次のブレークポイントないしウォッチ式まで実行する" #: lib/Padre/Wx/Main.pm:6250 msgid "Stats" msgstr "統計" #: lib/Padre/Wx/VCS.pm:49 #: lib/Padre/Wx/FBP/Sync.pm:51 #: lib/Padre/Wx/Dialog/PluginManager.pm:69 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 msgid "Status" msgstr "ステータス" #: lib/Padre/Wx/FBP/About.pm:211 msgid "Steffen Muller" msgstr "Steffen Muller" #: lib/Padre/Wx/ActionLibrary.pm:2047 msgid "Step In (&s)" msgstr "ステップイン(&s)" #: lib/Padre/Wx/ActionLibrary.pm:2082 msgid "Step Out (&r)" msgstr "ステップアウト(&r)" #: lib/Padre/Wx/ActionLibrary.pm:2064 msgid "Step Over (&n)" msgstr "ステップオーバー(&n)" #: lib/Padre/Wx/ActionLibrary.pm:2020 msgid "Stop a running task." msgstr "実行中のタスクを停止する" #: lib/Padre/Wx/FindInFiles.pm:76 msgid "Stop search" msgstr "検索を中断する" #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "キューに入っているアクションの処理を1秒止める" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "キューに入っているアクションの処理を10秒止める" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "キューに入っているアクションの処理を30秒止める" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "文字列" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "サブルーチンのトレースを開始しました" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "サブルーチンのトレースを停止しました" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Padreのインタフェースを%sに切り替える" #: lib/Padre/Wx/ActionLibrary.pm:1480 msgid "Switch document type" msgstr "ドキュメントタイプを切り替える" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "システムデフォルトに切り替える" #: lib/Padre/Wx/Syntax.pm:242 msgid "Syntax Check" msgstr "構文チェック" #: lib/Padre/Wx/FBP/Preferences.pm:911 msgid "Syntax Highlighter" msgstr "構文ハイライト" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "システムデフォルト" #: lib/Padre/Wx/Dialog/Preferences.pm:135 #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Tab" msgstr "Tab" #: lib/Padre/Wx/FBP/Preferences.pm:569 msgid "Tab display size (in spaces)" msgstr "タブ表示幅(空白の数):" #: lib/Padre/Wx/Main.pm:6279 msgid "Tab to Space" msgstr "タブからスペース" #: lib/Padre/Wx/Menu/Edit.pm:235 msgid "Tabs and S&paces" msgstr "タブとスペース(&p)" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "Tabs to &Spaces..." msgstr "タブからスペース(&S)..." #: lib/Padre/MimeTypes.pm:411 msgid "Text" msgstr "テキスト" #: lib/Padre/Wx/Main.pm:4359 msgid "Text Files" msgstr "テキストファイル" #: lib/Padre/Wx/Dialog/Bookmarks.pm:110 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "しおり「%s」はすでに存在しません" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', or 'Run till Breakpoint' in the Debug menu." msgstr "" "デバッガが起動していません。\n" "デバッグメニューから「ステップイン」「ステップオーバー」「ブレークポイントまで実行」のいずれかを実行してください" #: lib/Padre/Wx/Directory.pm:590 msgid "The directory browser got an undef object and may stop working now. Please save your work and restart Padre." msgstr "" #: lib/Padre/Document.pm:926 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:459 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "ショートカット「%s」はすでに「%s」で使われています\n" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "位置が保存されていません" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "このドキュメントにはPODがありません" #: lib/Padre/Wx/ActionLibrary.pm:2355 msgid "This function reloads the My plug-in without restarting Padre" msgstr "Padreを再起動せずにMyプラグインをリロードする" #: lib/Padre/Config.pm:1405 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "この機能を利用するにはDevel::EndStatsをインストールしなければなりません(Padreの再起動が必要)" #: lib/Padre/Config.pm:1424 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "この機能を利用するにはDevel::TraceUseをインストールしなければなりません(Padreの再起動が必要)" #: lib/Padre/Wx/Main.pm:5393 msgid "This type of file (URL) is missing delete support." msgstr "このタイプのファイル(URL)は削除できません" #: lib/Padre/Wx/Dialog/About.pm:190 msgid "Threads" msgstr "スレッド" #: lib/Padre/Wx/FBP/Preferences.pm:990 #: lib/Padre/Wx/FBP/Preferences.pm:1014 msgid "Timeout (in seconds)" msgstr "タイムアウト(秒)" #: lib/Padre/Wx/TodoList.pm:219 msgid "To-do" msgstr "TODO" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "今日" #: lib/Padre/Config.pm:1477 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "" #: lib/Padre/Config.pm:1451 msgid "Toggle document differences feature" msgstr "" #: lib/Padre/Config.pm:1442 msgid "Toggle syntax checker annotations in editor" msgstr "構文チェッカーの注釈を有効/無効にする" #: lib/Padre/Config.pm:1460 msgid "Toggle version control system support" msgstr "バージョン管理システムのサポートを有効/無効にする" #: lib/Padre/Wx/FBP/About.pm:289 msgid "Tom Eliaz" msgstr "Tom Eliaz" #: lib/Padre/Wx/FBP/About.pm:925 msgid "Translation" msgstr "翻訳" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "真" #: lib/Padre/Locale.pm:420 #: lib/Padre/Wx/FBP/About.pm:690 msgid "Turkish" msgstr "トルコ語" #: lib/Padre/Wx/ActionLibrary.pm:1394 msgid "Turn on CPAN explorer" msgstr "CPANエクスプローラを起動する" #: lib/Padre/Wx/ActionLibrary.pm:1435 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "現在のドキュメントの構文チェックを有効にして結果をウィンドウに表示する" #: lib/Padre/Wx/ActionLibrary.pm:1445 msgid "Turn on version control view of the current project and show version control changes in a window" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "タイプ" #: lib/Padre/Wx/Dialog/HelpSearch.pm:147 msgid "Type a help &keyword to read:" msgstr "表示したいヘルプキーワードを入力(&k):" #: lib/Padre/Wx/ActionLibrary.pm:2236 msgid "Type in any expression and evaluate it in the debugged process" msgstr "式を入力してデバッグプロセスで評価する" #: lib/Padre/MimeTypes.pm:706 msgid "UNKNOWN" msgstr "不明" #: lib/Padre/Wx/ActionLibrary.pm:1524 msgid "Un&fold All" msgstr "すべて折りたたむ(&f)" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "%sをパースできません" #: lib/Padre/Wx/ActionLibrary.pm:575 msgid "Undo last change in current file" msgstr "現在のファイルの最後の変更をアンドゥする" #: lib/Padre/Wx/ActionLibrary.pm:1525 #: lib/Padre/Wx/ActionLibrary.pm:1535 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "折りたためるブロックをすべて展開する (折りたたみが有効の場合)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Unicode character 'name'" msgstr "Unicode文字「名」" #: lib/Padre/Locale.pm:142 #: lib/Padre/Wx/Main.pm:4102 msgid "Unknown" msgstr "不明" #: lib/Padre/PluginManager.pm:928 #: lib/Padre/Document/Perl.pm:639 #: lib/Padre/Document/Perl.pm:888 #: lib/Padre/Document/Perl.pm:937 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "原因不明のエラーです" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "原因不明のエラーです" #: lib/Padre/Wx/VCS.pm:241 msgid "Unmodified" msgstr "" #: lib/Padre/Document.pm:1700 #, perl-format msgid "Unsaved %d" msgstr "未保存 %d" #: lib/Padre/Wx/Main.pm:5136 msgid "Unsaved File" msgstr "保存されていないファイル" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "サポートされていないOSです: %s" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "無題" #: lib/Padre/Wx/VCS.pm:234 #: lib/Padre/Wx/VCS.pm:248 #: lib/Padre/Wx/FBP/VCS.pm:196 msgid "Unversioned" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:135 msgid "Up" msgstr "↑" #: lib/Padre/Wx/VCS.pm:247 msgid "Updated but unmerged" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:215 msgid "Upload" msgstr "アップロードする" #: lib/Padre/Wx/Menu/Edit.pm:265 msgid "Upper/Lo&wer Case" msgstr "大文字/小文字に変換(&w)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "大文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Uppercase next character" msgstr "次の文字を大文字にする" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "Uppercase till \\E" msgstr "\\Eまでの文字を大文字にする" #: lib/Padre/Wx/FBP/Preferences.pm:1032 msgid "Use FTP passive mode" msgstr "FTPのパッシブモードを利用する" #: lib/Padre/Wx/ActionLibrary.pm:1124 msgid "Use Perl source as filter" msgstr "Perlのソースをフィルタとして利用する" #: lib/Padre/Wx/FBP/Preferences.pm:561 msgid "Use Tabs" msgstr "タブを使う" #: lib/Padre/Wx/FBP/Preferences.pm:499 msgid "Use X11 middle button paste style" msgstr "X11の中央ボタンを使ったペーストのやり方を利用する" #: lib/Padre/Wx/ActionLibrary.pm:1327 msgid "Use a filter to select one or more files" msgstr "ファイルの選択にフィルタを利用する" #: lib/Padre/Wx/FBP/Preferences.pm:821 msgid "Use external window for execution" msgstr "実行時に外部ウィンドウを利用する" #: lib/Padre/Wx/FBP/Preferences.pm:521 msgid "Use splash screen" msgstr "スプラッシュ画像を表示する" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "ユーザ" #: lib/Padre/Wx/FBP/Sync.pm:74 #: lib/Padre/Wx/FBP/Sync.pm:119 msgid "Username" msgstr "ユーザ名" #: lib/Padre/Wx/ActionLibrary.pm:2417 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "ローカルで開いているCPAN風のパッケージをCPAN.pmを使ってインストールする" #: lib/Padre/Wx/ActionLibrary.pm:2427 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "pipでダウンロードしたtar.gzファイルをCPAN.pm経由でインストールする" #: lib/Padre/Wx/Debug.pm:123 #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "値" #: lib/Padre/Wx/Debug.pm:122 msgid "Variable" msgstr "変数名" #: lib/Padre/Wx/ActionLibrary.pm:1906 msgid "Variable Name" msgstr "変数名" #: lib/Padre/Document/Perl.pm:848 msgid "Variable case change" msgstr "変数名の大文字小文字を変更" #: lib/Padre/Wx/Dialog/PluginManager.pm:68 msgid "Version" msgstr "バージョン" #: lib/Padre/Wx/VCS.pm:142 msgid "Version Control" msgstr "バージョン管理" #: lib/Padre/Wx/ActionLibrary.pm:1762 msgid "Vertically &Align Selected" msgstr "選択範囲を桁揃えする(&A)" #: lib/Padre/Wx/Syntax.pm:73 msgid "Very Fatal Error" msgstr "非常に致命的なエラー" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:386 msgid "View" msgstr "表示(&V)" #: lib/Padre/Wx/ActionLibrary.pm:2682 msgid "View All &Open Bugs" msgstr "未解決のバグを全表示する(&O)" #: lib/Padre/Wx/ActionLibrary.pm:2683 msgid "View all known and currently unsolved bugs in Padre" msgstr "Padreの既知・未解決のバグをすべて表示する" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Visible characters" msgstr "印字文字" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "印字文字とスペース" #: lib/Padre/Wx/ActionLibrary.pm:2662 msgid "Visit the PerlM&onks" msgstr "PerlM&onksを訪問する" #: lib/Padre/Document.pm:1480 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "" #: lib/Padre/Document.pm:932 #: lib/Padre/Wx/Syntax.pm:43 #: lib/Padre/Wx/Main.pm:3088 #: lib/Padre/Wx/Main.pm:3803 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "警告" #: lib/Padre/Wx/ActionLibrary.pm:2368 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:539 #, perl-format msgid "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache Subversion\"" msgstr "" #: lib/Padre/PluginManager.pm:421 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "新しいプラグインが見つかりました。\n" "設定や利用はプラグインメニューの\n" "プラグインマネージャーから行ってください\n" "\n" "新しいプラグイン一覧\n" "\n" #: lib/Padre/Wx/Main.pm:4361 msgid "Web Files" msgstr "Webファイル" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2190 msgid "When in a subroutine call show all the calls since the main of the program" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1546 msgid "When typing in functions allow showing short examples of the function" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "Padreをどこで知りましたか" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "空白文字" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 msgid "Window" msgstr "ウィンドウ" #: lib/Padre/Wx/Dialog/WindowList.pm:35 msgid "Window list" msgstr "ウィンドウ一覧" #: lib/Padre/Wx/ActionLibrary.pm:542 msgid "Word count and other statistics of the current document" msgstr "現在のドキュメントの単語数などの統計情報" #: lib/Padre/Wx/Dialog/DocStats.pm:102 msgid "Words" msgstr "単語数" #: lib/Padre/Wx/ActionLibrary.pm:1612 msgid "Wrap long lines" msgstr "長い行を折り返す" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "FTPサーバにファイルを書き込んでいます..." #: lib/Padre/Wx/Output.pm:146 #: lib/Padre/Wx/Main.pm:2944 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream %sは問題を起こすことがわかっているので\n" "cpan Wx::Perl::ProcessStreamで最低でもバージョン0.20を入手してください" #: lib/Padre/Wx/FBP/FindFast.pm:36 msgid "X" msgstr "X" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "年" #: lib/Padre/File/HTTP.pm:161 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "" "HTTP PUTを使ってファイルを書き込もうとしています。\n" "この機能は非常に実験的なものであり、ほとんどのサーバは未対応です。" #: lib/Padre/Wx/Editor.pm:1514 msgid "You must select a range of lines" msgstr "行を選択してください" #: lib/Padre/Wx/Main.pm:3802 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "プロセス実行中です。プロセスを殺して終了しますか" #: lib/Padre/Wx/FBP/About.pm:217 #: lib/Padre/Wx/FBP/About.pm:510 msgid "Zeno Gantner" msgstr "Zeno Gantner" #: lib/Padre/Wx/FBP/About.pm:373 msgid "code4pay" msgstr "code4pay" #: lib/Padre/CPAN.pm:185 msgid "cpanm is unexpectedly not installed" msgstr "cpanmがなぜかインストールされていません" #: lib/Padre/PluginHandle.pm:93 #: lib/Padre/Wx/Dialog/PluginManager.pm:530 msgid "disabled" msgstr "無効" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "例" #: lib/Padre/PluginHandle.pm:94 #: lib/Padre/Wx/Dialog/PluginManager.pm:518 msgid "enabled" msgstr "有効" #: lib/Padre/PluginHandle.pm:89 #: lib/Padre/Wx/Dialog/PluginManager.pm:491 msgid "error" msgstr "エラー" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:354 msgid "fresh" msgstr "" #: lib/Padre/PluginHandle.pm:92 #: lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "incompatible" msgstr "非互換" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "ロード済" #: lib/Padre/Document.pm:1678 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "なし" #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "未ロード" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "grep {}でくくる" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "map {}でくくる" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "wxPerlライブサポート(&L)" #~ msgid "%s has no constructor" #~ msgstr "%sにはコンストラクタがありません" #~ msgid "&Back" #~ msgstr "戻る(&B)" #~ msgid "&Go to previous position" #~ msgstr "以前の位置に移動する(&G)" #~ msgid "&Hide Find in Files" #~ msgstr "複数ファイル検索を隠す(&H)" #~ msgid "&Key Bindings" #~ msgstr "キー割り当て(&K)" #~ msgid "&Last Visited File" #~ msgstr "最後に訪れたファイル(&L)" #~ msgid "&Oldest Visited File" #~ msgstr "最後に訪れたのがもっとも古いファイル(&O)" #~ msgid "&Right Click" #~ msgstr "右クリック(&R)" #~ msgid "&Show previous positions..." #~ msgstr "以前の位置を表示する(&S)..." #~ msgid "&Wizard Selector" #~ msgstr "ウィザード選択(&W)" #~ msgid "About Padre" #~ msgstr "Padreについて" #~ msgid "Apply Diff to &File" #~ msgstr "ファイルに差分を適用する(&F)" #~ msgid "Apply Diff to &Project" #~ msgstr "プロジェクトに差分を適用する(&P)" #~ msgid "Apply a patch file to the current document" #~ msgstr "現在のドキュメントにパッチファイルを適用する" #~ msgid "Apply a patch file to the current project" #~ msgstr "現在のプロジェクトにパッチファイルを適用する" #~ msgid "Blue butterfly on a green leaf" #~ msgstr "緑の葉に青い蝶" #~ msgid "Cannot diff if file was never saved" #~ msgstr "保存されていないファイルの差分はとれません" #~ msgid "" #~ "Compare the file in the editor to that on the disk and show the diff in " #~ "the output window" #~ msgstr "" #~ "エディタで開いているファイルとディスク上のファイルを比較して差分を出力ウィ" #~ "ンドウに表示する" #~ msgid "Creates a Padre Plugin" #~ msgstr "Padreのプラグインを作成する" #~ msgid "Creates a Padre document" #~ msgstr "Padreのドキュメントを作成する" #~ msgid "Creates a Perl 5 module or script" #~ msgstr "Perl 5のモジュールやスクリプトを作成する" #~ msgid "Dark" #~ msgstr "Dark" #~ msgid "Di&ff Tools" #~ msgstr "差分ツール(&f)" #~ msgid "Diff to &Saved Version" #~ msgstr "保存済みファイルとの差分をとる(&S)" #~ msgid "Diff tool" #~ msgstr "差分ツール" #~ msgid "Error while loading %s" #~ msgstr "%sのロード中にエラーが発生しました" #~ msgid "Evening" #~ msgstr "Evening" #~ msgid "External Tools" #~ msgstr "外部ツール" #~ msgid "Failed to find template file '%s'" #~ msgstr "テンプレートファイル「%s」が見つかりません" #~ msgid "Find &Previous" #~ msgstr "前を検索する(&P)" #~ msgid "" #~ "Find next matching text using a toolbar-like dialog at the bottom of the " #~ "editor" #~ msgstr "" #~ "エディタ下部のツールバー形式のダイアログを利用して次にマッチするテキストを" #~ "検索する" #~ msgid "" #~ "Find previous matching text using a toolbar-like dialog at the bottom of " #~ "the editor" #~ msgstr "" #~ "エディタ下部のツールバー形式のダイアログを利用して前にマッチしたテキストを" #~ "検索する" #~ msgid "Found %d issue(s)" #~ msgstr "%d件見つかりました" #~ msgid "Hide the list of matches for a Find in Files search" #~ msgstr "複数ファイル検索の検索結果一覧を隠す" #~ msgid "Imitate clicking on the right mouse button" #~ msgstr "マウスの右ボタンをクリックしたかのように振る舞います" #~ msgid "Jump between the two last visited files back and forth" #~ msgstr "最後に移動した2つのファイルの間を行き来する" #~ msgid "Jump to the last position saved in memory" #~ msgstr "メモリに保存されている最後の位置に移動する" #~ msgid "Last Visited File" #~ msgstr "最後に訪れたファイル" #~ msgid "Module" #~ msgstr "モジュール" #~ msgid "Night" #~ msgstr "Night" #~ msgid "No errors or warnings found." #~ msgstr "エラーや警告は見つかりませんでした" #~ msgid "Notepad++" #~ msgstr "Notepad++" #~ msgid "Opens the Padre document wizard" #~ msgstr "Padreドキュメントのウィザードを開く" #~ msgid "Opens the Padre plugin wizard" #~ msgstr "Padreプラグインのウィザードを開く" #~ msgid "Opens the Perl 5 module wizard" #~ msgstr "Perl 5モジュールのウィザードを開く" #~ msgid "Padre Document Wizard" #~ msgstr "Padreドキュメントウィザード" #~ msgid "Padre Plugin Wizard" #~ msgstr "Padreプラグインウィザード" #~ msgid "Perl 5" #~ msgstr "Perl 5" #~ msgid "Perl 5 Module Wizard" #~ msgstr "Perl 5モジュールウィザード" #~ msgid "Plugin" #~ msgstr "プラグイン" #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "最後に訪れたのがもっとも古いタブにフォーカスを移す" #~ msgid "Select a Wizard" #~ msgstr "ウィザードを選択" #~ msgid "Selects and opens a wizard" #~ msgstr "ウィザードを選択して開く" #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "キー割り当てダイアログを表示してPadreのショートカットを設定する" #~ msgid "Show the list of positions recently visited" #~ msgstr "最近訪れた位置一覧を表示する" #~ msgid "Solarize" #~ msgstr "Solarize" #~ msgid "Switch highlighting colours" #~ msgstr "強調色を切り替える" #~ msgid "System Info" #~ msgstr "システム情報" #~ msgid "The Padre Development Team" #~ msgstr "Padre開発チーム" #~ msgid "The Padre Translation Team" #~ msgstr "Padre翻訳チーム" #~ msgid "Ultraedit" #~ msgstr "Ultraedit" #~ msgid "Uptime:" #~ msgstr "稼働時間:" #~ msgid "Use panel order for Ctrl-Tab (not usage history)" #~ msgstr "Ctrl-Tabは(過去に利用した順ではなく)パネルの並び順に切り替え" #~ msgid "Wizard Selector" #~ msgstr "ウィザード選択" #~ msgid "splash image is based on work by" #~ msgstr "スプラッシュ画像の原作者" #~ msgid "&Comment Selected Lines" #~ msgstr "選択した行をコメントにする(&C)" #~ msgid "&Uncomment Selected Lines" #~ msgstr "選択した行をコメントにしない(&U)" #~ msgid "Case &insensitive" #~ msgstr "大文字と小文字を区別しない(&i)" #~ msgid "Find Next" #~ msgstr "次を検索する" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s個のワーカースレッドが実行中です\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "現在実行中のバックグラウンドタスクはありません\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "以下のタスクが現在バックグラウンドで実行中です:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s個の「%s」:\n" #~ " (スレッド数%s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "なお%s個のタスクがペンディング中です\n" #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "プラグイン「%s」 - モジュールをロードできません: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "プラグイン「%s」 - Padre::PluginのAPIと互換性がありません。Padre::Pluginの" #~ "サブクラスではありません" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "プラグイン「%s」 - オブジェクトをインスタンス化できません。コンストラクタ" #~ "がPadre::Pluginオブジェクトを返しません" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "プラグイン「%s」 - メニューがありません" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "Install Module..." #~ msgstr "モジュールのインストール..." #~ msgid "Dump Current Document" #~ msgstr "現在のドキュメントをダンプする" #~ msgid "Dump Top IDE Object" #~ msgstr "最前列にあるIDEオブジェクトをダンプする" #~ msgid "Dump %INC and @INC" #~ msgstr "%INCと@INCをダンプする" #~ msgid "Enable logging" #~ msgstr "ログを有効にする" #~ msgid "Disable logging" #~ msgstr "ログを無効にする" #~ msgid "Enable trace when logging" #~ msgstr "ログ時にトレースを有効にする" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "バックグラウンドタスクのクラッシュをシミュレートする" #~ msgid "Error List" #~ msgstr "エラー一覧" #~ msgid "No diagnostics available for this error!" #~ msgstr "このエラーには診断メッセージがありません!" #~ msgid "Diagnostics" #~ msgstr "診断メッセージ" #~ msgid "Term:" #~ msgstr "検索語:" #~ msgid "Dir:" #~ msgstr "ディレクトリ:" #~ msgid "Pick &directory" #~ msgstr "ディレクトリ選択(&d)" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "隠しディレクトリは無視する(&g)" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Select all\tCtrl-A" #~ msgstr "すべてを選択\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "コピー(&C)\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "切り取り(&t)\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "貼り付け(&P)\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "コメントをトグルする(&T)\tCtrl-Shift-C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "選択した行をコメントにする(&C)\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "選択した行をコメントにしない(&U)\tCtrl-Shift-M" #~ msgid "&Split window" #~ msgstr "ウィンドウを分割する(&S)" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "「%s」を開けません。Padreのファイルサイズの上限を越えています(現在の上限%" #~ "s)" #~ msgid "Lines: %d" #~ msgstr "行数: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "空白以外の文字数: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "空白込みの文字数: %d" #~ msgid "Newline type: %s" #~ msgstr "改行種別: %s" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "最後に保存してからファイルが変更されています。リロードしますか?" #~ msgid "&Close\tCtrl+W" #~ msgstr "閉じる(&C)\tCtrl+W" #~ msgid "&Open\tCtrl+O" #~ msgstr "ファイルを開く(&O)...\tCtrl+O" #~ msgid "E&xit\tCtrl+X" #~ msgstr "終了(&x)\tCtrl+X" #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "" #~ "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgid "Perl Distribution (Module::Starter)" #~ msgstr "Perlディストリビューション (Module::Starter)" #~ msgid "&Close..." #~ msgstr "閉じる(&C)..." #~ msgid "Close All but Current" #~ msgstr "現在のファイル以外すべて閉じる" #~ msgid "Save &As" #~ msgstr "名前をつけて保存する(&A)" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "ローカルディレクトリのプラグインをテストする" #~ msgid "Automatic bracket completion" #~ msgstr "かっこを自動的に補完する" #~ msgid "GoTo Subs Window" #~ msgstr "サブルーチンウィンドウに移動する" #~ msgid "Style" #~ msgstr "スタイル" #~ msgid "Convert EOL" #~ msgstr "改行を変換する" #~ msgid "Insert From File..." #~ msgstr "ファイルから挿入する..." #~ msgid "Show as hexa" #~ msgstr "16進数表記" #~ msgid "Skip hidden files" #~ msgstr "隠しファイルはスキップする" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "CVS/.svn/.git/blibフォルダはスキップする" #~ msgid "Please, choose a different name." #~ msgstr "別の名前を選択してください" #~ msgid "folder" #~ msgstr "フォルダ" #~ msgid "You sure want to delete this item?" #~ msgstr "本当に削除しますか?" #~ msgid "Show hidden files" #~ msgstr "隠しファイルを表示する" #~ msgid "&Use Regex" #~ msgstr "正規表現(&U)" #~ msgid "Cannot build regex for '%s'" #~ msgstr "'%s'という正規表現は不正です" #~ msgid "GoTo Bookmark" #~ msgstr "しおりに移動する" #~ msgid "Mime type" #~ msgstr "MIMEタイプ" #~ msgid "Guess" #~ msgstr "推測" #~ msgid "Settings Demo" #~ msgstr "設定デモ" #~ msgid "Enable?" #~ msgstr "有効にする?" #~ msgid "Unsaved" #~ msgstr "未保存" #~ msgid "N/A" #~ msgstr "なし" #~ msgid "Document name:" #~ msgstr "ドキュメント名:" #~ msgid "Document location:" #~ msgstr "ドキュメントの位置:" #~ msgid "Run Parameters" #~ msgstr "実行パラメータ" #~ msgid "Mime-types" #~ msgstr "MIMEタイプ" #~ msgid "new" #~ msgstr "新しい順" #~ msgid "nothing" #~ msgstr "なし" #~ msgid "last" #~ msgstr "古い順" #~ msgid "no" #~ msgstr "なし" #~ msgid "same_level" #~ msgstr "同じ深さ" #~ msgid "deep" #~ msgstr "深くする" #~ msgid "alphabetical" #~ msgstr "アルファベット順" #~ msgid "alphabetical_private_last" #~ msgstr "プライベート変数は最後" #~ msgid "Close Window on &hit" #~ msgstr "見つかったらウィンドウを閉じる(&h)" #~ msgid "&Find Next" #~ msgstr "次を検索する(&F)" #~ msgid "%s occurences were replaced" #~ msgstr "%s件置換しました" #~ msgid "Nothing to replace" #~ msgstr "置換する語がありません" #~ msgid "Use rege&x" #~ msgstr "正規表現(&x)" #~ msgid "Builder:" #~ msgstr "ビルダー:" #~ msgid "License:" #~ msgstr "ライセンス:" #~ msgid "Pick parent directory" #~ msgstr "親ディレクトリを選択してください" #~ msgid "Field %s was missing. Module not created." #~ msgstr "%sフィールドが入力されていません。モジュールを作成できません" #~ msgid "%s apparantly created. Do you want to open it now?" #~ msgstr "%sは作成済みのようです。開きますか?" #~ msgid "Class:" #~ msgstr "クラス:" #~ msgid "Category:" #~ msgstr "カテゴリー:" #~ msgid "Name:" #~ msgstr "名前:" #~ msgid "Edit/Add Snippets" #~ msgstr "スニペットを編集/追加する" #~ msgid "Save File" #~ msgstr "ファイルを保存する" #~ msgid "Undo" #~ msgstr "元に戻す" #~ msgid "Redo" #~ msgstr "やり直す" #~ msgid "Workspace View" #~ msgstr "ワークスペースビュー" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "しおりをはさむ\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "しおりに移動する\tCtrl-Shift-B" #~ msgid "Stop\tF6" #~ msgstr "停止する\tF6" #~ msgid "&New\tCtrl-N" #~ msgstr "新しいファイルを開く(&N)\tCtrl-N" #~ msgid "&Close\tCtrl-W" #~ msgstr "閉じる(&C)\tCtrl-W" #~ msgid "&Save\tCtrl-S" #~ msgstr "保存する(&S)\tCtrl-S" #~ msgid "Save &As...\tF12" #~ msgstr "名前をつけて保存する(&A)...\tF12" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "選択範囲を開く\tCtrl-Shift-O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "セッションを開く...\tCtrl-Alt-O" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "現在のセッションを保存する...\tCtrl-Alt-S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "終了する(&Q)\tCtrl-Q" #~ msgid "&Find\tCtrl-F" #~ msgstr "検索する(&F)\tCtrl-F" #~ msgid "Find Next\tF3" #~ msgstr "次を検索する\tF3" #~ msgid "Find Next\tF4" #~ msgstr "次を検索する\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "前を検索する\tShift-F4" #~ msgid "Replace\tCtrl-R" #~ msgstr "置換する\tCtrl-R" #~ msgid "&Goto\tCtrl-G" #~ msgstr "移動する(&G)\tCtrl-G" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "スニペット\tCtrl-Shift-A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "すべて大文字\tCtrl-Shift-U" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "次のファイル\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "前のファイル\tCtrl-Shift-TAB" #~ msgid "L:" #~ msgstr "行:" #~ msgid "Ch:" #~ msgstr "文字:" #~ msgid "Background Tasks are idle" #~ msgstr "バックグラウンドタスクはありません" #~ msgid "Sub List" #~ msgstr "サブルーチン一覧" #~ msgid "All available plugins on CPAN" #~ msgstr "CPANから入手できるプラグイン一覧" #~ msgid "Disable Experimental Mode" #~ msgstr "実験モードを無効にする" #~ msgid "Refresh Counter: " #~ msgstr "リフレッシュカウンタ: " #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "プラグイン「%s」 - Padre::PluginのAPIと互換性がありません。プラグインをイ" #~ "ンスタンス化できません" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "プラグイン「%s」 - Padre::PluginのAPIと互換性がありません。" #~ "padre_interfacesサブルーチンがありません" #~ msgid "No output" #~ msgstr "出力がありません" #~ msgid "Ac&k Search" #~ msgstr "Ack検索(&k)" Padre-1.00/share/locale/hu.po0000644000175000017500000035100011532441577014466 0ustar petepete# Hungarian translation for Padre package # Copyright (C) 2008 THE Padre'S COPYRIGHT HOLDER # This file is distributed under the same license as the Padre package. # Pásztor György # msgid "" msgstr "" "Project-Id-Version: 0.17\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-15 21:36+1100\n" "PO-Revision-Date: 2011-02-22 20:22+0100\n" "Last-Translator: Pásztor György \n" "Language-Team: Hungarian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Padre/MimeTypes.pm:229 msgid "Shell Script" msgstr "Shell szkript" #: lib/Padre/MimeTypes.pm:333 msgid "Text" msgstr "Szöveg" #: lib/Padre/MimeTypes.pm:362 msgid "Fast but might be out of date" msgstr "Gyors de lehet hogy kissé elavult" #: lib/Padre/MimeTypes.pm:371 msgid "PPI Experimental" msgstr "K&isérleti PPI" #: lib/Padre/MimeTypes.pm:372 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "Lassú de pontos és teljes felügyeletünk van, így a hibák kijavíthatóak" #: lib/Padre/MimeTypes.pm:376 msgid "PPI Standard" msgstr "PPI szabvány" #: lib/Padre/MimeTypes.pm:377 msgid "Hopefully faster than the PPI Traditional. Big file will fall back to Scintilla highlighter." msgstr "Remélhetőleg gyorsabb, mint a PPI Traditional. A nagyfájlok visszatérnek a Scintilla kiemelőre." #: lib/Padre/MimeTypes.pm:403 #, perl-format msgid "Mime type was not supported when %s(%s) was called" msgstr "Mime típus nem támogatott, amikor a %s(%s) került meghívásra" #: lib/Padre/MimeTypes.pm:413 #, perl-format msgid "Mime type already had a class '%s' when %s(%s) was called" msgstr "A mime típusnak már volt '%s' osztálya, amikor a %s(%s) került meghívásra" #: lib/Padre/MimeTypes.pm:429 #: lib/Padre/MimeTypes.pm:455 #, perl-format msgid "Mime type is not supported when %s(%s) was called" msgstr "Mime típus nem támogatott, amikor a %s(%s) került meghívásra" #: lib/Padre/MimeTypes.pm:439 #, perl-format msgid "Mime type did not have a class entry when %s(%s) was called" msgstr "A mime típusnak nincs osztály-bejegyzése amikor %s(%s) került meghívásra" #: lib/Padre/MimeTypes.pm:606 msgid "UNKNOWN" msgstr "ISMERETLEN" #: lib/Padre/Config.pm:401 msgid "Showing the splash image during start-up" msgstr "Splash kép megjelenítése induláskor" #: lib/Padre/Config.pm:414 msgid "Previous open files" msgstr "Korábban nyitott fájlok" #: lib/Padre/Config.pm:415 msgid "A new empty file" msgstr "Új üres fájl" #: lib/Padre/Config.pm:416 msgid "No open files" msgstr "Nincs nyitott fájl" #: lib/Padre/Config.pm:417 msgid "Open session" msgstr "Munkafolyamat megnyitása" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "Nem találom a CPAN konfigurációd" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "Telepítendő terjesztés kiválasztása" #: lib/Padre/CPAN.pm:118 #: lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "Nincs terjesztés megadva" #: lib/Padre/CPAN.pm:132 msgid "" "Enter URL to install\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Telepítendő URL megadása\\n" "pl. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/CPAN.pm:133 msgid "Install Local Distribution" msgstr "Helyi terjesztés telepítése" #: lib/Padre/CPAN.pm:178 msgid "cpanm is unexpectedly not installed" msgstr "cpanm váratlanul nincs telepítve" #: lib/Padre/PluginHandle.pm:89 #: lib/Padre/Wx/Dialog/PluginManager.pm:491 msgid "error" msgstr "Hiba" #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "nembetöltött" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "töltve" #: lib/Padre/PluginHandle.pm:92 #: lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "incompatible" msgstr "Inkompatibilis" #: lib/Padre/PluginHandle.pm:93 #: lib/Padre/Wx/Dialog/PluginManager.pm:530 msgid "disabled" msgstr "Letiltott" #: lib/Padre/PluginHandle.pm:94 #: lib/Padre/Wx/Dialog/PluginManager.pm:518 msgid "enabled" msgstr "Engedélyezett" #: lib/Padre/PluginHandle.pm:201 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Nem sikerült a '%s' plugint bekapcsolni: %s" #: lib/Padre/PluginHandle.pm:281 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Nem sikerült a '%s' plugint kikapcsolni: %s" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "Angol (Egyesült Királyság)" #: lib/Padre/Locale.pm:124 msgid "English (Australia)" msgstr "Angol (Ausztrália)" #: lib/Padre/Locale.pm:142 #: lib/Padre/Wx/Main.pm:3611 msgid "Unknown" msgstr "Ismeretlen" #: lib/Padre/Locale.pm:156 msgid "Arabic" msgstr "Arab" #: lib/Padre/Locale.pm:166 msgid "Czech" msgstr "Cseh" #: lib/Padre/Locale.pm:176 msgid "Danish" msgstr "Dán" #: lib/Padre/Locale.pm:186 msgid "German" msgstr "Német" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "Angol" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "Angol (Kanada)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "Angol (Új Zéland)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "Angol (Egyesült Államok)" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "Spanyol (Argentína)" #: lib/Padre/Locale.pm:248 msgid "Spanish" msgstr "Spanyol" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "Perzsa" #: lib/Padre/Locale.pm:268 msgid "French (Canada)" msgstr "Francia (Kanada)" #: lib/Padre/Locale.pm:282 msgid "French" msgstr "Francia" #: lib/Padre/Locale.pm:292 msgid "Hebrew" msgstr "Héber" #: lib/Padre/Locale.pm:302 msgid "Hungarian" msgstr "Magyar" #: lib/Padre/Locale.pm:316 msgid "Italian" msgstr "Olasz" #: lib/Padre/Locale.pm:326 msgid "Japanese" msgstr "Japán" #: lib/Padre/Locale.pm:336 msgid "Korean" msgstr "Koreai" #: lib/Padre/Locale.pm:350 msgid "Dutch" msgstr "Holland" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "Holland (Belgium)" #: lib/Padre/Locale.pm:370 msgid "Norwegian" msgstr "Norvég" #: lib/Padre/Locale.pm:380 msgid "Polish" msgstr "Lengyel" #: lib/Padre/Locale.pm:390 msgid "Portuguese (Brazil)" msgstr "Portugál (Brazil)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "Portugál (Portugália)" #: lib/Padre/Locale.pm:410 msgid "Russian" msgstr "Orosz" #: lib/Padre/Locale.pm:420 msgid "Turkish" msgstr "Török" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "Kínai" #: lib/Padre/Locale.pm:440 msgid "Chinese (Simplified)" msgstr "Kínai (Egyszerűsített)" #: lib/Padre/Locale.pm:450 msgid "Chinese (Traditional)" msgstr "Kínai (Hagyományos)" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "Klingon" #: lib/Padre/PluginManager.pm:402 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Számos új plugin-t találtam.\n" "Ahhoz hogy konfigurálhasd ill. engedélyezd válaszd ki\n" "Pluginek -> Plugin Kezelő\n" "\n" "Új pluginek listája:\n" "\n" #: lib/Padre/PluginManager.pm:412 msgid "New plug-ins detected" msgstr "Új plugin-okat találtam" #: lib/Padre/PluginManager.pm:544 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Összeomlott míg a %s -t töltöte be" #: lib/Padre/PluginManager.pm:556 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - Nem egy Padre::Plugin alosztály" #: lib/Padre/PluginManager.pm:569 #, perl-format msgid "%s - Not compatible with Padre version %s - %s" msgstr "%s - Nem kompatibilis a %s - %s Padre verzióval" #: lib/Padre/PluginManager.pm:584 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - összeomlott ameddig %s -t példányosította" #: lib/Padre/PluginManager.pm:594 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - Nem lehet példányosítani a plugint" #: lib/Padre/PluginManager.pm:846 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Plugin hiba a %s eseménykor: %s" #: lib/Padre/PluginManager.pm:856 msgid "(core)" msgstr "(core)" #: lib/Padre/PluginManager.pm:857 #: lib/Padre/File/FTP.pm:145 #: lib/Padre/Document/Perl.pm:579 #: lib/Padre/Document/Perl.pm:911 #: lib/Padre/Document/Perl.pm:960 msgid "Unknown error" msgstr "Ismeretlen hiba" #: lib/Padre/PluginManager.pm:867 #, perl-format msgid "Plugin %s" msgstr "Plugin %s" #: lib/Padre/PluginManager.pm:943 msgid "Error when calling menu for plug-in " msgstr "Hiba plugin menüjének meghívásakor" #: lib/Padre/PluginManager.pm:979 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Nincs fájlnév" #: lib/Padre/PluginManager.pm:982 msgid "Could not locate project directory." msgstr "Nem találom a projekt könyvtárát." #: lib/Padre/PluginManager.pm:1004 #: lib/Padre/PluginManager.pm:1100 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Nem sikerült a '%s' plugint betölteni\n" "%s" #: lib/Padre/PluginManager.pm:1054 #: lib/Padre/Wx/Main.pm:5438 msgid "Open file" msgstr "Fájl megnyitása" #: lib/Padre/PluginManager.pm:1074 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "A Plug-ineknek '%s' az alapkönyvtáruk" #: lib/Padre/Document.pm:231 msgid "Error while opening file: no file object" msgstr "Hiba a fájl megnyitása közben: nincs fájl objektum" #: lib/Padre/Document.pm:253 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "A %s fájl, amit próbálsz megnyitni %s byte méretű. Ez túl van a Padre vonatkozó fájlméret korlátján, ami aktuálisan %s. Ennek a fájlnak a megnyitása csökkenti a hatékonyságot. Még így is meg akarod nyitni a fájlt?" #: lib/Padre/Document.pm:259 #: lib/Padre/Wx/Main.pm:2696 #: lib/Padre/Wx/Main.pm:3303 #: lib/Padre/Wx/Syntax.pm:31 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Figyelmeztetés" #: lib/Padre/Document.pm:281 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Hiba a MIME typus megállapítása közben.\n" "Ez valószínűleg kódolási probléma.\n" "Bináris fájlt próbálsz betölteni?" #: lib/Padre/Document.pm:325 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "Nincs ilyen modul mime_type='%s' filename='%s'" #: lib/Padre/Document.pm:440 #: lib/Padre/Wx/Main.pm:4491 #: lib/Padre/Wx/Editor.pm:215 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/Sync.pm:447 #: lib/Padre/Wx/Dialog/Sync.pm:455 #: lib/Padre/Wx/Dialog/Sync.pm:469 #: lib/Padre/Wx/Dialog/Sync.pm:493 #: lib/Padre/Wx/Dialog/Sync.pm:517 #: lib/Padre/Wx/Dialog/Sync.pm:528 #: lib/Padre/Wx/Dialog/Sync.pm:538 #: lib/Padre/Wx/Dialog/Sync.pm:556 #: lib/Padre/Wx/Dialog/Sync.pm:567 #: lib/Padre/Wx/Dialog/Sync.pm:578 #: lib/Padre/Wx/Dialog/Sync.pm:589 #: lib/Padre/Wx/Dialog/ModuleStart.pm:185 #: lib/Padre/Wx/Dialog/Sync2.pm:67 #: lib/Padre/Wx/Dialog/Sync2.pm:75 #: lib/Padre/Wx/Dialog/Sync2.pm:89 #: lib/Padre/Wx/Dialog/Sync2.pm:108 #: lib/Padre/Wx/Dialog/Sync2.pm:132 #: lib/Padre/Wx/Dialog/Sync2.pm:143 #: lib/Padre/Wx/Dialog/Sync2.pm:153 #: lib/Padre/Wx/Dialog/Sync2.pm:171 #: lib/Padre/Wx/Dialog/Sync2.pm:182 #: lib/Padre/Wx/Dialog/Sync2.pm:193 #: lib/Padre/Wx/Dialog/Sync2.pm:204 #: lib/Padre/Wx/Dialog/PerlFilter.pm:269 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:90 #: lib/Padre/Wx/Dialog/OpenResource.pm:118 msgid "Error" msgstr "Hiba" #: lib/Padre/Document.pm:765 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "A látható fájlnév %s nem illeszkedik a belső fájlnévre %s, akarod, hogy megszakítsam a mentést?" #: lib/Padre/Document.pm:769 msgid "Save Warning" msgstr "Mentés figyelmeztetés" #: lib/Padre/Document.pm:942 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "nincs színező a '%s' mime-típusra az stc használatával" #: lib/Padre/Document.pm:962 #, perl-format msgid "Unsaved %d" msgstr "Mentetlen %d" #: lib/Padre/Document.pm:1363 #: lib/Padre/Document.pm:1364 msgid "Skipped for large files" msgstr "Kihagyva, túl nagy fájl" #: lib/Padre/Plugin/PopularityContest.pm:201 #: lib/Padre/Plugin/Devel.pm:102 msgid "About" msgstr "Né&vjegy" #: lib/Padre/Plugin/PopularityContest.pm:202 msgid "Show current report" msgstr "Aktuális jelentés megjelenítése" #: lib/Padre/Plugin/PopularityContest.pm:305 msgid "Popularity Contest Report" msgstr "Népszerűségi verseny jelentés" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Padre Fejlesztői Eszközök" #: lib/Padre/Plugin/Devel.pm:67 msgid "Run Document inside Padre" msgstr "Dokumentum Futtatása &Padrén belül" #: lib/Padre/Plugin/Devel.pm:68 msgid "Run Selection inside Padre" msgstr "A kiválasztás Futtatása &Padrén belül" #: lib/Padre/Plugin/Devel.pm:71 msgid "Dump" msgstr "Dump" #: lib/Padre/Plugin/Devel.pm:72 msgid "Dump Expression..." msgstr "Dump kifejezés..." #: lib/Padre/Plugin/Devel.pm:73 msgid "Dump Current Document" msgstr "Dump aktuális dokumentum" #: lib/Padre/Plugin/Devel.pm:74 msgid "Dump Task Manager" msgstr "Dump Feladatkezelő" #: lib/Padre/Plugin/Devel.pm:75 msgid "Dump Top IDE Object" msgstr "Dump Felső IDE Objektum" #: lib/Padre/Plugin/Devel.pm:76 msgid "Dump Current PPI Tree" msgstr "Dump Aktuális PPI fa" #: lib/Padre/Plugin/Devel.pm:77 msgid "Dump %INC and @INC" msgstr "Dump %INC és @INC" #: lib/Padre/Plugin/Devel.pm:78 msgid "Dump Display Geometry" msgstr "Dump Megjelenítő adatok" #: lib/Padre/Plugin/Devel.pm:79 msgid "Start/Stop sub trace" msgstr "Szubrutin követés Indítása/Megállítása" #: lib/Padre/Plugin/Devel.pm:83 msgid "Load All Padre Modules" msgstr "Minden Padre Modul betöltése" #: lib/Padre/Plugin/Devel.pm:84 msgid "Simulate Crash" msgstr "Összeomlás szimulálása" #: lib/Padre/Plugin/Devel.pm:85 msgid "Simulate Background Exception" msgstr "Háttér kivétel szimulálása" #: lib/Padre/Plugin/Devel.pm:86 msgid "Simulate Background Crash" msgstr "Háttér összeomlás szimulálása" #: lib/Padre/Plugin/Devel.pm:90 #, perl-format msgid "wxWidgets %s Reference" msgstr "wxWidgets %s hivatkozás" #: lib/Padre/Plugin/Devel.pm:93 msgid "STC Reference" msgstr "STC referencia" #: lib/Padre/Plugin/Devel.pm:96 msgid "wxPerl Live Support" msgstr "wxPerl Live támogatás" #: lib/Padre/Plugin/Devel.pm:120 #: lib/Padre/Plugin/Devel.pm:121 msgid "Expression" msgstr "Kifejezés" #: lib/Padre/Plugin/Devel.pm:149 msgid "No file is open" msgstr "Nincs nyitott fájl" #: lib/Padre/Plugin/Devel.pm:170 msgid "No Perl 5 file is open" msgstr "Nincs Perl 5 fájl nyitva" #: lib/Padre/Plugin/Devel.pm:242 msgid "Sub-tracing stopped" msgstr "Szubrutin-követés megállítva" #: lib/Padre/Plugin/Devel.pm:248 msgid "Error while loading Aspect, is it installed?" msgstr "Hiba az Aspect betöltésekor. Telepítve van?" #: lib/Padre/Plugin/Devel.pm:260 msgid "Sub-tracing started" msgstr "Szubrutin-követés elindítva" #: lib/Padre/Plugin/Devel.pm:291 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Egy halom nem-kapcsolódó eszköz, amit a Padre fejlesztők használnak\n" #: lib/Padre/Plugin/Devel.pm:311 #, perl-format msgid "Found %s unloaded modules" msgstr "%s be nem töltött modult találtam" #: lib/Padre/Plugin/Devel.pm:323 #, perl-format msgid "Loaded %s modules" msgstr "%s modul betöltve" #: lib/Padre/Plugin/Devel.pm:334 #, perl-format msgid "Error: %s" msgstr "Hiba: %s" #: lib/Padre/Config/Style.pm:34 #: lib/Padre/Wx/WizardLibrary.pm:29 #: lib/Padre/Wx/WizardLibrary.pm:37 #: lib/Padre/Wx/About.pm:59 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Config/Style.pm:35 msgid "Evening" msgstr "Este" #: lib/Padre/Config/Style.pm:36 msgid "Night" msgstr "Éjszaka" #: lib/Padre/Config/Style.pm:37 msgid "Ultraedit" msgstr "Ultraedit" #: lib/Padre/Config/Style.pm:38 msgid "Notepad++" msgstr "Notepad++" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "Kísérleti kiegészítés. Használd a '?'-t az oldal alján, hogy elérd a parancsok listáját. Ha nem működik szabgab-ot hibáztasd.\n" "\n" #: lib/Padre/Wx/Command.pm:262 msgid "Command" msgstr "Parancs" #: lib/Padre/Wx/Main.pm:769 #, perl-format msgid "No such session %s" msgstr "Nincs %s munkamenet" #: lib/Padre/Wx/Main.pm:968 msgid "Failed to create server" msgstr "Nem sikerült szervert létrehozni" #: lib/Padre/Wx/Main.pm:2312 msgid "Command line" msgstr "Parancssor" #: lib/Padre/Wx/Main.pm:2313 msgid "Run setup" msgstr "Beállítás futtatása" #: lib/Padre/Wx/Main.pm:2342 #: lib/Padre/Wx/Main.pm:2397 #: lib/Padre/Wx/Main.pm:2449 msgid "No document open" msgstr "Nincs nyitot dokumentum" #: lib/Padre/Wx/Main.pm:2348 #: lib/Padre/Wx/Main.pm:2409 #: lib/Padre/Wx/Main.pm:2464 msgid "Could not find project root" msgstr "Nem találom a projekt gyökerét" #: lib/Padre/Wx/Main.pm:2375 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Sem Build.PL-t, sem Makefile.PL-t, sem dist.ini-t nem találtam" #: lib/Padre/Wx/Main.pm:2378 msgid "Could not find perl executable" msgstr "Nem találom a perl parancsértelmezőt" #: lib/Padre/Wx/Main.pm:2403 #: lib/Padre/Wx/Main.pm:2455 msgid "Current document has no filename" msgstr "Aktuális dokumentumnak nincs fájlneve" #: lib/Padre/Wx/Main.pm:2458 msgid "Current document is not a .t file" msgstr "Az aktuális dokumentum nem .t fájl" #: lib/Padre/Wx/Main.pm:2552 #: lib/Padre/Wx/Output.pm:141 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "a Wx::Perl::ProcessStrem %s verziójú, amiről tudott, hogy problémákat okoz. Szerezd be legalább a 0.20-ast, úgy hogy beírod\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Main.pm:2627 #, perl-format msgid "Failed to start '%s' command" msgstr "Nem sikerült a '%s' parancsot elindítani" #: lib/Padre/Wx/Main.pm:2652 msgid "No open document" msgstr "Nincs nyitot dokumentum" #: lib/Padre/Wx/Main.pm:2670 msgid "No execution mode was defined for this document type" msgstr "Ehhez a dokumentumhoz nincs végrehajtási mód definiálva" #: lib/Padre/Wx/Main.pm:2695 msgid "Do you want to continue?" msgstr "Akarod folytatni?" #: lib/Padre/Wx/Main.pm:2781 #, perl-format msgid "Opening session %s..." msgstr "%s munkamenet megnyitása..." #: lib/Padre/Wx/Main.pm:2810 msgid "Restore focus..." msgstr "Fókusz visszaállítása..." #: lib/Padre/Wx/Main.pm:3140 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "A %s dokumentumtípushoz nem lehet megállapítani a megjegyzés karaktert" #: lib/Padre/Wx/Main.pm:3189 msgid "Autocompletion error" msgstr "Auto-kiegészítési hiba" #: lib/Padre/Wx/Main.pm:3302 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Még vannak futó folyamatok. Lelőjem őket és lépjek ki?" #: lib/Padre/Wx/Main.pm:3518 #, perl-format msgid "Cannot open a Directory: %s" msgstr "Nem tudom megnyitni a könyvtárt: %s" #: lib/Padre/Wx/Main.pm:3645 msgid "Nothing selected. Enter what should be opened:" msgstr "Nincs kiválasztva semmi. Add meg, amit meg kell nyitni:" #: lib/Padre/Wx/Main.pm:3646 msgid "Open selection" msgstr "Kiválasztottak megnyitása" #: lib/Padre/Wx/Main.pm:3687 #, perl-format msgid "Could not find file '%s'" msgstr "Nem találom a(z) '%s' fájlt" #: lib/Padre/Wx/Main.pm:3688 #: lib/Padre/Wx/ActionLibrary.pm:443 msgid "Open Selection" msgstr "Kijelölés megnyitása" #: lib/Padre/Wx/Main.pm:3698 #: lib/Padre/Wx/Dialog/Positions.pm:120 msgid "Choose File" msgstr "Fájl választás" #: lib/Padre/Wx/Main.pm:3803 msgid "JavaScript Files" msgstr "JavaScript fájlok" #: lib/Padre/Wx/Main.pm:3805 msgid "Perl Files" msgstr "Perl fájlok" #: lib/Padre/Wx/Main.pm:3807 msgid "PHP Files" msgstr "PHP fájlok" #: lib/Padre/Wx/Main.pm:3809 msgid "Python Files" msgstr "Python fájlok" #: lib/Padre/Wx/Main.pm:3811 msgid "Ruby Files" msgstr "Ruby fájlok" #: lib/Padre/Wx/Main.pm:3813 msgid "SQL Files" msgstr "SQL fájlok" #: lib/Padre/Wx/Main.pm:3815 msgid "Text Files" msgstr "Szöveges Fájlok" #: lib/Padre/Wx/Main.pm:3817 msgid "Web Files" msgstr "Web Fájlok" #: lib/Padre/Wx/Main.pm:3819 msgid "Script Files" msgstr "Szkript fájlok" #: lib/Padre/Wx/Main.pm:4271 msgid "File already exists. Overwrite it?" msgstr "A fájl már létezik. Felülírjam?" #: lib/Padre/Wx/Main.pm:4272 msgid "Exist" msgstr "Létezik" #: lib/Padre/Wx/Main.pm:4375 msgid "File already exists" msgstr "A fájl már létezik. Felülírjam?" #: lib/Padre/Wx/Main.pm:4389 #, perl-format msgid "Failed to create path '%s'" msgstr "Nem sikerült a '%s' útvonalat létrehozni" #: lib/Padre/Wx/Main.pm:4480 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "A fájl megváltozott a lemezen a legutóbbi mentés óta. Felülírjam?" #: lib/Padre/Wx/Main.pm:4481 msgid "File not in sync" msgstr "A fájl nincs szinkronban" #: lib/Padre/Wx/Main.pm:4490 msgid "Could not save file: " msgstr "Nem lehet elmenteni a '%s' fájlt" #: lib/Padre/Wx/Main.pm:4576 msgid "File changed. Do you want to save it?" msgstr "A fájl megváltozott. Elmentsem?" #: lib/Padre/Wx/Main.pm:4577 msgid "Unsaved File" msgstr "Nem mentett Fájl" #: lib/Padre/Wx/Main.pm:4660 msgid "Close all" msgstr "Mind bezárása" #: lib/Padre/Wx/Main.pm:4700 msgid "Close some files" msgstr "Néhány fájl bezárása" #: lib/Padre/Wx/Main.pm:4701 msgid "Select files to close:" msgstr "Válaszd ki a bezárandó fájlokat:" #: lib/Padre/Wx/Main.pm:4716 msgid "Close some" msgstr "Bezár néhányat" #: lib/Padre/Wx/Main.pm:4879 msgid "Cannot diff if file was never saved" msgstr "Nem összehasonlítható, ha a fájl még egyszer sem volt lementve" #: lib/Padre/Wx/Main.pm:4903 msgid "There are no differences\n" msgstr "Nincs különbség\n" #: lib/Padre/Wx/Main.pm:4999 msgid "Error loading regex editor." msgstr "Hiba a regex szerkesztő betöltésekor." #: lib/Padre/Wx/Main.pm:5028 msgid "Error loading perl filter dialog." msgstr "Hiba a perl szűrő párbeszéd betöltésekor." #: lib/Padre/Wx/Main.pm:5440 msgid "All Files" msgstr "Minden fájl" #: lib/Padre/Wx/Main.pm:5778 msgid "Space to Tab" msgstr "Szóközök tabulátorokká" #: lib/Padre/Wx/Main.pm:5779 msgid "Tab to Space" msgstr "Tabulátorok szóközökké" #: lib/Padre/Wx/Main.pm:5784 msgid "How many spaces for each tab:" msgstr "Hány szóköz legyen egy tab helyén:" #: lib/Padre/Wx/Main.pm:5951 msgid "Reload some files" msgstr "Néhány fájl újratöltése" #: lib/Padre/Wx/Main.pm:5952 msgid "&Select files to reload:" msgstr "&Kijelöli az újratöltendő fájlokat:" #: lib/Padre/Wx/Main.pm:5953 msgid "&Reload selected" msgstr "&Újratöltés kiválasztva" #: lib/Padre/Wx/Main.pm:6064 #, perl-format msgid "Failed to find template file '%s'" msgstr "Nem találom a '%s' template fájlt" #: lib/Padre/Wx/Main.pm:6292 msgid "Need to select text in order to translate to hex" msgstr "Ki kell jelölni a szöveget, hogy átalakíthassam hex-re" #: lib/Padre/Wx/Main.pm:6435 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Hiba a szűrő eszköz futtatásakor:\n" "%s" #: lib/Padre/Wx/Main.pm:6450 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "A szűrő eszköz ezt a hibát adta vissza:\n" "%s" #: lib/Padre/Wx/FindInFiles.pm:129 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "'%s' keresése a '%s'ben..." #: lib/Padre/Wx/FindInFiles.pm:155 #, perl-format msgid "%s (%s results)" msgstr "%s (%s találat)" #: lib/Padre/Wx/FindInFiles.pm:212 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Keresés kész, '%s'-t %d-szer találtam meg %d fájlban a '%s'-en belül" #: lib/Padre/Wx/FindInFiles.pm:223 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "Nincs keresési eredmény a '%s're a '%s'-en belül" #: lib/Padre/Wx/FindInFiles.pm:320 #: lib/Padre/Wx/FBP/FindInFiles.pm:27 msgid "Find in Files" msgstr "Fájlokban keresés" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "Kimenet" #: lib/Padre/Wx/Debug.pm:113 msgid "Debugger" msgstr "Nyomkövetés" #: lib/Padre/Wx/Debug.pm:138 msgid "Variable" msgstr "Változó" #: lib/Padre/Wx/Debug.pm:139 #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Érték" #: lib/Padre/Wx/Syntax.pm:37 msgid "Deprecation" msgstr "Ellenjavallat" #: lib/Padre/Wx/Syntax.pm:43 msgid "Severe Warning" msgstr "Számos figyelmeztetés" #: lib/Padre/Wx/Syntax.pm:49 msgid "Fatal Error" msgstr "Végzetes hiba" #: lib/Padre/Wx/Syntax.pm:55 msgid "Internal Error" msgstr "Belső hiba" #: lib/Padre/Wx/Syntax.pm:61 msgid "Very Fatal Error" msgstr "Végzetes hiba ellenőrzés" #: lib/Padre/Wx/Syntax.pm:67 msgid "Alien Error" msgstr "Ismeretlen Hiba" #: lib/Padre/Wx/Syntax.pm:301 msgid "Syntax Check" msgstr "Szintaxis ellenőrzése" #: lib/Padre/Wx/Syntax.pm:392 #, perl-format msgid "No errors or warnings found in %s." msgstr "Nem találtam %s-ben hibát vagy figyelmeztetést." #: lib/Padre/Wx/Syntax.pm:395 msgid "No errors or warnings found." msgstr "Nem találtam figyelmeztetést vagy hibaüzenetet." #: lib/Padre/Wx/Syntax.pm:404 #, perl-format msgid "Found %d issue(s) in %s" msgstr "%d problémát találtam %s-ben" #: lib/Padre/Wx/Syntax.pm:405 #, perl-format msgid "Found %d issue(s)" msgstr "%d problémát találtam" #: lib/Padre/Wx/Syntax.pm:426 #, perl-format msgid "Line %d: (%s) %s" msgstr "Sorok: %d (%s) %s" #: lib/Padre/Wx/Browser.pm:64 #: lib/Padre/Wx/ActionLibrary.pm:2578 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:398 msgid "Help" msgstr "&Súgó" #: lib/Padre/Wx/Browser.pm:93 #: lib/Padre/Wx/Browser.pm:108 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Keresés a perldoc-ban - pl. Padre::Task, Net::LDAP" #: lib/Padre/Wx/Browser.pm:104 msgid "Search:" msgstr "Keresés:" #: lib/Padre/Wx/Browser.pm:110 #: lib/Padre/Wx/About.pm:86 #: lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/Dialog/Replace.pm:191 #: lib/Padre/Wx/Dialog/KeyBindings.pm:139 #: lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/PerlFilter.pm:99 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 #: lib/Padre/Wx/Dialog/RegexEditor.pm:238 msgid "&Close" msgstr "Bezárás" #: lib/Padre/Wx/Browser.pm:341 msgid "Untitled" msgstr "Névtelen" #: lib/Padre/Wx/Browser.pm:409 #, perl-format msgid "Browser: no viewer for %s" msgstr "Böngésző: nincs megjelenítő %s -hez" #: lib/Padre/Wx/Browser.pm:443 #, perl-format msgid "Searched for '%s' and failed..." msgstr "'%s'-t kerestem és nem sikerült..." #: lib/Padre/Wx/Browser.pm:444 msgid "Help not found." msgstr "Nem találtam segítséget." #: lib/Padre/Wx/Browser.pm:465 msgid "NAME" msgstr "NÉV" #: lib/Padre/Wx/Outline.pm:110 #: lib/Padre/Wx/Outline.pm:312 msgid "Outline" msgstr "Áttekintés" #: lib/Padre/Wx/Outline.pm:221 msgid "&Go to Element" msgstr "&Elemre Ugrás" #: lib/Padre/Wx/Outline.pm:235 msgid "Open &Documentation" msgstr "&Dokumentáció megnyitása" #: lib/Padre/Wx/Outline.pm:357 msgid "Pragmata" msgstr "Pragmate" #: lib/Padre/Wx/Outline.pm:358 msgid "Modules" msgstr "Modulok" #: lib/Padre/Wx/Outline.pm:359 msgid "Methods" msgstr "Metódusok" #: lib/Padre/Wx/Outline.pm:360 msgid "Attributes" msgstr "Attribútumok" #: lib/Padre/Wx/Debugger.pm:78 msgid "Debugger is already running" msgstr "A nyomkövető már fut" #: lib/Padre/Wx/Debugger.pm:82 msgid "Not a Perl document" msgstr "Nem Perl dokumentum" #: lib/Padre/Wx/Debugger.pm:137 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "A nyomkövetés meghíúsult. Ellenőrizted a programot szintaktikai hibáit?" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', or 'Run till Breakpoint' in the Debug menu." msgstr "" "A nyomkövetés nem fut.\n" "Elindíthatod a nyomkövetést az alábbi parancsokkal 'Lépj be', 'Lépj túl', 'Fuss megszakítási pontig' a Nyömkövetés menüben." #: lib/Padre/Wx/Debugger.pm:193 #: lib/Padre/Wx/Debugger.pm:275 #: lib/Padre/Wx/Debugger.pm:299 #: lib/Padre/Wx/Debugger.pm:333 #: lib/Padre/Wx/Debugger.pm:353 msgid "Debugger not running" msgstr "Nyomkövető nem fut" #: lib/Padre/Wx/Debugger.pm:226 #, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "Nem tudom a '%s' fájl '%s' sorába a töréspontot beállítani" #: lib/Padre/Wx/Debugger.pm:389 #, perl-format msgid "Could not evaluate '%s'" msgstr "Nem tudom kiértékelni '%s'" #: lib/Padre/Wx/Debugger.pm:407 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "A '%s' nem néz ki változónak. Először jelölj ki egy változót a kódban, majd próbáld újra." #: lib/Padre/Wx/Debugger.pm:439 msgid "Expression:" msgstr "Kifejezés:" #: lib/Padre/Wx/Debugger.pm:440 msgid "Expr" msgstr "Kif" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "Kimeneti nézet" #: lib/Padre/Wx/StatusBar.pm:290 msgid "Background Tasks are running" msgstr "A háttér feladatok futnak" #: lib/Padre/Wx/StatusBar.pm:291 msgid "Background Tasks are running with high load" msgstr "A háttér feladatok nagy terheltséggel futnak" #: lib/Padre/Wx/StatusBar.pm:417 msgid "Read Only" msgstr "Csak olvasható" #: lib/Padre/Wx/StatusBar.pm:417 msgid "R/W" msgstr "R/W" #: lib/Padre/Wx/WizardLibrary.pm:20 msgid "Module" msgstr "Modul" #: lib/Padre/Wx/WizardLibrary.pm:21 msgid "Perl 5" msgstr "Perl 5" #: lib/Padre/Wx/WizardLibrary.pm:22 msgid "Opens the Perl 5 module wizard" msgstr "Megnyitja a Perl 5 modulvarázslót" #: lib/Padre/Wx/WizardLibrary.pm:28 msgid "Plugin" msgstr "Plugin" #: lib/Padre/Wx/WizardLibrary.pm:30 msgid "Opens the Padre plugin wizard" msgstr "Megnyitja a Padre plugin varázslót" #: lib/Padre/Wx/WizardLibrary.pm:36 #: lib/Padre/Wx/Dialog/DocStats.pm:95 msgid "Document" msgstr "Dokumentum" #: lib/Padre/Wx/WizardLibrary.pm:38 msgid "Opens the Padre document wizard" msgstr "Megnyitja a Padre dokumentum varázslót" #: lib/Padre/Wx/TodoList.pm:199 msgid "To-do" msgstr "Tennivalók" #: lib/Padre/Wx/Editor.pm:1612 msgid "You must select a range of lines" msgstr "Ki kell jelölni sorok egy tartományát" #: lib/Padre/Wx/Editor.pm:1628 msgid "First character of selection must be a non-word character to align" msgstr "A kijelölés első karakterének egy nem-szó karakterre kell illeszkednie" #: lib/Padre/Wx/FunctionList.pm:217 msgid "Functions" msgstr "Függvények megjelenítése" #: lib/Padre/Wx/Right.pm:52 msgid "Document Tools" msgstr "Dokumentum eszközök" #: lib/Padre/Wx/Left.pm:52 msgid "Project Tools" msgstr "&Projekt eszközök" #: lib/Padre/Wx/FindResult.pm:88 #, perl-format msgid "Find Results (%s)" msgstr "Találatok keresése (%s)" #: lib/Padre/Wx/FindResult.pm:125 msgid "Related editor has been closed" msgstr "A kapcsolódó szerkesztő bezárult" #: lib/Padre/Wx/FindResult.pm:177 msgid "Line" msgstr "Sor" #: lib/Padre/Wx/FindResult.pm:178 msgid "Content" msgstr "Tartalom" #: lib/Padre/Wx/FindResult.pm:226 msgid "Copy &Selected" msgstr "A kijelölt másolása" #: lib/Padre/Wx/FindResult.pm:249 msgid "Copy &All" msgstr "Minden másolása" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "Fájlok" #: lib/Padre/Wx/About.pm:25 msgid "About Padre" msgstr "Névjegy" #: lib/Padre/Wx/About.pm:64 msgid "Development" msgstr "Fejlesztés" #: lib/Padre/Wx/About.pm:69 msgid "Translation" msgstr "Fordítás" #: lib/Padre/Wx/About.pm:74 #: lib/Padre/Wx/About.pm:317 msgid "System Info" msgstr "Rendszerinformáció" #: lib/Padre/Wx/About.pm:102 msgid "Created by" msgstr "Készítette" #: lib/Padre/Wx/About.pm:103 #: lib/Padre/Wx/About.pm:135 msgid "The Padre Development Team" msgstr "A Padre Fejlesztő Csapat" #: lib/Padre/Wx/About.pm:105 msgid "Padre is free software; you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "A Padre szabad szoftver; terjesztheted és módosíthatod a Perl 5 feltételei szerint." #: lib/Padre/Wx/About.pm:106 msgid "Blue butterfly on a green leaf" msgstr "Kék pillangó zöld levélen" #: lib/Padre/Wx/About.pm:107 msgid "splash image is based on work by" msgstr "a splash kép az ő munkája nyomán készült" #: lib/Padre/Wx/About.pm:227 msgid "The Padre Translation Team" msgstr "A Padre Fordító Csapat" #: lib/Padre/Wx/About.pm:318 msgid "Config:" msgstr "Config:" #: lib/Padre/Wx/About.pm:337 msgid "Uptime" msgstr "Uptime" #: lib/Padre/Wx/About.pm:342 msgid "unsupported" msgstr "nemtámogatott" #: lib/Padre/Wx/Directory.pm:79 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 #: lib/Padre/Wx/Dialog/Find.pm:78 msgid "Search" msgstr "Keresés" #: lib/Padre/Wx/Directory.pm:110 msgid "Move to other panel" msgstr "Másik panelra mozgat" #: lib/Padre/Wx/Directory.pm:270 #: lib/Padre/Wx/Dialog/WindowList.pm:223 msgid "Project" msgstr "Projekt" #: lib/Padre/Wx/Progress.pm:76 msgid "Please wait..." msgstr "Kérem várjon..." #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Rendszer Alapértelmezése" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Nyelv átállítása a rendszer alapértelmezésre" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Padre felület átkapcsolása %s nyelvre" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dump the Padre object to STDOUT" msgstr "Padre objektum dumpolása a STDOUT-ra" #: lib/Padre/Wx/ActionLibrary.pm:90 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "A teljes Padre objektum dumpolása a STDOUT-ra tesztelés/nyomkövetés céljából." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Delay the action queue for 10 seconds" msgstr "Cselekvési sor késleltetése 10 másodperccel" #: lib/Padre/Wx/ActionLibrary.pm:111 msgid "Stops processing of other action queue items for 10 seconds" msgstr "A többi akció-sor feldolgozásának megállítása 10 másodpercre" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Delay the action queue for 30 seconds" msgstr "Az akció-sor késleltetése 30 másodperccel" #: lib/Padre/Wx/ActionLibrary.pm:120 msgid "Stops processing of other action queue items for 30 seconds" msgstr "A többi akció-sor feldolgozásának megállítása 30 másodpercre" #: lib/Padre/Wx/ActionLibrary.pm:130 msgid "&New" msgstr "&Új" #: lib/Padre/Wx/ActionLibrary.pm:131 msgid "Open a new empty document" msgstr "Új üres dokumentum megnyiátsa" #: lib/Padre/Wx/ActionLibrary.pm:141 msgid "Perl 5 Script" msgstr "Perl 5 Szkript" #: lib/Padre/Wx/ActionLibrary.pm:142 msgid "Open a document with a skeleton Perl 5 script" msgstr "Dokumentum megnyitása egy Perl 5 szkript vázzal" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Perl 5 Module" msgstr "Perl 5 Modul" #: lib/Padre/Wx/ActionLibrary.pm:151 msgid "Open a document with a skeleton Perl 5 module" msgstr "Dokumentum megnyitása egy váz Perl 5 modullal" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 Test" msgstr "Perl 5 teszt" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Dokumentum megnyitása egy váz Perl 5 teszt szkripttel" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Perl 6 Script" msgstr "Perl 6 szkript" #: lib/Padre/Wx/ActionLibrary.pm:171 msgid "Open a document with a skeleton Perl 6 script" msgstr "Dokumentum megnyitása egy váz Perl 6 szkripttel" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl Distribution..." msgstr "Perl Terjesztés..." #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Setup a skeleton Perl module distribution" msgstr "Perl modul terjesztés vázának létrehozása" #: lib/Padre/Wx/ActionLibrary.pm:192 msgid "Wizard Selector..." msgstr "Varázsló választó..." #: lib/Padre/Wx/ActionLibrary.pm:193 msgid "Selects and opens a wizard" msgstr "Varázsló választása és megnyitása" #: lib/Padre/Wx/ActionLibrary.pm:206 msgid "&Open" msgstr "&Megnyitás" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Browse directory of the current document to open one or several files" msgstr "Az aktuális dokumentum könyvtárának böngészése egy vagy több fájl megnyitásának céljából" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open &URL..." msgstr "&URL megnyitása..." #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Open a file from a remote location" msgstr "Fájl megnyitása távoli helyről" #: lib/Padre/Wx/ActionLibrary.pm:228 #: lib/Padre/Wx/Directory/TreeCtrl.pm:218 msgid "Open in File Browser" msgstr "Fájl Megnyitása Böngészőben" #: lib/Padre/Wx/ActionLibrary.pm:229 msgid "Opens the current document using the file browser" msgstr "Megnyitja az aktuális dokumentumot a fájl-böngészőben" #: lib/Padre/Wx/ActionLibrary.pm:238 msgid "Open with Default System Editor" msgstr "Megnyitás a rendszer alapértelmezett szerkesztőjével" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Opens the file with the default system editor" msgstr "A fájl megnyitása a rendszer alapértelmezett szerkesztőjével" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Open in Command Line" msgstr "Parancssor megnyitása" #: lib/Padre/Wx/ActionLibrary.pm:253 msgid "Opens a command line using the current document folder" msgstr "Parancssor megnyitása az alapértelmezett dokumentummappában" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open Example" msgstr "Példa megnyitása" #: lib/Padre/Wx/ActionLibrary.pm:263 msgid "Browse the directory of the installed examples to open one file" msgstr "A telepített példák könyvtárának böngészése, hogy egy fájl megnyitásának céljából" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "Aktuális dokumentum bezárása" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close this Project" msgstr "Projekt bezárása" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Az összes projekthez tartozó fájl bezárása" #: lib/Padre/Wx/ActionLibrary.pm:295 #: lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "A fájl nincs a projektben" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other Projects" msgstr "Többi bezárása" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Az összes projekthez nem tartozó fájl bezárása" #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close all Files" msgstr "Minden fájl bezárása" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Az összes szerkesztőben megnyitott fájl bezárása" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all other Files" msgstr "Minden más fájl bezárása" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Minden fájl bezárása, kivéve az aktuális" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close Files..." msgstr "Fájlok bezárása..." #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Néhány nyitott fájl kiválasztása bezárásra" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "Reload File" msgstr "Fájl újratöltése" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Reload current file from disk" msgstr "Aktuális fájl újratöltése a lemezről" #: lib/Padre/Wx/ActionLibrary.pm:369 msgid "Reload All" msgstr "Minden újratöltése" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Reload all files currently open" msgstr "Újratölt minden aktuálisan nyitott fájlt" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload Some..." msgstr "Néhány újratöltése..." #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Select some open files for reload" msgstr "Néhány nyitott fájl kiválasztása újratöltésre" #: lib/Padre/Wx/ActionLibrary.pm:393 #: lib/Padre/Wx/Dialog/Preferences.pm:917 #: lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "&Mentés" #: lib/Padre/Wx/ActionLibrary.pm:394 msgid "Save current document" msgstr "Aktuális dokumentum mentése" #: lib/Padre/Wx/ActionLibrary.pm:406 msgid "Save &As..." msgstr "Mentés m&ásként..." #: lib/Padre/Wx/ActionLibrary.pm:407 msgid "Allow the selection of another name to save the current document" msgstr "Megenged másik nevet kiválasztani, hogy elmentse az aktuális dokumentumot" #: lib/Padre/Wx/ActionLibrary.pm:419 msgid "Save Intuition" msgstr "Intuíció mentése" #: lib/Padre/Wx/ActionLibrary.pm:420 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "Új dokumentum esetén megpróbálja kitalálni a fájlnevet a tartalma alapján, és felajánlja mentésre." #: lib/Padre/Wx/ActionLibrary.pm:430 msgid "Save All" msgstr "Minden mentése" #: lib/Padre/Wx/ActionLibrary.pm:431 msgid "Save all the files" msgstr "Minden fájl mentése" #: lib/Padre/Wx/ActionLibrary.pm:444 msgid "List the files that match the current selection and let the user pick one to open" msgstr "Az aktuális kijelölés fájljainak listázása, és engedi a felhasználót, hogy kiválasszon egyet, amit megnyit" #: lib/Padre/Wx/ActionLibrary.pm:453 msgid "Open Session..." msgstr "Munkamenet megnyitása..." #: lib/Padre/Wx/ActionLibrary.pm:454 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "Kijelöl egy munkamenetet. Becsuk minden éppen nyitott fájlt és megnyitja a munkamenetben felsoroltakat" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "Save Session..." msgstr "Munkamenet mentése..." #: lib/Padre/Wx/ActionLibrary.pm:465 msgid "Ask for a session name and save the list of files currently opened" msgstr "Megkérdezi a munkamenet nevét, majd elmenti az aktuálisan megnyitott fájlok listáját" #: lib/Padre/Wx/ActionLibrary.pm:480 msgid "&Print..." msgstr "Ny&omtatás..." #: lib/Padre/Wx/ActionLibrary.pm:481 msgid "Print the current document" msgstr "Az aktuális dokumentum nyomtatása" #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "Open All Recent Files" msgstr "Összes korábbi fájl megnyitása" #: lib/Padre/Wx/ActionLibrary.pm:501 msgid "Open all the files listed in the recent files list" msgstr "Megnyit minden fájlt a nemrégiben használtak listájáról" #: lib/Padre/Wx/ActionLibrary.pm:509 msgid "Clean Recent Files List" msgstr "Korábbi fájlok listájának törlése" #: lib/Padre/Wx/ActionLibrary.pm:510 msgid "Remove the entries from the recent files list" msgstr "Törli a bejegyzéseket a mostanában használt fájlok listájáról" #: lib/Padre/Wx/ActionLibrary.pm:521 #: lib/Padre/Wx/Dialog/DocStats.pm:31 msgid "Document Statistics" msgstr "Dokumentum statisztikák" #: lib/Padre/Wx/ActionLibrary.pm:522 msgid "Word count and other statistics of the current document" msgstr "A szavak száma és egyéb statisztika az aktuális dokumentumról" #: lib/Padre/Wx/ActionLibrary.pm:534 msgid "&Quit" msgstr "&Kilépés" #: lib/Padre/Wx/ActionLibrary.pm:535 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Megkérdezi, hogy az elmentetlen fájlokat elmentse-e, majd kilép a Padre-ból" #: lib/Padre/Wx/ActionLibrary.pm:554 msgid "&Undo" msgstr "Viss&zavonás" #: lib/Padre/Wx/ActionLibrary.pm:555 msgid "Undo last change in current file" msgstr "Visszavonja a fájl utolsó változtatását" #: lib/Padre/Wx/ActionLibrary.pm:574 msgid "&Redo" msgstr "M&egismétel" #: lib/Padre/Wx/ActionLibrary.pm:575 msgid "Redo last undo" msgstr "Újracsinálja az utolsó visszavonást" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Select All" msgstr "Mindent kijelöl" #: lib/Padre/Wx/ActionLibrary.pm:589 msgid "Select all the text in the current document" msgstr "Kiválaszt a dokumentumban minden szöveget" #: lib/Padre/Wx/ActionLibrary.pm:601 msgid "Mark Selection Start" msgstr "Megjelölés kijelölés kezdeteként" #: lib/Padre/Wx/ActionLibrary.pm:602 msgid "Mark the place where the selection should start" msgstr "Megjelöli a helyet, ahol a kijelölésnek kellene kezdődnie" #: lib/Padre/Wx/ActionLibrary.pm:613 msgid "Mark Selection End" msgstr "Megjelölés kijelölés végeként" #: lib/Padre/Wx/ActionLibrary.pm:614 msgid "Mark the place where the selection should end" msgstr "Megjelöli a helyet, ahol a kijelölésnek kellene végződnie" #: lib/Padre/Wx/ActionLibrary.pm:625 msgid "Clear Selection Marks" msgstr "Kijelölési Jelzések Törlése" #: lib/Padre/Wx/ActionLibrary.pm:626 msgid "Remove all the selection marks" msgstr "Minden kijelölési jelzés törlése" #: lib/Padre/Wx/ActionLibrary.pm:640 msgid "Cu&t" msgstr "Ki&vágás" #: lib/Padre/Wx/ActionLibrary.pm:641 msgid "Remove the current selection and put it in the clipboard" msgstr "Törli az aktuális kijelölést és a vágólapra teszi" #: lib/Padre/Wx/ActionLibrary.pm:655 msgid "&Copy" msgstr "&Másolás" #: lib/Padre/Wx/ActionLibrary.pm:656 msgid "Put the current selection in the clipboard" msgstr "Az aktuális kijelölést a vágólapra teszi" #: lib/Padre/Wx/ActionLibrary.pm:671 msgid "Copy Full Filename" msgstr "Teljes Fájlnév másolása" #: lib/Padre/Wx/ActionLibrary.pm:672 msgid "Put the full path of the current file in the clipboard" msgstr "Az aktuális fájl nevét a teljes elérési útjával a vágólapra teszi" #: lib/Padre/Wx/ActionLibrary.pm:685 msgid "Copy Filename" msgstr "Fájlnév Másolása" #: lib/Padre/Wx/ActionLibrary.pm:686 msgid "Put the name of the current file in the clipboard" msgstr "Az aktuális fájl nevét a vágólapra teszi" #: lib/Padre/Wx/ActionLibrary.pm:699 msgid "Copy Directory Name" msgstr "Könyvtárnév másolása" #: lib/Padre/Wx/ActionLibrary.pm:700 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Az aktuális fájlt tartalmazó könyvtárt a teljes elérési útjával a vágólapra teszi" #: lib/Padre/Wx/ActionLibrary.pm:712 msgid "Copy Editor Content" msgstr "Szerkesztő tartalmának másolása" #: lib/Padre/Wx/ActionLibrary.pm:713 msgid "Put the content of the current document in the clipboard" msgstr "Az aktuális dokumentum tartalmát a vágólapra teszi" #: lib/Padre/Wx/ActionLibrary.pm:728 msgid "&Paste" msgstr "&Beillesztés" #: lib/Padre/Wx/ActionLibrary.pm:729 msgid "Paste the clipboard to the current location" msgstr "Bemásolja a vágólap tartalmát az aktuális pozícióba" #: lib/Padre/Wx/ActionLibrary.pm:742 msgid "&Go To..." msgstr "&Menj..." #: lib/Padre/Wx/ActionLibrary.pm:743 msgid "Jump to a specific line number or character position" msgstr "Egy megadott sorra vagy karakter-pozícióra ugrik" #: lib/Padre/Wx/ActionLibrary.pm:753 msgid "&Next Problem" msgstr "&Következő Probléma" #: lib/Padre/Wx/ActionLibrary.pm:754 msgid "Jump to the code that triggered the next error" msgstr "A következő problémát okozó kódrészletre ugrás" #: lib/Padre/Wx/ActionLibrary.pm:764 msgid "&Quick Fix" msgstr "&Gyorsjavítás" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "Apply one of the quick fixes for the current document" msgstr "A gyorsjavítások egyikét alkalmazza az aktuális dokumentumra" #: lib/Padre/Wx/ActionLibrary.pm:790 msgid "No suggestions" msgstr "Nincs javaslat" #: lib/Padre/Wx/ActionLibrary.pm:819 msgid "&Autocomplete" msgstr "&Kiegészítés" #: lib/Padre/Wx/ActionLibrary.pm:820 msgid "Offer completions to the current string. See Preferences" msgstr "Befejeződéseket ajánl az aktuális szövegre. Lásd Beállítások" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "&Brace Matching" msgstr "Zárójel &párja" #: lib/Padre/Wx/ActionLibrary.pm:831 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "A hozzátartozó nyitó vagy záró zárójelre ugrás: { }, ( ), [ ], < >" #: lib/Padre/Wx/ActionLibrary.pm:841 msgid "&Select to Matching Brace" msgstr "&Zárójelpár kijelölése" #: lib/Padre/Wx/ActionLibrary.pm:842 msgid "Select to the matching opening or closing brace" msgstr "Kiválasztja az illeszkedő nyitó vagy záró zárójelet" #: lib/Padre/Wx/ActionLibrary.pm:853 msgid "&Join Lines" msgstr "Sorok össze&kapcsolása" #: lib/Padre/Wx/ActionLibrary.pm:854 msgid "Join the next line to the end of the current line." msgstr "A következő sor hozzákapcsolása az aktuális sorhoz." #: lib/Padre/Wx/ActionLibrary.pm:864 msgid "Special Value..." msgstr "Speciális érték..." #: lib/Padre/Wx/ActionLibrary.pm:865 msgid "Select a date, filename or other value and insert at the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:877 msgid "Snippets..." msgstr "Töredékek..." #: lib/Padre/Wx/ActionLibrary.pm:878 msgid "Select and insert a snippet at the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:889 msgid "File..." msgstr "Fájl..." #: lib/Padre/Wx/ActionLibrary.pm:890 msgid "Select a file and insert its content at the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:902 msgid "&Toggle Comment" msgstr "&Komment be-/kikapcsolása" #: lib/Padre/Wx/ActionLibrary.pm:903 msgid "Comment out or remove comment out of selected lines in the document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:915 msgid "&Comment Selected Lines" msgstr "Kiválasztott sorok &kommentezése" #: lib/Padre/Wx/ActionLibrary.pm:916 msgid "Comment out selected lines in the document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:927 msgid "&Uncomment Selected Lines" msgstr "Kiválasztott sorok &kommenttelenítése" #: lib/Padre/Wx/ActionLibrary.pm:928 msgid "Remove comment out of selected lines in the document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:940 msgid "Encode Document to System Default" msgstr "Dokumentum kódolása a rendszer alapértelmezésére" #: lib/Padre/Wx/ActionLibrary.pm:941 msgid "Change the encoding of the current document to the default of the operating system" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:951 msgid "Encode Document to utf-8" msgstr "Dokumentum kódolása utf8-ra" #: lib/Padre/Wx/ActionLibrary.pm:952 msgid "Change the encoding of the current document to utf-8" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:962 msgid "Encode Document to..." msgstr "Dokumentum kódolása..." #: lib/Padre/Wx/ActionLibrary.pm:963 msgid "Select an encoding and encode the document to that" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:973 msgid "EOL to Windows" msgstr "Windows-os sorvégek" #: lib/Padre/Wx/ActionLibrary.pm:974 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:983 msgid "EOL to Unix" msgstr "Unixos sorvégek" #: lib/Padre/Wx/ActionLibrary.pm:984 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:993 msgid "EOL to Mac Classic" msgstr "Mac-es sorvégek" #: lib/Padre/Wx/ActionLibrary.pm:994 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1005 msgid "Tabs to Spaces..." msgstr "Tabulátorok szóközökké..." #: lib/Padre/Wx/ActionLibrary.pm:1006 msgid "Convert all tabs to spaces in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1015 msgid "Spaces to Tabs..." msgstr "Szóközök tabulátorokká..." #: lib/Padre/Wx/ActionLibrary.pm:1016 msgid "Convert all the spaces to tabs in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1025 msgid "Delete Trailing Spaces" msgstr "Záró Szóközök Törlése" #: lib/Padre/Wx/ActionLibrary.pm:1026 msgid "Remove the spaces from the end of the selected lines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1035 msgid "Delete Leading Spaces" msgstr "Bevezető Szóközök Törlése" #: lib/Padre/Wx/ActionLibrary.pm:1036 msgid "Remove the spaces from the beginning of the selected lines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1047 msgid "Upper All" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1048 msgid "Change the current selection to upper case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1058 msgid "Lower All" msgstr "Kisbetű Mind" #: lib/Padre/Wx/ActionLibrary.pm:1059 msgid "Change the current selection to lower case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1069 msgid "Diff to Saved Version" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1070 msgid "Compare the file in the editor to that on the disk and show the diff in the output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1079 msgid "Apply Diff to File" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1080 msgid "Apply a patch file to the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1089 msgid "Apply Diff to Project" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1090 msgid "Apply a patch file to the current project" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1101 msgid "Filter through External Tool..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1102 msgid "Filters the selection (or the whole document) through any external command." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1110 msgid "Filter through Perl" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1111 msgid "Use Perl source as filter" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1120 msgid "Show as Hexadecimal" msgstr "Megjelenítése hexa alakban" #: lib/Padre/Wx/ActionLibrary.pm:1121 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1130 msgid "Show as Decimal" msgstr "Megjelenítése tízes számrendszerben" #: lib/Padre/Wx/ActionLibrary.pm:1131 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1143 msgid "&Find..." msgstr "&Keresés:" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Find text or regular expressions using a traditional dialog" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1158 #: lib/Padre/Wx/ActionLibrary.pm:1214 #: lib/Padre/Wx/FBP/Find.pm:98 msgid "Find Next" msgstr "Következő Keresése" #: lib/Padre/Wx/ActionLibrary.pm:1160 msgid "Repeat the last find to find the next match" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1193 msgid "Failed to find any matches" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1201 msgid "&Find Previous" msgstr "&Előző Keresése" #: lib/Padre/Wx/ActionLibrary.pm:1202 msgid "Repeat the last find, but backwards to find the previous match" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1215 msgid "Find next matching text using a toolbar-like dialog at the bottom of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1225 msgid "Find Previous" msgstr "Előző Keresése" #: lib/Padre/Wx/ActionLibrary.pm:1226 msgid "Find previous matching text using a toolbar-like dialog at the bottom of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "Csere..." #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find a text and replace it" msgstr "Szöveg keresése és cseréje" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Find in Fi&les..." msgstr "Fáj&lokban keresés" #: lib/Padre/Wx/ActionLibrary.pm:1252 msgid "Search for a text in all files below a given directory" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1265 msgid "Open Resource..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Type in a filter to select a file" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1276 msgid "Quick Menu Access..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1277 msgid "Quick access to all menu functions" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1292 msgid "Lock User Interface" msgstr "Felhasználói Felület Zárolása" #: lib/Padre/Wx/ActionLibrary.pm:1293 msgid "If activated, do not allow moving around some of the windows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1304 msgid "Show Output" msgstr "Kimenet megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1305 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1314 msgid "Show Functions" msgstr "Függvények megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1315 msgid "Show a window listing all the functions in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1324 msgid "Show Command Line window" msgstr "Parancssori ablak mutatása" #: lib/Padre/Wx/ActionLibrary.pm:1325 msgid "Show the command line window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1334 msgid "Show To-do List" msgstr "Tennivalók listájának mutatása" #: lib/Padre/Wx/ActionLibrary.pm:1335 msgid "Show a window listing all todo items in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1344 msgid "Show Outline" msgstr "Vázlat megjelnítése" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1354 msgid "Show Project Browser/Tree" msgstr "Projekt böngésző/fa megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1355 msgid "Project Browser - Was known as the Directory Tree." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1364 msgid "Show Syntax Check" msgstr "Szintaxisellenőrző megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1365 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1374 msgid "Hide Find in Files" msgstr "A Keresés elrejtése a fájlokban" #: lib/Padre/Wx/ActionLibrary.pm:1375 msgid "Hide the list of matches for a Find in Files search" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1383 msgid "Show Status Bar" msgstr "Státuszsor megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1384 msgid "Show/hide the status bar at the bottom of the screen" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1393 msgid "Show Toolbar" msgstr "Eszköztár megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1394 msgid "Show/hide the toolbar at the top of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1409 msgid "Switch document type" msgstr "Dokumentum típus váltása" #: lib/Padre/Wx/ActionLibrary.pm:1422 msgid "Show Line Numbers" msgstr "Sorszámok megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1423 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1432 msgid "Show Code Folding" msgstr "Kód összecsukás megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1433 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1442 msgid "Fold all" msgstr "Az összes összecsukása" #: lib/Padre/Wx/ActionLibrary.pm:1443 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1452 msgid "Unfold all" msgstr "Az összes szétnyitása" #: lib/Padre/Wx/ActionLibrary.pm:1453 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1462 msgid "Show Call Tips" msgstr "Tippek megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:1463 msgid "When typing in functions allow showing short examples of the function" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2442 msgid "Last Visited File" msgstr "Utoljára Megtekintett Fájl" #: lib/Padre/Wx/ActionLibrary.pm:2443 msgid "Jump between the two last visited files back and forth" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2453 msgid "Goto previous position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2454 msgid "Jump to the last position saved in memory" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2466 #: lib/Padre/Wx/Dialog/Positions.pm:108 msgid "Show previous positions" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2467 msgid "Show the list of positions recently visited" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Right Click" msgstr "Jobb kattintás" #: lib/Padre/Wx/ActionLibrary.pm:2481 msgid "Imitate clicking on the right mouse button" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2494 msgid "Go to Functions Window" msgstr "Ugrás a Függvények Ablakra" #: lib/Padre/Wx/ActionLibrary.pm:2495 msgid "Set the focus to the \"Functions\" window" msgstr "Fókusz mozgatása a \"Függvények\" ablakra" #: lib/Padre/Wx/ActionLibrary.pm:2508 msgid "Go to Todo Window" msgstr "Ugrás a Tennivalók ablakba" #: lib/Padre/Wx/ActionLibrary.pm:2509 msgid "Set the focus to the \"Todo\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2520 msgid "Go to Outline Window" msgstr "Ugrás a Vázlat Ablakra" #: lib/Padre/Wx/ActionLibrary.pm:2521 msgid "Set the focus to the \"Outline\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2531 msgid "Go to Output Window" msgstr "Ugrás a Kimeneti Ablakra" #: lib/Padre/Wx/ActionLibrary.pm:2532 msgid "Set the focus to the \"Output\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2542 msgid "Go to Syntax Check Window" msgstr "Ugrás a Szintaxisellenörző Ablakra" #: lib/Padre/Wx/ActionLibrary.pm:2543 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Fókusz mozgatása a \"Szintaxisellenőrző\" Ablakra" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Go to Command Line Window" msgstr "Ugrás a Parancssor Ablakra" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Set the focus to the \"Command Line\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Go to Main Window" msgstr "Ugrás a Főablakra" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Set the focus to the main editor window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2579 msgid "Show the Padre help" msgstr "Padre súgó megjelenítése" #: lib/Padre/Wx/ActionLibrary.pm:2587 msgid "Search Help" msgstr "Segítség kere&sés" #: lib/Padre/Wx/ActionLibrary.pm:2588 msgid "Search the Perl help pages (perldoc)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2599 msgid "Context Help" msgstr "Környezeti segítség\tF1" #: lib/Padre/Wx/ActionLibrary.pm:2600 msgid "Show the help article for the current context" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2612 msgid "Current Document" msgstr "Aktuális dokumentum" #: lib/Padre/Wx/ActionLibrary.pm:2613 msgid "Show the POD (Perldoc) version of the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2623 msgid "Padre Support (English)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2625 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2635 msgid "Perl Help" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2637 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2647 msgid "Win32 Questions (English)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2649 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2661 msgid "Visit the PerlMonks" msgstr "PerlMonks meglátogatása" #: lib/Padre/Wx/ActionLibrary.pm:2663 msgid "Open perlmonks.org, one of the biggest Perl community sites, in your default web browser" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2673 msgid "Report a New &Bug" msgstr "Új &hiba jelentése" #: lib/Padre/Wx/ActionLibrary.pm:2674 msgid "Send a bug report to the Padre developer team" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2681 msgid "View All &Open Bugs" msgstr "Minden &nyitott hiba megtekintése" #: lib/Padre/Wx/ActionLibrary.pm:2682 msgid "View all known and currently unsolved bugs in Padre" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2690 msgid "&Translate Padre..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2691 msgid "Help by translating Padre to your local language" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2702 msgid "&About" msgstr "Né&vjegy" #: lib/Padre/Wx/ActionLibrary.pm:2703 msgid "Show information about Padre" msgstr "Padre információinak megjelenítése" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Üzenet" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Ismeretlen hiba innen" #: lib/Padre/Wx/Dialog/Sync.pm:43 #: lib/Padre/Wx/FBP/Sync.pm:25 msgid "Padre Sync" msgstr "Padre szinkronizáció" #: lib/Padre/Wx/Dialog/Sync.pm:468 #: lib/Padre/Wx/Dialog/Sync2.pm:88 msgid "Please input a valid value for both username and password" msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:516 #: lib/Padre/Wx/Dialog/Sync2.pm:131 msgid "Please ensure all inputs have appropriate values." msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:527 #: lib/Padre/Wx/Dialog/Sync2.pm:142 msgid "Password and confirmation do not match." msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:537 #: lib/Padre/Wx/Dialog/Sync2.pm:152 msgid "Email and confirmation do not match." msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:38 msgid "Session Manager" msgstr "Munkamenet kezelő" #: lib/Padre/Wx/Dialog/SessionManager.pm:215 msgid "List of sessions" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:227 #: lib/Padre/Wx/Dialog/SpecialValues.pm:25 #: lib/Padre/Wx/Dialog/PluginManager.pm:66 msgid "Name" msgstr "Név" #: lib/Padre/Wx/Dialog/SessionManager.pm:228 msgid "Description" msgstr "Leírás" #: lib/Padre/Wx/Dialog/SessionManager.pm:229 msgid "Last update" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:261 msgid "Save session automatically" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:291 msgid "Open" msgstr "Megnyitás" #: lib/Padre/Wx/Dialog/SessionManager.pm:292 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 #: lib/Padre/Wx/FBP/Sync.pm:233 msgid "Delete" msgstr "Törlés" #: lib/Padre/Wx/Dialog/SessionManager.pm:293 #: lib/Padre/Wx/Dialog/SessionSave.pm:230 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:280 #: lib/Padre/Wx/FBP/Sync.pm:248 #: lib/Padre/Wx/Menu/File.pm:140 msgid "Close" msgstr "Bezárás" #: lib/Padre/Wx/Dialog/Warning.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Shortcut.pm:32 msgid "A Dialog" msgstr "" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "" #: lib/Padre/Wx/Dialog/WizardSelector.pm:47 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:18 msgid "Wizard Selector" msgstr "" #: lib/Padre/Wx/Dialog/WizardSelector.pm:86 msgid "&Back" msgstr "" #: lib/Padre/Wx/Dialog/WizardSelector.pm:87 #: lib/Padre/Wx/Dialog/Search.pm:172 msgid "&Next" msgstr "&Következő" #: lib/Padre/Wx/Dialog/WizardSelector.pm:88 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/Preferences.pm:939 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:155 #: lib/Padre/Wx/Dialog/OpenResource.pm:184 msgid "&Cancel" msgstr "&Mégsem" #: lib/Padre/Wx/Dialog/WizardSelector.pm:174 #, perl-format msgid "%s has no constructor" msgstr "" #: lib/Padre/Wx/Dialog/FindInFiles.pm:63 msgid "Select Directory" msgstr "Könyvtár kijelölés" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Címke egy" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Második címke" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Akármi" #: lib/Padre/Wx/Dialog/ModuleStart.pm:16 #: lib/Padre/Wx/Dialog/ModuleStart.pm:36 msgid "Apache License" msgstr "Apache licenc" #: lib/Padre/Wx/Dialog/ModuleStart.pm:17 #: lib/Padre/Wx/Dialog/ModuleStart.pm:37 msgid "Artistic License 1.0" msgstr "Artistic Licenc 1.0" #: lib/Padre/Wx/Dialog/ModuleStart.pm:18 #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "Artistic License 2.0" msgstr "Artistic Licence 2.0" #: lib/Padre/Wx/Dialog/ModuleStart.pm:19 #: lib/Padre/Wx/Dialog/ModuleStart.pm:39 msgid "Revised BSD License" msgstr "Felülvizsgált BSD Licenc" #: lib/Padre/Wx/Dialog/ModuleStart.pm:20 #: lib/Padre/Wx/Dialog/ModuleStart.pm:40 msgid "GPL 2 or later" msgstr "GPL 2 vagy újabb" #: lib/Padre/Wx/Dialog/ModuleStart.pm:21 #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "LGPL 2.1 or later" msgstr "LGPL 2.1 vagy újabb" #: lib/Padre/Wx/Dialog/ModuleStart.pm:22 #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "MIT License" msgstr "MIT Licenc" #: lib/Padre/Wx/Dialog/ModuleStart.pm:23 #: lib/Padre/Wx/Dialog/ModuleStart.pm:43 msgid "Mozilla Public License" msgstr "Mozilla Public License" #: lib/Padre/Wx/Dialog/ModuleStart.pm:24 #: lib/Padre/Wx/Dialog/ModuleStart.pm:44 msgid "Open Source" msgstr "Nyílt forrású" #: lib/Padre/Wx/Dialog/ModuleStart.pm:25 #: lib/Padre/Wx/Dialog/ModuleStart.pm:45 #: lib/Padre/Wx/Dialog/ModuleStart.pm:113 msgid "Perl licensing terms" msgstr "Perl licenc feltételek" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 #: lib/Padre/Wx/Dialog/ModuleStart.pm:46 msgid "restrictive" msgstr "korlátozó" #: lib/Padre/Wx/Dialog/ModuleStart.pm:27 #: lib/Padre/Wx/Dialog/ModuleStart.pm:47 msgid "unrestricted" msgstr "korlátlan" #: lib/Padre/Wx/Dialog/ModuleStart.pm:55 msgid "Module Name:" msgstr "Modulnév:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:58 msgid "Author:" msgstr "Szerző:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:61 msgid "Email Address:" msgstr "Email:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:64 msgid "Builder:" msgstr "Fordító:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:67 msgid "License:" msgstr "Licenc:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:70 msgid "Parent Directory:" msgstr "Szülő Könyvtár:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:71 msgid "Pick parent directory" msgstr "Szülő könyvtár választása" #: lib/Padre/Wx/Dialog/ModuleStart.pm:97 msgid "Module Start" msgstr "Modul Kezdete" #: lib/Padre/Wx/Dialog/ModuleStart.pm:147 #, perl-format msgid "Field %s was missing. Module not created." msgstr "A(z) %s mező hiányzik. A modul nem jött létre." #: lib/Padre/Wx/Dialog/ModuleStart.pm:148 msgid "missing field" msgstr "hiányzó mező" #: lib/Padre/Wx/Dialog/ModuleStart.pm:182 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "URL megnyitása" #: lib/Padre/Wx/Dialog/OpenURL.pm:62 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 #: lib/Padre/Wx/Dialog/OpenResource.pm:178 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "pl." #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Logikai" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Pozitív Egész" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Egész" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "Szöveges" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Fájl/Könyvtár" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Fejlett beállítások" #: lib/Padre/Wx/Dialog/Advanced.pm:97 #: lib/Padre/Wx/Dialog/KeyBindings.pm:64 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:26 msgid "&Filter:" msgstr "&Szűrő:" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Preferált név:" #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/Dialog/PluginManager.pm:68 #: lib/Padre/Wx/FBP/Sync.pm:48 #: lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 msgid "Status" msgstr "Státusz" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Típus" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Másol" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Név másolása" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Érték másolása" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Érték:" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Igaz" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Hamis" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Alapértelmezett érték:" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Opciók:" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/Preferences.pm:165 #: lib/Padre/Wx/Dialog/SessionSave.pm:209 msgid "Description:" msgstr "Leírás:" #: lib/Padre/Wx/Dialog/Advanced.pm:172 #: lib/Padre/Wx/Dialog/KeyBindings.pm:120 msgid "&Set" msgstr "&Beállítás" #: lib/Padre/Wx/Dialog/Advanced.pm:178 #: lib/Padre/Wx/Dialog/KeyBindings.pm:132 msgid "&Reset" msgstr "&Visszaállítás" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "&Mentés" #: lib/Padre/Wx/Dialog/Advanced.pm:430 #: lib/Padre/Wx/Dialog/Preferences.pm:805 msgid "Default" msgstr "Alapértelmezés" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "User" msgstr "Felhasználó" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "Host" msgstr "Hoszt" #: lib/Padre/Wx/Dialog/Replace.pm:50 msgid "Find and Replace" msgstr "Keres és cserél" #: lib/Padre/Wx/Dialog/Replace.pm:80 msgid "Case &sensitive" msgstr "Kis- és nagybetű különválasztása" #: lib/Padre/Wx/Dialog/Replace.pm:94 msgid "Regular &Expression" msgstr "Reguláris &Kifejezés" #: lib/Padre/Wx/Dialog/Replace.pm:108 msgid "Close Window on &Hit" msgstr "Találatkor az ablak &bezárása" #: lib/Padre/Wx/Dialog/Replace.pm:122 msgid "Search &Backwards" msgstr "&Visszafelé keresés" #: lib/Padre/Wx/Dialog/Replace.pm:136 msgid "Replace &All" msgstr "&Mindegyik cseréje" #: lib/Padre/Wx/Dialog/Replace.pm:150 msgid "&Find" msgstr "Keresés:" #: lib/Padre/Wx/Dialog/Replace.pm:170 msgid "&Replace" msgstr "&Csere" #: lib/Padre/Wx/Dialog/Replace.pm:218 #: lib/Padre/Wx/FBP/FindInFiles.pm:125 #: lib/Padre/Wx/FBP/Find.pm:27 msgid "Find" msgstr "Keresés" #: lib/Padre/Wx/Dialog/Replace.pm:226 msgid "Find Text:" msgstr "Szöveg keresés:" #: lib/Padre/Wx/Dialog/Replace.pm:250 msgid "Replace" msgstr "Csere" #: lib/Padre/Wx/Dialog/Replace.pm:258 msgid "Replace Text:" msgstr "Szöveg Csere:" #: lib/Padre/Wx/Dialog/Replace.pm:304 msgid "Options" msgstr "Opciók" #: lib/Padre/Wx/Dialog/Replace.pm:537 #: lib/Padre/Wx/Dialog/Replace.pm:586 #: lib/Padre/Wx/Dialog/Find.pm:75 #, perl-format msgid "No matches found for \"%s\"." msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:538 #: lib/Padre/Wx/Dialog/Replace.pm:582 #: lib/Padre/Wx/Dialog/Replace.pm:587 msgid "Search and Replace" msgstr "Keresés és Csere" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d match" msgstr "%d találat kicserélve" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d matches" msgstr "%d találat kicserélve" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Függvény kijelölése" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Függvény" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 #: lib/Padre/Wx/Menu/Edit.pm:49 msgid "Select" msgstr "Kijelölés" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 #: lib/Padre/Wx/FBP/FindInFiles.pm:132 #: lib/Padre/Wx/FBP/Find.pm:119 msgid "Cancel" msgstr "Mégsem" #: lib/Padre/Wx/Dialog/KeyBindings.pm:29 msgid "Key Bindings" msgstr "Billentyű összerendelések" #: lib/Padre/Wx/Dialog/KeyBindings.pm:86 msgid "Sh&ortcut:" msgstr "Gyo&rsbillentyű:" #: lib/Padre/Wx/Dialog/KeyBindings.pm:89 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/Dialog/KeyBindings.pm:90 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/KeyBindings.pm:91 msgid "Shift" msgstr "Shift" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "None" msgstr "Egyik sem" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Backspace" msgstr "Backspace" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Tab" msgstr "Tab" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Space" msgstr "Szóköz" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Up" msgstr "Fel" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Down" msgstr "Le" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Left" msgstr "Balra" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Right" msgstr "Jobb" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 #: lib/Padre/Wx/Dialog/RegexEditor.pm:233 #: lib/Padre/Wx/Menu/Edit.pm:121 msgid "Insert" msgstr "Beszúrás" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Home" msgstr "Home" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "End" msgstr "End" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageUp" msgstr "PgFöl" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageDown" msgstr "PgLe" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Enter" msgstr "Enter" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Escape" msgstr "Esc" #: lib/Padre/Wx/Dialog/KeyBindings.pm:126 msgid "&Delete" msgstr "&Törlés" #: lib/Padre/Wx/Dialog/KeyBindings.pm:134 msgid "Reset to default shortcut" msgstr "Visszaállítja az alapértelmezett gyorsbillentyűt" #: lib/Padre/Wx/Dialog/KeyBindings.pm:388 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:391 msgid "Do you want to override it with the selected action?" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:392 msgid "Override Shortcut" msgstr "Gyorsbillentyű felülbírálása" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Akció: %s" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Gyorsbillentyű" #: lib/Padre/Wx/Dialog/Search.pm:135 msgid "Find:" msgstr "Keresés:" #: lib/Padre/Wx/Dialog/Search.pm:154 msgid "Previ&ous" msgstr "Elő&ző" #: lib/Padre/Wx/Dialog/Search.pm:180 msgid "Case &insensitive" msgstr "Kis- és nagybetű &egybevétele" #: lib/Padre/Wx/Dialog/Search.pm:184 msgid "Use rege&x" msgstr "Rege&x használata" #: lib/Padre/Wx/Dialog/DocStats.pm:39 msgid "Filename" msgstr "Fájlnév" #: lib/Padre/Wx/Dialog/DocStats.pm:40 msgid "Selection" msgstr "Kijelölés" #: lib/Padre/Wx/Dialog/DocStats.pm:60 msgid "&Update" msgstr "&Frissítés" #: lib/Padre/Wx/Dialog/DocStats.pm:98 msgid "Lines" msgstr "Sorok" #: lib/Padre/Wx/Dialog/DocStats.pm:102 msgid "Words" msgstr "Szavak" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "Karakterek (beleértve a szóközök)" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "Nem-whitespace karakterek" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "Kilóbájt (kB)" #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "Kibibájt (kiB)" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "Sortörés mód" #: lib/Padre/Wx/Dialog/DocStats.pm:131 msgid "Encoding" msgstr "Kódolás" #: lib/Padre/Wx/Dialog/DocStats.pm:133 msgid "Document type" msgstr "Dokumentum típus" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "egyik sem" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "There are no positions saved yet" msgstr "Még nincs pozíció eltárolva" #: lib/Padre/Wx/Dialog/Positions.pm:124 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Sor: %s Fájl: %s - %s" #: lib/Padre/Wx/Dialog/SpecialValues.pm:15 msgid "Date/Time" msgstr "Dátum/Idő" #: lib/Padre/Wx/Dialog/SpecialValues.pm:16 msgid "Now" msgstr "Most" #: lib/Padre/Wx/Dialog/SpecialValues.pm:17 msgid "Today" msgstr "Ma" #: lib/Padre/Wx/Dialog/SpecialValues.pm:18 msgid "Year" msgstr "Év" #: lib/Padre/Wx/Dialog/SpecialValues.pm:19 msgid "Epoch" msgstr "Epoch" #: lib/Padre/Wx/Dialog/SpecialValues.pm:21 #: lib/Padre/Wx/Dialog/WindowList.pm:224 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 msgid "File" msgstr "Fájl" #: lib/Padre/Wx/Dialog/SpecialValues.pm:22 msgid "Size" msgstr "Méret" #: lib/Padre/Wx/Dialog/SpecialValues.pm:30 msgid "Number of lines" msgstr "Sorok száma" #: lib/Padre/Wx/Dialog/SpecialValues.pm:46 #: lib/Padre/Wx/Dialog/Snippets.pm:22 msgid "Class:" msgstr "Osztály:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:47 msgid "Special Value:" msgstr "Speciális Érték:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:50 #: lib/Padre/Wx/Dialog/Snippets.pm:24 msgid "&Insert" msgstr "&Beszúrás" #: lib/Padre/Wx/Dialog/SpecialValues.pm:63 msgid "Insert Special Values" msgstr "Speciális érték beszúrása" #: lib/Padre/Wx/Dialog/Preferences.pm:18 msgid "Local/Remote File Access" msgstr "Helyi/Távoli fájl elérése" #: lib/Padre/Wx/Dialog/Preferences.pm:19 msgid "Perl Auto Complete" msgstr "Perl Automatikus kiegészítés" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "Enable bookmarks" msgstr "Könyvjelzők engedélyezése" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "Change font size" msgstr "Betűméret megváltoztatása" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enable session manager" msgstr "Munkamenet kezelő engedélyezése" #: lib/Padre/Wx/Dialog/Preferences.pm:86 msgid "Diff tool:" msgstr "Diff eszköz:" #: lib/Padre/Wx/Dialog/Preferences.pm:88 #: lib/Padre/Wx/Dialog/Preferences.pm:92 msgid "Browse..." msgstr "Böngész..." #: lib/Padre/Wx/Dialog/Preferences.pm:90 msgid "Perl ctags file:" msgstr "Perl ctags fájl:" #: lib/Padre/Wx/Dialog/Preferences.pm:159 msgid "File type:" msgstr "Fájl típus:" #: lib/Padre/Wx/Dialog/Preferences.pm:162 msgid "Highlighter:" msgstr "Kiemelő:" #: lib/Padre/Wx/Dialog/Preferences.pm:168 msgid "Content type:" msgstr "Dokumentum típus:" #: lib/Padre/Wx/Dialog/Preferences.pm:260 msgid "Automatic indentation style detection" msgstr "Automatikus indentálási stílus felismerése" #: lib/Padre/Wx/Dialog/Preferences.pm:264 msgid "Use Tabs" msgstr "Tabok használata" #: lib/Padre/Wx/Dialog/Preferences.pm:267 msgid "Tab display size (in spaces):" msgstr "TAB megjelenített mérete (szóközökben):" #: lib/Padre/Wx/Dialog/Preferences.pm:270 msgid "Indentation width (in columns):" msgstr "Indentálás (oszlopokban)" #: lib/Padre/Wx/Dialog/Preferences.pm:273 msgid "Guess from current document:" msgstr "Az aktuális dokumentum alapján kitalál:" #: lib/Padre/Wx/Dialog/Preferences.pm:274 msgid "Guess" msgstr "Találgat" #: lib/Padre/Wx/Dialog/Preferences.pm:276 msgid "Autoindent:" msgstr "Autoindent:" #: lib/Padre/Wx/Dialog/Preferences.pm:300 msgid "Default word wrap on for each file" msgstr "Alapértelmezett szótörés mindegyik fájlra" #: lib/Padre/Wx/Dialog/Preferences.pm:305 msgid "Use panel order for Ctrl-Tab (not usage history)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:312 msgid "Clean up file content on saving (for supported document types)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:317 msgid "Auto-fold POD markup when code folding enabled" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:322 msgid "Perl beginner mode" msgstr "Perl kezdő mód" #: lib/Padre/Wx/Dialog/Preferences.pm:326 msgid "Open files:" msgstr "Fájl megnyitása:" #: lib/Padre/Wx/Dialog/Preferences.pm:329 msgid "Default projects directory:" msgstr "Projektek alapértelmezett könyvtára:" #: lib/Padre/Wx/Dialog/Preferences.pm:331 msgid "Choose the default projects directory" msgstr "Alapértelmezett projekt könyvtárak kiválasztása" #: lib/Padre/Wx/Dialog/Preferences.pm:335 msgid "Open files in existing Padre" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:339 msgid "Methods order:" msgstr "Metódusok sorrendje:" #: lib/Padre/Wx/Dialog/Preferences.pm:342 msgid "Preferred language for error diagnostics:" msgstr "Előnyben részesített nyelv a hiba diagnosztikánál:" #: lib/Padre/Wx/Dialog/Preferences.pm:345 msgid "Default line ending:" msgstr "Alapértelmezett sorvég:" #: lib/Padre/Wx/Dialog/Preferences.pm:348 msgid "Check for file updates on disk every (seconds):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Cursor Blink Rate (milliseconds - 0 = blink off; 500 = default):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:360 msgid "Autocomplete brackets" msgstr "Zárójelek automatikus kiegészítése" #: lib/Padre/Wx/Dialog/Preferences.pm:368 msgid "Add another closing bracket if there is already one (and the 'Autocomplete brackets' above is enabled)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Enable Smart highlighting while typing" msgstr "Okos kiemelés engedélyezése gépelés közben" #: lib/Padre/Wx/Dialog/Preferences.pm:383 msgid "Shorten the common path in window list" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:390 msgid "Use X11 middle button paste style" msgstr "Az X11-stílusú középső gombbal való beillesztés használata" #: lib/Padre/Wx/Dialog/Preferences.pm:394 msgid "RegExp for TODO-panel:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:400 msgid "Use Splash Screen" msgstr "Splash képernyő használata" #: lib/Padre/Wx/Dialog/Preferences.pm:437 msgid "Project name" msgstr "Projekt név" #: lib/Padre/Wx/Dialog/Preferences.pm:438 msgid "Padre version" msgstr "Padre verzió" #: lib/Padre/Wx/Dialog/Preferences.pm:439 msgid "Current filename" msgstr "Aktuális fájlnév" #: lib/Padre/Wx/Dialog/Preferences.pm:440 msgid "Current file's dirname" msgstr "Az aktuális fájl könyvtárneve" #: lib/Padre/Wx/Dialog/Preferences.pm:441 msgid "Current file's basename" msgstr "Aktuális fájl basename-e" #: lib/Padre/Wx/Dialog/Preferences.pm:442 msgid "Current filename relative to project" msgstr "Az aktuális fájlnév a projekthez képest" #: lib/Padre/Wx/Dialog/Preferences.pm:463 msgid "Window title:" msgstr "Ablak címe:" #: lib/Padre/Wx/Dialog/Preferences.pm:470 msgid "Colored text in output window (ANSI)" msgstr "Színes szöveg a kimeneti ablakban (ANSI)" #: lib/Padre/Wx/Dialog/Preferences.pm:475 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:480 msgid "Show right margin at column:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:484 msgid "Editor Font:" msgstr "Szerkesztő betűtípusa:" #: lib/Padre/Wx/Dialog/Preferences.pm:487 msgid "Editor Current Line Background Colour:" msgstr "Szerkesztő aktuális sorának háttérszine:" #: lib/Padre/Wx/Dialog/Preferences.pm:550 msgid "Settings Demo" msgstr "Beállítások bemutatója" #: lib/Padre/Wx/Dialog/Preferences.pm:559 msgid "Any changes to these options require a restart:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:670 msgid "Enable?" msgstr "Engedélyezés?" #: lib/Padre/Wx/Dialog/Preferences.pm:685 msgid "Crashed" msgstr "Összeomlott" #: lib/Padre/Wx/Dialog/Preferences.pm:718 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:728 msgid "Perl interpreter:" msgstr "Perl értelmező:" #: lib/Padre/Wx/Dialog/Preferences.pm:731 #: lib/Padre/Wx/Dialog/Preferences.pm:781 msgid "Interpreter arguments:" msgstr "Értelmező argumentumok:" #: lib/Padre/Wx/Dialog/Preferences.pm:737 #: lib/Padre/Wx/Dialog/Preferences.pm:787 msgid "Script arguments:" msgstr "Szkript argumentumok:" #: lib/Padre/Wx/Dialog/Preferences.pm:741 msgid "Use external window for execution" msgstr "Külső ablak használata a végrehajtáshoz" #: lib/Padre/Wx/Dialog/Preferences.pm:750 msgid "Unsaved" msgstr "Mentetlen" #: lib/Padre/Wx/Dialog/Preferences.pm:751 msgid "N/A" msgstr "N/A" #: lib/Padre/Wx/Dialog/Preferences.pm:770 msgid "No Document" msgstr "Nincs Dokumentum" #: lib/Padre/Wx/Dialog/Preferences.pm:775 msgid "Document name:" msgstr "Dokumentum neve:" #: lib/Padre/Wx/Dialog/Preferences.pm:778 msgid "Document location:" msgstr "Dokumentum helye:" #: lib/Padre/Wx/Dialog/Preferences.pm:811 #, perl-format msgid "Current Document: %s" msgstr "Aktuális dokumentum: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:828 msgid "Preferences" msgstr "Beállítások" #: lib/Padre/Wx/Dialog/Preferences.pm:854 msgid "Behaviour" msgstr "Viselkedés" #: lib/Padre/Wx/Dialog/Preferences.pm:857 msgid "Appearance" msgstr "Megjelenés" #: lib/Padre/Wx/Dialog/Preferences.pm:861 msgid "Run Parameters" msgstr "Futtatási Paraméterek" #: lib/Padre/Wx/Dialog/Preferences.pm:865 msgid "Files and Colors" msgstr "Fájlok és Színek" #: lib/Padre/Wx/Dialog/Preferences.pm:868 msgid "Indentation" msgstr "Indentálás" #: lib/Padre/Wx/Dialog/Preferences.pm:871 msgid "External Tools" msgstr "Külső Eszközök" #: lib/Padre/Wx/Dialog/Preferences.pm:926 msgid "&Advanced..." msgstr "&Fejlett..." #: lib/Padre/Wx/Dialog/Preferences.pm:974 msgid "new" msgstr "új" #: lib/Padre/Wx/Dialog/Preferences.pm:975 msgid "nothing" msgstr "semmi" #: lib/Padre/Wx/Dialog/Preferences.pm:976 msgid "last" msgstr "utolsó" #: lib/Padre/Wx/Dialog/Preferences.pm:977 msgid "session" msgstr "munkamenet" #: lib/Padre/Wx/Dialog/Preferences.pm:978 msgid "no" msgstr "nem" #: lib/Padre/Wx/Dialog/Preferences.pm:979 msgid "same_level" msgstr "azonos_szint" #: lib/Padre/Wx/Dialog/Preferences.pm:980 msgid "deep" msgstr "mély" #: lib/Padre/Wx/Dialog/Preferences.pm:981 msgid "alphabetical" msgstr "alfabetikus" #: lib/Padre/Wx/Dialog/Preferences.pm:982 msgid "original" msgstr "eredeti" #: lib/Padre/Wx/Dialog/Preferences.pm:983 msgid "alphabetical_private_last" msgstr "alfabetikus_utolsó_privát" #: lib/Padre/Wx/Dialog/Preferences.pm:1150 msgid "Save settings" msgstr "Beállítások mentése" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Goto" msgstr "Ugrás" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Pozíció típus" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:226 #: lib/Padre/Wx/Dialog/Goto.pm:245 msgid "Line number" msgstr "Sor szám" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:230 msgid "Character position" msgstr "Karakter pozíció" #: lib/Padre/Wx/Dialog/Goto.pm:228 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "&Adj meg egy sorszámot 1 és %s közt:" #: lib/Padre/Wx/Dialog/Goto.pm:229 #, perl-format msgid "Current line number: %s" msgstr "Aktuális sor száma: %s" #: lib/Padre/Wx/Dialog/Goto.pm:232 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "&Adj meg egy pozíciót 1 és %s közt:" #: lib/Padre/Wx/Dialog/Goto.pm:233 #, perl-format msgid "Current position: %s" msgstr "Aktuális pozíció: %s" #: lib/Padre/Wx/Dialog/Goto.pm:257 msgid "Not a positive number!" msgstr "Nem egy pozitív szám!" #: lib/Padre/Wx/Dialog/Goto.pm:266 msgid "Out of range!" msgstr "Tartományon kívül!" #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Munkamenet mentése mint..." #: lib/Padre/Wx/Dialog/SessionSave.pm:200 msgid "Session name:" msgstr "Munkamenet neve:" #: lib/Padre/Wx/Dialog/SessionSave.pm:229 msgid "Save" msgstr "&Mentés" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Egyéb keresőmotor" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Egyéb esemény" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Barát" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Újratelepítés/telepítés másik számítógépen" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Padre Fejlesztő" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Egyéb (Kérem töltse ki)" #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Szűrés eszközön keresztül" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Szűrő utasítás:" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:394 msgid "Run" msgstr "&Futtatás" #: lib/Padre/Wx/Dialog/Encode.pm:53 msgid "Encode to:" msgstr "Kódolás erre:" #: lib/Padre/Wx/Dialog/Encode.pm:63 msgid "Encode document to..." msgstr "Dokumentum kódolása erre..." #: lib/Padre/Wx/Dialog/WindowList.pm:35 msgid "Window list" msgstr "Ablak lista" #: lib/Padre/Wx/Dialog/WindowList.pm:211 msgid "List of open files" msgstr "Nyitott fájlok listája" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Editor" msgstr "Szerkesztő" #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Disk" msgstr "Lemez" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:358 msgid "CHANGED" msgstr "MEGVÁLTOZOTT" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:354 msgid "fresh" msgstr "friss" #: lib/Padre/Wx/Dialog/WindowList.pm:356 msgid "DELETED" msgstr "TÖRÖLT" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl filter" msgstr "Perl szűrő" #: lib/Padre/Wx/Dialog/PerlFilter.pm:67 msgid "&Perl filter source:" msgstr "&Perl szűrő forrás:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:74 msgid "Or&iginal text:" msgstr "&Eredeti szöveg:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:81 msgid "&Output text:" msgstr "&Kimeneti szöveg:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:89 msgid "Run filter" msgstr "Szűrő futtatása" #: lib/Padre/Wx/Dialog/PluginManager.pm:35 msgid "Plug-in Manager" msgstr "Plug-in Kezelő" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 msgid "Version" msgstr "Verzió" #: lib/Padre/Wx/Dialog/PluginManager.pm:102 msgid "Plug-in Name" msgstr "Plugin Név" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:528 msgid "&Enable" msgstr "&Engedélyezés" #: lib/Padre/Wx/Dialog/PluginManager.pm:131 msgid "&Preferences" msgstr "&Beállítások" #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "" #: lib/Padre/Wx/Dialog/PluginManager.pm:489 #: lib/Padre/Wx/Dialog/PluginManager.pm:501 msgid "&Show error message" msgstr "&Hibaüzenet megjelenítése" #: lib/Padre/Wx/Dialog/PluginManager.pm:516 msgid "&Disable" msgstr "&Letiltás" #: lib/Padre/Wx/Dialog/HelpSearch.pm:39 #: lib/Padre/Wx/Dialog/HelpSearch.pm:96 msgid "Help Search" msgstr "Keresés a Súgóban" #: lib/Padre/Wx/Dialog/HelpSearch.pm:81 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "Hiba a %s hívásakor %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:93 msgid "No Help found" msgstr "Nem találtam segítséget" #: lib/Padre/Wx/Dialog/HelpSearch.pm:129 msgid "Select the help &topic" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:146 msgid "Type a help &keyword to read:" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:153 msgid "&Matching Help Topics:" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 msgid "Reading items. Please wait" msgstr "Elemek olvasása. Kérem várjon" #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 msgid "Could not find a help provider for " msgstr "Nem találok segítségnyújtót ehhez" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:31 msgid "Existing bookmarks:" msgstr "Létező könyvjelzők:" #: lib/Padre/Wx/Dialog/Bookmarks.pm:43 msgid "Delete &All" msgstr "Mind &törlése" #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "Set Bookmark" msgstr "Könyvjelző beállítása" #: lib/Padre/Wx/Dialog/Bookmarks.pm:57 msgid "Go to Bookmark" msgstr "Könyvjelzőre Ugrás" #: lib/Padre/Wx/Dialog/Bookmarks.pm:123 msgid "Cannot set bookmark in unsaved document" msgstr "Nem tudok könyvjelzőt elhelyezni mentetlen dokumentumban" #: lib/Padre/Wx/Dialog/Bookmarks.pm:134 #, perl-format msgid "%s line %s: %s" msgstr "%s sor %s: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:170 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "A '%s' könyvjelző többé nem létezik" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:40 msgid "Quick Menu Access" msgstr "Gyors menüelérés" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Hiba történt az alábbi Padre művelet közben: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:176 msgid "&Type a menu item name to access:" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:183 msgid "&Matching Menu Items:" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:352 msgid "Reading items. Please wait..." msgstr "Elemek olvasása. Kérem várjon..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 msgid "Edit" msgstr "Szerkesztés" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 msgid "View" msgstr "Megnéz" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 msgid "Refactor" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:395 msgid "Debug" msgstr "Nyomkövetés" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:396 msgid "Plugins" msgstr "Pluginek" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:397 msgid "Window" msgstr "Ablak" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Regex Szerkesztő" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "Character classes" msgstr "Karakter osztályok" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "Minden karakter kivéve az újsor" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "Bármely (decimális) számjegy" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "Bármely nem-szám" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "Bármely whitespace karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "Bármely nem-whitespace karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "Bármely szóbeli karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "Bármely nem-szóbeli karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "&POSIX Karakter osztályok" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphabetic characters" msgstr "Alfabetikus karakterek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "Alfanumerikus karakterek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "7-bit US-ASCII karakter" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Space and tab" msgstr "Szóköz és tab" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "Vezérlő karakterek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "Számjegyek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Visible characters" msgstr "Látható karakterek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "Kisbetűs karakterek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "Látható karakterek és szóközök" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "Elválasztó karakterek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "Whitespace karakterek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "Nagybetűs karakterek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "Alfanumerikus karakterek és \"_\"" #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "Hexadecimális számjegyek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "0 v. többször illeszkedik" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "1 v. többször illeszkedik" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "1 v. 0 -szor illeszkedik" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "Pontosan m -szer illeszkedik" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "Legalább n-szer illeszkedik" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "Legalább m, de nem több mint n -szer illeszkedik" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 msgid "Miscellaneous" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Alternation" msgstr "Alternatíva" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "Karakterkészlet" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "Sor eleje" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "End of line" msgstr "Sor vége" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "Szó határ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "Nem egy szó határ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 msgid "A comment" msgstr "Egy megjegyzés" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "Grouping constructs" msgstr "Csoportosító jelek" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "Csoport" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "Nem-zárt csoport" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "&Regular expression:" msgstr "&Reguláris kifejezés:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:191 msgid "Show &Description" msgstr "&Leírás megjelenítése" #: lib/Padre/Wx/Dialog/RegexEditor.pm:204 msgid "&Replace text with:" msgstr "Csere e&rre:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:211 msgid "&Original text:" msgstr "&Eredeti szöveg:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:218 msgid "Matched text:" msgstr "Illeszkedő szöveg:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:225 msgid "&Result from replace:" msgstr "&Eredmény a cseréből:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:408 msgid "Ignore case (&i)" msgstr "Kazualitás figyelmen kívül hagyása (&i)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:409 msgid "Case-insensitive matching" msgstr "Kis- és nagybetű egybevétele" #: lib/Padre/Wx/Dialog/RegexEditor.pm:412 msgid "Single-line (&s)" msgstr "Egysoros (&s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:413 msgid "\".\" also matches newline" msgstr "\".\" szintén illeszkedik az újsorra" #: lib/Padre/Wx/Dialog/RegexEditor.pm:416 msgid "Multi-line (&m)" msgstr "Többsoros (&m)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:417 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "a \"^\" és \"$\" illeszkedik a sor elejére és végére a szövegen belül" #: lib/Padre/Wx/Dialog/RegexEditor.pm:420 msgid "Extended (&x)" msgstr "Kiterjesztett (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:422 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:425 msgid "Global (&g)" msgstr "Globális (&g)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:426 msgid "Replace all occurrences of the pattern" msgstr "A minta minden előfordulását kicseréli" #: lib/Padre/Wx/Dialog/RegexEditor.pm:617 #, perl-format msgid "Match failure in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:624 #, perl-format msgid "Match warning in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:645 msgid "No match" msgstr "Nincs találat" #: lib/Padre/Wx/Dialog/RegexEditor.pm:656 #, perl-format msgid "Replace failure in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:30 #: lib/Padre/Wx/Dialog/OpenResource.pm:76 msgid "Open Resource" msgstr "Erőforrás megnyitása" #: lib/Padre/Wx/Dialog/OpenResource.pm:117 msgid "Error while trying to perform Padre action" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:206 msgid "&Select an item to open (? = any character, * = any string):" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:220 msgid "&Matching Items:" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:236 msgid "Current Directory: " msgstr "Aktuális Könyvtár:" #: lib/Padre/Wx/Dialog/OpenResource.pm:263 msgid "Skip version control system files" msgstr "Verziókezelő rendszerek fájljainak átugrása" #: lib/Padre/Wx/Dialog/OpenResource.pm:267 msgid "Skip using MANIFEST.SKIP" msgstr "MANIFEST.SKIP átugrása" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "Mind" #: lib/Padre/Wx/Dialog/Snippets.pm:23 #: lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "Töredék:" #: lib/Padre/Wx/Dialog/Snippets.pm:26 #: lib/Padre/Wx/Menu/Edit.pm:349 msgid "&Edit" msgstr "&Szerkesztés" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "&Hozzáadás" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "Töredékek" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "Kategória:" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "Név:" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "Töredékek Szerkesztése/Hozzáadása" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:17 msgid "Select a Wizard" msgstr "Varázsló kijelölése" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:126 #, perl-format msgid "Error while loading %s" msgstr "Hiba %s betöltésekor" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:15 msgid "Creates a Padre Plugin" msgstr "Padre Plugin készítése" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:16 msgid "Padre Plugin Wizard" msgstr "Padre Plugin varázsló" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:15 msgid "Creates a Padre document" msgstr "Padre dokumentum létrehozása" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:16 msgid "Padre Document Wizard" msgstr "Padre Dokumentum varázsló" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:17 msgid "Creates a Perl 5 module or script" msgstr "Perl 5 modul vagy szkript készítése" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:18 msgid "Perl 5 Module Wizard" msgstr "Perl 5 modul varázsló" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:34 msgid "Autocomplete always while typing" msgstr "Mindig kiegészít gépelés közben" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:41 msgid "Autocomplete new methods in packages" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:48 msgid "Autocomplete new subroutines in scripts" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:52 msgid "Min. length of suggestions:" msgstr "Javaslatok min. hossza:" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:57 msgid "Max. number of suggestions:" msgstr "Javaslatok maximális száma:" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:60 msgid "Min. chars for autocompletion:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/File.pm:36 msgid "File access via HTTP" msgstr "Fájl elérés HTTP-n keresztül" #: lib/Padre/Wx/Dialog/Preferences/File.pm:39 #: lib/Padre/Wx/Dialog/Preferences/File.pm:47 msgid "Timeout (in seconds):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/File.pm:44 msgid "File access via FTP" msgstr "Fájl elérés FTP-n" #: lib/Padre/Wx/Dialog/Preferences/File.pm:51 msgid "Use FTP passive mode" msgstr "Passzív FTP mód használata" #: lib/Padre/Wx/FBP/Sync.pm:34 msgid "Server" msgstr "Szerver" #: lib/Padre/Wx/FBP/Sync.pm:54 msgid "Logged out" msgstr "Kijelentkezve" #: lib/Padre/Wx/FBP/Sync.pm:68 #: lib/Padre/Wx/FBP/Sync.pm:111 msgid "Username" msgstr "Felhasználónév" #: lib/Padre/Wx/FBP/Sync.pm:82 #: lib/Padre/Wx/FBP/Sync.pm:125 msgid "Password" msgstr "Jelszó" #: lib/Padre/Wx/FBP/Sync.pm:97 msgid "Login" msgstr "Login" #: lib/Padre/Wx/FBP/Sync.pm:139 #: lib/Padre/Wx/FBP/Sync.pm:167 msgid "Confirm" msgstr "Megerősít" #: lib/Padre/Wx/FBP/Sync.pm:153 msgid "Email" msgstr "Email" #: lib/Padre/Wx/FBP/Sync.pm:181 msgid "Register" msgstr "Regisztrál" #: lib/Padre/Wx/FBP/Sync.pm:203 msgid "Upload" msgstr "Feltöltés" #: lib/Padre/Wx/FBP/Sync.pm:218 msgid "Download" msgstr "Letöltés" #: lib/Padre/Wx/FBP/Sync.pm:283 msgid "Authentication" msgstr "Authentikáció" #: lib/Padre/Wx/FBP/Sync.pm:310 msgid "Registration" msgstr "Regisztráció" #: lib/Padre/Wx/FBP/FindInFiles.pm:36 #: lib/Padre/Wx/FBP/Find.pm:36 msgid "Search Term:" msgstr "Keresés Kifejezések közt:" #: lib/Padre/Wx/FBP/FindInFiles.pm:50 msgid "Search Directory:" msgstr "Keresés Könyvtárban:" #: lib/Padre/Wx/FBP/FindInFiles.pm:64 msgid "Browse" msgstr "Böngész" #: lib/Padre/Wx/FBP/FindInFiles.pm:78 msgid "Search in Types:" msgstr "Keresés Típusokban:" #: lib/Padre/Wx/FBP/FindInFiles.pm:101 #: lib/Padre/Wx/FBP/Find.pm:58 msgid "Regular Expression" msgstr "Reguláris Kifejezés" #: lib/Padre/Wx/FBP/FindInFiles.pm:109 #: lib/Padre/Wx/FBP/Find.pm:74 msgid "Case Sensitive" msgstr "Kis- és nagybetű különválasztása" #: lib/Padre/Wx/FBP/WhereFrom.pm:31 msgid "Where did you hear about Padre?" msgstr "Hol hallottál a Padre-ról?" #: lib/Padre/Wx/FBP/WhereFrom.pm:54 msgid "OK" msgstr "OK" #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "Skip question without giving feedback" msgstr "Kérdés átugrása visszajelzés nélkül" #: lib/Padre/Wx/FBP/Find.pm:66 msgid "Search Backwards" msgstr "Visszafelé keresés" #: lib/Padre/Wx/FBP/Find.pm:82 msgid "Close Window on Hit" msgstr "Találatkor az ablak bezárása" #: lib/Padre/Wx/FBP/Find.pm:113 msgid "Find All" msgstr "Összes keresése" #: lib/Padre/Wx/Directory/TreeCtrl.pm:83 msgid "Directory" msgstr "Könyvtár" #: lib/Padre/Wx/Directory/TreeCtrl.pm:163 #, perl-format msgid "Could not create: '%s': %s" msgstr "Nem tudom létrehozni '%s'-t: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Tényleg töröljem a \"%s\" fájlt?" #: lib/Padre/Wx/Directory/TreeCtrl.pm:182 #, perl-format msgid "Could not delete: '%s': %s" msgstr "Nem tudom törölni '%s'-t: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:210 msgid "Open File" msgstr "Fájl Megnyitása" #: lib/Padre/Wx/Directory/TreeCtrl.pm:226 msgid "Delete File" msgstr "Fájl Törlés" #: lib/Padre/Wx/Directory/TreeCtrl.pm:237 msgid "Create Directory" msgstr "Könyvtár Létrehozás" #: lib/Padre/Wx/Directory/TreeCtrl.pm:249 msgid "Refresh" msgstr "Frissítés" #: lib/Padre/Wx/Menu/Window.pm:110 msgid "&Window" msgstr "&Ablak" #: lib/Padre/Wx/Menu/Help.pm:60 msgid "Live Support" msgstr "Élő támogatás" #: lib/Padre/Wx/Menu/Help.pm:121 msgid "&Help" msgstr "&Súgó" #: lib/Padre/Wx/Menu/Debug.pm:116 msgid "&Debug" msgstr "&Nyomkövetés" #: lib/Padre/Wx/Menu/View.pm:82 msgid "View Document As..." msgstr "Dokumentum megtekintése mint..." #: lib/Padre/Wx/Menu/View.pm:174 msgid "Font Size" msgstr "Betű méret" #: lib/Padre/Wx/Menu/View.pm:197 msgid "Style" msgstr "Stílus" #: lib/Padre/Wx/Menu/View.pm:245 msgid "Language" msgstr "Nyelv" #: lib/Padre/Wx/Menu/View.pm:283 msgid "&View" msgstr "&Megnéz" #: lib/Padre/Wx/Menu/Tools.pm:65 msgid "Module Tools" msgstr "Modul eszközök" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "Plug-in Tools" msgstr "Plug-in Eszközök" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "Eszközök" #: lib/Padre/Wx/Menu/Search.pm:99 msgid "&Search" msgstr "Kere&sés" #: lib/Padre/Wx/Menu/Run.pm:74 msgid "&Run" msgstr "&Futtatás" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Copy Specials" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:200 msgid "Convert Encoding" msgstr "Kódolás konvertálása" #: lib/Padre/Wx/Menu/Edit.pm:222 msgid "Convert Line Endings" msgstr "Sorvégek konvertálása" #: lib/Padre/Wx/Menu/Edit.pm:245 msgid "Tabs and Spaces" msgstr "Tabulátorok és Szóközök" #: lib/Padre/Wx/Menu/Edit.pm:275 msgid "Upper/Lower Case" msgstr "Nagy/Kis Betűk" #: lib/Padre/Wx/Menu/Edit.pm:295 msgid "Diff Tools" msgstr "Diff Eszközök" #: lib/Padre/Wx/Menu/Edit.pm:331 msgid "Show as" msgstr "Megjelenítés mint" #: lib/Padre/Wx/Menu/Refactor.pm:49 #: lib/Padre/Document/Perl.pm:1696 msgid "Change variable style" msgstr "" #: lib/Padre/Wx/Menu/Refactor.pm:94 msgid "Ref&actor" msgstr "Ref&aktor" #: lib/Padre/Wx/Menu/Perl.pm:101 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Menu/File.pm:44 msgid "New" msgstr "Új" #: lib/Padre/Wx/Menu/File.pm:96 msgid "Open..." msgstr "Megnyitás..." #: lib/Padre/Wx/Menu/File.pm:179 msgid "Reload" msgstr "Fájl újratöltése" #: lib/Padre/Wx/Menu/File.pm:254 msgid "&Recent Files" msgstr "Ko&rábbi fájlok" #: lib/Padre/Wx/Menu/File.pm:293 msgid "&File" msgstr "&Fájl" #: lib/Padre/Wx/Menu/File.pm:380 #, perl-format msgid "File %s not found." msgstr "A %s fájlt nem találom." #: lib/Padre/Wx/Menu/File.pm:381 msgid "Open cancelled" msgstr "Megnyitás megszakítva" #: lib/Padre/File/HTTP.pm:48 #, perl-format msgid "Sending HTTP request %s..." msgstr "%s HTTP kérés küldése..." #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Net::FTP keresése..." #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "%s FTP szerverre kapcsolódás..." #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Hiba a %s:%s -hez kapcsolódáskor: %s" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "'%s' felhasználó jelszava a '%s'-n:" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "FTP Jelszó" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Bejelentkezés az FTP szerverre mint %s..." #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Hiba a %s:%s -re bejelentkezéskor: %s" #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Az FTP szerverhez kapcsolódás sikeres." #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "Nem tudom értelmezni %s" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Fájl olvasása az FTP szerverről..." #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Fájl írása az FTP szerverre..." #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Hiba a POD keresésekor" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Ez a dokumentum nem tartalmaz POD-ot" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Csak egy POD töredék, nem próbálom összefésülni" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "Nem sikerült a POD töredékeket összefésülni" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "Nem sikerült a POD töredéket törölni" #: lib/Padre/Document/Perl.pm:430 msgid "Error: " msgstr "Hiba:" #: lib/Padre/Document/Perl.pm:432 msgid "No errors found." msgstr "Nem találtam hibát." #: lib/Padre/Document/Perl.pm:471 msgid "All braces appear to be matched" msgstr "Minden zárójel jónak tűnik" #: lib/Padre/Document/Perl.pm:472 msgid "Check Complete" msgstr "Az ellenőrzés befejeződött" #: lib/Padre/Document/Perl.pm:541 #: lib/Padre/Document/Perl.pm:575 msgid "Current cursor does not seem to point at a variable" msgstr "Az aktuális mutató úgy tűnik nem változóra mutat" #: lib/Padre/Document/Perl.pm:542 #: lib/Padre/Document/Perl.pm:596 #: lib/Padre/Document/Perl.pm:631 msgid "Check cancelled" msgstr "Ellenőrzés megállítva" #: lib/Padre/Document/Perl.pm:577 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Nem található deklaráció a megadott (lexikális?) változóhoz" #: lib/Padre/Document/Perl.pm:583 msgid "Search Canceled" msgstr "Keresés megszakítva" #: lib/Padre/Document/Perl.pm:595 msgid "Current cursor does not seem to point at a method" msgstr "Az aktuális mutató úgy tűnik nem metódusra mutat" #: lib/Padre/Document/Perl.pm:630 #, perl-format msgid "Current '%s' not found" msgstr "Aktuális '%s' -t nem találom" #: lib/Padre/Document/Perl.pm:819 #: lib/Padre/Document/Perl.pm:869 #: lib/Padre/Document/Perl.pm:907 msgid "Current cursor does not seem to point at a variable." msgstr "Az aktuális mutató úgy tűnik nem egy változóra mutat" #: lib/Padre/Document/Perl.pm:820 #: lib/Padre/Document/Perl.pm:830 msgid "Rename variable" msgstr "Változó átnevezés" #: lib/Padre/Document/Perl.pm:829 msgid "New name" msgstr "Új név" #: lib/Padre/Document/Perl.pm:870 msgid "Variable case change" msgstr "Változó kazualitás megváltoztatása" #: lib/Padre/Document/Perl.pm:909 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Nem található deklaráció a megadott (lexikális?) változóhoz." #: lib/Padre/Document/Perl.pm:915 #: lib/Padre/Document/Perl.pm:964 msgid "Replace Operation Canceled" msgstr "Csere művelet megszakítva" #: lib/Padre/Document/Perl.pm:956 msgid "First character of selection does not seem to point at a token." msgstr "A kijelölés első karaktere úgy tűnik nem tokenre mutat" #: lib/Padre/Document/Perl.pm:958 msgid "Selection not part of a Perl statement?" msgstr "A kijelölés nem része egy Perl utasításnak?" #: lib/Padre/Document/Perl/Help.pm:302 #, perl-format msgid "(Since Perl %s)" msgstr "(Perl %s óta)" #: lib/Padre/Document/Perl/Help.pm:306 msgid "- DEPRECATED!" msgstr "- ELLENJAVALT!" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "Nemtámogatott OS: %s" #: lib/Padre/Util/FileBrowser.pm:193 msgid "Failed to execute process\n" msgstr "Nem sikerült végrehajtani a folyamatot\n" #: lib/Padre/Util/FileBrowser.pm:216 msgid "Could not find KDE or GNOME" msgstr "Nem találtam KDE-t vagy GNOME-ot" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Modul név:" #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Új modul" Padre-1.00/share/locale/he.po0000644000175000017500000052212211553325563014452 0ustar petepete# translation of he.po to Hebrew # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Omer Zak , 2008. # Amir E. Aharoni , 2009. # Uri Bruck, 2009, 2010. # Uri Bruck <>, 2010. msgid "" msgstr "" "Project-Id-Version: he\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-03-11 12:10-0800\n" "PO-Revision-Date: 2011-04-19 18:22+0200\n" "Last-Translator: meorero \n" "Language-Team: American English \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:413 msgid "\".\" also matches newline" msgstr "\".\" מציג גם שורה חדשה" #: lib/Padre/Config.pm:416 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "\"פתח סביבת עבודה\" ישאל איזו סביבת עבודה (סט קבצים) לפתוח עם פתיחת Padre." #: lib/Padre/Config.pm:418 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "\"קבצים אחרונים שנפתחו\" יזכור את הקבצים הפתוחים עם סגירת Padre ויפתח אותם בהפעלה הבאה של Padre." #: lib/Padre/Wx/Dialog/RegexEditor.pm:417 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" ו- \"$\" מציינים התחלת שורה וסוף שורה בתוך הטקסט" #: lib/Padre/Wx/Dialog/PerlFilter.pm:208 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# הקלט ב- $_\n" "$_ = $_;\n" "# הפלט הולך אל $_\n" #: lib/Padre/Wx/FindInFiles.pm:155 #, perl-format msgid "%s (%s results)" msgstr "%s (%s תוצאות)" #: lib/Padre/PluginManager.pm:584 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - קרס בזמן יצירת מופע: %s" #: lib/Padre/PluginManager.pm:544 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - קרס בזמן טעינה: %s" #: lib/Padre/PluginManager.pm:594 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - לא ניתן ליצור את מופע התוסף" #: lib/Padre/PluginManager.pm:556 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - לא תת־מחלקה של Padre::Plugin" #: lib/Padre/PluginManager.pm:569 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr " %s - אינו תואם ל-Padre גרסה %s - %s" #: lib/Padre/Wx/Dialog/WizardSelector.pm:174 #, perl-format msgid "%s has no constructor" msgstr "ל- %s אין הדרת מבנה (constructor)" #: lib/Padre/Wx/TodoList.pm:257 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s בביטוי רגולרי של TODO, נא לבדוק את הקונפיגורציה שלך." #: lib/Padre/Wx/Dialog/Bookmarks.pm:134 #, perl-format msgid "%s line %s: %s" msgstr "%s שורה %s: %s" #: lib/Padre/Wx/Dialog/Positions.pm:124 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. שורה: %s קובץ: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2702 msgid "&About" msgstr "אודות" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "הוסף" #: lib/Padre/Wx/Dialog/Preferences.pm:934 msgid "&Advanced..." msgstr "&מתקדם..." #: lib/Padre/Wx/ActionLibrary.pm:819 msgid "&Autocomplete" msgstr "השלמה אוטומטית\tCtrl-P" #: lib/Padre/Wx/Dialog/WizardSelector.pm:86 msgid "&Back" msgstr "&אחורה" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "&Brace Matching" msgstr "מצא סוגר תואם\tCtrl-1" #: lib/Padre/Wx/Dialog/Preferences.pm:947 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:155 #: lib/Padre/Wx/Dialog/OpenResource.pm:184 #: lib/Padre/Wx/Dialog/WizardSelector.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "בטל" #: lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/Browser.pm:110 #: lib/Padre/Wx/About.pm:86 #: lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 #: lib/Padre/Wx/Dialog/PerlFilter.pm:99 #: lib/Padre/Wx/Dialog/RegexEditor.pm:238 #: lib/Padre/Wx/Dialog/KeyBindings.pm:139 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 #: lib/Padre/Wx/Dialog/Replace.pm:191 msgid "&Close" msgstr "סגור" # msgstr "עבור לקובץ הבא\tCtrl-TAB" #: lib/Padre/Wx/ActionLibrary.pm:915 msgid "&Comment Selected Lines" msgstr "הפוך השורות בבחירה להערות\tCtrl-M" #: lib/Padre/Wx/ActionLibrary.pm:655 msgid "&Copy" msgstr "העתק" #: lib/Padre/Wx/Menu/Debug.pm:116 msgid "&Debug" msgstr "&מנפה שגיאות (Debug)" #: lib/Padre/Wx/Dialog/KeyBindings.pm:126 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "מחק" #: lib/Padre/Wx/Dialog/PluginManager.pm:516 msgid "&Disable" msgstr "בטל אפשרות" #: lib/Padre/Wx/Menu/Edit.pm:349 #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Edit" msgstr "ערוך" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:528 msgid "&Enable" msgstr "אשר אפשרות" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "הכנס מספר שורה בין (1-%s):" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "&הכנס מיקום בין 1 ו- %s:" #: lib/Padre/Wx/Menu/File.pm:293 msgid "&File" msgstr "קובץ" #: lib/Padre/Wx/Dialog/Advanced.pm:97 #: lib/Padre/Wx/Dialog/KeyBindings.pm:64 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:26 msgid "&Filter:" msgstr "&סינון:" #: lib/Padre/Wx/Dialog/Replace.pm:150 msgid "&Find" msgstr "חפש:" #: lib/Padre/Wx/ActionLibrary.pm:1201 msgid "&Find Previous" msgstr "מצא הקודם\tShift-F3" #: lib/Padre/Wx/ActionLibrary.pm:1143 msgid "&Find..." msgstr "חפש..." #: lib/Padre/Wx/ActionLibrary.pm:1633 msgid "&Full Screen" msgstr "הצג במלוא המסך" #: lib/Padre/Wx/ActionLibrary.pm:742 msgid "&Go To..." msgstr "&לך אל" #: lib/Padre/Wx/Outline.pm:221 msgid "&Go to Element" msgstr "לך אך אלמנט" #: lib/Padre/Wx/Menu/Help.pm:121 msgid "&Help" msgstr "עזרה" #: lib/Padre/Wx/Dialog/Snippets.pm:24 #: lib/Padre/Wx/Dialog/SpecialValues.pm:50 msgid "&Insert" msgstr "הכנס" #: lib/Padre/Wx/ActionLibrary.pm:853 msgid "&Join Lines" msgstr "חבר שורות\tCtrl-M" #: lib/Padre/Wx/Dialog/HelpSearch.pm:153 msgid "&Matching Help Topics:" msgstr "נושאי עזרה מתאימים:" #: lib/Padre/Wx/Dialog/OpenResource.pm:228 msgid "&Matching Items:" msgstr "פריטים תואמים:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:183 msgid "&Matching Menu Items:" msgstr "פריטי תפריט תואמים:" #: lib/Padre/Wx/ActionLibrary.pm:130 msgid "&New" msgstr "חדש" #: lib/Padre/Wx/Dialog/WizardSelector.pm:87 #: lib/Padre/Wx/Dialog/Search.pm:172 msgid "&Next" msgstr "הבא" #: lib/Padre/Wx/ActionLibrary.pm:753 msgid "&Next Problem" msgstr "הבעיה הבאה" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 #: lib/Padre/Wx/Dialog/OpenResource.pm:178 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "אישור" #: lib/Padre/Wx/ActionLibrary.pm:206 #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "פתח" #: lib/Padre/Wx/Dialog/RegexEditor.pm:211 msgid "&Original text:" msgstr "טקסט מקורי: " #: lib/Padre/Wx/Dialog/PerlFilter.pm:81 msgid "&Output text:" msgstr "טקסט פלט" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "&מחלקות תווי POSIX" #: lib/Padre/Wx/ActionLibrary.pm:728 msgid "&Paste" msgstr "הדבק" #: lib/Padre/Wx/Menu/Perl.pm:101 msgid "&Perl" msgstr "Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:67 msgid "&Perl filter source:" msgstr "&מקור פילטר Perl:" #: lib/Padre/Wx/Dialog/PluginManager.pm:131 msgid "&Preferences" msgstr "העדפות" #: lib/Padre/Wx/ActionLibrary.pm:480 msgid "&Print..." msgstr "הדפס" #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "&מצייני כמות" #: lib/Padre/Wx/ActionLibrary.pm:764 msgid "&Quick Fix" msgstr "תיקון מהיר" #: lib/Padre/Wx/ActionLibrary.pm:534 msgid "&Quit" msgstr "סיים" #: lib/Padre/Wx/Menu/File.pm:253 msgid "&Recent Files" msgstr "קבצים אחרונים" #: lib/Padre/Wx/ActionLibrary.pm:574 msgid "&Redo" msgstr "בצע שוב" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "&Regular expression:" msgstr "ביטוי רגולרי" #: lib/Padre/Wx/Main.pm:4113 #: lib/Padre/Wx/Main.pm:6062 msgid "&Reload selected" msgstr "רענן את הקבצים שנבחרו" #: lib/Padre/Wx/Dialog/Replace.pm:170 msgid "&Replace" msgstr "החלף" #: lib/Padre/Wx/Dialog/RegexEditor.pm:204 msgid "&Replace text with:" msgstr "החלף ב:" #: lib/Padre/Wx/Dialog/Advanced.pm:178 #: lib/Padre/Wx/Dialog/KeyBindings.pm:132 msgid "&Reset" msgstr "&ביצוע איפוס (Reset)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:225 msgid "&Result from replace:" msgstr "התוצאה מההחלפה:" #: lib/Padre/Wx/Menu/Run.pm:74 msgid "&Run" msgstr "הרץ" #: lib/Padre/Wx/ActionLibrary.pm:393 #: lib/Padre/Wx/Dialog/Preferences.pm:925 #: lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "שמור " #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&שמור סביבת עבודה באופן אוטומטי" #: lib/Padre/Wx/Menu/Search.pm:99 msgid "&Search" msgstr "חפש" #: lib/Padre/Wx/Dialog/OpenResource.pm:206 msgid "&Select an item to open (? = any character, * = any string):" msgstr "בחר פריט כדי לפתוח (? = כל תו, * = כל מחרוזת)" #: lib/Padre/Wx/Main.pm:4112 #: lib/Padre/Wx/Main.pm:6061 msgid "&Select files to reload:" msgstr "בחר קבצים לרענון" #: lib/Padre/Wx/ActionLibrary.pm:841 msgid "&Select to Matching Brace" msgstr "&בחירה על לסוגר תואם" #: lib/Padre/Wx/Dialog/Advanced.pm:172 #: lib/Padre/Wx/Dialog/KeyBindings.pm:120 msgid "&Set" msgstr "קבע " #: lib/Padre/Wx/Dialog/PluginManager.pm:489 #: lib/Padre/Wx/Dialog/PluginManager.pm:501 msgid "&Show error message" msgstr "הצגת הודעת שגיאה" #: lib/Padre/Wx/ActionLibrary.pm:902 msgid "&Toggle Comment" msgstr "&בצע Toggle Comment" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "כלים" #: lib/Padre/Wx/ActionLibrary.pm:2690 msgid "&Translate Padre..." msgstr "לתרגם את Padre..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:176 msgid "&Type a menu item name to access:" msgstr "הקלד שם פריט בתפריט כדי לגשת:" # msgstr "עבור לקובץ הבא\tCtrl-TAB" #: lib/Padre/Wx/ActionLibrary.pm:927 msgid "&Uncomment Selected Lines" msgstr "הפוך השורות בבחירה להערות\tCtrl-M" #: lib/Padre/Wx/ActionLibrary.pm:554 msgid "&Undo" msgstr "בטל" #: lib/Padre/Wx/Dialog/DocStats.pm:60 msgid "&Update" msgstr "עדכן" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "ערך" #: lib/Padre/Wx/Menu/View.pm:283 msgid "&View" msgstr "הצג" #: lib/Padre/Wx/Menu/Window.pm:110 msgid "&Window" msgstr "חלון" #: lib/Padre/Wx/Debugger.pm:407 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "'%s' לא נראה כמו משתנה. נא לבחור קודם משתנה בקוד ולנסות שוב. " #: lib/Padre/Wx/ActionLibrary.pm:2342 msgid "(Re)load Current Plug-in" msgstr "טען מחדש את התוסף הנוכחי" #: lib/Padre/Document/Perl/Help.pm:302 #, perl-format msgid "(Since Perl %s)" msgstr "( מאז Perl %s)" #: lib/Padre/PluginManager.pm:856 msgid "(core)" msgstr "(core)" #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Document/Perl/Help.pm:306 msgid "- DEPRECATED!" msgstr " - לא נתמך!" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "תו ASCII 7-סיביות" #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "תיבת שיח" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 msgid "A comment" msgstr "הערה" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "קבוצה A" #: lib/Padre/Config.pm:412 msgid "A new empty file" msgstr "קובץ ריק חדש" #: lib/Padre/Plugin/Devel.pm:291 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "ערכה של כלים אחרים שמפתחי Padre משתמשים בהם\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "גבולות מלה" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Plugin/PopularityContest.pm:201 #: lib/Padre/Plugin/Devel.pm:102 msgid "About" msgstr "אודות" #: lib/Padre/Wx/About.pm:25 msgid "About Padre" msgstr "אודות Padre" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "פעולה: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:368 msgid "Add another closing bracket if there is already one (and the 'Autocomplete brackets' above is enabled)" msgstr "יש להוסיף עוד סוגר אם כבר יש אחד (והאפשרות השלמת סוגרים אוטומטית מופעלת)" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "הגדרות מתקדמות" #: lib/Padre/Wx/Syntax.pm:67 msgid "Alien Error" msgstr "שגיאת Alien" #: lib/Padre/Wx/ActionLibrary.pm:1705 msgid "Align a selection of text to the same left column." msgstr "יישר טקסט נבחר לאותה עמודה שמאלית" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "הכול" #: lib/Padre/Wx/Main.pm:3932 #: lib/Padre/Wx/Main.pm:3933 #: lib/Padre/Wx/Main.pm:4306 #: lib/Padre/Wx/Main.pm:5548 msgid "All Files" msgstr "כל הקבצים" #: lib/Padre/Document/Perl.pm:471 msgid "All braces appear to be matched" msgstr "נראה שלכל הסוגרים יש תואמים" #: lib/Padre/Wx/ActionLibrary.pm:407 msgid "Allow the selection of another name to save the current document" msgstr "אפשר לבחור שם אחר לשמירת המסמך הנוכחי" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphabetic characters" msgstr "תווים אלפביתיים" #: lib/Padre/Config.pm:528 msgid "Alphabetical Order" msgstr "לפי סדר אלפביתי" #: lib/Padre/Config.pm:529 msgid "Alphabetical Order (Private Last)" msgstr "לפי סדר אלפביתי (פרטי בסוף)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "תווים אלפאנומריים" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "תווים אלפאנומריים וגם \"_\"" #: lib/Padre/Wx/Dialog/KeyBindings.pm:90 msgid "Alt" msgstr "הכל" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Alternation" msgstr "החלפה" #: lib/Padre/Wx/Dialog/ModuleStart.pm:182 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" "שגיאה בזמן חילול '%s':\n" "%s" #: lib/Padre/Wx/Dialog/Preferences.pm:567 msgid "Any changes to these options require a restart:" msgstr "כל שינוי בהעדפות אלו מצריך אתחול:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "כל תו חוץ מתו שורה חדשה" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "כל ספרה עשרונית" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "כל תו שאינו ספרה" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "כל תו שאינו רווח" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "כל תו שאינו מלה" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "כל תו רווח" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "כל תו שהוא מלה" #: lib/Padre/Wx/Dialog/ModuleStart.pm:16 #: lib/Padre/Wx/Dialog/ModuleStart.pm:36 msgid "Apache License" msgstr "רישיון Apache" #: lib/Padre/Wx/Dialog/Preferences.pm:865 msgid "Appearance" msgstr "תצוגה" #: lib/Padre/Wx/ActionLibrary.pm:1079 msgid "Apply Diff to File" msgstr "להחיל השוואה על קובץ" #: lib/Padre/Wx/ActionLibrary.pm:1089 msgid "Apply Diff to Project" msgstr "להחיל השוואה על פרויקט" #: lib/Padre/Wx/ActionLibrary.pm:1080 msgid "Apply a patch file to the current document" msgstr "התאם קובץ טלאי (patch) למסמך נוכחי" #: lib/Padre/Wx/ActionLibrary.pm:1090 msgid "Apply a patch file to the current project" msgstr "התאם קובץ טלאי (patch) לפרוייקט נוכחי" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "Apply one of the quick fixes for the current document" msgstr "החל את החד מהתיקונים המהירים למסמך הנוכחי" #: lib/Padre/Locale.pm:156 msgid "Arabic" msgstr "ערבית" #: lib/Padre/Wx/Dialog/ModuleStart.pm:17 #: lib/Padre/Wx/Dialog/ModuleStart.pm:37 msgid "Artistic License 1.0" msgstr "Artistic License 1.0" #: lib/Padre/Wx/Dialog/ModuleStart.pm:18 #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "Artistic License 2.0" msgstr "Artistic License 2.0" #: lib/Padre/Wx/ActionLibrary.pm:465 msgid "Ask for a session name and save the list of files currently opened" msgstr "בקש שם לסביבת העבודה ושמור את רשימת הקבצים הפתוחים כעת" #: lib/Padre/Wx/ActionLibrary.pm:535 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "שאל אם לשמור קבצים שלא נשמרו וצא מ-Padre" #: lib/Padre/Wx/ActionLibrary.pm:1841 msgid "Assign the selected expression to a newly declared variable" msgstr "הצב את הביטוי שנבחר למשתנה החדש שהוגדר" #: lib/Padre/Wx/Outline.pm:360 msgid "Attributes" msgstr "מאפינים " #: lib/Padre/Wx/FBP/Sync.pm:283 msgid "Authentication" msgstr "הזדהות" #: lib/Padre/Wx/Dialog/ModuleStart.pm:58 msgid "Author:" msgstr "מאת:" #: lib/Padre/Wx/Dialog/Preferences.pm:317 msgid "Auto-fold POD markup when code folding enabled" msgstr "קיפול של תחביר POD כאשר מופעל קיפול קוד" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:34 msgid "Autocomplete always while typing" msgstr "השלמות אוטומטיות בזמן הקלדה תמיד מאופשרות" #: lib/Padre/Wx/Dialog/Preferences.pm:360 msgid "Autocomplete brackets" msgstr "השלמת סוגרים אוטומטית\tCtrl-P" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:41 msgid "Autocomplete new methods in packages" msgstr "השלמות אוטומטיות של מתודות חדשות בחבילות" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:48 msgid "Autocomplete new subroutines in scripts" msgstr "השלמות אוטומטיות של שיגרות בתוכניות" #: lib/Padre/Wx/Main.pm:3291 msgid "Autocompletion error" msgstr "שגיאת השלמות אוטומטיות" #: lib/Padre/Wx/Dialog/Preferences.pm:276 msgid "Autoindent:" msgstr "הזחה אוטומטית:" #: lib/Padre/Wx/Dialog/Preferences.pm:260 msgid "Automatic indentation style detection" msgstr "סגנון הזחה - זהוי אוטומטי" #: lib/Padre/Wx/StatusBar.pm:293 msgid "Background Tasks are running" msgstr "משימות רקע רצות" #: lib/Padre/Wx/StatusBar.pm:294 msgid "Background Tasks are running with high load" msgstr "משימות רקע רצות בעומס גבוה" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Backspace" msgstr "מקש Backspace" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "תחילת שורה" #: lib/Padre/Wx/Dialog/Preferences.pm:862 msgid "Behaviour" msgstr "התנהגות" #: lib/Padre/Wx/About.pm:106 msgid "Blue butterfly on a green leaf" msgstr "פרפר כחול מעל עלה ירוק" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "בוליאני" #: lib/Padre/Wx/FBP/FindInFiles.pm:64 msgid "Browse" msgstr "דפדף" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Browse directory of the current document to open one or several files" msgstr "סייר בתיקיה של המסמך הנוכחי כדי לפתוח קובץ אחד או יותר" #: lib/Padre/Wx/ActionLibrary.pm:263 msgid "Browse the directory of the installed examples to open one file" msgstr "סייר בתיקית הדוגמאות המותקנות כדי לפתוח קובץ" #: lib/Padre/Wx/Dialog/Preferences.pm:88 #: lib/Padre/Wx/Dialog/Preferences.pm:92 msgid "Browse..." msgstr "עיין בקבצים..." #: lib/Padre/Wx/Browser.pm:409 #, perl-format msgid "Browser: no viewer for %s" msgstr "דפדפן: אין תוכת תצוגה ל- %s" #: lib/Padre/Wx/Dialog/ModuleStart.pm:64 msgid "Builder:" msgstr "בונה:" #: lib/Padre/Wx/ActionLibrary.pm:1919 msgid "Builds the current project, then run all tests." msgstr "בנה את הפרויקט הנוכחי והרץ את כל הבדיקות" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:358 msgid "CHANGED" msgstr "שונה" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/FindInFiles.pm:132 #: lib/Padre/Wx/FBP/Find.pm:119 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "בטל" #: lib/Padre/Wx/Main.pm:4987 msgid "Cannot diff if file was never saved" msgstr "אי אפשר לעשות השוואה לקובץ שמעולם לא נשמר" #: lib/Padre/Wx/Main.pm:3620 #, perl-format msgid "Cannot open a directory: %s" msgstr "אי אפשר לפתוח את התיקייה: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:123 msgid "Cannot set bookmark in unsaved document" msgstr "לא ניתן להגדיר סימנייה במסמך לא שמור" #: lib/Padre/Wx/Dialog/Search.pm:180 msgid "Case &insensitive" msgstr "לא תלוי רישיות" #: lib/Padre/Wx/Dialog/Replace.pm:80 msgid "Case &sensitive" msgstr " תלוי רישיות" #: lib/Padre/Wx/FBP/FindInFiles.pm:109 #: lib/Padre/Wx/FBP/Find.pm:74 msgid "Case Sensitive" msgstr " תלוי רישיות" #: lib/Padre/Wx/Dialog/RegexEditor.pm:409 msgid "Case-insensitive matching" msgstr "התאמה לא תלויה ברישיות" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "קטגוריה:" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "Change font size" msgstr "לשנות גודל גופן" #: lib/Padre/Wx/ActionLibrary.pm:1059 msgid "Change the current selection to lower case" msgstr "הפוך את הבחירה הנוכחית לאותיות קטנות" #: lib/Padre/Wx/ActionLibrary.pm:1048 msgid "Change the current selection to upper case" msgstr "הפוך את הבחירה הנוכחית לאותיות רישיות" #: lib/Padre/Wx/ActionLibrary.pm:941 msgid "Change the encoding of the current document to the default of the operating system" msgstr "שנה את קידוד המסמך הנוכחי לברירת המחדל של מערכת ההפעלה" #: lib/Padre/Wx/ActionLibrary.pm:952 msgid "Change the encoding of the current document to utf-8" msgstr "שנה את הקידוד של המסמך הנוכחי ל-utf-8" #: lib/Padre/Wx/ActionLibrary.pm:994 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "שנה את תווי סוף השורה במסמך הנוכחי לתווי סוף השורה המשמשים ב Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:984 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "שנה את תו סוף השורה במסמך הנוכחי לתווי סוף שורה המשמשים ב-Unix, Linux, Mac OSX" #: lib/Padre/Wx/ActionLibrary.pm:974 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "שנה את תו סוף השורה במסמך הנוכחי לתווי סוף שורה המשמשים בקבצים של MS Windows" #: lib/Padre/Wx/Menu/Refactor.pm:49 #: lib/Padre/Document/Perl.pm:1696 msgid "Change variable style" msgstr "שינוי סגנון המישתנה" #: lib/Padre/Wx/ActionLibrary.pm:1800 msgid "Change variable style from camelCase to Camel_Case" msgstr "שנה סגנון משתמש מ- camelCase ל- Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1786 msgid "Change variable style from camelCase to camel_case" msgstr "שנה סגנון משתמש מ- camelCase ל- camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1772 msgid "Change variable style from camel_case to CamelCase" msgstr "שנה סגנון משתמש מ- camel_case ל- CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1758 msgid "Change variable style from camel_case to camelCase" msgstr "שנה סגנון משתמש מ- camel_case ל- camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1799 msgid "Change variable style to Using_Underscores" msgstr "שינוי סגנון המישתנה ל- Using_Underscores" #: lib/Padre/Wx/ActionLibrary.pm:1785 msgid "Change variable style to using_underscores" msgstr "שינוי סגנון המישתנה ל- using_underscores" #: lib/Padre/Wx/ActionLibrary.pm:1771 msgid "Change variable to CamelCase" msgstr "שינוי סגנון המישתנה ל- CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1757 msgid "Change variable to camelCase" msgstr "שינוי סגנון המישתנה ל- camelCase" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "Character classes" msgstr "מחלקות (קלאסים) של תוים" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:236 msgid "Character position" msgstr "מיקום תו" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "סט תווים (Character set)" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "תוים (כולל רווח)" #: lib/Padre/Document/Perl.pm:472 msgid "Check Complete" msgstr "בדיקה הסתיימה" #: lib/Padre/Document/Perl.pm:542 #: lib/Padre/Document/Perl.pm:596 #: lib/Padre/Document/Perl.pm:631 msgid "Check cancelled" msgstr "הבדיקה בוטלה" #: lib/Padre/Wx/ActionLibrary.pm:1655 msgid "Check for Common (Beginner) Errors" msgstr "חפש שגיאות (מתחילים) נפוצות" #: lib/Padre/Wx/Dialog/Preferences.pm:348 msgid "Check for file updates on disk every (seconds):" msgstr "כל כמה זמן לבדוק שנעשו שינויים בקובץ (בשניות):" #: lib/Padre/Wx/ActionLibrary.pm:1656 msgid "Check the current file for common beginner errors" msgstr "חפש שגיאות (מתחילים) נפוצות בקובץ הנוכחי" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "סינית" #: lib/Padre/Locale.pm:440 msgid "Chinese (Simplified)" msgstr "סינית (מופשטת)" #: lib/Padre/Locale.pm:450 msgid "Chinese (Traditional)" msgstr "סינית (מסורתית)" #: lib/Padre/Wx/Main.pm:3806 #: lib/Padre/Wx/Dialog/Positions.pm:120 msgid "Choose File" msgstr "בחר קובץ" #: lib/Padre/Wx/Dialog/Preferences.pm:331 msgid "Choose the default projects directory" msgstr "בחר את תיקיית פרויקט לפי ברירת מחדל" #: lib/Padre/Wx/Dialog/Snippets.pm:22 #: lib/Padre/Wx/Dialog/SpecialValues.pm:46 msgid "Class:" msgstr "מחלקה:" #: lib/Padre/Wx/ActionLibrary.pm:509 msgid "Clean Recent Files List" msgstr "נקה רשימת הקבצים האחרונים" #: lib/Padre/Wx/Dialog/Preferences.pm:312 msgid "Clean up file content on saving (for supported document types)" msgstr "נקוי תוכן קובץ בזמן שמירה (בסוגי קבצים נתמכים)" #: lib/Padre/Wx/ActionLibrary.pm:625 msgid "Clear Selection Marks" msgstr "נקה סימוני בחירה" #: lib/Padre/Wx/Dialog/OpenResource.pm:222 msgid "Click on the arrow for filter settings" msgstr "לחץ על החץ לשם סינן הגדרות" #: lib/Padre/Wx/FBP/Sync.pm:248 #: lib/Padre/Wx/Menu/File.pm:139 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:280 #: lib/Padre/Wx/Dialog/SessionSave.pm:230 msgid "Close" msgstr "סגור" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close Files..." msgstr "סגור קבצים..." #: lib/Padre/Wx/Dialog/Replace.pm:108 msgid "Close Window on &Hit" msgstr "סגור חלון בפגיעה" #: lib/Padre/Wx/FBP/Find.pm:82 msgid "Close Window on Hit" msgstr "סגור חלון בקליק" #: lib/Padre/Wx/Main.pm:4768 msgid "Close all" msgstr "סגור את הכל" #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close all Files" msgstr "סגור את כל הקבצים" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all other Files" msgstr "סגור את כל שאר הקבצים" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "סגור את כל הקבצים ששייכים לפרויקט הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "סגור את כל הקבצים פרט לקובץ הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "סגור את הקבצים שפתוחים בעורך" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "סגור את כל הקבצים שאינם שייכים לפרויקט הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "סגור את המסמך הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other Projects" msgstr "סגור את שאר הפרויקטים" #: lib/Padre/Wx/Main.pm:4824 msgid "Close some" msgstr "סגור חלק מהקבצים" #: lib/Padre/Wx/Main.pm:4808 msgid "Close some files" msgstr "סגור חלק מהקבצים" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close this Project" msgstr "סגוראת הפרויקט הנוכחי" #: lib/Padre/Config.pm:527 msgid "Code Order" msgstr "לפי הסדר שבקוד" #: lib/Padre/Wx/Dialog/Preferences.pm:478 msgid "Colored text in output window (ANSI)" msgstr "טקסט צבעוני בחלון הפלט (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1864 msgid "Combine scattered POD at the end of the document" msgstr "צרף חלקי POD לסוף המסמך" #: lib/Padre/Wx/Command.pm:262 msgid "Command" msgstr " פקודה" #: lib/Padre/Wx/Main.pm:2414 msgid "Command line" msgstr "שורת הפקודה" #: lib/Padre/Wx/ActionLibrary.pm:903 msgid "Comment out or remove comment out of selected lines in the document" msgstr "שים הערה או הסר הערה על השורות הנבחרות במסמך" # msgstr "עבור לקובץ הבא\tCtrl-TAB" #: lib/Padre/Wx/ActionLibrary.pm:916 msgid "Comment out selected lines in the document" msgstr "הפוך השורות בבחירה להערות\tCtrl-M" #: lib/Padre/Wx/ActionLibrary.pm:1070 msgid "Compare the file in the editor to that on the disk and show the diff in the output window" msgstr "השווה את הקובץ בעורך לקובץ שעל הדיסק והצג את ההבדלים בחלון הפלט" #: lib/Padre/Wx/About.pm:318 msgid "Config:" msgstr " הגדרות:" #: lib/Padre/Wx/FBP/Sync.pm:139 #: lib/Padre/Wx/FBP/Sync.pm:167 msgid "Confirm" msgstr "אישור" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "מתחבר לשרת HTTP %s ..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "התחברות ל- FTP הצליחה." #: lib/Padre/Wx/FindResult.pm:178 msgid "Content" msgstr "תוכן" #: lib/Padre/Wx/Dialog/Preferences.pm:168 msgid "Content type:" msgstr "סוג תוכן: %s" #: lib/Padre/Config.pm:461 msgid "Contents of the status bar" msgstr "תוכן שורת המצב" #: lib/Padre/Config.pm:449 msgid "Contents of the window title" msgstr "תוכן כותרת החלון" #: lib/Padre/Wx/ActionLibrary.pm:2599 msgid "Context Help" msgstr "עזרה בהתאם להקשר\tCtrl-Shift-H" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "תווי בקרה" #: lib/Padre/Wx/Menu/Edit.pm:200 msgid "Convert Encoding" msgstr "המרת קידוד" #: lib/Padre/Wx/Menu/Edit.pm:222 msgid "Convert Line Endings" msgstr "המרת סופי שורות" #: lib/Padre/Wx/ActionLibrary.pm:1006 msgid "Convert all tabs to spaces in the current document" msgstr "הפוך את כל הטאבים לרווחים במסמך הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:1016 msgid "Convert all the spaces to tabs in the current document" msgstr "הפוך את כל הרווחים לטאבים במסמך הנוכחי" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "העתק" #: lib/Padre/Wx/FindResult.pm:249 msgid "Copy &All" msgstr "העתק הכול" #: lib/Padre/Wx/FindResult.pm:226 msgid "Copy &Selected" msgstr "העתק את החלק הנבחר " #: lib/Padre/Wx/ActionLibrary.pm:699 msgid "Copy Directory Name" msgstr "העתק את שם התיקייה" #: lib/Padre/Wx/ActionLibrary.pm:712 msgid "Copy Editor Content" msgstr "העתק את תוכן העורך" #: lib/Padre/Wx/ActionLibrary.pm:685 msgid "Copy Filename" msgstr "העתק את שם הקובץ" #: lib/Padre/Wx/ActionLibrary.pm:671 msgid "Copy Full Filename" msgstr "העתק את שמו המלא של הקובץ" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "העתק את שם הקובץ" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Copy Specials" msgstr "העתק Specials" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "העתק ערך" #: lib/Padre/Wx/Dialog/OpenResource.pm:262 msgid "Copy filename to clipboard" msgstr "העתק שם הקובץ ללוח" #: lib/Padre/Wx/Directory/TreeCtrl.pm:163 #, perl-format msgid "Could not create: '%s': %s" msgstr "לא ניתן ליצור: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:182 #, perl-format msgid "Could not delete: '%s': %s" msgstr "לא ניתן למחוק: '%s': %s" #: lib/Padre/Wx/Main.pm:3242 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "לא ניתן לקבוע את תו ההערה עבור סוד מסמך '%s'" #: lib/Padre/Wx/Debugger.pm:389 #, perl-format msgid "Could not evaluate '%s'" msgstr "לא ניתן לבצע הערכה (evaluate) עבור '%s'" #: lib/Padre/Util/FileBrowser.pm:216 msgid "Could not find KDE or GNOME" msgstr "לא נמצא KDE או GNOME" #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 msgid "Could not find a help provider for " msgstr "לא נמצא ספק עזרה עבור'" #: lib/Padre/Wx/Main.pm:2480 msgid "Could not find perl executable" msgstr "לא נמצא קובץ הרצת perl" #: lib/Padre/Wx/Main.pm:2450 #: lib/Padre/Wx/Main.pm:2511 #: lib/Padre/Wx/Main.pm:2566 msgid "Could not find project root" msgstr "לא נמצא שורש הפרויקט" #: lib/Padre/Wx/ActionLibrary.pm:2292 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "לא מצאתי את התוסף Padre::Plugin::My" #: lib/Padre/PluginManager.pm:982 msgid "Could not locate project directory." msgstr "לא נמצאה תיקיית הפרויקט" #: lib/Padre/Wx/Main.pm:4190 #, perl-format msgid "Could not reload file: %s" msgstr "לא ניתן לרענן את הקובץ '%s'" #: lib/Padre/Wx/Main.pm:4598 msgid "Could not save file: " msgstr "לא ניתן לשמור את הקובץ '%s'" #: lib/Padre/Wx/Debugger.pm:226 #, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "לא ניתן להגדיר נקודת עצירה בקובץ '%s' שורה '%s'" #: lib/Padre/Wx/Dialog/Preferences.pm:693 msgid "Crashed" msgstr "קרס" #: lib/Padre/Wx/Directory/TreeCtrl.pm:237 msgid "Create Directory" msgstr "צור תיקייה" #: lib/Padre/Wx/ActionLibrary.pm:1730 msgid "Create Project Tagsfile" msgstr "צור tagsfile עבור הפרויקט" #: lib/Padre/Wx/ActionLibrary.pm:1574 msgid "Create a bookmark in the current file current row" msgstr "צור סימניה בקובץ הנוכחי בשורה הנוכחית" #: lib/Padre/Wx/About.pm:102 msgid "Created by" msgstr "נוצר על ידי" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:15 msgid "Creates a Padre Plugin" msgstr "יוצר תוסף ל- Padre" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:15 msgid "Creates a Padre document" msgstr "יוצר מסמך Padre" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:17 msgid "Creates a Perl 5 module or script" msgstr "יוצר מודול של Perl 5 או סקריפט" #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "צור קובץ perltags לפרוייקט הנוכחי לתמיכה ב- find_method והשלמה אוטומטית." #: lib/Padre/Wx/Dialog/KeyBindings.pm:89 msgid "Ctrl" msgstr "מקש Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:640 msgid "Cu&t" msgstr "גזור" #: lib/Padre/Document/Perl.pm:630 #, perl-format msgid "Current '%s' not found" msgstr "ה-'%s' הנוכחי לא נמצא" #: lib/Padre/Wx/Dialog/OpenResource.pm:245 msgid "Current Directory: " msgstr "תיקייה נוכחית:" #: lib/Padre/Wx/ActionLibrary.pm:2612 msgid "Current Document" msgstr " מסמך נוכחי" #: lib/Padre/Wx/Dialog/Preferences.pm:819 #, perl-format msgid "Current Document: %s" msgstr "מסמך נוכחי: %s" #: lib/Padre/Document/Perl.pm:595 msgid "Current cursor does not seem to point at a method" msgstr "לא נראה שהסמן מצביע על מתודה" #: lib/Padre/Document/Perl.pm:541 #: lib/Padre/Document/Perl.pm:575 msgid "Current cursor does not seem to point at a variable" msgstr "לא נראה שהסמן מצביע על משתנה" #: lib/Padre/Document/Perl.pm:819 #: lib/Padre/Document/Perl.pm:869 #: lib/Padre/Document/Perl.pm:907 msgid "Current cursor does not seem to point at a variable." msgstr "לא נראה שהסמן מצביע על משתנה" #: lib/Padre/Wx/Main.pm:2505 #: lib/Padre/Wx/Main.pm:2557 msgid "Current document has no filename" msgstr "למסמך הנוכחי אין שם קובץ" #: lib/Padre/Wx/Main.pm:2560 msgid "Current document is not a .t file" msgstr "למסמך הנוכחי אינו קובץ .t" #: lib/Padre/Wx/Dialog/Preferences.pm:441 msgid "Current file's basename" msgstr "שם קובץ basename למסמך הנוכחי" #: lib/Padre/Wx/Dialog/Preferences.pm:440 msgid "Current file's dirname" msgstr "תיקיית הקובץ הנוכחי" #: lib/Padre/Wx/Dialog/Preferences.pm:439 msgid "Current filename" msgstr " שם הקובץ הנוכחי" #: lib/Padre/Wx/Dialog/Preferences.pm:442 msgid "Current filename relative to project" msgstr "קובץ נוכחי - יחסית לפרוייקט" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "מספר שורה נוכחית: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "מיקום נוכחי: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Cursor Blink Rate (milliseconds - 0 = blink off; 500 = default):" msgstr "קצב הבהו הסמן (אלפיות שניה - 0 = ללא הבהוב; 500 = ברירת מחדל)" #: lib/Padre/Wx/ActionLibrary.pm:1815 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "חתוך את הטקסט הנבחר וצור ממנו שגרה חדשה. קריאה לשגרה זו תוכנס במקום הטקסט הנבחר." #: lib/Padre/Locale.pm:166 msgid "Czech" msgstr "צ'כית" #: lib/Padre/Wx/Dialog/WindowList.pm:356 msgid "DELETED" msgstr "נמחק" #: lib/Padre/Locale.pm:176 msgid "Danish" msgstr "דנית" #: lib/Padre/Wx/Dialog/SpecialValues.pm:15 msgid "Date/Time" msgstr "תאריך/שעה" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:395 msgid "Debug" msgstr "מנפה שגיאת (Debug)" #: lib/Padre/Wx/Debug.pm:113 msgid "Debugger" msgstr "מנפה שגיאות" #: lib/Padre/Wx/Debugger.pm:78 msgid "Debugger is already running" msgstr "מאתר הבאגים כבר רץ" #: lib/Padre/Wx/Debugger.pm:193 #: lib/Padre/Wx/Debugger.pm:275 #: lib/Padre/Wx/Debugger.pm:299 #: lib/Padre/Wx/Debugger.pm:333 #: lib/Padre/Wx/Debugger.pm:353 msgid "Debugger not running" msgstr "מאתר הבאגים אינו רץ" #: lib/Padre/Wx/Debugger.pm:137 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "נפוי שגיאות נכשל. האם בדקת שגיאות תחביר התוכנית שלך?" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "Decrease Font Size" msgstr "הקטן גופן" #: lib/Padre/Wx/Dialog/Preferences.pm:813 #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "ברירת המחדל " #: lib/Padre/Wx/Dialog/Preferences.pm:345 msgid "Default line ending:" msgstr "תו סוף שורה לפי ברירת מחדל:" #: lib/Padre/Wx/Dialog/Preferences.pm:329 msgid "Default projects directory:" msgstr " לפי ברירת מחדל: תיקיית פרויקט" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "ברירת המחדל " #: lib/Padre/Wx/Dialog/Preferences.pm:300 msgid "Default word wrap on for each file" msgstr "גלישת שורות בברירת מחדל לכל קובץ" #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Delay the action queue for 10 seconds" msgstr "לעכב את תור הפעולות למשך 10 שניות" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Delay the action queue for 30 seconds" msgstr "לעכב את תור הפעולות למשך 30 שניות" #: lib/Padre/Wx/FBP/Sync.pm:233 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Delete" msgstr "מחק" #: lib/Padre/Wx/Dialog/Bookmarks.pm:43 msgid "Delete &All" msgstr "מחק הכול" #: lib/Padre/Wx/Directory/TreeCtrl.pm:226 msgid "Delete File" msgstr "מחק קובץ" #: lib/Padre/Wx/ActionLibrary.pm:1035 msgid "Delete Leading Spaces" msgstr "מחק רווחים בתחילת שורה" #: lib/Padre/Wx/ActionLibrary.pm:1025 msgid "Delete Trailing Spaces" msgstr "מחק רווחים בסוף שורה" #: lib/Padre/Wx/Syntax.pm:37 msgid "Deprecation" msgstr "הוצאה מכלל שימוש" #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "תיאור" #: lib/Padre/Wx/Dialog/Preferences.pm:165 #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:209 msgid "Description:" msgstr "תיאור" #: lib/Padre/Wx/About.pm:64 msgid "Development" msgstr "פיתוח" #: lib/Padre/CPAN.pm:118 #: lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "לא סופקה הפצה" #: lib/Padre/Wx/Menu/Edit.pm:295 msgid "Diff Tools" msgstr "כלי השוואה" #: lib/Padre/Wx/ActionLibrary.pm:1069 msgid "Diff to Saved Version" msgstr "השוואה עם הגרסה השמורה" #: lib/Padre/Wx/Dialog/Preferences.pm:86 msgid "Diff tool:" msgstr "כלי השוואה:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "ספרות" #: lib/Padre/Config.pm:556 msgid "Directories First" msgstr "קודם תיקיות" #: lib/Padre/Config.pm:557 msgid "Directories Mixed" msgstr " מעורב תיקיות" #: lib/Padre/Wx/Directory/TreeCtrl.pm:83 msgid "Directory" msgstr " תיקייה" #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Disk" msgstr "דיסק" #: lib/Padre/Wx/ActionLibrary.pm:2147 msgid "Display Value" msgstr "הצג ערך" #: lib/Padre/Wx/ActionLibrary.pm:2148 msgid "Display the current value of a variable in the right hand side debugger pane" msgstr "הצג את הערך הנוכחי של מישתנה בחלונית מנפה השגיאות שבצד ימין" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "אל תציג את זה שוב" #: lib/Padre/Wx/Main.pm:2797 msgid "Do you want to continue?" msgstr "האם ברצונך להמשיך?" #: lib/Padre/Wx/Dialog/KeyBindings.pm:391 msgid "Do you want to override it with the selected action?" msgstr "האם ברצונך לדרוס זאת עם הפעולה הנבחרת?" #: lib/Padre/Wx/WizardLibrary.pm:36 #: lib/Padre/Wx/Dialog/DocStats.pm:95 msgid "Document" msgstr "מסמך " #: lib/Padre/Wx/ActionLibrary.pm:521 #: lib/Padre/Wx/Dialog/DocStats.pm:31 msgid "Document Statistics" msgstr "נתוני המסמך" #: lib/Padre/Wx/Right.pm:52 msgid "Document Tools" msgstr "כלי מסמך" #: lib/Padre/Config.pm:567 msgid "Document Tools (Right)" msgstr "כלי מסמך " #: lib/Padre/Wx/Dialog/Preferences.pm:786 msgid "Document location:" msgstr "מיקום המסמך" #: lib/Padre/Wx/Dialog/Preferences.pm:783 msgid "Document name:" msgstr "שם מסמך:" #: lib/Padre/Wx/Dialog/DocStats.pm:133 msgid "Document type" msgstr "סוג מסמך" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Down" msgstr "למטה" #: lib/Padre/Wx/FBP/Sync.pm:218 msgid "Download" msgstr "הורדה (Download)" #: lib/Padre/Plugin/Devel.pm:71 msgid "Dump" msgstr "הטל" #: lib/Padre/Plugin/Devel.pm:77 msgid "Dump %INC and @INC" msgstr "היטל %INC ו- @INC" #: lib/Padre/Plugin/Devel.pm:73 msgid "Dump Current Document" msgstr "היטל המסמך הנוכחי" #: lib/Padre/Plugin/Devel.pm:76 msgid "Dump Current PPI Tree" msgstr "היטל עץ ה-PPI הנוכחי" #: lib/Padre/Plugin/Devel.pm:78 msgid "Dump Display Geometry" msgstr "הטל גאומטריית תצוגה" #: lib/Padre/Plugin/Devel.pm:72 msgid "Dump Expression..." msgstr "היטל ביטוי ..." #: lib/Padre/Plugin/Devel.pm:74 msgid "Dump Task Manager" msgstr "הטל מנהל משימות" #: lib/Padre/Plugin/Devel.pm:75 msgid "Dump Top IDE Object" msgstr "Dump Top IDE Object" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dump the Padre object to STDOUT" msgstr "ל-STDOUT Dump the Padre object to STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:90 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "מטיל את פרויקט Padre המלא ל-STDOUT לצורך בדיקה/דיבוג" #: lib/Padre/Locale.pm:350 msgid "Dutch" msgstr "הולנדית" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "הולנדית (בלגיה)" #: lib/Padre/Wx/ActionLibrary.pm:993 msgid "EOL to Mac Classic" msgstr "סוף שורה תואם Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:983 msgid "EOL to Unix" msgstr "סוף שורה תואם Unix" #: lib/Padre/Wx/ActionLibrary.pm:973 msgid "EOL to Windows" msgstr "סוף שורה תואם Windows" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 msgid "Edit" msgstr "ערוך" #: lib/Padre/Wx/ActionLibrary.pm:2285 msgid "Edit My Plug-in" msgstr "ערוך את התוסף שלי" #: lib/Padre/Wx/ActionLibrary.pm:2210 msgid "Edit the user preferences" msgstr "ערוך את העדפות המשתמש" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Edit with Regex Editor" msgstr "עריכה ב" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "ערוך/הוסף קטעי קוד" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Editor" msgstr "עורך" #: lib/Padre/Wx/Dialog/Preferences.pm:495 msgid "Editor Current Line Background Colour:" msgstr "צבע הרקע של השורה עם הסמן בעורך" #: lib/Padre/Wx/Dialog/Preferences.pm:492 msgid "Editor Font:" msgstr "גופן עורך הטקסט:" #: lib/Padre/Wx/FBP/Sync.pm:153 msgid "Email" msgstr "דואר אלקטרוני" #: lib/Padre/Wx/Dialog/ModuleStart.pm:61 msgid "Email Address:" msgstr "דואר אלקטרוני:" #: lib/Padre/Wx/Dialog/Sync2.pm:152 #: lib/Padre/Wx/Dialog/Sync.pm:537 msgid "Email and confirmation do not match." msgstr "\"דואר אלקטרוני\" ו- \"אישור\" אינם תואמים" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Enable Smart highlighting while typing" msgstr "אפשר צביעת קוד חכמה בזמן הקלדה" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "Enable bookmarks" msgstr "אפשר סימניות :" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enable session manager" msgstr "אפשר מנהל סביבות עבודה" #: lib/Padre/Wx/Dialog/Preferences.pm:678 msgid "Enable?" msgstr "לאפשר?" #: lib/Padre/Wx/ActionLibrary.pm:940 msgid "Encode Document to System Default" msgstr "קודד את המסמך בברירת המחדל של המערכת" #: lib/Padre/Wx/ActionLibrary.pm:951 msgid "Encode Document to utf-8" msgstr "קודד את המסמך ב-utf-8" #: lib/Padre/Wx/ActionLibrary.pm:962 msgid "Encode Document to..." msgstr "קודד מסמך ל..." #: lib/Padre/Wx/Dialog/Encode.pm:63 msgid "Encode document to..." msgstr "קודד מסמך ל..." #: lib/Padre/Wx/Dialog/Encode.pm:53 msgid "Encode to:" msgstr "לקודד ל:" #: lib/Padre/Wx/Dialog/DocStats.pm:131 msgid "Encoding" msgstr "קידוד" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "End" msgstr "מקש End" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "End of line" msgstr "סוף שורה" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "אנגלית" #: lib/Padre/Locale.pm:124 msgid "English (Australia)" msgstr "אנגלית (אוסטרליה)" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "אנגלית (קנדה)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "אנגלית (ניו זילנד)" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "אנגלית (הממלכה המאוחדת)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "אנגלית (ארצות הברית)" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Enter" msgstr "מקש Enter" #: lib/Padre/CPAN.pm:132 msgid "" "Enter URL to install\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "הכנס כתובת URL להתקנה\n" "למשל http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:215 msgid "Enter parts of the resource name to find it" msgstr "הכנס חלק משם משאב כדי למצוא אותו" #: lib/Padre/Wx/Dialog/SpecialValues.pm:19 msgid "Epoch" msgstr "Epoch" #: lib/Padre/Document.pm:440 #: lib/Padre/Wx/Editor.pm:215 #: lib/Padre/Wx/Main.pm:4599 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/ModuleStart.pm:185 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 #: lib/Padre/Wx/Dialog/Sync2.pm:67 #: lib/Padre/Wx/Dialog/Sync2.pm:75 #: lib/Padre/Wx/Dialog/Sync2.pm:89 #: lib/Padre/Wx/Dialog/Sync2.pm:108 #: lib/Padre/Wx/Dialog/Sync2.pm:132 #: lib/Padre/Wx/Dialog/Sync2.pm:143 #: lib/Padre/Wx/Dialog/Sync2.pm:153 #: lib/Padre/Wx/Dialog/Sync2.pm:171 #: lib/Padre/Wx/Dialog/Sync2.pm:182 #: lib/Padre/Wx/Dialog/Sync2.pm:193 #: lib/Padre/Wx/Dialog/Sync2.pm:204 #: lib/Padre/Wx/Dialog/PerlFilter.pm:274 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:90 #: lib/Padre/Wx/Dialog/Sync.pm:447 #: lib/Padre/Wx/Dialog/Sync.pm:455 #: lib/Padre/Wx/Dialog/Sync.pm:469 #: lib/Padre/Wx/Dialog/Sync.pm:493 #: lib/Padre/Wx/Dialog/Sync.pm:517 #: lib/Padre/Wx/Dialog/Sync.pm:528 #: lib/Padre/Wx/Dialog/Sync.pm:538 #: lib/Padre/Wx/Dialog/Sync.pm:556 #: lib/Padre/Wx/Dialog/Sync.pm:567 #: lib/Padre/Wx/Dialog/Sync.pm:578 #: lib/Padre/Wx/Dialog/Sync.pm:589 #: lib/Padre/Wx/Dialog/OpenResource.pm:118 msgid "Error" msgstr "שגיאה" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "שגיאה בהתחברות אל %s:%s: %s" #: lib/Padre/Wx/Main.pm:5136 msgid "Error loading perl filter dialog." msgstr "שגיאה בטעינת perl filter dialog." #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "שגיאה בטעינת pod למחלקה '%s': %s" #: lib/Padre/Wx/Main.pm:5107 msgid "Error loading regex editor." msgstr "שגיאה בטעינת עורך regex" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "שגיאת התחברות ב- %s:%s: %s" #: lib/Padre/Wx/Main.pm:6559 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "שגיאה שהוחזרה על ידי כלי הסינון:\n" "%s" #: lib/Padre/Wx/Main.pm:6544 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "שגיאה בעת הרצת כלי הסינון:\n" "%s" #: lib/Padre/PluginManager.pm:943 msgid "Error when calling menu for plug-in " msgstr "שגיאה בקריאה לתפריט התוסף" #: lib/Padre/Wx/Dialog/HelpSearch.pm:81 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "שגיאה בקריאה ל- %s %s" #: lib/Padre/Document.pm:281 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "שגיאה בגילוי טיפוס הMIME של הקובץ. ייתכן שזו בעיית קידוד. האם אתה מנסה לטעון קובץ בינארי?" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:126 #, perl-format msgid "Error while loading %s" msgstr "שגיאה בעת טעינת ל- %s" #: lib/Padre/Plugin/Devel.pm:248 msgid "Error while loading Aspect, is it installed?" msgstr "טעות בהעלאת Aspec. האם זה מןתקן?" #: lib/Padre/Document.pm:231 msgid "Error while opening file: no file object" msgstr "שגיאה בעת פתיחת קובץ: אין אוביקט קובץ" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "שגיאה בחיפוש POD" #: lib/Padre/Wx/Dialog/OpenResource.pm:117 msgid "Error while trying to perform Padre action" msgstr "שגיאה בזמן ניסיון לבצע פעולת Padre" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "שגיאה בזמן ניסיון לבצע פעולת Padre: %s" #: lib/Padre/Document/Perl.pm:430 msgid "Error: " msgstr "שגיאה:" #: lib/Padre/Wx/Main.pm:5665 #: lib/Padre/Plugin/Devel.pm:334 #, perl-format msgid "Error: %s" msgstr "שגיאה: %s" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/ActionLibrary.pm:2177 msgid "Evaluate Expression..." msgstr "הערך ביטוי" #: lib/Padre/Config/Style.pm:35 msgid "Evening" msgstr "ערב" #: lib/Padre/Wx/ActionLibrary.pm:1991 msgid "Execute the next statement, enter subroutine if needed. (Start debugger if it is not yet running)" msgstr "בצע את הפקודה הבאה, הכנס לתת-שגרה אם יש צורך. (התחל מנפה שגיאות אם עדיין לא רץ)" #: lib/Padre/Wx/ActionLibrary.pm:2008 msgid "Execute the next statement. If it is a subroutine call, stop only after it returned. (Start debugger if it is not yet running)" msgstr "בצע את הפקודה הבאה. אם זו קריאה לתת-שגרה, עצור רק אחרי חזרה ממנה. (התחל מנפה שגיאות אם עדיין לא רץ)" #: lib/Padre/Wx/Main.pm:4380 msgid "Exist" msgstr "קיים" #: lib/Padre/Wx/Dialog/Bookmarks.pm:31 msgid "Existing bookmarks:" msgstr "סימניות קיימות:" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "תכונה ניסיונית. הקש '?' בתחתית העמוד להצגת רשימת פקודות. אם *זה* לא עובד, תמיד אפשר להאשים את szabgab. :-)\n" "\n" #: lib/Padre/Wx/Debugger.pm:440 msgid "Expr" msgstr "Expr" #: lib/Padre/Plugin/Devel.pm:120 #: lib/Padre/Plugin/Devel.pm:121 msgid "Expression" msgstr "ביטוי רגולרי" #: lib/Padre/Wx/Debugger.pm:439 msgid "Expression:" msgstr "ביטוי רגולרי:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:420 msgid "Extended (&x)" msgstr "מורחב" #: lib/Padre/Wx/Dialog/RegexEditor.pm:422 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "ביטויים רגולרים מורחבים מאפשרים פורמט חופשי (רווח לא נחשב) והערות" #: lib/Padre/Wx/Dialog/Preferences.pm:879 msgid "External Tools" msgstr "כלים חיצוניים" #: lib/Padre/Wx/ActionLibrary.pm:1826 msgid "Extract Subroutine" msgstr "חלץ שגרה" #: lib/Padre/Wx/ActionLibrary.pm:1813 msgid "Extract Subroutine..." msgstr "חלץ שגרה..." #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "סיסמאת FTP" #: lib/Padre/Wx/Main.pm:4497 #, perl-format msgid "Failed to create path '%s'" msgstr "יצירת המסלול '%s' נכשלה " #: lib/Padre/Wx/Main.pm:969 msgid "Failed to create server" msgstr "יצירת שרת נכשלה" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "הרצת מחיקת קטע POD" #: lib/Padre/PluginHandle.pm:290 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "כיבוי התוסף '%s' נכשל: %s" #: lib/Padre/PluginHandle.pm:210 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "נכשלה הפעלת התוסף '%s': %s" #: lib/Padre/Util/FileBrowser.pm:193 msgid "Failed to execute process\n" msgstr "הרצת התהליך נכשלה\n" #: lib/Padre/Wx/ActionLibrary.pm:1193 msgid "Failed to find any matches" msgstr "לא נמצא שום דבר תואם" #: lib/Padre/Wx/Main.pm:6173 #, perl-format msgid "Failed to find template file '%s'" msgstr "לא נמצא קובץ התבנית '%s'" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "חיפוש הגדרות CPAN שלך נכשל" #: lib/Padre/PluginManager.pm:1004 #: lib/Padre/PluginManager.pm:1100 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "טעינת התוסף '%s' נכשלה\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "נכשל המיזוג של חלקי POD" #: lib/Padre/Wx/Main.pm:2729 #, perl-format msgid "Failed to start '%s' command" msgstr "הרצת הפקודה '%s' נכשלה" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "שגיאה (False)" #: lib/Padre/MimeTypes.pm:365 #: lib/Padre/MimeTypes.pm:375 msgid "Fast but might be out of date" msgstr "מהיר, אבל יכול להיות לא מעודכן" #: lib/Padre/Wx/Syntax.pm:49 msgid "Fatal Error" msgstr "שגיאה חמורה" #: lib/Padre/Wx/Dialog/ModuleStart.pm:147 #, perl-format msgid "Field %s was missing. Module not created." msgstr "שדה %s לא מולא. מודול לא נוצר." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 #: lib/Padre/Wx/Dialog/WindowList.pm:224 #: lib/Padre/Wx/Dialog/SpecialValues.pm:21 msgid "File" msgstr "קובץ" #: lib/Padre/Wx/Menu/File.pm:390 #, perl-format msgid "File %s not found." msgstr "הקובץ %s לא נמצא." #: lib/Padre/Wx/Dialog/Preferences/File.pm:44 msgid "File access via FTP" msgstr "גישה לקבצים באמצעות FTP" #: lib/Padre/Wx/Dialog/Preferences/File.pm:36 msgid "File access via HTTP" msgstr "גישה לקבצים באמצעות HTTP" #: lib/Padre/Wx/Main.pm:4483 msgid "File already exists" msgstr "קובץ כבר קיים. " #: lib/Padre/Wx/Main.pm:4379 msgid "File already exists. Overwrite it?" msgstr "קובץ כבר קיים. לדרוס אותו?" #: lib/Padre/Wx/Main.pm:4588 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "קובץ השתנה בדיסק מאז השמירה האחרונה. האם ברצונך לדרוס אותו?" #: lib/Padre/Wx/Main.pm:4684 msgid "File changed. Do you want to save it?" msgstr "קובץ השתנה. האם ברצונך לשמור אותו?" #: lib/Padre/Wx/ActionLibrary.pm:295 #: lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "הקובץ אינו בפרויקט" #: lib/Padre/Wx/Main.pm:3972 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "שם הקובץ %s מכיל * או ? שמוגדרים כתווים מיוחדים ברוב המחשבים. לדלג?" #: lib/Padre/Wx/Main.pm:3992 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "קובץ בשם %s לא קיים בדיסק. לדלג?" #: lib/Padre/Wx/Main.pm:4589 msgid "File not in sync" msgstr "קובץ לא מסונכרן" #: lib/Padre/Wx/Dialog/Preferences.pm:159 msgid "File type:" msgstr "סוג קובץ:" #: lib/Padre/Wx/ActionLibrary.pm:889 msgid "File..." msgstr "קובץ..." #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr " קובץ/תיקייה" #: lib/Padre/Wx/Dialog/DocStats.pm:39 msgid "Filename" msgstr "שם הקובץ" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "קבצים" #: lib/Padre/Wx/Dialog/Preferences.pm:873 msgid "Files and Colors" msgstr "קבצים וצבעים" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "פקודת סינון:" #: lib/Padre/Wx/ActionLibrary.pm:1101 msgid "Filter through External Tool..." msgstr "סנן באמצעות כלי חיצוני" #: lib/Padre/Wx/ActionLibrary.pm:1110 msgid "Filter through Perl..." msgstr "סנן בתוך Perl..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "סנן באמצעות כלי" #: lib/Padre/Wx/ActionLibrary.pm:1102 msgid "Filters the selection (or the whole document) through any external command." msgstr "סנן את הבחירה (או את כל המסמך) דרך כלי חיצוני כלשהו" #: lib/Padre/Wx/FBP/FindInFiles.pm:125 #: lib/Padre/Wx/FBP/Find.pm:27 #: lib/Padre/Wx/Dialog/Replace.pm:218 msgid "Find" msgstr "חפש:" #: lib/Padre/Wx/FBP/Find.pm:113 msgid "Find All" msgstr "מצא הכל" #: lib/Padre/Wx/ActionLibrary.pm:1691 msgid "Find Method Declaration" msgstr "מצא הצהרת המתודה" #: lib/Padre/Wx/ActionLibrary.pm:1158 #: lib/Padre/Wx/ActionLibrary.pm:1214 #: lib/Padre/Wx/FBP/Find.pm:98 msgid "Find Next" msgstr "מצא הבא\tF3" #: lib/Padre/Wx/ActionLibrary.pm:1225 msgid "Find Previous" msgstr "מצא הקודם\tShift-F3" #: lib/Padre/Wx/FindResult.pm:88 #, perl-format msgid "Find Results (%s)" msgstr "מצא תוצאות (%s)" #: lib/Padre/Wx/Dialog/Replace.pm:226 msgid "Find Text:" msgstr "חפש טקסט:" #: lib/Padre/Wx/ActionLibrary.pm:1667 msgid "Find Unmatched Brace" msgstr "מצא סוגר ללא תואם" #: lib/Padre/Wx/ActionLibrary.pm:1679 msgid "Find Variable Declaration" msgstr "מצא הצהרת המשתנה" #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find a text and replace it" msgstr "(חיפוש והחלפת טקסט " #: lib/Padre/Wx/Dialog/Replace.pm:50 msgid "Find and Replace" msgstr "חפש והחלף" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Find in Fi&les..." msgstr "חפש בתוך קבצים" #: lib/Padre/Wx/FindInFiles.pm:320 #: lib/Padre/Wx/FBP/FindInFiles.pm:27 msgid "Find in Files" msgstr "חפש בתוך קבצים" #: lib/Padre/Wx/ActionLibrary.pm:1215 msgid "Find next matching text using a toolbar-like dialog at the bottom of the editor" msgstr "מצא את תוצאת החיפוש הבאה באמצעות תיבת שיח דמוית סרגל בתחתית העורך" #: lib/Padre/Wx/ActionLibrary.pm:1226 msgid "Find previous matching text using a toolbar-like dialog at the bottom of the editor" msgstr "מצא את תוצאת החיפוש הקודמת באמצעות תיבת שיח דמוית סרגל בתחתית העורך" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Find text or regular expressions using a traditional dialog" msgstr "מצא טקסט או ביטויים רגולריים באמצעות תיבת שיח רגילה" #: lib/Padre/Wx/ActionLibrary.pm:1692 msgid "Find where the selected function was defined and put the focus there." msgstr "מצא את המקום שבו הוגדרה הפונקציה הנבחרת והעבר לשם את המיקוד" #: lib/Padre/Wx/ActionLibrary.pm:1680 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "מצא את המקום שבו המשתנה הנבחר הוגדר באמצעות \"my\" והעבר לשם את המיקוד" #: lib/Padre/Wx/Dialog/Search.pm:135 msgid "Find:" msgstr "חפש:" #: lib/Padre/Document/Perl.pm:956 msgid "First character of selection does not seem to point at a token." msgstr "לא נראה שהתו הראשון בבחירה מצביע על token." #: lib/Padre/Wx/Editor.pm:1628 msgid "First character of selection must be a non-word character to align" msgstr "התו הראשון בבחירה צריך להיות תו לא של מילים כדי ליישר" #: lib/Padre/Wx/ActionLibrary.pm:1442 msgid "Fold all" msgstr "לקפל הכול" #: lib/Padre/Wx/ActionLibrary.pm:1443 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "קפל את כל הבלוקים שניתן לקבל (בתנאי שקיפול מאופשר)" #: lib/Padre/Wx/Menu/View.pm:174 msgid "Font Size" msgstr "גודל גופן" #: lib/Padre/Wx/ActionLibrary.pm:420 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "עבור מסמך חדש נסה לנחש את שם הקובץ לפי התוכן והצע לשמור אותו" #: lib/Padre/Wx/Syntax.pm:405 #, perl-format msgid "Found %d issue(s)" msgstr "נמצאו %d מופע(ים)" #: lib/Padre/Wx/Syntax.pm:404 #, perl-format msgid "Found %d issue(s) in %s" msgstr "נמצאו %d מופע(ים) ב- %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "נמצאו %s נושא(ים) בעזרה\n" #: lib/Padre/Plugin/Devel.pm:311 #, perl-format msgid "Found %s unloaded modules" msgstr "נמצאו %s מודולים שלא הועלו" #: lib/Padre/Locale.pm:282 msgid "French" msgstr "צרפתית" #: lib/Padre/Locale.pm:268 msgid "French (Canada)" msgstr "צרפתית (קנדה)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "חבר" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "פונקציה" #: lib/Padre/Wx/FunctionList.pm:234 msgid "Functions" msgstr " פונקציות" #: lib/Padre/Wx/Dialog/ModuleStart.pm:20 #: lib/Padre/Wx/Dialog/ModuleStart.pm:40 msgid "GPL 2 or later" msgstr "GPL 2 או מאוחר יותר" #: lib/Padre/Locale.pm:186 msgid "German" msgstr "גרמנית" #: lib/Padre/Wx/Dialog/RegexEditor.pm:425 msgid "Global (&g)" msgstr "גלובלי (&g)" #: lib/Padre/Wx/ActionLibrary.pm:1584 #: lib/Padre/Wx/Dialog/Bookmarks.pm:57 msgid "Go to Bookmark" msgstr "לך לסימנייה" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Go to Command Line Window" msgstr "עבור לחלון שורת הפקודה\t" #: lib/Padre/Wx/ActionLibrary.pm:2494 msgid "Go to Functions Window" msgstr "עבור לחלון הפונקציות\tAlt-O" #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Go to Main Window" msgstr "עבור לחלון הראשי\tAlt-M" #: lib/Padre/Wx/ActionLibrary.pm:2520 msgid "Go to Outline Window" msgstr "עבור לחלון Outline" #: lib/Padre/Wx/ActionLibrary.pm:2531 msgid "Go to Output Window" msgstr "עבור לחלון הפלט\tAlt-O" #: lib/Padre/Wx/ActionLibrary.pm:2542 msgid "Go to Syntax Check Window" msgstr "עבור לחלון בדיקת תחביר\tAlt-C" #: lib/Padre/Wx/ActionLibrary.pm:2508 msgid "Go to Todo Window" msgstr "לך לחלון Todo" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Goto" msgstr "לך אל" #: lib/Padre/Wx/ActionLibrary.pm:2453 msgid "Goto previous position" msgstr "לך אל המיקום הקודם" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "Grouping constructs" msgstr "מבני קיבוץ לקבוצות (Grouping constructs)" #: lib/Padre/Wx/Dialog/Preferences.pm:274 msgid "Guess" msgstr "נחש" #: lib/Padre/Wx/Dialog/Preferences.pm:273 msgid "Guess from current document:" msgstr "נחש על סמך המסמך הנוכחי:" #: lib/Padre/Locale.pm:292 msgid "Hebrew" msgstr "עברית" #: lib/Padre/Wx/ActionLibrary.pm:2578 #: lib/Padre/Wx/Browser.pm:64 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:398 msgid "Help" msgstr "עזרה" #: lib/Padre/Wx/Dialog/HelpSearch.pm:39 #: lib/Padre/Wx/Dialog/HelpSearch.pm:96 msgid "Help Search" msgstr "חפש בעזרה" #: lib/Padre/Wx/ActionLibrary.pm:2691 msgid "Help by translating Padre to your local language" msgstr "עזור על ידי תירגום Padre לשפה המקומית שלך" #: lib/Padre/Wx/Browser.pm:444 msgid "Help not found." msgstr "לא נמצאה עזרה." #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "ספרות הקסדצימליות" #: lib/Padre/Wx/ActionLibrary.pm:1374 msgid "Hide Find in Files" msgstr "הסתר חיפוש בתוך קבצים" #: lib/Padre/Wx/ActionLibrary.pm:1375 msgid "Hide the list of matches for a Find in Files search" msgstr "הסתר את רשימת ההתאמות עבור חיפוש \"מצא בתוך קובץ\"" #: lib/Padre/Wx/ActionLibrary.pm:1477 msgid "Highlight the line where the cursor is" msgstr "צבע את השורה שבה נמצא הסמן" #: lib/Padre/Wx/Dialog/Preferences.pm:162 msgid "Highlighter:" msgstr "כלי צביעת קוד:" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Home" msgstr "מקש Home" #: lib/Padre/MimeTypes.pm:389 msgid "Hopefully faster than the PPI Traditional. Big file will fall back to Scintilla highlighter." msgstr "בתקווה מהיר יותר מ-PPI מסורתי. קובץ גדול יעבוד כמו ב-Scintilla" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "Host" msgstr "מארח (שרת)" #: lib/Padre/Wx/Main.pm:5893 msgid "How many spaces for each tab:" msgstr "כמה רווחים לכל טאב" #: lib/Padre/Locale.pm:302 msgid "Hungarian" msgstr "הונגרית" #: lib/Padre/Wx/ActionLibrary.pm:1293 msgid "If activated, do not allow moving around some of the windows" msgstr "אם מופעל, אל תאפשר למשתמש להזיז חלק מהחלונות" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "If within a subroutine, run till return is called and then stop." msgstr "אם בתוך תת-שגרה (subroutine), הרץ עד ש- return נקרא ואז עצור." #: lib/Padre/Wx/Dialog/RegexEditor.pm:408 msgid "Ignore case (&i)" msgstr "התעלם ממצב רישיות " #: lib/Padre/Wx/ActionLibrary.pm:2481 msgid "Imitate clicking on the right mouse button" msgstr "סמה לחיצה על הכפתור הימני של העכבר" #: lib/Padre/Wx/ActionLibrary.pm:1540 msgid "Increase Font Size" msgstr "הגדל גופן" #: lib/Padre/Config.pm:741 msgid "Indent Deeply" msgstr "הזחה עמוקה" #: lib/Padre/Config.pm:740 msgid "Indent to Same Depth" msgstr "הזחה לאותה רמה" #: lib/Padre/Wx/Dialog/Preferences.pm:876 msgid "Indentation" msgstr " הזחה" #: lib/Padre/Wx/Dialog/Preferences.pm:270 msgid "Indentation width (in columns):" msgstr "רוחב ההזחה (בעמודות)" #: lib/Padre/Wx/Dialog/Preferences.pm:446 msgid "Indication if current file was modified" msgstr "אינדיקציה אם הקובץ הנוכחי השתנה" #: lib/Padre/Wx/Menu/Edit.pm:121 #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 #: lib/Padre/Wx/Dialog/RegexEditor.pm:233 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Insert" msgstr "הכנס" #: lib/Padre/Wx/Dialog/SpecialValues.pm:63 msgid "Insert Special Values" msgstr "הכנס ערכים מיוחדים" #: lib/Padre/Wx/ActionLibrary.pm:2351 msgid "Install CPAN Module" msgstr "להתקין מודול CPAN" #: lib/Padre/CPAN.pm:133 #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "Install Local Distribution" msgstr "להתקין הפצה מקומית" #: lib/Padre/Wx/ActionLibrary.pm:2374 msgid "Install Remote Distribution" msgstr "להתקין הפצה מרוחקת" #: lib/Padre/Wx/ActionLibrary.pm:2352 msgid "Install a Perl module from CPAN" msgstr "התקן מודול Perl מ-CPAN" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "מספר (Integer)" #: lib/Padre/Wx/Syntax.pm:55 msgid "Internal Error" msgstr "שגיאה פנימית" #: lib/Padre/Wx/Main.pm:5666 msgid "Internal error" msgstr "תקלה פנימית" #: lib/Padre/Wx/Dialog/Preferences.pm:739 #: lib/Padre/Wx/Dialog/Preferences.pm:789 msgid "Interpreter arguments:" msgstr "ארגומנטים למפרש" #: lib/Padre/Wx/ActionLibrary.pm:1849 msgid "Introduce Temporary Variable" msgstr "ליצור משתנה זמני" #: lib/Padre/Wx/ActionLibrary.pm:1840 msgid "Introduce Temporary Variable..." msgstr "ליצור משתנה זמני..." #: lib/Padre/Locale.pm:316 msgid "Italian" msgstr "איטלקית" #: lib/Padre/Locale.pm:326 msgid "Japanese" msgstr "יפנית" #: lib/Padre/Wx/Main.pm:3911 msgid "JavaScript Files" msgstr "קובצי JavaScript" #: lib/Padre/Wx/ActionLibrary.pm:854 msgid "Join the next line to the end of the current line." msgstr "צרף את השורה הבאה לסוף השורה הנוכחית" #: lib/Padre/Wx/ActionLibrary.pm:2443 msgid "Jump between the two last visited files back and forth" msgstr "דלג בין שני הקבצים האחרונים שנצפו אחורה וקדימה" #: lib/Padre/Wx/ActionLibrary.pm:2055 msgid "Jump to Current Execution Line" msgstr "דלג אל שורת הביצוע הנוכחית" #: lib/Padre/Wx/ActionLibrary.pm:743 msgid "Jump to a specific line number or character position" msgstr "דלג אל שורה מספר, או מיקום תו" #: lib/Padre/Wx/ActionLibrary.pm:754 msgid "Jump to the code that triggered the next error" msgstr "גש אל הקוד שגרם לשגיאה הבאה" #: lib/Padre/Wx/ActionLibrary.pm:2454 msgid "Jump to the last position saved in memory" msgstr "דלג אל המיקום האחרון השמור בזכרון" #: lib/Padre/Wx/ActionLibrary.pm:831 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "גש אל הסוגר הפותח או הסוגר התאום { },( ), [ ], < >" #: lib/Padre/Wx/ActionLibrary.pm:2228 #: lib/Padre/Wx/Dialog/KeyBindings.pm:29 msgid "Key Bindings" msgstr "מיפוי מקשים " #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "קיביבייטים (kiB)" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "קילובייטים (kB)" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "קלינגונית" #: lib/Padre/Locale.pm:336 msgid "Korean" msgstr "קוריאנית" #: lib/Padre/Wx/Dialog/ModuleStart.pm:21 #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "LGPL 2.1 or later" msgstr "GPL 2.1 או מאוחר יותר" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "תווית ראשונה" #: lib/Padre/Wx/Menu/View.pm:245 msgid "Language" msgstr "שפה" #: lib/Padre/Wx/ActionLibrary.pm:2396 #: lib/Padre/Wx/ActionLibrary.pm:2442 msgid "Last Visited File" msgstr "הקובץ שבוקר לאחרונה\tCtrl-6" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "עדכון אחרון" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Left" msgstr "מקש Left" #: lib/Padre/Wx/Dialog/ModuleStart.pm:67 msgid "License:" msgstr "רישיון:" #: lib/Padre/Wx/ActionLibrary.pm:1718 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "כמו לחיצת ENTER היכן שהוא בשורה, אבל משתמש במיקום הנוכחי כהזחה עבור השורה החדשה. " #: lib/Padre/Wx/FindResult.pm:177 msgid "Line" msgstr "שורה:" #: lib/Padre/Wx/Syntax.pm:426 #, perl-format msgid "Line %d: (%s) %s" msgstr "שורה %d: (%s) %s" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "מצב שבירת שורות" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:232 #: lib/Padre/Wx/Dialog/Goto.pm:251 msgid "Line number" msgstr "מספר שורה" #: lib/Padre/Wx/Dialog/DocStats.pm:98 msgid "Lines" msgstr "שורות" #: lib/Padre/Wx/ActionLibrary.pm:2101 msgid "List All Breakpoints" msgstr "רשום את כל ה- breakpoints" #: lib/Padre/Wx/ActionLibrary.pm:2102 msgid "List all the breakpoints on the console" msgstr "רשום את כל ה- breakpoints בקונסול" #: lib/Padre/Wx/Dialog/WindowList.pm:211 msgid "List of open files" msgstr "רשימת קבצים פתוחים" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "רשימת סביבות עבודה" #: lib/Padre/Wx/ActionLibrary.pm:444 msgid "List the files that match the current selection and let the user pick one to open" msgstr "הצג רשימה של הקבצים המתאימים לבחירה הנוכחית, והרששה למשתמש לבחור אחד" #: lib/Padre/Wx/Menu/Help.pm:60 msgid "Live Support" msgstr "תמיכה חיה" #: lib/Padre/Plugin/Devel.pm:83 msgid "Load All Padre Modules" msgstr "טען את כל המודולים של Padre" #: lib/Padre/Plugin/Devel.pm:323 #, perl-format msgid "Loaded %s modules" msgstr "טען את המודולים %s" #: lib/Padre/Wx/Dialog/Preferences.pm:18 msgid "Local/Remote File Access" msgstr "גישה לקובץ מקומי/מרוחק" #: lib/Padre/Wx/ActionLibrary.pm:1292 msgid "Lock User Interface" msgstr "נעילת ממשק משתמש" #: lib/Padre/Wx/FBP/Sync.pm:54 msgid "Logged out" msgstr "מנותק" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "מתחבר לשרת FTP כ- %s ..." #: lib/Padre/Wx/FBP/Sync.pm:97 msgid "Login" msgstr "התחברות (Login):" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "מחפש את Net::FTP..." #: lib/Padre/Wx/ActionLibrary.pm:1058 msgid "Lower All" msgstr "הפוף הכול לאותיות קטנות\tCtrl-U" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "אותיות קטנות" #: lib/Padre/Wx/Dialog/ModuleStart.pm:22 #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "MIT License" msgstr "רישיון MIT" #: lib/Padre/Wx/ActionLibrary.pm:1541 msgid "Make the letters bigger in the editor window" msgstr "הגדל את האותיות בחלון העריכה" #: lib/Padre/Wx/ActionLibrary.pm:1551 msgid "Make the letters smaller in the editor window" msgstr "הקטן את האותיות בחלון העריכה" #: lib/Padre/Wx/ActionLibrary.pm:613 msgid "Mark Selection End" msgstr "סמן סוף בחירה\tCtrl+]" #: lib/Padre/Wx/ActionLibrary.pm:601 msgid "Mark Selection Start" msgstr "סמן תחילת בחירה\tCtrl-[" #: lib/Padre/Wx/ActionLibrary.pm:614 msgid "Mark the place where the selection should end" msgstr "סמן את המקום שבו הטקסט הנבחר צריך להסתיים" #: lib/Padre/Wx/ActionLibrary.pm:602 msgid "Mark the place where the selection should start" msgstr "סמן את המקום שבו הטקסט הנבחר צריך להתחיל" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "חפש 0 פעמים או יותר" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "חפש 1 או 0 פעמים " #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "חפש 1 פעמים או יותר" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "חפש לפחות m פעמים, אך לא יותר מ- n פעמים" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "חפש לפחות n פעמים" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "חפש בדיוק m פעמים" #: lib/Padre/Wx/Dialog/RegexEditor.pm:617 #, perl-format msgid "Match failure in %s: %s" msgstr "נכשלה התאמה ב- %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:624 #, perl-format msgid "Match warning in %s: %s" msgstr "אזהרת התאמה ב %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:218 msgid "Matched text:" msgstr "טקסט תואם:" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:57 msgid "Max. number of suggestions:" msgstr "מספר הצעות מירבי" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "מסר" #: lib/Padre/Wx/Outline.pm:359 msgid "Methods" msgstr "מתודות" #: lib/Padre/Wx/Dialog/Preferences.pm:339 msgid "Methods order:" msgstr "סדר מתודות:" #: lib/Padre/MimeTypes.pm:425 #, perl-format msgid "Mime type already had a class '%s' when %s(%s) was called" msgstr "כבר הייתה קיימת מחלקה '%s' עבור Mime type בזמן קריאה ל- %s(%s) " #: lib/Padre/MimeTypes.pm:451 #, perl-format msgid "Mime type did not have a class entry when %s(%s) was called" msgstr "לא נמצא פריט מחלקה עבור Mime type בזמן קריאה ל- %s(%s) " #: lib/Padre/MimeTypes.pm:441 #: lib/Padre/MimeTypes.pm:467 #, perl-format msgid "Mime type is not supported when %s(%s) was called" msgstr "Mime type לא נתמך בזמן קריאה ל- %s(%s) " #: lib/Padre/MimeTypes.pm:415 #, perl-format msgid "Mime type was not supported when %s(%s) was called" msgstr "טיפוס MIME זה לא נתמך כש - %s(%s) נקרא." #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:60 msgid "Min. chars for autocompletion:" msgstr "מספר תווים מזערי להשלמות אוטומטיות" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:52 msgid "Min. length of suggestions:" msgstr "אורך מזערי של הצעות" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 msgid "Miscellaneous" msgstr "שונות (Misc)" #: lib/Padre/Wx/WizardLibrary.pm:20 msgid "Module" msgstr "מודול" #: lib/Padre/Wx/Dialog/ModuleStart.pm:55 msgid "Module Name:" msgstr "שם מודול:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:97 msgid "Module Start" msgstr "תחילת מודול" #: lib/Padre/Wx/Menu/Tools.pm:65 msgid "Module Tools" msgstr "כלי מודול" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "שם מודול:" #: lib/Padre/Wx/Outline.pm:358 msgid "Modules" msgstr "מודולים" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Move POD to __END__" msgstr "העבר POD ל- __END__" #: lib/Padre/Wx/Directory.pm:114 msgid "Move to other panel" msgstr "העבר לחלון אחר" #: lib/Padre/Wx/Dialog/ModuleStart.pm:23 #: lib/Padre/Wx/Dialog/ModuleStart.pm:43 msgid "Mozilla Public License" msgstr "הרשיון הציבורי של מוזילה" #: lib/Padre/Wx/Dialog/RegexEditor.pm:416 msgid "Multi-line (&m)" msgstr "שורות מרובות" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "התוסף My Plug-in הוא תוסף שיכול לשמש מפתחים להרחבת Padre המותקן אצלם" #: lib/Padre/Wx/Dialog/Preferences.pm:759 msgid "N/A" msgstr "לא זמין" #: lib/Padre/Wx/Browser.pm:465 msgid "NAME" msgstr "שם" #: lib/Padre/Wx/Dialog/PluginManager.pm:66 #: lib/Padre/Wx/Dialog/SpecialValues.pm:25 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "שם" #: lib/Padre/Wx/ActionLibrary.pm:1825 msgid "Name for the new subroutine" msgstr " שם לשגרה החדשה" #: lib/Padre/Wx/Dialog/Preferences.pm:447 msgid "Name of the current subroutine" msgstr " שם השגרה הנוכחית" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "שם:" #: lib/Padre/Wx/Main.pm:6401 msgid "Need to select text in order to translate to hex" msgstr "צריך לבחור טקסט כדי לתרגם להקסדצימלי" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "" #: lib/Padre/Wx/Menu/File.pm:43 msgid "New" msgstr "חדש" #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "מודול חדש" #: lib/Padre/Document/Perl.pm:829 msgid "New name" msgstr "שם חדש" #: lib/Padre/PluginManager.pm:412 msgid "New plug-ins detected" msgstr "זוהו תוספים חדשים" #: lib/Padre/Wx/ActionLibrary.pm:1716 msgid "Newline Same Column" msgstr "שורה חדשה - אותה העמודה" #: lib/Padre/Wx/ActionLibrary.pm:2418 msgid "Next File" msgstr "קובץ חדש" #: lib/Padre/Config/Style.pm:36 msgid "Night" msgstr "לילה" #: lib/Padre/Config.pm:739 msgid "No Autoindent" msgstr " ללא הזחה אוטומטית" #: lib/Padre/Wx/Main.pm:2477 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "לא נמצאו Build.PL או Makefile.PL או dist.ini" #: lib/Padre/Wx/Dialog/Preferences.pm:778 msgid "No Document" msgstr "אין מסמך " #: lib/Padre/Wx/Dialog/HelpSearch.pm:93 msgid "No Help found" msgstr "לא נמצאה עזרה" #: lib/Padre/Plugin/Devel.pm:170 msgid "No Perl 5 file is open" msgstr "אין קובץ Perl 5 פתוח" #: lib/Padre/Document/Perl.pm:577 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "לא מצאתי הצהרה למשתנה (הלקסיקלי?) שבוקש" #: lib/Padre/Document/Perl.pm:909 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "לא נמצאה הצהרה למשתנה (הלקסיקלי?) שבוקש" #: lib/Padre/Wx/Main.pm:2444 #: lib/Padre/Wx/Main.pm:2499 #: lib/Padre/Wx/Main.pm:2551 msgid "No document open" msgstr "אין מסמך פתוח" #: lib/Padre/Document/Perl.pm:432 msgid "No errors found." msgstr "לא נמצאו שגיאות." #: lib/Padre/Wx/Syntax.pm:392 #, perl-format msgid "No errors or warnings found in %s." msgstr "לא נמצאו שגיאות או התראות ב-%s." #: lib/Padre/Wx/Syntax.pm:395 msgid "No errors or warnings found." msgstr "לא נמצאו שגיאות או התראות." #: lib/Padre/Wx/Main.pm:2772 msgid "No execution mode was defined for this document type" msgstr " לא הוגדר למסמך זה מצב ביצוע" #: lib/Padre/Wx/Main.pm:5859 #: lib/Padre/Plugin/Devel.pm:149 msgid "No file is open" msgstr "אין קובץ פתוח" #: lib/Padre/PluginManager.pm:979 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "אין שם קובץ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:645 msgid "No match" msgstr "לא נמצאו התאמות" #: lib/Padre/Wx/Dialog/Find.pm:75 #: lib/Padre/Wx/Dialog/Replace.pm:537 #: lib/Padre/Wx/Dialog/Replace.pm:586 #, perl-format msgid "No matches found for \"%s\"." msgstr "לא נמצאו התאמות עבור \"%s\"." #: lib/Padre/Document.pm:325 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "אין מודול mime_type='%s' filename='%s'" #: lib/Padre/Wx/Main.pm:2754 msgid "No open document" msgstr "אין מסמך פתוח" #: lib/Padre/Config.pm:413 msgid "No open files" msgstr "אין קבצים פתוחים:" #: lib/Padre/Wx/FindInFiles.pm:223 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "לא נמצאו תוצאות עבור '%s' בתוך '%s'" #: lib/Padre/Wx/Main.pm:770 #, perl-format msgid "No such session %s" msgstr "לא נמצאה סביבת העבודה %s" #: lib/Padre/Wx/ActionLibrary.pm:790 msgid "No suggestions" msgstr "אין הצעות" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "תוים שאינם רווח" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "None" msgstr "אין" #: lib/Padre/Locale.pm:370 msgid "Norwegian" msgstr "נורווגית" #: lib/Padre/Wx/Debugger.pm:82 msgid "Not a Perl document" msgstr "לא מסמך Perl" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number!" msgstr "לא מספר חיובי! " #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "לא גבולות מלה" #: lib/Padre/Config/Style.pm:38 msgid "Notepad++" msgstr "Notepad++" #: lib/Padre/Wx/Main.pm:3747 msgid "Nothing selected. Enter what should be opened:" msgstr "לא נבחר דבר. הכנס מה שצריך להיפתח" #: lib/Padre/Wx/Dialog/SpecialValues.pm:16 msgid "Now" msgstr "עכשיו" #: lib/Padre/Wx/Dialog/SpecialValues.pm:30 msgid "Number of lines" msgstr "מספר שורות" #: lib/Padre/Wx/FBP/WhereFrom.pm:54 msgid "OK" msgstr "אישור" #: lib/Padre/Wx/ActionLibrary.pm:820 msgid "Offer completions to the current string. See Preferences" msgstr "הצע השלמות למחרוזת הנוכחית. עיין בהעדפות" #: lib/Padre/Wx/ActionLibrary.pm:2407 msgid "Oldest Visited File" msgstr "הקובץ שבוקר לאחרונה\tCtrl-6" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "רק פרגמנטאחד של POD, לא מנסה לאחד" #: lib/Padre/Wx/Outline.pm:235 msgid "Open &Documentation" msgstr "פתח תיעוד" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open &URL..." msgstr " פתח URL" #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "Open All Recent Files" msgstr "פתח את כל הקבצים האחרונים" #: lib/Padre/Wx/ActionLibrary.pm:2384 msgid "Open CPAN Config File" msgstr "פתח את קובץ ההגדרות של CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2385 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "פתח את CPAN::MyConfig.pm לעריכה ידנית על ידי מומחים" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open Example" msgstr "פתח דוגמה" #: lib/Padre/Wx/Main.pm:3935 #: lib/Padre/Wx/Directory/TreeCtrl.pm:210 msgid "Open File" msgstr "פתח קובץ" #: lib/Padre/Wx/Dialog/OpenResource.pm:30 #: lib/Padre/Wx/Dialog/OpenResource.pm:76 msgid "Open Resources" msgstr "פתח משאבים" #: lib/Padre/Wx/ActionLibrary.pm:1265 msgid "Open Resources..." msgstr "משאבים פתוחים ..." #: lib/Padre/Wx/ActionLibrary.pm:443 msgid "Open Selection" msgstr "פתח את הפריט שסומן" #: lib/Padre/Wx/ActionLibrary.pm:453 msgid "Open Session..." msgstr "פתח סביבת עבודה ..." #: lib/Padre/Wx/Dialog/ModuleStart.pm:24 #: lib/Padre/Wx/Dialog/ModuleStart.pm:44 msgid "Open Source" msgstr "קוד פתוח" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "פתח URL" #: lib/Padre/Wx/Main.pm:3975 #: lib/Padre/Wx/Main.pm:3995 msgid "Open Warning" msgstr "אזהרת פתיחה" #: lib/Padre/Wx/ActionLibrary.pm:151 msgid "Open a document with a skeleton Perl 5 module" msgstr "פתח מסמך עם שלד מודול Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:142 msgid "Open a document with a skeleton Perl 5 script" msgstr "פתח מסמך עם דלש סקריפט ב- Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 test script" msgstr "פתח מסמך עם שלד סקריפט בדיקה Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:171 msgid "Open a document with a skeleton Perl 6 script" msgstr "פתח מסמך עם שלד סקריפט Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Open a file from a remote location" msgstr "פתח קובץ ממיקום מרוחק" #: lib/Padre/Wx/ActionLibrary.pm:131 msgid "Open a new empty document" msgstr "פתח מסמך ריק חדש" #: lib/Padre/Wx/ActionLibrary.pm:501 msgid "Open all the files listed in the recent files list" msgstr "פתח את כל הקבצים הרשומים ברשימת הקבצים האחרונים" #: lib/Padre/Wx/ActionLibrary.pm:2277 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "פתח את הדפדפן לחיפוש CPAN כשהוא מציג את חבילות Padre::Plugin" #: lib/Padre/Wx/Menu/File.pm:391 msgid "Open cancelled" msgstr "הפתיחה בוטלה" #: lib/Padre/PluginManager.pm:1054 #: lib/Padre/Wx/Main.pm:5546 msgid "Open file" msgstr "פתח קובץ" #: lib/Padre/Wx/Dialog/Preferences.pm:335 msgid "Open files in existing Padre" msgstr "פתח קבצים ב-Padre קיים" #: lib/Padre/Wx/Dialog/Preferences.pm:326 msgid "Open files:" msgstr "קבצים פתוחים:" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Open in Command Line" msgstr "פתח בשורת הפקודה" #: lib/Padre/Wx/ActionLibrary.pm:228 #: lib/Padre/Wx/Directory/TreeCtrl.pm:218 msgid "Open in File Browser" msgstr "פתח קובץ בסייר הקבצים" #: lib/Padre/Wx/ActionLibrary.pm:2663 msgid "Open perlmonks.org, one of the biggest Perl community sites, in your default web browser" msgstr "פתח את אתר perlmonks.org, אחד מאתרי הקהילה הגדולים ביותר של Perl בדפדפן ברירת המחדל שלך" #: lib/Padre/Wx/Main.pm:3748 msgid "Open selection" msgstr "פתח את הפריט שסומן" #: lib/Padre/Config.pm:414 msgid "Open session" msgstr "פתח סביבת עבודה" #: lib/Padre/Wx/ActionLibrary.pm:2625 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "פתח את התמיכה החיה של Padre בדפדפן ברירת המחדל שלך ושוחח עם משתמשים אחרים שעשויים לסייע לך בפתרון הבעיה" #: lib/Padre/Wx/ActionLibrary.pm:2637 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "פתח את התמיכה החיה של Perl בדפדפן ברירת המחדל שלך ושוחח עם משתמשים אחרים שעשויים לסייע לך בפתרון הבעיה" #: lib/Padre/Wx/ActionLibrary.pm:2649 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "פתח את התמיכה החיה של Perl/Win32 בדפדפן ברירת המחדל שלך ושוחח עם משתמשים אחרים שעשויים לסייע לך בפתרון הבעיה" #: lib/Padre/Wx/ActionLibrary.pm:2238 msgid "Open the regular expression editing window" msgstr "פתח את חלון עריכת הביטויים הרגולריים" #: lib/Padre/Wx/ActionLibrary.pm:2248 msgid "Open the selected text in the Regex Editor" msgstr "פתח את הטקסט הנבחר בעורך ביטוים רגולריים" #: lib/Padre/Wx/ActionLibrary.pm:238 msgid "Open with Default System Editor" msgstr "פתח עם עורך ברירת המחדל של המערכת" #: lib/Padre/Wx/Menu/File.pm:95 msgid "Open..." msgstr "פתח...\tCtrl-O" #: lib/Padre/Wx/Main.pm:2883 #, perl-format msgid "Opening session %s..." msgstr "פותח סביבת עבודה %s..." #: lib/Padre/Wx/ActionLibrary.pm:253 msgid "Opens a command line using the current document folder" msgstr "פןתח שורת פקודה, התיקיה של הקובץ הנוכחי" #: lib/Padre/Wx/WizardLibrary.pm:38 msgid "Opens the Padre document wizard" msgstr "פתח את אשף המסמכים של Padre" #: lib/Padre/Wx/WizardLibrary.pm:30 msgid "Opens the Padre plugin wizard" msgstr "פוח את אשף התוספים של Padre" #: lib/Padre/Wx/WizardLibrary.pm:22 msgid "Opens the Perl 5 module wizard" msgstr "פותח את אשף המודולים של Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:229 msgid "Opens the current document using the file browser" msgstr "פותח את המסמך הנוכחי בעזרת סייר הקבצים" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Opens the file with the default system editor" msgstr "פותח את הקובץ עם עורך ברירת המחדל" #: lib/Padre/Wx/Dialog/Replace.pm:304 msgid "Options" msgstr "אפשרויות" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "אפשרויות:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:74 msgid "Or&iginal text:" msgstr "טקסט מקורי: " #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "אחר (נא למלא כאן)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "אירוע אחר" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "מנוע חיפוש אחר" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range!" msgstr "מחוץ לטווח!" #: lib/Padre/Wx/Outline.pm:110 #: lib/Padre/Wx/Outline.pm:312 msgid "Outline" msgstr "קווים כלליים" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "פלט" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "תצוגת פלט" #: lib/Padre/Wx/Dialog/KeyBindings.pm:392 msgid "Override Shortcut" msgstr "עקוף קיצור דרך" #: lib/Padre/Wx/Main.pm:3915 msgid "PHP Files" msgstr "קבצים PHP" #: lib/Padre/MimeTypes.pm:383 msgid "PPI Experimental" msgstr "PPI ניסיוני" #: lib/Padre/MimeTypes.pm:388 msgid "PPI Standard" msgstr "תקן PPI" #: lib/Padre/Wx/About.pm:59 #: lib/Padre/Wx/WizardLibrary.pm:29 #: lib/Padre/Wx/WizardLibrary.pm:37 #: lib/Padre/Wx/Dialog/Form.pm:98 #: lib/Padre/Config/Style.pm:34 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "מפתח Padre" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "כלי פיתוח Padre" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:16 msgid "Padre Document Wizard" msgstr "אשף הקובץ של Padre" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:16 msgid "Padre Plugin Wizard" msgstr "אשף התוספים של Padre" #: lib/Padre/Wx/ActionLibrary.pm:2623 msgid "Padre Support (English)" msgstr "תמיכה ב־Padre (אנגלית)" #: lib/Padre/Wx/FBP/Sync.pm:25 #: lib/Padre/Wx/Dialog/Sync.pm:43 msgid "Padre Sync" msgstr " סינכרון Padre" #: lib/Padre/Wx/About.pm:105 msgid "Padre is free software; you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "Padre היא תוכנה חופשית; מותר לשנות אותה ו/או להפיץ מחדש תחת אותם תנאים של Perl 5" #: lib/Padre/Wx/Dialog/Preferences.pm:438 msgid "Padre version" msgstr "גירסת Padre" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageDown" msgstr "מקש PageDown" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageUp" msgstr "מקש PageUp" #: lib/Padre/Wx/Dialog/ModuleStart.pm:70 msgid "Parent Directory:" msgstr "תיקיית אב:" #: lib/Padre/Wx/FBP/Sync.pm:82 #: lib/Padre/Wx/FBP/Sync.pm:125 msgid "Password" msgstr "סיסמא" #: lib/Padre/Wx/Dialog/Sync2.pm:142 #: lib/Padre/Wx/Dialog/Sync.pm:527 msgid "Password and confirmation do not match." msgstr "\"סיסמא\" ו- \"אישור\" אינם תואמים" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "סיסמא למשתמש %s ב- %s : " #: lib/Padre/Wx/ActionLibrary.pm:729 msgid "Paste the clipboard to the current location" msgstr "הדבק את הלוח למיקום הנוכחי" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/WizardLibrary.pm:21 msgid "Perl 5" msgstr "Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Perl 5 Module" msgstr "מודול Perl 5" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:18 msgid "Perl 5 Module Wizard" msgstr "אשף מודול Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:141 msgid "Perl 5 Script" msgstr "תכנית Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 Test" msgstr "בדיקת Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Perl 6 Script" msgstr "תכנית Perl 6" #: lib/Padre/Wx/Dialog/Preferences.pm:19 msgid "Perl Auto Complete" msgstr "השלמה אוטומטית\tCtrl-P" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl Distribution..." msgstr "הפצת Perl ..." #: lib/Padre/Wx/Main.pm:3913 msgid "Perl Files" msgstr "קבצים Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 #, fuzzy msgid "Perl Filter" msgstr "פילטר Perl" #: lib/Padre/Wx/ActionLibrary.pm:2635 msgid "Perl Help" msgstr "עזרה ל-Perl" #: lib/Padre/Wx/Dialog/Preferences.pm:322 msgid "Perl beginner mode" msgstr "מצב מתכנת Perl מתחיל" #: lib/Padre/Wx/Dialog/Preferences.pm:90 msgid "Perl ctags file:" msgstr "קובץ ctags של Perl:" #: lib/Padre/Wx/Dialog/Preferences.pm:736 msgid "Perl interpreter:" msgstr "מפרש Perl:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:25 #: lib/Padre/Wx/Dialog/ModuleStart.pm:45 #: lib/Padre/Wx/Dialog/ModuleStart.pm:113 msgid "Perl licensing terms" msgstr "תנאי הרשוי של Perl" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "פרסית (איראן)" #: lib/Padre/Wx/Dialog/ModuleStart.pm:71 msgid "Pick parent directory" msgstr "בחר תיקיית אב" #: lib/Padre/Wx/Dialog/Sync2.pm:131 #: lib/Padre/Wx/Dialog/Sync.pm:516 msgid "Please ensure all inputs have appropriate values." msgstr "נא לוודא שכל הערכים שהוזנו מתאימים" #: lib/Padre/Wx/Dialog/Sync2.pm:88 #: lib/Padre/Wx/Dialog/Sync.pm:468 msgid "Please input a valid value for both username and password" msgstr "נא להזין ערך חוקי גם עבור שם משתמש וסיסמא" #: lib/Padre/Wx/Progress.pm:76 msgid "Please wait..." msgstr " . נא להמתין..." #: lib/Padre/Wx/ActionLibrary.pm:2276 msgid "Plug-in List (CPAN)" msgstr "רשימת תוספים (CPAN)" #: lib/Padre/Wx/ActionLibrary.pm:2260 #: lib/Padre/Wx/Dialog/PluginManager.pm:35 msgid "Plug-in Manager" msgstr "מנהל התוספים" #: lib/Padre/Wx/Dialog/PluginManager.pm:102 msgid "Plug-in Name" msgstr "שם התוסף" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "Plug-in Tools" msgstr "כלים לתוספים" #: lib/Padre/PluginManager.pm:1074 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "תיקיית השורש של תוסף צריכה להיות %s" #: lib/Padre/Wx/WizardLibrary.pm:28 msgid "Plugin" msgstr "תוסף" #: lib/Padre/PluginManager.pm:867 #, perl-format msgid "Plugin %s" msgstr "תוסף %s" #: lib/Padre/PluginManager.pm:846 #, perl-format msgid "Plugin error on event %s: %s" msgstr "שגיאת תוסף באירוע %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:396 msgid "Plugins" msgstr "תוספים" #: lib/Padre/Locale.pm:380 msgid "Polish" msgstr "פולנית" #: lib/Padre/Plugin/PopularityContest.pm:305 msgid "Popularity Contest Report" msgstr "דו\"ח תחרות פופולריות" #: lib/Padre/Locale.pm:390 msgid "Portuguese (Brazil)" msgstr "פורטוגלית (ברזיל)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "פורטוגלית (פורטוגל)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "סוג עמדה (Position)" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "מספר שלם חיובי" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "" #: lib/Padre/Wx/Outline.pm:357 msgid "Pragmata" msgstr "Pragmata" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "שם העדפה" #: lib/Padre/Wx/ActionLibrary.pm:2209 #: lib/Padre/Wx/Dialog/Preferences.pm:836 msgid "Preferences" msgstr "העדפות" #: lib/Padre/Wx/ActionLibrary.pm:2218 msgid "Preferences Sync" msgstr "סינכרון העדפות" #: lib/Padre/Wx/Dialog/Preferences.pm:342 msgid "Preferred language for error diagnostics:" msgstr "שפה מועדפת לפירוט הודעות שגיאה:" #: lib/Padre/Wx/Dialog/Search.pm:154 msgid "Previ&ous" msgstr "הקודם" #: lib/Padre/Wx/ActionLibrary.pm:2429 msgid "Previous File" msgstr "הקובץ הקודם" #: lib/Padre/Config.pm:411 msgid "Previous open files" msgstr "קבצים שהיו פתוחים" #: lib/Padre/Wx/ActionLibrary.pm:481 msgid "Print the current document" msgstr "הדפס את המסמך הנוכחי המסמך הנוכחי" #: lib/Padre/Wx/Directory.pm:274 #: lib/Padre/Wx/Dialog/WindowList.pm:223 msgid "Project" msgstr "פרויקט" #: lib/Padre/Wx/ActionLibrary.pm:1355 msgid "Project Browser - Was known as the Directory Tree." msgstr "דפדפן פרוייקט - היה ידוע כ- \"עץ תיקייה\"" #: lib/Padre/Wx/Left.pm:52 msgid "Project Tools" msgstr "כלי פרויקט" #: lib/Padre/Config.pm:566 msgid "Project Tools (Left)" msgstr "כלי פרויקט " #: lib/Padre/Wx/Dialog/Preferences.pm:437 msgid "Project name" msgstr "שם פרויקט" #: lib/Padre/Wx/ActionLibrary.pm:1745 #, fuzzy msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "בקש שם חליפי למשתנה והחלף את כל המופעים של המשתנה" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "סימני פיסוק" #: lib/Padre/Wx/ActionLibrary.pm:2408 msgid "Put focus on tab visited the longest time ago." msgstr "העבר את המיקוד ללשונית שבוקרה לפני הכי הרבה זמן" #: lib/Padre/Wx/ActionLibrary.pm:2419 msgid "Put focus on the next tab to the right" msgstr "העבר את המיקוד ללשונית הבאה מצד ימין" #: lib/Padre/Wx/ActionLibrary.pm:2430 msgid "Put focus on the previous tab to the left" msgstr "העבר את המיקוד ללשונית הקודמת משמאל" #: lib/Padre/Wx/ActionLibrary.pm:713 msgid "Put the content of the current document in the clipboard" msgstr "שים את תוכן המסמף הנוכחי בלוח" #: lib/Padre/Wx/ActionLibrary.pm:656 msgid "Put the current selection in the clipboard" msgstr "שים את הבחירה הנוכחית בלוח" #: lib/Padre/Wx/ActionLibrary.pm:672 msgid "Put the full path of the current file in the clipboard" msgstr "שים את המסלול המלא של הקובץ הנוכחי בלוח" #: lib/Padre/Wx/ActionLibrary.pm:700 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "שים את המסלול המלא של התיקיה הנוכחית בלוח" #: lib/Padre/Wx/ActionLibrary.pm:686 msgid "Put the name of the current file in the clipboard" msgstr "שים את שם הקובץ הנכוחי בלוח" #: lib/Padre/Wx/Main.pm:3917 msgid "Python Files" msgstr "קבצי Python" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:40 msgid "Quick Menu Access" msgstr "גישה מהירה לתפריט" #: lib/Padre/Wx/ActionLibrary.pm:1276 msgid "Quick Menu Access..." msgstr "גישה מהירה לתפריט..." #: lib/Padre/Wx/ActionLibrary.pm:1277 msgid "Quick access to all menu functions" msgstr "גישה מהירה לכל פעולות התפריטים" #: lib/Padre/Wx/ActionLibrary.pm:2193 msgid "Quit Debugger (&q)" msgstr "יציאה ממנפה השגיאות (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2194 msgid "Quit the process being debugged" msgstr "צא מהתהליך המדובג כעת" #: lib/Padre/Wx/StatusBar.pm:435 msgid "R/W" msgstr "קריאה/כתיבה (R/W)" #: lib/Padre/Wx/StatusBar.pm:435 msgid "Read Only" msgstr "לקריאה בלבד" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "קורא קובץ משרת ה-FTP..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 msgid "Reading items. Please wait" msgstr "קורא פריטים. נא להמתין" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:352 msgid "Reading items. Please wait..." msgstr "קורא פריטים. נא להמתין..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "בטוח למחוק את הקובץ \"%s\"?" #: lib/Padre/Wx/ActionLibrary.pm:575 msgid "Redo last undo" msgstr "בטל את הביטול האחרון" #: lib/Padre/Wx/Menu/Refactor.pm:94 msgid "Ref&actor" msgstr "Ref&actor (מנקה קוד)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 msgid "Refactor" msgstr "ניקוי קוד (Refactor)" #: lib/Padre/Wx/Directory/TreeCtrl.pm:249 msgid "Refresh" msgstr "רענן " #: lib/Padre/Wx/Dialog/Preferences.pm:394 msgid "RegExp for TODO-panel:" msgstr "ביטוי רגולרי (RegExp) לפאנל TODO:" #: lib/Padre/Wx/ActionLibrary.pm:2237 #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "עורך ביטוי רגולרי" #: lib/Padre/Wx/FBP/Sync.pm:181 msgid "Register" msgstr "הרשם" #: lib/Padre/Wx/FBP/Sync.pm:310 msgid "Registration" msgstr "רישום" #: lib/Padre/Wx/Dialog/Replace.pm:94 msgid "Regular &Expression" msgstr "ביטוי רגולרי" #: lib/Padre/Wx/FBP/FindInFiles.pm:101 #: lib/Padre/Wx/FBP/Find.pm:58 msgid "Regular Expression" msgstr "ביטוי רגולרי" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "התקנה מחדש/התקנה על מחשב אחר" #: lib/Padre/Wx/FindResult.pm:125 msgid "Related editor has been closed" msgstr "יישום עריכה קשור נסגר" #: lib/Padre/Wx/Menu/File.pm:178 msgid "Reload" msgstr "רענן קובץ" #: lib/Padre/Wx/ActionLibrary.pm:369 msgid "Reload All" msgstr "רענן את כל הקבצים" #: lib/Padre/Wx/ActionLibrary.pm:2333 msgid "Reload All Plug-ins" msgstr "טען מחדש את כל התוספים" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "Reload File" msgstr "רענן קובץ" #: lib/Padre/Wx/ActionLibrary.pm:2302 msgid "Reload My Plug-in" msgstr "טען מחדש את התוסף שלי" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload Some..." msgstr "רענן חלק מהקבצים..." #: lib/Padre/Wx/Main.pm:4080 msgid "Reload all files" msgstr "רענן את כל הקבצים" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Reload all files currently open" msgstr "רענן את כל הקבצים הפתוחים" #: lib/Padre/Wx/ActionLibrary.pm:2334 msgid "Reload all plug-ins from disk" msgstr "טען מחדש את כל התוספים מהדיסק" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Reload current file from disk" msgstr "רענן את הקובץ הנוכחי מהדיסק" #: lib/Padre/Wx/Main.pm:4127 msgid "Reload some" msgstr "רענן חלק מהקבצים" #: lib/Padre/Wx/Main.pm:4111 #: lib/Padre/Wx/Main.pm:6060 msgid "Reload some files" msgstr "רענן את כל הקבצים" #: lib/Padre/Wx/ActionLibrary.pm:2343 msgid "Reloads (or initially loads) the current plug-in" msgstr "טוען מחדש, (או טוען לראשונה) את התוסף הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:2086 msgid "Remove Breakpoint" msgstr "הסר Breakpoint" #: lib/Padre/Wx/ActionLibrary.pm:626 msgid "Remove all the selection marks" msgstr "נקה את כל סימוני הבחירה" #: lib/Padre/Wx/ActionLibrary.pm:928 msgid "Remove comment out of selected lines in the document" msgstr "הסר הערה על השורות הנבחרות במסמך" #: lib/Padre/Wx/ActionLibrary.pm:2087 #, fuzzy msgid "Remove the breakpoint at the current location of the cursor" msgstr "שים את תוכן המסמף הנוכחי בלוח" #: lib/Padre/Wx/ActionLibrary.pm:641 msgid "Remove the current selection and put it in the clipboard" msgstr "הסר את הבחירה הנוכחית ושים אותה בלוח" #: lib/Padre/Wx/ActionLibrary.pm:510 msgid "Remove the entries from the recent files list" msgstr "הסר פרטים מרשימת הקבצים האחרונים" #: lib/Padre/Wx/ActionLibrary.pm:1036 msgid "Remove the spaces from the beginning of the selected lines" msgstr "הסר את הרווחים מתחילת השורות הנבחרות" #: lib/Padre/Wx/ActionLibrary.pm:1026 msgid "Remove the spaces from the end of the selected lines" msgstr "הסר את הרווחים מסוף השורות הנבחרות" #: lib/Padre/Wx/ActionLibrary.pm:1744 msgid "Rename Variable" msgstr "החלף משתנה " #: lib/Padre/Document/Perl.pm:820 #: lib/Padre/Document/Perl.pm:830 msgid "Rename variable" msgstr "החלף שם משתנה" #: lib/Padre/Wx/ActionLibrary.pm:1160 msgid "Repeat the last find to find the next match" msgstr "חזור על החיפוש הקודם כדי למצוא את את המקום התואם הבא" #: lib/Padre/Wx/ActionLibrary.pm:1202 msgid "Repeat the last find, but backwards to find the previous match" msgstr "חזור על החיפוש האחרון, אבל אחורה כדי למצוא את התוצאה הקודמת" #: lib/Padre/Wx/Dialog/Replace.pm:250 msgid "Replace" msgstr "החלף" #: lib/Padre/Wx/Dialog/Replace.pm:136 msgid "Replace &All" msgstr "החלף הכול" #: lib/Padre/Document/Perl.pm:915 #: lib/Padre/Document/Perl.pm:964 msgid "Replace Operation Canceled" msgstr "פעולת החלפה בוטלה" #: lib/Padre/Wx/Dialog/Replace.pm:258 msgid "Replace Text:" msgstr "החלף ב:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:426 msgid "Replace all occurrences of the pattern" msgstr "החלף את כל המופעים של התבנית" #: lib/Padre/Wx/Dialog/RegexEditor.pm:656 #, perl-format msgid "Replace failure in %s: %s" msgstr "החלף את הכשלון ב - %s: %s" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "החלף..." #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d match" msgstr "הוחלפו %d התאמות:" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d matches" msgstr "הוחלפו %d התאמות:" #: lib/Padre/Wx/ActionLibrary.pm:2673 msgid "Report a New &Bug" msgstr "לדווח תקלה חדשה" #: lib/Padre/Wx/ActionLibrary.pm:1560 msgid "Reset Font Size" msgstr "חזור לגודל גופן מקורי" #: lib/Padre/Wx/ActionLibrary.pm:2311 #: lib/Padre/Wx/ActionLibrary.pm:2318 msgid "Reset My plug-in" msgstr "אתחל את התוסף השלי" #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "Reset the My plug-in to the default" msgstr "אפס את התוסף My Plugin לברירת המחדל" #: lib/Padre/Wx/ActionLibrary.pm:1561 #, fuzzy msgid "Reset the size of the letters to the default in the editor window" msgstr "החזר את האותיות לגודל ברירת המחדל בחלון העריכה" #: lib/Padre/Wx/Dialog/KeyBindings.pm:134 msgid "Reset to default shortcut" msgstr "איפוס לקיצורי ברירת המחדל" #: lib/Padre/Wx/Main.pm:2912 msgid "Restore focus..." msgstr "החזר מוקד..." #: lib/Padre/Wx/Dialog/ModuleStart.pm:19 #: lib/Padre/Wx/Dialog/ModuleStart.pm:39 msgid "Revised BSD License" msgstr "Revised BSD License" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Right" msgstr "ימינה" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Right Click" msgstr "לחיצה ימנית\tAlt-/" #: lib/Padre/Wx/Main.pm:3919 msgid "Ruby Files" msgstr "קובצי Ruby" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:394 msgid "Run" msgstr "הרץ" #: lib/Padre/Wx/ActionLibrary.pm:1918 msgid "Run Build and Tests" msgstr "בנה והרץ את כל הבדיקות" #: lib/Padre/Wx/ActionLibrary.pm:1907 msgid "Run Command" msgstr "הפעל פקודה" #: lib/Padre/Plugin/Devel.pm:67 msgid "Run Document inside Padre" msgstr "הרץ ב-Padre" #: lib/Padre/Wx/Dialog/Preferences.pm:869 msgid "Run Parameters" msgstr "פרמטרים להרצה" #: lib/Padre/Wx/ActionLibrary.pm:1879 msgid "Run Script" msgstr "הרץ תסריט" #: lib/Padre/Wx/ActionLibrary.pm:1895 msgid "Run Script (Debug Info)" msgstr "הרץ תכנית (עם מידע דיבוג)" #: lib/Padre/Plugin/Devel.pm:68 msgid "Run Selection inside Padre" msgstr "הרץ קוד מסומן ב-Padre" #: lib/Padre/Wx/ActionLibrary.pm:1930 msgid "Run Tests" msgstr "הרץ בדיקות" #: lib/Padre/Wx/ActionLibrary.pm:1949 msgid "Run This Test" msgstr "הרץ בדיקה זו" #: lib/Padre/Wx/ActionLibrary.pm:1932 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "הרץ את כל הבדיקות של הפרויקט או של המסמך הנוכחי והצג את התוצאות בחלון הפלט." #: lib/Padre/Wx/Dialog/PerlFilter.pm:89 msgid "Run filter" msgstr "הרצת פילטר" #: lib/Padre/Wx/Main.pm:2415 msgid "Run setup" msgstr "הגדרות ריצה" #: lib/Padre/Wx/ActionLibrary.pm:1896 msgid "Run the current document but include debug info in the output." msgstr "הרץ את המסמך הנוכחי וכלול את מידע הדיבוג בפלט." #: lib/Padre/Wx/ActionLibrary.pm:1950 msgid "Run the current test if the current document is a test. (prove -bv)" msgstr "הרץ את הבדיקה הנוכחית אם המסמך הנוכחי הוא בדיקה (prove -bv)" #: lib/Padre/Wx/ActionLibrary.pm:2040 msgid "Run till Breakpoint (&c)" msgstr "הרץ עד Breakpoint (&c)" #: lib/Padre/Wx/ActionLibrary.pm:2116 msgid "Run to Cursor" msgstr "הרצה על לסמן" #: lib/Padre/Wx/ActionLibrary.pm:1908 msgid "Runs a shell command and shows the output." msgstr "מריץ פקודת מעטפת ומציג את הפלט." #: lib/Padre/Wx/ActionLibrary.pm:1880 msgid "Runs the current document and shows its output in the output panel." msgstr "מריץ את המסמך הנוכחי ומציג את הפלט שלו בחלון הפלט." #: lib/Padre/Locale.pm:410 msgid "Russian" msgstr "רוסית" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "שמור" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Main.pm:3921 msgid "SQL Files" msgstr "קבצי SQL" #: lib/Padre/Plugin/Devel.pm:93 msgid "STC Reference" msgstr "העדפות STC" #: lib/Padre/Wx/Dialog/SessionSave.pm:229 msgid "Save" msgstr "שמור" #: lib/Padre/Wx/ActionLibrary.pm:406 msgid "Save &As..." msgstr "שמור קובץ בשם..." #: lib/Padre/Wx/ActionLibrary.pm:430 msgid "Save All" msgstr "שמור הכול" #: lib/Padre/Wx/ActionLibrary.pm:419 msgid "Save Intuition" msgstr "שמור Intuition" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "Save Session..." msgstr "שמור סביבת עבודה..." #: lib/Padre/Document.pm:769 msgid "Save Warning" msgstr "אזהרת שמירה" #: lib/Padre/Wx/ActionLibrary.pm:431 msgid "Save all the files" msgstr "שמור את כל הקבצים" #: lib/Padre/Wx/ActionLibrary.pm:394 msgid "Save current document" msgstr "שמור את המסמך הנוכחי" #: lib/Padre/Wx/Main.pm:4303 msgid "Save file as..." msgstr "שמור קובץ בשם..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "שמור סביבת עבודה בשם..." #: lib/Padre/Wx/Dialog/Preferences.pm:1163 msgid "Save settings" msgstr "שמור הגדרות" #: lib/Padre/MimeTypes.pm:364 #: lib/Padre/MimeTypes.pm:374 msgid "Scintilla" msgstr "מודול עורך טקסט - Scintilla" #: lib/Padre/Wx/Main.pm:3927 msgid "Script Files" msgstr "קובצי Script" #: lib/Padre/Wx/Dialog/Preferences.pm:745 #: lib/Padre/Wx/Dialog/Preferences.pm:795 msgid "Script arguments:" msgstr "ארגומנטים לתכנית:" #: lib/Padre/Wx/Directory.pm:83 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 #: lib/Padre/Wx/Dialog/Find.pm:78 msgid "Search" msgstr "חפש" #: lib/Padre/Wx/Dialog/Replace.pm:122 msgid "Search &Backwards" msgstr "חפש אחורה" #: lib/Padre/Wx/FBP/Find.pm:66 msgid "Search Backwards" msgstr "חפוש לאחור" #: lib/Padre/Document/Perl.pm:583 msgid "Search Canceled" msgstr "החיפוש בוטל" #: lib/Padre/Wx/FBP/FindInFiles.pm:50 msgid "Search Directory:" msgstr "חפוש תיקייה:" #: lib/Padre/Wx/ActionLibrary.pm:2587 msgid "Search Help" msgstr "חפש בעזרה" #: lib/Padre/Wx/FBP/FindInFiles.pm:36 #: lib/Padre/Wx/FBP/Find.pm:36 msgid "Search Term:" msgstr "חפש מונח: " #: lib/Padre/Wx/Dialog/Replace.pm:538 #: lib/Padre/Wx/Dialog/Replace.pm:582 #: lib/Padre/Wx/Dialog/Replace.pm:587 msgid "Search and Replace" msgstr "חיפוש והחלפה" #: lib/Padre/Wx/FindInFiles.pm:212 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "החיפוש הושלם, '%s' נמצא %d פעמים ב- %d קבצים בתוך '%s'" #: lib/Padre/Wx/ActionLibrary.pm:1252 msgid "Search for a text in all files below a given directory" msgstr "חפש טקסט בכל הקבצים מתחת תיקיה נתונה" #: lib/Padre/Wx/Browser.pm:93 #: lib/Padre/Wx/Browser.pm:108 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "חיפוש בתעוד perldoc - למשל Padre::Task, Net::LDAP" #: lib/Padre/Wx/FBP/FindInFiles.pm:78 msgid "Search in Types:" msgstr "חיפוש ב- Types:" #: lib/Padre/Wx/ActionLibrary.pm:2588 msgid "Search the Perl help pages (perldoc)" msgstr "חפש בדפי העזרה של Perl (perldoc)" #: lib/Padre/Wx/Browser.pm:104 msgid "Search:" msgstr "חפש:" #: lib/Padre/Wx/Browser.pm:443 #, perl-format msgid "Searched for '%s' and failed..." msgstr "בוצע חיפוש עבור '%s', נכשל" #: lib/Padre/Wx/ActionLibrary.pm:1668 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "מחפש בקוד המקור סוגריים מסולסלים ללא סוגריים תואמים (פתוחים/סגורים))" #: lib/Padre/Wx/FindInFiles.pm:129 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "חפוש עבור '%s' בתוך '%s' " #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "תווית שניה" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "עיין ב- http://padre.perlide.org/ למידע על עידכונים " #: lib/Padre/Wx/Menu/Edit.pm:49 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "בחר " #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Select All" msgstr "בחר הכול" #: lib/Padre/Wx/Dialog/FindInFiles.pm:63 msgid "Select Directory" msgstr "בחירת תיקייה" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "בחר פונקציה" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:17 msgid "Select a Wizard" msgstr "בחר אשף" #: lib/Padre/Wx/ActionLibrary.pm:1585 msgid "Select a bookmark created earlier and jump to that position" msgstr "בחר סימניה שנוצרה קודם לכן וקפוץ אל מיקום הסימניה" #: lib/Padre/Wx/ActionLibrary.pm:865 msgid "Select a date, filename or other value and insert at the current location" msgstr "בחר תאריך, שם קובץ או ערך אחר והכנס אותו במיקום הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:890 msgid "Select a file and insert its content at the current location" msgstr "בחר קובץ והכנס את תוכנו במיקום הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:454 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "בחר סביבת עבודה. סגור את כל הקבצים הפתוחים כעת, ופתח את את כל אלו הרשובים בסביבת העבודה" #: lib/Padre/Wx/ActionLibrary.pm:589 msgid "Select all the text in the current document" msgstr "בחר את כל הטקסט במסמך הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:963 msgid "Select an encoding and encode the document to that" msgstr "בחר קידוד וקודד בו את המסמך" #: lib/Padre/Wx/ActionLibrary.pm:878 msgid "Select and insert a snippet at the current location" msgstr "בחר והכנס קטע קוד במיקום הנוכחי" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "בחר הפצה להתקנה" #: lib/Padre/Wx/Main.pm:4809 msgid "Select files to close:" msgstr "בחר קבצים לסגור: " #: lib/Padre/Wx/Dialog/OpenResource.pm:239 msgid "Select one or more resources to open" msgstr "בחר משאב אחד או יתר לפתיחה" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "בחר חלק מהקבצים הפתוחים לסגירה" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Select some open files for reload" msgstr "בחר חלק מהקבצים הפתוחים להעלאה מחדש" #: lib/Padre/Wx/Dialog/HelpSearch.pm:129 msgid "Select the help &topic" msgstr "בחר את נושא העזרה" #: lib/Padre/Wx/ActionLibrary.pm:842 msgid "Select to the matching opening or closing brace" msgstr "סמן עדהסוגר הפותח או הסוגר התאום" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "בחר את השגרה שלפניה יש להכניס את השגרה החדשה" #: lib/Padre/Wx/Dialog/DocStats.pm:40 msgid "Selection" msgstr "בחירה " #: lib/Padre/Document/Perl.pm:958 msgid "Selection not part of a Perl statement?" msgstr "הבחירה אינה חלק ממשפט ב-Perl" #: lib/Padre/Wx/ActionLibrary.pm:193 msgid "Selects and opens a wizard" msgstr "בוחר ופותח אשף" #: lib/Padre/Wx/ActionLibrary.pm:2674 msgid "Send a bug report to the Padre developer team" msgstr "שלח דוח תקלה לצוות מפתחי Padre" #: lib/Padre/File/HTTP.pm:48 #, perl-format msgid "Sending HTTP request %s..." msgstr "שולח בקשת HTTP %s ..." #: lib/Padre/Wx/FBP/Sync.pm:34 msgid "Server" msgstr "שרת" #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "מנהל סביבות עבודה" #: lib/Padre/Wx/Dialog/SessionSave.pm:200 msgid "Session name:" msgstr "שם סביבת העבודה:" #: lib/Padre/Wx/ActionLibrary.pm:1573 #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "Set Bookmark" msgstr "צור סימנייה" #: lib/Padre/Wx/ActionLibrary.pm:2071 msgid "Set Breakpoint (&b)" msgstr "קבע נקודת עצירה (&b)" #: lib/Padre/Wx/ActionLibrary.pm:1634 msgid "Set Padre in full screen mode" msgstr "הגדר את Padre למצב עבודה במלוא המסך" #: lib/Padre/Wx/ActionLibrary.pm:2117 msgid "Set a breakpoint at the line where to cursor is and run till there" msgstr "קבע נקודת עצירה בשורה בה נמצא הסמן והרץ עד אליה" #: lib/Padre/Wx/ActionLibrary.pm:2072 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "קבע נקודת עצירה בשורה בה נמצא הסמן עם תנאי" #: lib/Padre/Wx/ActionLibrary.pm:2056 msgid "Set focus to the line where the current statement is in the debugging process" msgstr "קבע התמקדות בשורה בה נמצאת הפקודה הנוכחית בתהליך נפוי השגיאות" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Set the focus to the \"Command Line\" window" msgstr "קביעת מיקוד על חלון \"שורת פקודה\"" #: lib/Padre/Wx/ActionLibrary.pm:2495 msgid "Set the focus to the \"Functions\" window" msgstr "קבע את המיקוד על חלון הפונקציות" #: lib/Padre/Wx/ActionLibrary.pm:2521 msgid "Set the focus to the \"Outline\" window" msgstr "קביעת מיקוד על חלון \"Outline\"" #: lib/Padre/Wx/ActionLibrary.pm:2532 msgid "Set the focus to the \"Output\" window" msgstr "קבע את המיקוד על חלון הפלט" #: lib/Padre/Wx/ActionLibrary.pm:2543 msgid "Set the focus to the \"Syntax Check\" window" msgstr "קבע את המיקוד על חלון בדיקת התחביר" #: lib/Padre/Wx/ActionLibrary.pm:2509 msgid "Set the focus to the \"Todo\" window" msgstr "קבע את המיקוד על חלון המטלות" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Set the focus to the main editor window" msgstr "העבר את המיקוד לחלון העריכה הראשי" #: lib/Padre/Wx/Dialog/Preferences.pm:558 msgid "Settings Demo" msgstr "הדגמת הגדרות" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Setup a skeleton Perl module distribution" msgstr "הגדרת מבנה (skeleton) להפצת מודול Perl" #: lib/Padre/Config.pm:449 #: lib/Padre/Config.pm:461 msgid "Several placeholders like the filename can be used" msgstr "יש כמה ממלאי-מקום כמו שם קובץ בהם ניתן להשתמש" #: lib/Padre/Wx/Syntax.pm:43 msgid "Severe Warning" msgstr "אזהרה חמורה" #: lib/Padre/Wx/Dialog/KeyBindings.pm:86 msgid "Sh&ortcut:" msgstr "קיצור דרך" #: lib/Padre/Wx/ActionLibrary.pm:2219 msgid "Share your preferences between multiple computers" msgstr "שיתוף ההגדרות בין כמה חשבים" #: lib/Padre/MimeTypes.pm:229 msgid "Shell Script" msgstr "תכנית מעטפת" #: lib/Padre/Wx/Dialog/KeyBindings.pm:91 msgid "Shift" msgstr "מקש Shift" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "קיצור דרך" #: lib/Padre/Wx/Dialog/Preferences.pm:383 msgid "Shorten the common path in window list" msgstr "קצר את המסלול המשותף ברשימת החלונות" #: lib/Padre/Wx/Dialog/RegexEditor.pm:191 msgid "Show &Description" msgstr "הצג תיאור" #: lib/Padre/Wx/ActionLibrary.pm:1462 msgid "Show Call Tips" msgstr "הצג טיפים לקריאה" #: lib/Padre/Wx/ActionLibrary.pm:1432 msgid "Show Code Folding" msgstr "הצג קיפול קוד" #: lib/Padre/Wx/ActionLibrary.pm:1324 msgid "Show Command Line window" msgstr "הצג את חלון שורת הפקודה" #: lib/Padre/Wx/ActionLibrary.pm:1476 msgid "Show Current Line" msgstr "הצג את השורה הנוכחית" #: lib/Padre/Wx/ActionLibrary.pm:1314 msgid "Show Functions" msgstr "הצג פונקציות" #: lib/Padre/Wx/ActionLibrary.pm:1518 msgid "Show Indentation Guide" msgstr "הצג מדריך הזחה" #: lib/Padre/Wx/ActionLibrary.pm:1422 msgid "Show Line Numbers" msgstr "הצג מספרי שורות" #: lib/Padre/Wx/ActionLibrary.pm:1498 msgid "Show Newlines" msgstr "הצג תווי שורה חדשה" #: lib/Padre/Wx/ActionLibrary.pm:1344 msgid "Show Outline" msgstr "הצגת Outline" #: lib/Padre/Wx/ActionLibrary.pm:1304 msgid "Show Output" msgstr "הצג פלט" #: lib/Padre/Wx/ActionLibrary.pm:1354 msgid "Show Project Browser/Tree" msgstr "הצג את עץ הפרויקט/סייר הפרויקט" #: lib/Padre/Wx/ActionLibrary.pm:1486 msgid "Show Right Margin" msgstr "הצג שול ימני" #: lib/Padre/Wx/ActionLibrary.pm:2131 #, fuzzy msgid "Show Stack Trace (&t)" msgstr "הצג בדיקת תחביר" #: lib/Padre/Wx/ActionLibrary.pm:1383 msgid "Show Status Bar" msgstr "הצג סרגל סטאטוס" #: lib/Padre/Wx/ActionLibrary.pm:1364 msgid "Show Syntax Check" msgstr "הצג בדיקת תחביר" #: lib/Padre/Wx/ActionLibrary.pm:1334 msgid "Show To-do List" msgstr "הצג את רשימת המטלות" #: lib/Padre/Wx/ActionLibrary.pm:1393 msgid "Show Toolbar" msgstr "הצג סרגל כלים" #: lib/Padre/Wx/ActionLibrary.pm:2162 msgid "Show Value Now (&x)" msgstr "הצג ערך כעת" #: lib/Padre/Wx/ActionLibrary.pm:1508 msgid "Show Whitespaces" msgstr "הצג רווחים" #: lib/Padre/Wx/ActionLibrary.pm:1487 msgid "Show a vertical line indicating the right margin" msgstr "הצג קו אנכי שמראה את מיקום השול הימני" #: lib/Padre/Wx/ActionLibrary.pm:1315 msgid "Show a window listing all the functions in the current document" msgstr "הצג חלון עם רשימת כל הפונקציות במסמך הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "הצג חלון עם רשימת כל החלקים בקובץ הנוכחי (פונקציות, פרגמות, מודולים)" #: lib/Padre/Wx/ActionLibrary.pm:1335 msgid "Show a window listing all todo items in the current document" msgstr "הצג חלון עם רשימת כל המטלות במסמך הנוכחי" #: lib/Padre/Wx/Menu/Edit.pm:331 msgid "Show as" msgstr "להציג כ..." #: lib/Padre/Wx/ActionLibrary.pm:1130 msgid "Show as Decimal" msgstr "להציג כעשרוני" #: lib/Padre/Wx/ActionLibrary.pm:1120 msgid "Show as Hexadecimal" msgstr "להציג כהקסדצימלי" #: lib/Padre/Plugin/PopularityContest.pm:202 msgid "Show current report" msgstr "הצג את הדו\"ח הנוכחית" #: lib/Padre/Wx/ActionLibrary.pm:2703 msgid "Show information about Padre" msgstr "הצג מידע על Padre" #: lib/Padre/Config.pm:971 #: lib/Padre/Wx/Dialog/Preferences.pm:483 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "הצג הודעות מידע בעדיפות נמוכה על סרגל הסטאטוס (לא כהודעות קופצות)" #: lib/Padre/Config.pm:623 msgid "Show or hide the status bar at the bottom of the window." msgstr "הצגה/הסתרה של שורת המצב בתחתית המסך." #: lib/Padre/Wx/ActionLibrary.pm:2466 #: lib/Padre/Wx/Dialog/Positions.pm:108 msgid "Show previous positions" msgstr "הצג מיקומים קודמים" #: lib/Padre/Wx/Dialog/Preferences.pm:488 msgid "Show right margin at column:" msgstr "להציג את השול הימני בעמודה:" #: lib/Padre/Wx/ActionLibrary.pm:1131 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "הצג את ערכי ה ASCII של הטקסט הנבחר במספרים עשרוניים בחלון הפלט" #: lib/Padre/Wx/ActionLibrary.pm:1121 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "הצג את ערכי ה ASCII של הטקסט הנבחר במספרים עשרוניים בחלון הפלט" #: lib/Padre/Wx/ActionLibrary.pm:2613 msgid "Show the POD (Perldoc) version of the current document" msgstr "הצג את גירסת ה POD של המסמך הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:2579 msgid "Show the Padre help" msgstr "הצג את העזרה של Padre" #: lib/Padre/Wx/ActionLibrary.pm:2261 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "הצג את מנהל התוספים של Padre כדי לאפשר או לבטל את השימוש בתוספים" #: lib/Padre/Wx/ActionLibrary.pm:1325 msgid "Show the command line window" msgstr "הצג את חלון שורת הפקודה" #: lib/Padre/Wx/ActionLibrary.pm:2600 msgid "Show the help article for the current context" msgstr "הצג את מאמר העזרה להקשר הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:2229 msgid "Show the key bindings dialog to configure Padre shortcuts" msgstr "הצג דיאלוג מיפוי מקשים לקינפוג של מקשי קיצורי הדרך של Padre" #: lib/Padre/Wx/ActionLibrary.pm:2467 msgid "Show the list of positions recently visited" msgstr "הצג רשימת מיקומים שנצפו לאחרונה" #: lib/Padre/Wx/ActionLibrary.pm:2163 msgid "Show the value of a variable now in a pop-up window." msgstr "הצג את ערך המישתנה בחלון pop-up. " #: lib/Padre/Wx/ActionLibrary.pm:1305 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "הצג את החלון שמציג את הפלט הסטנדרטי ואת תצוגת השגיאות הסטנדרטית של התוכניות הרצות" #: lib/Padre/Wx/ActionLibrary.pm:1433 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "הצג/הסתר את הקו האנכי בצד שמאל של החלון כדי לאפשר קיפול שורות" #: lib/Padre/Wx/ActionLibrary.pm:1423 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "הצג/הסתר את מספרי השורות של כל המסמכים בצד השמאלי של החלון" #: lib/Padre/Wx/ActionLibrary.pm:1499 msgid "Show/hide the newlines with special character" msgstr "הצג/הסתר תווי שורה חדשה באמצעות תו מיוחד" #: lib/Padre/Wx/ActionLibrary.pm:1384 msgid "Show/hide the status bar at the bottom of the screen" msgstr "התג/הסתר את סרגל הסטאטוס בתחתית המסך" #: lib/Padre/Wx/ActionLibrary.pm:1509 msgid "Show/hide the tabs and the spaces with special characters" msgstr "הצג/הסתר את הטאבים ואת הרווחים עם תווים מיוחדים" #: lib/Padre/Wx/ActionLibrary.pm:1394 msgid "Show/hide the toolbar at the top of the editor" msgstr "הצג/הסתר את סרגל הכלים בראש העורך" #: lib/Padre/Wx/ActionLibrary.pm:1519 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "הצג/הסתר קווים אנכיים בכל נקודת הזחה מצד שמאל של השורות" #: lib/Padre/Config.pm:398 msgid "Showing the splash image during start-up" msgstr "הצגת תמונת splash בעליית התוכנית" #: lib/Padre/Plugin/Devel.pm:86 msgid "Simulate Background Crash" msgstr "הדמיית קריסה ברקע" #: lib/Padre/Plugin/Devel.pm:85 msgid "Simulate Background Exception" msgstr "דמה ביצוע חריגות ברקע" #: lib/Padre/Plugin/Devel.pm:84 msgid "Simulate Crash" msgstr "הדמיית קריסה" #: lib/Padre/Wx/Dialog/RegexEditor.pm:412 msgid "Single-line (&s)" msgstr "שורה בודדת " #: lib/Padre/Wx/Dialog/SpecialValues.pm:22 msgid "Size" msgstr "גודל " #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "Skip question without giving feedback" msgstr "דלג על שאלה בלי לתת משוב" #: lib/Padre/Wx/Dialog/OpenResource.pm:271 msgid "Skip using MANIFEST.SKIP" msgstr "לדלג על שימוש ב־MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/OpenResource.pm:267 msgid "Skip version control system files" msgstr "דילוג על קבצי מערכת נהול גרסאות" #: lib/Padre/Document.pm:1363 #: lib/Padre/Document.pm:1364 msgid "Skipped for large files" msgstr "לא נספר בקבצים גדולים" #: lib/Padre/MimeTypes.pm:384 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "אטי, אבל מדויק ועם שליטה מלאה כך שאפשר יהיה לתקן תקלות" #: lib/Padre/Wx/Dialog/Snippets.pm:23 #: lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "קטע קוד:" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "קטעי קוד" #: lib/Padre/Wx/ActionLibrary.pm:877 msgid "Snippets..." msgstr "קטעי קוד" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "משהו שגוי במסד הנתונים של ה- Padre שלך: \n" "סביבת העבודה %s רשומה אך אין נתונים" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Space" msgstr "רווח" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Space and tab" msgstr "רווחים וטאבים" #: lib/Padre/Wx/Main.pm:5887 msgid "Space to Tab" msgstr "רווחים לטאבים" #: lib/Padre/Wx/ActionLibrary.pm:1015 msgid "Spaces to Tabs..." msgstr "רווחים לטאבים..." #: lib/Padre/Locale.pm:248 msgid "Spanish" msgstr "ספרדית" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "ספרדית (ארגנטינה)" #: lib/Padre/Wx/ActionLibrary.pm:864 msgid "Special Value..." msgstr "ערך מיוחד:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:47 msgid "Special Value:" msgstr "ערך מיוחד:" #: lib/Padre/Wx/ActionLibrary.pm:2041 msgid "Start running and/or continue running till next breakpoint or watch" msgstr "התחל ו/או המשך הרצה עד נקודת העצירה הבאה או נקודה המבט הבאה" #: lib/Padre/Plugin/Devel.pm:79 msgid "Start/Stop sub trace" msgstr "התחל/עצור תת-מעקב (Sub-trace)" #: lib/Padre/Wx/Main.pm:5859 msgid "Stats" msgstr "נתוני המסמך" #: lib/Padre/Wx/FBP/Sync.pm:48 #: lib/Padre/Wx/Dialog/PluginManager.pm:68 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 msgid "Status" msgstr "סטאטוס" #: lib/Padre/Wx/Dialog/Preferences.pm:471 msgid "Statusbar:" msgstr "שורת מצב" #: lib/Padre/Wx/ActionLibrary.pm:1989 msgid "Step In (&s)" msgstr "צעד פנימה (&s)" #: lib/Padre/Wx/ActionLibrary.pm:2024 msgid "Step Out (&r)" msgstr "צעד החוצה (&r)" #: lib/Padre/Wx/ActionLibrary.pm:2006 msgid "Step Over (&n)" msgstr "צעד מעבר (&n)" #: lib/Padre/Wx/ActionLibrary.pm:1961 msgid "Stop Execution" msgstr "הפסק הרצה" #: lib/Padre/Wx/ActionLibrary.pm:1962 msgid "Stop a running task." msgstr "הפסק משימה רצה" #: lib/Padre/Wx/ActionLibrary.pm:111 msgid "Stops processing of other action queue items for 10 seconds" msgstr "עוצר את ביצוע הפעולות האחרות שבתור למשך 10 שניות" #: lib/Padre/Wx/ActionLibrary.pm:120 msgid "Stops processing of other action queue items for 30 seconds" msgstr "עצור עיבוד של של פעולות אחרו בתור ל- 30 שניות" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "טקסט (String)" #: lib/Padre/Wx/Menu/View.pm:197 msgid "Style" msgstr "סגנון" #: lib/Padre/Plugin/Devel.pm:260 msgid "Sub-tracing started" msgstr "תת-מעקב (Sub-tracing) התחיל" #: lib/Padre/Plugin/Devel.pm:242 msgid "Sub-tracing stopped" msgstr "תת-מעקב (Sub-tracing) נעצר" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "החלף את שפת הממשק של Padre ל-: %s" #: lib/Padre/Wx/ActionLibrary.pm:1409 msgid "Switch document type" msgstr "החלף את סוג המסמך" #: lib/Padre/Wx/ActionLibrary.pm:1602 #: lib/Padre/Wx/ActionLibrary.pm:1618 msgid "Switch highlighting colours" msgstr "החלף את צבעי הקוד ל" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "החלף את השפה לברירת המחדל " #: lib/Padre/Wx/ActionLibrary.pm:2397 msgid "Switch to edit the file that was previously edited (can switch back and forth)" msgstr "עבור לעריכת קובץ שנערך קודם לכן (ניתן לעבור הלוך וחזור)" #: lib/Padre/Wx/Syntax.pm:301 msgid "Syntax Check" msgstr "בדיקת תחביר" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "ברירת המחדל של המערכת" #: lib/Padre/Wx/About.pm:74 #: lib/Padre/Wx/About.pm:317 msgid "System Info" msgstr "מידע על המערכת" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Tab" msgstr "מקש Tab" #: lib/Padre/Wx/Dialog/Preferences.pm:267 msgid "Tab display size (in spaces):" msgstr "רוחב תצוגת טאב (ברווחים)" #: lib/Padre/Wx/Main.pm:5888 msgid "Tab to Space" msgstr "טאבים לרווחים" #: lib/Padre/Wx/Menu/Edit.pm:245 msgid "Tabs and Spaces" msgstr "טאבים ורווחים" #: lib/Padre/Wx/ActionLibrary.pm:1005 msgid "Tabs to Spaces..." msgstr "טאבים לרווחים..." #: lib/Padre/MimeTypes.pm:333 msgid "Text" msgstr "טקסט" #: lib/Padre/Wx/Main.pm:3923 msgid "Text Files" msgstr "קבצים טקסט" #: lib/Padre/Wx/About.pm:103 #: lib/Padre/Wx/About.pm:135 msgid "The Padre Development Team" msgstr "צוות פיתוח Padre" #: lib/Padre/Wx/About.pm:227 msgid "The Padre Translation Team" msgstr "צוות תירגום Padre" #: lib/Padre/Wx/Dialog/Bookmarks.pm:170 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "הסימנייה '%s' לא קיימת עוד" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', or 'Run till Breakpoint' in the Debug menu." msgstr "" "מנפה השגיאות לא רץ. \n" "אפשר להתחיל את מנפה השגיאות על ידי אחת הפקודות: 'Step In', 'Step Over', או 'Run till Breakpoint' בתפריט Debug." #: lib/Padre/Document.pm:253 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "גודלו של הקבץ %s שאתה מנסה לפתוח הוא %s בייטים. זה חורג ממגבלת הגודל (השרירותית) של Padre שהיא כרגע %s. פתיחת קובץ זה עלולה לפגוע בביצועים. האם עדיין ברצונך לפתוח את הקובץ?" #: lib/Padre/Wx/Dialog/KeyBindings.pm:388 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "הקיצור '%s' נמצא כבר בשימוש עבור הפעולה '%s'.\n" #: lib/Padre/Wx/Main.pm:5011 msgid "There are no differences\n" msgstr "אין הבדלים\n" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "There are no positions saved yet" msgstr "עדיין אין עמדות שנשמרו" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "אין כל POD למסמך זה" #: lib/Padre/Wx/ActionLibrary.pm:2303 msgid "This function reloads the My plug-in without restarting Padre" msgstr "פעולה זו מרעננת את My plug-in בלי להפעיל מחדש את Padre" #: lib/Padre/Wx/Dialog/Preferences/File.pm:39 #: lib/Padre/Wx/Dialog/Preferences/File.pm:47 msgid "Timeout (in seconds):" msgstr "Timeout (בשניות):" #: lib/Padre/Wx/TodoList.pm:209 msgid "To-do" msgstr "To-do" #: lib/Padre/Wx/Dialog/SpecialValues.pm:17 msgid "Today" msgstr "היום" #: lib/Padre/Wx/About.pm:69 msgid "Translation" msgstr "תרגום" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "אמת" #: lib/Padre/Locale.pm:420 msgid "Turkish" msgstr "טורקית" #: lib/Padre/Wx/ActionLibrary.pm:1365 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "הפעל בדיקת תחביר למסמף הנוכחי והצג את הפלט בחלון" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "טיפוס" #: lib/Padre/Wx/Dialog/HelpSearch.pm:146 msgid "Type a help &keyword to read:" msgstr "הקלד מילת מפתח עזרה כדי לקרוא:" #: lib/Padre/Wx/ActionLibrary.pm:2178 msgid "Type in any expression and evaluate it in the debugged process" msgstr "הקלד כל בטוי ובחן אותו בתהליך נפוי השגיאות" #: lib/Padre/MimeTypes.pm:619 msgid "UNKNOWN" msgstr "לא ידוע" #: lib/Padre/Config/Style.pm:37 msgid "Ultraedit" msgstr "Ultraedit" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "לא ניתן לפרש את %s" #: lib/Padre/Wx/ActionLibrary.pm:555 msgid "Undo last change in current file" msgstr "בטל את השינוי האחרון בקובץ הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:1452 msgid "Unfold all" msgstr "לפרוס הכול" #: lib/Padre/Wx/ActionLibrary.pm:1453 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr " (בתנאי שקיפול מאופשר)פרוש את הבלוקים שניתן לקבל" #: lib/Padre/Locale.pm:142 #: lib/Padre/Wx/Main.pm:3713 msgid "Unknown" msgstr "לא ידוע" #: lib/Padre/PluginManager.pm:857 #: lib/Padre/Document/Perl.pm:579 #: lib/Padre/Document/Perl.pm:911 #: lib/Padre/Document/Perl.pm:960 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "שגיאה לא ידועה" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "שגיאה לא ידועה מ-" #: lib/Padre/Wx/Dialog/Preferences.pm:758 msgid "Unsaved" msgstr "קובץ שלא נשמר " #: lib/Padre/Document.pm:962 #, perl-format msgid "Unsaved %d" msgstr "קובץ שלא נשמר %d" #: lib/Padre/Wx/Main.pm:4685 msgid "Unsaved File" msgstr "קובץ שלא נשמר" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "מערכת הפעלה שאינה נתמכת: %s" #: lib/Padre/Wx/Browser.pm:341 msgid "Untitled" msgstr "ללא כותרת" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Up" msgstr "מקש Up" #: lib/Padre/Wx/FBP/Sync.pm:203 msgid "Upload" msgstr "טעינה (Upload)" #: lib/Padre/Wx/ActionLibrary.pm:1047 msgid "Upper All" msgstr "הפוך הכל לאותיות רישיות" #: lib/Padre/Wx/Menu/Edit.pm:275 msgid "Upper/Lower Case" msgstr "אותיות גדולות/קטנות" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "אותיות רישיות" #: lib/Padre/Wx/About.pm:337 msgid "Uptime" msgstr "משך פעילות (Uptime)" #: lib/Padre/Wx/Dialog/Preferences/File.pm:51 msgid "Use FTP passive mode" msgstr "השתמש ב-FTP במוד פסיבי" #: lib/Padre/Wx/ActionLibrary.pm:1111 msgid "Use Perl source as filter" msgstr "שימוש במקור Perl כפילטר לסינון" #: lib/Padre/Wx/Dialog/Preferences.pm:400 msgid "Use Splash Screen" msgstr "שימוש במסך Splash" #: lib/Padre/Wx/Dialog/Preferences.pm:264 msgid "Use Tabs" msgstr "השתמש בטאבים" #: lib/Padre/Wx/Dialog/Preferences.pm:390 msgid "Use X11 middle button paste style" msgstr "השתמש בסגנון הדבקה של מקש אמצעי של X11" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Use a filter to select one or more files" msgstr "השתמש בפילטר כדי לבחור קובץ אחד או יותר לפתיחה" #: lib/Padre/Wx/Dialog/Preferences.pm:749 msgid "Use external window for execution" msgstr "השתמש בחלון חיצוני לביצוע (xterm)" #: lib/Padre/Wx/Dialog/Preferences.pm:305 msgid "Use panel order for Ctrl-Tab (not usage history)" msgstr "השתמש ב- Ctrl-Tab לסידור פאנל (ולא להיסטוריית שימוש)" #: lib/Padre/Wx/Dialog/Search.pm:184 msgid "Use rege&x" msgstr "השתמש בביטוי רגולרי" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "User" msgstr "משתמש" #: lib/Padre/Wx/FBP/Sync.pm:68 #: lib/Padre/Wx/FBP/Sync.pm:111 msgid "Username" msgstr "שם משתמש" #: lib/Padre/Wx/ActionLibrary.pm:2365 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "משתמש ב-CPAN.pm כדי להתקין חבילה דמוית CPAN בהתקנה מקומית" #: lib/Padre/Wx/ActionLibrary.pm:2375 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "משתמש ב-pip להורדת קובץ tar.gz והתקנתו באמצעות CPAN.pm" #: lib/Padre/Wx/Debug.pm:139 #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "ערך" #: lib/Padre/Wx/Debug.pm:138 msgid "Variable" msgstr "משתנה" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Variable Name" msgstr "שם משתנה" #: lib/Padre/Document/Perl.pm:870 msgid "Variable case change" msgstr "שינוי שם משתנה" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 msgid "Version" msgstr "גרסה" #: lib/Padre/Wx/ActionLibrary.pm:1704 msgid "Vertically Align Selected" msgstr "יישור אנכי של הבחירה" #: lib/Padre/Wx/Syntax.pm:61 msgid "Very Fatal Error" msgstr "שגיאה חמורה ביותר" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 msgid "View" msgstr "הצג" #: lib/Padre/Wx/ActionLibrary.pm:2681 msgid "View All &Open Bugs" msgstr "להציג את כל התקלות הפתוחות" #: lib/Padre/Wx/Menu/View.pm:82 msgid "View Document As..." msgstr "להציג מסמך בתור..." #: lib/Padre/Wx/ActionLibrary.pm:2682 msgid "View all known and currently unsolved bugs in Padre" msgstr "הצג את כל התקלות הידועות שכרגע אינן פתורות ב-Padre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Visible characters" msgstr "תווים נראים" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "תווים נראים ורווחים" #: lib/Padre/Wx/ActionLibrary.pm:2661 msgid "Visit the PerlMonks" msgstr "בקר ב-PerlMonks" #: lib/Padre/Document.pm:765 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "שם הקובץ הויזואלי %s שונה משם הקובץ הפנימי %s, האם ברצונך לבטל את שמירת הקובץ?" #: lib/Padre/Document.pm:259 #: lib/Padre/Wx/Syntax.pm:31 #: lib/Padre/Wx/Main.pm:2798 #: lib/Padre/Wx/Main.pm:3405 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "אזהרה" #: lib/Padre/Wx/ActionLibrary.pm:2316 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "אזהרה! זה ימחוק את כל השנויים שעשית ב- 'My plug-in' ויחליף אותם בברירת המחדל שבאה עם התקנת Padre" #: lib/Padre/PluginManager.pm:402 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "מצאנו מספר תוספים חדשים.\n" "כדי להגדיר ולהפעיל אותם, לך אל\n" "תוספים -> מנהל התוספים\n" "\n" "רשימת תוספים חדשים:\n" "\n" #: lib/Padre/Wx/Main.pm:3925 msgid "Web Files" msgstr "קבצי Web" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "כלשהו" #: lib/Padre/Wx/ActionLibrary.pm:2132 msgid "When in a subroutine call show all the calls since the main of the program" msgstr "בקריאה לתת שגרה (subroutine) - הצג את כל הקריאות מאז - מהתוכנית הראשית" #: lib/Padre/Wx/ActionLibrary.pm:1463 msgid "When typing in functions allow showing short examples of the function" msgstr "בזמן הקלדת פונקציות אפשר הצגת דוגמאות קצרות של השימוש בפונקציה" #: lib/Padre/Wx/FBP/WhereFrom.pm:31 msgid "Where did you hear about Padre?" msgstr "היכן שמעת על Padre?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "רווחים" #: lib/Padre/Wx/ActionLibrary.pm:2647 msgid "Win32 Questions (English)" msgstr "שאלות Win32 (אנגלית)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:397 msgid "Window" msgstr "חלון" #: lib/Padre/Wx/Dialog/WindowList.pm:35 msgid "Window list" msgstr "רשימת חלונות" #: lib/Padre/Wx/Dialog/Preferences.pm:468 msgid "Window title:" msgstr "כותרת החלון:" #: lib/Padre/Wx/Dialog/WizardSelector.pm:47 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:18 msgid "Wizard Selector" msgstr "בורר אשף" #: lib/Padre/Wx/ActionLibrary.pm:192 msgid "Wizard Selector..." msgstr "בוחר אשפים" #: lib/Padre/Wx/ActionLibrary.pm:522 msgid "Word count and other statistics of the current document" msgstr "ספירת מילים וסטטיסיקות נוספות של המסמך הנוכחי" #: lib/Padre/Wx/ActionLibrary.pm:1528 msgid "Word-Wrap" msgstr "גלישת מילים" #: lib/Padre/Wx/Dialog/DocStats.pm:102 msgid "Words" msgstr "מילים" #: lib/Padre/Wx/ActionLibrary.pm:1529 msgid "Wrap long lines" msgstr "הגלש שורות ארוכות" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "כותב קובץ לשרת FTP ..." #: lib/Padre/Wx/Output.pm:141 #: lib/Padre/Wx/Main.pm:2654 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream הוא גירסה %s שידועה כגירסה בעייתית. להתקנת גירסה 2.0 ומעלה הקלד: \n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/SpecialValues.pm:18 msgid "Year" msgstr "שנה" #: lib/Padre/Wx/Editor.pm:1612 msgid "You must select a range of lines" msgstr "יש לבחור טווח של שורות" #: lib/Padre/Wx/Main.pm:3404 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "יש לך עדיין תהליך רץ. האם ברצונך להרוג אותו ולצאת?" #: lib/Padre/Wx/Dialog/Preferences.pm:989 msgid "alphabetical" msgstr "לפי אלפבית" #: lib/Padre/Wx/Dialog/Preferences.pm:991 msgid "alphabetical_private_last" msgstr "לפי אלפבית שם פרטי בסוף" #: lib/Padre/CPAN.pm:185 msgid "cpanm is unexpectedly not installed" msgstr "באופן לא צפוי cpanm לא מותקן" #: lib/Padre/Wx/Dialog/Preferences.pm:988 msgid "deep" msgstr "עמוק" #: lib/Padre/PluginHandle.pm:93 #: lib/Padre/Wx/Dialog/PluginManager.pm:530 msgid "disabled" msgstr "מבוטל" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "לדוגמה" #: lib/Padre/PluginHandle.pm:94 #: lib/Padre/Wx/Dialog/PluginManager.pm:518 msgid "enabled" msgstr "מופעל" #: lib/Padre/PluginHandle.pm:89 #: lib/Padre/Wx/Dialog/PluginManager.pm:491 msgid "error" msgstr "שגיאה" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:354 msgid "fresh" msgstr "רענן" #: lib/Padre/Wx/Dialog/Preferences.pm:726 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" "למשל\n" "\tלכלול תיקייה: -I\n" "\tלהפעיל בדיקות taint: -T\n" "\tלהפעיל הרבה אזהרות שימושיות: -w\n" "\tלהפעיל את כל האזהרות: -W\n" "\tלבטל את כל האזהרות: -X\n" #: lib/Padre/PluginHandle.pm:92 #: lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "incompatible" msgstr "לא תואם" #: lib/Padre/Wx/Dialog/Preferences.pm:984 msgid "last" msgstr "אחרון" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "טעון" #: lib/Padre/Wx/Dialog/ModuleStart.pm:148 msgid "missing field" msgstr "שדה לא מולא" #: lib/Padre/Wx/Dialog/Preferences.pm:982 msgid "new" msgstr "חדש" #: lib/Padre/Wx/Dialog/Preferences.pm:986 msgid "no" msgstr "לא" #: lib/Padre/Document.pm:942 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "אין סימון של mime-type '%s' בשימוש ב- stc" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "אין" #: lib/Padre/Wx/Dialog/Preferences.pm:983 msgid "nothing" msgstr "כלום" #: lib/Padre/Wx/Dialog/Preferences.pm:990 msgid "original" msgstr "מקורי" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 #: lib/Padre/Wx/Dialog/ModuleStart.pm:46 msgid "restrictive" msgstr "מגביל" #: lib/Padre/Wx/Dialog/Preferences.pm:987 msgid "same_level" msgstr "אותה רמה" #: lib/Padre/Wx/Dialog/Preferences.pm:985 msgid "session" msgstr "סביבת עבודה" #: lib/Padre/Wx/About.pm:107 msgid "splash image is based on work by" msgstr "תמונת ה- Splash מבוססת על יצירה מאת " #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "לא טעון" #: lib/Padre/Wx/Dialog/ModuleStart.pm:27 #: lib/Padre/Wx/Dialog/ModuleStart.pm:47 msgid "unrestricted" msgstr "לא מוגבל" #: lib/Padre/Wx/About.pm:342 msgid "unsupported" msgstr "אינו נתמך" #: lib/Padre/Plugin/Devel.pm:96 msgid "wxPerl Live Support" msgstr "תמיכה חיה ב-wxPerl" #: lib/Padre/Plugin/Devel.pm:90 #, perl-format msgid "wxWidgets %s Reference" msgstr "מילון wxWidgets %s" #~ msgid "Could not find file '%s'" #~ msgstr "לא נמצא הקובץ '%s'" #~ msgid "Open" #~ msgstr "פתח" #~ msgid "" #~ "User can configure what Padre will show in the statusbar of the window." #~ msgstr "המשתמש יכול לקנפג את שורת המצב חלון של Padre" #~ msgid "User can configure what Padre will show in the title of the window." #~ msgstr "המשתמש יכול לקנפג את כתורת החלון של Padre" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "תיקיית הפרויקט %s אינה קיימת (היתה ואיננה). זוהי שגיאה חמורה שתגרום " #~ "לבעיות. סגור קובץ זה, או שמור אותו, אלא אם יש לך סיבה טובה לעשות משהו אחר." #~ msgid "Simulate Crashing Bg Task" #~ msgstr "הדמיית קריסה של תהליך רקע" #~ msgid "Automatic Bracket Completion" #~ msgstr "השלמת סוגריים אוטומטית" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "בעת הקלדת { הכנס באופן אוטומטיאת הסוגר {" #~ msgid "&Regular Expression" #~ msgstr "ביטוי רגולרי" #~ msgid "&Find Next" #~ msgstr "מצא הבא" #~ msgid "Find &Text:" #~ msgstr "חפש טקסט" #~ msgid "Not a valid search" #~ msgstr "חיפוש לא תקין" #~ msgid "Norwegian (Norway)" #~ msgstr "נורווגית (נורווגיה)" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s תהליכוני פועל רצים.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "כעת לא מתבצעות משימות רקע.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "המשימות הבאות מתבצעות כעת ברקע:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s מסוג '%s':\n" #~ " (בתהליכונ(ים) %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "בנוסף, יש %s משימות שממתינות להתבצע.\n" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "לא יכול לפתוח את %s, משום שהוא חורג מגודל הקובץ המרבי השרירותי של-Padre " #~ "ושעומד כעת על %s" #~ msgid "Quick Find" #~ msgstr "חיפוש מהיר" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "הצג חלון עם סייר תיקיות של הפרויקט הנוכחי" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "הצג את רשימת השגיאות שהתקבלו בזמן ריצת התוכנית" #~ msgid "&Goto Line" #~ msgstr "מעבר לשורה" #~ msgid "Ask the user for a row number and jump there" #~ msgstr "בקש מהמשתמש מספר שורה ועבור אליה" #~ msgid "Insert Special Value" #~ msgstr "הכנס ערך מיוחד" #~ msgid "Insert From File..." #~ msgstr "הכנס מתוך קובץ..." #~ msgid "Show as hexa" #~ msgstr "הצג כהקסדצימלי " #~ msgid "Check the current file" #~ msgstr "בדוק את הקובץ הנוכחי" #~ msgid "Replacement" #~ msgstr "החלף ב:" #~ msgid "New Subroutine Name" #~ msgstr "שם השגרה החדשה" #~ msgid "Save &As" #~ msgstr "שמור בשם.." #~ msgid "Show the about-Padre information" #~ msgstr "הצג את המידע אודות Padre" #~ msgid "Line No" #~ msgstr "שורה מס.:" #~ msgid "Term:" #~ msgstr "מונח: " #~ msgid "Dir:" #~ msgstr "תיקייה:" #~ msgid "Pick &directory" #~ msgstr "בחר תיקייה" #~ msgid "In Files/Types:" #~ msgstr "בקבצים/סוגים:" #~ msgid "Case &Insensitive" #~ msgstr "לא תלוי רישיות" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "התעלם מתת-תיקיות מוחבאות" #~ msgid "Show only files that don't match" #~ msgstr "הצג רק קבצים שאינם מתאימים" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "(Document not on disk)" #~ msgstr "(המסמך אינו נמצא בדיסק)" #~ msgid "Lines: %d" #~ msgstr "שורות: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "תווים שאינם רווחים: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "תווים כולל רווחים: %d" #~ msgid "Newline type: %s" #~ msgstr "סוג שורה חדשה: %s" #~ msgid "Size on disk: %s" #~ msgstr "גודל על הדיסק: %s" #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "הקובץ נמחק מהדיסק, האם אתה רוצה לנקות את חלון העריכה?" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "קובץ השתנה בדיסק מאז השמירה האחרונה. האם ברצונך לטעון אותו מחדש?" #~ msgid "Error List" #~ msgstr "רשימת שגיאות" #~ msgid "No diagnostics available for this error!" #~ msgstr "אין הודעה מפורטת לשגיאה הזאת!" #~ msgid "Diagnostics" #~ msgstr "הודעות מפורטות" #~ msgid "Info" #~ msgstr "פרטים" #~ msgid "Choose a directory" #~ msgstr "בחר תיקייה" #~ msgid "'%s' does not look like a variable" #~ msgstr "'%s' אינו נראה כמו משתנה" #~ msgid "GoTo Bookmark" #~ msgstr "לך לסימנייה" #~ msgid "Skip VCS files" #~ msgstr "דלג על קבצי VCS:" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "נראה כי %s נוצר. האם ברצונך לפתוח אותו עכשיו?" #~ msgid "Switch menus to %s" #~ msgstr "החלף את התפריטים ל-%s" #~ msgid "Convert EOL" #~ msgstr "המר EOL..." #~ msgid "Please choose a different name." #~ msgstr "נא לבחור שם אחר." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "קובץ באותו שם כבר קיים בתיקייה הזאת." #~ msgid "Move here" #~ msgstr "העבר הנה" #~ msgid "Copy here" #~ msgstr "העתק לכאן" #~ msgid "folder" #~ msgstr "תיקייה" #~ msgid "Rename / Move" #~ msgstr "שנה שם / העבר" #~ msgid "Move to trash" #~ msgstr "העבר לאשפה" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "האם אתה בטוח שאתה רוצה למחוק את הפריט הזה?" #~ msgid "Show hidden files" #~ msgstr "הצג קבצים חבויים" #~ msgid "Skip hidden files" #~ msgstr "דלג על קבצים נסתרים" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "דלג על תיקיות CVS/.svn/.git/blib" #~ msgid "Change project directory" #~ msgstr "החלף את תיקיית פרויקט" #~ msgid "Tree listing" #~ msgstr "תרשים עץ" #~ msgid "Navigate" #~ msgstr "נווט" #~ msgid "Change listing mode view" #~ msgstr "שנה מצב תצוגה" #~ msgid "Finished Searching" #~ msgstr "החיפוש הסתיים" #~ msgid "Select all\tCtrl-A" #~ msgstr "בחר הכול\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "העתק\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "גזור\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "הדבק\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "החלף מצב הערות\tCtrl-Shift-H" # msgstr "עבור לקובץ הבא\tCtrl-TAB" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "הפוך השורות בבחירה להערות\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "בטל הערות בשורות הבחירה\tCtrl-Shift-M" #~ msgid "Error:\n" #~ msgstr "שגיאה:\n" #, fuzzy #~ msgid "Enable logging" #~ msgstr "אפשר שמירת יומן" #, fuzzy #~ msgid "Disable logging" #~ msgstr "בטל שמירת יומן" #~ msgid "Enable trace when logging" #~ msgstr "לאפשר מעקב ביומן" #~ msgid "Ping" #~ msgstr "פינג" #, fuzzy #~ msgid "&Close\tCtrl+W" #~ msgstr "סגור\tCtrl-W" #, fuzzy #~ msgid "&Open\tCtrl+O" #~ msgstr "פתח...\tCtrl-O" #, fuzzy #~ msgid "E&xit\tCtrl+X" #~ msgstr "גזור\tCtrl-X" #~ msgid "&Split window" #~ msgstr "חלון מפוצל" #~ msgid "Found %d matching occurrences" #~ msgstr "נמצאו %d מופעים מתאימים" #, fuzzy #~ msgid "GoTo Subs Window" #~ msgstr "עבור לחלון השגרות\tAlt-S" #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "תוסף:%s - טעינת מודול נכשלה: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "תוסף:%s - לא תואם ממשק Padre::Plugin. צריך להיות תת מחלקה של Padre::Plugin" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "תוסף:%s - לא ניתן ליצור את עצם התוסף: ה: הקוסטרוקטור לא מחזיר עצם מסוג " #~ "Padre::Plugin" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "תוסף:%s - חסרים תפריטים" #~ msgid "Workspace View" #~ msgstr "מרחב העבודה" #~ msgid "Save File" #~ msgstr "שמור קובץ" #~ msgid "Undo" #~ msgstr "בטל" #~ msgid "Redo" #~ msgstr "עשה שנית" #~ msgid "L:" #~ msgstr "ש':" #~ msgid "Ch:" #~ msgstr "תו:" #, fuzzy #~ msgid "Sub List" #~ msgstr "רשימת שגרות" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "קבע סימנייה" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "לך לסימנייה" #, fuzzy #~ msgid "Use PPI Syntax Highlighting" #~ msgstr "השתמש ב-PPI בשביל צביעת תחביר של Perl 5" #, fuzzy #~ msgid "Stop\tF6" #~ msgstr "עצור" #~ msgid "&Find\tCtrl-F" #~ msgstr "מצא\tCtrl-F" #, fuzzy #~ msgid "Replace\tCtrl-R" #~ msgstr "החלף ב:" #, fuzzy #~ msgid "Find Next\tF4" #~ msgstr "מצא הבא\tF4" #, fuzzy #~ msgid "Find Previous\tShift-F4" #~ msgstr "מצא הקודם\tShift-F4" #~ msgid "All available plugins on CPAN" #~ msgstr "כל התוספים הזמינים ב-CPAN" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "בדוק תוסף מהמדריך הנוכחי" #~ msgid "&Goto\tCtrl-G" #~ msgstr "לך אל\tCtrl-G" #, fuzzy #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "קטעי קוד\tCtrl-Shift-A" #, fuzzy #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "הפוך הכול לאותיות גדולות\tCtrl-Shift-U" #~ msgid "Diff" #~ msgstr "השוואה" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "עבור לקובץ הבא\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "עבור לקובץ הקודם\tCtrl-Shift-TAB" #, fuzzy #~ msgid "Disable Experimental Mode" #~ msgstr "בטל מצב ניסיוני" #~ msgid "Refresh Counter: " #~ msgstr "רענן אוגר: " #, fuzzy #~ msgid "&New\tCtrl-N" #~ msgstr "חדש\tCtrl-N" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "פתח בחירה\tCtrl-Shift-O" #, fuzzy #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "פתח סביבת עבודה\tCtrl-Shift-O" #~ msgid "Close All but Current" #~ msgstr "סגור הכול חוץ מהמסמך הנוכחי" #~ msgid "&Save\tCtrl-S" #~ msgstr "שמור\tCtrl-S" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "שמור סביבת עבודה...\tCtrl-Alt-S" #, fuzzy #~ msgid "&Quit\tCtrl-Q" #~ msgstr "יציאה\tCtrl-Q" #, fuzzy #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "" #~ "כל הזכויות שמורות 2008-2009 לצוות הפיתוח של Padre, כפי שרשום ב-Padre.pm" #~ msgid "Text to find:" #~ msgstr "טקסט לחיפוש" #~ msgid "&Use Regex" #~ msgstr "השתמש בביטוי רגולרי" #~ msgid "%s occurences were replaced" #~ msgstr "%s מופעים הוחלפו" #, fuzzy #~ msgid "Install Module..." #~ msgstr "הכנס מתוך קובץ..." #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "תוסף:%s - לא תואם ממשק Padre::Plugin. לא ניתן ליצור את התוסף" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "תוסף:%s - לא תואם ממשק Padre::Plugin. צריכה להיות קיימת השגרה " #~ "padre_interfaces" #~ msgid "Background Tasks are idle" #~ msgstr "משימות רגע לא פעילות" #~ msgid "Not implemented yet" #~ msgstr "לא מומש עדיין" #~ msgid "Not yet available" #~ msgstr "לא זמין עדיין" #~ msgid "Select Project Name or type in new one" #~ msgstr "בחר שם פרויקט או הקלד שם חדש" #~ msgid "(running from SVN checkout)" #~ msgstr "(מורץ מ-SVN checkout)" #~ msgid "No output" #~ msgstr "אין פלט" #~ msgid "Ac&k" #~ msgstr "Ac&k" #~ msgid "Recent Projects" #~ msgstr "פרויקטים אחרונים" #~ msgid "%s apparantly created." #~ msgstr "כנראה שנוצר %s." #~ msgid "&Bookmarks" #~ msgstr "סימניות" #, fuzzy #~ msgid "Not Yes" #~ msgstr "לא כן" #~ msgid "" #~ "Perl Application Development and Refactoring Environment\n" #~ "\n" #~ msgstr "" #~ "Perl Application Development and Refactoring Environment\n" #~ "\n" #~ msgid "Based on Wx.pm %s and %s\n" #~ msgstr "מבוסס על Wx.pm %s ו-%s\n" #~ msgid "Config at %s\n" #~ msgstr "הגדרות ב-%s\n" #~ msgid "Only .pl files can be executed" #~ msgstr "ניתן להריץ רק קובצי .pl" #~ msgid "Need to have something selected" #~ msgstr "צריך שיהיה משהו מסומן" Padre-1.00/share/locale/pt-br.po0000644000175000017500000050622211563550440015100 0ustar petepete# Portuguese translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # garu , 2008. # msgid "" msgstr "" "Project-Id-Version: PADRE\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-05-13 04:11-0700\n" "PO-Revision-Date: 2011-05-14 02:20-0300\n" "Last-Translator: Breno G. de Oliveira \n" "Language-Team: Brazilian Portuguese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:474 msgid "\".\" also matches newline" msgstr "\".\" tambm casa com quebra de linha" #: lib/Padre/Config.pm:445 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "\"Abrir sesso\" vai perguntar que sesso (conjunto de arquivos) abrir ao carregar o Padre." #: lib/Padre/Config.pm:447 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "\"arquivos abertos anteriormente\" vai lembrar dos arquivos abertos ao fechar o Padre, e abri-los novamente na prxima vez." #: lib/Padre/Wx/Dialog/RegexEditor.pm:478 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" e \"$\" casam com o incio e final de qualquer linha na string" #: lib/Padre/Wx/Dialog/PerlFilter.pm:208 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# Entrada em $_\n" "$_ = $_;\n" "# Saida em $_\n" #: lib/Padre/Wx/FindInFiles.pm:155 #, perl-format msgid "%s (%s results)" msgstr "%s (%s resultados)" #: lib/Padre/PluginManager.pm:614 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Falhou ao instanciar: %s" #: lib/Padre/PluginManager.pm:563 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Falhou ao carregar: %s" #: lib/Padre/PluginManager.pm:624 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - No foi possvel instanciar plugin" #: lib/Padre/PluginManager.pm:586 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - No uma subclasse de Padre::Plugin" #: lib/Padre/PluginManager.pm:599 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - Incompatvel com Padre %s - %s" #: lib/Padre/PluginManager.pm:574 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - Plugin vazio ou sem verso" #: lib/Padre/Wx/Dialog/WizardSelector.pm:174 #, perl-format msgid "%s has no constructor" msgstr "%s no possui construtor" #: lib/Padre/Wx/TodoList.pm:257 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s em TODO, verifique suas configuraes." #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s linha %s: %s" #: lib/Padre/Wx/Dialog/Positions.pm:124 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Linha: %s Arquivo: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2723 msgid "&About" msgstr "&Sobre" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "&Adicionar" #: lib/Padre/Wx/ActionLibrary.pm:839 msgid "&Autocomplete" msgstr "&Auto completar" #: lib/Padre/Wx/Dialog/WizardSelector.pm:86 msgid "&Back" msgstr "&Voltar" #: lib/Padre/Wx/ActionLibrary.pm:850 msgid "&Brace Matching" msgstr "Encontrar &bloco correspondente" #: lib/Padre/Wx/FBP/FindInFiles.pm:78 msgid "&Browse" msgstr "&Procurar" #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:155 #: lib/Padre/Wx/Dialog/OpenResource.pm:184 #: lib/Padre/Wx/Dialog/WizardSelector.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&Cancelar" #: lib/Padre/Wx/FBP/FindInFiles.pm:123 #: lib/Padre/Wx/FBP/Find.pm:85 msgid "&Case Sensitive" msgstr "Sensvel a &Caixa" #: lib/Padre/Wx/ActionLibrary.pm:284 #: lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/About.pm:86 #: lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 #: lib/Padre/Wx/Dialog/PerlFilter.pm:99 #: lib/Padre/Wx/Dialog/RegexEditor.pm:276 #: lib/Padre/Wx/Dialog/KeyBindings.pm:139 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 #: lib/Padre/Wx/Dialog/Replace.pm:191 msgid "&Close" msgstr "&Fechar" #: lib/Padre/Wx/ActionLibrary.pm:935 msgid "&Comment Selected Lines" msgstr "&Comentar Linhas Selecionadas" #: lib/Padre/Wx/ActionLibrary.pm:675 msgid "&Copy" msgstr "&Copiar" #: lib/Padre/Wx/Menu/Debug.pm:116 msgid "&Debug" msgstr "&Depurao" #: lib/Padre/Wx/ActionLibrary.pm:369 #: lib/Padre/Wx/FBP/Bookmarks.pm:90 #: lib/Padre/Wx/Dialog/KeyBindings.pm:126 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "&Apagar" #: lib/Padre/Wx/Dialog/PluginManager.pm:516 msgid "&Disable" msgstr "&Desativar" #: lib/Padre/Wx/Menu/Edit.pm:349 #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Edit" msgstr "&Editar" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:528 msgid "&Enable" msgstr "&Ativar" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "&Digite nmero de linha entre (1-%s):" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "&Escolha posio entre 1 e %s:" #: lib/Padre/Wx/Menu/File.pm:303 msgid "&File" msgstr "&Arquivo" #: lib/Padre/Wx/Dialog/Advanced.pm:97 #: lib/Padre/Wx/Dialog/KeyBindings.pm:64 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:26 msgid "&Filter:" msgstr "&Filtro:" #: lib/Padre/Wx/FBP/FindInFiles.pm:139 #: lib/Padre/Wx/Dialog/Replace.pm:150 msgid "&Find" msgstr "&Procurar" #: lib/Padre/Wx/ActionLibrary.pm:1218 msgid "&Find Previous" msgstr "Procurar &Anterior" #: lib/Padre/Wx/ActionLibrary.pm:1160 msgid "&Find..." msgstr "&Procurar..." #: lib/Padre/Wx/ActionLibrary.pm:1653 msgid "&Full Screen" msgstr "&Tela cheia" #: lib/Padre/Wx/ActionLibrary.pm:762 msgid "&Go To..." msgstr "&Ir para..." #: lib/Padre/Wx/Outline.pm:221 msgid "&Go to Element" msgstr "&Ir para elemento" #: lib/Padre/Wx/Menu/Help.pm:121 msgid "&Help" msgstr "Aj&uda" #: lib/Padre/Wx/Dialog/Snippets.pm:24 #: lib/Padre/Wx/Dialog/SpecialValues.pm:50 msgid "&Insert" msgstr "&Inserir" #: lib/Padre/Wx/ActionLibrary.pm:873 msgid "&Join Lines" msgstr "&Juntar linhas" #: lib/Padre/Wx/Dialog/HelpSearch.pm:153 msgid "&Matching Help Topics:" msgstr "&Tpicos de ajuda encontrados:" #: lib/Padre/Wx/Dialog/OpenResource.pm:228 msgid "&Matching Items:" msgstr "&Itens Encontrados:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:183 msgid "&Matching Menu Items:" msgstr "&Ocorrncias de itens de menu:" #: lib/Padre/Wx/ActionLibrary.pm:130 msgid "&New" msgstr "&Novo" #: lib/Padre/Wx/Dialog/WizardSelector.pm:87 #: lib/Padre/Wx/Dialog/Search.pm:172 msgid "&Next" msgstr "&Prximo" #: lib/Padre/Wx/ActionLibrary.pm:773 msgid "&Next Problem" msgstr "&Prximo problema" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 #: lib/Padre/Wx/Dialog/OpenResource.pm:178 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/ActionLibrary.pm:216 #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "&Abrir" #: lib/Padre/Wx/Dialog/RegexEditor.pm:229 msgid "&Original text:" msgstr "Texto &original:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:81 msgid "&Output text:" msgstr "&Sada de texto:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "Classes de caracteres &POSIX" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "&Paste" msgstr "Co&lar" #: lib/Padre/Wx/Menu/Perl.pm:101 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:67 msgid "&Perl filter source:" msgstr "&Filtro Perl" #: lib/Padre/Wx/Dialog/PluginManager.pm:131 msgid "&Preferences" msgstr "&Preferncias" #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "&Print..." msgstr "&Imprimir..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "&Quantificadores" #: lib/Padre/Wx/ActionLibrary.pm:784 msgid "&Quick Fix" msgstr "&Correo Rpida" #: lib/Padre/Wx/ActionLibrary.pm:554 msgid "&Quit" msgstr "Sai&r" #: lib/Padre/Wx/Menu/File.pm:263 msgid "&Recent Files" msgstr "Arquivos Re¢es" #: lib/Padre/Wx/ActionLibrary.pm:594 msgid "&Redo" msgstr "&Refazer" #: lib/Padre/Wx/FBP/FindInFiles.pm:115 #: lib/Padre/Wx/FBP/Find.pm:69 msgid "&Regular Expression" msgstr "&Expresso Regular" #: lib/Padre/Wx/Dialog/RegexEditor.pm:169 msgid "&Regular expression:" msgstr "&Expresso regular:" #: lib/Padre/Wx/Main.pm:4114 #: lib/Padre/Wx/Main.pm:6103 msgid "&Reload selected" msgstr "&Recarregar selecionados" #: lib/Padre/Wx/Dialog/Replace.pm:170 msgid "&Replace" msgstr "&Substituir" #: lib/Padre/Wx/Dialog/RegexEditor.pm:250 msgid "&Replace text with:" msgstr "S&ubstituir texto com:" #: lib/Padre/Wx/Dialog/Advanced.pm:178 #: lib/Padre/Wx/Dialog/KeyBindings.pm:132 msgid "&Reset" msgstr "&Restaurar originais" #: lib/Padre/Wx/Dialog/RegexEditor.pm:260 msgid "&Result from replace:" msgstr "&Resultado da substituio:" #: lib/Padre/Wx/Menu/Run.pm:74 msgid "&Run" msgstr "Executa&r" #: lib/Padre/Wx/ActionLibrary.pm:413 #: lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "&Salvar" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&Salvar sesso automaticamente" #: lib/Padre/Wx/Menu/Search.pm:99 msgid "&Search" msgstr "&Pesquisar" #: lib/Padre/Wx/Dialog/OpenResource.pm:206 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&Selecione um item para acessar (? = qualquer caractere, * = qualquer string):" #: lib/Padre/Wx/Main.pm:4113 #: lib/Padre/Wx/Main.pm:6102 msgid "&Select files to reload:" msgstr "&Escolha arquivos para recarregar:" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "&Select to Matching Brace" msgstr "&Seleciona at bloco correspondente" #: lib/Padre/Wx/Dialog/Advanced.pm:172 #: lib/Padre/Wx/Dialog/KeyBindings.pm:120 msgid "&Set" msgstr "&Definir" #: lib/Padre/Wx/Dialog/PluginManager.pm:489 #: lib/Padre/Wx/Dialog/PluginManager.pm:501 msgid "&Show error message" msgstr "&Exibir mensagem de erro" #: lib/Padre/Wx/ActionLibrary.pm:922 msgid "&Toggle Comment" msgstr "&Ativar Comentrios" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "&Ferramentas" #: lib/Padre/Wx/ActionLibrary.pm:2711 msgid "&Translate Padre..." msgstr "&Traduza o Padre..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:176 msgid "&Type a menu item name to access:" msgstr "&Digite o nome de um item de menu para acessar:" #: lib/Padre/Wx/ActionLibrary.pm:947 msgid "&Uncomment Selected Lines" msgstr "&Descomentar Linhas Selecionadas" #: lib/Padre/Wx/ActionLibrary.pm:574 msgid "&Undo" msgstr "&Desfazer" #: lib/Padre/Wx/Dialog/DocStats.pm:60 msgid "&Update" msgstr "&Atualizar" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Valor:" #: lib/Padre/Wx/Menu/View.pm:258 msgid "&View" msgstr "E&xibir" #: lib/Padre/Wx/Menu/Window.pm:110 msgid "&Window" msgstr "&Janela" #: lib/Padre/Wx/Debugger.pm:407 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "'%s' no parece uma varivel. Por favor selecione uma varivel no cdigo e tente novamente." #: lib/Padre/Wx/ActionLibrary.pm:2363 msgid "(Re)load Current Plug-in" msgstr "(Re)carregar Plugin Atual" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(a partir do Perl %s)" #: lib/Padre/PluginManager.pm:919 msgid "(core)" msgstr "(core)" #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "- OBSOLETO!" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "Caracteres US-ASCII de 7 bits" #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "Uma caixa de dilogo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 msgid "A comment" msgstr "Um comentrio" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "Um grupo" #: lib/Padre/Config.pm:441 msgid "A new empty file" msgstr "Um novo arquivo vazio" #: lib/Padre/Plugin/Devel.pm:291 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Conjunto de ferramentas usadas pelos desenvolvedores do Padre\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "Limite de palavra" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Plugin/PopularityContest.pm:201 #: lib/Padre/Plugin/Devel.pm:102 msgid "About" msgstr "Sobre" #: lib/Padre/Wx/About.pm:25 msgid "About Padre" msgstr "Sobre o Padre" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Ao: %s" #: lib/Padre/Wx/FBP/Preferences.pm:208 msgid "Add another closing bracket if there already is one" msgstr "Adicionar outro terminador de bloco se j houver um" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Configuraes avanadas" #: lib/Padre/Wx/FBP/Preferences.pm:839 msgid "Advanced..." msgstr "Avanado..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Alarm" msgstr "Alarme" #: lib/Padre/Wx/Syntax.pm:67 msgid "Alien Error" msgstr "Erro externo" #: lib/Padre/Wx/ActionLibrary.pm:1725 msgid "Align a selection of text to the same left column." msgstr "Alinha o texto selecionado mesma coluna da esquerda." #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "Todos" #: lib/Padre/Wx/Main.pm:3933 #: lib/Padre/Wx/Main.pm:3934 #: lib/Padre/Wx/Main.pm:4307 #: lib/Padre/Wx/Main.pm:5589 msgid "All Files" msgstr "Todos os Arquivos" #: lib/Padre/Document/Perl.pm:515 msgid "All braces appear to be matched" msgstr "Todos os blocos de chaves parecem estar fechados" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Allow the selection of another name to save the current document" msgstr "Permite a escolha de outro nome para salvar o documento atual" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphabetic characters" msgstr "Caracteres alfabticos" #: lib/Padre/Config.pm:557 msgid "Alphabetical Order" msgstr "Ordem Alfabtica" #: lib/Padre/Config.pm:558 msgid "Alphabetical Order (Private Last)" msgstr "Ordem Alfabtica (privados no final)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "Caracteres alfanumricos" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "Caracteres alfanumricos e \"_\"" #: lib/Padre/Wx/Dialog/KeyBindings.pm:90 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Alternation" msgstr "Alternao" #: lib/Padre/Wx/Dialog/ModuleStart.pm:182 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" "Um erro ocorreu ao gerar '%s':\n" "%s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "Qualquer caractere exceto quebra de linha" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "Qualquer dgito decimal" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "Qualquer no-dgito" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "Qualquer caractere no-espao" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "Qualquer caractere no-palavra" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "Qualquer caractere de espao" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "Qualquer caractere de palavra" #: lib/Padre/Config.pm:368 #: lib/Padre/Wx/Dialog/ModuleStart.pm:16 #: lib/Padre/Wx/Dialog/ModuleStart.pm:36 msgid "Apache License" msgstr "Licena Apache" #: lib/Padre/Wx/FBP/Preferences.pm:1046 msgid "Appearance" msgstr "Aparncia" #: lib/Padre/Wx/FBP/Preferences.pm:407 msgid "Appearance Preview" msgstr "Preview da Aparncia" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "Apply Diff to File" msgstr "Aplicar Diff em Arquivo" #: lib/Padre/Wx/ActionLibrary.pm:1106 msgid "Apply Diff to Project" msgstr "Aplicar Diff em Projeto" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "Apply a patch file to the current document" msgstr "Aplica arquivo de patch no documento atual" #: lib/Padre/Wx/ActionLibrary.pm:1107 msgid "Apply a patch file to the current project" msgstr "Aplica arquivo de patch no projeto atual" #: lib/Padre/Wx/ActionLibrary.pm:785 msgid "Apply one of the quick fixes for the current document" msgstr "Aplica uma das correes rpidas para o documento atual" #: lib/Padre/Locale.pm:156 msgid "Arabic" msgstr "rabe" #: lib/Padre/Config.pm:369 #: lib/Padre/Wx/Dialog/ModuleStart.pm:17 #: lib/Padre/Wx/Dialog/ModuleStart.pm:37 msgid "Artistic License 1.0" msgstr "Licena Artstica 1.0" #: lib/Padre/Config.pm:370 #: lib/Padre/Wx/Dialog/ModuleStart.pm:18 #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "Artistic License 2.0" msgstr "Licena Artstica 2.0" #: lib/Padre/Wx/ActionLibrary.pm:485 msgid "Ask for a session name and save the list of files currently opened" msgstr "Pergunta por um nome de sesso e grava a lista de arquivos abertos" #: lib/Padre/Wx/ActionLibrary.pm:555 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Pergunta se deve salvar arquivos no salvos e sai do Padre" #: lib/Padre/Wx/ActionLibrary.pm:1861 msgid "Assign the selected expression to a newly declared variable" msgstr "Atribui a expresso selecionada a uma nova varivel" #: lib/Padre/Wx/Outline.pm:360 msgid "Attributes" msgstr "Atributos" #: lib/Padre/Wx/FBP/Sync.pm:287 msgid "Authentication" msgstr "Altenticao" #: lib/Padre/Wx/FBP/ModuleStarter.pm:49 #: lib/Padre/Wx/Dialog/ModuleStart.pm:58 msgid "Author:" msgstr "Autor:" #: lib/Padre/Wx/FBP/Preferences.pm:76 msgid "Auto-fold POD markup when code folding enabled" msgstr "Auto-agrupar markups POD ao ativar agrupamento de cdigo" #: lib/Padre/Wx/FBP/Preferences.pm:737 msgid "Autocomplete" msgstr "Autocompletar" #: lib/Padre/Wx/FBP/Preferences.pm:746 msgid "Autocomplete always while typing" msgstr "Autocompletar sempre ao digitar" #: lib/Padre/Wx/FBP/Preferences.pm:200 msgid "Autocomplete brackets" msgstr "&Autocompletar blocos" #: lib/Padre/Wx/FBP/Preferences.pm:762 msgid "Autocomplete new functions in scripts" msgstr "Autocompletar novas subrotinas em programas" #: lib/Padre/Wx/FBP/Preferences.pm:754 msgid "Autocomplete new methods in packages" msgstr "Autocompletar novos mtodos em pacotes" #: lib/Padre/Wx/Main.pm:3298 msgid "Autocompletion error" msgstr "Erro ao autocompletar" #: lib/Padre/Wx/FBP/Preferences.pm:495 msgid "Autoindent" msgstr "Auto-identao" #: lib/Padre/Wx/FBP/Preferences.pm:443 msgid "Automatic indentation style detection" msgstr "Deteco automtica de estilo de identao" #: lib/Padre/Wx/StatusBar.pm:293 msgid "Background Tasks are running" msgstr "Tarefas ao fundo esto executando" #: lib/Padre/Wx/StatusBar.pm:294 msgid "Background Tasks are running with high load" msgstr "Tarefas ao fundo esto executando com carga alta" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "Referncia ao n-simo grupo" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Backspace" msgstr "Backspace" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "Incio da linha" #: lib/Padre/Wx/FBP/Preferences.pm:1045 msgid "Behaviour" msgstr "Comportamento" #: lib/Padre/Wx/About.pm:106 msgid "Blue butterfly on a green leaf" msgstr "Borboleta azul em folha verde" #: lib/Padre/Wx/FBP/Bookmarks.pm:26 msgid "Bookmarks" msgstr "Marcaes" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Booleano" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Browse directory of the current document to open one or several files" msgstr "Navega pelo diretrio do documento atual para abrir arquivo(s)" #: lib/Padre/Wx/ActionLibrary.pm:273 msgid "Browse the directory of the installed examples to open one file" msgstr "Navega pelo diretrio dos exemplos instalados para abrir um arquivo" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "Browser: nenhum visualizador para %s" #: lib/Padre/Wx/FBP/ModuleStarter.pm:77 #: lib/Padre/Wx/Dialog/ModuleStart.pm:64 msgid "Builder:" msgstr "Builder:" #: lib/Padre/Wx/ActionLibrary.pm:1939 msgid "Builds the current project, then run all tests." msgstr "\"Build\" do projeto atual, rodando todos os testes." #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:358 msgid "CHANGED" msgstr "MODIFICADO" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/Preferences.pm:853 #: lib/Padre/Wx/FBP/ModuleStarter.pm:146 #: lib/Padre/Wx/FBP/FindInFiles.pm:146 #: lib/Padre/Wx/FBP/Bookmarks.pm:118 #: lib/Padre/Wx/FBP/Find.pm:130 #: lib/Padre/Wx/FBP/Insert.pm:103 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "Cancelar" #: lib/Padre/Wx/Main.pm:5069 msgid "Cannot diff if file was never saved" msgstr "No possvel executar diff se arquivo nunca foi salvo" #: lib/Padre/Wx/Main.pm:3627 #, perl-format msgid "Cannot open a directory: %s" msgstr "No foi possvel abrir diretrio: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "No possvel definir marcao em documento no salvo" #: lib/Padre/Wx/Dialog/Search.pm:180 msgid "Case &insensitive" msgstr "&Insensvel caixa" #: lib/Padre/Wx/Dialog/Replace.pm:80 msgid "Case &sensitive" msgstr "&Sensvel a Caixa" #: lib/Padre/Wx/Dialog/RegexEditor.pm:470 msgid "Case-insensitive matching" msgstr "Insensvel caixa" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "Categoria:" #: lib/Padre/Wx/ActionLibrary.pm:1076 msgid "Change the current selection to lower case" msgstr "Converte a seleo atual para minsculas" #: lib/Padre/Wx/ActionLibrary.pm:1065 msgid "Change the current selection to upper case" msgstr "Converte a seleo atual para maisculas" #: lib/Padre/Wx/ActionLibrary.pm:961 msgid "Change the encoding of the current document to the default of the operating system" msgstr "Modifica a codificao do documento atual para o padro do sistema operacional" #: lib/Padre/Wx/ActionLibrary.pm:971 msgid "Change the encoding of the current document to utf-8" msgstr "Modifica a codificao do documento atual para utf-8" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "Converte o caractere de fim de linha do documento atual para o usado no Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "Converte o caractere de fim de linha do documento atual para o usado no Unix, Linux, Mac OSX" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "Converte o caractere de fim de linha do documento atual para o usado no MS Windows" #: lib/Padre/Wx/Menu/Refactor.pm:49 #: lib/Padre/Document/Perl.pm:1573 msgid "Change variable style" msgstr "Trocar estilo de variveis" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "Change variable style from camelCase to Camel_Case" msgstr "Mudar estilo de variveis de camelCase para Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1806 msgid "Change variable style from camelCase to camel_case" msgstr "Mudar estilo de variveis de camelCase para camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1792 msgid "Change variable style from camel_case to CamelCase" msgstr "Mudar estilo de variveis de camel_case para CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1778 msgid "Change variable style from camel_case to camelCase" msgstr "Mudar estilo de variveis de camel_case para camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1819 msgid "Change variable style to Using_Underscores" msgstr "Trocar estilo de variveis para usar_sublinhado" #: lib/Padre/Wx/ActionLibrary.pm:1805 msgid "Change variable style to using_underscores" msgstr "Trocar estilo de variveis para usar_sublinhados" #: lib/Padre/Wx/ActionLibrary.pm:1791 msgid "Change variable to CamelCase" msgstr "Renomear varivel para camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1777 msgid "Change variable to camelCase" msgstr "Renomear variveis em camelCase" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "Character classes" msgstr "Classes de caracteres" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:236 msgid "Character position" msgstr "Posio do caractere" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "Conjunto de caracteres" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "Caracteres (incluindo espaos)" #: lib/Padre/Document/Perl.pm:516 msgid "Check Complete" msgstr "Verificao Concluda" #: lib/Padre/Document/Perl.pm:586 #: lib/Padre/Document/Perl.pm:640 #: lib/Padre/Document/Perl.pm:675 msgid "Check cancelled" msgstr "Verificao cancelada" #: lib/Padre/Wx/ActionLibrary.pm:1675 msgid "Check for Common (Beginner) Errors" msgstr "Procura por erros comuns (de iniciantes)" #: lib/Padre/Wx/FBP/Preferences.pm:168 msgid "Check for file updates on disk every (seconds)" msgstr "Procurar por atualizaes de arquivos em disco a cada (segundos)" #: lib/Padre/Wx/ActionLibrary.pm:1676 msgid "Check the current file for common beginner errors" msgstr "Procura no arquivo atual por erros comuns de iniciantes" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "Chins" #: lib/Padre/Locale.pm:440 msgid "Chinese (Simplified)" msgstr "Chins (Simplificado)" #: lib/Padre/Locale.pm:450 msgid "Chinese (Traditional)" msgstr "Chins (Tradicional)" #: lib/Padre/Wx/Main.pm:3807 #: lib/Padre/Wx/Dialog/Positions.pm:120 msgid "Choose File" msgstr "Escolha arquivo" #: lib/Padre/Wx/FBP/Find.pm:93 msgid "Cl&ose Window on Hit" msgstr "Fechar &Janela ao Encontrar" #: lib/Padre/Wx/Dialog/Snippets.pm:22 #: lib/Padre/Wx/Dialog/SpecialValues.pm:46 msgid "Class:" msgstr "Classe:" #: lib/Padre/Wx/ActionLibrary.pm:529 msgid "Clean Recent Files List" msgstr "Limpar Lista de Arquivos Recentes" #: lib/Padre/Wx/FBP/Preferences.pm:68 msgid "Clean up file content on saving (for supported document types)" msgstr "Limpar contedo do arquivo ao salvar (para tipos de documento reconhecidos)" #: lib/Padre/Wx/ActionLibrary.pm:645 msgid "Clear Selection Marks" msgstr "Limpar marcas de seleo" #: lib/Padre/Wx/Dialog/OpenResource.pm:222 msgid "Click on the arrow for filter settings" msgstr "Clique na seta para configuraes de filtro" #: lib/Padre/Wx/FBP/Text.pm:54 #: lib/Padre/Wx/FBP/Sync.pm:252 #: lib/Padre/Wx/Menu/File.pm:144 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:280 #: lib/Padre/Wx/Dialog/SessionSave.pm:230 msgid "Close" msgstr "Fechar" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "Close Files..." msgstr "Fechar arquivos..." #: lib/Padre/Wx/Dialog/Replace.pm:108 msgid "Close Window on &Hit" msgstr "Fechar &Janela ao Encontrar" #: lib/Padre/Wx/Main.pm:4769 msgid "Close all" msgstr "Fechar tudo" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all Files" msgstr "Fechar todos os arquivos" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close all other Files" msgstr "Fechar todos os outros arquivos" #: lib/Padre/Wx/ActionLibrary.pm:299 msgid "Close all the files belonging to the current project" msgstr "Fecha todos os arquivos que pertencem ao projeto atual" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Close all the files except the current one" msgstr "Fecha todos os arquivos exceto o atual" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files open in the editor" msgstr "Fecha todos os arquivos abertos no editor" #: lib/Padre/Wx/ActionLibrary.pm:320 msgid "Close all the files that do not belong to the current project" msgstr "Fecha todos os arquivos que no pertencem ao projeto atual" #: lib/Padre/Wx/ActionLibrary.pm:285 msgid "Close current document" msgstr "Fecha o documento atual" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Close current document and remove the file from disk" msgstr "Fecha documento atual e remove arquivo do disco" #: lib/Padre/Wx/ActionLibrary.pm:319 msgid "Close other Projects" msgstr "Fechar outros projetos" #: lib/Padre/Wx/Main.pm:4825 msgid "Close some" msgstr "Fechar alguns" #: lib/Padre/Wx/Main.pm:4809 msgid "Close some files" msgstr "Fechar alguns arquivos" #: lib/Padre/Wx/ActionLibrary.pm:298 msgid "Close this Project" msgstr "Fechar este projeto" #: lib/Padre/Config.pm:556 msgid "Code Order" msgstr "Ordem do Cdigo" #: lib/Padre/Wx/FBP/Preferences.pm:304 msgid "Coloured text in output window (ANSI)" msgstr "Texto colorido em janela de sada (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1884 msgid "Combine scattered POD at the end of the document" msgstr "Agregar POD no final do documento" #: lib/Padre/Wx/Command.pm:262 msgid "Command" msgstr "Comando" #: lib/Padre/Wx/Main.pm:2421 msgid "Command line" msgstr "Linha de comando" #: lib/Padre/Wx/ActionLibrary.pm:923 msgid "Comment out or remove comment out of selected lines in the document" msgstr "Comenta ou remove comentrio das linhas selecionadas do documento" #: lib/Padre/Wx/ActionLibrary.pm:936 msgid "Comment out selected lines in the document" msgstr "Comenta as linhas selecionadas no documento" #: lib/Padre/Wx/ActionLibrary.pm:1087 msgid "Compare the file in the editor to that on the disk and show the diff in the output window" msgstr "Compara o arquivo no editor com o que est salvo na unidade e exibe as diferenas na janela de sada" #: lib/Padre/Wx/About.pm:318 msgid "Config:" msgstr "Configurao:" #: lib/Padre/Wx/FBP/Sync.pm:143 #: lib/Padre/Wx/FBP/Sync.pm:171 msgid "Confirm" msgstr "Confirmar" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "Conectando-se a servidor FTP %s..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Conexo com servidor FTP realizada com sucesso." #: lib/Padre/Wx/FindResult.pm:178 msgid "Content" msgstr "Contedo" #: lib/Padre/Config.pm:490 msgid "Contents of the status bar" msgstr "Contedo da barra de status" #: lib/Padre/Config.pm:478 msgid "Contents of the window title" msgstr "Contedo do ttulo da janela" #: lib/Padre/Wx/ActionLibrary.pm:2620 msgid "Context Help" msgstr "Ajuda de Contexto" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Control character" msgstr "Caractere de controle" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "Caracteres de controle" #: lib/Padre/Wx/Menu/Edit.pm:200 msgid "Convert Encoding" msgstr "Converter Codificao" #: lib/Padre/Wx/Menu/Edit.pm:222 msgid "Convert Line Endings" msgstr "Converter terminao de linha" #: lib/Padre/Wx/ActionLibrary.pm:1023 msgid "Convert all tabs to spaces in the current document" msgstr "Converte todos os tabs em espaos no documento atual" #: lib/Padre/Wx/ActionLibrary.pm:1033 msgid "Convert all the spaces to tabs in the current document" msgstr "Converte todos os espaos em tabs no documento atual" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Copiar" #: lib/Padre/Wx/FindResult.pm:249 msgid "Copy &All" msgstr "&Copiar Tudo" #: lib/Padre/Wx/FindResult.pm:226 msgid "Copy &Selected" msgstr "Copiar &Seleo" #: lib/Padre/Wx/ActionLibrary.pm:719 msgid "Copy Directory Name" msgstr "Copiar nome do diretrio" #: lib/Padre/Wx/ActionLibrary.pm:732 msgid "Copy Editor Content" msgstr "Copiar contedo do editor" #: lib/Padre/Wx/ActionLibrary.pm:705 msgid "Copy Filename" msgstr "Copiar nome do arquivo" #: lib/Padre/Wx/ActionLibrary.pm:691 msgid "Copy Full Filename" msgstr "Copiar nome completo do arquivo" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Copiar nome" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Copy Specials" msgstr "Copiar especiais" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Copiar valor" #: lib/Padre/Wx/Dialog/OpenResource.pm:262 msgid "Copy filename to clipboard" msgstr "Copiar nome do arquivo para rea de transferncia" #: lib/Padre/Wx/Directory/TreeCtrl.pm:163 #, perl-format msgid "Could not create: '%s': %s" msgstr "No foi possvel criar: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:182 #, perl-format msgid "Could not delete: '%s': %s" msgstr "No foi possvel remover: '%s': %s" #: lib/Padre/Wx/Main.pm:3249 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "No foi possvel determinar caractere de comentrio para tipo de documento %s" #: lib/Padre/Wx/Debugger.pm:389 #, perl-format msgid "Could not evaluate '%s'" msgstr "No foi possvel avaliar '%s'" #: lib/Padre/Util/FileBrowser.pm:216 msgid "Could not find KDE or GNOME" msgstr "No foi possvel encontrar KDE ou Gnome" #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 msgid "Could not find a help provider for " msgstr "No foi possvel encontrar ajuda para" #: lib/Padre/Wx/Main.pm:3796 #, perl-format msgid "Could not find file '%s'" msgstr "No foi possvel encontrar arquivo '%s'" #: lib/Padre/Wx/Main.pm:2487 msgid "Could not find perl executable" msgstr "No foi possvel encontrar executvel perl" #: lib/Padre/Wx/Main.pm:2457 #: lib/Padre/Wx/Main.pm:2518 #: lib/Padre/Wx/Main.pm:2573 msgid "Could not find project root" msgstr "No foi possvel encontrar a raiz do projeto" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "No foi possvel encontrar o plugin Padre::Plugin::My" #: lib/Padre/PluginManager.pm:1045 msgid "Could not locate project directory." msgstr "No foi possvel localizar diretrio de projeto." #: lib/Padre/Wx/Main.pm:4191 #, perl-format msgid "Could not reload file: %s" msgstr "No foi possvel recarregar arquivo: %s" #: lib/Padre/Wx/Main.pm:4599 msgid "Could not save file: " msgstr "No foi possvel salvar arquivo:" #: lib/Padre/Wx/Debugger.pm:226 #, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "No foi possvel ativar ponto de parada (breakpoint) no arquivo '%s' linha '%s'" #: lib/Padre/Wx/Directory/TreeCtrl.pm:237 msgid "Create Directory" msgstr "Criar diretrio" #: lib/Padre/Wx/ActionLibrary.pm:1750 msgid "Create Project Tagsfile" msgstr "Criar \"tagsfile\" para projeto" #: lib/Padre/Wx/ActionLibrary.pm:1601 msgid "Create a bookmark in the current file current row" msgstr "Cria marcao na linha atual do arquivo atual" #: lib/Padre/Wx/About.pm:102 msgid "Created by" msgstr "Criado por" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:15 msgid "Creates a Padre Plugin" msgstr "Cria um Plugin do Padre" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:15 msgid "Creates a Padre document" msgstr "Cria um documento do Padre" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:17 msgid "Creates a Perl 5 module or script" msgstr "Cria um mdulo ou programa Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:1751 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "Cria um arquivo perltags para o projeto atual, possibilitando procurar mtodos e autocompletar." #: lib/Padre/Wx/Dialog/KeyBindings.pm:89 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:660 msgid "Cu&t" msgstr "&Recortar" #: lib/Padre/Document/Perl.pm:674 #, perl-format msgid "Current '%s' not found" msgstr "'%s' atual no encontrado." #: lib/Padre/Wx/Dialog/OpenResource.pm:245 msgid "Current Directory: " msgstr "Diretrio Atual:" #: lib/Padre/Wx/ActionLibrary.pm:2633 msgid "Current Document" msgstr "Documento Atual" #: lib/Padre/Document/Perl.pm:639 msgid "Current cursor does not seem to point at a method" msgstr "Cursor no parece apontar para um mtodo" #: lib/Padre/Document/Perl.pm:585 #: lib/Padre/Document/Perl.pm:619 msgid "Current cursor does not seem to point at a variable" msgstr "Cursor no parece apontar para uma varivel" #: lib/Padre/Document/Perl.pm:863 #: lib/Padre/Document/Perl.pm:913 #: lib/Padre/Document/Perl.pm:951 msgid "Current cursor does not seem to point at a variable." msgstr "Cursor no parece apontar para uma varivel." #: lib/Padre/Wx/Main.pm:2512 #: lib/Padre/Wx/Main.pm:2564 msgid "Current document has no filename" msgstr "Documento atual no possui nome" #: lib/Padre/Wx/Main.pm:2567 msgid "Current document is not a .t file" msgstr "Documento atual no um arquivo .t" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "Linha atual: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "Posio atual: %s" #: lib/Padre/Wx/FBP/Preferences.pm:186 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "Taxa de Piscada do Cursor (milisegundos - 0 = sem piscar; 500 = padro)" #: lib/Padre/Wx/ActionLibrary.pm:1835 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "Recorte a seleo atual e crie uma subrotina a partir dela. Uma chamada para essa subrotina adicionada onde a seleo estava." #: lib/Padre/Locale.pm:166 msgid "Czech" msgstr "Tcheco" #: lib/Padre/Wx/Dialog/WindowList.pm:356 msgid "DELETED" msgstr "REMOVIDO" #: lib/Padre/Locale.pm:176 msgid "Danish" msgstr "Dinamarqus" #: lib/Padre/Wx/Dialog/SpecialValues.pm:15 msgid "Date/Time" msgstr "Data/Hora" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:395 msgid "Debug" msgstr "Depurao" #: lib/Padre/Wx/Debug.pm:113 msgid "Debugger" msgstr "Depurador" #: lib/Padre/Wx/Debugger.pm:78 msgid "Debugger is already running" msgstr "Depurador j est em execuo" #: lib/Padre/Wx/Debugger.pm:193 #: lib/Padre/Wx/Debugger.pm:275 #: lib/Padre/Wx/Debugger.pm:299 #: lib/Padre/Wx/Debugger.pm:333 #: lib/Padre/Wx/Debugger.pm:353 msgid "Debugger not running" msgstr "Depurador no est em execuo" #: lib/Padre/Wx/Debugger.pm:137 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "Depurao falhou. Voc verificou se o programa possui erros de sintaxe?" #: lib/Padre/Wx/ActionLibrary.pm:1577 msgid "Decrease Font Size" msgstr "Diminuir tamanho da fonte" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "Padro" #: lib/Padre/Wx/FBP/Preferences.pm:153 msgid "Default line ending" msgstr "Terminao de linha padro" #: lib/Padre/Wx/FBP/Preferences.pm:99 msgid "Default projects directory" msgstr "Diretrio padro de projetos" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Valor padro:" #: lib/Padre/Wx/FBP/Preferences.pm:52 msgid "Default word wrap on for each file" msgstr "Quebra automtica de linha ativado para cada arquivo" #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Delay the action queue for 10 seconds" msgstr "Atrasar fila de aes por 10 segundos" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Delay the action queue for 30 seconds" msgstr "Atrasar fila de aes por 30 segundos" #: lib/Padre/Wx/FBP/Sync.pm:237 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Delete" msgstr "Apagar" #: lib/Padre/Wx/FBP/Bookmarks.pm:104 msgid "Delete &All" msgstr "Apagar &Tudo" #: lib/Padre/Wx/Directory/TreeCtrl.pm:226 msgid "Delete File" msgstr "Apagar arquivo" #: lib/Padre/Wx/ActionLibrary.pm:1052 msgid "Delete Leading Spaces" msgstr "Retirar espaos do incio da linha" #: lib/Padre/Wx/ActionLibrary.pm:1042 msgid "Delete Trailing Spaces" msgstr "Retirar espaos do final da linha" #: lib/Padre/Wx/Syntax.pm:37 msgid "Deprecation" msgstr "Obsoletos" #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "Descrio" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:209 msgid "Description:" msgstr "Descrio:" #: lib/Padre/Wx/About.pm:64 msgid "Development" msgstr "Desenvolvimento" #: lib/Padre/Wx/Dialog/Bookmarks.pm:63 msgid "Did not provide a bookmark name" msgstr "No forneceu nome para Marcao" #: lib/Padre/CPAN.pm:118 #: lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "No forneceu uma distribuio" #: lib/Padre/Wx/Dialog/Bookmarks.pm:99 msgid "Did not select a bookmark" msgstr "Nenhuma marcao selecionada" #: lib/Padre/Wx/Menu/Edit.pm:295 msgid "Diff Tools" msgstr "Ferramentas para Diff" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Diff to Saved Version" msgstr "Diff entre ltima verso salva e atual" #: lib/Padre/Wx/FBP/Preferences.pm:518 msgid "Diff tool" msgstr "Ferramenta para diff" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "Dgitos" #: lib/Padre/Config.pm:588 msgid "Directories First" msgstr "Diretrios primeiro" #: lib/Padre/Config.pm:589 msgid "Directories Mixed" msgstr "Diretrios misturados" #: lib/Padre/Wx/Directory/TreeCtrl.pm:83 msgid "Directory" msgstr "Diretrio" #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Disk" msgstr "Disco" #: lib/Padre/Wx/ActionLibrary.pm:2167 msgid "Display Value" msgstr "Exibir valor" #: lib/Padre/Wx/ActionLibrary.pm:2168 msgid "Display the current value of a variable in the right hand side debugger pane" msgstr "Exibe o valor atual de uma varivel do lado direito do painel de depurao" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "No exibir isso novamente" #: lib/Padre/Wx/Main.pm:4943 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "Tem certeza que deseja fechar e remover %s do disco?" #: lib/Padre/Wx/Main.pm:2804 msgid "Do you want to continue?" msgstr "Gostaria de continuar?" #: lib/Padre/Wx/Dialog/KeyBindings.pm:391 msgid "Do you want to override it with the selected action?" msgstr "Gostaria de substitui-la pela ao selecionada?" #: lib/Padre/Wx/WizardLibrary.pm:36 #: lib/Padre/Wx/Dialog/DocStats.pm:95 msgid "Document" msgstr "Documento" #: lib/Padre/Wx/ActionLibrary.pm:541 #: lib/Padre/Wx/Dialog/DocStats.pm:31 msgid "Document Statistics" msgstr "Estatsticas do Documento:" #: lib/Padre/Wx/Right.pm:52 msgid "Document Tools" msgstr "Ferramentas para Documentos" #: lib/Padre/Config.pm:599 msgid "Document Tools (Right)" msgstr "Ferramentas para Documentos (Direita)" #: lib/Padre/Wx/Main.pm:6620 #, perl-format msgid "Document encoded to (%s)" msgstr "Documento codificado em (%s)" #: lib/Padre/Wx/Dialog/DocStats.pm:133 msgid "Document type" msgstr "Tipo do documento" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Down" msgstr "Baixo" #: lib/Padre/Wx/FBP/Sync.pm:222 msgid "Download" msgstr "Download" #: lib/Padre/Plugin/Devel.pm:71 msgid "Dump" msgstr "Dump" #: lib/Padre/Plugin/Devel.pm:77 msgid "Dump %INC and @INC" msgstr "Dump do %INC e @INC" #: lib/Padre/Plugin/Devel.pm:73 msgid "Dump Current Document" msgstr "Dump do Documento Atual" #: lib/Padre/Plugin/Devel.pm:76 msgid "Dump Current PPI Tree" msgstr "Dump da rvore PPI Atual" #: lib/Padre/Plugin/Devel.pm:78 msgid "Dump Display Geometry" msgstr "Exibir geometria da tela" #: lib/Padre/Plugin/Devel.pm:72 msgid "Dump Expression..." msgstr "Fazer 'Dump' da Expresso..." #: lib/Padre/Plugin/Devel.pm:74 msgid "Dump Task Manager" msgstr "Dump do Gerenciador de Tarefas do Padre" #: lib/Padre/Plugin/Devel.pm:75 msgid "Dump Top IDE Object" msgstr "Dump do Objeto Principal de IDE" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dump the Padre object to STDOUT" msgstr "Dump do objeto Padre no STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:90 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Dump completo do objeto Padre no STDOUT para teste/depurao." #: lib/Padre/Locale.pm:350 msgid "Dutch" msgstr "Holands" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "Holands (Belga)" #: lib/Padre/Wx/ActionLibrary.pm:1010 msgid "EOL to Mac Classic" msgstr "Quebra de linha em formato Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1000 msgid "EOL to Unix" msgstr "Quebra de linha em formato Unix" #: lib/Padre/Wx/ActionLibrary.pm:990 msgid "EOL to Windows" msgstr "Quebra de linha em formato Windows" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 msgid "Edit" msgstr "Editar" #: lib/Padre/Wx/ActionLibrary.pm:2306 msgid "Edit My Plug-in" msgstr "Editar o Plugin \"My\"" #: lib/Padre/Wx/ActionLibrary.pm:2230 msgid "Edit user and host preferences" msgstr "Editar preferncias de usurio e sistema" #: lib/Padre/Wx/ActionLibrary.pm:2268 msgid "Edit with Regex Editor" msgstr "Editar com Editor de Expresses Regulares" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "Editar/Adicionar Trechos" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Editor" msgstr "&Editor" #: lib/Padre/Wx/FBP/Preferences.pm:376 msgid "Editor Current Line Background Colour" msgstr "Cor de Fundo da Linha Atual no Editor" #: lib/Padre/Wx/FBP/Preferences.pm:352 msgid "Editor Font" msgstr "Fonte do Editor" #: lib/Padre/Wx/FBP/Preferences.pm:680 msgid "Editor Options" msgstr "Opes do Editor" #: lib/Padre/Wx/FBP/Preferences.pm:270 msgid "Editor Style" msgstr "Estilo do Editor" #: lib/Padre/Wx/FBP/Sync.pm:157 msgid "Email" msgstr "Email" #: lib/Padre/Wx/FBP/ModuleStarter.pm:63 #: lib/Padre/Wx/Dialog/ModuleStart.pm:61 msgid "Email Address:" msgstr "Email:" #: lib/Padre/Wx/Dialog/Sync2.pm:152 #: lib/Padre/Wx/Dialog/Sync.pm:537 msgid "Email and confirmation do not match." msgstr "Email e confirmao no correspondem." #: lib/Padre/Wx/Dialog/RegexEditor.pm:649 msgid "Empty regex" msgstr "Expresso vazia" #: lib/Padre/Wx/FBP/Preferences.pm:216 msgid "Enable Smart highlighting while typing" msgstr "Ativar colorizao inteligente ao digitar" #: lib/Padre/Wx/ActionLibrary.pm:960 msgid "Encode Document to System Default" msgstr "Codificar documento para Padro do Sistema" #: lib/Padre/Wx/ActionLibrary.pm:970 msgid "Encode Document to utf-8" msgstr "Codificar documento para utf-8" #: lib/Padre/Wx/ActionLibrary.pm:980 msgid "Encode Document to..." msgstr "Codificar documento para..." #: lib/Padre/Wx/Main.pm:6644 msgid "Encode document to..." msgstr "Codificar documento para..." #: lib/Padre/Wx/Main.pm:6643 msgid "Encode to:" msgstr "Codificar para:" #: lib/Padre/Wx/Dialog/DocStats.pm:131 msgid "Encoding" msgstr "Codificao" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "End" msgstr "End" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "End case modification/metacharacter quoting" msgstr "Terminar trecho com modificao/metacaractere" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "End of line" msgstr "Fim da linha" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "Ingls" #: lib/Padre/Locale.pm:124 msgid "English (Australia)" msgstr "Ingls (Australiano)" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "Ingls (Canada)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "Ingls (Nova Zelndia)" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "Ingls (Reino Unido)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "Ingls (Estados Unidos)" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Enter" msgstr "Enter" #: lib/Padre/CPAN.pm:132 msgid "" "Enter URL to install\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Digite URL para instalar\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:215 msgid "Enter parts of the resource name to find it" msgstr "Digite parte do nome de um recurso para encontr-lo" #: lib/Padre/Wx/Dialog/SpecialValues.pm:19 msgid "Epoch" msgstr "Epoch" #: lib/Padre/Document.pm:440 #: lib/Padre/Wx/Editor.pm:221 #: lib/Padre/Wx/Main.pm:4600 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/ModuleStart.pm:185 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 #: lib/Padre/Wx/Dialog/Sync2.pm:67 #: lib/Padre/Wx/Dialog/Sync2.pm:75 #: lib/Padre/Wx/Dialog/Sync2.pm:89 #: lib/Padre/Wx/Dialog/Sync2.pm:108 #: lib/Padre/Wx/Dialog/Sync2.pm:132 #: lib/Padre/Wx/Dialog/Sync2.pm:143 #: lib/Padre/Wx/Dialog/Sync2.pm:153 #: lib/Padre/Wx/Dialog/Sync2.pm:171 #: lib/Padre/Wx/Dialog/Sync2.pm:182 #: lib/Padre/Wx/Dialog/Sync2.pm:193 #: lib/Padre/Wx/Dialog/Sync2.pm:204 #: lib/Padre/Wx/Dialog/PerlFilter.pm:274 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:90 #: lib/Padre/Wx/Dialog/Sync.pm:447 #: lib/Padre/Wx/Dialog/Sync.pm:455 #: lib/Padre/Wx/Dialog/Sync.pm:469 #: lib/Padre/Wx/Dialog/Sync.pm:493 #: lib/Padre/Wx/Dialog/Sync.pm:517 #: lib/Padre/Wx/Dialog/Sync.pm:528 #: lib/Padre/Wx/Dialog/Sync.pm:538 #: lib/Padre/Wx/Dialog/Sync.pm:556 #: lib/Padre/Wx/Dialog/Sync.pm:567 #: lib/Padre/Wx/Dialog/Sync.pm:578 #: lib/Padre/Wx/Dialog/Sync.pm:589 #: lib/Padre/Wx/Dialog/OpenResource.pm:118 msgid "Error" msgstr "Erro" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Erro conectando-se a %s:%s: %s" #: lib/Padre/Wx/Main.pm:4959 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "Erro removendo %s:\n" "%s" #: lib/Padre/Wx/Main.pm:5218 msgid "Error loading perl filter dialog." msgstr "Erro carregando janela de filtros Perl" #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Erro carregando pod para classe '%s': %s" #: lib/Padre/Wx/Main.pm:5189 msgid "Error loading regex editor." msgstr "Erro carregando editor de regex" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Erro de login em %s:%s: %s" #: lib/Padre/Wx/Main.pm:6600 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "Erro retornado pela ferramenta de filtro:\n" "%s" #: lib/Padre/Wx/Main.pm:6585 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Erro executando ferramenta de filtro:\n" "%s" #: lib/Padre/PluginManager.pm:1006 msgid "Error when calling menu for plug-in " msgstr "Erro chamando menu para plugin" #: lib/Padre/Wx/Dialog/HelpSearch.pm:81 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "Erro chamando %s %s" #: lib/Padre/Document.pm:281 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Erro determinando tipo MIME do arquivo.\n" "Este provavelmente um erro de codificao.\n" "Est carregando um arquivo binrio?" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:126 #, perl-format msgid "Error while loading %s" msgstr "Erro carregando %s" #: lib/Padre/Plugin/Devel.pm:248 msgid "Error while loading Aspect, is it installed?" msgstr "Erro carregando Aspect. Est instalado?" #: lib/Padre/Document.pm:231 msgid "Error while opening file: no file object" msgstr "Erro abrindo arquivo: nenhum objeto de arquivo" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Erro ao procurar POD" #: lib/Padre/Wx/Dialog/OpenResource.pm:117 msgid "Error while trying to perform Padre action" msgstr "Erro ao tentar realizar ao do Padre" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Erro ao tentar realizar ao do Padre: %s" #: lib/Padre/Document/Perl.pm:474 msgid "Error: " msgstr "Erro: " #: lib/Padre/Wx/Main.pm:5706 #: lib/Padre/Plugin/Devel.pm:334 #, perl-format msgid "Error: %s" msgstr "Erro: %s" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Escape (Esc)" msgstr "Escape (Esc)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:139 msgid "Escape characters" msgstr "Caracteres de escape" #: lib/Padre/Wx/ActionLibrary.pm:2197 msgid "Evaluate Expression..." msgstr "Avaliar Expresso..." #: lib/Padre/Config/Style.pm:46 msgid "Evening" msgstr "Noite" #: lib/Padre/Wx/ActionLibrary.pm:2011 msgid "Execute the next statement, enter subroutine if needed. (Start debugger if it is not yet running)" msgstr "Executa prxima declarao, entrando em subrotinas se necessrio. (Inicia depurao caso no esteja rodando)" #: lib/Padre/Wx/ActionLibrary.pm:2028 msgid "Execute the next statement. If it is a subroutine call, stop only after it returned. (Start debugger if it is not yet running)" msgstr "Executa a prxima declarao. Caso seja uma chamada de subrotina, pare somente aps seu retorno (Inicia depurao caso no esteja rodando)" #: lib/Padre/Wx/Main.pm:4381 msgid "Exist" msgstr "Existe" #: lib/Padre/Wx/FBP/Bookmarks.pm:60 msgid "Existing Bookmarks:" msgstr "Marcaes existentes:" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "Caracterstica Experimental. Digite '?' no final da pgina para ver lsita de comandos. Se no funcionar, culpe o szabgab.\n" "\n" #: lib/Padre/Wx/Debugger.pm:440 msgid "Expr" msgstr "Expr" #: lib/Padre/Plugin/Devel.pm:120 #: lib/Padre/Plugin/Devel.pm:121 msgid "Expression" msgstr "Expresso" #: lib/Padre/Wx/Debugger.pm:439 msgid "Expression:" msgstr "Expresso:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "Extended (&x)" msgstr "Extendido (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:483 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "Expresses regulares extendidas permitem formatao livre (espaos so ignorados) e comentrios" #: lib/Padre/Wx/FBP/Preferences.pm:1048 msgid "External Tools" msgstr "Ferramentas Externas" #: lib/Padre/Wx/ActionLibrary.pm:1846 msgid "Extract Subroutine" msgstr "Extrair Subrotina" #: lib/Padre/Wx/ActionLibrary.pm:1833 msgid "Extract Subroutine..." msgstr "Extrair subrotina..." #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "Senha FTP" #: lib/Padre/Wx/Main.pm:4498 #, perl-format msgid "Failed to create path '%s'" msgstr "Erro ao criar caminho '%s'" #: lib/Padre/Wx/Main.pm:977 msgid "Failed to create server" msgstr "Erro ao criar servidor" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "Erro ao remover fragmento de POD" #: lib/Padre/PluginHandle.pm:327 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Falha ao desativar plugin '%s': %s" #: lib/Padre/PluginHandle.pm:211 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Falha ao ativar plugin '%s': %s" #: lib/Padre/Util/FileBrowser.pm:193 msgid "Failed to execute process\n" msgstr "Erro ao executar processo\n" #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Failed to find any matches" msgstr "Nenhuma ocorrncia encontrada" #: lib/Padre/Wx/Main.pm:6214 #, perl-format msgid "Failed to find template file '%s'" msgstr "Template '%s' no encontrada" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "No foi possvel encontrar sua configurao do CPAN" #: lib/Padre/PluginManager.pm:1067 #: lib/Padre/PluginManager.pm:1163 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Falha ao carregar plugin '%s'\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "Erro ao juntar fragmentos de POD" #: lib/Padre/Wx/Main.pm:2736 #, perl-format msgid "Failed to start '%s' command" msgstr "Falha ao executar comando '%s'" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Falso" #: lib/Padre/MimeTypes.pm:385 #: lib/Padre/MimeTypes.pm:394 msgid "Fast but might be out of date" msgstr "Rpido mas pode estar desatualizado" #: lib/Padre/Wx/Syntax.pm:49 msgid "Fatal Error" msgstr "Erro fatal" #: lib/Padre/Wx/Dialog/ModuleStart.pm:147 #, perl-format msgid "Field %s was missing. Module not created." msgstr "Campo %s faltando. Mdulo no criado." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 #: lib/Padre/Wx/Dialog/WindowList.pm:224 #: lib/Padre/Wx/Dialog/SpecialValues.pm:21 msgid "File" msgstr "Arquivo" #: lib/Padre/Wx/Menu/File.pm:401 #, perl-format msgid "File %s not found." msgstr "Arquivo %s no encontrado." #: lib/Padre/Wx/FBP/Preferences.pm:567 msgid "File access via FTP" msgstr "Acesso a arquivos via FTP" #: lib/Padre/Wx/FBP/Preferences.pm:543 msgid "File access via HTTP" msgstr "Acesso a arquivos via HTTP" #: lib/Padre/Wx/Main.pm:4484 msgid "File already exists" msgstr "Arquivo j existente" #: lib/Padre/Wx/Main.pm:4380 msgid "File already exists. Overwrite it?" msgstr "Arquivo j existe. Sobrescrever?" #: lib/Padre/Wx/Main.pm:4589 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Arquivo modificado em disco desde o ltimo salvamento. Gostaria de sobrescrev-lo?" #: lib/Padre/Wx/Main.pm:4685 msgid "File changed. Do you want to save it?" msgstr "Arquivo modificado. Gostaria de salv-lo?" #: lib/Padre/Wx/ActionLibrary.pm:305 #: lib/Padre/Wx/ActionLibrary.pm:325 msgid "File is not in a project" msgstr "Arquivo no faz parte de projeto" #: lib/Padre/Wx/Main.pm:3973 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "Arquivo %s contm * ou ? que so caracteres especiais na maioria dos computadores. Pular?" #: lib/Padre/Wx/Main.pm:3993 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "Arquivo %s no existe no disco. Pular?" #: lib/Padre/Wx/Main.pm:4590 msgid "File not in sync" msgstr "Arquivo no sincronizado" #: lib/Padre/Wx/Main.pm:4937 msgid "File was never saved and has no filename - can't delete from disk" msgstr "Arquivo no foi salvo e no possui nome - no possvel remover" #: lib/Padre/Wx/ActionLibrary.pm:909 msgid "File..." msgstr "Arquivo..." #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Arquivo/Diretrio" #: lib/Padre/Wx/Dialog/DocStats.pm:39 msgid "Filename" msgstr "Nome do arquivo" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "Arquivos" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Comando de filtro:" #: lib/Padre/Wx/ActionLibrary.pm:1118 msgid "Filter through External Tool..." msgstr "Filtrar usando comando externo..." #: lib/Padre/Wx/ActionLibrary.pm:1127 msgid "Filter through Perl..." msgstr "Filtrar usando Perl..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Filtrar atravs de ferramenta" #: lib/Padre/Wx/FBP/Insert.pm:35 msgid "Filter:" msgstr "&Filtro:" #: lib/Padre/Wx/ActionLibrary.pm:1119 msgid "Filters the selection (or the whole document) through any external command." msgstr "Filtra a seleo (ou todo o documento) atravs de um comando externo." #: lib/Padre/Wx/FBP/Find.pm:27 #: lib/Padre/Wx/Dialog/Replace.pm:218 msgid "Find" msgstr "Procurar" #: lib/Padre/Wx/FBP/Find.pm:124 msgid "Find &All" msgstr "Procurar &Tudo" #: lib/Padre/Wx/FBP/Find.pm:109 msgid "Find &Next" msgstr "Procurar Pr&ximo" #: lib/Padre/Wx/ActionLibrary.pm:1711 msgid "Find Method Declaration" msgstr "Encontrar Declarao de Mtodo" #: lib/Padre/Wx/ActionLibrary.pm:1175 #: lib/Padre/Wx/ActionLibrary.pm:1231 msgid "Find Next" msgstr "Procurar Prximo" #: lib/Padre/Wx/ActionLibrary.pm:1242 msgid "Find Previous" msgstr "Procurar Anterior" #: lib/Padre/Wx/FindResult.pm:88 #, perl-format msgid "Find Results (%s)" msgstr "Resultados (%s)" #: lib/Padre/Wx/Dialog/Replace.pm:226 msgid "Find Text:" msgstr "Procurar Texto:" #: lib/Padre/Wx/ActionLibrary.pm:1687 msgid "Find Unmatched Brace" msgstr "Encontrar Bloco Aberto" #: lib/Padre/Wx/ActionLibrary.pm:1699 msgid "Find Variable Declaration" msgstr "Encontrar Declarao de Varivel" #: lib/Padre/Wx/ActionLibrary.pm:1256 msgid "Find a text and replace it" msgstr "Procurar e substituir textos" #: lib/Padre/Wx/Dialog/Replace.pm:50 msgid "Find and Replace" msgstr "Procurar e Substituir" #: lib/Padre/Wx/ActionLibrary.pm:1268 msgid "Find in Fi&les..." msgstr "Procurar em &Arquivos..." #: lib/Padre/Wx/FindInFiles.pm:320 #: lib/Padre/Wx/FBP/FindInFiles.pm:27 msgid "Find in Files" msgstr "Procurar em Arquivos" #: lib/Padre/Wx/ActionLibrary.pm:1232 msgid "Find next matching text using a toolbar-like dialog at the bottom of the editor" msgstr "Encontrar prxima ocorrncia do texto usando barra na parte de baixo do editor" #: lib/Padre/Wx/ActionLibrary.pm:1243 msgid "Find previous matching text using a toolbar-like dialog at the bottom of the editor" msgstr "Encontrar ocorrncia anterior do texto usando barra na parte de baixo do editor" #: lib/Padre/Wx/ActionLibrary.pm:1161 msgid "Find text or regular expressions using a traditional dialog" msgstr "Procurar texto ou expresso regular usando caixa de busca tradicional" #: lib/Padre/Wx/ActionLibrary.pm:1712 msgid "Find where the selected function was defined and put the focus there." msgstr "Descobre onde a funo selecionada foi definida e coloca o foco l." #: lib/Padre/Wx/ActionLibrary.pm:1700 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "Descobre onde a varivel selecionada foi declarada usando \"my\" e coloca o foco l." #: lib/Padre/Wx/Dialog/Search.pm:135 msgid "Find:" msgstr "Procurar:" #: lib/Padre/Document/Perl.pm:1000 msgid "First character of selection does not seem to point at a token." msgstr "Primeiro caractere da seleo no parece apontar para um token" #: lib/Padre/Wx/Editor.pm:1665 msgid "First character of selection must be a non-word character to align" msgstr "Primeiro caractere da seleo deve ser um caractere no-letra para alinhar" #: lib/Padre/Wx/ActionLibrary.pm:1459 msgid "Fold all" msgstr "Agrupar tudo" #: lib/Padre/Wx/ActionLibrary.pm:1460 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "Agrupa todos os blocos que podem ser agrupados (precisa que 'agrupamento de cdigo' esteja ativo)" #: lib/Padre/Wx/ActionLibrary.pm:1479 msgid "Fold/Unfold this" msgstr "Expandir/Comprimir" #: lib/Padre/Wx/Menu/View.pm:189 msgid "Font Size" msgstr "Tamanho da fonte" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "Opo de salvar que, para novos documentos, tenta adivinhar o nome do arquivo conforme o contedo do arquivo." #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Form feed" msgstr "Formulrio" #: lib/Padre/Wx/Syntax.pm:412 #, perl-format msgid "Found %d issue(s)" msgstr "%d problema(s) encontrado(s)" #: lib/Padre/Wx/Syntax.pm:411 #, perl-format msgid "Found %d issue(s) in %s" msgstr "%d problema(s) em %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "%s tpico(s) de ajuda encontrado(s)\n" #: lib/Padre/Plugin/Devel.pm:311 #, perl-format msgid "Found %s unloaded modules" msgstr "Encontrados %s mdulos no carregados" #: lib/Padre/Locale.pm:282 msgid "French" msgstr "Francs" #: lib/Padre/Locale.pm:268 msgid "French (Canada)" msgstr "Francs (Canad)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Amigo" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Funo" #: lib/Padre/Wx/FunctionList.pm:234 msgid "Functions" msgstr "Funes" #: lib/Padre/Config.pm:372 #: lib/Padre/Wx/Dialog/ModuleStart.pm:20 #: lib/Padre/Wx/Dialog/ModuleStart.pm:40 msgid "GPL 2 or later" msgstr "GPL 2 ou mais recente" #: lib/Padre/Locale.pm:186 msgid "German" msgstr "Alemo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "Global (&g)" msgstr "Global (&g)" #: lib/Padre/Wx/ActionLibrary.pm:1611 msgid "Go to Bookmark" msgstr "Ir para Marcao" #: lib/Padre/Wx/ActionLibrary.pm:2574 msgid "Go to Command Line Window" msgstr "Ir para janela de Linha de Comando" #: lib/Padre/Wx/ActionLibrary.pm:2515 msgid "Go to Functions Window" msgstr "Ir para janela de funes" #: lib/Padre/Wx/ActionLibrary.pm:2585 msgid "Go to Main Window" msgstr "Ir para janela principal" #: lib/Padre/Wx/ActionLibrary.pm:2541 msgid "Go to Outline Window" msgstr "Ir para janela de detalhamento" #: lib/Padre/Wx/ActionLibrary.pm:2552 msgid "Go to Output Window" msgstr "Ir para janela de sada" #: lib/Padre/Wx/ActionLibrary.pm:2563 msgid "Go to Syntax Check Window" msgstr "Ir para janela de verificao de sintaxe" #: lib/Padre/Wx/ActionLibrary.pm:2529 msgid "Go to Todo Window" msgstr "Ir para janela de afazeres" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Goto" msgstr "Ir para" #: lib/Padre/Wx/ActionLibrary.pm:2474 msgid "Goto previous position" msgstr "Ir para posio anterior" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "Grouping constructs" msgstr "Agrupar construes" #: lib/Padre/Wx/FBP/Preferences.pm:429 msgid "Guess from Current Document" msgstr "Adivinhar a partir do documento atual:" #: lib/Padre/Locale.pm:292 msgid "Hebrew" msgstr "Hebraico" #: lib/Padre/Wx/ActionLibrary.pm:2599 #: lib/Padre/Wx/Browser.pm:63 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:398 msgid "Help" msgstr "Ajuda" #: lib/Padre/Wx/Dialog/HelpSearch.pm:39 #: lib/Padre/Wx/Dialog/HelpSearch.pm:96 msgid "Help Search" msgstr "Pesquisar Ajuda" #: lib/Padre/Wx/ActionLibrary.pm:2712 msgid "Help by translating Padre to your local language" msgstr "Ajude traduzindo Padre para seu idioma local" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "Ajuda no encontrada." #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Hex character" msgstr "Caractere hexadecimal" #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "Dgitos hexadecimais" #: lib/Padre/Wx/ActionLibrary.pm:1391 msgid "Hide Find in Files" msgstr "Esconder Procurar em Arquivos" #: lib/Padre/Wx/ActionLibrary.pm:1392 msgid "Hide the list of matches for a Find in Files search" msgstr "Ocultar lista de resultados para busca em arquivos" #: lib/Padre/Wx/ActionLibrary.pm:1504 msgid "Highlight the line where the cursor is" msgstr "Destaca a linha onde o cursor est no momento" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Home" msgstr "Home" #: lib/Padre/MimeTypes.pm:406 msgid "Hopefully faster than the PPI Traditional. Big file will fall back to Scintilla highlighter." msgstr "Possivelmente mais rpida que o PPI Tradicional. Arquivos grandes sero colorizados com Scintilla." #: lib/Padre/Wx/Dialog/Advanced.pm:804 msgid "Host" msgstr "Host" #: lib/Padre/Wx/Main.pm:5934 msgid "How many spaces for each tab:" msgstr "Quantos espaos para cada tab:" #: lib/Padre/Locale.pm:302 msgid "Hungarian" msgstr "Hngaro" #: lib/Padre/Wx/ActionLibrary.pm:1310 msgid "If activated, do not allow moving around some of the windows" msgstr "Permite que o usurio mova algumas janelas" #: lib/Padre/Wx/ActionLibrary.pm:2045 msgid "If within a subroutine, run till return is called and then stop." msgstr "Caso dentro de uma subrotina, execute at retornar e pare." #: lib/Padre/Wx/Dialog/RegexEditor.pm:469 msgid "Ignore case (&i)" msgstr "Ignorar Maisculas/Minsculas (&i)" #: lib/Padre/Wx/ActionLibrary.pm:2502 msgid "Imitate clicking on the right mouse button" msgstr "Emula clique com o boto direito do mouse" #: lib/Padre/Wx/FBP/Preferences.pm:652 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "Incluir diretrio: -I\n" "Ativar modo \"taint\": -T\n" "Ativar muitos avisos teis: -w\n" "Ativar todos os avisos: -W\n" "Desativar todos os avisos: -X" #: lib/Padre/Wx/ActionLibrary.pm:1567 msgid "Increase Font Size" msgstr "Aumentar tamanho da fonte" #: lib/Padre/Config.pm:773 msgid "Indent Deeply" msgstr "Identar profundamente" #: lib/Padre/Config.pm:772 msgid "Indent to Same Depth" msgstr "Identar na mesma profundidade" #: lib/Padre/Wx/FBP/Preferences.pm:1047 msgid "Indentation" msgstr "Identao" #: lib/Padre/Wx/FBP/Preferences.pm:477 msgid "Indentation width (in columns)" msgstr "Largura da identao (em colunas)" #: lib/Padre/Wx/FBP/Insert.pm:96 #: lib/Padre/Wx/Menu/Edit.pm:121 #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 #: lib/Padre/Wx/Dialog/RegexEditor.pm:271 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Insert" msgstr "Inserir" #: lib/Padre/Wx/FBP/Insert.pm:26 msgid "Insert Snippit" msgstr "Inserir Trecho" #: lib/Padre/Wx/Dialog/SpecialValues.pm:63 msgid "Insert Special Values" msgstr "Inserir Valores Especiais" #: lib/Padre/Wx/ActionLibrary.pm:2372 msgid "Install CPAN Module" msgstr "Instalar Mdulo do CPAN" #: lib/Padre/CPAN.pm:133 #: lib/Padre/Wx/ActionLibrary.pm:2385 msgid "Install Local Distribution" msgstr "Instalar Distribuio Local" #: lib/Padre/Wx/ActionLibrary.pm:2395 msgid "Install Remote Distribution" msgstr "Instalar Distribuio Remota" #: lib/Padre/Wx/ActionLibrary.pm:2373 msgid "Install a Perl module from CPAN" msgstr "Instalar mdulo Perl pelo CPAN" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Inteiro" #: lib/Padre/Wx/Syntax.pm:55 msgid "Internal Error" msgstr "Erro interno" #: lib/Padre/Wx/Main.pm:5707 msgid "Internal error" msgstr "Erro interno" #: lib/Padre/Wx/FBP/Preferences.pm:638 msgid "Interpreter arguments" msgstr "Argumentos do interpretador" #: lib/Padre/Wx/ActionLibrary.pm:1869 msgid "Introduce Temporary Variable" msgstr "Inserir Varivel Temporria" #: lib/Padre/Wx/ActionLibrary.pm:1860 msgid "Introduce Temporary Variable..." msgstr "Inserir varivel temporria..." #: lib/Padre/Locale.pm:316 msgid "Italian" msgstr "Italiano" #: lib/Padre/Locale.pm:326 msgid "Japanese" msgstr "Japons" #: lib/Padre/Wx/Main.pm:3912 msgid "JavaScript Files" msgstr "Arquivos JavaScript" #: lib/Padre/Wx/ActionLibrary.pm:874 msgid "Join the next line to the end of the current line." msgstr "Junta a prxima linha no final da linha atual." #: lib/Padre/Wx/ActionLibrary.pm:2464 msgid "Jump between the two last visited files back and forth" msgstr "Pula entre os dois ltimos arquivos visitados" #: lib/Padre/Wx/ActionLibrary.pm:2075 msgid "Jump to Current Execution Line" msgstr "Pular para linha em execuo" #: lib/Padre/Wx/ActionLibrary.pm:763 msgid "Jump to a specific line number or character position" msgstr "Pula para linha especfica ou posio de caractere" #: lib/Padre/Wx/ActionLibrary.pm:774 msgid "Jump to the code that triggered the next error" msgstr "Pula para o cdigo que ativou o prximo erro" #: lib/Padre/Wx/ActionLibrary.pm:2475 msgid "Jump to the last position saved in memory" msgstr "Ir para ltima posio salva em memria" #: lib/Padre/Wx/ActionLibrary.pm:851 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Pula para a chave/parntese equivalente (abre-fecha): { }, ( ), [ ], < >" #: lib/Padre/Wx/ActionLibrary.pm:2249 #: lib/Padre/Wx/Dialog/KeyBindings.pm:29 msgid "Key Bindings" msgstr "Associaes de teclas" #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "Kibibytes (kiB)" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "Kilobytes (kB)" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "Klingon" #: lib/Padre/Locale.pm:336 msgid "Korean" msgstr "Coreano" #: lib/Padre/Config.pm:373 #: lib/Padre/Wx/Dialog/ModuleStart.pm:21 #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "LGPL 2.1 or later" msgstr "LGPL 2.1 ou mais recente" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Primeiro rtulo" #: lib/Padre/Wx/Menu/View.pm:220 msgid "Language" msgstr "Idioma" #: lib/Padre/Wx/FBP/Preferences.pm:1050 msgid "Language - Perl 5" msgstr "Linguagem - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:607 msgid "Language Integration" msgstr "Integrao de Linguagem" #: lib/Padre/Wx/ActionLibrary.pm:2417 #: lib/Padre/Wx/ActionLibrary.pm:2463 msgid "Last Visited File" msgstr "ltimo Arquivo Visitado" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "ltima atualizao" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Left" msgstr "Esquerda" #: lib/Padre/Wx/FBP/ModuleStarter.pm:92 #: lib/Padre/Wx/Dialog/ModuleStart.pm:67 msgid "License:" msgstr "Licena:" #: lib/Padre/Wx/ActionLibrary.pm:1738 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr " como pressionar ENTER na linha, mas usa a posio atual para identao na prxima linha" #: lib/Padre/Wx/FindResult.pm:177 msgid "Line" msgstr "Linha" #: lib/Padre/Wx/Syntax.pm:433 #, perl-format msgid "Line %d: (%s) %s" msgstr "Linha %d: (%s) %s" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "Modo de quebra de linha" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:232 #: lib/Padre/Wx/Dialog/Goto.pm:251 msgid "Line number" msgstr "Nmero das Linhas" #: lib/Padre/Wx/Dialog/DocStats.pm:98 msgid "Lines" msgstr "Linhas" #: lib/Padre/Wx/ActionLibrary.pm:2121 msgid "List All Breakpoints" msgstr "Listar todos os pontos de parada (breakpoints)" #: lib/Padre/Wx/ActionLibrary.pm:2122 msgid "List all the breakpoints on the console" msgstr "Lista todos os pontos de parada (breakpoints) no console" #: lib/Padre/Wx/Dialog/WindowList.pm:211 msgid "List of open files" msgstr "Lista de arquivos abertos" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Lista de sesses" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "List the files that match the current selection and let the user pick one to open" msgstr "Lista os arquivos que casam com a seleo atual e deixa o usurio escolher um para abrir" #: lib/Padre/Wx/Menu/Help.pm:60 msgid "Live Support" msgstr "Suporte On-line" #: lib/Padre/Plugin/Devel.pm:83 msgid "Load All Padre Modules" msgstr "Carregar Todos os Mdulos Padre" #: lib/Padre/Plugin/Devel.pm:323 #, perl-format msgid "Loaded %s modules" msgstr "Carregou %s mdulos" #: lib/Padre/Wx/FBP/Preferences.pm:1049 msgid "Local/Remote File Access" msgstr "Acesso local/remoto a arquivos" #: lib/Padre/Wx/ActionLibrary.pm:1309 msgid "Lock User Interface" msgstr "Bloquear Interface do Usurio" #: lib/Padre/Wx/FBP/Sync.pm:55 msgid "Logged out" msgstr "Desconectado" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Efetuando login em servidor FTP como %s..." #: lib/Padre/Wx/FBP/Sync.pm:101 msgid "Login" msgstr "Login" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Long hex character" msgstr "Caractere hexadecimal longo" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Procurando por Net::FTP..." #: lib/Padre/Wx/ActionLibrary.pm:1075 msgid "Lower All" msgstr "Tudo em Minsculas" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "Caracteres em minsculas" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Lowercase next character" msgstr "Prximo caracteres minsculo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Lowercase till \\E" msgstr "Minsculas at \\E" #: lib/Padre/Config.pm:374 #: lib/Padre/Wx/Dialog/ModuleStart.pm:22 #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "MIT License" msgstr "Licena MIT" #: lib/Padre/Wx/ActionLibrary.pm:1568 msgid "Make the letters bigger in the editor window" msgstr "Torna as letras maiores na janela de edio" #: lib/Padre/Wx/ActionLibrary.pm:1578 msgid "Make the letters smaller in the editor window" msgstr "Torna as letras menores na janela de edio" #: lib/Padre/Wx/ActionLibrary.pm:633 msgid "Mark Selection End" msgstr "Marcar fim da seleo" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Mark Selection Start" msgstr "Marcar incio da seleo" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Mark the place where the selection should end" msgstr "Marca o ponto em que a seleo deve acabar" #: lib/Padre/Wx/ActionLibrary.pm:622 msgid "Mark the place where the selection should start" msgstr "Marca o ponto em que a seleo deve comear" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "0 ou mais ocorrncias" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "0 ou 1 ocorrncias" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "1 ou mais ocorrncias" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "No mnimo m e no mximo n ocorrncias" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "No mnimo n ocorrncias" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "Exatamente m ocorrncias" #: lib/Padre/Wx/Dialog/RegexEditor.pm:676 #, perl-format msgid "Match failure in %s: %s" msgstr "Falha de ocorrncia em %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:687 #, perl-format msgid "Match warning in %s: %s" msgstr "Aviso de ocorrncia em %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:696 #, perl-format msgid "Match with 0 width at character %s" msgstr "Resultado com 0 de comprimento em caractere %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:236 msgid "Matched text:" msgstr "Texto encontrado:" #: lib/Padre/Wx/FBP/Preferences.pm:788 msgid "Maximum number of suggestions" msgstr "Nmero mximo de sugestes" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Mensagem" #: lib/Padre/Wx/Outline.pm:359 msgid "Methods" msgstr "Mtodos" #: lib/Padre/Wx/FBP/Preferences.pm:123 msgid "Methods order" msgstr "Ordem dos mtodos" #: lib/Padre/MimeTypes.pm:447 #, perl-format msgid "Mime type already had a class '%s' when %s(%s) was called" msgstr "Mime type j possuia classe '%s' quando %s(%s) foi chamado" #: lib/Padre/MimeTypes.pm:476 #, perl-format msgid "Mime type did not have a class entry when %s(%s) was called" msgstr "Mime type no possuia entrada quando %s(%s) foi chamado" #: lib/Padre/MimeTypes.pm:465 #: lib/Padre/MimeTypes.pm:493 #, perl-format msgid "Mime type is not supported when %s(%s) was called" msgstr "Mime type no era suportado quando %s(%s) foi chamado" #: lib/Padre/MimeTypes.pm:436 #, perl-format msgid "Mime type was not supported when %s(%s) was called" msgstr "Mime type no era suportado quando %s(%s) foi chamado" #: lib/Padre/Wx/FBP/Preferences.pm:806 msgid "Minimum characters for autocomplete" msgstr "Mnimo de caracteres para auto-completar" #: lib/Padre/Wx/FBP/Preferences.pm:770 msgid "Minimum length of suggestions" msgstr "Tamanho mnimo para sugestes" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 msgid "Miscellaneous" msgstr "&Diversos" #: lib/Padre/Wx/WizardLibrary.pm:20 msgid "Module" msgstr "Mdulo" #: lib/Padre/Wx/FBP/ModuleStarter.pm:35 #: lib/Padre/Wx/Dialog/ModuleStart.pm:55 msgid "Module Name:" msgstr "Nome do Mdulo:" #: lib/Padre/Wx/FBP/ModuleStarter.pm:26 #: lib/Padre/Wx/Dialog/ModuleStart.pm:97 msgid "Module Start" msgstr "Iniciar Mdulo" #: lib/Padre/Wx/Menu/Tools.pm:65 msgid "Module Tools" msgstr "Ferramentas para Mdulos" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Nome do mdulo:" #: lib/Padre/Wx/Outline.pm:358 msgid "Modules" msgstr "Mdulos" #: lib/Padre/Wx/ActionLibrary.pm:1883 msgid "Move POD to __END__" msgstr "Mover POD para __END__" #: lib/Padre/Wx/Directory.pm:110 msgid "Move to other panel" msgstr "Mover para outro painel" #: lib/Padre/Config.pm:375 #: lib/Padre/Wx/Dialog/ModuleStart.pm:23 #: lib/Padre/Wx/Dialog/ModuleStart.pm:43 msgid "Mozilla Public License" msgstr "Licena pblica Mozilla" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "Multi-line (&m)" msgstr "Multi-linha (&m)" #: lib/Padre/Wx/ActionLibrary.pm:2307 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "My-Plugin um plugin onde desenvolvedores podem extender sua instalao do Padre" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "NOME" #: lib/Padre/Wx/Dialog/PluginManager.pm:66 #: lib/Padre/Wx/Dialog/SpecialValues.pm:25 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "Nome" #: lib/Padre/Wx/ActionLibrary.pm:1845 msgid "Name for the new subroutine" msgstr "Nome para a nova subrotina" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "Nome:" #: lib/Padre/Wx/Main.pm:6442 msgid "Need to select text in order to translate to hex" msgstr " preciso selecionar texto para traduzir para hexa" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "Declarao de lookahead negativo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "Declarao de lookbehind negativo" #: lib/Padre/Wx/Menu/File.pm:43 msgid "New" msgstr "Novo" #: lib/Padre/Wx/FBP/WhereFrom.pm:26 msgid "New Installation Survey" msgstr "Nova Pesquisa de Instalao" #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Novo Mdulo" #: lib/Padre/Document/Perl.pm:873 msgid "New name" msgstr "Novo nome" #: lib/Padre/PluginManager.pm:431 msgid "New plug-ins detected" msgstr "Novos plugins detectados" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Newline" msgstr "Quebra de Linha" #: lib/Padre/Wx/ActionLibrary.pm:1736 msgid "Newline Same Column" msgstr "Nova linha na mesma coluna" #: lib/Padre/Wx/ActionLibrary.pm:2439 msgid "Next File" msgstr "Prximo arquivo" #: lib/Padre/Config/Style.pm:47 msgid "Night" msgstr "Noite" #: lib/Padre/Config.pm:771 msgid "No Autoindent" msgstr "Sem Auto-identao" #: lib/Padre/Wx/Main.pm:2484 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Nenhum Build.PL ou Makefile.PL ou dist.ini encontrado" #: lib/Padre/Wx/Dialog/HelpSearch.pm:93 msgid "No Help found" msgstr "Nenhuma ajuda encontrada" #: lib/Padre/Plugin/Devel.pm:170 msgid "No Perl 5 file is open" msgstr "Nenhum arquivo Perl 5 est aberto" #: lib/Padre/Document/Perl.pm:621 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Nenhuma declarao encontrada para a varivel (lxica?) especificada" #: lib/Padre/Document/Perl.pm:953 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Nenhuma declarao encontrada para a varivel (lxica?) especificada." #: lib/Padre/Wx/Main.pm:2451 #: lib/Padre/Wx/Main.pm:2506 #: lib/Padre/Wx/Main.pm:2558 msgid "No document open" msgstr "Nenhum documento aberto" #: lib/Padre/Document/Perl.pm:476 msgid "No errors found." msgstr "Nenhum erro encontrado." #: lib/Padre/Wx/Syntax.pm:399 #, perl-format msgid "No errors or warnings found in %s." msgstr "Nenhum erro ou aviso encontrado em %s." #: lib/Padre/Wx/Syntax.pm:402 msgid "No errors or warnings found." msgstr "Nenhum erro ou aviso encontrado." #: lib/Padre/Wx/Main.pm:2779 msgid "No execution mode was defined for this document type" msgstr "Nenhum modo de execuo definido para este tipo de documento" #: lib/Padre/Wx/Main.pm:5900 #: lib/Padre/Plugin/Devel.pm:149 msgid "No file is open" msgstr "Nenhum arquivo est aberto" #: lib/Padre/PluginManager.pm:1042 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Nenhum nome de arquivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:715 msgid "No match" msgstr "Nenhuma ocorrncia encontrada" #: lib/Padre/Wx/Dialog/Find.pm:72 #: lib/Padre/Wx/Dialog/Replace.pm:537 #: lib/Padre/Wx/Dialog/Replace.pm:586 #, perl-format msgid "No matches found for \"%s\"." msgstr "Nenhuma ocorrncia encontrada para \"%s\"." #: lib/Padre/Document.pm:325 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "Nenhum mdulo mime_type='%s' filename='%s'" #: lib/Padre/Wx/Main.pm:2761 msgid "No open document" msgstr "Nenhum documento aberto" #: lib/Padre/Config.pm:442 msgid "No open files" msgstr "Nenhum arquivo aberto" #: lib/Padre/Wx/FindInFiles.pm:223 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "Nenhum resultado para '%s' em '%s'" #: lib/Padre/Wx/Main.pm:770 #, perl-format msgid "No such session %s" msgstr "Sesso inexistente: %s" #: lib/Padre/Wx/ActionLibrary.pm:810 msgid "No suggestions" msgstr "Nenhuma sugesto" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "Grupo sem captura" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "Caracteres no-espao" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "None" msgstr "Nenhuma" #: lib/Padre/Locale.pm:370 msgid "Norwegian" msgstr "Noruegus" #: lib/Padre/Wx/Debugger.pm:82 msgid "Not a Perl document" msgstr "No um documento Perl" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number!" msgstr "No um nmero positivo!" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "No um limite de palavra" #: lib/Padre/Config/Style.pm:49 msgid "Notepad++" msgstr "Notepad++" #: lib/Padre/Wx/Main.pm:3754 msgid "Nothing selected. Enter what should be opened:" msgstr "Nada selecionado. Digite o que deve ser aberto:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:16 msgid "Now" msgstr "Agora" #: lib/Padre/Wx/Dialog/SpecialValues.pm:30 msgid "Number of lines" msgstr "Nmero de linhas" #: lib/Padre/Wx/FBP/ModuleStarter.pm:139 #: lib/Padre/Wx/FBP/Bookmarks.pm:83 #: lib/Padre/Wx/FBP/WhereFrom.pm:58 msgid "OK" msgstr "OK" #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Octal character" msgstr "Caractere octal" #: lib/Padre/Wx/ActionLibrary.pm:840 msgid "Offer completions to the current string. See Preferences" msgstr "Oferece opes de autocompletar string atual. Veja Preferncias" #: lib/Padre/Wx/ActionLibrary.pm:2428 msgid "Oldest Visited File" msgstr "Arquivo visitado mais antigo" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Somente um fragmento de POD, no possvel juntar" #: lib/Padre/Wx/Outline.pm:235 msgid "Open &Documentation" msgstr "Abrir &Documentao" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Open &URL..." msgstr "Abrir &URL..." #: lib/Padre/Wx/ActionLibrary.pm:520 msgid "Open All Recent Files" msgstr "Abrir todos os Arquivos Recentes" #: lib/Padre/Wx/ActionLibrary.pm:2405 msgid "Open CPAN Config File" msgstr "Abrir Arquivo de Configurao do CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2406 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "Abre CPAN::MyConfig.pm para edio manual para usurios avanados" #: lib/Padre/Wx/ActionLibrary.pm:272 msgid "Open Example" msgstr "Abrir exemplo" #: lib/Padre/Wx/Main.pm:3936 #: lib/Padre/Wx/Directory/TreeCtrl.pm:210 msgid "Open File" msgstr "Abrir Arquivo" #: lib/Padre/Wx/Dialog/OpenResource.pm:30 #: lib/Padre/Wx/Dialog/OpenResource.pm:76 msgid "Open Resources" msgstr "Abrir Recursos" #: lib/Padre/Wx/ActionLibrary.pm:1282 msgid "Open Resources..." msgstr "Abrir Recursos..." #: lib/Padre/Wx/ActionLibrary.pm:463 #: lib/Padre/Wx/Main.pm:3797 msgid "Open Selection" msgstr "Abrir Seleo" #: lib/Padre/Wx/ActionLibrary.pm:473 msgid "Open Session..." msgstr "Abrir sesso..." #: lib/Padre/Wx/Dialog/ModuleStart.pm:24 #: lib/Padre/Wx/Dialog/ModuleStart.pm:44 msgid "Open Source" msgstr "Cdigo Aberto (Open Source)" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "Abrir URL" #: lib/Padre/Wx/Main.pm:3976 #: lib/Padre/Wx/Main.pm:3996 msgid "Open Warning" msgstr "Aviso de Abertura" #: lib/Padre/Wx/ActionLibrary.pm:151 msgid "Open a document with a skeleton Perl 5 module" msgstr "Abre documento com esqueleto de mdulo em Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:142 msgid "Open a document with a skeleton Perl 5 script" msgstr "Abre documento com esqueleto de programa em Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Abre documento com esqueleto de testes em Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:171 msgid "Open a document with a skeleton Perl 6 script" msgstr "Abre documento com esqueleto em Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:228 msgid "Open a file from a remote location" msgstr "Abre arquivo em local remoto" #: lib/Padre/Wx/ActionLibrary.pm:131 msgid "Open a new empty document" msgstr "Abre um novo documento vazio" #: lib/Padre/Wx/ActionLibrary.pm:521 msgid "Open all the files listed in the recent files list" msgstr "Abre todos os arquivos da lista de arquivos recentes" #: lib/Padre/Wx/ActionLibrary.pm:2298 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "Abre navegador na busca CPAN exibindo pacotes Padre::Plugin" #: lib/Padre/Wx/Menu/File.pm:402 msgid "Open cancelled" msgstr "Abrir cancelado" #: lib/Padre/PluginManager.pm:1117 #: lib/Padre/Wx/Main.pm:5587 msgid "Open file" msgstr "Abrir arquivo" #: lib/Padre/Wx/FBP/Preferences.pm:84 msgid "Open files" msgstr "Abrir arquivos" #: lib/Padre/Wx/FBP/Preferences.pm:115 msgid "Open files in existing Padre" msgstr "Abrir arquivos na instncia atual do Padre" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open in Command Line" msgstr "Abrir na linha de comando" #: lib/Padre/Wx/ActionLibrary.pm:238 #: lib/Padre/Wx/Directory/TreeCtrl.pm:218 msgid "Open in File Browser" msgstr "Abrir no Visualizador de Arquivos" #: lib/Padre/Wx/ActionLibrary.pm:2684 msgid "Open perlmonks.org, one of the biggest Perl community sites, in your default web browser" msgstr "Abra perlmonks.org, um dos maiores sites de comunidade Perl, em seu navegador padro" #: lib/Padre/Wx/Main.pm:3755 msgid "Open selection" msgstr "Abrir seleo" #: lib/Padre/Config.pm:443 msgid "Open session" msgstr "Abrir sesso" #: lib/Padre/Wx/ActionLibrary.pm:2646 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "Abra o suporte online do Padre em seu navegador padro e converse com outras pessoas que podem ajud-lo com seu problema" #: lib/Padre/Wx/ActionLibrary.pm:2658 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "Abra o suporte online do Perl em seu navegador padro e converse com outras pessoas que podem ajud-lo com seu problema" #: lib/Padre/Wx/ActionLibrary.pm:2670 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "Abra o suporte online do Perl/Win32 em seu navegador padro e converse com outras pessoas que podem ajud-lo com seu problema" #: lib/Padre/Wx/ActionLibrary.pm:2259 msgid "Open the regular expression editing window" msgstr "Abre a janela de edio de expresses regulares" #: lib/Padre/Wx/ActionLibrary.pm:2269 msgid "Open the selected text in the Regex Editor" msgstr "Abre o text selecionado no editor de Regex" #: lib/Padre/Wx/ActionLibrary.pm:248 msgid "Open with Default System Editor" msgstr "Abrir com editor padro do sistema" #: lib/Padre/Wx/Menu/File.pm:100 msgid "Open..." msgstr "Abrir..." #: lib/Padre/Wx/Main.pm:2890 #, perl-format msgid "Opening session %s..." msgstr "Abrindo sesso %s..." #: lib/Padre/Wx/ActionLibrary.pm:263 msgid "Opens a command line using the current document folder" msgstr "Abre prompt de comando no diretrio do documento atual" #: lib/Padre/Wx/WizardLibrary.pm:38 msgid "Opens the Padre document wizard" msgstr "Abre o assistente de documentos do Padre" #: lib/Padre/Wx/WizardLibrary.pm:30 msgid "Opens the Padre plugin wizard" msgstr "Abre o Assistente de Plugins do Padre" #: lib/Padre/Wx/WizardLibrary.pm:22 msgid "Opens the Perl 5 module wizard" msgstr "Abre o Assistente de Mdulos Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:239 msgid "Opens the current document using the file browser" msgstr "Abre documento atual usando o gerenciador de arquivos" #: lib/Padre/Wx/ActionLibrary.pm:251 msgid "Opens the file with the default system editor" msgstr "Abre arquivo com o editor padro do sistema" #: lib/Padre/Wx/Dialog/Replace.pm:304 msgid "Options" msgstr "Opes" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Opes:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:74 msgid "Or&iginal text:" msgstr "Texto or&iginal:" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Outro (Por favor preencha aqui)" #: lib/Padre/Config.pm:377 msgid "Other Open Source" msgstr "Outra Cdigo Aberto (Open Source)" #: lib/Padre/Config.pm:378 msgid "Other Unrestricted" msgstr "Outra Sem Restrio" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Outro evento" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Outra ferramenta de busca" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range!" msgstr "Fora da faixa!" #: lib/Padre/Wx/Outline.pm:110 #: lib/Padre/Wx/Outline.pm:312 msgid "Outline" msgstr "Detalhamento" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "Sada" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "Exibio da Sada" #: lib/Padre/Wx/Dialog/KeyBindings.pm:392 msgid "Override Shortcut" msgstr "Sobrescrever atalho" #: lib/Padre/Wx/Main.pm:3916 msgid "PHP Files" msgstr "Arquivos PHP" #: lib/Padre/MimeTypes.pm:400 #: lib/Padre/Config.pm:996 msgid "PPI Experimental" msgstr "PPI Experimental" #: lib/Padre/MimeTypes.pm:405 #: lib/Padre/Config.pm:997 msgid "PPI Standard" msgstr "PPI Tradicional" #: lib/Padre/Wx/About.pm:59 #: lib/Padre/Wx/WizardLibrary.pm:29 #: lib/Padre/Wx/WizardLibrary.pm:37 #: lib/Padre/Wx/Dialog/Form.pm:98 #: lib/Padre/Config/Style.pm:45 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Desenvolvedor Padre" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Ferramentas para Desenvolvedores Padre" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:16 msgid "Padre Document Wizard" msgstr "Assistente de Documentos do Padre" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:16 msgid "Padre Plugin Wizard" msgstr "Assistente de Plugins do Padre" #: lib/Padre/Wx/FBP/Preferences.pm:27 msgid "Padre Preferences" msgstr "Preferncias do Padre" #: lib/Padre/Wx/ActionLibrary.pm:2644 msgid "Padre Support (English)" msgstr "Suporte Padre (em ingls)" #: lib/Padre/Wx/FBP/Sync.pm:26 #: lib/Padre/Wx/Dialog/Sync.pm:43 msgid "Padre Sync" msgstr "Sincronizar Padre" #: lib/Padre/Wx/About.pm:105 msgid "Padre is free software; you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "Padre software livre; sua redistribuio e/ou modificao permitida sob os mesmos termos do Perl 5." #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageDown" msgstr "PageDown" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageUp" msgstr "PageUp" #: lib/Padre/Wx/FBP/ModuleStarter.pm:115 #: lib/Padre/Wx/Dialog/ModuleStart.pm:70 msgid "Parent Directory:" msgstr "Diretrio Pai:" #: lib/Padre/Wx/FBP/Sync.pm:86 #: lib/Padre/Wx/FBP/Sync.pm:129 msgid "Password" msgstr "Senha" #: lib/Padre/Wx/Dialog/Sync2.pm:142 #: lib/Padre/Wx/Dialog/Sync.pm:527 msgid "Password and confirmation do not match." msgstr "Senha e confirmao no correspondem." #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "Senha para usurio '%s' em %s:" #: lib/Padre/Wx/ActionLibrary.pm:749 msgid "Paste the clipboard to the current location" msgstr "Cola o contedo da rea de transferncia na posio atual" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/WizardLibrary.pm:21 msgid "Perl 5" msgstr "Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Perl 5 Module" msgstr "Mdulo Perl 5" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:18 msgid "Perl 5 Module Wizard" msgstr "Wizard para mdulos Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:141 msgid "Perl 5 Script" msgstr "Script em Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 Test" msgstr "Teste em Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Perl 6 Script" msgstr "Script em Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:191 msgid "Perl Distribution (New)..." msgstr "Distribuio Perl (Nova)..." #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl Distribution..." msgstr "Distribuio Perl..." #: lib/Padre/Wx/Main.pm:3914 msgid "Perl Files" msgstr "Arquivos Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Filtro Perl" #: lib/Padre/Wx/ActionLibrary.pm:2656 msgid "Perl Help" msgstr "Ajuda Perl" #: lib/Padre/Wx/FBP/Preferences.pm:689 msgid "Perl beginner mode" msgstr "Modo iniciante Perl" #: lib/Padre/Wx/FBP/Preferences.pm:712 msgid "Perl ctags file" msgstr "Arquivo ctags do Perl" #: lib/Padre/Wx/FBP/Preferences.pm:616 msgid "Perl interpreter" msgstr "interpretador Perl" #: lib/Padre/Wx/Dialog/ModuleStart.pm:25 #: lib/Padre/Wx/Dialog/ModuleStart.pm:45 #: lib/Padre/Wx/Dialog/ModuleStart.pm:113 msgid "Perl licensing terms" msgstr "Termos de licena do Perl" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "Persa (Iran)" #: lib/Padre/Wx/Dialog/ModuleStart.pm:71 msgid "Pick parent directory" msgstr "Escolher diretrio pai" #: lib/Padre/Wx/Dialog/Sync2.pm:131 #: lib/Padre/Wx/Dialog/Sync.pm:516 msgid "Please ensure all inputs have appropriate values." msgstr "Por favor certifique-se de que todos os campos possuem valores apropriados." #: lib/Padre/Wx/Dialog/Sync2.pm:88 #: lib/Padre/Wx/Dialog/Sync.pm:468 msgid "Please input a valid value for both username and password" msgstr "Por favor entre com um valor vlido para usurio e senha" #: lib/Padre/Wx/Progress.pm:76 msgid "Please wait..." msgstr "Por favor aguarde..." #: lib/Padre/Wx/ActionLibrary.pm:2297 msgid "Plug-in List (CPAN)" msgstr "Lista de Plugins (CPAN)" #: lib/Padre/Wx/ActionLibrary.pm:2281 #: lib/Padre/Wx/Dialog/PluginManager.pm:35 msgid "Plug-in Manager" msgstr "Gerenciador de Plugins" #: lib/Padre/Wx/Dialog/PluginManager.pm:102 msgid "Plug-in Name" msgstr "Nome do Plugin" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "Plug-in Tools" msgstr "Ferramentas para Plugins" #: lib/Padre/PluginManager.pm:1137 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "Plugin precisa ter '%s' como diretrio base" #: lib/Padre/Wx/WizardLibrary.pm:28 msgid "Plugin" msgstr "Plugin" #: lib/Padre/PluginManager.pm:930 #, perl-format msgid "Plugin %s" msgstr "Plugin %s" #: lib/Padre/PluginHandle.pm:269 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "Plugin %s retornou %s em vez de uma lista de hooks em ->padre_hooks" #: lib/Padre/PluginHandle.pm:279 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "Plugin %s tentou registrar hook invlido %s" #: lib/Padre/PluginHandle.pm:287 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "Plugin %s tentou registrar hook sem cdigo %s" #: lib/Padre/PluginManager.pm:903 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "Plugin %s, hook %s retornou mensagem de erro vazia" #: lib/Padre/PluginManager.pm:874 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Erro de Plugin no evento %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:396 msgid "Plugins" msgstr "Plugins" #: lib/Padre/Locale.pm:380 msgid "Polish" msgstr "Polons" #: lib/Padre/Plugin/PopularityContest.pm:305 msgid "Popularity Contest Report" msgstr "Relatrio do Concurso de Popularidade" #: lib/Padre/Locale.pm:390 msgid "Portuguese (Brazil)" msgstr "Portugus (Brasil)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "Portugus (Portugal)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Tipo de posio" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Inteiro positivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "Declarao de lookahead positivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "Declarao de lookbehind positivo" #: lib/Padre/Wx/Outline.pm:357 msgid "Pragmata" msgstr "Lista de pragmas" #: lib/Padre/Wx/FBP/Preferences.pm:138 msgid "Prefered language for error diagnostics" msgstr "Idioma preferido para diagnstico de erros" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Nome da preferncia" #: lib/Padre/Wx/ActionLibrary.pm:2229 msgid "Preferences" msgstr "Preferncias" #: lib/Padre/Wx/ActionLibrary.pm:2239 msgid "Preferences Sync" msgstr "Sincronizar preferncias" #: lib/Padre/Wx/Dialog/Search.pm:154 msgid "Previ&ous" msgstr "&Anterior" #: lib/Padre/Wx/FBP/Insert.pm:73 msgid "Preview:" msgstr "Preview:" #: lib/Padre/Wx/ActionLibrary.pm:2450 msgid "Previous File" msgstr "Arquivo anterior" #: lib/Padre/Config.pm:440 msgid "Previous open files" msgstr "Arquivos abertos anteriormente" #: lib/Padre/Wx/ActionLibrary.pm:501 msgid "Print the current document" msgstr "Imprime o documento atual" #: lib/Padre/Wx/Directory.pm:270 #: lib/Padre/Wx/Dialog/WindowList.pm:223 msgid "Project" msgstr "Projeto" #: lib/Padre/Wx/ActionLibrary.pm:1372 msgid "Project Browser - Was known as the Directory Tree." msgstr "Navegador de Projetos - Antiga rvore de Diretrios" #: lib/Padre/Wx/Left.pm:52 msgid "Project Tools" msgstr "Ferramentas para Projetos" #: lib/Padre/Config.pm:598 msgid "Project Tools (Left)" msgstr "Ferramentas para Projetos (Esquerda)" #: lib/Padre/Wx/ActionLibrary.pm:1765 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "Pede novo nome de varivel e troca todas as ocorrncias desta para o novo nome" #: lib/Padre/Config.pm:379 msgid "Proprietary/Restrictive" msgstr "Proprietrio/Restritivo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "Caracteres de pontuao" #: lib/Padre/Wx/ActionLibrary.pm:2429 msgid "Put focus on tab visited the longest time ago." msgstr "Coloca foco no tab visitado a mais tempo atrs" #: lib/Padre/Wx/ActionLibrary.pm:2440 msgid "Put focus on the next tab to the right" msgstr "Coloca foco no prximo tab direita" #: lib/Padre/Wx/ActionLibrary.pm:2451 msgid "Put focus on the previous tab to the left" msgstr "Coloca foco no tab anterior esquerda" #: lib/Padre/Wx/ActionLibrary.pm:733 msgid "Put the content of the current document in the clipboard" msgstr "Coloca o contedo do documento atual na rea de transferncia" #: lib/Padre/Wx/ActionLibrary.pm:676 msgid "Put the current selection in the clipboard" msgstr "Coloca a seleo atual na rea de transferncia" #: lib/Padre/Wx/ActionLibrary.pm:692 msgid "Put the full path of the current file in the clipboard" msgstr "Coloca o caminho completo do arquivo atual na rea de transferncia" #: lib/Padre/Wx/ActionLibrary.pm:720 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Coloca o caminho completo do diretrio do arquivo atual na rea de transferncia" #: lib/Padre/Wx/ActionLibrary.pm:706 msgid "Put the name of the current file in the clipboard" msgstr "Coloca o nome do arquivo atual na rea de transferncia" #: lib/Padre/Wx/Main.pm:3918 msgid "Python Files" msgstr "Arquivos Python" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:40 msgid "Quick Menu Access" msgstr "Acesso Rpido ao Menu" #: lib/Padre/Wx/ActionLibrary.pm:1293 msgid "Quick Menu Access..." msgstr "Acesso rpido ao menu" #: lib/Padre/Wx/ActionLibrary.pm:1294 msgid "Quick access to all menu functions" msgstr "Acesso rpido a todas as funes do menu" #: lib/Padre/Wx/ActionLibrary.pm:2213 msgid "Quit Debugger (&q)" msgstr "Sair do Depurador (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2214 msgid "Quit the process being debugged" msgstr "Sai do processo sendo depurado" #: lib/Padre/Wx/Dialog/RegexEditor.pm:157 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "Desativar metacaracteres at \\E" #: lib/Padre/Wx/StatusBar.pm:435 msgid "R/W" msgstr "R/W" #: lib/Padre/Wx/StatusBar.pm:435 msgid "Read Only" msgstr "Somente Leitura" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Lendo arquivo do servidor FTP..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 msgid "Reading items. Please wait" msgstr "Lendo itens. Por favor aguarde" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:352 msgid "Reading items. Please wait..." msgstr "Lendo itens. Por favor aguarde..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Realmente apagar o arquivo \"%s\"?" #: lib/Padre/Wx/ActionLibrary.pm:595 msgid "Redo last undo" msgstr "Refaz ltima operao desfeita" #: lib/Padre/Wx/Menu/Refactor.pm:94 msgid "Ref&actor" msgstr "Ref&atorar" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 msgid "Refactor" msgstr "Refatorar" #: lib/Padre/Wx/Directory/TreeCtrl.pm:249 msgid "Refresh" msgstr "atualizar" #: lib/Padre/Wx/FBP/Preferences.pm:240 msgid "RegExp for TODO panel" msgstr "Expresso Regular para Painel de Afazeres" #: lib/Padre/Wx/ActionLibrary.pm:2258 #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Editor de Expresses Regulares" #: lib/Padre/Wx/FBP/Sync.pm:185 msgid "Register" msgstr "Registrar" #: lib/Padre/Wx/FBP/Sync.pm:314 msgid "Registration" msgstr "Registro" #: lib/Padre/Wx/Dialog/Replace.pm:94 msgid "Regular &Expression" msgstr "&Expresso Regular" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Instalando/Reinstalando em outro computador" #: lib/Padre/Wx/FindResult.pm:125 msgid "Related editor has been closed" msgstr "Editor relacionado foi fechado" #: lib/Padre/Wx/Menu/File.pm:188 msgid "Reload" msgstr "Recarregar" #: lib/Padre/Wx/ActionLibrary.pm:389 msgid "Reload All" msgstr "Recarregar todos" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Reload All Plug-ins" msgstr "Recarregar Todos os Plugins" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload File" msgstr "Recarregar Arquivo" #: lib/Padre/Wx/ActionLibrary.pm:2323 msgid "Reload My Plug-in" msgstr "Recarregar o plugin \"My\"" #: lib/Padre/Wx/ActionLibrary.pm:399 msgid "Reload Some..." msgstr "Recarregar alguns" #: lib/Padre/Wx/Main.pm:4081 msgid "Reload all files" msgstr "Recarregar todos os arquivos" #: lib/Padre/Wx/ActionLibrary.pm:390 msgid "Reload all files currently open" msgstr "Recarregar todos os arquivos abertos no momento" #: lib/Padre/Wx/ActionLibrary.pm:2355 msgid "Reload all plug-ins from disk" msgstr "Recarregar todos os plugins da unidade" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Reload current file from disk" msgstr "Recarrega o arquivo atual" #: lib/Padre/Wx/Main.pm:4128 msgid "Reload some" msgstr "Recarregar alguns" #: lib/Padre/Wx/Main.pm:4112 #: lib/Padre/Wx/Main.pm:6101 msgid "Reload some files" msgstr "Recarregar alguns arquivos" #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "Reloads (or initially loads) the current plug-in" msgstr "(Re)carrega o plugin atual" #: lib/Padre/Wx/ActionLibrary.pm:2106 msgid "Remove Breakpoint" msgstr "Remover ponto de parada (breakpoint)" #: lib/Padre/Wx/ActionLibrary.pm:646 msgid "Remove all the selection marks" msgstr "Limpa todas as marcas de seleo" #: lib/Padre/Wx/ActionLibrary.pm:948 msgid "Remove comment out of selected lines in the document" msgstr "Remove comentrios das linhas selecionadas do documento" #: lib/Padre/Wx/ActionLibrary.pm:2107 msgid "Remove the breakpoint at the current location of the cursor" msgstr "Remove ponto de parada (breakpoint) na linha atual" #: lib/Padre/Wx/ActionLibrary.pm:661 msgid "Remove the current selection and put it in the clipboard" msgstr "Remove a seleo atual e a coloca na rea de transferncia" #: lib/Padre/Wx/ActionLibrary.pm:530 msgid "Remove the entries from the recent files list" msgstr "Remove entradas da lista de arquivos recentes" #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Remove espaos do incio das linhas selecionadas" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Remove the spaces from the end of the selected lines" msgstr "Remove espaos do final das linhas selecionadas" #: lib/Padre/Wx/ActionLibrary.pm:1764 msgid "Rename Variable" msgstr "Renomear varivel" #: lib/Padre/Document/Perl.pm:864 #: lib/Padre/Document/Perl.pm:874 msgid "Rename variable" msgstr "Renomear varivel" #: lib/Padre/Wx/ActionLibrary.pm:1177 msgid "Repeat the last find to find the next match" msgstr "Repetir ltima busca para encontrar prxima ocorrncia" #: lib/Padre/Wx/ActionLibrary.pm:1219 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Repetir ltima busca no sentido contrrio, para encontrar ocorrncia anterior" #: lib/Padre/Wx/Dialog/Replace.pm:250 msgid "Replace" msgstr "Substituir" #: lib/Padre/Wx/Dialog/Replace.pm:136 msgid "Replace &All" msgstr "Substituir &Tudo" #: lib/Padre/Document/Perl.pm:959 #: lib/Padre/Document/Perl.pm:1008 msgid "Replace Operation Canceled" msgstr "Operao de Substituio Cancelada" #: lib/Padre/Wx/Dialog/Replace.pm:258 msgid "Replace Text:" msgstr "Substituir Texto:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:487 msgid "Replace all occurrences of the pattern" msgstr "Substituir todas as ocorrncias" #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "Erro de substituio em %s: %s" #: lib/Padre/Wx/ActionLibrary.pm:1255 msgid "Replace..." msgstr "Substituir..." #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d match" msgstr "%d ocorrncias substitudas" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d matches" msgstr "%d ocorrncias substitudas" #: lib/Padre/Wx/ActionLibrary.pm:2694 msgid "Report a New &Bug" msgstr "Relatar um Novo &Problema (Bug)" #: lib/Padre/Wx/ActionLibrary.pm:1587 msgid "Reset Font Size" msgstr "Restaurar tamanho da fonte" #: lib/Padre/Wx/ActionLibrary.pm:2332 #: lib/Padre/Wx/ActionLibrary.pm:2339 msgid "Reset My plug-in" msgstr "Restaurar o Plugin \"My\"" #: lib/Padre/Wx/ActionLibrary.pm:2333 msgid "Reset the My plug-in to the default" msgstr "Restaura o My-Plugin para seu estado original" #: lib/Padre/Wx/ActionLibrary.pm:1588 msgid "Reset the size of the letters to the default in the editor window" msgstr "Restaura o tamanho das letras para o padro do editor" #: lib/Padre/Wx/Dialog/KeyBindings.pm:134 msgid "Reset to default shortcut" msgstr "Restaurar atalho padro" #: lib/Padre/Wx/Main.pm:2919 msgid "Restore focus..." msgstr "Restaurar foco..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Return" msgstr "Retornar" #: lib/Padre/Config.pm:371 #: lib/Padre/Wx/Dialog/ModuleStart.pm:19 #: lib/Padre/Wx/Dialog/ModuleStart.pm:39 msgid "Revised BSD License" msgstr "Licena BSD revisada" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Right" msgstr "Direita" #: lib/Padre/Wx/ActionLibrary.pm:2501 msgid "Right Click" msgstr "Clique com Boto Direito" #: lib/Padre/Wx/Main.pm:3920 msgid "Ruby Files" msgstr "Arquivos Ruby" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:394 msgid "Run" msgstr "Executar" #: lib/Padre/Wx/ActionLibrary.pm:1938 msgid "Run Build and Tests" msgstr "Executar Build (montagem) e Testes" #: lib/Padre/Wx/ActionLibrary.pm:1927 msgid "Run Command" msgstr "Executar Comando" #: lib/Padre/Plugin/Devel.pm:67 msgid "Run Document inside Padre" msgstr "Executar no &Padre" #: lib/Padre/Wx/ActionLibrary.pm:1899 msgid "Run Script" msgstr "Executar Script" #: lib/Padre/Wx/ActionLibrary.pm:1915 msgid "Run Script (Debug Info)" msgstr "Executar script (depurao)" #: lib/Padre/Plugin/Devel.pm:68 msgid "Run Selection inside Padre" msgstr "Executar Seleo no &Padre" #: lib/Padre/Wx/ActionLibrary.pm:1950 msgid "Run Tests" msgstr "Executar Testes" #: lib/Padre/Wx/ActionLibrary.pm:1969 msgid "Run This Test" msgstr "Executar Este Teste" #: lib/Padre/Wx/ActionLibrary.pm:1952 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "Executar todos os testes do projeto atual ou documentar e exibir resultados no painel de sada." #: lib/Padre/Wx/Dialog/PerlFilter.pm:89 msgid "Run filter" msgstr "Abrir arquivou" #: lib/Padre/Wx/Main.pm:2422 msgid "Run setup" msgstr "Opes de Execuo" #: lib/Padre/Wx/ActionLibrary.pm:1916 msgid "Run the current document but include debug info in the output." msgstr "Executa documento atual mas adiciona informaes de depurao na sada." #: lib/Padre/Wx/ActionLibrary.pm:1970 msgid "Run the current test if the current document is a test. (prove -bv)" msgstr "Executa teste atual se o documento atual um teste. (prove -bv)" #: lib/Padre/Wx/ActionLibrary.pm:2060 msgid "Run till Breakpoint (&c)" msgstr "Executar at ponto de parada (breakpoint) (&c)" #: lib/Padre/Wx/ActionLibrary.pm:2136 msgid "Run to Cursor" msgstr "Executar at o cursor" #: lib/Padre/Wx/ActionLibrary.pm:1928 msgid "Runs a shell command and shows the output." msgstr "Executa comando na shell e exibe sua sada." #: lib/Padre/Wx/ActionLibrary.pm:1900 msgid "Runs the current document and shows its output in the output panel." msgstr "Executa documento atual e exibe sua sada no painel de sada." #: lib/Padre/Locale.pm:410 msgid "Russian" msgstr "Russo" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "&Salvar" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Main.pm:3922 msgid "SQL Files" msgstr "Arquivos SQL" #: lib/Padre/Plugin/Devel.pm:93 msgid "STC Reference" msgstr "Referncias STC" #: lib/Padre/Wx/FBP/Preferences.pm:832 #: lib/Padre/Wx/Dialog/SessionSave.pm:229 msgid "Save" msgstr "Salvar" #: lib/Padre/Wx/ActionLibrary.pm:426 msgid "Save &As..." msgstr "Salvar &como..." #: lib/Padre/Wx/ActionLibrary.pm:450 msgid "Save All" msgstr "Salvar Tudo" #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save Intuition" msgstr "Salvar com Intuio" #: lib/Padre/Wx/ActionLibrary.pm:484 msgid "Save Session..." msgstr "Salvar sesso..." #: lib/Padre/Document.pm:772 msgid "Save Warning" msgstr "Aviso de Gravao" #: lib/Padre/Wx/ActionLibrary.pm:451 msgid "Save all the files" msgstr "Salva todos os arquivos" #: lib/Padre/Wx/ActionLibrary.pm:414 msgid "Save current document" msgstr "Salva o documento atual" #: lib/Padre/Wx/Main.pm:4304 msgid "Save file as..." msgstr "Salvar arquivo como..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Salvar sesso como..." #: lib/Padre/MimeTypes.pm:384 #: lib/Padre/MimeTypes.pm:393 #: lib/Padre/Config.pm:995 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/Main.pm:3928 msgid "Script Files" msgstr "Arquivos de Script" #: lib/Padre/Wx/FBP/Preferences.pm:658 msgid "Script arguments" msgstr "Argumentos do script" #: lib/Padre/Wx/Directory.pm:79 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 #: lib/Padre/Wx/Dialog/Find.pm:75 msgid "Search" msgstr "Pesquisar" #: lib/Padre/Wx/FBP/Find.pm:77 #: lib/Padre/Wx/Dialog/Replace.pm:122 msgid "Search &Backwards" msgstr "Pesquisar no sentido contrrio" #: lib/Padre/Wx/FBP/FindInFiles.pm:36 #: lib/Padre/Wx/FBP/Find.pm:36 msgid "Search &Term:" msgstr "Buscar &Termo:" #: lib/Padre/Document/Perl.pm:627 msgid "Search Canceled" msgstr "Busca Cancelada" #: lib/Padre/Wx/FBP/FindInFiles.pm:61 msgid "Search Directory:" msgstr "Diretrio de busca:" #: lib/Padre/Wx/ActionLibrary.pm:2608 msgid "Search Help" msgstr "Pesquisar Ajuda" #: lib/Padre/Wx/Dialog/Replace.pm:538 #: lib/Padre/Wx/Dialog/Replace.pm:582 #: lib/Padre/Wx/Dialog/Replace.pm:587 msgid "Search and Replace" msgstr "Buscar e Substituir" #: lib/Padre/Wx/FindInFiles.pm:212 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Busca concluda, '%s' encontrado %d vez(es) em %d arquivo(s) em '%s'" #: lib/Padre/Wx/ActionLibrary.pm:1269 msgid "Search for a text in all files below a given directory" msgstr "Procurar texto em todos os arquivos abaixo de um diretrio" #: lib/Padre/Wx/Browser.pm:92 #: lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Busca por perldoc - exemplo: Padre::Task, Net::LDAP" #: lib/Padre/Wx/FBP/FindInFiles.pm:92 msgid "Search in Types:" msgstr "Buscar tipo:" #: lib/Padre/Wx/ActionLibrary.pm:2609 msgid "Search the Perl help pages (perldoc)" msgstr "Procura nas pginas de ajuda do Perl (perldoc)" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "Pesquisa:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "'%s' no encontrado..." #: lib/Padre/Wx/ActionLibrary.pm:1688 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "Busca no cdigo fonte por blocos que no foram (abertos/fechados) corretamente." #: lib/Padre/Wx/FindInFiles.pm:129 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "Procurando por '%s' em '%s'..." #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Segundo rtulo" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Veja http://padre.perlide.org/ para informaes de atualizaes" #: lib/Padre/Wx/Menu/Edit.pm:49 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Selecionar" #: lib/Padre/Wx/ActionLibrary.pm:608 msgid "Select All" msgstr "Selecionar tudo" #: lib/Padre/Wx/Dialog/FindInFiles.pm:57 msgid "Select Directory" msgstr "Escolher diretrio" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Escolher Funo" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:17 msgid "Select a Wizard" msgstr "Seleciona um Wizard" #: lib/Padre/Wx/ActionLibrary.pm:1612 msgid "Select a bookmark created earlier and jump to that position" msgstr "Escolhe marcao criada anteriormente e pula para ela" #: lib/Padre/Wx/ActionLibrary.pm:885 msgid "Select a date, filename or other value and insert at the current location" msgstr "Escolha data, nome de arquivo ou outro valor e insira na posio atual" #: lib/Padre/Wx/ActionLibrary.pm:910 msgid "Select a file and insert its content at the current location" msgstr "Escolhe um arquivo e insere seu contedo na localizao atual" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "Escolhe uma sesso. Fecha todos os arquivos abertos e abre todos os listados na sesso" #: lib/Padre/Wx/ActionLibrary.pm:609 msgid "Select all the text in the current document" msgstr "Seleciona todo o texto do documento atual" #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Select an encoding and encode the document to that" msgstr "Escolhe uma codificao e codifica o documento nela" #: lib/Padre/Wx/ActionLibrary.pm:898 msgid "Select and insert a snippet at the current location" msgstr "Seleciona e insere um trecho na localizao atual" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "Escolha distribuio para instalar" #: lib/Padre/Wx/Main.pm:4810 msgid "Select files to close:" msgstr "Escolha arquivos para fechar:" #: lib/Padre/Wx/Dialog/OpenResource.pm:239 msgid "Select one or more resources to open" msgstr "Escolha um ou mais recursos para abrir" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Select some open files for closing" msgstr "Escolha alguns arquivos abertos para serem fechados" #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Select some open files for reload" msgstr "Escolha alguns arquivos abertos para serem recarregados" #: lib/Padre/Wx/Dialog/HelpSearch.pm:129 msgid "Select the help &topic" msgstr "Escolha o &tpico da ajuda" #: lib/Padre/Wx/ActionLibrary.pm:862 msgid "Select to the matching opening or closing brace" msgstr "Seleciona at chave/parntese equivalente (abre-fecha): { }, ( ), [ ], < >" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" "Escolha antes de qual subrotina voc quer inserir\n" "a nova subrotina." #: lib/Padre/Wx/Dialog/DocStats.pm:40 msgid "Selection" msgstr "Seleo" #: lib/Padre/Document/Perl.pm:1002 msgid "Selection not part of a Perl statement?" msgstr "Seleo no faz parte de uma declarao Perl?" #: lib/Padre/Wx/ActionLibrary.pm:203 msgid "Selects and opens a wizard" msgstr "Seleciona e abre um Wizard" #: lib/Padre/Wx/ActionLibrary.pm:2695 msgid "Send a bug report to the Padre developer team" msgstr "Envie um relatrio de problemas (bugs) aos desenvolvedores do Padre" #: lib/Padre/File/HTTP.pm:48 #, perl-format msgid "Sending HTTP request %s..." msgstr "Enviando solicitao HTTP %s..." #: lib/Padre/Wx/FBP/Sync.pm:35 msgid "Server" msgstr "Servidor" #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Gerenciador de Sesses" #: lib/Padre/Wx/Dialog/SessionSave.pm:200 msgid "Session name:" msgstr "Nome da sesso:" #: lib/Padre/Wx/ActionLibrary.pm:1600 msgid "Set Bookmark" msgstr "Definir Marcao" #: lib/Padre/Wx/FBP/Bookmarks.pm:35 msgid "Set Bookmark:" msgstr "Definir Marcao:" #: lib/Padre/Wx/ActionLibrary.pm:2091 msgid "Set Breakpoint (&b)" msgstr "Ativar ponto de parada (breakpoint) (&b)" #: lib/Padre/Wx/ActionLibrary.pm:1654 msgid "Set Padre in full screen mode" msgstr "Exibe o Padre em tela cheia" #: lib/Padre/Wx/ActionLibrary.pm:2137 msgid "Set a breakpoint at the line where to cursor is and run till there" msgstr "Define ponto de parada (breakpoint) na linha atual e executa o programa at l" #: lib/Padre/Wx/ActionLibrary.pm:2092 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "Define ponto de parada (breakpoint) na linha atual com condio" #: lib/Padre/Wx/ActionLibrary.pm:2076 msgid "Set focus to the line where the current statement is in the debugging process" msgstr "Coloca foco na linha contendo a declarao atual sendo avaliada pelo processo de depurao" #: lib/Padre/Wx/ActionLibrary.pm:2575 msgid "Set the focus to the \"Command Line\" window" msgstr "Transfere foco para janela de \"Linha de Comando\"" #: lib/Padre/Wx/ActionLibrary.pm:2516 msgid "Set the focus to the \"Functions\" window" msgstr "Define foco para janela de funes" #: lib/Padre/Wx/ActionLibrary.pm:2542 msgid "Set the focus to the \"Outline\" window" msgstr "Define foco para janela de detalhamento" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Set the focus to the \"Output\" window" msgstr "Define foco para janela de sada" #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Define foco para a janela de verificao de sintaxe" #: lib/Padre/Wx/ActionLibrary.pm:2530 msgid "Set the focus to the \"Todo\" window" msgstr "Define foco para janela de afazeres" #: lib/Padre/Wx/ActionLibrary.pm:2586 msgid "Set the focus to the main editor window" msgstr "Define o foco para a janela principal de edio" #: lib/Padre/Wx/ActionLibrary.pm:192 msgid "Setup a skeleton Perl distribution" msgstr "Criar esqueleto de distribuio Perl" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Setup a skeleton Perl module distribution" msgstr "Configura o esqueleto de uma distribuio Perl" #: lib/Padre/Config.pm:478 #: lib/Padre/Config.pm:490 msgid "Several placeholders like the filename can be used" msgstr "Diversos elementos como nome de arquivo podem ser usados" #: lib/Padre/Wx/Syntax.pm:43 msgid "Severe Warning" msgstr "Aviso importante" #: lib/Padre/Wx/Dialog/KeyBindings.pm:86 msgid "Sh&ortcut:" msgstr "&Atalho" #: lib/Padre/Wx/ActionLibrary.pm:2240 msgid "Share your preferences between multiple computers" msgstr "Compartilha suas preferncias entre vrios computadores" #: lib/Padre/MimeTypes.pm:249 msgid "Shell Script" msgstr "Shell Script" #: lib/Padre/Wx/Dialog/KeyBindings.pm:91 msgid "Shift" msgstr "Shift" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Atalho" #: lib/Padre/Wx/FBP/Preferences.pm:224 msgid "Shorten the common path in window list" msgstr "Abreviar caminho comum na lista de janelas" #: lib/Padre/Wx/Dialog/RegexEditor.pm:216 msgid "Show &Description" msgstr "Exibir &descrio" #: lib/Padre/Wx/ActionLibrary.pm:1489 msgid "Show Call Tips" msgstr "Exibir Sugestes" #: lib/Padre/Wx/ActionLibrary.pm:1449 msgid "Show Code Folding" msgstr "Exibir Agrupamento de Cdigo" #: lib/Padre/Wx/ActionLibrary.pm:1341 msgid "Show Command Line window" msgstr "Exibir janela de Linha de Comando" #: lib/Padre/Wx/ActionLibrary.pm:1503 msgid "Show Current Line" msgstr "Exibir Linha Atual" #: lib/Padre/Wx/ActionLibrary.pm:1331 msgid "Show Functions" msgstr "Exibir Funes" #: lib/Padre/Wx/ActionLibrary.pm:1545 msgid "Show Indentation Guide" msgstr "Exibir Guia de Identao" #: lib/Padre/Wx/ActionLibrary.pm:1439 msgid "Show Line Numbers" msgstr "Exibir Nmero das Linhas" #: lib/Padre/Wx/ActionLibrary.pm:1525 msgid "Show Newlines" msgstr "Exibir Quebras de Linha" #: lib/Padre/Wx/ActionLibrary.pm:1361 msgid "Show Outline" msgstr "Exibir Detalhamento" #: lib/Padre/Wx/ActionLibrary.pm:1321 msgid "Show Output" msgstr "Exibir Sada" #: lib/Padre/Wx/ActionLibrary.pm:1371 msgid "Show Project Browser/Tree" msgstr "Exibir Navegador de Projetos" #: lib/Padre/Wx/ActionLibrary.pm:1513 msgid "Show Right Margin" msgstr "Exibir margem direita" #: lib/Padre/Wx/ActionLibrary.pm:2151 msgid "Show Stack Trace (&t)" msgstr "Exibir Stack Trace (&t)" #: lib/Padre/Wx/ActionLibrary.pm:1400 msgid "Show Status Bar" msgstr "Exibir Barra de Status" #: lib/Padre/Wx/Dialog/RegexEditor.pm:246 msgid "Show Subs&titution" msgstr "Exibir Subs&tituio" #: lib/Padre/Wx/ActionLibrary.pm:1381 msgid "Show Syntax Check" msgstr "Exibir Verificao de Sintaxe" #: lib/Padre/Wx/ActionLibrary.pm:1351 msgid "Show To-do List" msgstr "Exibir lista de afazeres" #: lib/Padre/Wx/ActionLibrary.pm:1410 msgid "Show Toolbar" msgstr "Exibir Barra de Ferramentas" #: lib/Padre/Wx/ActionLibrary.pm:2182 msgid "Show Value Now (&x)" msgstr "Exibir valor agora (&x)" #: lib/Padre/Wx/ActionLibrary.pm:1535 msgid "Show Whitespaces" msgstr "Exibir Espaos" #: lib/Padre/Wx/ActionLibrary.pm:1514 msgid "Show a vertical line indicating the right margin" msgstr "Exibe linha vertical indicando margem direita" #: lib/Padre/Wx/ActionLibrary.pm:1332 msgid "Show a window listing all the functions in the current document" msgstr "Exibe janela listando todas as funes do documento atual" #: lib/Padre/Wx/ActionLibrary.pm:1362 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "Exibe janela listando todas as partes do projeto atual (funes, pragmas, mdulos)" #: lib/Padre/Wx/ActionLibrary.pm:1352 msgid "Show a window listing all todo items in the current document" msgstr "Exibe janela listando todos os afazeres do documento atual" #: lib/Padre/Wx/Menu/Edit.pm:331 msgid "Show as" msgstr "Exibir como" #: lib/Padre/Wx/ActionLibrary.pm:1147 msgid "Show as Decimal" msgstr "Exibir como decimal" #: lib/Padre/Wx/ActionLibrary.pm:1137 msgid "Show as Hexadecimal" msgstr "Exibir como hexadecimal" #: lib/Padre/Plugin/PopularityContest.pm:202 msgid "Show current report" msgstr "Exibir relatrio atual" #: lib/Padre/Wx/ActionLibrary.pm:2724 msgid "Show information about Padre" msgstr "Exibir informaes sobre o Padre" #: lib/Padre/Wx/FBP/Preferences.pm:312 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "Exibir mensagens informativas de baixa prioridade na barra de status (e no em um popup)" #: lib/Padre/Config.pm:1014 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "Exibir mensagens informativas de baixa prioridade na barra de status (e no em um popup)" #: lib/Padre/Config.pm:655 msgid "Show or hide the status bar at the bottom of the window." msgstr "Exibe/esconde a barra de status na parte inferior da janela." #: lib/Padre/Wx/ActionLibrary.pm:2487 #: lib/Padre/Wx/Dialog/Positions.pm:108 msgid "Show previous positions" msgstr "Exibir posies anteriores" #: lib/Padre/Wx/FBP/Preferences.pm:320 msgid "Show right margin at column" msgstr "Exibir margem direita na coluna" #: lib/Padre/Wx/ActionLibrary.pm:1148 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "Exibe valores ASCII do texto selecionado em nmeros decimais na janela de sada" #: lib/Padre/Wx/ActionLibrary.pm:1138 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "Exibe valores ASCII do texto selecionado em notao hexadecimal, na janela de sada" #: lib/Padre/Wx/ActionLibrary.pm:2634 msgid "Show the POD (Perldoc) version of the current document" msgstr "Exibe o POD (perldoc) do documento atual" #: lib/Padre/Wx/ActionLibrary.pm:2600 msgid "Show the Padre help" msgstr "Exibe a ajuda do Padre" #: lib/Padre/Wx/ActionLibrary.pm:2282 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Exibe o Gerenciador de Plugins do Padre para ativar ou desativar plugins" #: lib/Padre/Wx/ActionLibrary.pm:1342 msgid "Show the command line window" msgstr "Exibir janela de linha de comando" #: lib/Padre/Wx/ActionLibrary.pm:2621 msgid "Show the help article for the current context" msgstr "Exibe o artigo de ajuda para o contexto atual" #: lib/Padre/Wx/ActionLibrary.pm:2250 msgid "Show the key bindings dialog to configure Padre shortcuts" msgstr "Exibe a janela de associao de teclas para configurar atalhos do Padre" #: lib/Padre/Wx/ActionLibrary.pm:2488 msgid "Show the list of positions recently visited" msgstr "Exibir lista de posies visitadas recentemente" #: lib/Padre/Wx/ActionLibrary.pm:2183 msgid "Show the value of a variable now in a pop-up window." msgstr "Exibe o valor de uma varivel em uma janela pop-up." #: lib/Padre/Wx/ActionLibrary.pm:1322 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "Exibe janela com a sada padro e sada de erros dos programas em execuo" #: lib/Padre/Wx/ActionLibrary.pm:1450 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "Exibe/esconde linha vertical do lado esquerdo na janela para permitir agrupamento de linhas" #: lib/Padre/Wx/ActionLibrary.pm:1440 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "Exibe/esconde o nmero de linhas de todos os documentos do lado esquerdo da janela" #: lib/Padre/Wx/ActionLibrary.pm:1526 msgid "Show/hide the newlines with special character" msgstr "Exibe/esconde caracteres de nova linha com caractere especial" #: lib/Padre/Wx/ActionLibrary.pm:1401 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Exibe/esconde a barra de status na parte de baixo da janela" #: lib/Padre/Wx/ActionLibrary.pm:1536 msgid "Show/hide the tabs and the spaces with special characters" msgstr "Exibe/esconde tabs e espaos com caracteres especiais" #: lib/Padre/Wx/ActionLibrary.pm:1411 msgid "Show/hide the toolbar at the top of the editor" msgstr "Exibe/esconde a barra de ferramentas no topo do editor" #: lib/Padre/Wx/ActionLibrary.pm:1546 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "Exibe/esconde barras verticais em cada posio de identao na esquerda das linhas" #: lib/Padre/Config.pm:427 msgid "Showing the splash image during start-up" msgstr "Exibir janela de abertura ao iniciar" #: lib/Padre/Plugin/Devel.pm:86 msgid "Simulate Background Crash" msgstr "Simular Falha" #: lib/Padre/Plugin/Devel.pm:85 msgid "Simulate Background Exception" msgstr "Simular Exceo" #: lib/Padre/Plugin/Devel.pm:84 msgid "Simulate Crash" msgstr "Simular Falha" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Single-line (&s)" msgstr "Linha simples (&s)" #: lib/Padre/Wx/Dialog/SpecialValues.pm:22 msgid "Size" msgstr "Tamanho" #: lib/Padre/Wx/FBP/WhereFrom.pm:64 msgid "Skip question without giving feedback" msgstr "Ignorar pergunta sem enviar resultado" #: lib/Padre/Wx/Dialog/OpenResource.pm:271 msgid "Skip using MANIFEST.SKIP" msgstr "Ignorar utilizando MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/OpenResource.pm:267 msgid "Skip version control system files" msgstr "Ignorar arquivos do sistema de controle de verses" #: lib/Padre/Document.pm:1368 #: lib/Padre/Document.pm:1369 msgid "Skipped for large files" msgstr "Pulado para arquivos grandes" #: lib/Padre/MimeTypes.pm:401 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "Lento porm mais preciso e temos controle, ento bugs podem ser corrigidos" #: lib/Padre/Wx/Dialog/Snippets.pm:23 #: lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "Trecho:" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "Trechos" #: lib/Padre/Wx/ActionLibrary.pm:897 msgid "Snippets..." msgstr "Trechos..." #: lib/Padre/Wx/FBP/Insert.pm:50 msgid "Snippit:" msgstr "Trecho" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "Algo est errado com a base de dados do seu Padre:\n" "A sesso %s est listada mas no h contedo" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Space" msgstr "Espao" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Space and tab" msgstr "Espaos e tabs" #: lib/Padre/Wx/Main.pm:5928 msgid "Space to Tab" msgstr "Espaos para Tabs" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "Spaces to Tabs..." msgstr "Espaos para Tabs..." #: lib/Padre/Locale.pm:248 msgid "Spanish" msgstr "Espanhol" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "Espanhol (Argentina)" #: lib/Padre/Wx/ActionLibrary.pm:884 msgid "Special Value..." msgstr "Valor especial..." #: lib/Padre/Wx/Dialog/SpecialValues.pm:47 msgid "Special Value:" msgstr "Valor Especial:" #: lib/Padre/Wx/ActionLibrary.pm:2061 msgid "Start running and/or continue running till next breakpoint or watch" msgstr "Inicia execuo e/ou executa at prximo ponto de parada (breakpoint) ou visualizao" #: lib/Padre/Plugin/Devel.pm:79 msgid "Start/Stop sub trace" msgstr "Iniciar/Interromper sub trace" #: lib/Padre/Wx/Main.pm:5900 msgid "Stats" msgstr "Estatsticas do documento" #: lib/Padre/Wx/FBP/Sync.pm:49 #: lib/Padre/Wx/Dialog/PluginManager.pm:68 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 msgid "Status" msgstr "Status" #: lib/Padre/Wx/ActionLibrary.pm:2009 msgid "Step In (&s)" msgstr "Passo para dentro (&s)" #: lib/Padre/Wx/ActionLibrary.pm:2044 msgid "Step Out (&r)" msgstr "Passo para fora (&r)" #: lib/Padre/Wx/ActionLibrary.pm:2026 msgid "Step Over (&n)" msgstr "Passo por cima (&n)" #: lib/Padre/Wx/ActionLibrary.pm:1981 msgid "Stop Execution" msgstr "Interromper execuo" #: lib/Padre/Wx/ActionLibrary.pm:1982 msgid "Stop a running task." msgstr "Interrompe tarefa em execuo." #: lib/Padre/Wx/ActionLibrary.pm:111 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Interrompe o processamento de outros itens da fila de aes por 10 segundos" #: lib/Padre/Wx/ActionLibrary.pm:120 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Interrompe processamento de outros itens da fila de aes por 30 segundos" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "String" #: lib/Padre/Plugin/Devel.pm:260 msgid "Sub-tracing started" msgstr "Sub-tracing iniciado" #: lib/Padre/Plugin/Devel.pm:242 msgid "Sub-tracing stopped" msgstr "Sub-tracing interrompido" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Trocar idioma de interface do Padre para %s" #: lib/Padre/Wx/ActionLibrary.pm:1426 msgid "Switch document type" msgstr "Alterar tipo do documento" #: lib/Padre/Wx/ActionLibrary.pm:1636 msgid "Switch highlighting colours" msgstr "Trocar colorao de sintaxe" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Trocar idioma para o padro do sistema" #: lib/Padre/Wx/ActionLibrary.pm:2418 msgid "Switch to edit the file that was previously edited (can switch back and forth)" msgstr "Troca para editar o arquivo que foi editado logo antes (podendo oscilar entre ambos)" #: lib/Padre/Wx/Syntax.pm:301 msgid "Syntax Check" msgstr "Verificao de Sintaxe" #: lib/Padre/Wx/FBP/Preferences.pm:697 msgid "Syntax Highlighter" msgstr "Colorizador de Sintaxe" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Padro do Sistema" #: lib/Padre/Wx/About.pm:74 #: lib/Padre/Wx/About.pm:317 msgid "System Info" msgstr "Informaes do Sistema" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Tab" msgstr "Tab" #: lib/Padre/Wx/FBP/Preferences.pm:459 msgid "Tab display size (in spaces)" msgstr "Tamanho da tabulao (em espaos)" #: lib/Padre/Wx/Main.pm:5929 msgid "Tab to Space" msgstr "Tabs para Espaos" #: lib/Padre/Wx/Menu/Edit.pm:245 msgid "Tabs and Spaces" msgstr "Tabs e Espaos" #: lib/Padre/Wx/ActionLibrary.pm:1022 msgid "Tabs to Spaces..." msgstr "Tabs para Espaos..." #: lib/Padre/MimeTypes.pm:353 msgid "Text" msgstr "Texto" #: lib/Padre/Wx/Main.pm:3924 msgid "Text Files" msgstr "Arquivos Texto" #: lib/Padre/Wx/About.pm:103 #: lib/Padre/Wx/About.pm:135 msgid "The Padre Development Team" msgstr "Time de desenvolvimento Padre" #: lib/Padre/Wx/About.pm:227 msgid "The Padre Translation Team" msgstr "Time de Traduo Padre" #: lib/Padre/Wx/Dialog/Bookmarks.pm:113 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "A marcao '%s' no existe mais" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', or 'Run till Breakpoint' in the Debug menu." msgstr "" "O depurador no est em execuo.\n" "Inicie o depurador usando os comandos 'Passo para dentro', 'Passo por cima', ou 'Executar at ponto de parada (breakpoint)' no menu de Depurao." #: lib/Padre/Wx/Directory.pm:516 msgid "The directory browser got an undef object and may stop working now. Please save your work and restart Padre." msgstr "O navegador de diretrios recebeu um objeto indefinido e pode falhar. Por favor salve seu trabalho e reinicie o Padre." #: lib/Padre/Document.pm:253 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "O arquivo %s tem %s bytes. Isso est alm do limite de tamanho arbitrrio para arquivos do Padre, atualmente %s. Abrir este arquivo pode reduzir o desempenho da IDE. Deseja abrir o arquivo mesmo assim?" #: lib/Padre/Config.pm:376 msgid "The same as Perl itself" msgstr "A mesma que o Perl" #: lib/Padre/Wx/Dialog/KeyBindings.pm:388 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "O atalho '%s' j est em uso pela ao '%s'.\n" #: lib/Padre/Wx/Main.pm:5093 msgid "There are no differences\n" msgstr "Nenhuma diferena encontrada\n" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "There are no positions saved yet" msgstr "Ainda no h posies salvas" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Este documento no contm nenhum POD" #: lib/Padre/Wx/ActionLibrary.pm:2324 msgid "This function reloads the My plug-in without restarting Padre" msgstr "Essa funo recarrega o My-Plugin sem reiniciar o Padre" #: lib/Padre/Wx/Main.pm:4932 msgid "This type of file (URL) is missing delete support." msgstr "Esse tipo de arquivo (URL) no permite remoo." #: lib/Padre/Wx/FBP/Preferences.pm:549 #: lib/Padre/Wx/FBP/Preferences.pm:573 msgid "Timeout (in seconds)" msgstr "Timeout (em segundos)" #: lib/Padre/Wx/TodoList.pm:209 msgid "To-do" msgstr "Afazeres" #: lib/Padre/Wx/Dialog/SpecialValues.pm:17 msgid "Today" msgstr "Hoje" #: lib/Padre/Wx/About.pm:69 msgid "Translation" msgstr "Traduo" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Verdadeiro" #: lib/Padre/Locale.pm:420 msgid "Turkish" msgstr "Turco" #: lib/Padre/Wx/ActionLibrary.pm:1382 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "Ativa verificao de sintaxe do documento atual e exibe sada em uma janela" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Tipo" #: lib/Padre/Wx/Dialog/HelpSearch.pm:146 msgid "Type a help &keyword to read:" msgstr "Digite um tpico de ajuda para ler:" #: lib/Padre/Wx/ActionLibrary.pm:2198 msgid "Type in any expression and evaluate it in the debugged process" msgstr "Escreva qualquer expresso e a avalie do processo em depurao" #: lib/Padre/MimeTypes.pm:652 msgid "UNKNOWN" msgstr "DESCONHECIDO" #: lib/Padre/Config/Style.pm:48 msgid "Ultraedit" msgstr "Ultraedit" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "No foi possvel interpretar %s" #: lib/Padre/Wx/ActionLibrary.pm:575 msgid "Undo last change in current file" msgstr "Desfaz ltima mudana no arquivo atual" #: lib/Padre/Wx/ActionLibrary.pm:1469 msgid "Unfold all" msgstr "Desagrupar tudo" #: lib/Padre/Wx/ActionLibrary.pm:1470 #: lib/Padre/Wx/ActionLibrary.pm:1480 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "Desagrupa todos os blocos que podem ser agrupados (precisa que 'agrupamento de cdigo' esteja ativo)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Unicode character 'name'" msgstr "Caractere 'nome' Unicode" #: lib/Padre/Locale.pm:142 #: lib/Padre/Wx/Main.pm:3720 msgid "Unknown" msgstr "Desconhecido" #: lib/Padre/PluginManager.pm:920 #: lib/Padre/Document/Perl.pm:623 #: lib/Padre/Document/Perl.pm:955 #: lib/Padre/Document/Perl.pm:1004 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "Erro desconhecido" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Erro desconhecido em" #: lib/Padre/Document.pm:967 #, perl-format msgid "Unsaved %d" msgstr "No salvo %d" #: lib/Padre/Wx/Main.pm:4686 msgid "Unsaved File" msgstr "Arquivo no salvo" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "Sistema no suportado: %s" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "Sem Ttulo" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Up" msgstr "Cima" #: lib/Padre/Wx/FBP/Sync.pm:207 msgid "Upload" msgstr "Upload" #: lib/Padre/Wx/ActionLibrary.pm:1064 msgid "Upper All" msgstr "Tudo em maisculas" #: lib/Padre/Wx/Menu/Edit.pm:275 msgid "Upper/Lower Case" msgstr "Caixa Alta/Baixa" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "Caracteres em maisculas" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Uppercase next character" msgstr "Prximo caracteres maisculo" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "Uppercase till \\E" msgstr "Tudo em maisculas at \\E" #: lib/Padre/Wx/About.pm:337 msgid "Uptime" msgstr "Tempo em execuo" #: lib/Padre/Wx/FBP/Preferences.pm:591 msgid "Use FTP passive mode" msgstr "Usar FTP em modo passivo" #: lib/Padre/Wx/ActionLibrary.pm:1128 msgid "Use Perl source as filter" msgstr "Use o fonte do Perl como filtro" #: lib/Padre/Wx/FBP/Preferences.pm:451 msgid "Use Tabs" msgstr "Usar Tabs" #: lib/Padre/Wx/FBP/Preferences.pm:232 msgid "Use X11 middle button paste style" msgstr "Usar boto do meio para colar" #: lib/Padre/Wx/ActionLibrary.pm:1283 msgid "Use a filter to select one or more files" msgstr "Use um filtro para escolher um ou mais arquivos" #: lib/Padre/Wx/FBP/Preferences.pm:630 msgid "Use external window for execution" msgstr "Usar janela externa para execuo" #: lib/Padre/Wx/FBP/Preferences.pm:60 msgid "Use panel order for Ctrl-Tab (not usage history)" msgstr "Use ordem do painel para Ctrl-Tab (em vez de histrico de uso)" #: lib/Padre/Wx/Dialog/Search.pm:184 msgid "Use rege&x" msgstr "Usar e&xpresso regular" #: lib/Padre/Wx/FBP/Preferences.pm:254 msgid "Use splash screen" msgstr "Exibir janela de abertura" #: lib/Padre/Wx/Dialog/Advanced.pm:804 msgid "User" msgstr "Usurio" #: lib/Padre/Wx/FBP/Sync.pm:72 #: lib/Padre/Wx/FBP/Sync.pm:115 msgid "Username" msgstr "Nome de Usurio" #: lib/Padre/Wx/ActionLibrary.pm:2386 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "Usando CPAN.pm para instalar mdulo em formato compatvel com CPAN, aberto localmente" #: lib/Padre/Wx/ActionLibrary.pm:2396 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "Usando pip para baixar .tar.gz e instal-lo via CPAN.pm" #: lib/Padre/Wx/Debug.pm:139 #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Valor" #: lib/Padre/Wx/Debug.pm:138 msgid "Variable" msgstr "Varivel" #: lib/Padre/Wx/ActionLibrary.pm:1868 msgid "Variable Name" msgstr "Varivel" #: lib/Padre/Document/Perl.pm:914 msgid "Variable case change" msgstr "Trocar caixa de varivel (maisc/minusc)" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 msgid "Version" msgstr "Verso" #: lib/Padre/Wx/ActionLibrary.pm:1724 msgid "Vertically Align Selected" msgstr "Alinhar Seleo Verticalmente" #: lib/Padre/Wx/Syntax.pm:61 msgid "Very Fatal Error" msgstr "Erro extremamente fatal" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 msgid "View" msgstr "Exibir" #: lib/Padre/Wx/ActionLibrary.pm:2702 msgid "View All &Open Bugs" msgstr "Ver Todos os Problemas(Bugs) em &Aberto" #: lib/Padre/Wx/Menu/View.pm:82 msgid "View Document As..." msgstr "Ver Documento Como..." #: lib/Padre/Wx/ActionLibrary.pm:2703 msgid "View all known and currently unsolved bugs in Padre" msgstr "Ver todos os problemas (bugs) conhecidos e ainda no solucionados no Padre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Visible characters" msgstr "Caracteres visveis" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "Caracteres visveis e espaos" #: lib/Padre/Wx/ActionLibrary.pm:2682 msgid "Visit the PerlMonks" msgstr "Visite os PerlMonks" #: lib/Padre/Document.pm:768 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "Nome de arquivo visvel %s no condiz com nome interno %s, gostaria de abortar a gravao?" #: lib/Padre/Document.pm:259 #: lib/Padre/Wx/Syntax.pm:31 #: lib/Padre/Wx/Main.pm:2805 #: lib/Padre/Wx/Main.pm:3412 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Aviso" #: lib/Padre/Wx/ActionLibrary.pm:2337 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "Ateno! Isso vai apagar todas as modificaes feitas ao \"My Plugin\" e restaurar o cdigo padro que vem com sua instalao do Padre" #: lib/Padre/PluginManager.pm:421 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Encontramos muitos novos plugins.\n" "Para configur-los e ativ-los acesse\n" "Plugins -> Gerenciador de Plugins\n" "\n" "Lista de novos plugins:\n" "\n" #: lib/Padre/Wx/Main.pm:3926 msgid "Web Files" msgstr "Arquivos Web" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Qualquer coisa" #: lib/Padre/Wx/ActionLibrary.pm:2152 msgid "When in a subroutine call show all the calls since the main of the program" msgstr "Quando dentro de uma chamada a subrotina, exibe todas as chamadas at o programa principal" #: lib/Padre/Wx/ActionLibrary.pm:1490 msgid "When typing in functions allow showing short examples of the function" msgstr "Ao digitar funes, exibe pequenos exemplos de uso da mesma" #: lib/Padre/Wx/FBP/WhereFrom.pm:35 msgid "Where did you hear about Padre?" msgstr "Onde voc ouviu falar do Padre?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "Espaos e tabs" #: lib/Padre/Wx/ActionLibrary.pm:2668 msgid "Win32 Questions (English)" msgstr "Ajuda sobre Win32 (em ingls)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:397 msgid "Window" msgstr "Janela" #: lib/Padre/Wx/Dialog/WindowList.pm:35 msgid "Window list" msgstr "Lista de janelas" #: lib/Padre/Wx/Dialog/WizardSelector.pm:47 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:18 msgid "Wizard Selector" msgstr "Escolher Wizard" #: lib/Padre/Wx/ActionLibrary.pm:202 msgid "Wizard Selector..." msgstr "Escolher Wizard..." #: lib/Padre/Wx/ActionLibrary.pm:542 msgid "Word count and other statistics of the current document" msgstr "Contagem de palavras e outras estatsticas sobre o documento atual" #: lib/Padre/Wx/ActionLibrary.pm:1555 msgid "Word-Wrap" msgstr "Quebra Automtica de Linha" #: lib/Padre/Wx/Dialog/DocStats.pm:102 msgid "Words" msgstr "Palavras" #: lib/Padre/Wx/ActionLibrary.pm:1556 msgid "Wrap long lines" msgstr "Quebra linhas muito longas" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Escrevendo arquivo no servidor FTP..." #: lib/Padre/Wx/Output.pm:141 #: lib/Padre/Wx/Main.pm:2661 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Seu Wx::Perl::ProcessStream est na verso %s que conhecida por causar problemas. Obtenha ao menos a verso 0.20 digitando\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/SpecialValues.pm:18 msgid "Year" msgstr "Ano" #: lib/Padre/Wx/Editor.pm:1649 msgid "You must select a range of lines" msgstr "Voc precisa selecionar uma sequncia de linhas" #: lib/Padre/Wx/Main.pm:3411 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Voc ainda possui processos em execuo. Gostaria de finaliz-los e sair?" #: lib/Padre/CPAN.pm:185 msgid "cpanm is unexpectedly not installed" msgstr "cpanm inesperadamente no est instalado" #: lib/Padre/PluginHandle.pm:93 #: lib/Padre/Wx/Dialog/PluginManager.pm:530 msgid "disabled" msgstr "desativado" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "ex: " #: lib/Padre/PluginHandle.pm:94 #: lib/Padre/Wx/Dialog/PluginManager.pm:518 msgid "enabled" msgstr "ativado" #: lib/Padre/PluginHandle.pm:89 #: lib/Padre/Wx/Dialog/PluginManager.pm:491 msgid "error" msgstr "erro" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:354 msgid "fresh" msgstr "atualizado" #: lib/Padre/PluginHandle.pm:92 #: lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "incompatible" msgstr "incompatvel" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "carregado" #: lib/Padre/Wx/Dialog/ModuleStart.pm:148 msgid "missing field" msgstr "campo no preenchido" #: lib/Padre/Document.pm:947 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "nenhum colorizador para mime-type '%s' usando stc" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "nenhum" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 #: lib/Padre/Wx/Dialog/ModuleStart.pm:46 msgid "restrictive" msgstr "restritivo" #: lib/Padre/Wx/About.pm:107 msgid "splash image is based on work by" msgstr "imagem de abertura baseada no trabalho de" #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "no carregado" #: lib/Padre/Wx/Dialog/ModuleStart.pm:27 #: lib/Padre/Wx/Dialog/ModuleStart.pm:47 msgid "unrestricted" msgstr "sem restrio" #: lib/Padre/Wx/About.pm:342 msgid "unsupported" msgstr "No suportado" #: lib/Padre/Plugin/Devel.pm:96 msgid "wxPerl Live Support" msgstr "Suporte On-line wxPerl" #: lib/Padre/Plugin/Devel.pm:90 #, perl-format msgid "wxWidgets %s Reference" msgstr "Referncia do wxWidgets %s" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "Diretrio de projeto %s no existe (mais). Este um erro fatal e causar " #~ "problemas, por favor feche este arquivo ou 'salve como' a menos que " #~ "realmente saiba o que est fazendo." #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Simular Falha em Tarefa de fundo" #~ msgid "Style" #~ msgstr "Estilo" #~ msgid "Regular Expression" #~ msgstr "Expresso Regular" #~ msgid "Open" #~ msgstr "Abrir" #~ msgid "&Find Next" #~ msgstr "Procurar &Prximo" #~ msgid "Find &Text:" #~ msgstr "Procurar &Texto:" #~ msgid "Not a valid search" #~ msgstr "Busca invlida" #~ msgid "Perl Auto Complete" #~ msgstr "Auto completar (Perl)" #~ msgid "Enable bookmarks" #~ msgstr "Ativar marcaes" #~ msgid "Change font size" #~ msgstr "Modificar tamanho da fonte" #~ msgid "Enable session manager" #~ msgstr "Ativar gerenciador de sesses" #~ msgid "Browse..." #~ msgstr "Procurar..." #~ msgid "File type:" #~ msgstr "Tipo de arquivo:" #~ msgid "Content type:" #~ msgstr "Tipo do contedo: %s" #~ msgid "Guess" #~ msgstr "Adivinhar" #~ msgid "Choose the default projects directory" #~ msgstr "Escolher diretrio padro de projetos" #~ msgid "Project name" #~ msgstr "Nome do projeto" #~ msgid "Padre version" #~ msgstr "Verso do Padre" #~ msgid "Current filename" #~ msgstr "Nome do arquivo atual" #~ msgid "Current file's dirname" #~ msgstr "Diretrio do arquivo atual" #~ msgid "Current file's basename" #~ msgstr "Raiz do arquivo atual" #~ msgid "Current filename relative to project" #~ msgstr "Nome do arquivo atual relativo ao projeto" #~ msgid "Window title:" #~ msgstr "Nome da janela:" #~ msgid "Settings Demo" #~ msgstr "Exemplo das Configuraes" #~ msgid "Any changes to these options require a restart:" #~ msgstr "Modificaes a essas opes exigiro o reincio do Padre:" #~ msgid "Enable?" #~ msgstr "Ativar?" #~ msgid "Crashed" #~ msgstr "Morreu" #~ msgid "Unsaved" #~ msgstr "No salvo" #~ msgid "N/A" #~ msgstr "N/D" #~ msgid "No Document" #~ msgstr "Nenhum documento" #~ msgid "Document name:" #~ msgstr "Nome do documento:" #~ msgid "Document location:" #~ msgstr "Localizao do documento:" #~ msgid "Current Document: %s" #~ msgstr "Documento Atual: %s" #~ msgid "Run Parameters" #~ msgstr "Parmetros de execuo" #~ msgid "Files and Colors" #~ msgstr "Arquivos e cores" #~ msgid "new" #~ msgstr "novo" #~ msgid "nothing" #~ msgstr "nenhum" #~ msgid "last" #~ msgstr "ltimo" #~ msgid "session" #~ msgstr "sesso" #~ msgid "no" #~ msgstr "no" #~ msgid "same_level" #~ msgstr "mesmo_nivel" #~ msgid "deep" #~ msgstr "profunda" #~ msgid "alphabetical" #~ msgstr "alfabtica" #~ msgid "original" #~ msgstr "original" #~ msgid "alphabetical_private_last" #~ msgstr "alfabtica_privados_por_ltimo" #~ msgid "Save settings" #~ msgstr "Salvar configuraes" #~ msgid "Quick Find" #~ msgstr "Busca Rpida" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "Busca incremental vista na parte inferior da janela" #~ msgid "Automatic Bracket Completion" #~ msgstr "Fechar blocos automaticamente" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "Ao digitar { insere um } de encerramento automaticamente" #~ msgid "No diagnostics available for this error." #~ msgstr "Nenhum diagnstico disponvel para este erro." #~ msgid "Info" #~ msgstr "Info" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "No foi possvel abrir %s pois est acima do limite arbitrrio de tamanho " #~ "de arquivo do Padre que atualmente %s" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s threads esto em execuo.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "No momento, nenhuma tarefa est sendo executada ao fundo.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "As seguintes tarefas esto em execuo ao fundo no momento:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s do tipo '%s':\n" #~ " (em thread(s) %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "Adicionalmente, existem %s tarefas pendendo execuo.\n" #~ msgid "Term:" #~ msgstr "Termo:" #~ msgid "Dir:" #~ msgstr "Dir:" #~ msgid "Pick &directory" #~ msgstr "Escolher &diretrio" #~ msgid "In Files/Types:" #~ msgstr "Em Arquivos/Tipos:" #~ msgid "Case &Insensitive" #~ msgstr "&Insensvel a Caixa" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "I&gnorar subdiretrios ocultos" #~ msgid "Show only files that don't match" #~ msgstr "Exibir apenas arquivos sem o termo" #~ msgid "Found %d files and %d matches\n" #~ msgstr "%d arquivos e %d ocorrncias encontradas\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "No foi possvel encontrar '%s' no arquivo '%s'\n" #~ msgid "Errors" #~ msgstr "Erros" #~ msgid "Diagnostics" #~ msgstr "Diagnstico" #~ msgid "Line No" #~ msgstr "Linha" #~ msgid "Please choose a different name." #~ msgstr "Por favor escolha um nome diferente." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "Um arquivo com o mesmo nome j existe neste diretrio" #~ msgid "Move here" #~ msgstr "Mover aqui" #~ msgid "Copy here" #~ msgstr "Copiar aqui" #~ msgid "folder" #~ msgstr "pasta" #~ msgid "Rename / Move" #~ msgstr "Renomear / Mover" #~ msgid "Move to trash" #~ msgstr "Mover para a lixeira" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "Tem certeza que deseja remover este item?" #~ msgid "Show hidden files" #~ msgstr "Exibir arquivos ocultos" #~ msgid "Skip hidden files" #~ msgstr "Ignorar arquivos ocultos" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "Ignorar pastas CVS/.svn/.git/blib" #~ msgid "Change project directory" #~ msgstr "Mudar Diretrio do Projeto" #~ msgid "Tree listing" #~ msgstr "Listagem por rvore" #~ msgid "Navigate" #~ msgstr "Navegar" #~ msgid "Change listing mode view" #~ msgstr "Mudar modo de viso da listagem" #~ msgid "Switch menus to %s" #~ msgstr "Trocar menus para %s" #~ msgid "Convert EOL" #~ msgstr "Converter Fim de Linha" #~ msgid "Key binding name" #~ msgstr "Nome da associao de teclas" #~ msgid "Action" #~ msgstr "Ao" #~ msgid "GoTo Bookmark" #~ msgstr "Ir para Marcao" #~ msgid "Replacement" #~ msgstr "Substituio" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "Exibe janela com navegador de diretrios para o projeto atual" #~ msgid "Show Errors" #~ msgstr "Exibir erros" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "Exibe lista de erros recebidos durante execuo do programa" #~ msgid "Rename Variable..." #~ msgstr "Renomear varivel..." #~ msgid "???" #~ msgstr "???" #~ msgid "Finished Searching" #~ msgstr "Busca concluda" #~ msgid "Norwegian (Norway)" #~ msgstr "Noruegus (Noruega)" #~ msgid "&Goto Line" #~ msgstr "&Ir para linha" #~ msgid "Ask the user for a row number and jump there" #~ msgstr "Pede um nmero de linha ao usurio e pula para l" #~ msgid "Insert Special Value" #~ msgstr "Inserir Valor Especial" #~ msgid "Insert From File..." #~ msgstr "Inserir a partir de Arquivo..." #~ msgid "Regex editor" #~ msgstr "Editor de Expresses Regulares" #~ msgid "Show as hexa" #~ msgstr "Exibir como hexadecimal" #~ msgid "" #~ "Show the ASCII values of the selected text in hexa in the output window" #~ msgstr "" #~ "Exibe os valores ASCII do texto selecionado em hexa na janela de sada" #~ msgid "New Subroutine Name" #~ msgstr "Novo Nome da Subrotina" #~ msgid "Show the about-Padre information" #~ msgstr "Exibe informaes sobre o Padre" #~ msgid "Check the current file" #~ msgstr "Verifica arquivo atual" #~ msgid "Save &As" #~ msgstr "Salvar &Como" #~ msgid "'%s' does not look like a variable" #~ msgstr "'%s' no parece uma varivel" #~ msgid "Lines: %d" #~ msgstr "Linhas: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Caracteres sem espaos: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Caracteres com espaos: %d" #~ msgid "Newline type: %s" #~ msgstr "Tipo da quebra de linha: %s" #~ msgid "Size on disk: %s" #~ msgstr "Tamanho no disco: %s" #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "" #~ "Arquivo foi removido do disco, gostaria de limpar a janela do editor?" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "" #~ "Arquivo modificado em disco desde o ltimo salvamento. Gostaria de " #~ "recarreg-lo?" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Error List" #~ msgstr "Lista de Erros" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "%s aparentemente criado. Gostaria de abri-lo agora?" #~ msgid "Done" #~ msgstr "Concludo" #~ msgid "Skip VCS files" #~ msgstr "Ignorar arquivos VCS" #~ msgid "Timeout:" #~ msgstr "Timeout:" #~ msgid "Select all\tCtrl-A" #~ msgstr "Selecionar tudo\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Copiar\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "Recor&tar\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "Co&lar\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "&Ativar Comentrios\tCtrl-Shift-C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "&Comentar Linhas Selecionadas\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "&Descomentar Linhas Selecionadas\tCtrl-Shift-M" #~ msgid "Error while calling help_render: " #~ msgstr "Erro chamando help_render:" #~ msgid "Error while calling get_help_provider: " #~ msgstr "Erro chamando get_help_provider:" #~ msgid "Error:\n" #~ msgstr "Erro:\n" #~ msgid "Start Debugger (Debug::Client)" #~ msgstr "Iniciar depurador (Debug::Client)" #~ msgid "Run the current document through the Debug::Client." #~ msgstr "Executa documento atual atravs do Debug::Client." #~ msgid "Enable logging" #~ msgstr "Ativar log" #~ msgid "Disable logging" #~ msgstr "Desativar log" #~ msgid "Enable trace when logging" #~ msgstr "Ativar trace durante log" #~ msgid "&Count All" #~ msgstr "&Contar Todos" #~ msgid "Found %d matching occurrences" #~ msgstr "%d ocorrncias encontradas" #~ msgid "&Match" #~ msgstr "&Pesquisar" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "&Close\tCtrl+W" #~ msgstr "&Fechar\tCtrl+W" #~ msgid "&Open\tCtrl+O" #~ msgstr "&Abrir\tCtrl+O" #~ msgid "E&xit\tCtrl+X" #~ msgstr "Sai&r\tCtrl+X" #~ msgid "&Split window" #~ msgstr "&Dividir janela" #~ msgid "&Use Regex" #~ msgstr "&Usar Expresso Regular" #~ msgid "Close Window on &hit" #~ msgstr "Fechar &Janela ao clicar" #~ msgid "%s occurences were replaced" #~ msgstr "%s ocorrncias foram substitudas" #~ msgid "Nothing to replace" #~ msgstr "Nada para substituir" #~ msgid "Cannot build regex for '%s'" #~ msgstr "No foi possvel montar regex para '%s'" #~ msgid "GoTo Subs Window" #~ msgstr "Ir para Janela de Subs" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Testar Plugin a partir de Diretrio Local" #~ msgid "Install Module..." #~ msgstr "Instalar Mdulo..." #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "Plugin:%s - Falha ao carregar mdulo: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "Plugin:%s - No compatvel com a API Padre::Plugin. Precisa ser uma " #~ "subclasse de Padre::Plugin" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "Plugin:%s - No foi possvel instanciar objeto do plugin: o construtor " #~ "no retornou um objeto Padre::Plugin" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "Plugin:%s - No possui menus" #~ msgid "Mime type:" #~ msgstr "Mime-type:" #~ msgid "Close All but Current" #~ msgstr "Fechar Todos exceto Atual" #~ msgid "Save File" #~ msgstr "Salvar Arquivo" #~ msgid "Undo" #~ msgstr "Desfazer" #~ msgid "Redo" #~ msgstr "Refazer" #~ msgid "Workspace View" #~ msgstr "Exibio da rea de Trabalho" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "Definir Marcao\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "Ir para Marcao\tCtrl-Shift-B" #~ msgid "Stop\tF6" #~ msgstr "Parar\tF6" #~ msgid "&New\tCtrl-N" #~ msgstr "&Novo\tCtrl-N" #~ msgid "&Close\tCtrl-W" #~ msgstr "&Fechar\tCtrl-W" #~ msgid "&Save\tCtrl-S" #~ msgstr "&Salvar\tCtrl-S" #~ msgid "Save &As...\tF12" #~ msgstr "Salvar &Como...\tF12" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "Abrir Seleo\tCtrl-Shift-O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "Abrir Sesso\tCtrl-Alt-O" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "Salvar Sesso atual...\tCtrl-Alt-S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "Sai&r\tCtrl-Q" #~ msgid "&Find\tCtrl-F" #~ msgstr "&Procurar\tCtrl-F" #~ msgid "Find Next\tF3" #~ msgstr "Procurar Prximo\tF3" #~ msgid "Find Next\tF4" #~ msgstr "Buscar Prximo\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "Buscar Anterior\tShift-F4" #~ msgid "Replace\tCtrl-R" #~ msgstr "Substituir\tCtrl-R" #~ msgid "&Goto\tCtrl-G" #~ msgstr "&Ir para\tCtrl-G" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "Trechos\tCtrl-Shift-A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "Tudo em Maisculas\tCtrl-Shift-U" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "Prximo Arquivo\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "Arquivo Anterior\tCtrl-Shift-TAB" #~ msgid "Expand / Collapse" #~ msgstr "Expandir / Contrair" #~ msgid "L:" #~ msgstr "L:" #~ msgid "Ch:" #~ msgstr "Caract:" #~ msgid "Use PPI Syntax Highlighting" #~ msgstr "Usar PPI para Colorao de Sintaxe" #~ msgid "Disable Experimental Mode" #~ msgstr "Desativar Modo Experimental" #~ msgid "Refresh Menu" #~ msgstr "Atualizar Menu" #~ msgid "Refresh Counter: " #~ msgstr "Atualizar Contador:" #~ msgid "Text to find:" #~ msgstr "Texto a procurar:" #~ msgid "Sub List" #~ msgstr "Lista de Subs" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "Convert..." #~ msgstr "Converter..." #~ msgid "All available plugins on CPAN" #~ msgstr "Todos os plugins disponveis no CPAN" #~ msgid "Background Tasks are idle" #~ msgstr "Tarefas ao fundo esto ociosas" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "Plugin:%s - No compatvel com a API Padre::Plugin. Plugin no pde ser " #~ "instaciado" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "Plugin:%s - No compatvel com a API Padre::Plugin. Precisa ter a sub " #~ "padre_interfaces" #~ msgid "No output" #~ msgstr "Nenhuma sada" #~ msgid "Ac&k Search" #~ msgstr "Pesquisa Ac&k" #~ msgid "Doc Stats" #~ msgstr "Estatsticas do Documento" #~ msgid "Command line parameters" #~ msgstr "Parmetros na linha de comando" #~ msgid "Run Parameters\tShift-Ctrl-F5" #~ msgstr "Parmetros de execuo\tShift-Ctrl-F5" #~ msgid "Incompatible" #~ msgstr "Incompatvel" #~ msgid "" #~ "Module Name:\n" #~ "e.g.: Perl::Critic" #~ msgstr "" #~ "Nome do Mdulo:\n" #~ "e.g.: Perl::Critic" #~ msgid "(running from SVN checkout)" #~ msgstr "(executando a partir de checkout SVN)" #~ msgid "Not implemented yet" #~ msgstr "Ainda no implementado" #~ msgid "Not yet available" #~ msgstr "Ainda no disponvel" #~ msgid "Select Project Name or type in new one" #~ msgstr "Escolha o nome do projeto ou digite um novo" #~ msgid "Recent Projects" #~ msgstr "Projetos Recentes" #~ msgid "Ac&k" #~ msgstr "Ac&k" Padre-1.00/share/locale/de.po0000644000175000017500000062313211743342121014437 0ustar petepete# German translations for Padre package. # Copyright (C) 2008, 2009, 2010, 2011 THE Padre COPYRIGHT HOLDERS # This file is distributed under the same license as the Padre package. # Heiko Jansen , 2008. # msgid "" msgstr "" "Project-Id-Version: 0.72\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-12 08:10-0700\n" "PO-Revision-Date: 2011-03-08 12:00+0100\n" "Last-Translator: Zeno Gantner\n" "Language-Team: German\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: \n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "\".\" also matches newline" msgstr "\".\" steht auch für Zeilenumbrüche" #: lib/Padre/Config.pm:487 msgid "" "\"Open session\" will ask which session (set of files) to open when you " "launch Padre." msgstr "" "\"Sitzung öffnen\" fragt welche Sitzung (Menge von Dateien) beim Start von " "Padre geöffnet werden sollen." #: lib/Padre/Config.pm:489 msgid "" "\"Previous open files\" will remember the open files when you close Padre " "and open the same files next time you launch Padre." msgstr "" "\"Kürzlich bearbeitet\" merkt sich die beim Schließen von Padre offenen " "Dateien und öffnet diese beim nächsten Start von Padre." #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "" "\"^\" und \"$\" finden den Anfang und das Ende jeder Zeile innerhalb der " "Zeichenkette" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# Eingabe ist in $_$_ = $_;\n" "# Ausgabe geht nach $_" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "$_ für beide" #: lib/Padre/Wx/Diff.pm:110 #, perl-format msgid "%d line added" msgstr "%d Zeile hinzugefügt" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d line changed" msgstr "%d Zeile geändert" #: lib/Padre/Wx/Diff.pm:121 #, perl-format msgid "%d line deleted" msgstr "%d Zeile gelöscht" #: lib/Padre/Wx/Diff.pm:109 #, perl-format msgid "%d lines added" msgstr "%d Zeilen hinzugefügt" #: lib/Padre/Wx/Diff.pm:98 #, perl-format msgid "%d lines changed" msgstr "%d Zeilen verändert" #: lib/Padre/Wx/Diff.pm:120 #, perl-format msgid "%d lines deleted" msgstr "%d Zeilen gelöscht" #: lib/Padre/Wx/ReplaceInFiles.pm:214 #, perl-format msgid "%s (%s changed)" msgstr "%s (%s geändert)" #: lib/Padre/Wx/Panel/FoundInFiles.pm:346 #, perl-format msgid "%s (%s results)" msgstr "%s (%s Treffer)" #: lib/Padre/Wx/ReplaceInFiles.pm:222 #, perl-format msgid "%s (crashed)" msgstr "%s (abgestürzt)" #: lib/Padre/PluginManager.pm:527 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s ist bei der Instanzierung von %s gecrashed." #: lib/Padre/PluginManager.pm:473 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s ist beim Laden von %s abgestürzt." #: lib/Padre/PluginManager.pm:537 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - Konnte Plugin-Objekt nicht instantiieren" #: lib/Padre/PluginManager.pm:497 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s ist keine Padre::Plugin-Subklasse" #: lib/Padre/PluginManager.pm:510 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - Nicht kompatibel mit Padre %s - %s" #: lib/Padre/PluginManager.pm:485 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - Plugin ist leer oder ohne Versionsnummer" #: lib/Padre/Wx/TaskList.pm:280 lib/Padre/Wx/Panel/TaskList.pm:172 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s in TODO-Regex, bitte überprüfen Sie Ihre Konfiguration" #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s Zeile %s: %s" #: lib/Padre/Wx/VCS.pm:212 #, perl-format msgid "%s version control is not currently available" msgstr "Versionskontrolle mit %s wird momentan leider nicht unterstützt" # perl-format #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Zeile: %s Datei: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2592 lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "&Info" #: lib/Padre/Wx/FBP/Preferences.pm:1545 msgid "&Advanced..." msgstr "&Experten-Modus..." #: lib/Padre/Wx/ActionLibrary.pm:860 msgid "&Autocomplete" msgstr "&Auto-Vervollständigung" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "&Brace Matching" msgstr "&Zugehörige Klammer finden" #: lib/Padre/Wx/FBP/FindInFiles.pm:90 lib/Padre/Wx/FBP/ReplaceInFiles.pm:108 msgid "&Browse" msgstr "&Durchsuchen" #: lib/Padre/Wx/FBP/Preferences.pm:1561 lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:153 #: lib/Padre/Wx/Dialog/OpenResource.pm:183 lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&Abbrechen" #: lib/Padre/Wx/FBP/FindInFiles.pm:137 lib/Padre/Wx/FBP/Find.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:147 lib/Padre/Wx/FBP/Replace.pm:121 msgid "&Case Sensitive" msgstr "&Groß-/Kleinschreibung beachten" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "&Variablenamen-Stil ändern" #: lib/Padre/Wx/ActionLibrary.pm:1706 msgid "&Check for Common (Beginner) Errors" msgstr "&Nach häufigen (Anfänger-)Fehlern suchen" #: lib/Padre/Wx/ActionLibrary.pm:532 msgid "&Clean Recent Files List" msgstr "&Liste leeren" #: lib/Padre/Wx/ActionLibrary.pm:658 msgid "&Clear Selection Marks" msgstr "&Entferne Auswahl-Marken" #: lib/Padre/Wx/ActionLibrary.pm:274 lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:134 lib/Padre/Wx/Dialog/HelpSearch.pm:180 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:275 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 msgid "&Close" msgstr "S&chließen" #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "&Comment Out" msgstr "&Auskommentieren" #: lib/Padre/Wx/ActionLibrary.pm:2491 msgid "&Context Help" msgstr "&Kontexthilfe" #: lib/Padre/Wx/ActionLibrary.pm:2376 msgid "&Context Menu" msgstr "&Kontextmenü" #: lib/Padre/Wx/ActionLibrary.pm:688 msgid "&Copy" msgstr "&Kopieren" #: lib/Padre/Wx/Menu/Debug.pm:68 msgid "&Debug" msgstr "Debu&gging" #: lib/Padre/Wx/ActionLibrary.pm:1638 msgid "&Decrease Font Size" msgstr "Schrift ver&kleinern" #: lib/Padre/Wx/ActionLibrary.pm:369 lib/Padre/Wx/FBP/Preferences.pm:1213 #: lib/Padre/Wx/FBP/Bookmarks.pm:95 lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "&Löschen" #: lib/Padre/Wx/ActionLibrary.pm:1073 msgid "&Delete Trailing Spaces" msgstr "Entferne Leerzeichen am &Ende" #: lib/Padre/Wx/ActionLibrary.pm:1718 msgid "&Deparse selection" msgstr "'&Deparse' Auswahl" #: lib/Padre/Wx/Dialog/PluginManager.pm:104 msgid "&Disable" msgstr "&Deaktivieren" #: lib/Padre/Wx/ActionLibrary.pm:544 msgid "&Document Statistics" msgstr "&Dokumenten-Statistik" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "&Edit" msgstr "&Bearbeiten" #: lib/Padre/Wx/ActionLibrary.pm:2255 msgid "&Edit My Plug-in" msgstr "&Editiere 'Mein Plugin'" #: lib/Padre/Wx/ActionLibrary.pm:2220 msgid "&Edit with Regex Editor..." msgstr "Mit Regex-&Editor bearbeiten" #: lib/Padre/Wx/Dialog/PluginManager.pm:110 #: lib/Padre/Wx/Dialog/PluginManager.pm:116 msgid "&Enable" msgstr "&Aktivieren" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "Zeilennummer zwischen 1 und %s &eingeben:" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "Position zwischen 1 und %s &eingeben:" #: lib/Padre/Wx/Menu/File.pm:291 msgid "&File" msgstr "&Datei" #: lib/Padre/Wx/ActionLibrary.pm:930 msgid "&File..." msgstr "&Datei..." #: lib/Padre/Wx/FBP/Preferences.pm:1097 lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "&Filter:" #: lib/Padre/Wx/FBP/FindInFiles.pm:153 msgid "&Find" msgstr "&Suchen" #: lib/Padre/Wx/FBP/Find.pm:111 lib/Padre/Wx/FBP/Replace.pm:153 msgid "&Find Next" msgstr "Weitersuchen" #: lib/Padre/Wx/ActionLibrary.pm:1220 msgid "&Find Previous" msgstr "&Rückwärts suchen" #: lib/Padre/Wx/ActionLibrary.pm:1167 msgid "&Find..." msgstr "&Suchen..." #: lib/Padre/Wx/ActionLibrary.pm:1518 msgid "&Fold All" msgstr "&Alle einklappen" #: lib/Padre/Wx/ActionLibrary.pm:1538 msgid "&Fold/Unfold Current" msgstr "&Ein-/Ausklappen" #: lib/Padre/Wx/ActionLibrary.pm:1282 msgid "&Go To..." msgstr "&Gehe zu..." #: lib/Padre/Wx/Outline.pm:141 msgid "&Go to Element" msgstr "&Gehe zu Element" #: lib/Padre/Wx/ActionLibrary.pm:2470 lib/Padre/Wx/Menu/Help.pm:115 msgid "&Help" msgstr "&Hilfe" #: lib/Padre/Wx/ActionLibrary.pm:1628 msgid "&Increase Font Size" msgstr "Schrift ver&größern" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "&Join Lines" msgstr "Zei&len zusammenführen" #: lib/Padre/Wx/ActionLibrary.pm:2110 msgid "&Launch Debugger" msgstr "&Debugger starten" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "&Live-Support" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "Alle Padre-Module &laden" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "&Lower All" msgstr "Alles in &Kleinbuchstaben" #: lib/Padre/Wx/Dialog/HelpSearch.pm:155 msgid "&Matching Help Topics:" msgstr "Gefundene Hilfe-Themen:" #: lib/Padre/Wx/Dialog/OpenResource.pm:227 msgid "&Matching Items:" msgstr "Gefundene Ele&mente:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:181 msgid "&Matching Menu Items:" msgstr "Passende &Menüeinträge:" #: lib/Padre/Wx/Menu/Tools.pm:67 msgid "&Module Tools" msgstr "&Modul-Werkzeuge" #: lib/Padre/Wx/ActionLibrary.pm:1926 msgid "&Move POD to __END__" msgstr "&POD zum Ende der Datei verschieben" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "&Neu" #: lib/Padre/Wx/ActionLibrary.pm:1779 msgid "&Newline Same Column" msgstr "&Neue Zeile, gleiche Spalte" #: lib/Padre/Wx/FBP/FindFast.pm:101 msgid "&Next" msgstr "&Weiter" #: lib/Padre/Wx/ActionLibrary.pm:791 msgid "&Next Difference" msgstr "&Nächste Veränderung" #: lib/Padre/Wx/ActionLibrary.pm:2353 msgid "&Next File" msgstr "&Nächste Datei" #: lib/Padre/Wx/ActionLibrary.pm:780 msgid "&Next Problem" msgstr "&Nächstes Problem" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:149 #: lib/Padre/Wx/Dialog/OpenResource.pm:177 lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "Ö&ffnen" #: lib/Padre/Wx/ActionLibrary.pm:523 msgid "&Open All Recent Files" msgstr "&Alle kürzlich bearbeiteten Dateien öffnen" #: lib/Padre/Wx/ActionLibrary.pm:195 msgid "&Open..." msgstr "Ö&ffnen..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:228 msgid "&Original text:" msgstr "&Originaltext:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "&Ausgabetext:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:81 msgid "&POSIX Character classes" msgstr "&POSIX-Zeichenklassen" #: lib/Padre/Wx/ActionLibrary.pm:2515 msgid "&Padre Support (English)" msgstr "&Padre-Support (Englisch)" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "&Paste" msgstr "&Einfügen" #: lib/Padre/Wx/ActionLibrary.pm:1107 msgid "&Patch..." msgstr "&Patch..." #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "&Perl-Filter-Code:" #: lib/Padre/Wx/ActionLibrary.pm:2233 msgid "&Plug-in Manager" msgstr "&Plugin-Manager" #: lib/Padre/Wx/ActionLibrary.pm:2188 msgid "&Preferences" msgstr "&Einstellungen" #: lib/Padre/Wx/FBP/FindFast.pm:85 msgid "&Previous" msgstr "&Zurück" #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "&Previous File" msgstr "&Vorherige Datei" #: lib/Padre/Wx/ActionLibrary.pm:503 msgid "&Print..." msgstr "&Drucken..." #: lib/Padre/Wx/ActionLibrary.pm:556 msgid "&Project Statistics" msgstr "&Projekt-Statistik" #: lib/Padre/Wx/Dialog/RegexEditor.pm:100 msgid "&Quantifiers" msgstr "&Quantifikatoren" #: lib/Padre/Wx/ActionLibrary.pm:803 msgid "&Quick Fix" msgstr "&Häufige Fehler finden" #: lib/Padre/Wx/ActionLibrary.pm:1331 msgid "&Quick Menu Access..." msgstr "&Menü-Schnellzugriff..." #: lib/Padre/Wx/ActionLibrary.pm:567 msgid "&Quit" msgstr "&Beenden" #: lib/Padre/Wx/Menu/File.pm:248 msgid "&Recent Files" msgstr "&Kürzlich bearbeitet" #: lib/Padre/Wx/ActionLibrary.pm:607 msgid "&Redo" msgstr "&Wiederherstellen" #: lib/Padre/Wx/ActionLibrary.pm:2210 msgid "&Regex Editor" msgstr "&Regex-Editor" #: lib/Padre/Wx/FBP/FindInFiles.pm:129 lib/Padre/Wx/FBP/ReplaceInFiles.pm:155 msgid "&Regular Expression" msgstr "R&egulärer Ausdruck" #: lib/Padre/Wx/Dialog/RegexEditor.pm:168 msgid "&Regular expression:" msgstr "&Regulärer Ausdruck:" #: lib/Padre/Wx/ActionLibrary.pm:2272 msgid "&Reload My Plug-in" msgstr "Lade 'Mein Plugin' e&rneut" #: lib/Padre/Wx/Main.pm:4697 msgid "&Reload selected" msgstr "&Ausgewählte Dateien neu laden" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "&Rename Variable..." msgstr "&Variable umbenennen..." #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:171 lib/Padre/Wx/FBP/Replace.pm:169 msgid "&Replace" msgstr "E&rsetzen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:249 msgid "&Replace text with:" msgstr "&Ersetze Text durch:" #: lib/Padre/Wx/FBP/Preferences.pm:1232 lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "Zu&rücksetzen" #: lib/Padre/Wx/ActionLibrary.pm:1648 msgid "&Reset Font Size" msgstr "Schriftgröße &zurücksetzen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:259 msgid "&Result from replace:" msgstr "Ergebnis &der Ersetzung:" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "A&usführen" #: lib/Padre/Wx/ActionLibrary.pm:1942 msgid "&Run Script" msgstr "&Skript ausführen" #: lib/Padre/Wx/ActionLibrary.pm:413 lib/Padre/Wx/FBP/Preferences.pm:1536 msgid "&Save" msgstr "&Speichern" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&Sitzung automatisch speichern" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "&Scintilla-Referenz" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "&Suchen" #: lib/Padre/Wx/ActionLibrary.pm:2479 msgid "&Search Help" msgstr "Hilfe durch&suchen" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "&Auswählen" #: lib/Padre/Wx/Dialog/OpenResource.pm:205 msgid "&Select an item to open (? = any character, * = any string):" msgstr "" "Welche&s Element öffnen (? = beliebiges Zeichen, * = mehrere beliebige " "Zeichen):" #: lib/Padre/Wx/Main.pm:4694 msgid "&Select files to reload:" msgstr "Neu zu ladende Dateien &auswählen:" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "&Setzen" #: lib/Padre/Wx/Dialog/PluginManager.pm:98 msgid "&Show Error Message" msgstr "&Zeige Fehlermeldung" #: lib/Padre/Wx/ActionLibrary.pm:918 msgid "&Snippets..." msgstr "&Schnipsel..." #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "Sub-Trace &starten/beenden" #: lib/Padre/Wx/ActionLibrary.pm:2024 msgid "&Stop Execution" msgstr "&Ausführung anhalten" #: lib/Padre/Wx/ActionLibrary.pm:943 msgid "&Toggle Comment" msgstr "Kommen&tierung umschalten" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "&Werkzeuge" #: lib/Padre/Wx/ActionLibrary.pm:2581 msgid "&Translate Padre..." msgstr "Padre &übersetzen" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:174 msgid "&Type a menu item name to access:" msgstr "Auf Menüein&trag zugreifen:" #: lib/Padre/Wx/ActionLibrary.pm:968 msgid "&Uncomment" msgstr "&Einkommentieren" #: lib/Padre/Wx/ActionLibrary.pm:587 msgid "&Undo" msgstr "&Rückgängig" #: lib/Padre/Wx/ActionLibrary.pm:1085 msgid "&Upper All" msgstr "Alles in &Großbuchstaben" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Wert" #: lib/Padre/Wx/Menu/View.pm:247 msgid "&View" msgstr "&Ansicht" #: lib/Padre/Wx/Menu/View.pm:101 msgid "&View Document As..." msgstr "Dokument betrachten &als..." #: lib/Padre/Wx/ActionLibrary.pm:2539 msgid "&Win32 Questions (English)" msgstr "&Win32-Fragen (Englisch)" #: lib/Padre/Wx/Menu/Window.pm:82 msgid "&Window" msgstr "&Fenster" #: lib/Padre/Wx/ActionLibrary.pm:1615 msgid "&Word-Wrap File" msgstr "Automatischer &Zeilenumbruch" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "&wxWidgets-%s-Referenz" #: lib/Padre/Wx/Panel/Debugger.pm:620 #, perl-format msgid "" "'%s' does not look like a variable. First select a variable in the code and " "then try again." msgstr "" "'%s' scheint keine Variable zu sein. Bewegen Sie den Textcursor auf " "eineVariable und versuchen Sie es noch einmal." #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "(Re)load &Current Plug-in" msgstr "Lade aktuelles Plugin (erneut)" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(seit Perl %s)" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "(Undefiniert)" #: lib/Padre/PluginManager.pm:777 msgid "(core)" msgstr "(core)" #: lib/Padre/Wx/Dialog/About.pm:145 msgid "(disabled)" msgstr "(deaktiviert)" #: lib/Padre/Wx/Dialog/About.pm:153 msgid "(unsupported)" msgstr "(nicht unterstützt)" #: lib/Padre/Wx/FBP/Preferences.pm:1165 lib/Padre/Wx/FBP/Preferences.pm:1179 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/VCS.pm:337 msgid ", " msgstr ", " #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "- VERALTET" #: lib/Padre/Wx/FBP/Debugger.pm:256 msgid ". Return to the executed line." msgstr ". Zur ausgeführten Zeile zurückkehren." #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "7-bit US-ASCII character" msgstr "7-Bit-US-ASCII-Zeichen" #: lib/Padre/Wx/CPAN.pm:510 #, perl-format msgid "Loading %s..." msgstr "Lade %s..." #: lib/Padre/Wx/Dialog/Shortcut.pm:32 lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "Ein Dialog" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "A comment" msgstr "Kommentar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:125 msgid "A group" msgstr "Eine Gruppe" #: lib/Padre/Config.pm:483 msgid "A new empty file" msgstr "Eine neue leere Datei" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Sammlung von Werkzeugen, die die Padre-Entwickler verwenden\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "A word boundary" msgstr "Wortgrenze" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "Alt" #: lib/Padre/Wx/FBP/About.pm:296 msgid "Aaron Trevena" msgstr "Aaron Trevena" #: lib/Padre/Wx/FBP/About.pm:29 lib/Padre/Plugin/PopularityContest.pm:211 msgid "About" msgstr "Über" #: lib/Padre/Wx/CPAN.pm:217 msgid "Abstract" msgstr "Kurzbeschreibung" #: lib/Padre/Wx/FBP/Patch.pm:47 lib/Padre/Wx/Dialog/Preferences.pm:170 msgid "Action" msgstr "Aktion" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Aktion: %s" #: lib/Padre/Wx/FBP/About.pm:122 msgid "Adam Kennedy" msgstr "Adam Kennedy" #: lib/Padre/Wx/FBP/Preferences.pm:303 msgid "Add another closing bracket if there already is one" msgstr "" "Weitere schließende Klammer hinzufügen falls bereits eine vorhanden ist" #: lib/Padre/Wx/VCS.pm:519 msgid "Add file to repository?" msgstr "Datei zum Repository hinzufügen?" #: lib/Padre/Wx/VCS.pm:248 lib/Padre/Wx/VCS.pm:262 msgid "Added" msgstr "Hinzugefügt" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Experten-Einstellungen" #: lib/Padre/Wx/FBP/Patch.pm:70 msgid "Against" msgstr "Referenz" #: lib/Padre/Wx/FBP/About.pm:128 lib/Padre/Wx/FBP/About.pm:337 msgid "Ahmad Zawawi" msgstr "Ahmad Zawawi" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Alarm" msgstr "Alarm" #: lib/Padre/Wx/FBP/About.pm:200 msgid "Alexandr Ciornii" msgstr "Alexandr Ciornii" #: lib/Padre/Wx/Syntax.pm:83 msgid "Alien Error" msgstr "Externer Fehler" #: lib/Padre/Wx/ActionLibrary.pm:1768 msgid "Align a selection of text to the same left column." msgstr "Richtet einen Block vertikal aus." #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "Alle" #: lib/Padre/Wx/Main.pm:4426 lib/Padre/Wx/Main.pm:4427 #: lib/Padre/Wx/Main.pm:4782 lib/Padre/Wx/Main.pm:6003 #: lib/Padre/Wx/Choice/Files.pm:19 msgid "All Files" msgstr "Alle Dateien" #: lib/Padre/Document/Perl.pm:547 msgid "All braces appear to be matched" msgstr "Alle Klammern haben Gegenstücke" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Allow the selection of another name to save the current document" msgstr "Aktuelles Dokument unter einem anderen Namen speichern" #: lib/Padre/Wx/Dialog/RegexEditor.pm:83 msgid "Alphabetic characters" msgstr "Alphabet-Zeichen" #: lib/Padre/Config.pm:580 msgid "Alphabetical Order" msgstr "alphabetisch" #: lib/Padre/Config.pm:581 msgid "Alphabetical Order (Private Last)" msgstr "alphabetisch, private Methoden am Ende" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphanumeric characters" msgstr "Alphanumerische Zeichen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Alphanumeric characters plus \"_\"" msgstr "Alphanumerische Zeichen plus \"_\"" #: lib/Padre/Wx/FBP/Preferences.pm:1157 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:113 msgid "Alternation" msgstr "Alternation (Oder)" #: lib/Padre/Wx/FBP/About.pm:478 msgid "Amir E. Aharoni" msgstr "Amir E. Aharoni" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Andrew Bramble" msgstr "Andrew Bramble" #: lib/Padre/Wx/FBP/About.pm:625 msgid "Andrew Shitov" msgstr "Andrew Shitov" #: lib/Padre/Wx/Dialog/RegexEditor.pm:71 msgid "Any character except a newline" msgstr "Jedes Zeichen außer Zeilenumbruch" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any decimal digit" msgstr "Jede Dezimalziffer" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any non-digit" msgstr "Jede Nicht-Ziffer" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any non-whitespace character" msgstr "Jedes Nicht-Zwischenraumzeichen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any non-word character" msgstr "Jedes Nicht-Wortzeichen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any whitespace character" msgstr "Jedes Zwischenraumzeichen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any word character" msgstr "Jedes Wortzeichen" #: lib/Padre/Wx/FBP/Preferences.pm:1921 msgid "Appearance" msgstr "Aussehen" #: lib/Padre/Wx/FBP/Preferences.pm:822 msgid "Appearance Preview" msgstr "Vorschau" #: lib/Padre/Wx/ActionLibrary.pm:804 msgid "Apply one of the quick fixes for the current document" msgstr "Häufige Sourcecode-Verbesserungen anwenden" #: lib/Padre/Locale.pm:157 lib/Padre/Wx/FBP/About.pm:328 msgid "Arabic" msgstr "Arabisch" #: lib/Padre/Wx/ActionLibrary.pm:487 msgid "Ask for a session name and save the list of files currently opened" msgstr "Alle offenen Dateien als eine neue Sitzung speichern" #: lib/Padre/Wx/ActionLibrary.pm:568 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "" "Fragt wie mit nicht gespeicherten Dateien verfahren werden soll und beendet " "Padre." #: lib/Padre/Wx/ActionLibrary.pm:1904 msgid "Assign the selected expression to a newly declared variable" msgstr "Die aktuelle Auswahl in eine neue Variable übernehmen" #: lib/Padre/Wx/Outline.pm:387 msgid "Attributes" msgstr "Attribute" #: lib/Padre/Wx/FBP/Sync.pm:290 msgid "Authentication" msgstr "Authentifizierung" #: lib/Padre/Wx/VCS.pm:55 lib/Padre/Wx/CPAN.pm:208 msgid "Author" msgstr "Autor" #: lib/Padre/Wx/FBP/Preferences.pm:328 msgid "Auto-fold POD markup when code folding enabled" msgstr "POD automatisch ausblenden, falls Ausblenden aktiv" #: lib/Padre/Wx/FBP/Preferences.pm:1922 msgid "Autocomplete" msgstr "Auto-Vervollständigung" #: lib/Padre/Wx/FBP/Preferences.pm:200 msgid "Autocomplete always while typing" msgstr "Beim Schreiben automatisch vervollständigen" #: lib/Padre/Wx/FBP/Preferences.pm:295 msgid "Autocomplete brackets" msgstr "Auto-Vervollständigung für Klammern" #: lib/Padre/Wx/FBP/Preferences.pm:216 msgid "Autocomplete new functions in scripts" msgstr "Neue Subroutinen in Skripten automatisch vervollständigen" #: lib/Padre/Wx/FBP/Preferences.pm:208 msgid "Autocomplete new methods in packages" msgstr "Neue Methoden in Packages automatisch vervollständigen" #: lib/Padre/Wx/Main.pm:3686 msgid "Autocompletion error" msgstr "Autovervollständigungs-Fehler" #: lib/Padre/Wx/FBP/Preferences.pm:1057 msgid "Autoindent" msgstr "Automatisch einrücken" #: lib/Padre/Wx/StatusBar.pm:268 msgid "Background Tasks are running" msgstr "Aktive Hintergrund-Funktionen" #: lib/Padre/Wx/StatusBar.pm:269 msgid "Background Tasks are running with high load" msgstr "Aktive Hintergrund-Funktionen mit hoher System-Auslastung" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Backreference to the nth group" msgstr "Rückwärtsreferenz zur n-ten Gruppe" #: lib/Padre/Wx/Dialog/Preferences.pm:28 msgid "Backspace" msgstr "Backspace" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Beginning of line" msgstr "Zeilenanfang" #: lib/Padre/Wx/FBP/Preferences.pm:1924 msgid "Behaviour" msgstr "Verhalten" #: lib/Padre/MIME.pm:885 msgid "Binary File" msgstr "Binärdatei" #: lib/Padre/Wx/FBP/About.pm:308 msgid "Blake Willmarth" msgstr "Blake Willmarth" #: lib/Padre/Wx/FBP/SLOC.pm:91 msgid "Blank Lines:" msgstr "Leerzeilen:" #: lib/Padre/Wx/FBP/Preferences.pm:844 msgid "Bloat Reduction" msgstr "Padre schlanker machen" #: lib/Padre/Wx/FBP/About.pm:93 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "" "Blauer Schmetterling auf grünem Blatt: Bild basiert \n" "auf einem Foto von Jerry Charlotte (blackbutterfly)" #: lib/Padre/Wx/FBP/Bookmarks.pm:29 msgid "Bookmarks" msgstr "Lesezeichen" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Boolean" #: lib/Padre/Config.pm:60 msgid "Bottom Panel" msgstr "Unteres Panel" #: lib/Padre/Wx/FBP/Preferences.pm:278 msgid "Brace Assist" msgstr "Unterstützung beim Setzen von Klammern" #: lib/Padre/Wx/Panel/Breakpoints.pm:55 msgid "Breakpoints" msgstr "Haltepunkte" #: lib/Padre/Wx/FBP/About.pm:170 lib/Padre/Wx/FBP/About.pm:583 msgid "Breno G. de Oliveira" msgstr "Breno G. de Oliveira" #: lib/Padre/Wx/FBP/About.pm:212 msgid "Brian Cassidy" msgstr "Brian Cassidy" #: lib/Padre/Wx/FBP/VCS.pm:83 msgid "Bring changes from the repository into the working copy" msgstr "Änderungen vom Repository in die Arbeitskopie übertragen" #: lib/Padre/Wx/ActionLibrary.pm:196 msgid "Browse directory of the current document to open one or several files" msgstr "Verzeichnis der aktuellen Datei anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Browse the directory of the installed examples to open one file" msgstr "Verzeichnis der Beispieldateien anzeigen" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "Browser: Kein Anzeigeprogramm für %s" #: lib/Padre/Wx/ActionLibrary.pm:1982 msgid "Builds the current project, then run all tests." msgstr "Erstellt das aktuelle Projekt und führt alle Tests aus." #: lib/Padre/Wx/FBP/About.pm:236 lib/Padre/Wx/FBP/About.pm:640 msgid "Burak Gursoy" msgstr "Burak Gursoy" #: lib/Padre/Wx/ActionLibrary.pm:2504 msgid "C&urrent Document" msgstr "Akt&uelles Dokument" #: lib/Padre/Wx/Dialog/WindowList.pm:349 lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "CHANGED" msgstr "GEÄNDERT" #: lib/Padre/Wx/CPAN.pm:101 lib/Padre/Wx/FBP/Preferences.pm:421 msgid "CPAN Explorer" msgstr "CPAN-Explorer" #: lib/Padre/Wx/FBP/Preferences.pm:915 msgid "CPAN Explorer Tool" msgstr "CPAN-Explorer" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "Strg" #: lib/Padre/Wx/FBP/Snippet.pm:135 lib/Padre/Wx/FBP/FindInFiles.pm:162 #: lib/Padre/Wx/FBP/Bookmarks.pm:127 lib/Padre/Wx/FBP/Find.pm:136 #: lib/Padre/Wx/FBP/Special.pm:95 lib/Padre/Wx/FBP/ReplaceInFiles.pm:180 #: lib/Padre/Wx/FBP/Replace.pm:202 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "&Abbrechen" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "Konnte Python-Interpreter nicht in PATH finden" #: lib/Padre/Document/Ruby.pm:54 msgid "Cannot find ruby executable in your PATH" msgstr "Konnte Ruby-Interpreter nicht in PATH finden" #: lib/Padre/Wx/Main.pm:4079 #, perl-format msgid "Cannot open a directory: %s" msgstr "Verzeichnis kann nicht geöffnet werden: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "Lesezeichen können in ungespeicherten Dokumenten nicht gesetzt werden" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Case-insensitive matching" msgstr "Ignoriere Groß-/Kleinschreibung bei der Mustersuche" #: lib/Padre/Wx/FBP/About.pm:206 lib/Padre/Wx/FBP/About.pm:568 msgid "Cezary Morga" msgstr "Cezary Morga" #: lib/Padre/Wx/FBP/Preferences.pm:1259 msgid "Change Detection" msgstr "Änderungserkennung" #: lib/Padre/Wx/FBP/Preferences.pm:939 msgid "Change Font Size (Outside Preferences)" msgstr "Schriftgröße verändern" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "Change the current selection to lower case" msgstr "Aktuelle Auswahl in Kleinbuchstaben ändern" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Change the current selection to upper case" msgstr "Aktuelle Auswahl in Großbuchstaben ändern" #: lib/Padre/Wx/ActionLibrary.pm:982 msgid "" "Change the encoding of the current document to the default of the operating " "system" msgstr "Die Kodierung der aktuellen Datei dem Betriebssystem-Standard anpassen" #: lib/Padre/Wx/ActionLibrary.pm:992 msgid "Change the encoding of the current document to utf-8" msgstr "Kodierung nach utf-8 ändern" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "" "Change the end of line character of the current document to that used on Mac " "Classic" msgstr "Alten Mac-Standard für Zeilenumbrüche verwenden" #: lib/Padre/Wx/ActionLibrary.pm:1022 msgid "" "Change the end of line character of the current document to that used on " "Unix, Linux, Mac OSX" msgstr "Unix-/Linux-/Mac-OS-X-Zeileneumbrüche verwenden" #: lib/Padre/Wx/ActionLibrary.pm:1012 msgid "" "Change the end of line character of the current document to those used in " "files on MS Windows" msgstr "Zeilenumbrüche in dieser Datei in das Windows-Format ändern" #: lib/Padre/Document/Perl.pm:1515 msgid "Change variable style" msgstr "Variablenamen-Stil ändern" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Change variable style from camelCase to Camel_Case" msgstr "Ändere den Stil des Variablennamen von camelCase zu Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1849 msgid "Change variable style from camelCase to camel_case" msgstr "Ändere den Stil des Variablennamen von camelCase zu camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1835 msgid "Change variable style from camel_case to CamelCase" msgstr "Ändere den Stil des Variablennamen von camel_case zu CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "Change variable style from camel_case to camelCase" msgstr "Ändere den Stil des Variablennamen von camel_case zu camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "Change variable to &camelCase" msgstr "Variablenname zu &camelCase umschalten" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Change variable to &using_underscores" msgstr "Variablenname zu &using_underscores umschalten" #: lib/Padre/Wx/ActionLibrary.pm:1834 msgid "Change variable to C&amelCase" msgstr "Variablenname zu C&amelCase umschalten" #: lib/Padre/Wx/ActionLibrary.pm:1862 msgid "Change variable to U&sing_Underscores" msgstr "Variablenname zu U&sing_Underscores umschalten" #: lib/Padre/Wx/Dialog/RegexEditor.pm:69 msgid "Character classes" msgstr "Zeichenklassen" #: lib/Padre/Wx/Dialog/Goto.pm:343 msgid "Character position" msgstr "Zeichenposition" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Character set" msgstr "Zeichensatz" #: lib/Padre/Wx/FBP/Document.pm:174 msgid "Characters (All)" msgstr "Zeichen (alle)" #: lib/Padre/Wx/FBP/Document.pm:192 msgid "Characters (Visible)" msgstr "Sichtbare Zeichen" #: lib/Padre/Document/Perl.pm:548 msgid "Check Complete" msgstr "Test abgeschlossen" #: lib/Padre/Document/Perl.pm:617 lib/Padre/Document/Perl.pm:673 #: lib/Padre/Document/Perl.pm:692 msgid "Check cancelled" msgstr "Check abgebrochen" #: lib/Padre/Wx/ActionLibrary.pm:1707 msgid "Check the current file for common beginner errors" msgstr "In der aktuellen Datei nach häufigen Anfänger-Fehlern suchen" #: lib/Padre/Locale.pm:431 msgid "Chinese" msgstr "Chinesisch" #: lib/Padre/Locale.pm:441 lib/Padre/Wx/FBP/About.pm:343 msgid "Chinese (Simplified)" msgstr "Chinesisch (Vereinfacht)" #: lib/Padre/Locale.pm:451 lib/Padre/Wx/FBP/About.pm:364 msgid "Chinese (Traditional)" msgstr "Chinesisch (Traditionell)" #: lib/Padre/Wx/Main.pm:4298 lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "Datei auswählen" #: lib/Padre/Wx/FBP/About.pm:218 msgid "Chris Dolan" msgstr "Chris Dolan" #: lib/Padre/Wx/FBP/About.pm:358 msgid "Chuanren Wu" msgstr "Chuanren Wu" #: lib/Padre/Wx/FBP/About.pm:272 msgid "Claudio Ramirez" msgstr "Claudio Ramirez" #: lib/Padre/Wx/FBP/Preferences.pm:677 msgid "Clean up file content on saving (for supported document types)" msgstr "Dateiinhalt vor dem Speichern aufräumen (soweit unterstützt)" #: lib/Padre/Wx/Dialog/OpenResource.pm:221 msgid "Click on the arrow for filter settings" msgstr "Für die Filtereinstellungen auf den Pfeil klicken" #: lib/Padre/Wx/FBP/Patch.pm:120 lib/Padre/Wx/FBP/Text.pm:56 #: lib/Padre/Wx/FBP/PluginManager.pm:128 lib/Padre/Wx/FBP/About.pm:666 #: lib/Padre/Wx/FBP/SLOC.pm:176 lib/Padre/Wx/FBP/Sync.pm:253 #: lib/Padre/Wx/FBP/Diff.pm:94 lib/Padre/Wx/FBP/Document.pm:254 #: lib/Padre/Wx/FBP/SessionManager.pm:119 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 lib/Padre/Wx/Dialog/WindowList.pm:279 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "Schließen" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close &Files..." msgstr "Ausgewählte &Dateien schließen..." #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close &all Files" msgstr "&Alle Dateien schließen" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close &this Project" msgstr "Projek&t schließen" #: lib/Padre/Wx/Main.pm:5199 msgid "Close all" msgstr "Alle schließen" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all &other Files" msgstr "Alle &anderen Dateien schließen" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Alle Dateien des aktuellen Projektes schließen" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Alle Dateien bis auf die aktuelle Datei schließen" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Alle offenen Dateien schließen" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Alle Dateien schließen, die nicht zum aktuellen Projekte gehören" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "Aktuelles Dokument schließen" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Close current document and remove the file from disk" msgstr "Aktuelles Dokument schließen und löschen" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other &Projects" msgstr "Andere &Projekte schließen" #: lib/Padre/Wx/Main.pm:5268 msgid "Close some" msgstr "Ausgewählte schließen" #: lib/Padre/Wx/Main.pm:5245 msgid "Close some files" msgstr "Einige Dateien schließen" #: lib/Padre/Wx/ActionLibrary.pm:1683 msgid "Close the highest priority dialog or panel" msgstr "Schließe Dialog oder Panel mit der höchsten Priorität" #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "Schließe dieses Fenster" #: lib/Padre/Wx/FBP/SLOC.pm:67 msgid "Code Lines:" msgstr "Code-Zeilen:" #: lib/Padre/Config.pm:579 msgid "Code Order" msgstr "Code-Reihenfolge" #: lib/Padre/Wx/FBP/FoundInFiles.pm:91 msgid "Collapse All" msgstr "Alles einklappen" #: lib/Padre/Wx/FBP/Preferences.pm:144 msgid "Coloured text in output window (ANSI)" msgstr "Farbiger Text im Ausgabefenster (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1927 msgid "Combine scattered POD at the end of the document" msgstr "POD-Abschnitte zum Ende des Dokuments verschieben" #: lib/Padre/Wx/Command.pm:97 msgid "Command" msgstr "Befehl" #: lib/Padre/Wx/Main.pm:2721 msgid "Command line" msgstr "Befehlszeile" #: lib/Padre/Wx/FBP/Preferences.pm:555 msgid "Command line files open in existing Padre instance" msgstr "Öffne Dateien in laufender Padre-Instanz" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "Comment out selected lines or the current line" msgstr "Auswahl bzw. aktuelle Zeile auskommentieren" #: lib/Padre/Wx/ActionLibrary.pm:944 msgid "Comment out/remove comment for selected lines or the current line" msgstr "Aktuelle oder ausgewählte Zeile(n) ein/auskommentieren" #: lib/Padre/Wx/FBP/SLOC.pm:79 msgid "Comments Lines:" msgstr "Kommentarzeilen:" #: lib/Padre/Wx/VCS.pm:499 msgid "Commit file/directory to repository?" msgstr "Datei/Verzeichnis zum Repository hinzufügen?" #: lib/Padre/Wx/Dialog/About.pm:112 msgid "Config" msgstr "Konfiguration" #: lib/Padre/Wx/FBP/Sync.pm:134 lib/Padre/Wx/FBP/Sync.pm:163 msgid "Confirm:" msgstr "Bestätigen:" #: lib/Padre/Wx/VCS.pm:251 msgid "Conflicted" msgstr "Konflikt" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "Verbinde zum FTP-Server %s---" #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Verbindung zum FTP-Server aufgebaut." #: lib/Padre/Wx/FBP/SLOC.pm:103 msgid "Constructive Cost Model (COCOMO)" msgstr "Constructive Cost Model (COCOMO)" #: lib/Padre/Wx/FBP/Preferences.pm:183 msgid "Content Assist" msgstr "Auto-Vervollständigung" #: lib/Padre/Config.pm:787 msgid "Contents of the status bar" msgstr "Inhalt der Statuszeile" #: lib/Padre/Config.pm:532 msgid "Contents of the window title" msgstr "Inhalt des Fenstertitels" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Control character" msgstr "Steuerzeichen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Control characters" msgstr "Steuerzeichen" #: lib/Padre/Wx/Menu/Edit.pm:188 msgid "Convert &Encoding" msgstr "&Kodierung konvertieren" #: lib/Padre/Wx/Menu/Edit.pm:210 msgid "Convert &Line Endings" msgstr "&Zeilenumbrüche umwandeln" #: lib/Padre/Wx/ActionLibrary.pm:1044 msgid "Convert all tabs to spaces in the current document" msgstr "Alle Tabulatorzeichen in Leerzeichen konvertieren" #: lib/Padre/Wx/ActionLibrary.pm:1054 msgid "Convert all the spaces to tabs in the current document" msgstr "Alle Leerzeichen zu Tabulatorzeichen konvertieren" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "&Spezielle Kopierfunktionen" #: lib/Padre/Wx/VCS.pm:265 msgid "Copied" msgstr "Kopiert" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Kopieren" #: lib/Padre/Wx/ActionLibrary.pm:734 msgid "Copy &Directory Name" msgstr "&Verzeichnisnamen kopieren" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "Copy Editor &Content" msgstr "&Gesamtes Dokument kopieren" #: lib/Padre/Wx/ActionLibrary.pm:719 msgid "Copy F&ilename" msgstr "Datei&namen kopieren" #: lib/Padre/Wx/ActionLibrary.pm:704 msgid "Copy Full &Filename" msgstr "Dateinamen mit &Pfad kopieren" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Name kopieren" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Wert kopieren" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Copy filename to clipboard" msgstr "Dateiname in die Zwischenablage kopieren" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Copy the current tab into a new document" msgstr "Inhalt des aktuellen Reiters in ein Dokument kopieren" #: lib/Padre/Wx/FBP/About.pm:87 msgid "" "Copyright 2008–2012 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "" "Copyright 2008–2012 The Padre Development Team Padre ist freie Software; \n" "Sie können Padre unter den gleichen Bedingungen wie Perl 5 weitergeben und/" "oder verändern." #: lib/Padre/Wx/Directory/TreeCtrl.pm:197 #, perl-format msgid "Could not create: '%s': %s" msgstr "Konnte '%s' nicht erstellen: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, perl-format msgid "Could not delete: '%s': %s" msgstr "Konnte '%s' nicht löschen; %s" #: lib/Padre/Wx/Panel/Debugger.pm:598 #, perl-format msgid "Could not evaluate '%s'" msgstr "Konnte %s nicht ausführen" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "Konnte weder KDE noch GNOME finden" #: lib/Padre/Wx/Dialog/HelpSearch.pm:312 msgid "Could not find a help provider for " msgstr "Konnte keine Hilfe-Inhalte finden:" #: lib/Padre/Wx/Main.pm:4286 #, perl-format msgid "Could not find file '%s'" msgstr "Konnte Datei '%s' nicht finden" #: lib/Padre/Wx/Main.pm:2787 msgid "Could not find perl executable" msgstr "Konnte Perl-Interpreter nicht finden" #: lib/Padre/Wx/Main.pm:2757 lib/Padre/Wx/Main.pm:2818 #: lib/Padre/Wx/Main.pm:2872 msgid "Could not find project root" msgstr "Konnte Basis-Verzeichnis des Projekts nicht finden" #: lib/Padre/Wx/ActionLibrary.pm:2262 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "Konnte das Plugin Padre::Plugin::My nicht finden" #: lib/Padre/PluginManager.pm:906 msgid "Could not locate project directory." msgstr "Konnte Projekt-Verzeichnis nicht finden." #: lib/Padre/Wx/Main.pm:4588 #, perl-format msgid "Could not reload file: %s" msgstr "Erneutes Laden gescheitert: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:178 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr "Konnte '%s' nicht nach '%s' umbenennen: %s" #: lib/Padre/Wx/Main.pm:5025 msgid "Could not save file: " msgstr "Konnte Datei nicht speichern: " #: lib/Padre/Wx/CPAN.pm:226 msgid "Count" msgstr "Zahl" #: lib/Padre/Wx/Directory/TreeCtrl.pm:290 #: lib/Padre/Wx/Directory/TreeCtrl.pm:349 msgid "Create Directory" msgstr "Verzeichnis erstellen" #: lib/Padre/Wx/ActionLibrary.pm:1793 msgid "Create Project &Tagsfile" msgstr "Projekt-&Tagdatei erstellen" #: lib/Padre/Wx/ActionLibrary.pm:1296 msgid "Create a bookmark in the current file current row" msgstr "Ein Lesezeichen erstellen" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by Gábor Szabó" msgstr "Ins Leben gerufen von Gábor Szabó" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "" "Creates a perltags - file for the current project supporting find_method and " "autocomplete." msgstr "" "Perltags-Datei für das aktuelle Projekt zur Unterstützung von find_method " "und Autovervollständigung erstellen" #: lib/Padre/Wx/FBP/Preferences.pm:1149 msgid "Ctrl" msgstr "Strg" #: lib/Padre/Wx/ActionLibrary.pm:673 msgid "Cu&t" msgstr "Aus&schneiden" #: lib/Padre/Document/Perl.pm:691 #, perl-format msgid "Current '%s' not found" msgstr "%s nicht gefunden." #: lib/Padre/Wx/Dialog/OpenResource.pm:244 msgid "Current Directory: " msgstr "Aktuelles Verzeichnis:" #: lib/Padre/Document/Perl.pm:672 msgid "Current cursor does not seem to point at a method" msgstr "Cursor zeigt offenbar nicht auf eine Methode" #: lib/Padre/Document/Perl.pm:616 lib/Padre/Document/Perl.pm:650 msgid "Current cursor does not seem to point at a variable" msgstr "Cursor zeigt offenbar nicht auf eine Variable" #: lib/Padre/Document/Perl.pm:812 lib/Padre/Document/Perl.pm:862 #: lib/Padre/Document/Perl.pm:899 msgid "Current cursor does not seem to point at a variable." msgstr "Cursor zeigt offenbar nicht auf eine Variable." #: lib/Padre/Wx/Main.pm:2812 lib/Padre/Wx/Main.pm:2863 msgid "Current document has no filename" msgstr "Aktuelles Dokument hat keinen Dateinamen" #: lib/Padre/Wx/Main.pm:2866 msgid "Current document is not a .t file" msgstr "Aktuelles Dokument ist keine .t-Datei!" #: lib/Padre/Wx/VCS.pm:206 msgid "Current file is not in a version control system" msgstr "Aktuelle Datei ist nicht versioniert" #: lib/Padre/Wx/VCS.pm:197 msgid "Current file is not saved in a version control system" msgstr "" "Die aktuelle Datei ist nicht in einem Versionskontrollsystem gespeichert" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "Aktuelle Zeilennummer: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "Aktuelle Position: %s" #: lib/Padre/Wx/FBP/Preferences.pm:727 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "Cursor-Blinkrate (Millisekunden - 0 = aus; 500 = Voreinstellung)" #: lib/Padre/Wx/ActionLibrary.pm:1878 msgid "" "Cut the current selection and create a new sub from it. A call to this sub " "is added in the place where the selection was." msgstr "" "Schneidet die aktuelle Auswahl aus und erstelle eine neue Subroutine daraus. " "Ein Aufruf dieser Subroutine wird an Stelle der Auswahl eingefügt." #: lib/Padre/Locale.pm:167 lib/Padre/Wx/FBP/About.pm:379 msgid "Czech" msgstr "Tschechisch" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "D&uplicate" msgstr "D&uplizieren" #: lib/Padre/Wx/Dialog/WindowList.pm:355 msgid "DELETED" msgstr "GELÖSCHT" #: lib/Padre/Locale.pm:177 msgid "Danish" msgstr "Dänisch" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "Datum/Uhrzeit" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:370 msgid "Debug" msgstr "Debugging" #: lib/Padre/Wx/Panel/DebugOutput.pm:50 msgid "Debug Output" msgstr "Debug-Ausgabe" #: lib/Padre/Wx/FBP/Debugger.pm:552 msgid "Debug-Output Options" msgstr "Optionen Debug-Ausgabe" #: lib/Padre/Wx/Panel/Debugger.pm:60 msgid "Debugger" msgstr "Debugger" #: lib/Padre/Wx/Panel/Debugger.pm:252 msgid "Debugger is already running" msgstr "Der Debugger läuft bereits" #: lib/Padre/Wx/Panel/Debugger.pm:321 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "" "Debugging fehlgeschlagen. Haben Sie das Programm auf Syntaxfehler überprüft?" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "System-Vorgabe" #: lib/Padre/Wx/FBP/Preferences.pm:588 msgid "Default Newline Format:" msgstr "Standard-Zeilenumbruch:" #: lib/Padre/Wx/FBP/Preferences.pm:603 msgid "Default Project Directory:" msgstr "Standard-Projektverzeichnis:" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "System-Vorgabe:" #: lib/Padre/Wx/FBP/Preferences.pm:636 msgid "Default word wrap on for each file" msgstr "Zeilenumbruch als Vorgabe für alle Dateien" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "Aktionswarteschlange für 1 Sekunde anhalten" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "Aktionswarteschlange für 10 Sekunden anhalten" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "Aktionswarteschlange für 30 Sekunden anhalten" #: lib/Padre/Wx/FBP/Sync.pm:236 lib/Padre/Wx/Directory/TreeCtrl.pm:379 #: lib/Padre/Wx/Dialog/Preferences.pm:36 msgid "Delete" msgstr "Löschen" #: lib/Padre/Wx/FBP/Bookmarks.pm:111 msgid "Delete &All" msgstr "Entferne &alle" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Delete &Leading Spaces" msgstr "Entferne Leerzeichen am &Anfang" #: lib/Padre/Wx/Directory/TreeCtrl.pm:266 msgid "Delete Directory" msgstr "Verzeichnis löschen" #: lib/Padre/Wx/Directory/TreeCtrl.pm:325 msgid "Delete File" msgstr "Datei löschen" #: lib/Padre/Wx/FBP/Breakpoints.pm:43 msgid "" "Delete MARKER_NOT_BREAKABLE\n" "Current File Only" msgstr "" "MARKER_NOT_BREAKABLE löschen\n" "Nur aktuelle Datei" #: lib/Padre/Wx/FBP/SessionManager.pm:103 msgid "Delete Session" msgstr "Sitzung löschen" #: lib/Padre/Wx/FBP/Breakpoints.pm:130 msgid "Delete all project Breakpoints" msgstr "Lösche alle Haltepunkte" #: lib/Padre/Wx/VCS.pm:538 msgid "Delete file from repository??" msgstr "Datei aus dem Repository entfernen?" #: lib/Padre/Wx/FBP/Preferences.pm:1218 msgid "Delete the keyboard binding" msgstr "Tastenkombination entfernen" #: lib/Padre/Wx/VCS.pm:249 lib/Padre/Wx/VCS.pm:263 msgid "Deleted" msgstr "Gelöscht" #: lib/Padre/Wx/Syntax.pm:53 msgid "Deprecation" msgstr "Veraltet" #: lib/Padre/Wx/Dialog/Preferences.pm:171 #: lib/Padre/Wx/Dialog/SessionManager2.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "Beschreibung" #: lib/Padre/Wx/Dialog/Advanced.pm:158 lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "Beschreibung:" #: lib/Padre/Wx/FBP/Preferences.pm:1520 msgid "Detect Perl 6 files" msgstr "Perl-6-Dateien automatisch erkennen" #: lib/Padre/Wx/FBP/Preferences.pm:1049 msgid "Detect indent settings for each file" msgstr "Einrückungsmodus für alle Dateien automatisch erkennen" #: lib/Padre/Wx/FBP/About.pm:842 msgid "Development" msgstr "Entwicklung" #: lib/Padre/Wx/FBP/SLOC.pm:156 msgid "Development Cost (USD):" msgstr "Entwicklungskosten (US-Dollar):" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "Kein Lesezeichen-Name angegeben" #: lib/Padre/CPAN.pm:113 lib/Padre/CPAN.pm:137 msgid "Did not provide a distribution" msgstr "Stellte keine Distribution bereit" #: lib/Padre/Wx/Dialog/Bookmarks.pm:94 msgid "Did not select a bookmark" msgstr "Kein Lesezeichen ausgewählt" #: lib/Padre/Wx/FBP/Diff.pm:29 msgid "Diff" msgstr "Vergleich" #: lib/Padre/Wx/Dialog/Patch.pm:479 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "" "Diff erfolgreich, Sie sollten im Editor einen neuen Reiter namens %s sehen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Digits" msgstr "Ziffern" #: lib/Padre/Config.pm:635 msgid "Directories First" msgstr "Verzeichnisse zuerst" #: lib/Padre/Config.pm:636 msgid "Directories Mixed" msgstr "Verzeichnisse und Dateien gemischt" #: lib/Padre/Wx/Directory/TreeCtrl.pm:95 msgid "Directory" msgstr "Verzeichnis" #: lib/Padre/Wx/FBP/FindInFiles.pm:73 lib/Padre/Wx/FBP/ReplaceInFiles.pm:91 msgid "Directory:" msgstr "Verzeichnis:" #: lib/Padre/Wx/FBP/About.pm:403 msgid "Dirk De Nijs" msgstr "Dirk De Nijs" #: lib/Padre/PluginHandle.pm:27 msgid "Disabled" msgstr "Deaktiviert" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Disk" msgstr "Festplatte" #: lib/Padre/Wx/FBP/Debugger.pm:143 msgid "Display Value" msgstr "Wert anzeigen" #: lib/Padre/Wx/CPAN.pm:207 lib/Padre/Wx/CPAN.pm:216 lib/Padre/Wx/CPAN.pm:225 #: lib/Padre/Wx/Dialog/About.pm:131 msgid "Distribution" msgstr "Distribution" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "Nicht noch einmal anzeigen" #: lib/Padre/Wx/Main.pm:5386 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "Wollen Sie die Dateu %s wirklich schließen und löschen?" #: lib/Padre/Wx/VCS.pm:518 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "Wollen Sie '%s' zu Ihrem Repository hinzufügen" #: lib/Padre/Wx/VCS.pm:498 msgid "Do you want to commit?" msgstr "Wollen Sie committen?" #: lib/Padre/Wx/Main.pm:3117 msgid "Do you want to continue?" msgstr "Vorgang fortsetzen?" #: lib/Padre/Wx/VCS.pm:537 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "Wollen Sie die Datei '%s' aus dem Repository entfernen?" #: lib/Padre/Wx/Dialog/Preferences.pm:488 msgid "Do you want to override it with the selected action?" msgstr "Wollen Sie es mit der ausgewählten Aktion überschreiben?" #: lib/Padre/Wx/VCS.pm:564 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "Wollen Sie die Änderungen bis '%s' rückgängig machen" #: lib/Padre/Wx/FBP/Document.pm:123 msgid "Document" msgstr "Dokument" #: lib/Padre/Wx/FBP/Document.pm:67 msgid "Document Class" msgstr "Dokumentenklasse" #: lib/Padre/Wx/FBP/Document.pm:29 msgid "Document Information" msgstr "Dokumenteninformation" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "Dokumenten-Tools" #: lib/Padre/Wx/FBP/Document.pm:55 msgid "Document Type" msgstr "Dokumenttyp" #: lib/Padre/Wx/Main.pm:6814 #, perl-format msgid "Document encoded to (%s)" msgstr "Dokument als '%s' kodiert" #: lib/Padre/Wx/Dialog/Preferences.pm:32 msgid "Down" msgstr "Ab" #: lib/Padre/Wx/FBP/Sync.pm:219 msgid "Download" msgstr "Herunterladen" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "Gibt einen Dump des Padre-Objektes auf STDOUT aus" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "" "Gibt einen vollständigen Dump des Padre Objektes auf STDOUT aus (für Tests " "und Debugging)." #: lib/Padre/Locale.pm:351 lib/Padre/Wx/FBP/About.pm:394 msgid "Dutch" msgstr "Niederländisch" #: lib/Padre/Locale.pm:361 msgid "Dutch (Belgium)" msgstr "Niederländisch (Belgien)" #: lib/Padre/Wx/FBP/Debugger.pm:376 msgid "" "E\n" "Display all thread ids the current one will be identified: ." msgstr "" "E\n" "Alle Thread-IDs anzeigen, die ID des momentanen Threads ist markiert: ." #: lib/Padre/Wx/ActionLibrary.pm:1031 msgid "EOL to &Mac Classic" msgstr "Zeilenumbrüche ins klassische &Mac-Format" #: lib/Padre/Wx/ActionLibrary.pm:1021 msgid "EOL to &Unix" msgstr "Zeilenumbrüche ins &Unix-Format" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "EOL to &Windows" msgstr "Zeilenumbrüche ins &Windows-Format" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:364 msgid "Edit" msgstr "Bearbeiten" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Edit user and host preferences" msgstr "Benutzer- und Hosteinstellungen bearbeiten" #: lib/Padre/Wx/Dialog/WindowList.pm:224 msgid "Editor" msgstr "Editor" #: lib/Padre/Wx/FBP/Preferences.pm:867 msgid "Editor Bookmark Support" msgstr "Editor: Lesezeichen" #: lib/Padre/Wx/FBP/Preferences.pm:875 msgid "Editor Code Folding" msgstr "Editor: Code-Folding" #: lib/Padre/Wx/FBP/Preferences.pm:799 msgid "Editor Current Line Background Colour" msgstr "Editor: Hintergrundfarbe der aktuellen Zeile" #: lib/Padre/Wx/FBP/Preferences.pm:883 msgid "Editor Cursor Memory" msgstr "Editor: Cursor-Memory" #: lib/Padre/Wx/FBP/Preferences.pm:907 msgid "Editor Diff Feature" msgstr "Editor: Anzeige von Unterschieden zur gespeicherten Datei" #: lib/Padre/Wx/FBP/Preferences.pm:775 msgid "Editor Font" msgstr "Editor-Schriftart" #: lib/Padre/Wx/FBP/Preferences.pm:619 msgid "Editor Options" msgstr "Editor-Einstellungen" #: lib/Padre/Wx/FBP/Preferences.pm:891 msgid "Editor Session Support" msgstr "Editor: Sitzungen" #: lib/Padre/Wx/FBP/Preferences.pm:693 lib/Padre/Wx/FBP/Preferences.pm:1925 msgid "Editor Style" msgstr "Editor" #: lib/Padre/Wx/FBP/Preferences.pm:899 msgid "Editor Syntax Annotations" msgstr "Editor: Syntax-Annotationen" #: lib/Padre/Wx/Dialog/Sync.pm:155 msgid "Email and confirmation do not match." msgstr "E-Mail und Bestätigung stimmen nicht überein." #: lib/Padre/Wx/FBP/Sync.pm:75 lib/Padre/Wx/FBP/Sync.pm:120 msgid "Email:" msgstr "E-Mail:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:651 msgid "Empty regex" msgstr "Leerer regulärer Ausdruck" #: lib/Padre/Wx/FBP/PluginManager.pm:96 msgid "Enable" msgstr "Aktivieren" #: lib/Padre/Wx/FBP/Preferences.pm:1397 msgid "Enable Perl beginner mode" msgstr "Perl-Anfänger-Modus aktivieren" #: lib/Padre/Wx/FBP/Preferences.pm:652 msgid "Enable Smart highlighting while typing" msgstr "Smart highlighting während des Schreibens aktivieren" #: lib/Padre/Config.pm:1418 msgid "Enable document differences feature" msgstr "Anzeige der Unterschiede zum gespeicherten Dokument einschalten" #: lib/Padre/Config.pm:1371 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "" "Ausführen mit Devel::EndStats aktivieren/deaktivieren falls installiert." #: lib/Padre/Config.pm:1390 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "" "Ausführen mit Devel::TraceUse aktivieren/deaktivieren falls installiert." #: lib/Padre/Config.pm:1409 msgid "Enable syntax checker annotations in the editor" msgstr "Editor-Annotationen für Syntax-Check einschalten" #: lib/Padre/Config.pm:1436 msgid "Enable the CPAN Explorer, powered by MetaCPAN" msgstr "" #: lib/Padre/Config.pm:1454 msgid "Enable the experimental command line interface" msgstr "" #: lib/Padre/Config.pm:1427 msgid "Enable version control system support" msgstr "Versionskontrollsystem-Dateien einschalten" #: lib/Padre/PluginHandle.pm:28 msgid "Enabled" msgstr "Aktiviert" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "Encode Document &to..." msgstr "Dokument konvertieren &nach..." #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Encode Document to &System Default" msgstr "Dokument im &System-Standardzeichensatz kodieren" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Encode Document to &utf-8" msgstr "Dokument nach &utf-8 konvertieren" #: lib/Padre/Wx/Main.pm:6836 msgid "Encode document to..." msgstr "Dokument konvertieren nach..." #: lib/Padre/Wx/Main.pm:6835 msgid "Encode to:" msgstr "Konvertieren nach:" #: lib/Padre/Wx/FBP/Document.pm:91 msgid "Encoding" msgstr "Zeichensatz" #: lib/Padre/Wx/Dialog/Preferences.pm:38 msgid "End" msgstr "Ende" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "End case modification/metacharacter quoting" msgstr "" "Ende der modifizierten Groß- und Kleinschreibung/deaktivierten Metazeichen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "End of line" msgstr "Zeilenende" #: lib/Padre/Locale.pm:197 msgid "English" msgstr "Englisch" #: lib/Padre/Locale.pm:125 msgid "English (Australia)" msgstr "Englisch (Australien)" #: lib/Padre/Locale.pm:206 msgid "English (Canada)" msgstr "Englisch (Kanada)" #: lib/Padre/Locale.pm:215 msgid "English (New Zealand)" msgstr "Englisch (Neuseeland)" #: lib/Padre/Locale.pm:86 msgid "English (United Kingdom)" msgstr "Englisch (Vereinigtes Königreich)" #: lib/Padre/Locale.pm:226 msgid "English (United States)" msgstr "Englisch (Vereinigte Staaten)" #: lib/Padre/Wx/FBP/About.pm:610 msgid "Enrique Nell" msgstr "Enrique Nell" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enter" msgstr "Eingabe" #: lib/Padre/CPAN.pm:127 #, fuzzy msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "URL zur Installation angeben\n" "z.B. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:214 msgid "Enter parts of the resource name to find it" msgstr "Geben Sie Teile des Ressourcennamens ein" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "Epoche" #: lib/Padre/PluginHandle.pm:23 lib/Padre/Document.pm:455 #: lib/Padre/Wx/Editor.pm:939 lib/Padre/Wx/Main.pm:5026 #: lib/Padre/Wx/Role/Dialog.pm:95 lib/Padre/Wx/Dialog/PluginManager.pm:209 #: lib/Padre/Wx/Dialog/Sync.pm:79 lib/Padre/Wx/Dialog/Sync.pm:87 #: lib/Padre/Wx/Dialog/Sync.pm:100 lib/Padre/Wx/Dialog/Sync.pm:118 #: lib/Padre/Wx/Dialog/Sync.pm:135 lib/Padre/Wx/Dialog/Sync.pm:146 #: lib/Padre/Wx/Dialog/Sync.pm:156 lib/Padre/Wx/Dialog/Sync.pm:174 #: lib/Padre/Wx/Dialog/Sync.pm:185 lib/Padre/Wx/Dialog/Sync.pm:196 #: lib/Padre/Wx/Dialog/Sync.pm:207 msgid "Error" msgstr "Fehler" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Fehler beim Verbinden zu %s:%s: %s" #: lib/Padre/Wx/Main.pm:5402 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "Fehler beim Löschen von %s:\n" "%s" #: lib/Padre/Wx/Main.pm:5613 msgid "Error loading perl filter dialog." msgstr "Fehler beim Laden des Perl-Filter-Dialogs" #: lib/Padre/Wx/Dialog/PluginManager.pm:137 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Fehler beim Laden der POD Dokumentation für '%s': %s" #: lib/Padre/Wx/Main.pm:5584 msgid "Error loading regex editor." msgstr "Fehler beim Laden des Regex-Editors" # perl-format #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Fehler beim Einloggen auf %s:%s %s" #: lib/Padre/Wx/Main.pm:6790 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "Der Filter hat einen Fehler zurückgegeben:\n" "%s" #: lib/Padre/Wx/Main.pm:6772 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Fehler beim Ausführen des Filters:\n" "%s" #: lib/Padre/PluginManager.pm:849 #, perl-format msgid "Error when calling menu for plug-in %s: %s" msgstr "Fehler beim Aufruf des Menüs für das Plugin %s: %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:83 lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:327 #, perl-format msgid "Error while calling %s %s" msgstr "Fehler beim Aufruf von %s %s" #: lib/Padre/Document.pm:282 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Fehler bei der MIME-Typ-Bestimmung.\n" "Unter Umständen liegt ein Zeichensatz-Problem vor.\n" "Versuchen Sie gerade eine Binärdatei zu laden?" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "Fehler beim Laden von Aspect." #: lib/Padre/Document.pm:232 msgid "Error while opening file: no file object" msgstr "Fehler beim Öffnen der Datei: Kein file-Objekt" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Fehler bei der Suche nach POD" #: lib/Padre/Wx/VCS.pm:448 msgid "Error while trying to perform Padre action" msgstr "Fehler beim Ausführen der Aktion" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:91 #: lib/Padre/Wx/Dialog/OpenResource.pm:119 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Fehler beim Ausführen der Aktion %s" #: lib/Padre/Wx/Dialog/PerlFilter.pm:323 msgid "Error:\n" msgstr "Fehler:\n" #: lib/Padre/Document/Perl.pm:510 msgid "Error: " msgstr "Fehler: " #: lib/Padre/Wx/Main.pm:6108 lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "Fehler: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:42 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Escape (Esc)" msgstr "Escape (Esc)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:138 msgid "Escape characters" msgstr "Escape-Zeichen" #: lib/Padre/Wx/FBP/SLOC.pm:132 msgid "Estimated Project Years:" msgstr "" #: lib/Padre/Wx/FBP/Expression.pm:80 msgid "Evaluate" msgstr "Auswerten" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "Ausdruck ausw&erten" #: lib/Padre/Wx/FBP/Expression.pm:29 msgid "Evaluate Expression" msgstr "Ausdruck auswerten" #: lib/Padre/Wx/FBP/Debugger.pm:424 msgid "" "Evaluate expression\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Same as print {$DB::OUT} expr in the current package. In particular, because " "this is just Perl's own print function.\n" "\n" "x [maxdepth] expr\n" "Evaluates its expression in list context and dumps out the result in a " "pretty-printed fashion. Nested data structures are printed out recursively," msgstr "" #: lib/Padre/Wx/Main.pm:4799 msgid "Exist" msgstr "Existiert" #: lib/Padre/Wx/FBP/Bookmarks.pm:63 msgid "Existing Bookmarks:" msgstr "Vorhandene Lesezeichen:" #: lib/Padre/Wx/FBP/FoundInFiles.pm:71 msgid "Expand All" msgstr "Alle ausklappen" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of " "commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "Experimentelles Feature. Geben Sie '?' für eine Befehlsliste eine. Falls es " "nicht funktioniert, beschweren Sie sich bitte bei szabgab.\n" "\n" #: lib/Padre/Wx/FBP/Debugger.pm:503 msgid "Expression To Evaluate" msgstr "Auszuwerte der Ausdruck" #: lib/Padre/Wx/Dialog/RegexEditor.pm:484 msgid "Extended (&x)" msgstr "Erweitert (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "" "Extended regular expressions allow free formatting (whitespace is ignored) " "and comments" msgstr "" "Erweiterte reguläre Ausdrücke unterstützen freie Formatierung (Leerzeichen " "und Zeilenumbrüche werden ignoriert) sowie Kommentare" #: lib/Padre/Wx/ActionLibrary.pm:1876 msgid "Extract &Subroutine..." msgstr "&Subroutine extrahieren..." #: lib/Padre/Wx/ActionLibrary.pm:1889 msgid "Extract Subroutine" msgstr "Subroutine extrahieren" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "FTP-Passwort" #: lib/Padre/Wx/Main.pm:4919 #, perl-format msgid "Failed to create path '%s'" msgstr "Fehler beim Erstellen des Verzeichnisses %s" #: lib/Padre/Wx/Main.pm:1135 msgid "Failed to create server" msgstr "Konnte Server nicht erzeugen" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "Fehler beim Löschen des POD-Abschnitts" #: lib/Padre/PluginHandle.pm:402 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Plugin '%s' konnte nicht deaktiviert werden: %s" #: lib/Padre/PluginHandle.pm:272 lib/Padre/PluginHandle.pm:299 #: lib/Padre/PluginHandle.pm:322 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Plugin '%s' konnte nicht aktiviert werden: %s" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "Fehler beim Starten des Prozesses\n" #: lib/Padre/Wx/ActionLibrary.pm:1228 msgid "Failed to find any matches" msgstr "Es konnte kein Treffer gefunden werden." #: lib/Padre/CPAN.pm:83 msgid "Failed to find your CPAN configuration" msgstr "Konnte CPAN-Konfiguration nicht finden" #: lib/Padre/PluginManager.pm:928 lib/Padre/PluginManager.pm:1022 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Plugin '%s' konnte nicht geladen werden\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "Fehler beim Zusammenführen der POD-Abschnitte" #: lib/Padre/Wx/Main.pm:3049 #, perl-format msgid "Failed to start '%s' command" msgstr "Fehler beim Ausführen des Befehls '%s'" #: lib/Padre/Wx/Dialog/Advanced.pm:130 lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Nein" #: lib/Padre/Wx/Syntax.pm:65 msgid "Fatal Error" msgstr "Schwerer Fehler" #: lib/Padre/Wx/FBP/CPAN.pm:278 msgid "Favorite" msgstr "" #: lib/Padre/Wx/FBP/About.pm:176 lib/Padre/Wx/FBP/About.pm:352 msgid "Fayland Lam" msgstr "Fayland Lam" #: lib/Padre/Wx/FBP/Preferences.pm:1926 msgid "Features" msgstr "Features" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:363 #: lib/Padre/Wx/Dialog/WindowList.pm:223 lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "Datei" #: lib/Padre/Wx/Menu/File.pm:393 #, perl-format msgid "File %s not found." msgstr "Datei %s nicht gefunden." #: lib/Padre/Wx/FBP/Preferences.pm:1929 msgid "File Handling" msgstr "Dateien" #: lib/Padre/Wx/FBP/Preferences.pm:391 msgid "File Outline" msgstr "Übersicht" #: lib/Padre/Wx/FBP/Document.pm:210 msgid "File Size (Bytes)" msgstr "Dateigröße (Bytes)" #: lib/Padre/Wx/FBP/FindInFiles.pm:106 lib/Padre/Wx/FBP/ReplaceInFiles.pm:124 msgid "File Types:" msgstr "Dateitypen:" #: lib/Padre/Wx/Main.pm:4905 msgid "File already exists" msgstr "Datei existiert bereits" #: lib/Padre/Wx/Main.pm:4798 msgid "File already exists. Overwrite it?" msgstr "Datei existiert bereits. Überschreiben?" #: lib/Padre/Wx/Main.pm:5015 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "" "Datei wurde seit dem letzten Speichern verändert. Änderungen überschreiben?" #: lib/Padre/Wx/Main.pm:5110 msgid "File changed. Do you want to save it?" msgstr "Datei wurde geändert. Speichern?" #: lib/Padre/Wx/ActionLibrary.pm:295 lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "Datei gehört zu keinem Projekt" #: lib/Padre/Wx/Main.pm:4462 #, perl-format msgid "" "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "" "Der Dateiname %s enthält * oder ?. Diese Zeichen haben spezielle Funktionen " "auf den meisten Computern. Überspringen?" #: lib/Padre/Wx/Main.pm:4482 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "Datei %s existiert nicht auf der Festplatte. Überspringen?" #: lib/Padre/Wx/Main.pm:5016 msgid "File not in sync" msgstr "Datei nicht synchronisiert" #: lib/Padre/Wx/Main.pm:5380 msgid "File was never saved and has no filename - can't delete from disk" msgstr "" "Datei wurde nie gespeichert und hat keinen Dateinamen - Löschen nicht möglich" #: lib/Padre/Wx/FBP/Patch.pm:138 msgid "File-1" msgstr "Datei-1" #: lib/Padre/Wx/FBP/Patch.pm:161 msgid "File-2" msgstr "Datei-2" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Datei/Verzeichnis" #: lib/Padre/Wx/Notebook.pm:70 msgid "Files" msgstr "Dateien" #: lib/Padre/Wx/FBP/SLOC.pm:55 msgid "Files:" msgstr "Dateien:" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Filter-Befehl:" #: lib/Padre/Wx/ActionLibrary.pm:1134 msgid "Filter through &Perl..." msgstr "&Perl-Filter..." #: lib/Padre/Wx/ActionLibrary.pm:1125 msgid "Filter through E&xternal Tool..." msgstr "E&xternen Filter benutzen..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Filter" #: lib/Padre/Wx/FBP/Snippet.pm:38 msgid "Filter:" msgstr "Filter:" #: lib/Padre/Wx/ActionLibrary.pm:1126 msgid "" "Filters the selection (or the whole document) through any external command." msgstr "" "Benutzt einen externen Filter für die aktuelle Auswahl oder das gesamte " "Dokument." #: lib/Padre/Wx/FBP/Find.pm:30 msgid "Find" msgstr "Suchen" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "Suche &alle" #: lib/Padre/Wx/ActionLibrary.pm:1754 msgid "Find &Method Declaration" msgstr "&Methoden-Deklaration suchen" #: lib/Padre/Wx/ActionLibrary.pm:1208 msgid "Find &Next" msgstr "&Weitersuchen" #: lib/Padre/Wx/ActionLibrary.pm:1742 msgid "Find &Variable Declaration" msgstr "&Variablen-Deklaration suchen" #: lib/Padre/Wx/ActionLibrary.pm:1730 msgid "Find Unmatched &Brace" msgstr "Finde verwaiste &Klammer" #: lib/Padre/Wx/ActionLibrary.pm:1250 msgid "Find in Fi&les..." msgstr "In Dateien suchen..." #: lib/Padre/Wx/FBP/Preferences.pm:485 lib/Padre/Wx/FBP/FindInFiles.pm:32 #: lib/Padre/Wx/Panel/FoundInFiles.pm:438 msgid "Find in Files" msgstr "In Dateien suchen" #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find text and replace it" msgstr "Text suchen und ersetzen" #: lib/Padre/Wx/ActionLibrary.pm:1168 msgid "Find text or regular expressions using a traditional dialog" msgstr "Suche nach Text oder Regex" #: lib/Padre/Wx/ActionLibrary.pm:1755 msgid "Find where the selected function was defined and put the focus there." msgstr "Definition der gewählten Funktion suchen" #: lib/Padre/Wx/ActionLibrary.pm:1743 msgid "" "Find where the selected variable was declared using \"my\" and put the focus " "there." msgstr "Deklaration der Variablen suchen" #: lib/Padre/Wx/FBP/FindFast.pm:55 msgid "Find:" msgstr "Suchen:" #: lib/Padre/Document/Perl.pm:948 msgid "First character of selection does not seem to point at a token." msgstr "" "Erstes Zeichen der Auswahl zeigt anscheinend nicht auf ein gültiges Zeichen." #: lib/Padre/Wx/Editor.pm:1906 msgid "First character of selection must be a non-word character to align" msgstr "" "Erstes Zeichen der Auswahl muss ein Nicht-Wort-Zeichen zur Ausrichtung sein" #: lib/Padre/Wx/ActionLibrary.pm:1519 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "" "Alle möglichen Blöcke einklappen (sofern einklappbarer Code aktiviert ist)" #: lib/Padre/Wx/Menu/View.pm:178 msgid "Font Si&ze" msgstr "&Schriftgröße" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "" "For new document try to guess the filename based on the file content and " "offer to save it." msgstr "Versuchen aus einem neuen Dokument den Dateinamen zu erraten." #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Form feed" msgstr "Form Feed (Seitenvorschub)" #: lib/Padre/Wx/Syntax.pm:474 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "%d Probleme in %s innerhalb von %3.2f Sekunden gefunden" #: lib/Padre/Wx/Syntax.pm:480 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "%d Probleme innerhalb von %3.2f Sekunden gefunden" #: lib/Padre/Wx/Dialog/HelpSearch.pm:397 #, perl-format msgid "Found %s help topic(s)\n" msgstr "%s Hilfethemen gefunden\n" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "%s nicht geladene Module gefunden" #: lib/Padre/Locale.pm:283 lib/Padre/Wx/FBP/About.pm:409 msgid "French" msgstr "Französisch" #: lib/Padre/Locale.pm:269 msgid "French (Canada)" msgstr "Französisch (Kanada)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Freund/Freundin" #: lib/Padre/Wx/ActionLibrary.pm:1664 msgid "Full Sc&reen" msgstr "&Vollbild" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Funktion" #: lib/Padre/Wx/FBP/Preferences.pm:56 lib/Padre/Wx/FBP/Preferences.pm:376 msgid "Function List" msgstr "Funktionen" #: lib/Padre/Wx/FunctionList.pm:148 msgid "Functions" msgstr "Funktionen" #: lib/Padre/Wx/FBP/About.pm:116 msgid "Gabor Szabo" msgstr "Gabor Szabo" #: lib/Padre/Wx/FBP/About.pm:302 lib/Padre/Wx/FBP/About.pm:589 msgid "Gabriel Vieira" msgstr "Gabriel Vieira" #: lib/Padre/Locale.pm:187 lib/Padre/Wx/FBP/About.pm:430 msgid "German" msgstr "Deutsch" #: lib/Padre/Wx/Dialog/RegexEditor.pm:489 msgid "Global (&g)" msgstr "Global (&g)" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr "Gehe zu" #: lib/Padre/Wx/ActionLibrary.pm:2446 msgid "Go to &Command Line Window" msgstr "&Befehlszeile auswählen" #: lib/Padre/Wx/ActionLibrary.pm:2401 msgid "Go to &Functions Window" msgstr "&Funktionen-Liste auswählen" #: lib/Padre/Wx/ActionLibrary.pm:2457 msgid "Go to &Main Window" msgstr "&Editor-Bereich auswählen" #: lib/Padre/Wx/ActionLibrary.pm:1306 msgid "Go to Bookmar&k..." msgstr "Gehe zu &Lesezeichen..." #: lib/Padre/Wx/ActionLibrary.pm:2390 msgid "Go to CPAN E&xplorer Window" msgstr "CPAN-E&xplorer auswählen" #: lib/Padre/Wx/ActionLibrary.pm:2413 msgid "Go to O&utline Window" msgstr "Übersichts-&Liste auswählen" #: lib/Padre/Wx/ActionLibrary.pm:2424 msgid "Go to Ou&tput Window" msgstr "&Ausgabefenster" #: lib/Padre/Wx/ActionLibrary.pm:2435 msgid "Go to S&yntax Check Window" msgstr "S&yntaxprüfungsbereich auswählen" #: lib/Padre/Wx/FBP/Preferences.pm:923 msgid "Graphical Debugger Tool" msgstr "Graphischer Debugger" #: lib/Padre/Wx/Dialog/RegexEditor.pm:123 msgid "Grouping constructs" msgstr "Gruppierungs-Konstrukte" #: lib/Padre/Wx/FBP/Preferences.pm:1016 msgid "Guess from Current Document" msgstr "Aus aktuellem Dokument erraten" #: lib/Padre/Wx/FBP/About.pm:493 msgid "Gyorgy Pasztor" msgstr "György Pásztor" #: lib/Padre/Locale.pm:293 lib/Padre/Wx/FBP/About.pm:457 msgid "Hebrew" msgstr "Hebräisch" #: lib/Padre/Wx/FBP/About.pm:194 lib/Padre/Wx/FBP/About.pm:439 msgid "Heiko Jansen" msgstr "Heiko Jansen" #: lib/Padre/Wx/Browser.pm:63 lib/Padre/Wx/Dialog/QuickMenuAccess.pm:373 msgid "Help" msgstr "Hilfe" #: lib/Padre/Wx/Dialog/HelpSearch.pm:41 lib/Padre/Wx/Dialog/HelpSearch.pm:98 msgid "Help Search" msgstr "In der Hilfe suchen" #: lib/Padre/Wx/ActionLibrary.pm:2582 msgid "Help by translating Padre to your local language" msgstr "Padre in die eigene Sprache übersetzen." #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "Hilfe nicht gefunden." #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Hex character" msgstr "Hex-Zeichen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Hexadecimal digits" msgstr "Hexadezimalziffern" #: lib/Padre/Wx/ActionLibrary.pm:1564 msgid "Highlight the line where the cursor is" msgstr "Die aktuelle Zeile einfärben" #: lib/Padre/Wx/Directory.pm:595 msgid "Hit unfixed bug in directory browser, disabling it" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Home" msgstr "Pos1" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "Host" #: lib/Padre/Wx/Main.pm:6287 msgid "How many spaces for each tab:" msgstr "Anzahl Leerzeichen pro Tabulator:" #: lib/Padre/Locale.pm:303 lib/Padre/Wx/FBP/About.pm:484 msgid "Hungarian" msgstr "Ungarisch" #: lib/Padre/Wx/ActionLibrary.pm:1346 msgid "If activated, do not allow moving around some of the windows" msgstr "Wenn aktiviert, unterbinde das Bewegen einiger Fensterelemente" #: lib/Padre/Wx/Dialog/RegexEditor.pm:472 msgid "Ignore case (&i)" msgstr "Groß-/Kleinschreibung ignorieren (&i)" #: lib/Padre/Wx/VCS.pm:252 lib/Padre/Wx/FBP/VCS.pm:205 msgid "Ignored" msgstr "Ignoriert" #: lib/Padre/Wx/FBP/Preferences.pm:1475 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "d.h.\n" "\t'Include'-Verzeichnis: -I\n" "\taktiviere Tainting-Checks: -T\n" "\taktiviere viele hilfreiche Warnungen: -w\n" "\taktiviere alle Warnungen: -W\n" "\tdeaktiviere alle Warnungen: -X\n" #: lib/Padre/PluginHandle.pm:26 msgid "Incompatible" msgstr "Inkompatibel" #: lib/Padre/Config.pm:895 msgid "Indent Deeply" msgstr "Tief einrücken" #: lib/Padre/Wx/FBP/Preferences.pm:1032 msgid "Indent Detection" msgstr "Einrückungserkennung" #: lib/Padre/Wx/FBP/Preferences.pm:955 msgid "Indent Settings" msgstr "Einrückung" #: lib/Padre/Wx/FBP/Preferences.pm:980 msgid "Indent Spaces:" msgstr "Leerzeichen:" #: lib/Padre/Wx/FBP/Preferences.pm:1074 msgid "Indent on Newline:" msgstr "Neue Zeile automatische einrücken" #: lib/Padre/Config.pm:894 msgid "Indent to Same Depth" msgstr "Einrückung auf gleiche Ebene" #: lib/Padre/Wx/FBP/Preferences.pm:1927 msgid "Indentation" msgstr "Einrückungen" #: lib/Padre/Wx/FBP/About.pm:844 msgid "Information" msgstr "Information" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "Eingabe/Ausgabe:" #: lib/Padre/Wx/FBP/Snippet.pm:118 lib/Padre/Wx/FBP/Special.pm:78 #: lib/Padre/Wx/Menu/Edit.pm:119 lib/Padre/Wx/Dialog/Preferences.pm:35 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:270 msgid "Insert" msgstr "Einfügen" #: lib/Padre/Wx/FBP/Snippet.pm:29 msgid "Insert Snippet" msgstr "Schnipsel einfügen" #: lib/Padre/Wx/FBP/Special.pm:29 msgid "Insert Special Values" msgstr "Spezielle Werte einfügen" #: lib/Padre/Wx/FBP/CPAN.pm:207 msgid "Insert Synopsis" msgstr "Synopsis einfügen" #: lib/Padre/Wx/FBP/CPAN.pm:239 msgid "Install" msgstr "Installieren" #: lib/Padre/Wx/ActionLibrary.pm:2331 msgid "Install &Remote Distribution" msgstr "Installie&re Distribution von entferntem Ort" #: lib/Padre/Wx/ActionLibrary.pm:2321 msgid "Install L&ocal Distribution" msgstr "Installiere Distribution von l&okalem Ort" #: lib/Padre/CPAN.pm:128 msgid "Install Local Distribution" msgstr "Installiere Distribution von lokalem Ort" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Ganze Zahl" #: lib/Padre/Wx/Syntax.pm:71 msgid "Internal Error" msgstr "Interner Fehler" #: lib/Padre/Wx/Main.pm:6109 msgid "Internal error" msgstr "Interner Fehler" #: lib/Padre/Wx/ActionLibrary.pm:1903 msgid "Introduce &Temporary Variable..." msgstr "&Temporäre Variable einführen..." #: lib/Padre/Wx/ActionLibrary.pm:1912 msgid "Introduce Temporary Variable" msgstr "Temporäre Variable einführen" #: lib/Padre/Locale.pm:317 lib/Padre/Wx/FBP/About.pm:499 msgid "Italian" msgstr "Italienisch" #: lib/Padre/Wx/FBP/Preferences.pm:105 msgid "Item Regular Expression:" msgstr "Regulärer Ausdruck:" #: lib/Padre/Locale.pm:327 lib/Padre/Wx/FBP/About.pm:514 msgid "Japanese" msgstr "Japanisch" #: lib/Padre/Wx/Main.pm:4405 msgid "JavaScript Files" msgstr "JavaScript-Dateien" #: lib/Padre/Wx/FBP/About.pm:146 lib/Padre/Wx/FBP/About.pm:418 msgid "Jerome Quelin" msgstr "Jérôme Quelin" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Join the next line to the end of the current line." msgstr "Die aktuelle und die nächste Zeile zusammenführen" #: lib/Padre/Wx/ActionLibrary.pm:1283 msgid "Jump to a specific line number or character position" msgstr "Zu einer bestimmten Zeile oder Zeichenposition springen" #: lib/Padre/Wx/ActionLibrary.pm:792 msgid "Jump to the code that has been changed" msgstr "Zum veränderten Code springen" #: lib/Padre/Wx/ActionLibrary.pm:781 msgid "Jump to the code that triggered the next error" msgstr "Zum nächsten Fehler springen" #: lib/Padre/Wx/ActionLibrary.pm:872 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Zur passenden Klammer springen: { }, ( ), [ ], < >" #: lib/Padre/Wx/FBP/About.pm:278 msgid "Kaare Rasmussen" msgstr "Kaare Rasmussen" #: lib/Padre/Wx/FBP/About.pm:290 msgid "Kartik Thakore" msgstr "Kartik Thakore" #: lib/Padre/Wx/FBP/About.pm:248 lib/Padre/Wx/FBP/About.pm:538 msgid "Keedi Kim" msgstr "Keedi Kim" #: lib/Padre/Wx/FBP/About.pm:242 lib/Padre/Wx/FBP/About.pm:523 msgid "Kenichi Ishigaki" msgstr "Kenichi Ishigaki" #: lib/Padre/Wx/Dialog/About.pm:136 msgid "Kernel" msgstr "Kernel" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Kevin Dawson" msgstr "Kevin Dawson" #: lib/Padre/Wx/FBP/Preferences.pm:1928 msgid "Key Bindings" msgstr "Tastenkombinationen" #: lib/Padre/Wx/FBP/About.pm:553 msgid "Kjetil Skotheim" msgstr "Kjetil Skotheim" #: lib/Padre/Locale.pm:465 msgid "Klingon" msgstr "Klingonisch" #: lib/Padre/Locale.pm:337 lib/Padre/Wx/FBP/About.pm:529 msgid "Korean" msgstr "Koreanisch" #: lib/Padre/Wx/FBP/Debugger.pm:296 msgid "" "L [abw]\n" "List (default all) actions, breakpoints and watch expressions" msgstr "" "L [abw]\n" "Aktionen, Haltepunkte, und beobachtete Ausdrücke auflisten (Standard: alle)" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Label 1" #: lib/Padre/Wx/Menu/View.pm:210 msgid "Lan&guage" msgstr "&Sprache" #: lib/Padre/Wx/FBP/Preferences.pm:1930 msgid "Language - Perl 5" msgstr "Sprache - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:1931 msgid "Language - Perl 6" msgstr "Sprache - Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1380 lib/Padre/Wx/FBP/Preferences.pm:1503 msgid "Language Integration" msgstr "Sprach-Integration" #: lib/Padre/Wx/Dialog/SessionManager2.pm:30 msgid "Last Updated" msgstr "Letzte Aktualisierung" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "Letzte Aktualisierung" #: lib/Padre/Wx/ActionLibrary.pm:2111 msgid "Launch Debugger" msgstr "Debugger starten" #: lib/Padre/Wx/Dialog/Preferences.pm:33 msgid "Left" msgstr "Links" #: lib/Padre/Config.pm:58 msgid "Left Panel" msgstr "Linkes Panel" #: lib/Padre/Wx/FBP/Diff.pm:72 msgid "Left side" msgstr "Links" #: lib/Padre/Wx/ActionLibrary.pm:1781 msgid "" "Like pressing ENTER somewhere on a line, but use the current position as " "ident for the new line." msgstr "Fügt eine neue Zeile ein und rückt bis zur aktuellen Spalte ein." #: lib/Padre/Wx/Syntax.pm:509 #, perl-format msgid "Line %d: (%s) %s" msgstr "Zeile %d: (%s) %s" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "Zeile %d: %s" #: lib/Padre/Wx/Dialog/Goto.pm:342 msgid "Line number" msgstr "Zeilennummer" #: lib/Padre/Wx/FBP/Document.pm:138 lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "Zeilen" #: lib/Padre/Wx/Dialog/WindowList.pm:210 msgid "List of open files" msgstr "Liste der offenen Dateien" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Sitzungsliste" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "" "List the files that match the current selection and let the user pick one to " "open" msgstr "" "Alle Dateien anzeigen, die der aktuellen Auswahl entsprechen und eine davon " "öffnen" #: lib/Padre/PluginHandle.pm:25 msgid "Loaded" msgstr "Geladen" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "%s Module geladen" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Loc&k User Interface" msgstr "&Oberfläche gegen Änderungen sperren" #: lib/Padre/Wx/FBP/Preferences.pm:1276 msgid "Local file update poll interval in seconds (0 to disable)" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:58 msgid "Logged out" msgstr "Abgemeldet" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Anmeldung am FTP-Server als %s..." #: lib/Padre/Wx/FBP/Sync.pm:104 msgid "Login" msgstr "Login" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Long hex character" msgstr "Langes Hex-Zeichen" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Suche nach Net::FTP..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Lowercase characters" msgstr "Kleinbuchstaben" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Lowercase next character" msgstr "Nächstes Zeichen klein" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Lowercase till \\E" msgstr "Kleinbuchstaben bis \\E" #: lib/Padre/Wx/FBP/Debugger.pm:336 msgid "" "M\n" "Display all loaded modules and their versions." msgstr "" "M\n" "Alle geladenen Module und deren Versionen anzeigen" #: lib/Padre/Wx/FBP/Document.pm:79 msgid "MIME Type" msgstr "MIME-Typ" #: lib/Padre/Wx/ActionLibrary.pm:1629 msgid "Make the letters bigger in the editor window" msgstr "Schrift größer darstellen" #: lib/Padre/Wx/ActionLibrary.pm:1639 msgid "Make the letters smaller in the editor window" msgstr "Schrift kleiner darstellen" #: lib/Padre/Wx/FBP/About.pm:388 msgid "Marcela Maslanova" msgstr "Marcela Mašláňová" #: lib/Padre/Wx/ActionLibrary.pm:646 msgid "Mark Selection &End" msgstr "&Ende der Auswahl" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Mark Selection &Start" msgstr "&Anfang der Auswahl" #: lib/Padre/Wx/ActionLibrary.pm:647 msgid "Mark the place where the selection should end" msgstr "Ende einer Auswahl festlegen" #: lib/Padre/Wx/ActionLibrary.pm:635 msgid "Mark the place where the selection should start" msgstr "Anfang einer Auswahl festlegen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:102 msgid "Match 0 or more times" msgstr "Keine oder mehrere Übereinstimmungen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or 0 times" msgstr "1 oder 0 Übereinstimmungen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 1 or more times" msgstr "1 oder mehrere Übereinstimmungen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least m but not more than n times" msgstr "Mindestens m, aber nicht mehr als n Übereinstimmungen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match at least n times" msgstr "Mindestens n Übereinstimmungen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match exactly m times" msgstr "Genau m Übereinstimmungen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:677 #, perl-format msgid "Match failure in %s: %s" msgstr "Keine Übereinstimmung in %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:688 #, perl-format msgid "Match warning in %s: %s" msgstr "Warnung in %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:697 #, perl-format msgid "Match with 0 width at character %s" msgstr "Übereinstimmung der Länge 0 bei Zeichen %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:235 msgid "Matched text:" msgstr "Gefundener Text:" #: lib/Padre/Wx/FBP/About.pm:373 msgid "Matthew Lien" msgstr "Matthew Lien" #: lib/Padre/Wx/FBP/About.pm:254 msgid "Max Maischein" msgstr "Max Maischein" #: lib/Padre/Wx/FBP/Preferences.pm:242 msgid "Maximum number of suggestions" msgstr "Maximale Anzahl Vorschläge" #: lib/Padre/Wx/Role/Dialog.pm:69 lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Nachricht" #: lib/Padre/Wx/FBP/CPAN.pm:223 msgid "MetaCPAN..." msgstr "MetaCPAN..." #: lib/Padre/Wx/Outline.pm:386 msgid "Methods" msgstr "Methoden" #: lib/Padre/Wx/FBP/Preferences.pm:260 msgid "Minimum characters for autocomplete" msgstr "Mindest-Zeichenzahl für Autovervollständigung" #: lib/Padre/Wx/FBP/Preferences.pm:224 msgid "Minimum length of suggestions" msgstr "Mindestlänge für Vorschläge" #: lib/Padre/Wx/FBP/Preferences.pm:119 lib/Padre/Wx/Dialog/RegexEditor.pm:111 msgid "Miscellaneous" msgstr "Sonstige" #: lib/Padre/Wx/VCS.pm:254 msgid "Missing" msgstr "Fehlend" #: lib/Padre/Wx/VCS.pm:250 lib/Padre/Wx/VCS.pm:261 msgid "Modified" msgstr "Verändert" #: lib/Padre/Document/Perl/Starter.pm:122 msgid "Module Name:" msgstr "Modulname:" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Modulname:" #: lib/Padre/Wx/Outline.pm:385 msgid "Modules" msgstr "Module" #: lib/Padre/Wx/Dialog/RegexEditor.pm:480 msgid "Multi-line (&m)" msgstr "Mehrzeilig (&m)" #: lib/Padre/Wx/ActionLibrary.pm:2256 msgid "" "My Plug-in is a plug-in where developers could extend their Padre " "installation" msgstr "" "My-Plugin erlaubt es jedem Entwickler, die lokale Padre-Installation zu " "erweitern." #: lib/Padre/Wx/FBP/SLOC.pm:120 msgid "Mythical Man Months:" msgstr "" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "NAME" #: lib/Padre/Wx/Dialog/SessionManager2.pm:28 lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "Name" #: lib/Padre/Wx/ActionLibrary.pm:1888 msgid "Name for the new subroutine" msgstr "Name der neuen Subroutine" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "&Neu" #: lib/Padre/Wx/Main.pm:6615 msgid "Need to select text in order to translate numbers" msgstr "Zur Umwandlung muss Text ausgewählt sein." #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Negative lookahead assertion" msgstr "Ausdruck darf nicht auf vorgenannten Ausdruck folgen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Negative lookbehind assertion" msgstr "Ausdruck darf nicht nachfolgendem Ausdruck vorausgehen" #: lib/Padre/Wx/FBP/Preferences.pm:571 msgid "New File Creation" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:381 msgid "New Folder" msgstr "Neuer Ordner" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "Neuinstallations-Umfrage" #: lib/Padre/Document/Perl/Starter.pm:123 lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Neues Modul" #: lib/Padre/Document/Perl.pm:822 msgid "New name" msgstr "Neuer Name" #: lib/Padre/PluginManager.pm:393 msgid "New plug-ins detected" msgstr "Neue Plugins gefunden" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Newline" msgstr "Zeilenumbruch" #: lib/Padre/Wx/FBP/Document.pm:103 msgid "Newline Type" msgstr "Art des Zeilenumbruchs" #: lib/Padre/Wx/Diff2.pm:29 lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "Nächster Unterschied" #: lib/Padre/Config.pm:893 msgid "No Autoindent" msgstr "Nicht automatisch einrücken" #: lib/Padre/Wx/Main.pm:2784 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Weder Build.PL noch Makefile.PL noch dist.ini wurden gefunden." #: lib/Padre/Wx/Dialog/HelpSearch.pm:95 msgid "No Help found" msgstr "Kein Hilfe-Dokument gefunden" #: lib/Padre/Wx/Diff.pm:256 msgid "No changes found" msgstr "Keine Änderungen gefunden" #: lib/Padre/Document/Perl.pm:652 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Keine Deklaration für die angegebene (lexikalische?) Variable gefunden" #: lib/Padre/Document/Perl.pm:901 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "" "Keine Deklaration für die angegebene (lexikalische?) Variable gefunden." #: lib/Padre/Wx/Main.pm:2751 lib/Padre/Wx/Main.pm:2806 #: lib/Padre/Wx/Main.pm:2857 msgid "No document open" msgstr "Kein geöffnetes Dokument" #: lib/Padre/Task/CPAN.pm:183 #, perl-format msgid "No documentation for '%s'" msgstr "Keine Dokumentation f+r '%s'" #: lib/Padre/Document/Perl.pm:512 msgid "No errors found." msgstr "Keine Fehler gefunden." #: lib/Padre/Wx/Syntax.pm:456 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "" "Keine Warnungen oder Fehler in %s innerhalb von %3.2f Sekunden gefunden." #: lib/Padre/Wx/Syntax.pm:461 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "Keine Warnungen oder Fehler innerhalb von %3.2f Sekunden gefunden." #: lib/Padre/Wx/Main.pm:3092 msgid "No execution mode was defined for this document type" msgstr "Für dieses Dokument ist kein Ausführungsmodus definiert" #: lib/Padre/PluginManager.pm:903 lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Kein Dateiname" #: lib/Padre/Wx/Dialog/RegexEditor.pm:716 msgid "No match" msgstr "Nichts gefunden" #: lib/Padre/Wx/Dialog/Find.pm:62 lib/Padre/Wx/Dialog/Replace.pm:136 #: lib/Padre/Wx/Dialog/Replace.pm:159 #, perl-format msgid "No matches found for \"%s\"." msgstr "Keine Treffer für \"%s\" gefunden." #: lib/Padre/Wx/Main.pm:3074 msgid "No open document" msgstr "Kein geöffnetes Dokument" #: lib/Padre/Config.pm:484 msgid "No open files" msgstr "Keine Dateien geöffnet" #: lib/Padre/Wx/ReplaceInFiles.pm:259 lib/Padre/Wx/Panel/FoundInFiles.pm:305 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "'%s' in '%s' nicht gefunden" #: lib/Padre/Wx/Main.pm:931 #, perl-format msgid "No such session %s" msgstr "Keine Sitzungen %s gefunden" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "No suggestions" msgstr "Keine Vorschläge gefunden" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "Non-capturing group" msgstr "Gruppen, die keine Rückwärtsreferenz erzeugen" #: lib/Padre/Wx/Dialog/Preferences.pm:27 msgid "None" msgstr "Nichts" #: lib/Padre/Wx/VCS.pm:247 lib/Padre/Wx/FBP/VCS.pm:173 msgid "Normal" msgstr "Normal" #: lib/Padre/Locale.pm:371 lib/Padre/Wx/FBP/About.pm:544 msgid "Norwegian" msgstr "Norwegisch" #: lib/Padre/Wx/Panel/Debugger.pm:256 msgid "Not a Perl document" msgstr "Kein Perl-Dokument" #: lib/Padre/Wx/Dialog/Goto.pm:200 lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "Keine positive Zahl." #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "Not a word boundary" msgstr "Keine Wortgrenze" #: lib/Padre/Wx/Main.pm:4244 msgid "Nothing selected. Enter what should be opened:" msgstr "Nichts ausgewählt. Bitte angeben, was geöffnet werden soll:" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "Jetzt" #: lib/Padre/Wx/FBP/SLOC.pm:144 msgid "Number of Developers:" msgstr "Anzahl Entwickler" #: lib/Padre/Wx/Menu/File.pm:84 msgid "O&pen" msgstr "Ö&ffnen" #: lib/Padre/Wx/FBP/Bookmarks.pm:86 lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "OK" #: lib/Padre/Wx/VCS.pm:255 msgid "Obstructed" msgstr "Blockiert" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Octal character" msgstr "Oktalzeichen" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "Offer completions to the current string. See Preferences" msgstr "" "Die aktuelle Eingabe vervollständigen. Mehr Optionen in den Einstellungen" #: lib/Padre/Wx/FBP/About.pm:260 lib/Padre/Wx/FBP/About.pm:424 msgid "Olivier Mengue" msgstr "Olivier Mengue" #: lib/Padre/Wx/FBP/About.pm:466 msgid "Omer Zak" msgstr "Omer Zak" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Nur ein POD-Abschnitt, werde nicht zusammenführen" #: lib/Padre/Wx/ActionLibrary.pm:2341 msgid "Open &CPAN Config File" msgstr "Öffne &CPAN-Konfigurationsdatei" #: lib/Padre/Wx/Outline.pm:153 msgid "Open &Documentation" msgstr "Öffne &Dokumentation" #: lib/Padre/Wx/ActionLibrary.pm:251 msgid "Open &Example" msgstr "&Beispieldatei öffnen" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open &Last Closed File" msgstr "Zu&letzt geschlossene Datei" #: lib/Padre/Wx/ActionLibrary.pm:1320 msgid "Open &Resources..." msgstr "&Ressourcen öffnen..." #: lib/Padre/Wx/ActionLibrary.pm:463 msgid "Open &Selection" msgstr "Öffne &Auswahl" #: lib/Padre/Wx/ActionLibrary.pm:206 msgid "Open &URL..." msgstr "&URL öffnen..." #: lib/Padre/Wx/ActionLibrary.pm:2342 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "CPAN-Konfiguration aufrufen" #: lib/Padre/Wx/FBP/Preferences.pm:1329 msgid "Open FTP Files" msgstr "Dateien via FTP öffnen" #: lib/Padre/Wx/Main.pm:4429 lib/Padre/Wx/Directory/TreeCtrl.pm:302 msgid "Open File" msgstr "Datei öffnen" #: lib/Padre/Wx/FBP/Preferences.pm:540 msgid "Open Files:" msgstr "Dateien öffnen:" #: lib/Padre/Wx/FBP/Preferences.pm:1294 msgid "Open HTTP Files" msgstr "Dateien via HTTP öffnen" #: lib/Padre/Wx/Dialog/OpenResource.pm:33 #: lib/Padre/Wx/Dialog/OpenResource.pm:79 msgid "Open Resources" msgstr "Ressourcen öffnen" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "Open S&ession..." msgstr "Sitzung öffn&en..." #: lib/Padre/Wx/Main.pm:4287 msgid "Open Selection" msgstr "Öffne Auswahl" #: lib/Padre/Wx/FBP/SessionManager.pm:86 msgid "Open Session" msgstr "Sitzung öffnen" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "URL öffnen" #: lib/Padre/Wx/Main.pm:4465 lib/Padre/Wx/Main.pm:4485 msgid "Open Warning" msgstr "Warnung" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 module" msgstr "Ein neues Perl-5-Modul erstellen" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "Ein neues Perl-5-Skript erstellen" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Ein neues Perl-5-Test-Skript erstellen" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Open a document with a skeleton Perl 6 script" msgstr "Ein neues Perl-6-Skript erstellen" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Open a file from a remote location" msgstr "Eine Datei auf einem entfernten Server öffnen" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "Ein neues leeres Dokument öffnen" #: lib/Padre/Wx/ActionLibrary.pm:524 msgid "Open all the files listed in the recent files list" msgstr "Alle kürzlich geöffneten Dateien öffnen" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "Padre::Plugin - Liste im Browser anzeigen" #: lib/Padre/Wx/Menu/File.pm:394 msgid "Open cancelled" msgstr "Öffnen abgebrochen" #: lib/Padre/PluginManager.pm:976 lib/Padre/Wx/Main.pm:6001 msgid "Open file" msgstr "Öffne Datei" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Open in &Command Line" msgstr "In der Befehls&zeile öffnen" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open in File &Browser" msgstr "Im &Dateimanager öffnen" #: lib/Padre/Wx/Directory/TreeCtrl.pm:253 #: lib/Padre/Wx/Directory/TreeCtrl.pm:312 msgid "Open in File Browser" msgstr "Im Dateimanager öffnen" #: lib/Padre/Wx/ActionLibrary.pm:2176 msgid "Open interesting and helpful Padre Wiki in your default web browser" msgstr "" "Das interessante und hilfreiche Padre-Wiki im Standard-Webbrowser öffnen" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Open interesting and helpful Perl websites in your default web browser" msgstr "Perl-Websites im Standard-Webbrowser öffnen" #: lib/Padre/Wx/Main.pm:4245 msgid "Open selection" msgstr "Öffne Auswahl" #: lib/Padre/Config.pm:485 msgid "Open session" msgstr "Sitzung öffnen" #: lib/Padre/Wx/ActionLibrary.pm:2517 msgid "" "Open the Padre live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "" "Den Padre-Chat aufrufen, um von anderen Nutzern und Entwicklern Hilfe zu " "erhalten" #: lib/Padre/Wx/ActionLibrary.pm:2529 msgid "" "Open the Perl live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "Den Perl-Chat aufrufen, um von anderen Nutzern Hilfe zu erhalten" #: lib/Padre/Wx/ActionLibrary.pm:2541 msgid "" "Open the Perl/Win32 live support chat in your web browser and talk to others " "who may help you with your problem" msgstr "Den Perl/Win32-Chat aufrufen, um von anderen Nutzern Hilfe zu erhalten" #: lib/Padre/Wx/ActionLibrary.pm:2211 msgid "Open the regular expression editing window" msgstr "Den Editor für reguläre Ausdrücke anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:2221 msgid "Open the selected text in the Regex Editor" msgstr "Ausgewählten Text im Regex-Editor öffnen" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Open with Default &System Editor" msgstr "Mit &Standard-Editor öffnen" #: lib/Padre/Wx/Main.pm:3203 #, perl-format msgid "Opening session %s..." msgstr "Öffne Sitzung %s..." #: lib/Padre/Wx/ActionLibrary.pm:242 msgid "Opens a command line using the current document folder" msgstr "Öffnet eine Befehlszeile für den aktuellen Ordner" #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Opens the current document using the file browser" msgstr "Aktuelles Dokument im Dateimanager des Systems öffnen" #: lib/Padre/Wx/ActionLibrary.pm:230 msgid "Opens the file with the default system editor" msgstr "Öffnet die Datei mit dem Standard-Editor des Systems" #: lib/Padre/Wx/ActionLibrary.pm:264 msgid "Opens the last closed file" msgstr "Öffnet die letzte geschlossene Datei" #: lib/Padre/Wx/FBP/Preferences.pm:861 msgid "" "Optional features can be disabled to simplify the user interface,\n" "reduce memory consumption and make Padre run faster.\n" "\n" "Changes to features are only applied when Padre is restarted." msgstr "" "Um die Benutzung zu vereinfachen, den Speicherverbrauch zu verringern\n" "und Padre schneller zu machen, können optionale Features deaktiviert " "werden.\n" "\n" "Änderungen werden erst nach einem Neustart von Padre aktiv." #: lib/Padre/Wx/FBP/Patch.pm:148 msgid "Options" msgstr "Optionen" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Optionen:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "Or&iginaltext:" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Sonstiges (Bitte hier eintragen)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Andere Veranstaltung" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Andere Suchmaschine" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "Außerhalb des zulässigen Bereichs." #: lib/Padre/Wx/Outline.pm:205 lib/Padre/Wx/Outline.pm:252 msgid "Outline" msgstr "Übersicht" #: lib/Padre/Wx/Output.pm:89 lib/Padre/Wx/FBP/Preferences.pm:470 msgid "Output" msgstr "Ausgabe" #: lib/Padre/Wx/Bottom.pm:53 msgid "Output View" msgstr "Ausgabe" #: lib/Padre/Wx/Dialog/Preferences.pm:489 msgid "Override Shortcut" msgstr "Tastenkürzel überschreiben" #: lib/Padre/Wx/ActionLibrary.pm:2527 msgid "P&erl Help" msgstr "P&erl-Hilfe" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "P&lug-in Tools" msgstr "P&lugin-Werkzeuge" #: lib/Padre/Wx/Main.pm:4409 msgid "PHP Files" msgstr "PHP-Dateien" #: lib/Padre/Wx/FBP/Preferences.pm:311 msgid "POD" msgstr "POD" #: lib/Padre/Wx/FBP/POD.pm:30 msgid "POD Viewer" msgstr "POD-Betrachter" #: lib/Padre/Config.pm:1124 lib/Padre/Wx/Scintilla.pm:28 msgid "PPI Experimental" msgstr "PPI (experimentell)" #: lib/Padre/Config.pm:1125 lib/Padre/Wx/Scintilla.pm:34 msgid "PPI Standard" msgstr "PPI (Standard)" #: lib/Padre/Wx/FBP/About.pm:604 msgid "Paco Alguacil" msgstr "Paco Alguacil" #: lib/Padre/Wx/FBP/About.pm:841 lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Padre-Entwickler" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Werkzeuge für die Padre-Entwicklung" #: lib/Padre/Wx/FBP/Preferences.pm:32 msgid "Padre Preferences" msgstr "Padre-Einstellungen" #: lib/Padre/Wx/FBP/Sync.pm:29 msgid "Padre Sync" msgstr "Padre Sync" #: lib/Padre/Wx/FBP/About.pm:102 msgid "" "Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published " "by the \n" "Free Software Foundation; version 2 dated June, 1991." msgstr "" "\"Padre enthält Icons aus GNOME, welche unter den Bedingungen der \n" "GNU General Public License, Version 2, Juni 1991, wie von der Free Software " "Foundation veröffentlicht, verbreitet und/oder modizifiert werden können.\"" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "PageDown" msgstr "Bild_ab" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "PageUp" msgstr "Bild_auf" #: lib/Padre/Wx/Dialog/Sync.pm:145 msgid "Password and confirmation do not match." msgstr "Passwort und Bestätigung stimmen nicht überein." #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "Passwort für Benutzer '%s' auf %s:" #: lib/Padre/Wx/FBP/Sync.pm:89 lib/Padre/Wx/FBP/Sync.pm:148 msgid "Password:" msgstr "Passwort:" #: lib/Padre/Wx/ActionLibrary.pm:766 msgid "Paste the clipboard to the current location" msgstr "Inhalt Zwischenablage an der momentanen Position einfügen" #: lib/Padre/Wx/FBP/Patch.pm:29 msgid "Patch" msgstr "Patch" #: lib/Padre/Wx/Dialog/Patch.pm:407 msgid "" "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "" "Patch-Datei sollte auf .patch oder .diff enden, bitte wählen Sie erneut und " "versuchen es noch einmal" #: lib/Padre/Wx/Dialog/Patch.pm:422 msgid "Patch successful, you should see a new tab in editor called Unsaved #" msgstr "" "Patch erfolgreich, Sie sollten im Editor einen neuen Reiter namens Unsaved # " "sehen" #: lib/Padre/Wx/VCS.pm:54 msgid "Path" msgstr "Pfad" #: lib/Padre/Wx/FBP/About.pm:224 msgid "Patrick Donelan" msgstr "Patrick Donelan" #: lib/Padre/Wx/FBP/About.pm:266 msgid "Paweł Murias" msgstr "Paweł Murias" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:367 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl &6 Script" msgstr "Perl-&6-Skript" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 &Module" msgstr "Perl-5-&Modul" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "Perl-5-&Skript" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 &Test" msgstr "Perl-5-&Test" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "Perl Application Development and Refactoring Environment" #: lib/Padre/Wx/FBP/Preferences.pm:1461 msgid "Perl Arguments" msgstr "Perl-Argumente" #: lib/Padre/Wx/FBP/Preferences.pm:1419 msgid "Perl Ctags File:" msgstr "Perl-ctags-Datei:" #: lib/Padre/Wx/FBP/Preferences.pm:1405 msgid "Perl Executable:" msgstr "Perl-Interpreter:" #: lib/Padre/Wx/Main.pm:4407 lib/Padre/Wx/Choice/Files.pm:21 msgid "Perl Files" msgstr "Perl-Dateien" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Perl-Filter" #: lib/Padre/Locale.pm:259 msgid "Persian (Iran)" msgstr "Persisch (Iran)" #: lib/Padre/Wx/FBP/About.pm:284 msgid "Petar Shangov" msgstr "Petar Shangov" #: lib/Padre/Wx/FBP/About.pm:134 msgid "Peter Lavender" msgstr "Peter Lavender" #: lib/Padre/Wx/Dialog/Sync.pm:134 msgid "Please ensure all inputs have appropriate values." msgstr "Bitte stellen Sie sicher, dass alle Eingaben passende Werte haben." #: lib/Padre/Wx/Dialog/Sync.pm:99 msgid "Please input a valid value for both username and password" msgstr "Bitte geben Sie für Benutzernamen und Passwort gültige Werte ein" #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the directory" msgstr "Bitte geben Sie den neuen Verzeichnisnamen ein" #: lib/Padre/Wx/Directory/TreeCtrl.pm:169 msgid "Please type in the new name of the file" msgstr "Bitte geben Sie den neuen Dateinamen ein" #: lib/Padre/Wx/Progress.pm:85 msgid "Please wait..." msgstr "Bitte warten..." #: lib/Padre/Wx/ActionLibrary.pm:2246 msgid "Plug-in &List (CPAN)" msgstr "Plugin-&Liste (CPAN)" #: lib/Padre/Wx/FBP/PluginManager.pm:29 msgid "Plug-in Manager" msgstr "Plugin-Manager" #: lib/Padre/PluginManager.pm:996 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "Plugin muss Verzeichnis '%s' als Basis-Verzeichnis haben" #: lib/Padre/PluginManager.pm:788 #, perl-format msgid "Plugin %s" msgstr "Plugin %s" #: lib/Padre/PluginHandle.pm:341 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "Plugin %s hat auf ->padre_hooks %s statt Hook-Liste zurückgegeben" #: lib/Padre/PluginHandle.pm:354 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "Plugin %s hat versucht, den ungültigen Hook %s zu registrieren" #: lib/Padre/PluginHandle.pm:362 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "Plugin %s hat versucht, den Nicht-Code-Hook %s zu registrieren" #: lib/Padre/PluginManager.pm:761 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "Plugin %s, Hook %s hat leere Fehlermeldung zurückgegeben" #: lib/Padre/PluginManager.pm:728 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Plugin-Fehler bei Ereignis %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:371 msgid "Plugins" msgstr "Plugins" #: lib/Padre/Locale.pm:381 lib/Padre/Wx/FBP/About.pm:559 msgid "Polish" msgstr "Polnisch" #: lib/Padre/Plugin/PopularityContest.pm:323 msgid "Popularity Contest Report" msgstr "Popularity-Contest-Bericht" #: lib/Padre/Locale.pm:391 lib/Padre/Wx/FBP/About.pm:574 msgid "Portuguese (Brazil)" msgstr "Portugiesisch (Brasilien)" #: lib/Padre/Locale.pm:401 msgid "Portuguese (Portugal)" msgstr "Portugiesisch (Portugal)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Positionstyp" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Positive Ganzzahl" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Positive lookahead assertion" msgstr "Ausdruck muss auf vorgenannten Ausdruck folgen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Positive lookbehind assertion" msgstr "Ausdruck muss nachfolgendem Ausdruck vorausgehen" #: lib/Padre/Wx/Outline.pm:384 msgid "Pragmata" msgstr "Pragmata" #: lib/Padre/Wx/FBP/Preferences.pm:160 msgid "Prefered language for error diagnostics" msgstr "Bevorzugte Sprache für Fehlermeldungen" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Name" #: lib/Padre/Wx/FBP/PluginManager.pm:112 msgid "Preferences" msgstr "Einstellungen" #: lib/Padre/Wx/ActionLibrary.pm:2199 msgid "Preferences &Sync..." msgstr "Einstellungen &synchronisieren" #: lib/Padre/PluginHandle.pm:283 #, perl-format msgid "Prerequisites missing suggest you read the POD for '%s': %s" msgstr "" #: lib/Padre/Wx/FBP/Snippet.pm:92 msgid "Preview:" msgstr "Vorschau:" #: lib/Padre/Wx/Diff2.pm:27 lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "Vorheriger Unterschied" #: lib/Padre/Config.pm:482 msgid "Previous open files" msgstr "Frühere geöffnete Dateien" #: lib/Padre/Wx/ActionLibrary.pm:504 msgid "Print the current document" msgstr "Aktuelles Dokument drucken" #: lib/Padre/Wx/FBP/Patch.pm:104 msgid "Process" msgstr "Anwenden" #: lib/Padre/Wx/Directory.pm:200 lib/Padre/Wx/Dialog/WindowList.pm:222 msgid "Project" msgstr "Projekt" #: lib/Padre/Wx/FBP/Preferences.pm:361 msgid "Project Browser" msgstr "Projekt-Browser" #: lib/Padre/Wx/ActionLibrary.pm:1429 msgid "Project Browser - Was known as the Directory Tree" msgstr "Projektansicht - war früher der 'Verzeichnisbaum'" #: lib/Padre/Wx/FBP/SLOC.pm:29 msgid "Project Statistics" msgstr "Projekt-Statistik" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "Projekt-Tools" #: lib/Padre/Wx/ActionLibrary.pm:1808 msgid "" "Prompt for a replacement variable name and replace all occurrences of this " "variable" msgstr "Neuen Variablennamen eingeben und alle Vorkommen umbenennen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Punctuation characters" msgstr "Satzzeichen" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Put focus on the next tab to the right" msgstr "Den nächsten (rechter Nachbar) Reiter auswählen" #: lib/Padre/Wx/ActionLibrary.pm:2365 msgid "Put focus on the previous tab to the left" msgstr "Den vorherigen (linker Nachbar) Reiter auswählen" #: lib/Padre/Wx/ActionLibrary.pm:749 msgid "Put the content of the current document in the clipboard" msgstr "Aktuelles Dokument in die Zwischenablage kopieren" #: lib/Padre/Wx/ActionLibrary.pm:689 msgid "Put the current selection in the clipboard" msgstr "Die aktuelle Auswahl in die Zwischenanlage kopieren" #: lib/Padre/Wx/ActionLibrary.pm:705 msgid "Put the full path of the current file in the clipboard" msgstr "Den vollen Pfad der aktuellen Datei in die Zwischenablage kopieren" #: lib/Padre/Wx/ActionLibrary.pm:735 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "" "Vollen Pfad und Dateinamen der aktuellen Datei in die Zwischenablage kopieren" #: lib/Padre/Wx/ActionLibrary.pm:720 msgid "Put the name of the current file in the clipboard" msgstr "Den Dateinamen der aktuellen Datei in die Zwischenablage kopieren" #: lib/Padre/Wx/Main.pm:4411 msgid "Python Files" msgstr "Python-Dateien" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:43 msgid "Quick Menu Access" msgstr "Menü-Schnellzugriff" #: lib/Padre/Wx/ActionLibrary.pm:1332 msgid "Quick access to all menu functions" msgstr "Schnellzugriff auf alle Menüfunktionen" #: lib/Padre/Wx/FBP/Debugger.pm:163 msgid "Quit Debugger" msgstr "Debugger beenden (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2163 msgid "Quit Debugger (&q)" msgstr "Debugger beenden (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2164 msgid "Quit the process being debugged" msgstr "Prozess im Debugger beenden" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "Deaktiviere Metazeichen bis \\E" #: lib/Padre/Wx/Dialog/About.pm:155 msgid "RAM" msgstr "RAM" #: lib/Padre/Wx/FBP/Debugger.pm:484 msgid "" "Raw\n" "You can enter what ever debug command you want!" msgstr "" "Raw\n" "Beliebige Debug-Befehle eingeben" #: lib/Padre/Wx/Menu/File.pm:180 msgid "Re&load" msgstr "Erneut &laden" #: lib/Padre/Wx/ActionLibrary.pm:2303 msgid "Re&load All Plug-ins" msgstr "&Lade alle Plugins neu" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Re&place in Files..." msgstr "In Dateien &ersetzen..." #: lib/Padre/Wx/ActionLibrary.pm:2281 msgid "Re&set My plug-in" msgstr "&Setze 'Mein Plugin' zurück" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Only" msgstr "Nur-Lesen" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Write" msgstr "Schreibbar" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Lade Datei vom FTP-Server..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:274 msgid "Reading items. Please wait" msgstr "Lese Daten, bitte warten..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:327 msgid "Reading items. Please wait..." msgstr "Lese Daten, bitte warten..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:215 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Datei \"%s\" wirklich löschen?" #: lib/Padre/Wx/FBP/CPAN.pm:277 msgid "Recent" msgstr "Kürzlich" #: lib/Padre/Wx/ActionLibrary.pm:608 msgid "Redo last undo" msgstr "Letzte zurückgenommene Änderung wiederherstellen" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "&Refactor" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:368 msgid "Refactor" msgstr "Refactor" #: lib/Padre/Wx/Directory.pm:226 lib/Padre/Wx/FBP/CPAN.pm:132 #: lib/Padre/Wx/FBP/CPAN.pm:180 msgid "Refresh" msgstr "Aktualisieren" #: lib/Padre/Wx/FBP/Breakpoints.pm:63 msgid "Refresh List" msgstr "Aktualisieren" #: lib/Padre/Wx/FBP/FoundInFiles.pm:51 msgid "Refresh Search" msgstr "Suche aktualisieren" #: lib/Padre/Wx/FBP/VCS.pm:143 msgid "Refresh the status of working copy files and directories" msgstr "Status der Arbeitskopien (Dateien und Verzeichnisse) aktualisieren" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Regex-Editor" #: lib/Padre/Wx/FBP/Sync.pm:178 msgid "Register" msgstr "Registrieren" #: lib/Padre/Wx/FBP/Sync.pm:315 msgid "Registration" msgstr "Registrierung" #: lib/Padre/Wx/FBP/Find.pm:79 lib/Padre/Wx/FBP/Replace.pm:129 msgid "Regular E&xpression" msgstr "Regulärer Ausdruck" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Reinstallation/Installation auf einem weiteren Computer" #: lib/Padre/Wx/ActionLibrary.pm:389 msgid "Reload &All" msgstr "&Alles erneut laden" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload &File" msgstr "&Datei erneut laden" #: lib/Padre/Wx/ActionLibrary.pm:399 msgid "Reload &Some..." msgstr "&Mehrere Dateien neu laden..." #: lib/Padre/Wx/Main.pm:4693 msgid "Reload Files" msgstr "Dateien erneut laden" #: lib/Padre/Wx/ActionLibrary.pm:390 msgid "Reload all files currently open" msgstr "Alle offenen Dateien neu laden" #: lib/Padre/Wx/ActionLibrary.pm:2304 msgid "Reload all plug-ins from &disk" msgstr "La&de alle Plugins neu" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Reload current file from disk" msgstr "Aktuelle Datei neu vom Datenträger laden" #: lib/Padre/Wx/Main.pm:4636 msgid "Reloading Files" msgstr "Dateien werden erneut laden" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Reloads (or initially loads) the current plug-in" msgstr "Lädt das aktuelle Plugin oder aktualisiert es" #: lib/Padre/Wx/ActionLibrary.pm:659 msgid "Remove all the selection marks" msgstr "Alle Auswahl-Markierungen entfernen" #: lib/Padre/Wx/ActionLibrary.pm:969 msgid "Remove comment for selected lines or the current line" msgstr "Ausgewählte Zeilen bzw. aktuelle Zeile wieder einkommentieren" #: lib/Padre/Wx/ActionLibrary.pm:674 msgid "Remove the current selection and put it in the clipboard" msgstr "Aktuelle Auswahl ausschneiden und in die Zwischenablage kopieren" #: lib/Padre/Wx/ActionLibrary.pm:533 msgid "Remove the entries from the recent files list" msgstr "Aktuelle Datei von der Liste der kürzlich geöffneten Dateien löschen" #: lib/Padre/Wx/ActionLibrary.pm:1064 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Leerzeichen am Anfang der ausgewählten Zeilen entfernen" #: lib/Padre/Wx/ActionLibrary.pm:1074 msgid "Remove the spaces from the end of the selected lines" msgstr "Leerzeichen am Ende der ausgewählten Zeilen entfernen" #: lib/Padre/Wx/Directory/TreeCtrl.pm:378 #: lib/Padre/Wx/Directory/TreeCtrl.pm:380 msgid "Rename" msgstr "Umbenennen" #: lib/Padre/Wx/Directory/TreeCtrl.pm:277 msgid "Rename Directory" msgstr "Verzeichnis umbenennen" #: lib/Padre/Wx/Directory/TreeCtrl.pm:336 msgid "Rename File" msgstr "Datei umbenennen" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename directory" msgstr "Verzeichnis umbenennen" #: lib/Padre/Wx/Directory/TreeCtrl.pm:170 msgid "Rename file" msgstr "Datei umbenennen" #: lib/Padre/Document/Perl.pm:813 lib/Padre/Document/Perl.pm:823 msgid "Rename variable" msgstr "Variable umbenennen" #: lib/Padre/Wx/VCS.pm:264 msgid "Renamed" msgstr "Umbenannt" #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Repeat the last find to find the next match" msgstr "Wiederholt den letzten Suchvorgang" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Führt den letzten Suchvorgang in umgekehrter Suchrichtung aus" #: lib/Padre/Wx/FBP/Replace.pm:31 msgid "Replace" msgstr "E&rsetzen" #: lib/Padre/Wx/FBP/Replace.pm:186 msgid "Replace &All" msgstr "&Alle ersetzen" #: lib/Padre/Wx/FBP/Replace.pm:88 msgid "Replace &With:" msgstr "Ersetzen &durch:" #: lib/Padre/Wx/FBP/Preferences.pm:500 msgid "Replace In Files" msgstr "In Dateien umbenennen" #: lib/Padre/Document/Perl.pm:907 lib/Padre/Document/Perl.pm:956 msgid "Replace Operation Canceled" msgstr "Ersetzen abgebrochen" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:66 msgid "Replace With:" msgstr "Ersetzen durch:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Replace all occurrences of the pattern" msgstr "Ersetze alle Vorkommen des Musters" #: lib/Padre/Wx/ReplaceInFiles.pm:248 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "" "Ersetzen abgeschlossen, '%s' wurde %d Mal in %d Datei(en) in '%s' gefunden" #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "Ersetzung fehlgeschlagen in %s: %s" #: lib/Padre/Wx/ReplaceInFiles.pm:132 lib/Padre/Wx/FBP/ReplaceInFiles.pm:32 msgid "Replace in Files" msgstr "In Dateien umbenennen" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "Ersetzen..." #: lib/Padre/Wx/Dialog/Replace.pm:129 #, perl-format msgid "Replaced %d match" msgstr "%d Ersetzung durchgeführt." #: lib/Padre/Wx/Dialog/Replace.pm:129 #, perl-format msgid "Replaced %d matches" msgstr "%d Ersetzungen durchgeführt." #: lib/Padre/Wx/ReplaceInFiles.pm:189 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr "Ersetze '%s' in '%s'..." #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Report a New &Bug" msgstr "Neuen Fehler &melden" #: lib/Padre/Wx/ActionLibrary.pm:2288 msgid "Reset My plug-in" msgstr "Setze 'Mein Plugin' zurück" #: lib/Padre/Wx/ActionLibrary.pm:2282 msgid "Reset the My plug-in to the default" msgstr "Setzt My-Plugin auf den Standard-Dateiinhalt zurück." #: lib/Padre/Wx/ActionLibrary.pm:1649 msgid "Reset the size of the letters to the default in the editor window" msgstr "Standard-Schriftgröße wiederherstellen" #: lib/Padre/Wx/FBP/Preferences.pm:1237 msgid "Reset to default shortcut" msgstr "Zur Standard-Tastenkombination zurücksetzen" #: lib/Padre/Wx/Main.pm:3233 msgid "Restore focus..." msgstr "Fokus setzen..." #: lib/Padre/Wx/FBP/VCS.pm:123 msgid "Restore pristine working copy file (undo most local edits)" msgstr "" "Ursprüngliche Datei herstellen (die meisten lokalen Änderungen rückgängig " "machen)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Return" msgstr "Return" #: lib/Padre/Wx/VCS.pm:565 msgid "Revert changes?" msgstr "Veränderungen rückgängig machen?" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "Diese Veränderung rückgängig machen" #: lib/Padre/Wx/VCS.pm:56 msgid "Revision" msgstr "Version" #: lib/Padre/Wx/Dialog/Preferences.pm:34 msgid "Right" msgstr "Rechts" #: lib/Padre/Config.pm:59 msgid "Right Panel" msgstr "Rechtes Panel" #: lib/Padre/Wx/FBP/Diff.pm:83 msgid "Right side" msgstr "Rechts" #: lib/Padre/Wx/Main.pm:4413 msgid "Ruby Files" msgstr "Ruby-Dateien" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:369 msgid "Run" msgstr "A&usführen" #: lib/Padre/Wx/ActionLibrary.pm:1981 msgid "Run &Build and Tests" msgstr "Projekt &kompilieren und alle Tests starten" #: lib/Padre/Wx/ActionLibrary.pm:1970 msgid "Run &Command" msgstr "&Befehl ausführen" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "&Dokument in Padre ausführen" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "&Auswahl in Padre ausführen" #: lib/Padre/Wx/ActionLibrary.pm:1993 msgid "Run &Tests" msgstr "&Tests ausführen" #: lib/Padre/Wx/FBP/Debugger.pm:43 msgid "" "Run Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1958 msgid "Run Script (&Debug Info)" msgstr "Skript ausführen (&Debug-Info)" #: lib/Padre/Wx/ActionLibrary.pm:2012 msgid "Run T&his Test" msgstr "&Diesen Test starten" #: lib/Padre/Wx/ActionLibrary.pm:1995 msgid "" "Run all tests for the current project or document and show the results in " "the output panel." msgstr "" "Führt alle Test des aktuellen Projektes aus und zeigt das Ergebnis im " "Ausgabe-Panel." #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "Filter ausführen" #: lib/Padre/Wx/Main.pm:2722 msgid "Run setup" msgstr "Ausführungs-Konfiguration" #: lib/Padre/Wx/ActionLibrary.pm:1959 msgid "Run the current document but include debug info in the output." msgstr "" "Führt das aktuelle Dokument aus und zeigt Ausgabe und Debug-Informationen im " "Ausgabe-Panel an." #: lib/Padre/Wx/ActionLibrary.pm:2013 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "Aktuellen Test ausführen (sofern das aktuelle Dokument ein Test ist)" #: lib/Padre/Wx/ActionLibrary.pm:1971 msgid "Runs a shell command and shows the output." msgstr "Führt einen Shellbefehl aus und zeigt die Ausgabe im Ausgabe-Panel." #: lib/Padre/Wx/ActionLibrary.pm:1943 msgid "Runs the current document and shows its output in the output panel." msgstr "" "Führt das aktuelle Programm aus und zeigt die Ausgabe im Ausgabe-Panel." #: lib/Padre/Locale.pm:411 lib/Padre/Wx/FBP/About.pm:616 msgid "Russian" msgstr "Russisch" #: lib/Padre/Wx/FBP/About.pm:188 msgid "Ryan Niebur" msgstr "Ryan Niebur" #: lib/Padre/Wx/FBP/Debugger.pm:444 msgid "" "S [[!]regex]\n" "List subroutine names [not] matching the regex." msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "&Speichern" #: lib/Padre/Wx/FBP/Preferences.pm:1194 msgid "S&et" msgstr "S&etzen" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "Umschalt" #: lib/Padre/Wx/Main.pm:4415 msgid "SQL Files" msgstr "SQL-Dateien" #: lib/Padre/Wx/Dialog/Patch.pm:572 #, perl-format msgid "SVN Diff successful. You should see a new tab in editor called %s." msgstr "" "SVN-Diff erfolgreich, Sie sollten im Editor einen neuen Reiter namens %s " "sehen." #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "Speichern" #: lib/Padre/Wx/ActionLibrary.pm:426 msgid "Save &As..." msgstr "Speichern &unter..." #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save &Intuition" msgstr "&Intelligentes Speichern" #: lib/Padre/Wx/ActionLibrary.pm:450 msgid "Save All" msgstr "Alle speichern" #: lib/Padre/Wx/ActionLibrary.pm:486 msgid "Save Sess&ion..." msgstr "S&itzung speichern..." #: lib/Padre/Document.pm:783 msgid "Save Warning" msgstr "Warnung: Datei speichern" #: lib/Padre/Wx/ActionLibrary.pm:451 msgid "Save all the files" msgstr "Alle Dateien speichern" #: lib/Padre/Wx/FBP/Preferences.pm:660 msgid "Save and Close" msgstr "Speichern und Schließen" #: lib/Padre/Wx/ActionLibrary.pm:414 msgid "Save current document" msgstr "Aktuelles Dokument speichern" #: lib/Padre/Wx/Main.pm:4779 msgid "Save file as..." msgstr "Datei speichern unter..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Sitzung speichern als..." #: lib/Padre/Wx/FBP/SessionManager.pm:70 msgid "Save session automatically" msgstr "Sitzung automatisch speichern" #: lib/Padre/Wx/FBP/VCS.pm:43 msgid "Schedule the file or directory for addition to the repository" msgstr "Datei oder Verzeichnis für das Hinzufügen zum Repository vormerken" #: lib/Padre/Wx/FBP/VCS.pm:63 msgid "Schedule the file or directory for deletion from the repository" msgstr "Datei oder Verzeichnis für das Entfernen aus dem Repository vormerken" #: lib/Padre/Config.pm:1123 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/FBP/Preferences.pm:1923 msgid "Screen Layout" msgstr "Bildschirm-Layout" #: lib/Padre/Wx/FBP/Preferences.pm:1481 msgid "Script Arguments" msgstr "Skript-Argumente" #: lib/Padre/Wx/FBP/Preferences.pm:1436 msgid "Script Execution" msgstr "Skript-Ausführung" #: lib/Padre/Wx/Main.pm:4421 msgid "Script Files" msgstr "Skript-Dateien" #: lib/Padre/Wx/Directory.pm:84 lib/Padre/Wx/Directory.pm:505 #: lib/Padre/Wx/FBP/CPAN.pm:276 lib/Padre/Wx/Dialog/QuickMenuAccess.pm:365 #: lib/Padre/Wx/Dialog/Find.pm:65 msgid "Search" msgstr "Suchen" #: lib/Padre/Wx/FBP/Find.pm:87 msgid "Search &Backwards" msgstr "Suche &rückwärts" #: lib/Padre/Wx/FBP/FindInFiles.pm:48 lib/Padre/Wx/FBP/Find.pm:46 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:41 lib/Padre/Wx/FBP/Replace.pm:47 msgid "Search &Term:" msgstr "&Suchbegriff:" #: lib/Padre/Document/Perl.pm:658 msgid "Search Canceled" msgstr "Suche abgebrochen" #: lib/Padre/Wx/Dialog/Replace.pm:132 lib/Padre/Wx/Dialog/Replace.pm:137 #: lib/Padre/Wx/Dialog/Replace.pm:162 msgid "Search and Replace" msgstr "Suchen und Ersetzen" #: lib/Padre/Wx/ActionLibrary.pm:1267 msgid "Search and replace text in all files below a given directory" msgstr "Sucht und ersetzt Text in allen Dateien eines Verzeichnisses." #: lib/Padre/Wx/Panel/FoundInFiles.pm:292 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "" "Suche abgeschlossen, '%s' wurde %d Mal in %d Datei(en) in '%s' gefunden" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Search for a text in all files below a given directory" msgstr "Sucht in allen Dateien eines Verzeichnisses nach einem Text." #: lib/Padre/Wx/Browser.pm:92 lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Perl-Dokumentation durchsuchen - z.B. Padre::Task, Net::LDAP" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Search the Perl help pages (perldoc)" msgstr "Perl-Hilfeseiten (perldoc) durchsuchen" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "Suchen:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "Suche nach '%s' fehlgeschlagen..." #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "" "Searches the source code for brackets with lack a matching (opening/closing) " "part." msgstr "Suche nach nicht übereinstimmenden/fehlenden Klammern" #: lib/Padre/Wx/Panel/FoundInFiles.pm:242 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "Suche nach '%s' in '%s' fehlgeschlagen..." #: lib/Padre/Wx/FBP/About.pm:140 lib/Padre/Wx/FBP/About.pm:445 msgid "Sebastian Willing" msgstr "Sebastian Willing" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Label 2" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Update-Informationen: http://padre.perlide.org/" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Auswählen" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Select &All" msgstr "&Alles auswählen" #: lib/Padre/Wx/Dialog/FindInFiles.pm:52 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:44 msgid "Select Directory" msgstr "Verzeichnis wählen" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Funktion auswählen" #: lib/Padre/Wx/ActionLibrary.pm:1307 msgid "Select a bookmark created earlier and jump to that position" msgstr "Zu einem Lesezeichen springen" #: lib/Padre/Wx/ActionLibrary.pm:907 msgid "" "Select a date, filename or other value and insert at the current location" msgstr "" "Datum, Uhrzeit, Dateiname oder andere Werte auswählen und an der aktuellen " "Position einfügen" #: lib/Padre/Wx/FBP/Preferences.pm:1426 msgid "Select a file" msgstr "Datei auswählen" #: lib/Padre/Wx/ActionLibrary.pm:931 msgid "Select a file and insert its content at the current location" msgstr "Eine Datei an der aktuellen Position einfügen" #: lib/Padre/Wx/FBP/Preferences.pm:610 msgid "Select a folder" msgstr "Ordner auswählen" #: lib/Padre/Wx/ActionLibrary.pm:476 msgid "" "Select a session. Close all the files currently open and open all the listed " "in the session" msgstr "" "Eine Sitzung auswählen, alle aktuell geöffneten Dateien schließen und die " "Sitzung öffnen" #: lib/Padre/Wx/ActionLibrary.pm:622 msgid "Select all the text in the current document" msgstr "Gesamtes Dokument auswählen" #: lib/Padre/Wx/ActionLibrary.pm:1002 msgid "Select an encoding and encode the document to that" msgstr "Die Kodierung der Datei ändern" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "Select and insert a snippet at the current location" msgstr "Ein Sourcecode-Stück an der aktuellen Stelle einfügen" #: lib/Padre/CPAN.pm:100 msgid "Select distribution to install" msgstr "Distribution zur Installation auswählen" #: lib/Padre/Wx/Main.pm:5246 msgid "Select files to close:" msgstr "Welche Dateien/Fenster sollen geschlossen werden?" #: lib/Padre/Wx/Dialog/OpenResource.pm:238 msgid "Select one or more resources to open" msgstr "Eine oder mehrere Ressourcen zum Öffnen auswählen" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Einige Dateien auswählen, die geschlossen werden sollen." #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Select some open files for reload" msgstr "Einige Dateien auswählen, die erneut geöffnet werden sollen" #: lib/Padre/Wx/Dialog/HelpSearch.pm:131 msgid "Select the help &topic" msgstr "Hilfe-&Thema auswählen" #: lib/Padre/Wx/ActionLibrary.pm:882 msgid "Select to Matching &Brace" msgstr "&Auswählen bis zur passenden Klammer" #: lib/Padre/Wx/ActionLibrary.pm:883 msgid "Select to the matching opening or closing brace" msgstr "" "&Auswählen bis zur passenden öffnenden oder schließenden Klammer: { }, ( ), " "[ ], < >" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "Vor welcher Sub soll die neue Sub eingefügt werden?" #: lib/Padre/Wx/FBP/Document.pm:129 msgid "Selection" msgstr "Auswahl" #: lib/Padre/Document/Perl.pm:950 msgid "Selection not part of a Perl statement?" msgstr "Ist die Auswahl vielleicht kein Teil eines Perl-Befehls?" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Send a bug report to the Padre developer team" msgstr "Einen Fehlerbericht an die Padre-Entwickler senden." #: lib/Padre/Wx/FBP/VCS.pm:103 msgid "Send changes from your working copy to the repository" msgstr "Änderungen an der Arbeitskopie zum Repository übertragen" #: lib/Padre/File/HTTP.pm:52 #, perl-format msgid "Sending HTTP request %s..." msgstr "Sende HTTP-Anfrage %s..." #: lib/Padre/Wx/FBP/Sync.pm:38 msgid "Server:" msgstr "Server:" #: lib/Padre/Wx/FBP/SessionManager.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Sitzungs-Manager" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "Sitzungsname:" #: lib/Padre/Wx/ActionLibrary.pm:1295 msgid "Set &Bookmark" msgstr "Setze &Lesezeichen" #: lib/Padre/Wx/FBP/Bookmarks.pm:38 msgid "Set Bookmark:" msgstr "Setze Lesezeichen:" #: lib/Padre/Wx/ActionLibrary.pm:2142 msgid "Set Breakpoint (&b)" msgstr "Haltepunkt setzen (&b)" #: lib/Padre/Wx/FBP/Breakpoints.pm:83 msgid "Set Breakpoints (toggle)" msgstr "Haltepunkt setzen (umschalten)" #: lib/Padre/Wx/ActionLibrary.pm:1665 msgid "Set Padre in full screen mode" msgstr "Vollbildmodus aktivieren" #: lib/Padre/Wx/ActionLibrary.pm:2143 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "Einen Haltepunkt in der aktuellen Zeile setzen" #: lib/Padre/Wx/ActionLibrary.pm:2391 msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "Den Fokus auf den CPAN-Explorer setzen" #: lib/Padre/Wx/ActionLibrary.pm:2447 msgid "Set the focus to the \"Command Line\" window" msgstr "Den Fokus auf die Befehlszeile setzen" #: lib/Padre/Wx/ActionLibrary.pm:2402 msgid "Set the focus to the \"Functions\" window" msgstr "Den Fokus auf die Funktionen-Liste setzen" #: lib/Padre/Wx/ActionLibrary.pm:2414 msgid "Set the focus to the \"Outline\" window" msgstr "Den Fokus auf die Übersichts-Liste setzen" #: lib/Padre/Wx/ActionLibrary.pm:2425 msgid "Set the focus to the \"Output\" window" msgstr "Das Ausgabefenster wählen" #: lib/Padre/Wx/ActionLibrary.pm:2436 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Fokus auf den Syntaxprüfungsbereich setzen" #: lib/Padre/Wx/ActionLibrary.pm:2458 msgid "Set the focus to the main editor window" msgstr "Den Fokus auf den Editor-Bereich setzen" #: lib/Padre/Wx/FBP/Preferences.pm:1199 msgid "Sets the keyboard binding" msgstr "Tastenkombination setzen" #: lib/Padre/Config.pm:532 lib/Padre/Config.pm:787 msgid "Several placeholders like the filename can be used" msgstr "" "Unterschiedliche Platzhalter wie etwa der Dateiname können verwendet werden" #: lib/Padre/Wx/Syntax.pm:59 msgid "Severe Warning" msgstr "Schwerwiegende Warnung" #: lib/Padre/Wx/ActionLibrary.pm:2200 msgid "Share your preferences between multiple computers" msgstr "Verwenden Sie Ihre Einstellungen auf mehreren Rechnern" #: lib/Padre/MIME.pm:1035 msgid "Shell Script" msgstr "Shell-Skript" #: lib/Padre/Wx/FBP/Preferences.pm:1171 msgid "Shift" msgstr "Umschalt" #: lib/Padre/Wx/FBP/About.pm:472 msgid "Shlomi Fish" msgstr "Shlomi Fish" #: lib/Padre/Wx/Dialog/Preferences.pm:169 lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Tastenkürzel" #: lib/Padre/Wx/FBP/Preferences.pm:1143 msgid "Shortcut:" msgstr "Tastenkürzel:" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Shorten the common path in window list" msgstr "Gemeinsamen Pfad in Fensterliste verkürzen" #: lib/Padre/Wx/FBP/VCS.pm:239 lib/Padre/Wx/FBP/Breakpoints.pm:151 #: lib/Padre/Wx/FBP/Debugger.pm:519 msgid "Show" msgstr "Zeigen" #: lib/Padre/Wx/ActionLibrary.pm:1377 msgid "Show &Command Line" msgstr "&Befehlszeile anzeigen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:215 msgid "Show &Description" msgstr "&Beschreibung anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1367 msgid "Show &Function List" msgstr "&Funktionsliste anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1605 msgid "Show &Indentation Guide" msgstr "&Einrückungshilfen zeigen" #: lib/Padre/Wx/ActionLibrary.pm:1417 msgid "Show &Outline" msgstr "&Übersicht anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1357 msgid "Show &Output" msgstr "&Ausgabe anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1428 msgid "Show &Project Browser" msgstr "&Projektansicht anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1407 msgid "Show &Task List" msgstr "&TODO-Liste anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1595 msgid "Show &Whitespaces" msgstr "&Leerraum zeigen" #: lib/Padre/Wx/ActionLibrary.pm:1563 msgid "Show C&urrent Line" msgstr "Akt&uelle Zeile hervorheben" #: lib/Padre/Wx/ActionLibrary.pm:1387 msgid "Show CPA&N Explorer" msgstr "CPA&N-Explorer anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1549 msgid "Show Ca&ll Tips" msgstr "&Aufruf-Tipps anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1508 msgid "Show Code &Folding" msgstr "&Code-Ausblenden verwenden" #: lib/Padre/Wx/ActionLibrary.pm:2062 msgid "Show Debug Breakpoints" msgstr "Haltepunkte anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:2075 msgid "Show Debug Output" msgstr "Debug-Ausgabe anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:2085 msgid "Show Debugger" msgstr "Debugger anzeigen" #: lib/Padre/Wx/FBP/Debugger.pm:212 msgid "Show Global Variables" msgstr "Globale Variablen anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1497 msgid "Show Line &Numbers" msgstr "Zeilen&nummern zeigen" #: lib/Padre/Wx/FBP/Debugger.pm:193 msgid "Show Local Variables" msgstr "Lokale Variablen anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1585 msgid "Show Ne&wlines" msgstr "Zeilen&umbrüche zeigen" #: lib/Padre/Wx/ActionLibrary.pm:1573 msgid "Show Right &Margin" msgstr "Zeige &rechten Rand" #: lib/Padre/Wx/ActionLibrary.pm:1438 msgid "Show S&yntax Check" msgstr "S&yntax-Check ausführen" #: lib/Padre/Wx/ActionLibrary.pm:1459 msgid "Show St&atus Bar" msgstr "St&atuszeile zeigen" #: lib/Padre/Wx/FBP/Syntax.pm:63 msgid "Show Standard Error" msgstr "Standard-Fehlerausgabe zeigen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:245 msgid "Show Subs&titution" msgstr "Erse&tzung anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1469 msgid "Show Tool&bar" msgstr "&Werkzeugleiste zeigen" #: lib/Padre/Wx/ActionLibrary.pm:1448 msgid "Show V&ersion Control" msgstr "Versionskontroll&e anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1574 msgid "Show a vertical line indicating the right margin" msgstr "Eine vertikale Linie anzeigen um die rechte Begrenzung darzustellen" #: lib/Padre/Wx/ActionLibrary.pm:1408 msgid "Show a window listing all task items in the current document" msgstr "Alle TODOs für das aktuelle Dokument zeigen" #: lib/Padre/Wx/ActionLibrary.pm:1368 msgid "Show a window listing all the functions in the current document" msgstr "Alle Funktionen (Methoden, Subs) im aktuellen Dokument anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1418 msgid "" "Show a window listing all the parts of the current file (functions, pragmas, " "modules)" msgstr "" "Die Struktur (Funktionen, Pragmas, Module) des aktuellen Dokuments anzeigen" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Show as" msgstr "Zeige als" #: lib/Padre/Wx/ActionLibrary.pm:1154 msgid "Show as &Decimal" msgstr "Zeige als &Dezimalzahlen" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Show as &Hexadecimal" msgstr "Zeige als &Hexadezimalzahlen" #: lib/Padre/Plugin/PopularityContest.pm:212 msgid "Show current report" msgstr "Aktuellen Bericht anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1397 msgid "Show diff window!" msgstr "Unterschiede anzeigen!" #: lib/Padre/Wx/ActionLibrary.pm:2593 msgid "Show information about Padre" msgstr "Informationen über Padre anzeigen" #: lib/Padre/Wx/FBP/Preferences.pm:152 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "" "Nachrichten niedriger Priorität in der Statuszeile statt in einem Fenster " "anzeigen" #: lib/Padre/Config.pm:1142 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "" "Nachrichten niedriger Priorität in der Statuszeile statt in einem Fenster " "anzeigen" #: lib/Padre/Config.pm:779 msgid "Show or hide the status bar at the bottom of the window." msgstr "Die Statuszeile am unteren Rand des Fensters anzeigen/ausblenden" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "Vorherige Positionen anzeigen" #: lib/Padre/Wx/FBP/Preferences.pm:742 msgid "Show right margin at column" msgstr "Zeige rechten Rand bei Spalte" #: lib/Padre/Wx/FBP/Preferences.pm:563 msgid "Show splash screen" msgstr "Logo beim Programmstart anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1155 msgid "" "Show the ASCII values of the selected text in decimal numbers in the output " "window" msgstr "Dezimaldarstellung des ausgewählten Textes anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1145 msgid "" "Show the ASCII values of the selected text in hexadecimal notation in the " "output window" msgstr "Hexadezimaldarstellung des ausgewählten Textes anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:2505 msgid "Show the POD (Perldoc) version of the current document" msgstr "POD/Perldoc für das aktuelle Dokument anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "Show the Padre help" msgstr "Padre-Hilfe anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:2234 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Plugins können im Plugin-Manager aktiviert und deaktiviert werden." #: lib/Padre/Wx/ActionLibrary.pm:1378 msgid "Show the command line window" msgstr "Befehlszeile anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:2492 msgid "Show the help article for the current context" msgstr "Hilfe für den aktuellen Kontext anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1358 msgid "" "Show the window displaying the standard output and standard error of the " "running scripts" msgstr "" "Ein Fenster zur Anzeige der Standardausgabe und Standardfehlermeldungen " "laufender Skripte anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1719 msgid "Show what perl thinks about your code" msgstr "Zeige was perl über Ihren Code denkt" #: lib/Padre/Wx/ActionLibrary.pm:1509 msgid "" "Show/hide a vertical line on the left hand side of the window to allow " "folding rows" msgstr "Einklappen von Sourcecode-Teilen ermöglichen" #: lib/Padre/Wx/ActionLibrary.pm:1498 msgid "" "Show/hide the line numbers of all the documents on the left side of the " "window" msgstr "Zeilennummern anzeigen bzw. ausblenden" #: lib/Padre/Wx/ActionLibrary.pm:1586 msgid "Show/hide the newlines with special character" msgstr "Zeilenumbrüche mit einem speziellen Zeichen darstellen" #: lib/Padre/Wx/ActionLibrary.pm:1460 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Die Statuszeile anzeigen/ausblenden" #: lib/Padre/Wx/ActionLibrary.pm:1596 msgid "Show/hide the tabs and the spaces with special characters" msgstr "Tabulator- und Leerzeichen als spezielle Zeichen anzeigen" #: lib/Padre/Wx/ActionLibrary.pm:1470 msgid "Show/hide the toolbar at the top of the editor" msgstr "Toolbar anzeigen/ausblenden" #: lib/Padre/Wx/ActionLibrary.pm:1606 msgid "" "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "Einrückungen graphisch darstellen" #: lib/Padre/Config.pm:469 msgid "Showing the splash image during start-up" msgstr "Logo beim Start anzeigen" #: lib/Padre/Wx/FBP/About.pm:508 msgid "Simone Blandino" msgstr "Simone Blandino" #: lib/Padre/Wx/ActionLibrary.pm:1108 msgid "Simplistic Patch only works on saved files" msgstr "Einfaches Patch funktioniert nur mit gespeicherten Dateien" #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "Hintergrund-A&bsturz simulieren" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "&Absturz simulieren" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "Hintergrund-&Exception simulieren" #: lib/Padre/Wx/ActionLibrary.pm:2377 msgid "Simulate a right mouse button click to open the context menu" msgstr "Rechten Mausklick zum Öffnen des Kontextmenüs simulieren" # perl-format #: lib/Padre/Wx/Dialog/RegexEditor.pm:476 msgid "Single-line (&s)" msgstr "Einzeilig (&s)" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "Größe" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "Überspringen" #: lib/Padre/Wx/Dialog/OpenResource.pm:270 msgid "Skip using MANIFEST.SKIP" msgstr "Dateien in MANIFEST.SKIP ignorieren" #: lib/Padre/Wx/Dialog/OpenResource.pm:266 msgid "Skip version control system files" msgstr "Versionskontrollsystem-Dateien ignorieren" #: lib/Padre/Document.pm:1415 lib/Padre/Document.pm:1416 msgid "Skipped for large files" msgstr "Übersprungen für große Dateien" #: lib/Padre/Wx/FBP/Snippet.pm:61 msgid "Snippet:" msgstr "Schnipsel:" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "Etwas is nicht in Ordnung mit Ihrer Padre-Datenbank:\n" "Sitzung %s ist in der Liste, aber es fehlen die entsprechenden Daten" #: lib/Padre/Wx/Dialog/Patch.pm:491 msgid "" "Sorry Diff Failed, are you sure your choice of files was correct for this " "action" msgstr "" "Diff fehlgeschlagen, bitten stellen Sie sicher, dass Sie die passenden " "Dateien ausgewählt haben" #: lib/Padre/Wx/Dialog/Patch.pm:588 msgid "" "Sorry, Diff failed. Are you sure your have access to the repository for this " "action" msgstr "" "Diff fehlgeschlagen, bitte stellen Sie sicher, dass Sie Zugriff auf das " "Repository haben" #: lib/Padre/Wx/Dialog/Patch.pm:434 msgid "" "Sorry, patch failed, are you sure your choice of files was correct for this " "action" msgstr "" "Patch fehlgeschlagen, bitten stellen Sie sicher, dass Sie die passenden " "Dateien ausgewählt haben" #: lib/Padre/Wx/FBP/Preferences.pm:73 msgid "Sort Order:" msgstr "Sortierungsreihenfolge" #: lib/Padre/Wx/FBP/Document.pm:228 msgid "Source Lines of Code" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:30 msgid "Space" msgstr "Leertaste" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "Space and tab" msgstr "Leer- und Tabulatorzeichen" #: lib/Padre/Wx/Main.pm:6281 msgid "Space to Tab" msgstr "In Tabulatoren umwandeln..." #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Spaces to &Tabs..." msgstr "Leerzeichen in &Tabulatoren umwandeln..." #: lib/Padre/Locale.pm:249 lib/Padre/Wx/FBP/About.pm:595 msgid "Spanish" msgstr "Spanisch" #: lib/Padre/Locale.pm:235 msgid "Spanish (Argentina)" msgstr "Spanisch (Argentinien)" #: lib/Padre/Wx/ActionLibrary.pm:906 msgid "Special &Value..." msgstr "Spezieller &Wert..." #: lib/Padre/Config.pm:1381 msgid "" "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "" "Spezifiziert Optionen für Devel::EndStats. 'feature_devel_endstats' muss " "aktiviert sein." #: lib/Padre/Config.pm:1400 msgid "" "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "" "Spezifiziert Optionen für Devel::TraceUse. 'feature_devel_traceuse' muss " "aktiviert sein." #: lib/Padre/Wx/FBP/Preferences.pm:523 msgid "Startup" msgstr "Start" #: lib/Padre/Wx/VCS.pm:53 lib/Padre/Wx/FBP/DebugOutput.pm:37 #: lib/Padre/Wx/Dialog/Advanced.pm:111 lib/Padre/Wx/CPAN/Listview.pm:35 #: lib/Padre/Wx/CPAN/Listview.pm:59 msgid "Status" msgstr "Status" #: lib/Padre/Wx/FBP/Sync.pm:52 msgid "Status:" msgstr "Status:" #: lib/Padre/Wx/FBP/About.pm:152 msgid "Steffen Muller" msgstr "Steffen Müller" #: lib/Padre/Wx/FBP/FoundInFiles.pm:111 msgid "Stop Search" msgstr "Suche anhalten" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "Stop a running task." msgstr "Hält den aktuellen Prozess an." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "" "Unterbricht die Verarbeitung weiterer Aktionen in der Warteschlange für 1 " "Sekunde" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "" "Unterbricht die Verarbeitung weiterer Aktionen in der Warteschlange für 10 " "Sekunden" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "" "Unterbricht die Verarbeitung weiterer Aktionen in der Warteschlange für 30 " "Sekunden" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "Zeichenkette" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "Sub-trace gestartet" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "Sub-trace gestoppt" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "%s als Sprache für Padre auswählen" #: lib/Padre/Wx/ActionLibrary.pm:1484 msgid "Switch document type" msgstr "Dokumententyp ändern" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Sprache zum Systemstandard umschalten" #: lib/Padre/Wx/Syntax.pm:161 lib/Padre/Wx/FBP/Preferences.pm:455 msgid "Syntax Check" msgstr "Syntax-Check" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "System-Vorgabe" #: lib/Padre/Wx/FBP/Debugger.pm:356 msgid "" "T\n" "Produce a stack backtrace." msgstr "" "T\n" "Stack-Backtrace erzeugen." #: lib/Padre/Wx/Dialog/Preferences.pm:29 #: lib/Padre/Wx/Dialog/RegexEditor.pm:140 msgid "Tab" msgstr "Tabulator" #: lib/Padre/Wx/FBP/Preferences.pm:998 msgid "Tab Spaces:" msgstr "Tabulatoren:" #: lib/Padre/Wx/Main.pm:6282 msgid "Tab to Space" msgstr "In Leerzeichen umwandeln..." #: lib/Padre/Wx/Menu/Edit.pm:233 msgid "Tabs and S&paces" msgstr "Tabulatoren und &Leerzeichen" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Tabs to &Spaces..." msgstr "Tabulator- zu L&eerzeichen umwandeln..." #: lib/Padre/Wx/TaskList.pm:184 lib/Padre/Wx/FBP/Preferences.pm:88 #: lib/Padre/Wx/FBP/Preferences.pm:406 lib/Padre/Wx/Panel/TaskList.pm:98 msgid "Task List" msgstr "TODO-Liste" #: lib/Padre/MIME.pm:878 msgid "Text" msgstr "Text" #: lib/Padre/Wx/Main.pm:4417 lib/Padre/Wx/Choice/Files.pm:20 msgid "Text Files" msgstr "Textdateien" #: lib/Padre/Wx/Dialog/Bookmarks.pm:108 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "Das Lesezeichen '%s' existiert nicht mehr" #: lib/Padre/Document.pm:254 #, perl-format msgid "" "The file %s you are trying to open is %s bytes large. It is over the " "arbitrary file size limit of Padre which is currently %s. Opening this file " "may reduce performance. Do you still want to open the file?" msgstr "" "Die Datei %s die Sie öffnen wollen ist %s Bytes groß. Dies ist über Padres " "Größenlimit von momentan %s. Das Öffnen dieser Datei kann möglicherweise die " "Ausführungsgeschwindigkeit verringern. Wollen Sie die Datei trotzdem öffnen?" #: lib/Padre/Wx/Dialog/Preferences.pm:485 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "Das Kürzel '%s' wird bereits von der Aktion '%s' verwendet.\n" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "Es wurden noch keine Positionen gespeichert" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Dieses Dokument enthält keine POD-Abschnitte" #: lib/Padre/Wx/ActionLibrary.pm:2273 msgid "This function reloads the My plug-in without restarting Padre" msgstr "" "Diese Funktion aktualisiert das My-Plugin, ohne dass Padre neu gestartet " "werden muss." #: lib/Padre/Config.pm:1372 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "Devel::EndStats muss installiert sein; Padre-Neustart erforderlich" #: lib/Padre/Config.pm:1391 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "Devel::TraceUse muss installiert sein; Padre-Neustart erforderlich" #: lib/Padre/Wx/Main.pm:5375 msgid "This type of file (URL) is missing delete support." msgstr "Dieser Dateityp (URL) unterstützt Löschen nicht." #: lib/Padre/Wx/Dialog/About.pm:146 msgid "Threads" msgstr "Threads" #: lib/Padre/Wx/FBP/Preferences.pm:1311 lib/Padre/Wx/FBP/Preferences.pm:1354 msgid "Timeout (seconds)" msgstr "Timeout (in Sekunden)" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "Heute" #: lib/Padre/Config.pm:1445 msgid "Toggle Diff window feature that compares two buffers graphically" msgstr "Diff-Fenster ein-/ausschalten" #: lib/Padre/Config.pm:1463 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "Perl-6-Erkennung in Perl-5-Dateien ein-/ausschalten" #: lib/Padre/Wx/FBP/Debugger.pm:316 msgid "" "Toggle running breakpoints (update DB)\n" "b\n" "Sets breakpoint on current line\n" "B line\n" "Delete a breakpoint from the specified line." msgstr "" #: lib/Padre/Wx/FBP/About.pm:230 msgid "Tom Eliaz" msgstr "Tom Eliaz" #: lib/Padre/Wx/FBP/Preferences.pm:344 msgid "Tool Positions" msgstr "Werkzeug-Positionen" #: lib/Padre/Wx/FBP/Debugger.pm:231 msgid "Trace" msgstr "Trace" #: lib/Padre/Wx/FBP/About.pm:843 msgid "Translation" msgstr "Übersetzung" #: lib/Padre/Wx/Dialog/Advanced.pm:129 lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Ja" #: lib/Padre/Locale.pm:421 lib/Padre/Wx/FBP/About.pm:631 msgid "Turkish" msgstr "Türkisch" #: lib/Padre/Wx/ActionLibrary.pm:1388 msgid "Turn on CPAN explorer" msgstr "CPAN-Explorer einschalten" #: lib/Padre/Wx/ActionLibrary.pm:1398 msgid "Turn on Diff window" msgstr "Diff-Fenster einschalten" #: lib/Padre/Wx/ActionLibrary.pm:2063 msgid "Turn on debug breakpoints panel" msgstr "Debug-Haltepunktepanel einschalten" #: lib/Padre/Wx/ActionLibrary.pm:1439 msgid "" "Turn on syntax checking of the current document and show output in a window" msgstr "Syntax-Hervorhebung aktivieren" #: lib/Padre/Wx/ActionLibrary.pm:1450 msgid "" "Turn on version control view of the current project and show version control " "changes in a window" msgstr "" "Versionskontroll-Ansicht des aktuellen Projektes aktivieren und Änderungen " "in Fenster anzeigen" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Typ" #: lib/Padre/Wx/Dialog/HelpSearch.pm:148 msgid "Type a help &keyword to read:" msgstr "Suchbegriff eingeben:" #: lib/Padre/MIME.pm:40 msgid "UNKNOWN" msgstr "UNBEKANNT" #: lib/Padre/Wx/ActionLibrary.pm:1528 msgid "Un&fold All" msgstr "Alle aus&klappen" # perl-format #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "Kann %s nicht parsen" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Undo last change in current file" msgstr "Letzte Änderung rückgängigmachen" #: lib/Padre/Wx/ActionLibrary.pm:1529 lib/Padre/Wx/ActionLibrary.pm:1539 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "" "Alle möglichen Blöcke aufklappen (sofern einklappbarer Code aktiviert ist)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Unicode character 'name'" msgstr "Unicode-Zeichen 'name'" #: lib/Padre/Locale.pm:143 lib/Padre/Wx/Main.pm:4161 msgid "Unknown" msgstr "Unbekannt" #: lib/Padre/PluginManager.pm:778 lib/Padre/Document/Perl.pm:654 #: lib/Padre/Document/Perl.pm:903 lib/Padre/Document/Perl.pm:952 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "Unbekannter Fehler" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Unbekannter Fehler von " #: lib/Padre/PluginHandle.pm:24 msgid "Unloaded" msgstr "Nicht geladen" #: lib/Padre/Wx/VCS.pm:260 msgid "Unmodified" msgstr "Unverändert" #: lib/Padre/Document.pm:1063 #, perl-format msgid "Unsaved %d" msgstr "Ungesichert %d" #: lib/Padre/Wx/Main.pm:5111 msgid "Unsaved File" msgstr "Ungesicherte Datei" #: lib/Padre/Util/FileBrowser.pm:63 lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "Betriebssystem '%s' wird nicht unterstützt" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "Unbenannt" #: lib/Padre/Wx/VCS.pm:253 lib/Padre/Wx/VCS.pm:267 lib/Padre/Wx/FBP/VCS.pm:189 msgid "Unversioned" msgstr "Nicht versioniert" #: lib/Padre/Wx/Dialog/Preferences.pm:31 msgid "Up" msgstr "Auf" #: lib/Padre/Wx/VCS.pm:266 msgid "Updated but unmerged" msgstr "Aktualisiert aber noch nicht integriert" #: lib/Padre/Wx/FBP/Sync.pm:202 msgid "Upload" msgstr "Hochladen" #: lib/Padre/Wx/Menu/Edit.pm:263 msgid "Upper/Lo&wer Case" msgstr "Groß-/&Kleinschreibung" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Uppercase characters" msgstr "Großbuchstaben" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Uppercase next character" msgstr "Nächstes Zeichen groß" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Uppercase till \\E" msgstr "Großbuchstaben bis \\E" #: lib/Padre/Wx/FBP/Preferences.pm:1346 msgid "Use FTP passive mode" msgstr "Passiven FTP-Modus benutzen" #: lib/Padre/Wx/ActionLibrary.pm:1135 msgid "Use Perl source as filter" msgstr "Perl-Code als Filter verwenden" #: lib/Padre/Wx/FBP/Preferences.pm:644 msgid "Use X11 middle button paste style" msgstr "Mittlere Maustaste zum Einfügen nach X11-Art" #: lib/Padre/Wx/ActionLibrary.pm:1321 msgid "Use a filter to select one or more files" msgstr "" "Eine oder mehrere Dateien aus dem Projekt mit Hilfe eines Filters laden" #: lib/Padre/Wx/FBP/Preferences.pm:1453 msgid "Use external window for execution" msgstr "Externes Fenster für die Ausführung benutzen" #: lib/Padre/Wx/FBP/Preferences.pm:972 msgid "Use tabs instead of spaces" msgstr "Tabs statt Leerzeichen verwenden" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "Benutzer" #: lib/Padre/Wx/ActionLibrary.pm:2322 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "Ein lokales CPAN-Paket mittels CPAN.pm installieren" #: lib/Padre/Wx/ActionLibrary.pm:2332 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "Eine tar.gz-Datei runterladen und mit CPAN installieren" #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Wert" #: lib/Padre/Wx/ActionLibrary.pm:1911 msgid "Variable Name" msgstr "Variablenname" #: lib/Padre/Document/Perl.pm:863 msgid "Variable case change" msgstr "Groß-/Kleinschreibung der Variable ändern" #: lib/Padre/Wx/VCS.pm:126 lib/Padre/Wx/FBP/Preferences.pm:438 msgid "Version Control" msgstr "Versionskontrolle" #: lib/Padre/Wx/FBP/Preferences.pm:931 msgid "Version Control Tool" msgstr "Versionskontrolle" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Vertically &Align Selected" msgstr "&Auswahl vertikal ausrichten" #: lib/Padre/Wx/Syntax.pm:77 msgid "Very Fatal Error" msgstr "Sehr schwerwiegender Fehler" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:366 msgid "View" msgstr "Ansicht" #: lib/Padre/Wx/ActionLibrary.pm:2572 msgid "View All &Open Bugs" msgstr "Alle &offenen Fehler ansehen" #: lib/Padre/Wx/ActionLibrary.pm:2573 msgid "View all known and currently unsolved bugs in Padre" msgstr "Liste aller bekannten Probleme und Bugs von Padre anzuzeigen." #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Visible characters" msgstr "Sichtbare Zeichen" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Visible characters and spaces" msgstr "Sichtbare Zeichen und Leerzeichen" #: lib/Padre/Wx/ActionLibrary.pm:2175 msgid "Visit Debug &Wiki..." msgstr "Debug-Wiki besuchen..." #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Visit Perl Websites..." msgstr "Perl-Websites besuchen..." #: lib/Padre/Document.pm:779 #, perl-format msgid "" "Visual filename %s does not match the internal filename %s, do you want to " "abort saving?" msgstr "" "Der angezeigte Dateiname %s stimmt nicht mit dem internen Dateinamen %s " "überein. Soll der Speichervorgang abgebrochen werden?" #: lib/Padre/Document.pm:260 lib/Padre/Wx/Syntax.pm:47 #: lib/Padre/Wx/Main.pm:3118 lib/Padre/Wx/Main.pm:3840 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Warnung" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "" "Warning! This will delete all the changes you made to 'My plug-in' and " "replace it with the default code that comes with your installation of Padre" msgstr "" "Warnung: Dies wird alle Änderungen die Sie an 'My plug-in'vorgenommen haben " "löschen und sie durch den vorgegebenen Code ersetzen,der bei Padre " "mitgeliefert wird." #: lib/Padre/Wx/Dialog/Patch.pm:529 #, perl-format msgid "" "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache " "Subversion\"" msgstr "" "Warnung: SVN v%s gefunden, aber Padre benötigt SVN v%s, und es wird jetzt " "\"Apache Subversion\" genannt" #: lib/Padre/Wx/FBP/Expression.pm:96 msgid "Watch" msgstr "Watch" #: lib/Padre/PluginManager.pm:383 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Ein oder mehrere neue Plugins gefunden.\n" "Konfiguration und Aktivierung unter\n" "Plugins -> Plugin-Manager\n" "\n" "Liste neuer Plugins:\n" "\n" #: lib/Padre/Wx/ActionLibrary.pm:2076 lib/Padre/Wx/ActionLibrary.pm:2086 msgid "We should not need this menu item" msgstr "Wir sollten diesen Menüeintrag nicht benötigen" #: lib/Padre/Wx/Main.pm:4419 msgid "Web Files" msgstr "WWW-Dateien" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Wasauchimmer" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "When typing in functions allow showing short examples of the function" msgstr "Kurzhilfe zu Funktionen anzeigen während sie eingegeben werden" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "Woher weißt Du von Padre?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Whitespace characters" msgstr "Zwischenraumzeichen" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:372 msgid "Window" msgstr "Fenster" #: lib/Padre/Wx/Dialog/WindowList.pm:34 msgid "Window list" msgstr "Fensterliste" #: lib/Padre/Wx/ActionLibrary.pm:545 msgid "Word count and other statistics of the current document" msgstr "Statistiken zum Dokument anzeigen" #: lib/Padre/Wx/FBP/Document.pm:156 msgid "Words" msgstr "Wörter" #: lib/Padre/Wx/ActionLibrary.pm:1616 msgid "Wrap long lines" msgstr "Lange Zeilen umbrechen" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Sende Datei zum FTP-Server..." #: lib/Padre/Wx/Output.pm:165 lib/Padre/Wx/Main.pm:2974 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get " "at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream hat Version %s, bei der bekannte Probleme auftreten. " "Bitte aktualisieren Sie auf mindestens Version 0.20, indem Sie\n" "cpan Wx::Perl::ProcessStream in der Befehlszeile eingeben" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "Jahr" #: lib/Padre/File/HTTP.pm:162 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "" "Sie sind dabei, eine Datei mittels HTTP PUT zu speichern. Diese Funktion ist " "höchstexperimentell, und wird von den meisten Servern nicht unterstützt." #: lib/Padre/Wx/Editor.pm:1890 msgid "You must select a range of lines" msgstr "Sie müssen mehrere Zeilen auswählen" #: lib/Padre/Wx/Main.pm:3839 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Es läuft noch ein Prozess, sollen dieser und Padre beendet werden?" #: lib/Padre/MIME.pm:1212 msgid "ZIP Archive" msgstr "" #: lib/Padre/Wx/FBP/About.pm:158 lib/Padre/Wx/FBP/About.pm:451 msgid "Zeno Gantner" msgstr "Zeno Gantner" #: lib/Padre/Wx/FBP/Debugger.pm:123 msgid "" "c [line|sub]\n" "Continue, optionally inserting a one-time-only breakpoint at the specified " "line or subroutine." msgstr "" #: lib/Padre/Wx/FBP/About.pm:314 msgid "code4pay" msgstr "code4pay" #: lib/Padre/CPAN.pm:180 msgid "cpanm is unexpectedly not installed" msgstr "cpanm ist wider Erwarten nicht installiert" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "z.B." #: lib/Padre/Wx/Dialog/WindowList.pm:349 lib/Padre/Wx/Dialog/WindowList.pm:353 msgid "fresh" msgstr "aktuell" #: lib/Padre/Wx/FBP/Debugger.pm:83 msgid "" "n [expr]\n" "Next. Executes over subroutine calls, until the beginning of the next " "statement. If an expression is supplied that includes function calls, those " "functions will be executed with stops before each statement." msgstr "" "n [expr]\n" "Nächste Anweisung. Führt auch Funktionsaufrufe druch, bis zum Anfang der " "nächsten Anweisung. Falls ein Ausdruck mit Funktionsaufrufen vorliegt, " "werden diese Funktionen mit Stopps vor jeder Anweisung ausgeführt." #: lib/Padre/Wx/FBP/Debugger.pm:396 msgid "" "o\n" "Display all options.\n" "\n" "o booloption ...\n" "Set each listed Boolean option to the value 1.\n" "\n" "o anyoption? ...\n" "Print out the value of one or more options.\n" "\n" "o option=value ...\n" "Set the value of one or more options. If the value has internal whitespace, " "it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" " "to call less with those specific options. You may use either single or " "double quotes, but if you do, you must escape any embedded instances of same " "sort of quote you began with, as well as any escaping any escapes that " "immediately precede that quote but which are not meant to escape the quote " "itself. In other words, you follow single-quoting rules irrespective of the " "quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?" "\"\" .\n" "\n" "For historical reasons, the =value is optional, but defaults to 1 only where " "it is safe to do so--that is, mostly for Boolean options. It is always " "better to assign a specific value using = . The option can be abbreviated, " "but for clarity probably should not be. Several options can be set together. " "See Configurable Options for a list of these." msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:105 msgid "project" msgstr "Projekt" #: lib/Padre/Wx/FBP/Debugger.pm:103 msgid "" "r\n" "Continue until the return from the current subroutine. Dump the return value " "if the PrintRet option is set (default)." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:63 msgid "" "s [expr]\n" "Single step. Executes until the beginning of another statement, descending " "into subroutine calls. If an expression is supplied that includes function " "calls, it too will be single-stepped." msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:110 msgid "show breakpoints in project" msgstr "Haltepunkte im Projekt anzeigen" #: lib/Padre/Wx/FBP/Debugger.pm:236 msgid "" "t\n" "Toggle trace mode (see also the AutoTrace option)." msgstr "" "t\n" "Trace-Modus ein- und ausschalten (siehe auch die AutoTrace-Option)" #: lib/Padre/Wx/FBP/Debugger.pm:276 msgid "v [line] View window around line." msgstr "v [Zeile] Zeige Zeilen um die angegebene Zeile." #: lib/Padre/Wx/FBP/Debugger.pm:464 msgid "" "w expr\n" "Add a global watch-expression. Whenever a watched global changes the " "debugger will stop and display the old and new values.\n" "\n" "W expr\n" "Delete watch-expression\n" "W *\n" "Delete all watch-expressions." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:217 msgid "" "working now with some gigery pokery to get around\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "in grep { } einbinden" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "in map { } einbinden" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "&Live-Support für wxPerl" #: lib/Padre/Wx/FBP/Debugger.pm:198 msgid "" "y [level [vars]]\n" "Display all (or some) lexical variables (mnemonic: mY variables) in the " "current scope or level scopes higher. You can limit the variables that you " "see with vars which works exactly as it does for the V and X commands. " "Requires the PadWalker module version 0.08 or higher; will warn if this " "isn't installed. Output is pretty-printed in the same style as for V and the " "format is controlled by the same options." msgstr "" #~ msgid "R/W" #~ msgstr "R/W" #~ msgid "Show Local Variables (y 0)" #~ msgstr "Lokale Variablen anzeigen (y 0)" #~ msgid "Go to &Todo Window" #~ msgstr "&TODO-Liste auswählen" #~ msgid "Move to other panel" #~ msgstr "Auf anderes Panel verschieben" #~ msgid "Set the focus to the \"Todo\" window" #~ msgstr "Den Fokus auf die TODO-Liste setzen" #~ msgid "To Do" #~ msgstr "TODO" #~ msgid "Username" #~ msgstr "Benutzername" #~ msgid "" #~ "The directory browser got an undef object and may stop working now. " #~ "Please save your work and restart Padre." #~ msgstr "" #~ "Der Verzeichnis-Browser hat ein undefiniertes Objekt erhaltung und könnte " #~ "unter Umständen aufhören zu funktionieren. Bitte speichern Sie Ihre Daten " #~ "und starten Sie Padre neu." #~ msgid "Auto-Complete" #~ msgstr "Auto-Vervollständigung" #~ msgid "Automatic indentation style detection" #~ msgstr "Einrückung automatisch erkennen" #~ msgid "Check for file updates on disk every (seconds)" #~ msgstr "Prüfintervall (in Sekunden) für Dateiänderungen auf der Festplatte" #~ msgid "Could not determine the comment character for %s document type" #~ msgstr "" #~ "Das Kommentarzeichen für den Dateityp %s konnte nicht ermittelt werden." #~ msgid "Created by:" #~ msgstr "Ins Leben gerufen von:" #~ msgid "Default line ending" #~ msgstr "Standard-Zeilenumbruch" #~ msgid "Default projects directory" #~ msgstr "Standard-Projektverzeichnis" #~ msgid "Document Tools (Right)" #~ msgstr "Dokumenten-Tools (Rechts)" #~ msgid "File access via FTP" #~ msgstr "Dateizugriff mit FTP" #~ msgid "File access via HTTP" #~ msgstr "Dateizugriff über HTTP" #~ msgid "Indentation width (in columns)" #~ msgstr "Einrückungstiefe (in Spalten)" #~ msgid "Interpreter arguments" #~ msgstr "Interpreter-Argumente" #~ msgid "Local/Remote File Access" #~ msgstr "Lokaler/entfernter Dateizugriff" #~ msgid "Methods order" #~ msgstr "Methoden-Reihenfolge" #~ msgid "MyLabel" #~ msgstr "MyLabel 1" #~ msgid "Open files" #~ msgstr "Dateien öffnen" #~ msgid "Perl ctags file" #~ msgstr "Perl-ctags-Datei" #~ msgid "Perl interpreter" #~ msgstr "Perl-Interpreter" #~ msgid "Project Tools (Left)" #~ msgstr "Projekt-Tools (Links)" #~ msgid "RegExp for TODO panel" #~ msgstr "Regex für die TODO-Suche" #~ msgid "Reload all files" #~ msgstr "Alle Dateien erneut laden" #~ msgid "Reload some" #~ msgstr "Einige Dateien neu laden" #~ msgid "Reload some files" #~ msgstr "Einige Dateien neu laden" #~ msgid "Search again for '%s'" #~ msgstr "Erneut nach '%s' suchen" #~ msgid "Syntax Highlighter" #~ msgstr "Syntax-Hervorhebung" #~ msgid "Tab display size (in spaces)" #~ msgstr "Anzeigebreite (in Leerzeichen) für Tabulatoren" #~ msgid "To-do" #~ msgstr "TODO" #~ msgid "Toggle MetaCPAN CPAN explorer panel" #~ msgstr "MetaCPAN CPAN-Explorer-Panel ein-/ausschalten" #~ msgid "Use Tabs" #~ msgstr "Verwende Tabulatoren" #~ msgid "&Install CPAN Module" #~ msgstr "&Installiere CPAN-Modul" #~ msgid "&Update" #~ msgstr "&Aktualisieren" #~ msgid "Ahmad Zawawi: Developer" #~ msgstr "Ahmad Zawawi: Entwickler" #~ msgid "Case &sensitive" #~ msgstr "&Groß-/Kleinschreibung beachten" #~ msgid "Characters (including whitespace)" #~ msgstr "Zeichen (mit Leerzeichen)" #~ msgid "Cl&ose Window on Hit" #~ msgstr "Dialog schließen bei &Treffer" #~ msgid "Close Window on &Hit" #~ msgstr "Dialog schließen bei &Treffer" #~ msgid "Copy &All" #~ msgstr "&Alle kopieren" #~ msgid "Copy &Selected" #~ msgstr "Au&swahl kopieren" #~ msgid "Core Team" #~ msgstr "Kern-Team" #~ msgid "Could not set breakpoint on file '%s' row '%s'" #~ msgstr "Konnte Unterbrechung in Datei %s Zeile %s nicht setzen" #~ msgid "Debugger not running" #~ msgstr "Debugger läuft nicht" #~ msgid "Developers" #~ msgstr "Entwickler" #~ msgid "Did not find any matches." #~ msgstr "Kein Treffer gefunden." #~ msgid "" #~ "Display the current value of a variable in the right hand side debugger " #~ "pane" #~ msgstr "Die aktuelle Variable im Debugger-Panel anzeigen" #~ msgid "Evaluate Expression..." #~ msgstr "Ausdruck auswerten..." #~ msgid "" #~ "Execute the next statement, enter subroutine if needed. (Start debugger " #~ "if it is not yet running)" #~ msgstr "" #~ "Die nächste Zeile ausführen, falls notwendig in eine Subroutine springen " #~ "(Debugger starten, falls notwendig)" #~ msgid "" #~ "Execute the next statement. If it is a subroutine call, stop only after " #~ "it returned. (Start debugger if it is not yet running)" #~ msgstr "" #~ "Die nächste Zeile ausführen. Falls es ein Subroutinen-Aufruf ist, erst " #~ "danach anhalten. (Debugger starten, falls notwendig)" #~ msgid "Expr" #~ msgstr "Expr" #~ msgid "Expression:" #~ msgstr "Ausdruck:" #~ msgid "Fast but might be out of date" #~ msgstr "Schnell, aber möglicherweise veraltet" #~ msgid "Filename" #~ msgstr "Dateiname" #~ msgid "Filter" #~ msgstr "Filter" #~ msgid "Find Results (%s)" #~ msgstr "Suchergebnisse (%s)" #~ msgid "Find Text:" #~ msgstr "Suchbegriff:" #~ msgid "Find and Replace" #~ msgstr "Suchen und Ersetzen" #~ msgid "Gabor Szabo: Project Manager" #~ msgstr "Gabor Szabo: Projektmanager" #~ msgid "" #~ "Hopefully faster than the PPI Traditional. Big file will fall back to " #~ "Scintilla highlighter." #~ msgstr "" #~ "Hoffentlich schneller als traditionelles PPI; bei großen Dateien wird " #~ "weiterhin Scintilla benutzt." #~ msgid "If within a subroutine, run till return is called and then stop." #~ msgstr "Bis zum Ende der Subroutine ausführen, dann anhalten" #~ msgid "Install a Perl module from CPAN" #~ msgstr "Ein Perl-Modul vom CPAN installieren" #~ msgid "Jump to Current Execution Line" #~ msgstr "Zur aktuell ausgeführten Zeile gehen" #~ msgid "Kibibytes (kiB)" #~ msgstr "Kibibyte (kiB)" #~ msgid "Kilobytes (kB)" #~ msgstr "Kilobyte (kB)" #~ msgid "Line" #~ msgstr "Zeile" #~ msgid "Line break mode" #~ msgstr "Zeilenumbruch" #~ msgid "List all the breakpoints on the console" #~ msgstr "Alle Haltepunkte anzeigen" #~ msgid "MIME type did not have a class entry when %s(%s) was called" #~ msgstr "MIME-Typ hat keinen Klasseneintrag beim Aufruf von %s(%s)" #~ msgid "MIME type is not supported when %s(%s) was called" #~ msgstr "MIME-Typ nicht unterstützt beim Aufruf von %s(%s)" #~ msgid "MIME type was not supported when %s(%s) was called" #~ msgstr "MIME-Typ nicht unterstützt beim Aufruf von %s(%s)" #~ msgid "Match Case" #~ msgstr "Groß-/Kleinschreibung berücksichtigen" #~ msgid "Next" #~ msgstr "Vor" #~ msgid "No file is open" #~ msgstr "Keine geöffnete Datei" #~ msgid "No module mime_type='%s' filename='%s'" #~ msgstr "Kein Modul mime_type='%s' filename='%s'" #~ msgid "Non-whitespace characters" #~ msgstr "Zeichen (ohne Leerzeichen)" #~ msgid "Padre:-" #~ msgstr "Padre:-" #~ msgid "Plug-in Name" #~ msgstr "Plugin-Name" #~ msgid "Previ&ous" #~ msgstr "V&orherige" #~ msgid "Regular &Expression" #~ msgstr "R&egulärer Ausdruck" #~ msgid "Related editor has been closed" #~ msgstr "Das betreffende Dokument wurde geschlossen." #~ msgid "Remove the breakpoint at the current location of the cursor" #~ msgstr "Haltepunkt aus der aktuellen Zeile entfernen" #~ msgid "Replace Text:" #~ msgstr "Ersetzen durch:" #~ msgid "Run till Breakpoint (&c)" #~ msgstr "Bis zum Haltepunkt ausführen (&c)" #~ msgid "Run to Cursor" #~ msgstr "Bis zum Cursor ausführen" #~ msgid "Set Bookmark" #~ msgstr "Setze Lesezeichen" #~ msgid "Set a breakpoint at the line where to cursor is and run till there" #~ msgstr "" #~ "Haltepunkt an der aktuellen Position setzen und bis dorthin ausführen" #~ msgid "" #~ "Set focus to the line where the current statement is in the debugging " #~ "process" #~ msgstr "" #~ "Setze den Fokus auf die Zeile, in der sich der aktuelle Befehl im " #~ "Debugging-Prozess befindet" #~ msgid "Show Changes" #~ msgstr "Änderungen anzeigen" #~ msgid "Show Stack Trace (&t)" #~ msgstr "Stack-&Trace anzeigen" #~ msgid "Show Value Now (&x)" #~ msgstr "Wert einmalig anzeigen (&x)" #~ msgid "Show the value of a variable now in a pop-up window." #~ msgstr "Den Wert einer Variablen in einem Dialogfenster anzeigen" #~ msgid "Slow but accurate and we have full control so bugs can be fixed" #~ msgstr "Langsam, aber genau und ermöglicht Fehlerbehebung" #~ msgid "Start running and/or continue running till next breakpoint or watch" #~ msgstr "" #~ "Programm bis zum nächsten Haltepunkt ausführen (Debugger starten, falls " #~ "notwendig)" #~ msgid "Stats" #~ msgstr "Dokument-Statistiken" #~ msgid "Step In (&s)" #~ msgstr "Step In (&s)" #~ msgid "Step Out (&r)" #~ msgstr "Step Out (&r)" #~ msgid "Step Over (&n)" #~ msgstr "Step Over (&n)" #~ msgid "" #~ "The debugger is not running.\n" #~ "You can start the debugger using one of the commands 'Step In', 'Step " #~ "Over', or 'Run till Breakpoint' in the Debug menu." #~ msgstr "" #~ "Der Debugger läuft noch nicht.\n" #~ "Sie können den Debugger starten, indem Sie 'Step In', 'Step Over' oder " #~ "'Bis zum Haltepunkt ausführen' im Debugging-Menü auswählen." #~ msgid "Type in any expression and evaluate it in the debugged process" #~ msgstr "Einen Befehl im aktuellen Prozess ausführen" #~ msgid "Variable" #~ msgstr "Variable" #~ msgid "Version" #~ msgstr "Version" #~ msgid "Visit the PerlM&onks" #~ msgstr "Besuche die PerlM&onks" #~ msgid "" #~ "When in a subroutine call show all the calls since the main of the program" #~ msgstr "Sub-Stack anzeigen" #~ msgid "X" #~ msgstr "X" #~ msgid "disabled" #~ msgstr "Deaktiviert" #~ msgid "enabled" #~ msgstr "Aktiviert" #~ msgid "error" #~ msgstr "Fehler" #~ msgid "no highlighter for mime-type '%s' using stc" #~ msgstr "kein stc-Highlighter für den MIME-Type '%s'" #~ msgid "none" #~ msgstr "keine" #~ msgid "&Advanced" #~ msgstr "&Experten-Modus" #~ msgid "&Filter" #~ msgstr "&Filter" #~ msgid "&Go to previous position" #~ msgstr "&Gehe zu vorheriger Position" #~ msgid "&Last Visited File" #~ msgstr "Zu&letzt aufgerufene Datei" #~ msgid "&Oldest Visited File" #~ msgstr "&Älteste aufgerufene Datei" #~ msgid "&Right Click" #~ msgstr "&Rechts-Klick" #~ msgid "&Show previous positions..." #~ msgstr "Vorherige Positionen an&zeigen..." #~ msgid "About Padre" #~ msgstr "Über Padre" #~ msgid "Blue butterfly on a green leaf" #~ msgstr "Blauer Schmetterling auf einem grünen Blatt" #~ msgid "Config:" #~ msgstr "Konfiguration:" #~ msgid "Created by" #~ msgstr "Ins Leben gerufen von" #~ msgid "Imitate clicking on the right mouse button" #~ msgstr "Einen Klick der rechten Maustaste simulieren" #~ msgid "Jump between the two last visited files back and forth" #~ msgstr "Zwischen den letzten beiden Dateien hin- und herwechseln" #~ msgid "Jump to the last position saved in memory" #~ msgstr "Zur letzten gemerkten Position springen" #~ msgid "Last Visited File" #~ msgstr "Zuletzt aufgerufene Datei" #~ msgid "" #~ "Padre is free software; you can redistribute it and/or modify it under " #~ "the same terms as Perl 5." #~ msgstr "" #~ "Padre ist freie Software und kann zu den gleichen Bedingungen kopiert, " #~ "weitergegeben und geändert werden wie Perl 5." #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "Den ältesten besuchten Reiter auswählen" #~ msgid "RAM:" #~ msgstr "RAM:" #~ msgid "Show the list of positions recently visited" #~ msgstr "Liste der kürzlich besuchten Positionen anzeigen" #~ msgid "" #~ "Switch to edit the file that was previously edited (can switch back and " #~ "forth)" #~ msgstr "Vorherige Datei auswählen" #~ msgid "System Info" #~ msgstr "System-Info" #~ msgid "The Padre Development Team" #~ msgstr "Padre-Entwicklerteam" #~ msgid "The Padre Translation Team" #~ msgstr "Das Padre-Übersetzerteam" #~ msgid "Threads:" #~ msgstr "Threads:" #~ msgid "Uptime:" #~ msgstr "Laufzeit:" #~ msgid "Use panel order for Ctrl-Tab (not usage history)" #~ msgstr "" #~ "Fensterreihenfolge für Strg+Tab verwenden (nicht Nutzungsreihenfolge)" #~ msgid "splash image is based on work by" #~ msgstr "Start-Bild basiert auf einem Werk von" #~ msgid "Burak Gürsoy" #~ msgstr "Burak Gürsoy" #~ msgid "György Pásztor" #~ msgstr "György Pásztor" #~ msgid "Jérôme Quelin" #~ msgstr "Jérôme Quelin" #~ msgid "Marcela Mašláňová" #~ msgstr "Marcela Mašláňová" #~ msgid "Olivier Mengué" #~ msgstr "Olivier Mengué" #~ msgid "%s has no constructor" #~ msgstr "%s hat keinen Konstruktor" #~ msgid "&Back" #~ msgstr "&Zurück" #~ msgid "&Wizard Selector" #~ msgstr "&Assistenten-Auswahl" #~ msgid "Creates a Padre Plugin" #~ msgstr "Erstellt ein Padre-Plugin" #~ msgid "Creates a Padre document" #~ msgstr "Padre-Dokument erstellen" #~ msgid "Creates a Perl 5 module or script" #~ msgstr "Erstellt ein Perl-5-Skript oder -Modul" #~ msgid "Error while loading %s" #~ msgstr "Fehler beim Laden von %s" #~ msgid "Find &Previous" #~ msgstr "&Rückwärts suchen" #~ msgid "" #~ "Find next matching text using a toolbar-like dialog at the bottom of the " #~ "editor" #~ msgstr "Text mit Hilfe eines Such-Dialogs oberhalb der Statusleiste suchen" #~ msgid "" #~ "Find previous matching text using a toolbar-like dialog at the bottom of " #~ "the editor" #~ msgstr "" #~ "Findet den vorherigen Treffer des Suchdialogs oberhalb der Statusleiste" #~ msgid "Module" #~ msgstr "Modul" #~ msgid "Opens the Padre document wizard" #~ msgstr "Öffnet den Padre-Dokumentenassistenten" #~ msgid "Opens the Padre plugin wizard" #~ msgstr "Öffnet den Padre-Plugin-Assistenten" #~ msgid "Opens the Perl 5 module wizard" #~ msgstr "Öffnet den Perl-5-Plugin-Assistenten" #~ msgid "Padre Document Wizard" #~ msgstr "Padre-Dokumenten-Assistent" #~ msgid "Padre Plugin Wizard" #~ msgstr "Padre-Plugin-Assistent" #~ msgid "Perl 5" #~ msgstr "Perl 5" #~ msgid "Perl 5 Module Wizard" #~ msgstr "Perl-5-Modul-Assistent" #~ msgid "Plugin" #~ msgstr "Plugin" #~ msgid "Select a Wizard" #~ msgstr "Wähle einen Assistenten" #~ msgid "Selects and opens a wizard" #~ msgstr "Wähle und öffne einen Assistenten" #~ msgid "Wizard Selector" #~ msgstr "Assistenten-Auswahl" #~ msgid "&Hide Find in Files" #~ msgstr "'In Dateien suchen' &ausblenden" #~ msgid "&Key Bindings" #~ msgstr "Tasten&kombinationen" #~ msgid "Apply Diff to &File" #~ msgstr "&Diff auf Datei anwenden" #~ msgid "Apply Diff to &Project" #~ msgstr "Diff auf &Projekt anwenden" #~ msgid "Apply a patch file to the current document" #~ msgstr "Ein Patch auf das aktuelle Dokument anwenden" #~ msgid "Apply a patch file to the current project" #~ msgstr "Ein Patch auf das aktuelle Projekt anwenden" #~ msgid "Cannot diff if file was never saved" #~ msgstr "Vergleich nicht möglich ohne vorheriges Speichern" #~ msgid "" #~ "Compare the file in the editor to that on the disk and show the diff in " #~ "the output window" #~ msgstr "" #~ "Dokument im Editor mit dem Dokument auf dem Datenträger vergleichen und " #~ "Änderungen anzeigen" #~ msgid "Dark" #~ msgstr "Dunkel" #~ msgid "Di&ff Tools" #~ msgstr "Di&ff-Tools" #~ msgid "Diff to &Saved Version" #~ msgstr "Diff zur &gespeicherten Version" #~ msgid "Diff tool" #~ msgstr "Diff-Tool" #~ msgid "Evening" #~ msgstr "Nachmittag" #~ msgid "External Tools" #~ msgstr "Externe Tools" #~ msgid "Failed to find template file '%s'" #~ msgstr "Fehler beim Laden der Template-Datei '%s'" #~ msgid "Found %d issue(s)" #~ msgstr "%d Problem(e) gefunden" #~ msgid "Hide the list of matches for a Find in Files search" #~ msgstr "Die Ergebnisliste von 'In Dateien suchen' ausblenden" #~ msgid "Night" #~ msgstr "Nacht" #~ msgid "No errors or warnings found." #~ msgstr "Keine Warnungen oder Fehler gefunden." #~ msgid "Notepad++" #~ msgstr "Notepad++" #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "Konfiguriere die Tastenkombinationen für Padre" #~ msgid "Solarize" #~ msgstr "Solarize" #~ msgid "Switch highlighting colours" #~ msgstr "Farben für Syntax-Hervorhebung ändern" #~ msgid "There are no differences\n" #~ msgstr "Keine Unterschiede\n" #~ msgid "Ultraedit" #~ msgstr "Ultraedit" #~ msgid "&Uncomment Selected Lines" #~ msgstr "A&usgewählte Zeilen: Kommentar entfernen" #~ msgid "Case &insensitive" #~ msgstr "Ignoriere Groß-/Kleinschreibung" #~ msgid "" #~ "Enable or disable the newer Wx::Scintilla source code editing component. " #~ msgstr "Neue Wx::Scinitilla-Editorkomponente aktivieren/deaktivieren" #~ msgid "Find Next" #~ msgstr "Weitersuchen" #~ msgid "Rename Variable" #~ msgstr "Variable umbenennen" #~ msgid "This requires an installed Wx::Scintilla and a Padre restart" #~ msgstr "Wx::Scintilla muss installiert sein; Padre-Neustart erforderlich" #~ msgid "&Insert" #~ msgstr "&Einfügen" #~ msgid "" #~ "An error has occured while generating '%s':\n" #~ "%s" #~ msgstr "" #~ "Beim Erstellen von '%s' ist ein Fehler aufgetreten:\n" #~ "%s" #~ msgid "Artistic License 1.0" #~ msgstr "Artistic License 1.0" #~ msgid "Artistic License 2.0" #~ msgstr "Artistic License 2.0" #~ msgid "Builder:" #~ msgstr "Erzeugen durch:" #~ msgid "Category:" #~ msgstr "Kategorie:" #~ msgid "Class:" #~ msgstr "Klasse:" #~ msgid "Copy of current file" #~ msgstr "Kopie der aktuellen Datei" #~ msgid "Dump" #~ msgstr "Dump" #~ msgid "Dump %INC and @INC" #~ msgstr "%INC und @INC ausgeben" #~ msgid "Dump Current Document" #~ msgstr "Aktuelles Dokument dumpen" #~ msgid "Dump Current PPI Tree" #~ msgstr "Aktuelles Dokument als PPI-Baum dumpen" #~ msgid "Dump Display Geometry" #~ msgstr "Anzeige-Geometrie ausgeben" #~ msgid "Dump Expression..." #~ msgstr "Ausdruck ausgeben..." #~ msgid "Dump Task Manager" #~ msgstr "Task-Manager dumpen" #~ msgid "Dump Top IDE Object" #~ msgstr "IDE-Top-Objekt dumpen" #~ msgid "Edit/Add Snippets" #~ msgstr "Editieren/Hinzufügen von Schnipseln" #~ msgid "Email Address:" #~ msgstr "E-Mail-Adresse:" #~ msgid "Field %s was missing. Module not created." #~ msgstr "Feld %s war nicht belegt. Modul nicht erzeugt." #~ msgid "GPL 2 or later" #~ msgstr "GPL 2 (oder spätere Version)" #~ msgid "LGPL 2.1 or later" #~ msgstr "LGPL 2.1 (oder spätere Version)" #~ msgid "License:" #~ msgstr "Lizenz:" #~ msgid "MIT License" #~ msgstr "MIT-Lizenz" #~ msgid "Module Start" #~ msgstr "Modul-Erzeugung" #~ msgid "Mozilla Public License" #~ msgstr "Mozilla Public License" #~ msgid "Name:" #~ msgstr "Name:" #~ msgid "No Perl 5 file is open" #~ msgstr "Keine Perl-5-Datei geöffnet" #~ msgid "Open Source" #~ msgstr "Open Source" #~ msgid "Open a document and copy the content of the current tab" #~ msgstr "Ein neues Dokument mit dem Inhalt des aktuellen Reiters öffnen" #~ msgid "Other Open Source" #~ msgstr "Andere Open-Source-Lizenz" #~ msgid "Other Unrestricted" #~ msgstr "Andere unbeschränkte Lizenz" #~ msgid "Parent Directory:" #~ msgstr "Übergeordnetes Verzeichnis:" #~ msgid "Perl Distribution (New)..." #~ msgstr "Perl-Distribution (neu)..." #~ msgid "Perl licensing terms" #~ msgstr "Perl-Lizenzbedingungen" #~ msgid "Pick parent directory" #~ msgstr "Übergeordnetes Verzeichnis auswählen" #~ msgid "Proprietary/Restrictive" #~ msgstr "proprietär/restriktiv" #~ msgid "Revised BSD License" #~ msgstr "3-Klausel-BSD-Lizenz" #~ msgid "Search in Types:" #~ msgstr "Suche in Dateitypen:" #~ msgid "Setup a skeleton Perl distribution" #~ msgstr "Perl-Distributionsgerüst erstellen" #~ msgid "Setup a skeleton Perl module distribution" #~ msgstr "Perl-Distributionsgerüst erstellen" #~ msgid "Snippets" #~ msgstr "Schnipsel" #~ msgid "Snippit:" #~ msgstr "Schnipsel:" #~ msgid "Special Value:" #~ msgstr "Spezieller Wert:" #~ msgid "The same as Perl itself" #~ msgstr "Wie Perl selbst" #~ msgid "Use rege&x" #~ msgstr "Verwende Rege&x" #~ msgid "Wizard Selector..." #~ msgstr "Assistenten-Auswahl..." #~ msgid "restrictive" #~ msgstr "restriktiv" #~ msgid "Mime type already had a class '%s' when %s(%s) was called" #~ msgstr "MIME-Typ hat bereits Klasse '%s' beim Aufruf von %s(%s)" #~ msgid "" #~ "Add another closing bracket if there is already one (and the " #~ "'Autocomplete brackets' above is enabled)" #~ msgstr "" #~ "Weitere schließende Klammer hinzufügen falls bereits eine vorhanden ist " #~ "(und 'Auto-Vervollständigung für Klammern' weiter oben aktiviert ist)" #~ msgid "Any changes to these options require a restart:" #~ msgstr "Jede Änderung dieser Option erfordert einen Padre-Neustart:" #~ msgid "Autocomplete new subroutines in scripts" #~ msgstr "Neue Subroutinen in Skripten automatisch vervollständigen" #~ msgid "Autoindent:" #~ msgstr "Automatisch einrücken:" #~ msgid "Browse..." #~ msgstr "Durchsuchen..." #~ msgid "Change font size" #~ msgstr "Schriftgröße ändern" #~ msgid "Check for file updates on disk every (seconds):" #~ msgstr "Prüfintervall (in Sekunden) für Dateiänderungen auf der Festplatte:" #~ msgid "Choose the default projects directory" #~ msgstr "Standard-Projektverzeichnis wählen" #~ msgid "Colored text in output window (ANSI)" #~ msgstr "Farbiger Text im Ausgabefenster (ANSI)" #~ msgid "Content type:" #~ msgstr "Dokument-Typ:" #~ msgid "Current Document: %s" #~ msgstr "Aktuelles Dokument: %s" #~ msgid "Cursor Blink Rate (milliseconds - 0 = blink off; 500 = default):" #~ msgstr "Cursor-Blinkrate (Millisekunden - 0 = aus; 500 = Voreinstellung):" #~ msgid "Diff tool:" #~ msgstr "Diff-Tool:" #~ msgid "Document name:" #~ msgstr "Dokument-Name:" #~ msgid "Edit the user preferences" #~ msgstr "Benutzereinstellungen bearbeiten" #~ msgid "Editor Current Line Background Colour:" #~ msgstr "Hintergrundfarbe der aktuellen Zeile:" #~ msgid "Editor Font:" #~ msgstr "Editor-Schriftart:" #~ msgid "Enable bookmarks" #~ msgstr "Lesezeichen aktivieren" #~ msgid "Enable session manager" #~ msgstr "Sitzungs-Manager aktivieren" #~ msgid "Enable?" #~ msgstr "Aktivieren?" #~ msgid "File type:" #~ msgstr "In Dateien/Typen:" #~ msgid "Find All" #~ msgstr "Suche alle" #~ msgid "Guess" #~ msgstr "Erraten" #~ msgid "Guess from current document:" #~ msgstr "Aus aktuellem Dokument erraten:" #~ msgid "Highlighter" #~ msgstr "Highlighter" #~ msgid "Highlighter:" #~ msgstr "Highlighter:" #~ msgid "Indentation width (in columns):" #~ msgstr "Einrückungstiefe (in Spalten):" #~ msgid "Interpreter arguments:" #~ msgstr "Interpreter-Argumente:" #~ msgid "Max. number of suggestions:" #~ msgstr "Maximale Anzahl Vorschläge:" #~ msgid "Methods order:" #~ msgstr "Methoden-Reihenfolge:" #~ msgid "Min. chars for autocompletion:" #~ msgstr "Mindest-Zeichenzahl für Autovervollständigung:" #~ msgid "Min. length of suggestions:" #~ msgstr "Mindestlänge für Vorschläge:" #~ msgid "N/A" #~ msgstr "N/A" #~ msgid "No Document" #~ msgstr "Kein Dokument" #~ msgid "Perl Auto Complete" #~ msgstr "Perl-Autocomplete" #~ msgid "Perl interpreter:" #~ msgstr "Perl-Interpreter:" #~ msgid "Preferences 2.0" #~ msgstr "Einstellungen 2.0" #~ msgid "Preferred language for error diagnostics:" #~ msgstr "Bevorzugte Sprache für Fehlermeldungen:" #~ msgid "RegExp for TODO-panel:" #~ msgstr "Regex für die TODO-Suche:" #~ msgid "Run Parameters" #~ msgstr "Ausführungs-Parameter" #~ msgid "Save settings" #~ msgstr "Einstellungen speichern" #~ msgid "Script arguments:" #~ msgstr "Skript-Argumente:" #~ msgid "Search Backwards" #~ msgstr "Suche rückwärts" #~ msgid "Settings Demo" #~ msgstr "Vorschau" #~ msgid "Show right margin at column:" #~ msgstr "Zeige rechten Rand bei Spalte:" #~ msgid "Style:" #~ msgstr "Stil:" #~ msgid "Tab display size (in spaces):" #~ msgstr "Anzeigebreite (in Leerzeichen) für Tabulatoren:" #~ msgid "Timeout (in seconds):" #~ msgstr "Timeout (in Sekunden):" #~ msgid "Unsaved" #~ msgstr "Ungesichert" #~ msgid "Use Splash Screen" #~ msgstr "Logo beim Programmstart anzeigen" #~ msgid "alphabetical" #~ msgstr "alphabetisch" #~ msgid "alphabetical_private_last" #~ msgstr "alphabetisch, private Methoden am Ende" #~ msgid "application/x-perl" #~ msgstr "application/x-perl" #~ msgid "deep" #~ msgstr "eingerückt" #~ msgid "" #~ "i.e.\n" #~ "\tinclude directory: -I\n" #~ "\tenable tainting checks: -T\n" #~ "\tenable many useful warnings: -w\n" #~ "\tenable all warnings: -W\n" #~ "\tdisable all warnings: -X\n" #~ msgstr "" #~ "d.h.\n" #~ "\t'Include'-Verzeichnis: -I\n" #~ "\taktiviere Tainting-Checks: -T\n" #~ "\taktiviere hilfreiche Warnungen: -w\n" #~ "\taktiviere alle Warnungen: -W\n" #~ "\tdeaktiviere alle Warnungen: -X\n" #~ msgid "last" #~ msgstr "wie zuletzt" #~ msgid "new" #~ msgstr "neu" #~ msgid "no" #~ msgstr "nein" #~ msgid "nothing" #~ msgstr "keine" #~ msgid "original" #~ msgstr "wie in der Datei" #~ msgid "same_level" #~ msgstr "gleiche Tiefe" #~ msgid "session" #~ msgstr "Sitzung" #~ msgid "TAB" #~ msgstr "TAB" #~ msgid "Current file's basename" #~ msgstr "Name (ohne Pfad) der aktuellen Datei" #~ msgid "Current file's dirname" #~ msgstr "Verzeichnis der aktuellen Datei" #~ msgid "Current filename" #~ msgstr "Name der aktuellen Datei" #~ msgid "Current filename relative to project" #~ msgstr "Name der aktuellen Datei relativ zum Projekt" #~ msgid "Indication if current file was modified" #~ msgstr "Indikator ob die aktuelle Datei verändert wurde" #~ msgid "Name of the current subroutine" #~ msgstr "Name der aktuellen Subroutine" #~ msgid "Padre version" #~ msgstr "Padre-Version" #~ msgid "Project name" #~ msgstr "Projektname" #~ msgid "Statusbar:" #~ msgstr "Statuszeile" #~ msgid "Window title:" #~ msgstr "Fenstertitel:" #~ msgid "" #~ "User can configure what Padre will show in the statusbar of the window." #~ msgstr "Inhalt der Statuszeile" #~ msgid "User can configure what Padre will show in the title of the window." #~ msgstr "Inhalt des Fenstertitels" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "Das Projektverzeichnis %s existiert nicht (mehr). Dies ist ein kritischer " #~ "Fehler der mit ziemlicher Sicherheit zu Problemen führen wird. Bitte " #~ "speichern Sie das aktuelle Dokument unter einem anderen Namen oder " #~ "schließen es." #~ msgid "Automatic Bracket Completion" #~ msgstr "Automatische Klammer-Ergänzung" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "Klammern automatisch ergänzen" #~ msgid "Find &Text:" #~ msgstr "Text suchen:" #~ msgid "Not a valid search" #~ msgstr "Keine gültige Suchanfrage" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Abstürzende Hintergrund-Funktion simulieren" #~ msgid "Quick Find" #~ msgstr "Schnell suchen" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "Alle Treffer anzeigen" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "Ausführungsfehler eines Skriptes anzeigen" #~ msgid "No diagnostics available for this error." #~ msgstr "Keine Diagnose-Informationen zu diesem Fehler verfügbar" #~ msgid "Diagnostics" #~ msgstr "Diagnose" #~ msgid "Errors" #~ msgstr "Fehler" #~ msgid "Info" #~ msgstr "Info" #~ msgid "File Wizard..." #~ msgstr "Datei-Assistent" #~ msgid "Create a new document from the file wizard" #~ msgstr "Neues Dokument mit Hilfe des Datei-Assistenten erstellen" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "" #~ "Den Verzeichnisbaum (komplett oder für das aktuelle Projekt) anzeigen" #~ msgid "Search in Files/Types:" #~ msgstr "Suche in Dateien/Typen:" #~ msgid "Case &Insensitive" #~ msgstr "&Ignoriere Groß-/Kleinschreibung" #~ msgid "I&gnore hidden subdirectories" #~ msgstr "I&gnoriere versteckte Unterverzeichnisse" #~ msgid "Show only files that don't match" #~ msgstr "Nur Dateien zeigen die nicht übereinstimmen" #~ msgid "Found %d files and %d matches\n" #~ msgstr "%d Dateien und %d Treffer gefunden\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "'%s' fehlt in Datei '%s'\n" #~ msgid "???" #~ msgstr "???" #~ msgid "FindInFiles" #~ msgstr "In Dateien suchen" #~ msgid "..." #~ msgstr "..." #~ msgid "Pick &directory" #~ msgstr "&Verzeichnis wählen" #~ msgid "Key binding name" #~ msgstr "Name der Tastenkombination" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "Kann %s nicht öffnen: Überschreitet das Dateigrößen-Limit von Padre von " #~ "derzeit %s" #~ msgid "Line No" #~ msgstr "Zeilennummer" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s Worker-Threads sind aktiv.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "Derzeit laufen keine Hintergrund-Funktionen.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "Folgende Funktionen laufen derzeit im Hintergrund:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s vom Typ '%s':\n" #~ " (in Thread(s) %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "Zusätzlich warten %s Funktionen auf ihre Ausführung.\n" #~ msgid "Term:" #~ msgstr "Term:" #~ msgid "Dir:" #~ msgstr "Verzeichnis:" #~ msgid "Choose a directory" #~ msgstr "Verzeichnis wählen" #~ msgid "Please choose a different name." #~ msgstr "Bitte einen anderen Namen wählen." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "" #~ "Es existiert bereits eine Datei mit diesem Namen in diesem Verzeichnis" #~ msgid "Move here" #~ msgstr "Verschieben" #~ msgid "Copy here" #~ msgstr "Hier kopieren" #~ msgid "folder" #~ msgstr "Verzeichnis" #~ msgid "Rename / Move" #~ msgstr "Umbenennen/Verschieben" #~ msgid "Move to trash" #~ msgstr "In den Mülleimer verschieben" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "Soll dieses Objekt unwiederbringbar gelöscht werden?" #~ msgid "Show hidden files" #~ msgstr "Versteckte Dateien zeigen" #~ msgid "Skip hidden files" #~ msgstr "Versteckte Dateien ignorieren" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "CSV/.svn/.git/blib-Verzeichnisse überspringen" #~ msgid "Tree listing" #~ msgstr "Baumansicht" #~ msgid "Change listing mode view" #~ msgstr "Listenansicht ändern" #~ msgid "Switch menus to %s" #~ msgstr "Menü zu %s wechseln" #~ msgid "Convert EOL" #~ msgstr "Zeilenumbrüche konvertieren" #~ msgid "GoTo Bookmark" #~ msgstr "Gehe zu Lesezeichen" #~ msgid "Finished Searching" #~ msgstr "Suche abgeschlossen." #~ msgid "Error List" #~ msgstr "Fehlerliste" #~ msgid "Lexically Rename Variable" #~ msgstr "Variable lexikalisch umbenennen" #~ msgid "Open In File Browser" #~ msgstr "Im Dateibrowser öffnen" #~ msgid "'%s' does not look like a variable" #~ msgstr "'%s' sieht nicht wie eine Variable aus." #~ msgid "Show the about-Padre information" #~ msgstr "Informationsseite zu Padre und den Entwicklern anzeigen." #~ msgid "" #~ "Ask the user for a line number or a character position and jump there" #~ msgstr "" #~ "Benutzer nach einer Zeilennummer oder Zeichenposition fragen und dorthin " #~ "springen" #~ msgid "Show as hexa" #~ msgstr "Als Hex zeigen" #~ msgid "" #~ "Show the ASCII values of the selected text in hexa in the output window" #~ msgstr "Hexadezimaldarstellung des aktuell ausgewählten Textes anzeigen" #~ msgid "Save &As" #~ msgstr "Speichern &unter..." #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "%s wurde offenbar erstellt. Jetzt öffnen?" #~ msgid "Close..." #~ msgstr "Schließen" #~ msgid "Reload..." #~ msgstr "Erneut laden..." #~ msgid "Timeout:" #~ msgstr "Timeout:" #~ msgid "Insert Special Value" #~ msgstr "Speziellen Wert einfügen" #~ msgid "Insert From File..." #~ msgstr "Einfügen aus Datei..." #~ msgid "Bytes" #~ msgstr "Byte" #~ msgid "(File not saved)" #~ msgstr "(Datei nicht gespeichert)" #~ msgid "New Subroutine Name" #~ msgstr "Name der neuen Sub" #~ msgid "(Document not on disk)" #~ msgstr "(Dokument nicht gespeichert)" #~ msgid "Lines: %d" #~ msgstr "Zeilen: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Zeichen exkl. Leerzeichen: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Zeichen inkl. Leerzeichen: %d" #~ msgid "Size on disk: %s" #~ msgstr "Dateigröße: %s" #~ msgid "File is read-only.\n" #~ msgstr "Datei ist schreibgeschützt.\n" #~ msgid "Skip feedback" #~ msgstr "Feedback überspringen" #~ msgid "Yesterday" #~ msgstr "Gestern" #~ msgid "Tomorrow" #~ msgstr "Morgen" #~ msgid "Number" #~ msgstr "Zahl" #~ msgid "Norwegian (Norway)" #~ msgstr "Norwegisch (Norwegen)" #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "" #~ "Diese Datei wurde von der Festplatte gelöscht, soll das Editorfenster " #~ "geleert werden?" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "" #~ "Datei im Dateisystem seit letztem Speichern verändert. Erneut laden?" #~ msgid "Pl&ugins" #~ msgstr "Pl&ugins" #~ msgid "Refac&tor" #~ msgstr "Refa&ctor" #~ msgid "Regex editor" #~ msgstr "Regex-Editor" #~ msgid "Close some Files" #~ msgstr "Einige Dateien schließen" #~ msgid "Select all\tCtrl-A" #~ msgstr "Alles auswählen\tStrg+A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Kopieren\tStrg+C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "&Ausschneiden\tStrg+X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "&Einfügen\tStrg+V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "Kommen&tierung umschalten\tStrg+Umschalt+C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "Ausgewählte Zeilen: &Auskommentieren\tStrg+M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "Ausgewählte Zeilen: Kommentar &entfernen\tStrg+Umschalt+M" #~ msgid "Error while calling help_render: " #~ msgstr "Fehler beim Aufruf von help_render:" #~ msgid "Error while calling get_help_provider: " #~ msgstr "Fehler beim Aufruf von get_help_provider:" #~ msgid "Start Debugger (Debug::Client)" #~ msgstr "Debugger starten (Debug::Client)" #~ msgid "Run the current document through the Debug::Client." #~ msgstr "Aktuelles Dokument mit Debug::Client ausführen." #~ msgid "Enable logging" #~ msgstr "Logging aktivieren" #~ msgid "Disable logging" #~ msgstr "Logging deaktivieren" #~ msgid "Enable trace when logging" #~ msgstr "Trace beim Logging aktivieren" #~ msgid "&Count All" #~ msgstr "&Alle zählen" #~ msgid "Found %d matching occurrences" #~ msgstr "%d Treffer gefunden" #~ msgid "Dump PPI Document" #~ msgstr "PPI-Dokument dumpen" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "&Split window" #~ msgstr "Fenster &aufteilen" #~ msgid "&Close\tCtrl+W" #~ msgstr "S&chließen\tStrg+W" #~ msgid "&Open\tCtrl+O" #~ msgstr "Öffnen...\tStrg+O" #~ msgid "E&xit\tCtrl+X" #~ msgstr "&Beenden\tStrg+X" #~ msgid "GoTo Subs Window" #~ msgstr "Funktionen-Bereich" #~ msgid "&Use Regex" #~ msgstr "Verwende Rege&x" #~ msgid "Close Window on &hit" #~ msgstr "Fenster schließen bei &Treffer" #~ msgid "%s occurences were replaced" #~ msgstr "%s Vorkommen wurden ersetzt" #~ msgid "Nothing to replace" #~ msgstr "Nichts zum Ersetzen gefunden!" #~ msgid "Cannot build regex for '%s'" #~ msgstr "Kann Regex für %s nicht erstellen" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Teste ein Plugin aus lokalem Verzeichnis" #~ msgid "Install Module..." #~ msgstr "Installiere Modul..." #~ msgid "Perl 6 Help (Powered by grok)" #~ msgstr "Perl-6-Hilfe (Powered by grok)" #~ msgid " item(s) found" #~ msgstr " Elemente gefunden" #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "Plugin:%s - Modul konnte nicht geladen werden: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "Plugin:%s - Nicht kompatibel mit Padre::Plugin API. Muss eine Unterklasse " #~ "von Padre::Plugin sein" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "Plugin:%s - Konnte Plugin-Objekt nicht instantiieren: Der Konstruktor " #~ "gibt kein Objekt des Typs Padre::Plugin zurück" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "Plugin:%s - Bietet keine Menüs" #~ msgid "Sub List" #~ msgstr "Funktionen" #~ msgid "L:" #~ msgstr "Z:" #~ msgid "Ch:" #~ msgstr "Sp:" #~ msgid "Workspace View" #~ msgstr "Arbeitsbereich" #~ msgid "Save File" #~ msgstr "Datei speichern" #~ msgid "Undo" #~ msgstr "Rückgängig" #~ msgid "Redo" #~ msgstr "Wiederherstellen" #~ msgid "Text to find:" #~ msgstr "Zu suchender Text:" #~ msgid "&Find\tCtrl-F" #~ msgstr "&Finde\tStrg+F" #~ msgid "Replace\tCtrl-R" #~ msgstr "Ersetze\tStrg+R" #~ msgid "Find Next\tF4" #~ msgstr "Finde nächste\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "Finde vorhergehende\tUmschalt-F4" #~ msgid "&New\tCtrl-N" #~ msgstr "&Neu\tStrg+N" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "Auswahl öffnen\tStrg+Umschalt+O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "Öffne Sitzung...\tStrg+Umschalt+O" #~ msgid "Close All but Current" #~ msgstr "Alle schließen außer dem aktiven Dokument" #~ msgid "&Save\tCtrl-S" #~ msgstr "&Speichern\tStrg+S" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "Sitzung speichern...\tStrg+Alt+S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "&Beenden\tStrg+Q" #~ msgid "Stop\tF6" #~ msgstr "Stop\tF6" #~ msgid "Disable Experimental Mode" #~ msgstr "Experimentellen Modus abschalten" #~ msgid "Refresh Counter: " #~ msgstr "Aktualisierungs-Zähler: " #~ msgid "All available plugins on CPAN" #~ msgstr "Alle im CPAN verfügbaren Plugins" #~ msgid "&Goto\tCtrl-G" #~ msgstr "&Gehe zu\tStrg+G" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "Schnipsel\tStrg+Umschalt+A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "Alles in Großbuchstaben\tStrg+Umschalt+U" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "Nächste Datei\tStrg+TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "Vorherige Datei\tStrg+Umschalt+TAB" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "Setze Lesezeichen\tStrg+B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "Gehe zu Lesezeichen\tStrg+Umschalt+B" #~ msgid "alt" #~ msgstr "alt" Padre-1.00/share/locale/no.po0000644000175000017500000012525011441741543014467 0ustar petepete# Norwegian translations for PACKAGE package. # Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # root , 2009. # msgid "" msgstr "" "Project-Id-Version: 0.69\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-04-18 13:27+0200\n" "PO-Revision-Date: 2009-04-18 13:34+0200\n" "Last-Translator: KJETIL \n" "Language-Team: Norwegian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Padre/PluginHandle.pm:71 lib/Padre/Wx/Dialog/PluginManager.pm:468 msgid "error" msgstr "feil" #: lib/Padre/PluginHandle.pm:72 msgid "unloaded" msgstr "ulastet" #: lib/Padre/PluginHandle.pm:73 msgid "loaded" msgstr "lastet" #: lib/Padre/PluginHandle.pm:74 lib/Padre/Wx/Dialog/PluginManager.pm:478 msgid "incompatible" msgstr "ukompatibel" #: lib/Padre/PluginHandle.pm:75 lib/Padre/Wx/Dialog/PluginManager.pm:502 msgid "disabled" msgstr "deaktivet" #: lib/Padre/PluginHandle.pm:76 lib/Padre/Wx/Dialog/PluginManager.pm:492 msgid "enabled" msgstr "aktivert" #: lib/Padre/PluginHandle.pm:171 #, perl-format msgid "Failed to enable plugin '%s': %s" msgstr "Feilet i å aktivere plugin '%s': %s" #: Lib/Padre/PluginHandle.pm:225 #, perl-format msgid "Failed to disable plugin '%s': %s" msgstr "Feilet i å deaktivere plugin '%s': %s" #: lib/Padre/PluginManager.pm:331 msgid "" "We found several new plugins.\n" "In order to configure and enable them go to\n" "Plugins -> Plugin Manager\n" "\n" "List of new plugins:\n" "\n" msgstr "" "Vi fant flere nye plugin-er.\n" "For å konfigurere og aktivere de, gå til\n" "Plugins -> Plugin Manager\n" "\n" "Liste av nye plugin-er:\n" "\n" #: lib/Padre/PluginManager.pm:341 msgid "New plugins detected" msgstr "Nye plugin-er detektert" #: lib/Padre/PluginManager.pm:461 #, perl-format msgid "Plugin:%s - Failed to load module: %s" msgstr "Plugin:%s - Feilet i å laste modul: %s" #: lib/Padre/PluginManager.pm:475 #, perl-format msgid "" "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " "Padre::Plugin" msgstr "" "Plugin:%s - Ikke kompatibel med Padre::Plugin API. Må være subklasse av " "Padre::Plugin" #: lib/Padre/PluginManager.pm:489 #, perl-format msgid "" "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " "instantiated" msgstr "" "Plugin:%s - Ikke kompatibel med Padre::Plugin API. Plugin kan ikke være " "instansiert" #: lib/Padre/PluginManager.pm:503 #, perl-format msgid "" "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " "padre_interfaces" msgstr "" "Plugin:%s - Ikke kompatibel med Padre::Plugin API. Trenger å ha sub " "padre_interfaces" #: lib/Padre/PluginManager.pm:517 #, perl-format msgid "Plugin:%s - Could not instantiate plugin object" msgstr "Plugin:%s - Kunne ikke instansiere plugin-objekt" #: lib/Padre/PluginManager.pm:529 #, perl-format msgid "" "Plugin:%s - Could not instantiate plugin object: the constructor does not " "return a Padre::Plugin object" msgstr "" "Plugin:%s - Kunne ikke instansiere plugin objekt: constructor-en " "returnerer ikke et Padre::Plugin-objekt" #: lib/Padre/PluginManager.pm:549 #, perl-format msgid "Plugin:%s - Does not have menus" msgstr "Plugin:%s - Har ikke menyer" #: lib/Padre/PluginManager.pm:768 msgid "Error when calling menu for plugin" msgstr "Feil ved fremkalling av meny for plugin" #: lib/Padre/PluginManager.pm:797 lib/Padre/Wx/Main.pm:1393 msgid "No document open" msgstr "Ingen dokumenter er åpne" #: lib/Padre/PluginManager.pm:799 lib/Padre/Wx/Main.pm:3458 msgid "No filename" msgstr "Ingen filnavn" #: lib/Padre/PluginManager.pm:803 msgid "Could not locate project dir" msgstr "Kunne ikke finne prosjektmappen" #: lib/Padre/PluginManager.pm:820 lib/Padre/PluginManager.pm:917 #, perl-format msgid "" "Failed to load the plugin '%s'\n" "%s" msgstr "" "Feilet i å laste plugin '%s'\n" "%s" #: lib/Padre/PluginManager.pm:871 lib/Padre/Wx/Main.pm:2370 #: lib/Padre/Wx/Main.pm:3152 msgid "Open file" msgstr "Åpne fil" #: lib/Padre/PluginManager.pm:891 #, perl-format msgid "Plugin must have '%s' as base directory" msgstr "Plugin må ha '%s' som basismappe" #: lib/Padre/Locale.pm:72 msgid "English (United Kingdom)" msgstr "Engelsk (UK)" #: lib/Padre/Locale.pm:111 msgid "English (Australian)" msgstr "Engelsk (Australia)" #: lib/Padre/Locale.pm:129 msgid "Unknown" msgstr "Ukjent" #: lib/Padre/Locale.pm:143 msgid "Arabic" msgstr "Arabisk" #: lib/Padre/Locale.pm:153 msgid "Czech" msgstr "Tjekkisk" #: lib/Padre/Locale.pm:163 msgid "German" msgstr "Tysk" #: lib/Padre/Locale.pm:173 msgid "English" msgstr "Engelsk" #: lib/Padre/Locale.pm:182 msgid "English (Canada)" msgstr "Engelsk (Kanada)" #: lib/Padre/Locale.pm:191 msgid "English (New Zealand)" msgstr "Engelsk (Ny Zealand)" #: lib/Padre/Locale.pm:202 msgid "English (United States)" msgstr "Engelsk (USA)" #: lib/Padre/Locale.pm:211 msgid "Spanish (Argentina)" msgstr "Spansk (Argentina)" #: lib/Padre/Locale.pm:224 msgid "Spanish" msgstr "Spansk" #: lib/Padre/Locale.pm:234 msgid "French (France)" msgstr "Fransk (Frankrike)" #: lib/Padre/Locale.pm:247 msgid "French" msgstr "Fransk" #: lib/Padre/Locale.pm:257 msgid "Hebrew" msgstr "Hebraisk" #: lib/Padre/Locale.pm:267 msgid "Hungarian" msgstr "Ungarsk" #: lib/Padre/Locale.pm:281 msgid "Italian" msgstr "Italiensk" #: lib/Padre/Locale.pm:291 msgid "Japanese" msgstr "Japansk" #: lib/Padre/Locale.pm:301 msgid "Korean" msgstr "Koreansk" #: lib/Padre/Locale.pm:315 msgid "Dutch" msgstr "Nederlandsk" #: lib/Padre/Locale.pm:325 msgid "Dutch (Belgium)" msgstr "Nederlandsk (Belgia)" #: lib/Padre/Locale.pm:334 msgid "Polish" msgstr "Polsk" #: lib/Padre/Locale.pm:344 msgid "Portuguese (Brazil)" msgstr "Portugisisk (Brasil)" #: lib/Padre/Locale.pm:354 msgid "Portuguese (Portugal)" msgstr "Portugisisk (Portugal)" #: lib/Padre/Locale.pm:363 msgid "Russian" msgstr "Russisk" #: lib/Padre/Locale.pm:373 msgid "Chinese" msgstr "Kinesisk" #: lib/Padre/Locale.pm:383 msgid "Chinese (Simplified)" msgstr "Kinesisk (forenklet)" #: lib/Padre/Locale.pm:393 msgid "Chinese (Traditional)" msgstr "Kinesisk (tradisjonell)" #: lib/Padre/Locale.pm:406 msgid "Klingon" msgstr "Klingon (Ytre Verdensrom)" #: lib/Padre/TaskManager.pm:533 #, perl-format msgid "%s worker threads are running.\n" msgstr "%s arbeidstråder kjører\n" #: Lib/Padre/TaskManager.pm:536 msgid "Currently, no background tasks are being executed.\n" msgstr "Ingen bakgrunnstråder kjører nå.\n" #: lib/Padre/TaskManager.pm:542 msgid "The following tasks are currently executing in the background:\n" msgstr "Følgende oppgaver kjører i bakgrunnen:\n" #: lib/Padre/TaskManager.pm:548 #, perl-format msgid "" "- %s of type '%s':\n" " (in thread(s) %s)\n" msgstr "" "- %s av type '%s':\n" " (i tråd(er) %s)\n" #: lib/Padre/TaskManager.pm:560 #, perl-format msgid "" "\n" "Additionally, there are %s tasks pending execution.\n" msgstr "" "\n" "I tillegg venter %s oppgaver på å kjøre.\n" #: lib/Padre/Document.pm:675 #, perl-format msgid "Unsaved %d" msgstr "Ikke-lagret %d" #: lib/Padre/Document.pm:944 lib/Padre/Document.pm:945 msgid "Skipped for large files" msgstr "Hoppet over for store filer" #: lib/Padre/Plugin/Perl5.pm:39 msgid "Install Module..." msgstr "Installerer modul..." #: lib/Padre/Plugin/Perl5.pm:40 msgid "Install CPAN Module" msgstr "Installere CPAN-modul" #: lib/Padre/Plugin/Perl5.pm:42 msgid "Install Local Distribution" msgstr "Installere lokal distribusjon" #: lib/Padre/Plugin/Perl5.pm:43 msgid "Install Remote Distribution" msgstr "Installere fjern-distribusjon" #: lib/Padre/Plugin/Perl5.pm:45 msgid "Open CPAN Config File" msgstr "Åpne CPAN Config-fil" #: lib/Padre/Plugin/Perl5.pm:96 msgid "Failed to find your CPAN configuration" msgstr "Feilet i å finne din CPAN-kofigurasjon" #: lib/Padre/Plugin/Perl5.pm:106 msgid "Select distribution to install" msgstr "Velg distribusjon å installere" #: lib/Padre/Plugin/Perl5.pm:119 lib/Padre/Plugin/Perl5.pm:144 msgid "Did not provide a distribution" msgstr "Ikke oppgitt distribusjon" #: lib/Padre/Plugin/Perl5.pm:134 msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Oppgi URL å installere\n" "f.eks. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Plugin/Perl5.pm:164 msgid "pip is unexpectedly not installed" msgstr "pip is uforventet ikke installert" #: lib/Padre/Plugin/Devel.pm:21 msgid "Padre Developer Tools" msgstr "Padre utviklerverktøy" #: lib/Padre/Plugin/Devel.pm:55 msgid "Run Document inside Padre" msgstr "Kjør dokument inni Padre" #: lib/Padre/Plugin/Devel.pm:57 msgid "Dump Current Document" msgstr "Dump nåværende dokument" #: lib/Padre/Plugin/Devel.pm:58 msgid "Dump Top IDE Object" msgstr "Dump topp-IDE-objekt" #: lib/Padre/Plugin/Devel.pm:59 msgid "Dump %INC and @INC" msgstr "Dump %INC og @INC" #: lib/Padre/Plugin/Devel.pm:65 msgid "Enable logging" msgstr "Aktiver logging" #: lib/Padre/Plugin/Devel.pm:66 msgid "Disable logging" msgstr "Deaktiver logging" #: lib/Padre/Plugin/Devel.pm:67 msgid "Enable trace when logging" msgstr "Aktiver sporing i logging" #: lib/Padre/Plugin/Devel.pm:68 msgid "Disable trace" msgstr "Deaktiver sporing" #: lib/Padre/Plugin/Devel.pm:70 msgid "Simulate Crash" msgstr "Simuler krasj" #: lib/Padre/Plugin/Devel.pm:71 msgid "Simulate Crashing Bg Task" msgstr "Simuler krasj i bakgrunnsoppgave" #: lib/Padre/Plugin/Devel.pm:73 msgid "wxWidgets 2.8.8 Reference" msgstr "wxWidgets 2.8.8. Referanse" #: lib/Padre/Plugin/Devel.pm:76 msgid "STC Reference" msgstr "STC Referanse" #: lib/Padre/Plugin/Devel.pm:80 lib/Padre/Plugin/PopularityContest.pm:105 msgid "About" msgstr "Om" #: lib/Padre/Plugin/Devel.pm:119 msgid "No file is open" msgstr "Ingen filer er åpne" #: lib/Padre/Plugin/Devel.pm:149 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Et sett av ikke-beslektede verktøy brukt av Padre-utviklere\n" #: lib/Padre/Plugin/Devel.pm:162 lib/Padre/Wx/Main.pm:3260 #, perl-format msgid "Error: %s" msgstr "Feil: %s" #: lib/Padre/Wx/Output.pm:54 msgid "Output" msgstr "Output" #: lib/Padre/Wx/Outline.pm:58 lib/Padre/Task/Outline/Perl.pm:146 msgid "Outline" msgstr "Omriss" #: lib/Padre/Wx/Directory.pm:52 lib/Padre/Wx/Directory.pm:143 msgid "Directory" msgstr "Mappe" #: lib/Padre/Wx/Directory.pm:170 lib/Padre/Wx/ToolBar.pm:49 msgid "Open File" msgstr "Åpne fil" #: lib/Padre/Wx/Directory.pm:182 lib/Padre/Task/Outline/Perl.pm:192 msgid "Open &Documentation" msgstr "Åpne &Dokumentasjon" #: lib/Padre/Wx/Syntax.pm:66 msgid "Syntax Check" msgstr "Syntakssjekk" #: lib/Padre/Wx/Syntax.pm:92 lib/Padre/Wx/Syntax.pm:254 msgid "Line" msgstr "Linje" #: lib/Padre/Wx/Syntax.pm:96 lib/Padre/Wx/Syntax.pm:97 #: lib/Padre/Task/SyntaxChecker.pm:179 msgid "Warning" msgstr "Advarsel" #: lib/Padre/Wx/Syntax.pm:96 lib/Padre/Wx/Syntax.pm:99 #: lib/Padre/Wx/Main.pm:1478 lib/Padre/Wx/Main.pm:1730 #: lib/Padre/Wx/Main.pm:2563 lib/Padre/Wx/Dialog/PluginManager.pm:358 #: lib/Padre/Task/SyntaxChecker.pm:179 msgid "Error" msgstr "Feil" #: lib/Padre/Wx/Syntax.pm:255 msgid "Type" msgstr "Type" #: lib/Padre/Wx/Syntax.pm:256 lib/Padre/Wx/Dialog/SessionManager.pm:211 msgid "Description" msgstr "Beskrivelse" #: lib/Padre/Wx/ErrorList.pm:91 msgid "Error List" msgstr "Feilliste" #: lib/Padre/Wx/ErrorList.pm:126 msgid "No diagnostics available for this error!" msgstr "Ingen diagnose tilgjengelig for denne feilen!" #: lib/Padre/Wx/ErrorList.pm:135 msgid "Diagnostics" msgstr "Diagnose" #: lib/Padre/Wx/Ack.pm:82 msgid "Term:" msgstr "Term:" #: lib/Padre/Wx/Ack.pm:86 msgid "Dir:" msgstr "Dir:" #: lib/Padre/Wx/Ack.pm:88 msgid "Pick &directory" msgstr "Velg &directory" #: lib/Padre/Wx/Ack.pm:90 msgid "In Files/Types:" msgstr "I Filer/Typer:" #: lib/Padre/Wx/Ack.pm:96 lib/Padre/Wx/Dialog/Find.pm:137 msgid "Case &Insensitive" msgstr "Case &Insensitive" #: lib/Padre/Wx/Ack.pm:102 msgid "I&gnore hidden Subdirectories" msgstr "I&gnorer skjulte undermapper" #: lib/Padre/Wx/Ack.pm:118 msgid "Find in Files" msgstr "Finn i filer" #: lib/Padre/Wx/Ack.pm:147 msgid "Select directory" msgstr "Velg mappe" #: lib/Padre/Wx/Ack.pm:281 lib/Padre/Wx/Ack.pm:305 msgid "Ack" msgstr "Ack" #: lib/Padre/Wx/Editor.pm:709 lib/Padre/Wx/Menu/Edit.pm:66 msgid "Select all\tCtrl-A" msgstr "Velg alle\tCtrl-A" #: lib/Padre/Wx/Editor.pm:720 lib/Padre/Wx/Menu/Edit.pm:110 msgid "&Copy\tCtrl-C" msgstr "&Copy\tCtrl-C" #: lib/Padre/Wx/Editor.pm:732 lib/Padre/Wx/Menu/Edit.pm:122 msgid "Cu&t\tCtrl-X" msgstr "Cu&t-Ctrl-X" #: lib/Padre/Wx/Editor.pm:744 lib/Padre/Wx/Menu/Edit.pm:134 msgid "&Paste\tCtrl-V" msgstr "&Paste\tCtrl-V" #: lib/Padre/Wx/Editor.pm:761 lib/Padre/Wx/Menu/Edit.pm:205 msgid "&Toggle Comment\tCtrl-Shift-C" msgstr "Kommen&Tar av/på\tCtrl-Shift-C" #: lib/Padre/Wx/Editor.pm:766 lib/Padre/Wx/Menu/Edit.pm:215 msgid "&Comment Selected Lines\tCtrl-M" msgstr "&Commenter valgte linjer\tCtrl-M" #: lib/Padre/Wx/Editor.pm:771 lib/Padre/Wx/Menu/Edit.pm:225 msgid "&Uncomment Selected Lines\tCtrl-Shift-M" msgstr "&Ukommenter valgte linjer\tCtrl-Shift-M" #: lib/Padre/Wx/Editor.pm:789 msgid "Fold all" msgstr "Fold alle" #: lib/Padre/Wx/Editor.pm:796 msgid "Unfold all" msgstr "Avfold alle" #: lib/Padre/Wx/Editor.pm:809 lib/Padre/Wx/Menu/Window.pm:34 msgid "&Split window" msgstr "&Split vindu" #: lib/Padre/Wx/Editor.pm:1149 msgid "You must select a range of lines" msgstr "Du må oppgi et strekk av linjer" #: lib/Padre/Wx/Editor.pm:1165 msgid "First character of selection must be a non-word character to align" msgstr "Første tegn i seleksjonen må være en ikke-bokstav for å rettstille (align)" #: lib/Padre/Wx/FunctionList.pm:71 msgid "Sub List" msgstr "Sub Liste" #: lib/Padre/Wx/Bottom.pm:42 msgid "Output View" msgstr "Skriv ut view" #: lib/Padre/Wx/Notebook.pm:31 msgid "Files" msgstr "Filer" #: lib/Padre/Wx/Menubar.pm:72 msgid "&File" msgstr "&fil" #: lib/Padre/Wx/Menubar.pm:73 lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Edit" msgstr "&Edit" #: lib/Padre/Wx/Menubar.pm:74 msgid "&Search" msgstr "&Søk" #: lib/Padre/Wx/Menubar.pm:75 msgid "&View" msgstr "&Vis" #: lib/Padre/Wx/Menubar.pm:76 msgid "&Run" msgstr "Kjø&R" #: lib/Padre/Wx/Menubar.pm:77 msgid "Pl&ugins" msgstr "Pl&ugin-er" #: lib/Padre/Wx/Menubar.pm:78 msgid "&Window" msgstr "&Window" #: lib/Padre/Wx/Menubar.pm:79 msgid "&Help" msgstr "&Hjelp" #: lib/Padre/Wx/Menubar.pm:96 msgid "E&xperimental" msgstr "E&xperimentelt" #: lib/Padre/Wx/Menubar.pm:119 lib/Padre/Wx/Menubar.pm:159 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Right.pm:42 msgid "Workspace View" msgstr "Arbeidsplassvisning" #: lib/Padre/Wx/ToolBar.pm:41 msgid "New File" msgstr "Ny fil" #: lib/Padre/Wx/ToolBar.pm:54 msgid "Save File" msgstr "Lagre fil" #: lib/Padre/Wx/ToolBar.pm:59 msgid "Close File" msgstr "Lukk fil" #: lib/Padre/Wx/ToolBar.pm:71 msgid "Undo" msgstr "Angre" #: lib/Padre/Wx/ToolBar.pm:77 msgid "Redo" msgstr "Gjenta" #: lib/Padre/Wx/ToolBar.pm:86 msgid "Cut" msgstr "Kutt" #: lib/Padre/Wx/ToolBar.pm:99 msgid "Copy" msgstr "Kopier" #: lib/Padre/Wx/ToolBar.pm:112 msgid "Paste" msgstr "Lim inn" #: lib/Padre/Wx/ToolBar.pm:126 msgid "Select all" msgstr "Velg alle" #: lib/Padre/Wx/ToolBar.pm:151 lib/Padre/Wx/ToolBar.pm:201 msgid "Background Tasks are idle" msgstr "Bakgrunnsjobber hviler" #: lib/Padre/Wx/ToolBar.pm:211 msgid "Background Tasks are running" msgstr "Bakgrunnsjobber kjører" #: lib/Padre/Wx/ToolBar.pm:221 msgid "Background Tasks are running with high load" msgstr "Bakgrunnsjobber kjører med høy last" #: lib/Padre/Wx/Main.pm:391 #, perl-format msgid "No such session %s" msgstr "Ingen sesjon %s" #: lib/Padre/Wx/Main.pm:569 msgid "Failed to create server" msgstr "Feilet i å lage server" #: lib/Padre/Wx/Main.pm:1366 msgid "Command line" msgstr "Kommandolinje" #: lib/Padre/Wx/Main.pm:1367 msgid "Run setup" msgstr "Kjør oppsett" #: lib/Padre/Wx/Main.pm:1397 msgid "Current document has no filename" msgstr "Nåværende dokument har ingen filnavn" #: lib/Padre/Wx/Main.pm:1400 msgid "Could not find project root" msgstr "Kunne ikke finne prosjektrot" #: lib/Padre/Wx/Main.pm:1477 #, perl-format msgid "Failed to start '%s' command" msgstr "Feilet i å starte kommando '%s'" #: lib/Padre/Wx/Main.pm:1502 msgid "No open document" msgstr "Ingen åpne dokument" #: lib/Padre/Wx/Main.pm:1519 msgid "No execution mode was defined for this document" msgstr "Ingen kjøremodus var definert for dette dokumentet" #: lib/Padre/Wx/Main.pm:1550 msgid "Not a Perl document" msgstr "Ikke et Perl-dokument" #: lib/Padre/Wx/Main.pm:1716 msgid "Message" msgstr "Melding" #: lib/Padre/Wx/Main.pm:1912 msgid "Autocompletions error" msgstr "Autokompleteringsfeil" #: lib/Padre/Wx/Main.pm:1931 msgid "Line number:" msgstr "Linjenummer:" #: lib/Padre/Wx/Main.pm:2163 #, perl-format msgid "" "Cannot open %s as it is over the arbitrary file size limit of Padre which is " "currently %s" msgstr "" "Kan ikke åpne %s ettersom den er større en Padre's tilfeldig grense " "på %s" #: lib/Padre/Wx/Main.pm:2261 msgid "Nothing selected. Enter what should be opened:" msgstr "Ingenting valgt. Oppgi det som skulle vært åpnet" #: lib/Padre/Wx/Main.pm:2262 msgid "Open selection" msgstr "Åpne valg" #: lib/Padre/Wx/Main.pm:2326 #, perl-format msgid "Could not find file '%s'" msgstr "Fant ikke fil '%s'" #: lib/Padre/Wx/Main.pm:2327 msgid "Open Selection" msgstr "Åpne valg" #: lib/Padre/Wx/Main.pm:2411 lib/Padre/Wx/Main.pm:3615 #, perl-format msgid "Could not reload file: %s" msgstr "Kunne ikke relaste fil: %s" #: lib/Padre/Wx/Main.pm:2437 msgid "Save file as..." msgstr "Lagre som..." #: lib/Padre/Wx/Main.pm:2451 msgid "File already exists. Overwrite it?" msgstr "Filen finnes allerede. Overskrive den?" #: lib/Padre/Wx/Main.pm:2452 msgid "Exist" msgstr "Eksistere" #: lib/Padre/Wx/Main.pm:2552 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Filen er endret på disken siden siste lagring. Vil du overskrive den?" #: lib/Padre/Wx/Main.pm:2553 lib/Padre/Wx/Main.pm:3608 msgid "File not in sync" msgstr "Filen er ute av sync" #: lib/Padre/Wx/Main.pm:2562 msgid "Could not save file: " msgstr "Kunne ikke lagre fil: " #: lib/Padre/Wx/Main.pm:2624 msgid "File changed. Do you want to save it?" msgstr "Filen er endret. Vil du lagre den?" #: lib/Padre/Wx/Main.pm:2625 msgid "Unsaved File" msgstr "Ulagret fil" #: lib/Padre/Wx/Main.pm:2787 msgid "Cannot diff if file was never saved" msgstr "Kan ikke kjøre diff hvis filen aldri er lagret" #: lib/Padre/Wx/Main.pm:2793 msgid "There are no differences\n" msgstr "Det er ingen differanse\n" #: lib/Padre/Wx/Main.pm:3261 msgid "Internal error" msgstr "Intern feil" #: lib/Padre/Wx/Main.pm:3449 #, perl-format msgid "Words: %s" msgstr "Ord: %s" #: lib/Padre/Wx/Main.pm:3450 #, perl-format msgid "Lines: %d" msgstr "Linjer: %d" #: lib/Padre/Wx/Main.pm:3451 #, perl-format msgid "Chars without spaces: %s" msgstr "Tegn utenom mellomrom: %s" #: lib/Padre/Wx/Main.pm:3452 #, perl-format msgid "Chars with spaces: %d" msgstr "Tegn inkl. mellomrom: %d" #: lib/Padre/Wx/Main.pm:3453 #, perl-format msgid "Newline type: %s" msgstr "Ny linje type: %s" #: lib/Padre/Wx/Main.pm:3454 #, perl-format msgid "Encoding: %s" msgstr "Enkoding: %s" #: lib/Padre/Wx/Main.pm:3455 #, perl-format msgid "Document type: %s" msgstr "Dokumenttype: %s" #: lib/Padre/Wx/Main.pm:3455 msgid "none" msgstr "ingen" #: lib/Padre/Wx/Main.pm:3457 #, perl-format msgid "Filename: %s" msgstr "Filnavn: %s" #: lib/Padre/Wx/Main.pm:3487 msgid "Space to Tab" msgstr "Mellomrom til Tab" #: lib/Padre/Wx/Main.pm:3488 msgid "Tab to Space" msgstr "Tab til mellomrom" #: lib/Padre/Wx/Main.pm:3491 msgid "How many spaces for each tab:" msgstr "Hvor mange mellomrom for hver tab:" #: lib/Padre/Wx/Main.pm:3607 msgid "File changed on disk since last saved. Do you want to reload it?" msgstr "Filen endret på disk siden siste lagring. Vil du relaste den?" #: lib/Padre/Wx/StatusBar.pm:71 msgid "L:" msgstr "L:" #: lib/Padre/Wx/StatusBar.pm:71 msgid "Ch:" msgstr "Ch:" #: lib/Padre/Wx/Menu/Help.pm:38 msgid "Context Help\tF1" msgstr "Konteksthjelp\tF1" #: lib/Padre/Wx/Menu/Help.pm:58 msgid "Current Document" msgstr "Nåværende dokument" #: lib/Padre/Wx/Menu/Help.pm:70 msgid "Visit the PerlMonks" msgstr "Besøk Perl-munkene" #: lib/Padre/Wx/Menu/Help.pm:80 msgid "Report a New &Bug" msgstr "Rapporter en &Bug" #: lib/Padre/Wx/Menu/Help.pm:87 msgid "View All &Open Bugs" msgstr "Vis alle &Open Bugs" #: lib/Padre/Wx/Menu/Help.pm:97 msgid "&About" msgstr "Om P&ADRE" #: lib/Padre/Wx/Menu/Help.pm:151 msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" msgstr "Kopirett 2008-2009 Padre utviklingsgruppe som listet i Padre.pm" #: lib/Padre/Wx/Menu/Experimental.pm:30 msgid "Disable Experimental Mode" msgstr "Deaktiver eksperimentell modus" #: lib/Padre/Wx/Menu/Experimental.pm:44 msgid "Refresh Menu" msgstr "Oppfrisk meny" #: lib/Padre/Wx/Menu/Experimental.pm:55 lib/Padre/Wx/Menu/Experimental.pm:76 msgid "Refresh Counter: " msgstr "Oppfrisk teller: " #: lib/Padre/Wx/Menu/Window.pm:46 msgid "Next File\tCtrl-TAB" msgstr "Neste fil\tCtrl-TAB" #: lib/Padre/Wx/Menu/Window.pm:55 msgid "Previous File\tCtrl-Shift-TAB" msgstr "Forrige fil\tCtrl-Shift-TAB" #: lib/Padre/Wx/Menu/Window.pm:64 msgid "Last Visited File\tCtrl-6" msgstr "Sist besøkte fil\tCtrl-6" #: lib/Padre/Wx/Menu/Window.pm:73 msgid "Right Click\tAlt-/" msgstr "Høyreklikk\tAlt-/" #: lib/Padre/Wx/Menu/Window.pm:90 msgid "GoTo Subs Window" msgstr "Gå til Subs-vindu" #: lib/Padre/Wx/Menu/Window.pm:103 msgid "GoTo Outline Window\tAlt-L" msgstr "Gå til omrissvindu\tAlt-L" #: lib/Padre/Wx/Menu/Window.pm:115 msgid "GoTo Output Window\tAlt-O" msgstr "Gå til output-vindu\tAlt-O" #: lib/Padre/Wx/Menu/Window.pm:125 msgid "GoTo Syntax Check Window\tAlt-C" msgstr "Gå til syntakssjekkvindu\tAlt-C" #: lib/Padre/Wx/Menu/Window.pm:140 msgid "GoTo Main Window\tAlt-M" msgstr "Gå til hovedvindu\tAlt-M" #: lib/Padre/Wx/Menu/Search.pm:31 msgid "&Find\tCtrl-F" msgstr "&Finn\tCtrl-F" #: lib/Padre/Wx/Menu/Search.pm:43 msgid "Find Next\tF3" msgstr "Finn neste\tF3" #: lib/Padre/Wx/Menu/Search.pm:55 msgid "Find Previous\tShift-F3" msgstr "Finn forrige\tShift-F3" #: lib/Padre/Wx/Menu/Search.pm:68 msgid "Replace\tCtrl-R" msgstr "Erstatt\tCtrl-R" #: lib/Padre/Wx/Menu/Search.pm:81 msgid "Quick Find" msgstr "Finn raskt" #: lib/Padre/Wx/Menu/Search.pm:102 msgid "Find Next\tF4" msgstr "Finn neste\tF4" #: lib/Padre/Wx/Menu/Search.pm:114 msgid "Find Previous\tShift-F4" msgstr "Finn forrige\tShift-F4" #: lib/Padre/Wx/Menu/Search.pm:131 msgid "Find in fi&les..." msgstr "Finn i fi&ler..." #: lib/Padre/Wx/Menu/File.pm:31 msgid "&New\tCtrl-N" msgstr "&Ny\rCtrl-N" #: lib/Padre/Wx/Menu/File.pm:48 msgid "New..." msgstr "Ny..." #: lib/Padre/Wx/Menu/File.pm:55 msgid "Perl 5 Script" msgstr "Perl5-skript" #: lib/Padre/Wx/Menu/File.pm:65 msgid "Perl 5 Module" msgstr "Perl5-modul" #: lib/Padre/Wx/Menu/File.pm:75 msgid "Perl 5 Test" msgstr "Perl5-test" #: lib/Padre/Wx/Menu/File.pm:85 msgid "Perl 6 Script" msgstr "Perl6-skript" #: lib/Padre/Wx/Menu/File.pm:95 msgid "Perl Distribution (Module::Starter)" msgstr "Perl-distribusjon (Module::Starter)" #: lib/Padre/Wx/Menu/File.pm:108 msgid "&Open...\tCtrl-O" msgstr "&Opne...\tCtrl-O" #: lib/Padre/Wx/Menu/File.pm:117 msgid "Open Selection\tCtrl-Shift-O" msgstr "Åpne valg\tCtrl-shift-O" #: lib/Padre/Wx/Menu/File.pm:121 msgid "Open Session...\tCtrl-Alt-O" msgstr "Åpne sesjon...\tCtrl-Alt-O" #: lib/Padre/Wx/Menu/File.pm:138 msgid "&Close\tCtrl-W" msgstr "&Close\tCtrl-W" #: lib/Padre/Wx/Menu/File.pm:150 msgid "Close All" msgstr "Lukk alle" #: lib/Padre/Wx/Menu/File.pm:161 msgid "Close All but Current" msgstr "Lukk alle unntatt nåværende" #: lib/Padre/Wx/Menu/File.pm:172 msgid "Reload File" msgstr "Relast fil" #: lib/Padre/Wx/Menu/File.pm:187 msgid "&Save\tCtrl-S" msgstr "&Save\tCtrl-S" #: lib/Padre/Wx/Menu/File.pm:198 msgid "Save &As...\tF12" msgstr "L&Agre som...\tF12" #: lib/Padre/Wx/Menu/File.pm:209 msgid "Save All" msgstr "Lagre alle" #: lib/Padre/Wx/Menu/File.pm:220 msgid "Save Session...\tCtrl-Alt-S" msgstr "Lagre sesjon...\tCtrl-Alt-S" #: lib/Padre/Wx/Menu/File.pm:232 msgid "&Print..." msgstr "&Print..." #: lib/Padre/Wx/Menu/File.pm:256 msgid "Convert..." msgstr "Konverter..." #: lib/Padre/Wx/Menu/File.pm:262 msgid "EOL to Windows" msgstr "EOL til vinduer" #: lib/Padre/Wx/Menu/File.pm:274 msgid "EOL to Unix" msgstr "EOL til Unix" #: lib/Padre/Wx/Menu/File.pm:286 msgid "EOL to Mac Classic" msgstr "EOL til Mac Classic" #: lib/Padre/Wx/Menu/File.pm:302 msgid "&Recent Files" msgstr "Nylige file&R" #: lib/Padre/Wx/Menu/File.pm:309 msgid "Open All Recent Files" msgstr "Åpne alle nylige filer" #: lib/Padre/Wx/Menu/File.pm:319 msgid "Clean Recent Files List" msgstr "Rens nylige filer-listen" #: lib/Padre/Wx/Menu/File.pm:336 msgid "Document Statistics" msgstr "Dokumentstatistikk" #: lib/Padre/Wx/Menu/File.pm:353 msgid "&Quit\tCtrl-Q" msgstr "&Quit\tCtrl-Q" #: lib/Padre/Wx/Menu/Plugins.pm:34 lib/Padre/Wx/Dialog/PluginManager.pm:43 msgid "Plugin Manager" msgstr "Plugin-håndterer" #: lib/Padre/Wx/Menu/Plugins.pm:49 msgid "All available plugins on CPAN" msgstr "Alle tilgjengelige plugin-er på CPAN" #: lib/Padre/Wx/Menu/Plugins.pm:60 msgid "Edit My Plugin" msgstr "Editer min plugin" #: lib/Padre/Wx/Menu/Plugins.pm:66 msgid "Could not find the Padre::Plugin::My plugin" msgstr "Fant ikke Padre::Plugin::My plugin" #: lib/Padre/Wx/Menu/Plugins.pm:75 msgid "Reload My Plugin" msgstr "Relast My Plugin" #: lib/Padre/Wx/Menu/Plugins.pm:82 lib/Padre/Wx/Menu/Plugins.pm:85 #: lib/Padre/Wx/Menu/Plugins.pm:86 msgid "Reset My Plugin" msgstr "Resett My Plugin" #: lib/Padre/Wx/Menu/Plugins.pm:101 msgid "Reload All Plugins" msgstr "Relast Alle plugin-er" #: lib/Padre/Wx/Menu/Plugins.pm:108 msgid "(Re)load Current Plugin" msgstr "(Re)last nåværende plugin" #: lib/Padre/Wx/Menu/Plugins.pm:115 msgid "Test A Plugin From Local Dir" msgstr "Test en plugin fra lokal mappe" #: lib/Padre/Wx/Menu/Plugins.pm:122 msgid "Plugin Tools" msgstr "Plugin-verktøy" #: lib/Padre/Wx/Menu/Perl.pm:40 msgid "Find Unmatched Brace" msgstr "Finn u-matchet Brace" #: lib/Padre/Wx/Menu/Perl.pm:51 lib/Padre/Document/Perl.pm:666 msgid "Find Variable Declaration" msgstr "Finn variabeldeklarasjon" #: lib/Padre/Wx/Menu/Perl.pm:66 lib/Padre/Document/Perl.pm:678 msgid "Lexically Rename Variable" msgstr "Leksikalsk omnavne variabel" #: lib/Padre/Wx/Menu/Perl.pm:73 lib/Padre/Wx/Menu/Perl.pm:74 #: lib/Padre/Document/Perl.pm:689 lib/Padre/Document/Perl.pm:690 msgid "Replacement" msgstr "Erstatning" #: lib/Padre/Wx/Menu/Perl.pm:89 msgid "Vertically Align Selected" msgstr "Vertikalt juster valg" #: lib/Padre/Wx/Menu/Perl.pm:102 msgid "Use PPI Syntax Highlighting" msgstr "Bruk PPI syntaksmarkering" #: lib/Padre/Wx/Menu/Perl.pm:128 msgid "Automatic bracket completion" msgstr "Automatisk bracket-kompletering" #: lib/Padre/Wx/Menu/Run.pm:31 msgid "Run Script\tF5" msgstr "Kjør script\tF5" #: lib/Padre/Wx/Menu/Run.pm:43 msgid "Run Script (debug info)\tShift-F5" msgstr "Kjør script (debug info)\tShift-F5" #: lib/Padre/Wx/Menu/Run.pm:55 msgid "Run Command\tCtrl-F5" msgstr "Kjør kommando\tCtrl-F5" #: lib/Padre/Wx/Menu/Run.pm:67 msgid "Run Tests" msgstr "Kjør tester" #: lib/Padre/Wx/Menu/Run.pm:80 msgid "Stop\tF6" msgstr "Stopp\tF6" #: lib/Padre/Wx/Menu/View.pm:37 msgid "Lock User Interface" msgstr "Lås bruker-interface" #: lib/Padre/Wx/Menu/View.pm:52 msgid "Show Output" msgstr "Vis output" #: lib/Padre/Wx/Menu/View.pm:64 msgid "Show Functions" msgstr "Vis funksjoner" #: lib/Padre/Wx/Menu/View.pm:82 msgid "Show Outline" msgstr "Vis omriss" #: lib/Padre/Wx/Menu/View.pm:94 msgid "Show Directory Tree" msgstr "Vis mappetre" #: lib/Padre/Wx/Menu/View.pm:106 msgid "Show Syntax Check" msgstr "Vis syntakssjekk" #: lib/Padre/Wx/Menu/View.pm:118 msgid "Show Error List" msgstr "Vis feilliste" #: lib/Padre/Wx/Menu/View.pm:132 msgid "Show StatusBar" msgstr "Vis statuslinje" #: lib/Padre/Wx/Menu/View.pm:149 msgid "View Document As..." msgstr "Vis dokument som..." #: lib/Padre/Wx/Menu/View.pm:183 msgid "Show Line Numbers" msgstr "Vis linjenumer" #: lib/Padre/Wx/Menu/View.pm:195 msgid "Show Code Folding" msgstr "Vis kodefolding" #: lib/Padre/Wx/Menu/View.pm:207 msgid "Show Call Tips" msgstr "Vis kalltips" #: lib/Padre/Wx/Menu/View.pm:222 msgid "Show Current Line" msgstr "Vis nåværende linje" #: lib/Padre/Wx/Menu/View.pm:237 msgid "Show Newlines" msgstr "Vis linjeskifttegn" #: lib/Padre/Wx/Menu/View.pm:249 msgid "Show Whitespaces" msgstr "Vis mellomromstegn" #: lib/Padre/Wx/Menu/View.pm:261 msgid "Show Indentation Guide" msgstr "Vis innrykks-guide" #: lib/Padre/Wx/Menu/View.pm:273 msgid "Word-Wrap" msgstr "Ordombrekknig" #: lib/Padre/Wx/Menu/View.pm:288 msgid "Increase Font Size\tCtrl-+" msgstr "Øk font-størrelsen\tCtrl-+" #: lib/Padre/Wx/Menu/View.pm:300 msgid "Decrease Font Size\tCtrl--" msgstr "Minsk font-størrelsen\tCtrl--" #: lib/Padre/Wx/Menu/View.pm:312 msgid "Reset Font Size\tCtrl-/" msgstr "Resett font-størrelsen\tCtrl-/" #: lib/Padre/Wx/Menu/View.pm:327 msgid "Set Bookmark\tCtrl-B" msgstr "Sett bokmerke\tCtrl-B" #: lib/Padre/Wx/Menu/View.pm:339 msgid "Goto Bookmark\tCtrl-Shift-B" msgstr "Gå til bokmerke\tCtrl-Shift-B" #: lib/Padre/Wx/Menu/View.pm:355 msgid "Style" msgstr "Stil" #: lib/Padre/Wx/Menu/View.pm:359 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Menu/View.pm:360 msgid "Night" msgstr "Natt" #: lib/Padre/Wx/Menu/View.pm:361 msgid "Ultrædit" msgstr "Ultrædit" #: lib/Padre/Wx/Menu/View.pm:362 msgid "Notepad++" msgstr "Notepad++" #: lib/Padre/Wx/Menu/View.pm:410 msgid "Language" msgstr "Språk" #: lib/Padre/Wx/Menu/View.pm:417 msgid "System Default" msgstr "System-default" #: lib/Padre/Wx/Menu/View.pm:464 msgid "&Full Screen\tF11" msgstr "&Full skjerm\tF11" #: lib/Padre/Wx/Menu/Edit.pm:31 msgid "&Undo" msgstr "Angre/&Undo" #: lib/Padre/Wx/Menu/Edit.pm:43 msgid "&Redo" msgstr "Gjenta/&Redo" #: lib/Padre/Wx/Menu/Edit.pm:59 msgid "Select" msgstr "Velg" #: lib/Padre/Wx/Menu/Edit.pm:78 msgid "Mark selection start\tCtrl-[" msgstr "Merk valg start\tCtrl-[" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Mark selection end\tCtrl-]" msgstr "Merk valg slutt\tCtrl-]" #: lib/Padre/Wx/Menu/Edit.pm:102 msgid "Clear selection marks" msgstr "Fjern valgmerker" #: lib/Padre/Wx/Menu/Edit.pm:150 msgid "&Goto\tCtrl-G" msgstr "&Gå til\tCtrl-G" #: lib/Padre/Wx/Menu/Edit.pm:160 msgid "&AutoComp\tCtrl-P" msgstr "&Autokompletter\tCtrl-P" #: lib/Padre/Wx/Menu/Edit.pm:170 msgid "&Brace matching\tCtrl-1" msgstr "&Brace-matching\tCtrl-l" #: lib/Padre/Wx/Menu/Edit.pm:180 msgid "&Join lines\tCtrl-J" msgstr "&Join linjer\tCtrl-J" #: lib/Padre/Wx/Menu/Edit.pm:190 msgid "Snippets\tCtrl-Shift-A" msgstr "Snippets\tCtrl-Shift-A" #: lib/Padre/Wx/Menu/Edit.pm:238 msgid "Tabs and Spaces" msgstr "Tab-tegn og mellomrom" #: lib/Padre/Wx/Menu/Edit.pm:244 msgid "Tabs to Spaces..." msgstr "Tab-tegn til mellomrom" #: lib/Padre/Wx/Menu/Edit.pm:256 msgid "Spaces to Tabs..." msgstr "Mellomrom til tab-tegn" #: lib/Padre/Wx/Menu/Edit.pm:270 msgid "Delete Trailing Spaces" msgstr "Slett mellomrom bakerst" #: lib/Padre/Wx/Menu/Edit.pm:283 msgid "Delete Leading Spaces" msgstr "Slett mellomrom forerst" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Upper/Lower Case" msgstr "Store/små bokstaver" #: lib/Padre/Wx/Menu/Edit.pm:303 msgid "Upper All\tCtrl-Shift-U" msgstr "Store alle\tCtrl-Shift-U" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "Lower All\tCtrl-U" msgstr "Små alle\tCtrl-U" #: lib/Padre/Wx/Menu/Edit.pm:330 msgid "Diff" msgstr "Diff" #: lib/Padre/Wx/Menu/Edit.pm:340 msgid "Insert From File..." msgstr "Sett inn fra fil..." #: lib/Padre/Wx/Menu/Edit.pm:355 lib/Padre/Wx/Dialog/PluginManager.pm:290 #: lib/Padre/Wx/Dialog/Preferences.pm:427 msgid "Preferences" msgstr "Innstillinger" #: lib/Padre/Wx/Dialog/PluginManager.pm:174 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Feil ved lasting av pod for class '%s': %s" #: lib/Padre/Wx/Dialog/PluginManager.pm:229 #: lib/Padre/Wx/Dialog/SessionManager.pm:210 msgid "Name" msgstr "Navn" #: lib/Padre/Wx/Dialog/PluginManager.pm:230 msgid "Version" msgstr "Versjon" #: lib/Padre/Wx/Dialog/PluginManager.pm:231 lib/Padre/Wx/CPAN/Listview.pm:43 #: lib/Padre/Wx/CPAN/Listview.pm:78 msgid "Status" msgstr "Status" #: lib/Padre/Wx/Dialog/PluginManager.pm:291 #: lib/Padre/Wx/Dialog/SessionSave.pm:209 #: lib/Padre/Wx/Dialog/SessionManager.pm:241 msgid "Close" msgstr "Lukk" #: lib/Padre/Wx/Dialog/PluginManager.pm:465 #: lib/Padre/Wx/Dialog/PluginManager.pm:475 msgid "Show error message" msgstr "Vis feilmelding" #: lib/Padre/Wx/Dialog/PluginManager.pm:489 msgid "Disable" msgstr "Deaktiver" #: lib/Padre/Wx/Dialog/PluginManager.pm:499 msgid "Enable" msgstr "Aktiver" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Automatic indentation style detection" msgstr "Automatisk deteksjon av innrykksstil" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Use Tabs" msgstr "Bruk tab-tegn" #: lib/Padre/Wx/Dialog/Preferences.pm:44 msgid "TAB display size (in spaces):" msgstr "TAB skjermstørrelse (i mellomrom):" #: lib/Padre/Wx/Dialog/Preferences.pm:47 msgid "Indentation width (in columns):" msgstr "Innrykksvidde (i kolonner):" #: lib/Padre/Wx/Dialog/Preferences.pm:50 msgid "Guess from current document:" msgstr "Gjett fra nåværende dokument:" #: lib/Padre/Wx/Dialog/Preferences.pm:51 msgid "Guess" msgstr "Gjett" #: lib/Padre/Wx/Dialog/Preferences.pm:53 msgid "Autoindent:" msgstr "Autoinnrykk:" #: lib/Padre/Wx/Dialog/Preferences.pm:77 msgid "Default word wrap on for each file" msgstr "Standard ordombrekking for hver linje" #: lib/Padre/Wx/Dialog/Preferences.pm:82 msgid "Auto-fold POD markup when code folding enabled" msgstr "Autofold POD-markeringer når kode-folding aktivert" #: lib/Padre/Wx/Dialog/Preferences.pm:87 msgid "Perl beginner mode" msgstr "Perl begynnermodus" #: lib/Padre/Wx/Dialog/Preferences.pm:91 msgid "Open files:" msgstr "Åpne filer:" #: lib/Padre/Wx/Dialog/Preferences.pm:95 msgid "Open files in existing Padre" msgstr "Åpne filer i eksisterende Padre" #: lib/Padre/Wx/Dialog/Preferences.pm:99 msgid "Methods order:" msgstr "Metoderekkefølge:" #: lib/Padre/Wx/Dialog/Preferences.pm:102 msgid "Preferred language for error diagnostics:" msgstr "Foretrukket språk for feildiagnistisering:" #: lib/Padre/Wx/Dialog/Preferences.pm:139 msgid "Colored text in output window (ANSI)" msgstr "Farget tekst i output-vindu" #: lib/Padre/Wx/Dialog/Preferences.pm:143 msgid "Editor Font:" msgstr "Editorskrift:" #: lib/Padre/Wx/Dialog/Preferences.pm:146 msgid "Editor Current Line Background Colour:" msgstr "Editor bakgrunnsfarge nåværende linje:" #: lib/Padre/Wx/Dialog/Preferences.pm:196 msgid "Settings Demo" msgstr "Innstillinger" #: lib/Padre/Wx/Dialog/Preferences.pm:280 msgid "Enable?" msgstr "Aktiver?" #: lib/Padre/Wx/Dialog/Preferences.pm:295 msgid "Crashed" msgstr "Krasjet" #: lib/Padre/Wx/Dialog/Preferences.pm:328 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" "f.eks.\n" "\tinkluder mappe: -I\n" "\taktiver tainting-sjekker: -T\n" "\taktiver mange nyttige varsler: -w\n" "\taktiver alle varsler: -W\n" "\tdeaktiver alle varsler: -X\n" #: lib/Padre/Wx/Dialog/Preferences.pm:338 #: lib/Padre/Wx/Dialog/Preferences.pm:382 msgid "Interpreter arguments:" msgstr "Tolk/interpreter argumenter" #: lib/Padre/Wx/Dialog/Preferences.pm:344 #: lib/Padre/Wx/Dialog/Preferences.pm:388 msgid "Script arguments:" msgstr "Skriptargumenter:" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Unsaved" msgstr "Ulagret" #: lib/Padre/Wx/Dialog/Preferences.pm:352 msgid "N/A" msgstr "N/A" #: lib/Padre/Wx/Dialog/Preferences.pm:371 msgid "No Document" msgstr "Ingen dokument" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Document name:" msgstr "Dokumentnavn:" #: lib/Padre/Wx/Dialog/Preferences.pm:379 msgid "Document location:" msgstr "Dokumentplass:" #: lib/Padre/Wx/Dialog/Preferences.pm:406 msgid "Default" msgstr "Default" #: lib/Padre/Wx/Dialog/Preferences.pm:412 #, perl-format msgid "Current Document: %s" msgstr "Nåværende dokument: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:452 msgid "Behaviour" msgstr "Oppførsel" #: lib/Padre/Wx/Dialog/Preferences.pm:455 msgid "Appearance" msgstr "Utseende" #: lib/Padre/Wx/Dialog/Preferences.pm:458 msgid "Run Parameters" msgstr "Kjøreparametre" #: lib/Padre/Wx/Dialog/Preferences.pm:462 msgid "Indentation" msgstr "Innrykk" #: lib/Padre/Wx/Dialog/Preferences.pm:489 lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "Lagre/&Save" #: lib/Padre/Wx/Dialog/Preferences.pm:500 lib/Padre/Wx/Dialog/Find.pm:189 msgid "&Cancel" msgstr "Avbryt/&Cancel" #: lib/Padre/Wx/Dialog/Preferences.pm:535 msgid "new" msgstr "ny" #: lib/Padre/Wx/Dialog/Preferences.pm:536 msgid "nothing" msgstr "ingenting" #: lib/Padre/Wx/Dialog/Preferences.pm:537 msgid "last" msgstr "sist" #: lib/Padre/Wx/Dialog/Preferences.pm:538 msgid "no" msgstr "nei/ingen" #: lib/Padre/Wx/Dialog/Preferences.pm:539 msgid "same_level" msgstr "same_level" #: lib/Padre/Wx/Dialog/Preferences.pm:540 msgid "deep" msgstr "dyp" #: lib/Padre/Wx/Dialog/Preferences.pm:541 msgid "alphabetical" msgstr "alfabetisk" #: lib/Padre/Wx/Dialog/Preferences.pm:542 msgid "original" msgstr "orginal" #: lib/Padre/Wx/Dialog/Preferences.pm:543 msgid "alphabetical_private_last" msgstr "alphabetical_private_last" #: lib/Padre/Wx/Dialog/Find.pm:58 msgid "Find" msgstr "Finn" #: lib/Padre/Wx/Dialog/Find.pm:76 lib/Padre/Wx/Dialog/Search.pm:132 msgid "Find:" msgstr "Finn:" #: lib/Padre/Wx/Dialog/Find.pm:91 msgid "Replace with:" msgstr "Erstatt med:" #: lib/Padre/Wx/Dialog/Find.pm:113 msgid "&Find" msgstr "&Finn" #: lib/Padre/Wx/Dialog/Find.pm:121 msgid "&Replace" msgstr "E&Rstatt" #: lib/Padre/Wx/Dialog/Find.pm:146 msgid "&Use Regex" msgstr "Br&Uk regex" #: lib/Padre/Wx/Dialog/Find.pm:155 msgid "Search &Backwards" msgstr "Søk &Bakover" #: lib/Padre/Wx/Dialog/Find.pm:164 msgid "Close Window on &hit" msgstr "Lukk vindu på &hit" #: lib/Padre/Wx/Dialog/Find.pm:178 msgid "Replace &all" msgstr "Erstatt &alle" #: lib/Padre/Wx/Dialog/Find.pm:347 #, perl-format msgid "%s occurences were replaced" msgstr "%s forekomster erstattet" #: lib/Padre/Wx/Dialog/Search.pm:151 msgid "Previ&ous" msgstr "Forrige/previ&ous" #: lib/Padre/Wx/Dialog/Search.pm:169 msgid "&Next" msgstr "&Neste" #: lib/Padre/Wx/Dialog/Search.pm:177 msgid "Case &insensitive" msgstr "Case-&insensitiv" #: lib/Padre/Wx/Dialog/Search.pm:181 msgid "Use rege&x" msgstr "Bruk rege&x" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 msgid "Module Name:" msgstr "Modulnavn:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:29 msgid "Author:" msgstr "Forfatter:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:32 msgid "Email:" msgstr "E-post:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:35 msgid "Builder:" msgstr "Bygger:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "License:" msgstr "Lisens:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "Parent Directory:" msgstr "Foreldermappe:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "Pick parent directory" msgstr "Velg foreldermappe" #: lib/Padre/Wx/Dialog/ModuleStart.pm:68 msgid "Module Start" msgstr "Modulstart" #: lib/Padre/Wx/Dialog/ModuleStart.pm:110 #, perl-format msgid "Field %s was missing. Module not created." msgstr "Felt %s manglet. Modul ikke opprettet" #: lib/Padre/Wx/Dialog/ModuleStart.pm:111 msgid "missing field" msgstr "manglende felt" #: lib/Padre/Wx/Dialog/ModuleStart.pm:139 #, perl-format msgid "%s apparantly created. Do you want to open it now?" msgstr "%s tilsynelatende opprettet. Vil du åpne den/det nå?" #: lib/Padre/Wx/Dialog/ModuleStart.pm:140 msgid "Done" msgstr "Ferdig" #: lib/Padre/Wx/Dialog/SessionSave.pm:32 msgid "Save session as..." msgstr "Lagre sesjon som..." #: lib/Padre/Wx/Dialog/SessionSave.pm:179 msgid "Session name:" msgstr "Sesjonnavn:" #: lib/Padre/Wx/Dialog/SessionSave.pm:188 msgid "Description:" msgstr "Beskrivelse:" #: lib/Padre/Wx/Dialog/SessionSave.pm:208 msgid "Save" msgstr "Lagren" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "Alle" #: lib/Padre/Wx/Dialog/Snippets.pm:22 msgid "Class:" msgstr "Klasse:" #: lib/Padre/Wx/Dialog/Snippets.pm:23 lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "Snutt:" #: lib/Padre/Wx/Dialog/Snippets.pm:24 msgid "&Insert" msgstr "Sett &Inn" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "Legg til/&Add" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "Snutt" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "Kategori:" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "Navn:" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "Edit/Legg til snutter" #: lib/Padre/Wx/Dialog/Bookmarks.pm:30 msgid "Existing bookmarks:" msgstr "Eksisterende bokmerker:" #: lib/Padre/Wx/Dialog/Bookmarks.pm:42 msgid "Delete &All" msgstr "Slett &Alle" #: lib/Padre/Wx/Dialog/Bookmarks.pm:55 msgid "Set Bookmark" msgstr "Sett bokmerke" #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "GoTo Bookmark" msgstr "Gå til bokmerke" #: lib/Padre/Wx/Dialog/Bookmarks.pm:122 msgid "Cannot set bookmark in unsaved document" msgstr "Kan ikke sette bokmerke i ulagret dokument" #: lib/Padre/Wx/Dialog/Bookmarks.pm:133 #, perl-format msgid "%s line %s: %s" msgstr "%s linje %s: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:171 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "Bokmerket '%s' finnes ikke lenger" #: lib/Padre/Wx/Dialog/SessionManager.pm:36 msgid "Session Manager" msgstr "Sesjonshåndterer" #: lib/Padre/Wx/Dialog/SessionManager.pm:198 msgid "List of sessions" msgstr "Sesjonsliste" #: lib/Padre/Wx/Dialog/SessionManager.pm:212 msgid "Last update" msgstr "Siste oppdatering" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Open" msgstr "Åpne" #: lib/Padre/Wx/Dialog/SessionManager.pm:240 msgid "Delete" msgstr "Slett" #: lib/Padre/Document/Perl.pm:511 lib/Padre/Document/Perl.pm:537 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:182 #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:87 msgid "Current cursor does not seem to point at a variable" msgstr "Nåværende markrer/cursor ser ikke ut til å peke på en variabel" #: lib/Padre/Document/Perl.pm:512 lib/Padre/Document/Perl.pm:538 msgid "Check cancelled" msgstr "Sjekk avbrutt" #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:184 #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:89 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Ingen deklarasjoner funnet for den spesifiserte (leksikale?) variabel" #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:186 #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:91 msgid "Unknown error" msgstr "Ukjent feil" #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:190 #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:95 msgid "Check Canceled" msgstr "Sjekk avbrutt" #: lib/Padre/Task/PPI/FindUnmatchedBrace.pm:77 msgid "All braces appear to be matched" msgstr "Alle brace-r matcher tilsynelatende" #: lib/Padre/Task/PPI/FindUnmatchedBrace.pm:78 msgid "Check Complete" msgstr "Sjekk ferdig" #: lib/Padre/Task/Outline/Perl.pm:180 msgid "&GoTo Element" msgstr "&Gå til element" Padre-1.00/share/locale/pl.po0000644000175000017500000056213511750215042014466 0ustar petepete# translation of pl.po to Polish # translation of pl.po to # Polish translations for Padre package. # Copyright (C) 2009 THE Padre'S COPYRIGHT HOLDER # This file is distributed under the same license as the Padre package. # # Cezary Morga , 2009. msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-23 08:10-0700\n" "PO-Revision-Date: 2012-05-02 12:37+0100\n" "Last-Translator: Marek Roszkowski \n" "Language-Team: Polish <>\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 0.3\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "\".\" also matches newline" msgstr "\".\" również dopasowuje znak nowego wiersza" #: lib/Padre/Config.pm:489 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "\"Otwórz sesję\" zapyta, którą sesję (zestaw plików) otworzyć przy uruchomieniu Padre." #: lib/Padre/Config.pm:491 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "\"Poprzednio otwarte pliki\" zapamiętują otwate pliki z poprzedniego uruchomienia Padre i otworzą te same pliki przy kolejnym uruchomieniu." #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" i \"$\" oznaczają początek i koniec dowolnego wiersza wewnątrz ciągu znaków" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# Wejście jest w $_\n" "$_ = $_;\n" "# Wyjście trafia do $_\n" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "$_ dla obu" #: lib/Padre/Wx/Diff.pm:112 #, perl-format msgid "%d line added" msgstr "%d wiersz dodany" #: lib/Padre/Wx/Diff.pm:100 #, perl-format msgid "%d line changed" msgstr "%d wiersz zmieniony" #: lib/Padre/Wx/Diff.pm:124 #, perl-format msgid "%d line deleted" msgstr "%d wiersz usunięty" #: lib/Padre/Wx/Diff.pm:111 #, perl-format msgid "%d lines added" msgstr "%d wierszy dodanych" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d lines changed" msgstr "%d wierszy zmienoinych" #: lib/Padre/Wx/Diff.pm:123 #, perl-format msgid "%d lines deleted" msgstr "%d wierszy usunięto" #: lib/Padre/Wx/ReplaceInFiles.pm:213 #, perl-format msgid "%s (%s changed)" msgstr "%s (%s zmienionych)" #: lib/Padre/Wx/Panel/FoundInFiles.pm:348 #, perl-format msgid "%s (%s results)" msgstr "%s (%s wyników)" #: lib/Padre/Wx/ReplaceInFiles.pm:221 #, perl-format msgid "%s (crashed)" msgstr "%s (uległ awarii)" #: lib/Padre/PluginManager.pm:521 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Awaria podczas tworzenia: %s" #: lib/Padre/PluginManager.pm:469 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Awaria podczas ładowania: %s" #: lib/Padre/PluginManager.pm:531 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - Niepowodzenie tworzenia wtyczki" #: lib/Padre/PluginManager.pm:493 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "" #: lib/Padre/PluginManager.pm:506 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - nie jest kompatybilny z Padre %s - %s" #: lib/Padre/PluginManager.pm:481 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - Wtyczka jest pusta lub nie ma wersji" #: lib/Padre/Wx/TaskList.pm:280 #: lib/Padre/Wx/Panel/TaskList.pm:171 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s w wyrażeniu regularnym TODO, sprawdź konfigurację." #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s wiersz %s: %s" #: lib/Padre/Wx/VCS.pm:210 #, perl-format msgid "%s version control is not currently available" msgstr "%s system kontroli wersji jest obecnie niedostępny" #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Linia: %s Plik: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2592 #: lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "&O programie" #: lib/Padre/Wx/FBP/Preferences.pm:1545 msgid "&Advanced..." msgstr "Z&aawansowane..." #: lib/Padre/Wx/ActionLibrary.pm:860 msgid "&Autocomplete" msgstr "&Autouzupełnianie" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "&Brace Matching" msgstr "Dopasowanie &nawiasów\tCtrl-1" #: lib/Padre/Wx/FBP/FindInFiles.pm:90 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:108 msgid "&Browse" msgstr "&Przeglądaj" #: lib/Padre/Wx/FBP/Preferences.pm:1561 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:153 #: lib/Padre/Wx/Dialog/OpenResource.pm:183 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&Anuluj" #: lib/Padre/Wx/FBP/FindInFiles.pm:137 #: lib/Padre/Wx/FBP/Find.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:147 #: lib/Padre/Wx/FBP/Replace.pm:121 msgid "&Case Sensitive" msgstr "&Uwzględniaj wielkość liter" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "Zmień styl zmiennej" #: lib/Padre/Wx/ActionLibrary.pm:1706 msgid "&Check for Common (Beginner) Errors" msgstr "Sprawdź typowe błędy (początkującego)" #: lib/Padre/Wx/ActionLibrary.pm:532 msgid "&Clean Recent Files List" msgstr "&Wyczyść listę ostatnio otwieranych plików" #: lib/Padre/Wx/ActionLibrary.pm:658 msgid "&Clear Selection Marks" msgstr "&Usuń uchwyty zaznaczenia" #: lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:134 #: lib/Padre/Wx/Dialog/HelpSearch.pm:180 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:275 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 msgid "&Close" msgstr "&Zamknij" #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "&Comment Out" msgstr "&Zakomentuj" #: lib/Padre/Wx/ActionLibrary.pm:2491 msgid "&Context Help" msgstr "&Pomoc kontekstowa\tF1" #: lib/Padre/Wx/ActionLibrary.pm:2376 msgid "&Context Menu" msgstr "&Menu kontekstowe" #: lib/Padre/Wx/ActionLibrary.pm:688 msgid "&Copy" msgstr "&Kopiuj" #: lib/Padre/Wx/Menu/Debug.pm:68 msgid "&Debug" msgstr "&Debug" #: lib/Padre/Wx/ActionLibrary.pm:1638 msgid "&Decrease Font Size" msgstr "Zmniejsz rozmiar czcionki\tCtrl--" #: lib/Padre/Wx/ActionLibrary.pm:369 #: lib/Padre/Wx/FBP/Preferences.pm:1213 #: lib/Padre/Wx/FBP/Bookmarks.pm:95 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "&Usuń" #: lib/Padre/Wx/ActionLibrary.pm:1073 msgid "&Delete Trailing Spaces" msgstr "Usuń spacje na końcu" #: lib/Padre/Wx/ActionLibrary.pm:1718 #, fuzzy msgid "&Deparse selection" msgstr "Otwórz zaznaczenie" #: lib/Padre/Wx/Dialog/PluginManager.pm:100 msgid "&Disable" msgstr "&Wyłącz" #: lib/Padre/Wx/ActionLibrary.pm:544 msgid "&Document Statistics" msgstr "Statystyki &dokumentu" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "&Edit" msgstr "&Edytuj" #: lib/Padre/Wx/ActionLibrary.pm:2255 msgid "&Edit My Plug-in" msgstr "Edytuj wtyczkę My Plug-in" #: lib/Padre/Wx/ActionLibrary.pm:2220 msgid "&Edit with Regex Editor..." msgstr "Edytuj z Edytorem Regex" #: lib/Padre/Wx/Dialog/PluginManager.pm:106 #: lib/Padre/Wx/Dialog/PluginManager.pm:112 msgid "&Enable" msgstr "&Włącz" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "&Wprowadź numer wiersza pomiędzy 1 i %s:" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "&Wprowadź pozycję pomiędzy 1 i %s:" #: lib/Padre/Wx/Menu/File.pm:291 msgid "&File" msgstr "&Plik" #: lib/Padre/Wx/ActionLibrary.pm:930 msgid "&File..." msgstr "&Plik..." #: lib/Padre/Wx/FBP/Preferences.pm:1097 #: lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "&Filtr:" #: lib/Padre/Wx/FBP/FindInFiles.pm:153 msgid "&Find" msgstr "&Znajdź" #: lib/Padre/Wx/FBP/Find.pm:111 #: lib/Padre/Wx/FBP/Replace.pm:153 msgid "&Find Next" msgstr "&Znajdź następny" #: lib/Padre/Wx/ActionLibrary.pm:1220 msgid "&Find Previous" msgstr "&Znajdź poprzedni\tShift-F3" #: lib/Padre/Wx/ActionLibrary.pm:1167 msgid "&Find..." msgstr "&Znajdź..." #: lib/Padre/Wx/ActionLibrary.pm:1518 msgid "&Fold All" msgstr "&Zwiń wszystkie" #: lib/Padre/Wx/ActionLibrary.pm:1538 msgid "&Fold/Unfold Current" msgstr "&Zwiń/Rozwiń bieżący" #: lib/Padre/Wx/ActionLibrary.pm:1282 msgid "&Go To..." msgstr "&Idź do..." #: lib/Padre/Wx/Outline.pm:139 msgid "&Go to Element" msgstr "&Idź do elementu" #: lib/Padre/Wx/ActionLibrary.pm:2470 #: lib/Padre/Wx/Menu/Help.pm:115 msgid "&Help" msgstr "Pomo&c" #: lib/Padre/Wx/ActionLibrary.pm:1628 msgid "&Increase Font Size" msgstr "&Zwiększ rozmiar czcionki\tCtrl-+" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "&Join Lines" msgstr "Połącz &wiersze\tCtrl-J" #: lib/Padre/Wx/ActionLibrary.pm:2110 msgid "&Launch Debugger" msgstr "&Uruchom debuger" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "&Wsparcie techniczne" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "&Załaduj wszystkie moduły Padre" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "&Lower All" msgstr "&Wszystkie na małe\tCtrl-U" #: lib/Padre/Wx/Dialog/HelpSearch.pm:155 msgid "&Matching Help Topics:" msgstr "&Pasujące tematy pomocy:" #: lib/Padre/Wx/Dialog/OpenResource.pm:227 msgid "&Matching Items:" msgstr "&Pasujące elementy:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:181 msgid "&Matching Menu Items:" msgstr "&Pasujące elementy menu:" #: lib/Padre/Wx/Menu/Tools.pm:67 msgid "&Module Tools" msgstr "Narzędzia modułu" #: lib/Padre/Wx/ActionLibrary.pm:1926 msgid "&Move POD to __END__" msgstr "Przenieś POD na __END_" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "&Nowy" #: lib/Padre/Wx/ActionLibrary.pm:1779 msgid "&Newline Same Column" msgstr "Nowy wiersz, ta sama kolumna" #: lib/Padre/Wx/FBP/FindFast.pm:101 msgid "&Next" msgstr "&Następny" #: lib/Padre/Wx/ActionLibrary.pm:791 msgid "&Next Difference" msgstr "&Następna różnica" #: lib/Padre/Wx/ActionLibrary.pm:2353 msgid "&Next File" msgstr "&Następny plik" #: lib/Padre/Wx/ActionLibrary.pm:780 msgid "&Next Problem" msgstr "&Następny problem" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:149 #: lib/Padre/Wx/Dialog/OpenResource.pm:177 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "&Otwórz" #: lib/Padre/Wx/ActionLibrary.pm:523 msgid "&Open All Recent Files" msgstr "&Otwórz wszystkie ostatnio otwierane pliki" #: lib/Padre/Wx/ActionLibrary.pm:195 msgid "&Open..." msgstr "Otwórz..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:228 msgid "&Original text:" msgstr "Tekst &oryginalny:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "&Podgląd wyniku:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:81 msgid "&POSIX Character classes" msgstr "Klasy znaków &POSIX" #: lib/Padre/Wx/ActionLibrary.pm:2515 msgid "&Padre Support (English)" msgstr "Wsparcie &Padre (Angielski)" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "&Paste" msgstr "&Wklej" #: lib/Padre/Wx/ActionLibrary.pm:1107 msgid "&Patch..." msgstr "&Patch..." #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "&Filtruj źródło Perl:" #: lib/Padre/Wx/ActionLibrary.pm:2233 msgid "&Plug-in Manager" msgstr "Menedżer wtyczek" #: lib/Padre/Wx/ActionLibrary.pm:2188 msgid "&Preferences" msgstr "&Preferencje" #: lib/Padre/Wx/FBP/FindFast.pm:85 msgid "&Previous" msgstr "&Poprzedni" #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "&Previous File" msgstr "&Poprzedni plik" #: lib/Padre/Wx/ActionLibrary.pm:503 msgid "&Print..." msgstr "&Drukuj..." #: lib/Padre/Wx/ActionLibrary.pm:556 msgid "&Project Statistics" msgstr "Statystyki &projektu" #: lib/Padre/Wx/Dialog/RegexEditor.pm:100 msgid "&Quantifiers" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:803 #, fuzzy msgid "&Quick Fix" msgstr "Szybkie wyszukiwanie" #: lib/Padre/Wx/ActionLibrary.pm:1331 msgid "&Quick Menu Access..." msgstr "Menu szybkiego dostępu..." #: lib/Padre/Wx/ActionLibrary.pm:567 msgid "&Quit" msgstr "&Wyjście" #: lib/Padre/Wx/Menu/File.pm:248 msgid "&Recent Files" msgstr "O&statnio otwierane" #: lib/Padre/Wx/ActionLibrary.pm:607 msgid "&Redo" msgstr "&Przywróć" #: lib/Padre/Wx/ActionLibrary.pm:2210 msgid "&Regex Editor" msgstr "Edytor &Regex" #: lib/Padre/Wx/FBP/FindInFiles.pm:129 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:155 msgid "&Regular Expression" msgstr "Wyrażenie ®ularne " #: lib/Padre/Wx/Dialog/RegexEditor.pm:168 msgid "&Regular expression:" msgstr "Wyrażenie ®ularne:" #: lib/Padre/Wx/ActionLibrary.pm:2272 msgid "&Reload My Plug-in" msgstr "Ładuj ponownie wtyczkę My Plug-in" #: lib/Padre/Wx/Main.pm:4698 msgid "&Reload selected" msgstr "Ponownie &załaduj zaznaczone" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "&Rename Variable..." msgstr "Zmień nazwę zmiennej..." #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:171 #: lib/Padre/Wx/FBP/Replace.pm:169 msgid "&Replace" msgstr "Za&stąp" #: lib/Padre/Wx/Dialog/RegexEditor.pm:249 msgid "&Replace text with:" msgstr "Tekst zastąpienia:" #: lib/Padre/Wx/FBP/Preferences.pm:1232 #: lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "&Przywróć" #: lib/Padre/Wx/ActionLibrary.pm:1648 msgid "&Reset Font Size" msgstr "Przywróć rozmiar czcionki\tCtrl-/" #: lib/Padre/Wx/Dialog/RegexEditor.pm:259 msgid "&Result from replace:" msgstr "&Wynik zastąpienia:" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "&Uruchom" #: lib/Padre/Wx/ActionLibrary.pm:1942 msgid "&Run Script" msgstr "Uruchom skrypt\tF5" #: lib/Padre/Wx/ActionLibrary.pm:413 #: lib/Padre/Wx/FBP/Preferences.pm:1536 msgid "&Save" msgstr "&Zapisz" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&Zapisz sesję automatycznie" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "Dokumentacja &Scintilla" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "&Szukaj" #: lib/Padre/Wx/ActionLibrary.pm:2479 msgid "&Search Help" msgstr "Pomoc Wyszukiwania" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "Zaznacz" #: lib/Padre/Wx/Dialog/OpenResource.pm:205 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&Zaznacz element do otwarcia (? = dowolny znak, * dowolny ciąg):" #: lib/Padre/Wx/Main.pm:4696 msgid "&Select files to reload:" msgstr "&Zaznacz pliki do ponownego załadowania" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "&Ustaw" #: lib/Padre/Wx/Dialog/PluginManager.pm:94 msgid "&Show Error Message" msgstr "&Pokaż komunikat błędu" #: lib/Padre/Wx/ActionLibrary.pm:918 msgid "&Snippets..." msgstr "Fragmenty..." #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2024 msgid "&Stop Execution" msgstr "Zatrzymaj wykonywanie" #: lib/Padre/Wx/ActionLibrary.pm:943 msgid "&Toggle Comment" msgstr "&Przełącz komentarz" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "&Narzędzia" #: lib/Padre/Wx/ActionLibrary.pm:2581 msgid "&Translate Padre..." msgstr "&Przetłumacz Padre..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:174 msgid "&Type a menu item name to access:" msgstr "&Wprowadź nazwę elementu menu aby uzyskać dostęp:" #: lib/Padre/Wx/ActionLibrary.pm:968 msgid "&Uncomment" msgstr "Odkomentuj" #: lib/Padre/Wx/ActionLibrary.pm:587 msgid "&Undo" msgstr "&Cofnij" #: lib/Padre/Wx/ActionLibrary.pm:1085 msgid "&Upper All" msgstr "Wszystkie duże" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Wartość:" #: lib/Padre/Wx/Menu/View.pm:247 msgid "&View" msgstr "&Widok" #: lib/Padre/Wx/Menu/View.pm:101 msgid "&View Document As..." msgstr "Wyświetl dokument jako..." #: lib/Padre/Wx/ActionLibrary.pm:2539 msgid "&Win32 Questions (English)" msgstr "Pytania Win32 (Angielski)" #: lib/Padre/Wx/Menu/Window.pm:82 msgid "&Window" msgstr "&Okno" #: lib/Padre/Wx/ActionLibrary.pm:1615 #, fuzzy msgid "&Word-Wrap File" msgstr "Zawijaj wiersze" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "Dokumentacja wxWidgets %s" #: lib/Padre/Wx/Panel/Debugger.pm:621 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "'%s' nie wygląda na zmienną. Najpierw zaznacz zmienną w kodzie i spróbuj ponownie." #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "(Re)load &Current Plug-in" msgstr "Ładuj (ponownie) bieżącą wtyczkę" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(Od wersji Perl %s)" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "" #: lib/Padre/PluginManager.pm:769 msgid "(core)" msgstr "" #: lib/Padre/Wx/Dialog/About.pm:151 msgid "(disabled)" msgstr "(wyłączone)" #: lib/Padre/Wx/Dialog/About.pm:159 msgid "(unsupported)" msgstr "(niewspierane)" #: lib/Padre/Wx/FBP/Preferences.pm:1165 #: lib/Padre/Wx/FBP/Preferences.pm:1179 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/VCS.pm:335 msgid ", " msgstr ", " #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "- PRZESTARZAŁY!" #: lib/Padre/Wx/FBP/Debugger.pm:256 msgid ". Return to the executed line." msgstr ". Powrót do wykonanego wiersza." #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "7-bit US-ASCII character" msgstr "7-bitowy znak US-ASCII" #: lib/Padre/Wx/CPAN.pm:514 #, perl-format msgid "Loading %s..." msgstr "Ładowanie %s..." #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "Okno dialogowe" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "A comment" msgstr "Komentaż" #: lib/Padre/Wx/Dialog/RegexEditor.pm:125 msgid "A group" msgstr "Grupa" #: lib/Padre/Config.pm:485 msgid "A new empty file" msgstr "Nowy pusty plik" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Zestaw niepowiązanych ze sobą narzędzi wykorzystywanych przez programistów Padre\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "A word boundary" msgstr "Granica słowa" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/FBP/About.pm:296 msgid "Aaron Trevena" msgstr "Aaron Trevena" #: lib/Padre/Wx/FBP/About.pm:29 #: lib/Padre/Plugin/PopularityContest.pm:211 msgid "About" msgstr "O" #: lib/Padre/Wx/CPAN.pm:221 msgid "Abstract" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:47 #: lib/Padre/Wx/Dialog/Preferences.pm:170 msgid "Action" msgstr "Akcja" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Akcja: %s" #: lib/Padre/Wx/FBP/About.pm:122 msgid "Adam Kennedy" msgstr "Adam Kennedy" #: lib/Padre/Wx/FBP/Preferences.pm:303 msgid "Add another closing bracket if there already is one" msgstr "Dodaj kolejny nawias zamykający jeżeli jest już jeden" #: lib/Padre/Wx/VCS.pm:515 msgid "Add file to repository?" msgstr "Dodać plik do repozytorium?" #: lib/Padre/Wx/VCS.pm:246 #: lib/Padre/Wx/VCS.pm:260 msgid "Added" msgstr "Dodany" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Ustawienia Zaawansowane" #: lib/Padre/Wx/FBP/Patch.pm:70 msgid "Against" msgstr "" #: lib/Padre/Wx/FBP/About.pm:128 #: lib/Padre/Wx/FBP/About.pm:337 msgid "Ahmad Zawawi" msgstr "Ahmad Zawawi" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Alarm" msgstr "Alarm" #: lib/Padre/Wx/FBP/About.pm:200 msgid "Alexandr Ciornii" msgstr "Alexandr Ciornii" #: lib/Padre/Wx/Syntax.pm:83 msgid "Alien Error" msgstr "Obcy błąd" #: lib/Padre/Wx/ActionLibrary.pm:1768 msgid "Align a selection of text to the same left column." msgstr "Wyrównaj zaznaczony tekst do tej samej lewej kolumny." #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "Wszystkie" #: lib/Padre/Wx/Main.pm:4428 #: lib/Padre/Wx/Main.pm:4429 #: lib/Padre/Wx/Main.pm:4783 #: lib/Padre/Wx/Main.pm:6003 #: lib/Padre/Wx/Choice/Files.pm:19 msgid "All Files" msgstr "Wszystkie pliki" #: lib/Padre/Document/Perl.pm:547 msgid "All braces appear to be matched" msgstr "Wszystkie nawiasy wyglądają na domknięte" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Allow the selection of another name to save the current document" msgstr "Zezwala na wybór innej nazwy do zapisania bieżącego dokumentu" #: lib/Padre/Wx/Dialog/RegexEditor.pm:83 msgid "Alphabetic characters" msgstr "Znaki alfabetu" #: lib/Padre/Config.pm:582 msgid "Alphabetical Order" msgstr "Porządek alfabetyczny" #: lib/Padre/Config.pm:583 msgid "Alphabetical Order (Private Last)" msgstr "Porządek alfabetyczny (prywatne na końcu)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphanumeric characters" msgstr "Znaki alfanumeryczne" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Alphanumeric characters plus \"_\"" msgstr "Znaki alfanumeryczne i \"_\"" #: lib/Padre/Wx/FBP/Preferences.pm:1157 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:113 msgid "Alternation" msgstr "Odmiana" #: lib/Padre/Wx/FBP/About.pm:478 msgid "Amir E. Aharoni" msgstr "Amir E. Aharoni" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Andrew Bramble" msgstr "Andrew Bramble" #: lib/Padre/Wx/FBP/About.pm:625 msgid "Andrew Shitov" msgstr "Andrew Shitov" #: lib/Padre/Wx/Dialog/RegexEditor.pm:71 msgid "Any character except a newline" msgstr "Dowolny znak poza znakiem nowego wiersza" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any decimal digit" msgstr "Dowolna cyfra dziesiętna" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any non-digit" msgstr "Dowolny niecyfra" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any non-whitespace character" msgstr "Dowolny niebiały znak" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any non-word character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any whitespace character" msgstr "Dowolny biały znak" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any word character" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1921 msgid "Appearance" msgstr "Wygląd" #: lib/Padre/Wx/FBP/Preferences.pm:822 msgid "Appearance Preview" msgstr "Podgląd wyglądu" #: lib/Padre/Wx/ActionLibrary.pm:804 msgid "Apply one of the quick fixes for the current document" msgstr "" #: lib/Padre/Locale.pm:157 #: lib/Padre/Wx/FBP/About.pm:328 msgid "Arabic" msgstr "Arabski" #: lib/Padre/Wx/ActionLibrary.pm:487 msgid "Ask for a session name and save the list of files currently opened" msgstr "Pyta o nazwę sesji i zapisuje listę obecnie otwartych plików" #: lib/Padre/Wx/ActionLibrary.pm:568 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Pyta czy niezapisane pliki powinny być zapisane a następnie wychodzi z Padre" #: lib/Padre/Wx/ActionLibrary.pm:1904 msgid "Assign the selected expression to a newly declared variable" msgstr "Przypisz wybrane wyrażenie do nowo zadeklarowanej zmiennej" #: lib/Padre/Wx/Outline.pm:383 msgid "Attributes" msgstr "Atrybuty" #: lib/Padre/Wx/FBP/Sync.pm:290 msgid "Authentication" msgstr "Autentykacja" #: lib/Padre/Wx/VCS.pm:55 #: lib/Padre/Wx/CPAN.pm:212 msgid "Author" msgstr "Autor" #: lib/Padre/Wx/FBP/Preferences.pm:328 msgid "Auto-fold POD markup when code folding enabled" msgstr "Automatycznie zwijaj znaczniki POD gdy włączone jest zwijanie kodu" #: lib/Padre/Wx/FBP/Preferences.pm:1922 msgid "Autocomplete" msgstr "Automatyczne uzupełnianie" #: lib/Padre/Wx/FBP/Preferences.pm:200 msgid "Autocomplete always while typing" msgstr "Automatyczne uzupełnianie zawsze podczas pisania" #: lib/Padre/Wx/FBP/Preferences.pm:295 msgid "Autocomplete brackets" msgstr "Automatyczne zamykanie nawiasów" #: lib/Padre/Wx/FBP/Preferences.pm:216 msgid "Autocomplete new functions in scripts" msgstr "Automatyczne uzupełnianie nowych funkcji w skryptach" #: lib/Padre/Wx/FBP/Preferences.pm:208 msgid "Autocomplete new methods in packages" msgstr "Automatyczne uzupełnianie nowych metod w pakietach" #: lib/Padre/Wx/Main.pm:3688 msgid "Autocompletion error" msgstr "Błąd auto uzupełniania" #: lib/Padre/Wx/FBP/Preferences.pm:1057 msgid "Autoindent" msgstr "Automatyczne wcięcia" #: lib/Padre/Wx/StatusBar.pm:268 msgid "Background Tasks are running" msgstr "Zadania w tle są wykonywane" #: lib/Padre/Wx/StatusBar.pm:269 msgid "Background Tasks are running with high load" msgstr "Zadania w tle generują duże obciążenie" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Backreference to the nth group" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:28 msgid "Backspace" msgstr "Backspace" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Beginning of line" msgstr "Początek nowego wiersza" #: lib/Padre/Wx/FBP/Preferences.pm:1924 msgid "Behaviour" msgstr "Zachowanie" #: lib/Padre/MIME.pm:887 msgid "Binary File" msgstr "Plik binarny" #: lib/Padre/Wx/FBP/About.pm:308 msgid "Blake Willmarth" msgstr "Blake Willmarth" #: lib/Padre/Wx/FBP/SLOC.pm:91 msgid "Blank Lines:" msgstr "Puste wiersze:" #: lib/Padre/Wx/FBP/Preferences.pm:844 #, fuzzy msgid "Bloat Reduction" msgstr "Zaznacz Funkcję" #: lib/Padre/Wx/FBP/About.pm:93 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "" "Obraz niebieskiego motyla na zielonym liściu bazuje na pracy \n" "Jerry'ego Charlotte (blackbutterfly)" #: lib/Padre/Wx/FBP/Bookmarks.pm:29 msgid "Bookmarks" msgstr "Zakładki" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Boolowski" #: lib/Padre/Config.pm:61 msgid "Bottom Panel" msgstr "Panel dolny" #: lib/Padre/Wx/FBP/Preferences.pm:278 msgid "Brace Assist" msgstr "Asysta nawiasów" #: lib/Padre/Wx/Panel/Breakpoints.pm:55 msgid "Breakpoints" msgstr "" #: lib/Padre/Wx/FBP/About.pm:170 #: lib/Padre/Wx/FBP/About.pm:583 msgid "Breno G. de Oliveira" msgstr "Breno G. de Oliveira" #: lib/Padre/Wx/FBP/About.pm:212 msgid "Brian Cassidy" msgstr "Brian Cassidy" #: lib/Padre/Wx/FBP/VCS.pm:83 msgid "Bring changes from the repository into the working copy" msgstr "Pobiera zmiany z repozytorium do kopii roboczej" #: lib/Padre/Wx/ActionLibrary.pm:196 msgid "Browse directory of the current document to open one or several files" msgstr "Przeglądaj katalog bieżącego dokumentu do otwarcia jednego lub wielu plików" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Browse the directory of the installed examples to open one file" msgstr "Przeglądaj katalog z zainstalowanymi przykładami do otwarcia jednego pliku" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "Przeglądarka: brak podglądu dla %s" #: lib/Padre/Wx/ActionLibrary.pm:1982 msgid "Builds the current project, then run all tests." msgstr "Buduje bieżący projekt i wykonuje wszystkie testy." #: lib/Padre/Wx/FBP/About.pm:236 #: lib/Padre/Wx/FBP/About.pm:640 msgid "Burak Gursoy" msgstr "Burak Gursoy" #: lib/Padre/Wx/ActionLibrary.pm:2504 msgid "C&urrent Document" msgstr "Bieżący dokument" #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "CHANGED" msgstr "ZMIENIONY" #: lib/Padre/Wx/CPAN.pm:101 #: lib/Padre/Wx/FBP/Preferences.pm:421 msgid "CPAN Explorer" msgstr "Eksplorator CPAN" #: lib/Padre/Wx/FBP/Preferences.pm:915 msgid "CPAN Explorer Tool" msgstr "Narzędzie eksploratora CPAN" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/Snippet.pm:135 #: lib/Padre/Wx/FBP/FindInFiles.pm:162 #: lib/Padre/Wx/FBP/Bookmarks.pm:127 #: lib/Padre/Wx/FBP/Find.pm:136 #: lib/Padre/Wx/FBP/Special.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:180 #: lib/Padre/Wx/FBP/Replace.pm:202 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "Anuluj" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "Nie odnaleziono pliku wykonywalnego python w PATH" #: lib/Padre/Document/Ruby.pm:54 msgid "Cannot find ruby executable in your PATH" msgstr "Nie odnaleziono pliku wykonywalnego ruby w PATH" #: lib/Padre/Wx/Main.pm:4081 #, perl-format msgid "Cannot open a directory: %s" msgstr "Nie można otworzyć katalogu: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "Nie można ustawić zakładki w niezapisanym dokumencie" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Case-insensitive matching" msgstr "Dopasowanie bez względu na wielkość liter" #: lib/Padre/Wx/FBP/About.pm:206 #: lib/Padre/Wx/FBP/About.pm:568 msgid "Cezary Morga" msgstr "Cezary Morga" #: lib/Padre/Wx/FBP/Preferences.pm:1259 msgid "Change Detection" msgstr "Detekcja zmiany" #: lib/Padre/Wx/FBP/Preferences.pm:939 msgid "Change Font Size (Outside Preferences)" msgstr "Zmień wielkość czcionki (poza preferencjami)" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "Change the current selection to lower case" msgstr "Zmień bieżące zaznaczenie na małe litery" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Change the current selection to upper case" msgstr "Zmień bieżące zaznaczenie na duże litery" #: lib/Padre/Wx/ActionLibrary.pm:982 msgid "Change the encoding of the current document to the default of the operating system" msgstr "Zmień kodowanie bieżącego dokumentu na domyślne kodowanie systemu operacyjnego." #: lib/Padre/Wx/ActionLibrary.pm:992 msgid "Change the encoding of the current document to utf-8" msgstr "Zmień kodowanie bieżącego dokumentu na utf-8" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "Zmień znak końca wiersza bieżącego dokumentu na używany w systemie Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1022 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "Zmień znak końca wiersza bieżącego dokumentu na używany w systemach Unix, Linux, Mac OSX" #: lib/Padre/Wx/ActionLibrary.pm:1012 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "Zmień znak końca wiersza bieżącego dokumentu na używany w systemiach MS Windows" #: lib/Padre/Document/Perl.pm:1515 msgid "Change variable style" msgstr "Zmień styl zmiennej" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Change variable style from camelCase to Camel_Case" msgstr "Zmień styl zmiennej z camelCase na Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1849 msgid "Change variable style from camelCase to camel_case" msgstr "Zmień styl zmiennej z camelCase na camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1835 msgid "Change variable style from camel_case to CamelCase" msgstr "Zmień styl zmiennej z calem_case na CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "Change variable style from camel_case to camelCase" msgstr "Zmień styl zmiennej z camel_case na camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "Change variable to &camelCase" msgstr "Zmień zmienną na &camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Change variable to &using_underscores" msgstr "Zmień styl zmiennej na &using_underscores" #: lib/Padre/Wx/ActionLibrary.pm:1834 msgid "Change variable to C&amelCase" msgstr "Zmień zmienną na C&amelCase" #: lib/Padre/Wx/ActionLibrary.pm:1862 msgid "Change variable to U&sing_Underscores" msgstr "Zmień styl zmiennej na U&sing_Underscores" #: lib/Padre/Wx/Dialog/RegexEditor.pm:69 msgid "Character classes" msgstr "Klasy znaków" #: lib/Padre/Wx/Dialog/Goto.pm:343 msgid "Character position" msgstr "Pozycja znaku" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Character set" msgstr "Zestaw znaków" #: lib/Padre/Wx/FBP/Document.pm:174 msgid "Characters (All)" msgstr "Znaki (Wszystkie)" #: lib/Padre/Wx/FBP/Document.pm:192 msgid "Characters (Visible)" msgstr "Znaki (Widoczne)" #: lib/Padre/Document/Perl.pm:548 msgid "Check Complete" msgstr "Sprawdzanie zakończone" #: lib/Padre/Document/Perl.pm:617 #: lib/Padre/Document/Perl.pm:673 #: lib/Padre/Document/Perl.pm:692 msgid "Check cancelled" msgstr "Sprawdzanie anulowane" #: lib/Padre/Wx/ActionLibrary.pm:1707 msgid "Check the current file for common beginner errors" msgstr "Sprawdź bieżący plik pod kątem typowych błędów początkującego" #: lib/Padre/Locale.pm:431 msgid "Chinese" msgstr "Chiński" #: lib/Padre/Locale.pm:441 #: lib/Padre/Wx/FBP/About.pm:343 msgid "Chinese (Simplified)" msgstr "Chiński (uproszczony)" #: lib/Padre/Locale.pm:451 #: lib/Padre/Wx/FBP/About.pm:364 msgid "Chinese (Traditional)" msgstr "Chiński (tradycyjny)" #: lib/Padre/Wx/Main.pm:4300 #: lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "Wybierz plik" #: lib/Padre/Wx/FBP/About.pm:218 msgid "Chris Dolan" msgstr "Chris Dolan" #: lib/Padre/Wx/FBP/About.pm:358 msgid "Chuanren Wu" msgstr "Chuanren Wu" #: lib/Padre/Wx/FBP/About.pm:272 msgid "Claudio Ramirez" msgstr "Claudio Ramirez" #: lib/Padre/Wx/FBP/Preferences.pm:677 msgid "Clean up file content on saving (for supported document types)" msgstr "Oczyść zawartość pliku przy zapisie (dla wspieranych typów dokumentów)" #: lib/Padre/Wx/Dialog/OpenResource.pm:221 msgid "Click on the arrow for filter settings" msgstr "Kliknij na strzałce do ustawień filtra" #: lib/Padre/Wx/FBP/Patch.pm:120 #: lib/Padre/Wx/FBP/Text.pm:56 #: lib/Padre/Wx/FBP/PluginManager.pm:128 #: lib/Padre/Wx/FBP/About.pm:666 #: lib/Padre/Wx/FBP/SLOC.pm:176 #: lib/Padre/Wx/FBP/Sync.pm:253 #: lib/Padre/Wx/FBP/Diff.pm:94 #: lib/Padre/Wx/FBP/Document.pm:254 #: lib/Padre/Wx/FBP/SessionManager.pm:119 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:279 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "Zamknij" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close &Files..." msgstr "Zamknij &pliki..." #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close &all Files" msgstr "Zamknij &wszystkie pliki" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close &this Project" msgstr "Zamknij &ten Projekt" #: lib/Padre/Wx/Main.pm:5200 msgid "Close all" msgstr "Zamknij wszystkie" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all &other Files" msgstr "Zamknij wszystkie &pozostałe pliki" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Zamknij wszystkie pliki należące do bieżącego Projektu" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Zamknij wszystkie pliki z wyjątkiem bieżącego" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Zamknij wszystkie pliki w edytorze" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Zamknij wszystkie pliki nie należące do bieżącego Projektu" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "Zamknij bieżący dokument" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Close current document and remove the file from disk" msgstr "Zamknij bieżący dokument i usuń plik z dysku" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other &Projects" msgstr "Zamknij pozostałe &Projekty" #: lib/Padre/Wx/Main.pm:5268 msgid "Close some" msgstr "Zamknij niektóre" #: lib/Padre/Wx/Main.pm:5246 msgid "Close some files" msgstr "Zamknij niektóre pliki" #: lib/Padre/Wx/ActionLibrary.pm:1683 msgid "Close the highest priority dialog or panel" msgstr "Zamknij okno dialogowe lub panel o najwyższym priorytecie" #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "Zamknij to okno" #: lib/Padre/Wx/FBP/SLOC.pm:67 msgid "Code Lines:" msgstr "Wiersze kodu:" #: lib/Padre/Config.pm:581 msgid "Code Order" msgstr "" #: lib/Padre/Wx/FBP/FoundInFiles.pm:91 msgid "Collapse All" msgstr "Załam wszystkie" #: lib/Padre/Wx/FBP/Preferences.pm:144 msgid "Coloured text in output window (ANSI)" msgstr "Tekst z kolorami w oknie wyniku (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1927 msgid "Combine scattered POD at the end of the document" msgstr "Połącz rozrzucony POD na końcu dokumentu" #: lib/Padre/Wx/Command.pm:97 msgid "Command" msgstr "Polecenie" #: lib/Padre/Wx/Main.pm:2722 msgid "Command line" msgstr "Wiersz poleceń" #: lib/Padre/Wx/FBP/Preferences.pm:555 msgid "Command line files open in existing Padre instance" msgstr "Otwieraj pliki poleceń w tej samej instancji Padre" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "Comment out selected lines or the current line" msgstr "Skomentuj zaznaczone wiersze lub bieżący wiersz" #: lib/Padre/Wx/ActionLibrary.pm:944 msgid "Comment out/remove comment for selected lines or the current line" msgstr "Skomentuj lub usuń komentarze z zaznaczonych wierszy lub bieżącego wiersza" #: lib/Padre/Wx/FBP/SLOC.pm:79 msgid "Comments Lines:" msgstr "Linie komentarzy:" #: lib/Padre/Wx/VCS.pm:495 msgid "Commit file/directory to repository?" msgstr "Przekazać plik/katalog do repozytorium?" #: lib/Padre/Wx/Dialog/About.pm:118 msgid "Config" msgstr "Konfiguracja" #: lib/Padre/Wx/FBP/Sync.pm:134 #: lib/Padre/Wx/FBP/Sync.pm:163 msgid "Confirm:" msgstr "Potwierdź:" #: lib/Padre/Wx/VCS.pm:249 msgid "Conflicted" msgstr "W konflikcie" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "Łączenie z serwerem FTP %s..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Pomyślne połączenie z serwerem FTP." #: lib/Padre/Wx/FBP/SLOC.pm:103 msgid "Constructive Cost Model (COCOMO)" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:183 #, fuzzy msgid "Content Assist" msgstr "Zawartość" #: lib/Padre/Config.pm:789 msgid "Contents of the status bar" msgstr "Zawartość paska statusu" #: lib/Padre/Config.pm:534 msgid "Contents of the window title" msgstr "Zawartość tytułu okna" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Control character" msgstr "Znak kontrolny" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Control characters" msgstr "Znaki kontrolne" #: lib/Padre/Wx/Menu/Edit.pm:188 msgid "Convert &Encoding" msgstr "Konwertuj kodowanie" #: lib/Padre/Wx/Menu/Edit.pm:210 msgid "Convert &Line Endings" msgstr "Konwertuj znaki końca wiersza" #: lib/Padre/Wx/ActionLibrary.pm:1044 msgid "Convert all tabs to spaces in the current document" msgstr "Konwertuj wszystkie tabulacje na spacje w bieżącym dokumencie" #: lib/Padre/Wx/ActionLibrary.pm:1054 msgid "Convert all the spaces to tabs in the current document" msgstr "Konwertuj wszystkie spacje na tabulacje w bieżącym dokumencie" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "Kopiuj specjalnie" #: lib/Padre/Wx/VCS.pm:263 msgid "Copied" msgstr "Skopiowany" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Kopiuj" #: lib/Padre/Wx/ActionLibrary.pm:734 msgid "Copy &Directory Name" msgstr "Kopiuj nazwę katalogu" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "Copy Editor &Content" msgstr "Kopiuj zawartość edytora" #: lib/Padre/Wx/ActionLibrary.pm:719 msgid "Copy F&ilename" msgstr "Kopiuj nazwę pliku" #: lib/Padre/Wx/ActionLibrary.pm:704 msgid "Copy Full &Filename" msgstr "Kopiuj pełną nazwę pliku" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Kopiuj nazwę" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Kopiuj wartość" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Copy filename to clipboard" msgstr "Kopiuj nazwę pliku do schowka" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Copy the current tab into a new document" msgstr "Kopiuj bieżącą kartę jako nowy dokument" #: lib/Padre/Wx/FBP/About.pm:87 msgid "" "Copyright 2008–2012 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "" "Copyright 2008-2012 Zespół Deweloperów Padre. Padre jest wolnym oprogramowaniem; \n" "możesz je dystrybuować i/lub modyfikować na takich samych zasadach jak Perl 5." #: lib/Padre/Wx/Directory/TreeCtrl.pm:197 #, perl-format msgid "Could not create: '%s': %s" msgstr "Nie można utworzyć: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, perl-format msgid "Could not delete: '%s': %s" msgstr "Nie można usunąć: '%s': %s" #: lib/Padre/Wx/Panel/Debugger.pm:599 #, perl-format msgid "Could not evaluate '%s'" msgstr "Nie można oszacować '%s'" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "Nie znaleziono KDE lub GNOME" #: lib/Padre/Wx/Dialog/HelpSearch.pm:312 msgid "Could not find a help provider for " msgstr "Nie odnaleziono dostawcy pomocy dla" #: lib/Padre/Wx/Main.pm:4288 #, perl-format msgid "Could not find file '%s'" msgstr "Nie można odnaleźć pliku '%s'" #: lib/Padre/Wx/Main.pm:2788 msgid "Could not find perl executable" msgstr "Nie odnaleziono pliku wykonywalnego perl" #: lib/Padre/Wx/Main.pm:2758 #: lib/Padre/Wx/Main.pm:2819 #: lib/Padre/Wx/Main.pm:2873 msgid "Could not find project root" msgstr "Nie odnaleziono katalogu głównego projektu" #: lib/Padre/Wx/ActionLibrary.pm:2262 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "Nie odnaleziony wtyczki Padre::Plugin::My" #: lib/Padre/PluginManager.pm:894 msgid "Could not locate project directory." msgstr "Nie odnaleziono katalogu projektu." #: lib/Padre/Wx/Main.pm:4590 #, perl-format msgid "Could not reload file: %s" msgstr "Nie można ponownie załadować pliku: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:178 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr "Nie można zmienić nazwy: '%s' na '%s': %s" #: lib/Padre/Wx/Main.pm:5026 msgid "Could not save file: " msgstr "Nie można zapisać pliku:" #: lib/Padre/Wx/CPAN.pm:230 msgid "Count" msgstr "Liczba" #: lib/Padre/Wx/Directory/TreeCtrl.pm:290 #: lib/Padre/Wx/Directory/TreeCtrl.pm:349 msgid "Create Directory" msgstr "Utwórz katalog" #: lib/Padre/Wx/ActionLibrary.pm:1793 msgid "Create Project &Tagsfile" msgstr "Utwórz plik tagów Projektu" #: lib/Padre/Wx/ActionLibrary.pm:1296 msgid "Create a bookmark in the current file current row" msgstr "Utwórz zakładkę w bieżącym wierszu bieżącego pliku" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by Gábor Szabó" msgstr "Stworzony przez Gábor Szabó" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "Tworzy Perltag-i - plik do bieżącego dokumentu wspierający find_method i autocomplete." #: lib/Padre/Wx/FBP/Preferences.pm:1149 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:673 msgid "Cu&t" msgstr "&Wytnij" #: lib/Padre/Document/Perl.pm:691 #, perl-format msgid "Current '%s' not found" msgstr "Bieżący '%s' nie znaleziony" #: lib/Padre/Wx/Dialog/OpenResource.pm:244 msgid "Current Directory: " msgstr "Katalog bieżący:" #: lib/Padre/Document/Perl.pm:672 msgid "Current cursor does not seem to point at a method" msgstr "Bieżąca pozycja kursora nie wskazuje na metodę" #: lib/Padre/Document/Perl.pm:616 #: lib/Padre/Document/Perl.pm:650 msgid "Current cursor does not seem to point at a variable" msgstr "Bieżąca pozycja kursora nie wskazuje na zmienną" #: lib/Padre/Document/Perl.pm:812 #: lib/Padre/Document/Perl.pm:862 #: lib/Padre/Document/Perl.pm:899 msgid "Current cursor does not seem to point at a variable." msgstr "Bieżąca pozycja kursora nie wskazuje na zmienną." #: lib/Padre/Wx/Main.pm:2813 #: lib/Padre/Wx/Main.pm:2864 msgid "Current document has no filename" msgstr "Bieżący dokument nie posiada nazwy pliku" #: lib/Padre/Wx/Main.pm:2867 msgid "Current document is not a .t file" msgstr "Bieżący dokument nie jest plikiem .t" #: lib/Padre/Wx/VCS.pm:204 msgid "Current file is not in a version control system" msgstr "Bieżącego pliku nie ma w systemie kontroli wersji" #: lib/Padre/Wx/VCS.pm:195 msgid "Current file is not saved in a version control system" msgstr "Bieżący plik nie został zapisany w systemie kontroli wersji" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "Numer bieżącego wiersza: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "Bieżąca pozycja: %s" #: lib/Padre/Wx/FBP/Preferences.pm:727 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "Szybkość migania kursora (milisekundy - 0 = off, 500 = domyślnie)" #: lib/Padre/Wx/ActionLibrary.pm:1878 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "Wytnij bieżące zaznaczenie i utwórz z niego nową podprocedurę. Wywołanie tej podprocedury jest dodawane w miejscu utworzenia zaznaczenia." #: lib/Padre/Locale.pm:167 #: lib/Padre/Wx/FBP/About.pm:379 msgid "Czech" msgstr "Czeski" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "D&uplicate" msgstr "D&uplikuj" #: lib/Padre/Wx/Dialog/WindowList.pm:355 msgid "DELETED" msgstr "USUNIĘTE" #: lib/Padre/Locale.pm:177 msgid "Danish" msgstr "Duński" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "Data/Czas" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:370 msgid "Debug" msgstr "Debug" #: lib/Padre/Wx/Panel/DebugOutput.pm:50 msgid "Debug Output" msgstr "Wyjście debug" #: lib/Padre/Wx/FBP/Debugger.pm:552 msgid "Debug-Output Options" msgstr "Opcje wyjścia debugera" #: lib/Padre/Wx/Panel/Debugger.pm:60 msgid "Debugger" msgstr "Debuger" #: lib/Padre/Wx/Panel/Debugger.pm:253 msgid "Debugger is already running" msgstr "Debuger już działa" #: lib/Padre/Wx/Panel/Debugger.pm:322 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "Niepowodzenie debugowania. Czy sprawdziłeś program pod kątem błędów składni?" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "Domyślne" #: lib/Padre/Wx/FBP/Preferences.pm:588 msgid "Default Newline Format:" msgstr "Domyślny format końca wiersza:" #: lib/Padre/Wx/FBP/Preferences.pm:603 msgid "Default Project Directory:" msgstr "Domyślny katalog projektów:" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Domyślna wartość:" #: lib/Padre/Wx/FBP/Preferences.pm:636 msgid "Default word wrap on for each file" msgstr "Włącz domyślnie zawijanie wierszy dla każdego pliku" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "Opóźnienie kolejki akcji o 1 sekundę" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "Opóźnienie kolejki akcji o 10 sekund" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "Opóźnienie kolejki akcji o 30 sekund" #: lib/Padre/Wx/FBP/Sync.pm:236 #: lib/Padre/Wx/Directory/TreeCtrl.pm:379 #: lib/Padre/Wx/Dialog/Preferences.pm:36 msgid "Delete" msgstr "Usuń" #: lib/Padre/Wx/FBP/Bookmarks.pm:111 msgid "Delete &All" msgstr "Usuń &wszystkie" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Delete &Leading Spaces" msgstr "Usuń spacje na początku" #: lib/Padre/Wx/Directory/TreeCtrl.pm:266 msgid "Delete Directory" msgstr "Usuń Katalog" #: lib/Padre/Wx/Directory/TreeCtrl.pm:325 msgid "Delete File" msgstr "Usuń plik" #: lib/Padre/Wx/FBP/Breakpoints.pm:43 msgid "" "Delete MARKER_NOT_BREAKABLE\n" "Current File Only" msgstr "" #: lib/Padre/Wx/FBP/SessionManager.pm:103 msgid "Delete Session" msgstr "Usuń Sesję" #: lib/Padre/Wx/FBP/Breakpoints.pm:130 msgid "Delete all project Breakpoints" msgstr "" #: lib/Padre/Wx/VCS.pm:534 msgid "Delete file from repository??" msgstr "Usunąć plik z repozytorium??" #: lib/Padre/Wx/FBP/Preferences.pm:1218 msgid "Delete the keyboard binding" msgstr "Usuń przypisanie klawiszy" #: lib/Padre/Wx/VCS.pm:247 #: lib/Padre/Wx/VCS.pm:261 msgid "Deleted" msgstr "Usunięte" #: lib/Padre/Wx/Syntax.pm:53 msgid "Deprecation" msgstr "Przestarzałe" #: lib/Padre/Wx/Dialog/Preferences.pm:171 #: lib/Padre/Wx/Dialog/SessionManager2.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "Opis" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "Opis:" #: lib/Padre/Wx/FBP/Preferences.pm:1520 msgid "Detect Perl 6 files" msgstr "Wykryj pliki Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1049 msgid "Detect indent settings for each file" msgstr "Wykryj ustawienia wcięć w każdym pliku" #: lib/Padre/Wx/FBP/About.pm:842 msgid "Development" msgstr "Rozwój" #: lib/Padre/Wx/FBP/SLOC.pm:156 msgid "Development Cost (USD):" msgstr "Koszt rozwoju (USD):" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "Nie podano nazwy zakładki" #: lib/Padre/CPAN.pm:113 #: lib/Padre/CPAN.pm:137 msgid "Did not provide a distribution" msgstr "Nie podano dystrybucji" #: lib/Padre/Wx/Dialog/Bookmarks.pm:94 msgid "Did not select a bookmark" msgstr "Nie wybrano zakładki" #: lib/Padre/Wx/FBP/Diff.pm:29 msgid "Diff" msgstr "Diff" #: lib/Padre/Wx/Dialog/Patch.pm:480 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Digits" msgstr "Cyfry" #: lib/Padre/Config.pm:637 msgid "Directories First" msgstr "Najpierw katalogi" #: lib/Padre/Config.pm:638 msgid "Directories Mixed" msgstr "Katalogi wymieszane" #: lib/Padre/Wx/Directory/TreeCtrl.pm:95 msgid "Directory" msgstr "Katalog" #: lib/Padre/Wx/FBP/FindInFiles.pm:73 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:91 msgid "Directory:" msgstr "Katalog:" #: lib/Padre/Wx/FBP/About.pm:403 msgid "Dirk De Nijs" msgstr "Dirk De Nijs" #: lib/Padre/PluginHandle.pm:27 msgid "Disabled" msgstr "Wyłączony" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Disk" msgstr "Dysk" #: lib/Padre/Wx/FBP/Debugger.pm:143 msgid "Display Value" msgstr "Wyświetl wartość" #: lib/Padre/Wx/CPAN.pm:211 #: lib/Padre/Wx/CPAN.pm:220 #: lib/Padre/Wx/CPAN.pm:229 #: lib/Padre/Wx/Dialog/About.pm:137 msgid "Distribution" msgstr "Dystrybucja" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "Nie pokazuj tego ponownie" #: lib/Padre/Wx/Main.pm:5386 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "Czy na pewno chcesz zamknąć i usunąć %s z dysku?" #: lib/Padre/Wx/VCS.pm:514 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "Czy chcesz dodać '%s' do swojego repozytorium" #: lib/Padre/Wx/VCS.pm:494 #, fuzzy msgid "Do you want to commit?" msgstr "Czy chcesz kontynuować?" #: lib/Padre/Wx/Main.pm:3118 msgid "Do you want to continue?" msgstr "Czy chcesz kontynuować?" #: lib/Padre/Wx/VCS.pm:533 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "Czy na pewno chcesz usunąć %s ze swojego repozytorium?" #: lib/Padre/Wx/Dialog/Preferences.pm:479 msgid "Do you want to override it with the selected action?" msgstr "Czy chcesz nadpisać przez wybraną akcję?" #: lib/Padre/Wx/VCS.pm:560 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "Czy chcesz przywrócić zmiany do '%s'" #: lib/Padre/Wx/FBP/Document.pm:123 msgid "Document" msgstr "Dokument" #: lib/Padre/Wx/FBP/Document.pm:67 msgid "Document Class" msgstr "Klasa dokumentu" #: lib/Padre/Wx/FBP/Document.pm:29 msgid "Document Information" msgstr "Informacja o dokumencie" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "Narzędzia dokumentów" #: lib/Padre/Wx/FBP/Document.pm:55 msgid "Document Type" msgstr "Typ dokumentu" #: lib/Padre/Wx/Main.pm:6814 #, perl-format msgid "Document encoded to (%s)" msgstr "Kodowanie dokumentu na (%s)" #: lib/Padre/Wx/Dialog/Preferences.pm:32 msgid "Down" msgstr "W dół" #: lib/Padre/Wx/FBP/Sync.pm:219 msgid "Download" msgstr "Pobierz" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "Zrzut obiektu Padre do STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Zrzut kompletnego obiektu Padre do STDOUT do testowania/debugowania." #: lib/Padre/Locale.pm:351 #: lib/Padre/Wx/FBP/About.pm:394 msgid "Dutch" msgstr "Holenderski" #: lib/Padre/Locale.pm:361 msgid "Dutch (Belgium)" msgstr "Holenderski (Belgia)" #: lib/Padre/Wx/FBP/Debugger.pm:376 msgid "" "E\n" "Display all thread ids the current one will be identified: ." msgstr "" "E\n" "Display all thread ids the current one will be identified: ." #: lib/Padre/Wx/ActionLibrary.pm:1031 msgid "EOL to &Mac Classic" msgstr "Znaki EOL do Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1021 msgid "EOL to &Unix" msgstr "Znaki EOL do Unix" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "EOL to &Windows" msgstr "Znaki EOL do Windows" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:364 msgid "Edit" msgstr "Edytuj" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Edit user and host preferences" msgstr "Edytuj preferencje użytkownika i hosta" #: lib/Padre/Wx/Dialog/WindowList.pm:224 msgid "Editor" msgstr "Edytor" #: lib/Padre/Wx/FBP/Preferences.pm:867 #, fuzzy msgid "Editor Bookmark Support" msgstr "Edytor Zakładka Wsparcie" #: lib/Padre/Wx/FBP/Preferences.pm:875 #, fuzzy msgid "Editor Code Folding" msgstr "Pokaż zwijanie kodu" #: lib/Padre/Wx/FBP/Preferences.pm:799 msgid "Editor Current Line Background Colour" msgstr "Kolor tła bieżącego wiersza edytora" #: lib/Padre/Wx/FBP/Preferences.pm:883 #, fuzzy msgid "Editor Cursor Memory" msgstr "Edytor Kursor Pamięć" #: lib/Padre/Wx/FBP/Preferences.pm:907 msgid "Editor Diff Feature" msgstr "Funkcja Diff Edytora" #: lib/Padre/Wx/FBP/Preferences.pm:775 msgid "Editor Font" msgstr "Czcionka edytora" #: lib/Padre/Wx/FBP/Preferences.pm:619 msgid "Editor Options" msgstr "Opcje edytora" #: lib/Padre/Wx/FBP/Preferences.pm:891 msgid "Editor Session Support" msgstr "Wsparcie sesji w Edytorze" #: lib/Padre/Wx/FBP/Preferences.pm:693 #: lib/Padre/Wx/FBP/Preferences.pm:1925 msgid "Editor Style" msgstr "Styl edytora" #: lib/Padre/Wx/FBP/Preferences.pm:899 #, fuzzy msgid "Editor Syntax Annotations" msgstr "Opcje edytora" #: lib/Padre/Wx/Dialog/Sync.pm:155 msgid "Email and confirmation do not match." msgstr "Email i potwierdzenie nie zgadzają się." #: lib/Padre/Wx/FBP/Sync.pm:75 #: lib/Padre/Wx/FBP/Sync.pm:120 msgid "Email:" msgstr "Email:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:651 msgid "Empty regex" msgstr "Puste wyrażenie" #: lib/Padre/Wx/FBP/PluginManager.pm:96 msgid "Enable" msgstr "Włącz" #: lib/Padre/Wx/FBP/Preferences.pm:1397 msgid "Enable Perl beginner mode" msgstr "Włącz tryb Perl dla początkujących" #: lib/Padre/Wx/FBP/Preferences.pm:652 msgid "Enable Smart highlighting while typing" msgstr "Włącz inteligentne podświetlanie podczas pisania" #: lib/Padre/Config.pm:1420 msgid "Enable document differences feature" msgstr "Włącz funkcjonalność różnic dokumentów" #: lib/Padre/Config.pm:1373 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "Włącza lub wyłącza Uruchom z Devel::EndStats, jeśli jest zainstalowane." #: lib/Padre/Config.pm:1392 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "Włącza lub wyłącza Uruchom z Devel::TraceUse, jeśli jest zainstalowane." #: lib/Padre/Config.pm:1411 msgid "Enable syntax checker annotations in the editor" msgstr "Włącz przypisy w edytorze podczas sprawdzania składni" #: lib/Padre/Config.pm:1438 msgid "Enable the CPAN Explorer, powered by MetaCPAN" msgstr "Włącz Eksplorator CPAN, napędzany przez MetaCPAN" #: lib/Padre/Config.pm:1456 msgid "Enable the experimental command line interface" msgstr "Włącz eksperymentalny interfejs wiersza poleceń" #: lib/Padre/Config.pm:1429 msgid "Enable version control system support" msgstr "Włącz wsparcie systemu kontroli wersji" #: lib/Padre/PluginHandle.pm:28 msgid "Enabled" msgstr "Włączony" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "Encode Document &to..." msgstr "Koduj Dokument w..." #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Encode Document to &System Default" msgstr "Koduj dokument w domyślnym formacie systemu" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Encode Document to &utf-8" msgstr "Koduj dokument w &utf-8" #: lib/Padre/Wx/Main.pm:6836 msgid "Encode document to..." msgstr "Koduj dokument w..." #: lib/Padre/Wx/Main.pm:6835 msgid "Encode to:" msgstr "Koduj w:" #: lib/Padre/Wx/FBP/Document.pm:91 msgid "Encoding" msgstr "Kodowanie" #: lib/Padre/Wx/Dialog/Preferences.pm:38 msgid "End" msgstr "Koniec" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "End case modification/metacharacter quoting" msgstr "Koniec modyfikacji wielkości/cytowania metaznaków" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "End of line" msgstr "Koniec wiersza" #: lib/Padre/Locale.pm:197 msgid "English" msgstr "Angielski" #: lib/Padre/Locale.pm:125 msgid "English (Australia)" msgstr "Angielski (Australia)" #: lib/Padre/Locale.pm:206 msgid "English (Canada)" msgstr "Angielski (Kanada)" #: lib/Padre/Locale.pm:215 msgid "English (New Zealand)" msgstr "Angielski (Nowa Zelandia)" #: lib/Padre/Locale.pm:86 msgid "English (United Kingdom)" msgstr "Angielski (Wielka Brytania)" #: lib/Padre/Locale.pm:226 msgid "English (United States)" msgstr "Anglieski (Stany Zjednoczone)" #: lib/Padre/Wx/FBP/About.pm:610 msgid "Enrique Nell" msgstr "Enrique Nell" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enter" msgstr "Enter" #: lib/Padre/CPAN.pm:127 msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Wprowadź adres URL do zainstalowania\n" "np. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:214 msgid "Enter parts of the resource name to find it" msgstr "Wprowadź część nazwy zasobu do znalezienia" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "Era" #: lib/Padre/PluginHandle.pm:23 #: lib/Padre/Document.pm:454 #: lib/Padre/Wx/Editor.pm:939 #: lib/Padre/Wx/Main.pm:5027 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/PluginManager.pm:206 #: lib/Padre/Wx/Dialog/Sync.pm:79 #: lib/Padre/Wx/Dialog/Sync.pm:87 #: lib/Padre/Wx/Dialog/Sync.pm:100 #: lib/Padre/Wx/Dialog/Sync.pm:118 #: lib/Padre/Wx/Dialog/Sync.pm:135 #: lib/Padre/Wx/Dialog/Sync.pm:146 #: lib/Padre/Wx/Dialog/Sync.pm:156 #: lib/Padre/Wx/Dialog/Sync.pm:174 #: lib/Padre/Wx/Dialog/Sync.pm:185 #: lib/Padre/Wx/Dialog/Sync.pm:196 #: lib/Padre/Wx/Dialog/Sync.pm:207 msgid "Error" msgstr "Błąd" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Błąd łączenia z %s:%s: %s" #: lib/Padre/Wx/Main.pm:5402 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "Błąd usuwania %s:\n" "%s" #: lib/Padre/Wx/Main.pm:5613 msgid "Error loading perl filter dialog." msgstr "Błąd ładowania okna dialogowego filtra Perl." #: lib/Padre/Wx/Dialog/PluginManager.pm:134 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Błąd ładowania POD dla klasy '%s': %s" #: lib/Padre/Wx/Main.pm:5584 msgid "Error loading regex editor." msgstr "Błąd ładowania edytora wyrażeń." #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Błąd logowania do %s:%s: %s" #: lib/Padre/Wx/Main.pm:6790 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "Błąd zwrócony przez narzędzie filtrujące:\n" "%s" #: lib/Padre/Wx/Main.pm:6772 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Błąd uruchamiania narzędzia filtra:\n" "%s" #: lib/Padre/PluginManager.pm:837 #, perl-format msgid "Error when calling menu for plug-in %s: %s" msgstr "Błąd przy próbie wywołania menu dla wtyczki %s: %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:83 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "Błąd przy próbie wywołania %s %s" #: lib/Padre/Document.pm:282 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Błąd przy ustalaniu typu MIME.\n" "Możliwe, że to błąd kodowania.\n" "Próbujesz załadować plik binarny?" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "Błąd ładowania Aspect, czy jest zainstalowany?" #: lib/Padre/Document.pm:232 msgid "Error while opening file: no file object" msgstr "Błąd otwierania pliku: brak obiektu pliku" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Błąd przy wyszukiwaniu POD" #: lib/Padre/Wx/VCS.pm:445 msgid "Error while trying to perform Padre action" msgstr "Błąd podczas przeprowadzania akcji Padre" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:91 #: lib/Padre/Wx/Dialog/OpenResource.pm:119 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Błąd podczas przeprowadzania akcji Padre: %s" #: lib/Padre/Wx/Dialog/PerlFilter.pm:328 msgid "Error:\n" msgstr "Błąd:\n" #: lib/Padre/Document/Perl.pm:510 msgid "Error: " msgstr "Błąd:" #: lib/Padre/Wx/Main.pm:6108 #: lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "Błąd: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:42 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Escape (Esc)" msgstr "Escape (Esc)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:138 msgid "Escape characters" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:132 msgid "Estimated Project Years:" msgstr "" #: lib/Padre/Wx/FBP/Expression.pm:80 msgid "Evaluate" msgstr "Oszacuj" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "Oszacuj &wyrażenie..." #: lib/Padre/Wx/FBP/Expression.pm:29 msgid "Evaluate Expression" msgstr "Oszacuj wyrażenie" #: lib/Padre/Wx/FBP/Debugger.pm:424 msgid "" "Evaluate expression\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Same as print {$DB::OUT} expr in the current package. In particular, because this is just Perl's own print function.\n" "\n" "x [maxdepth] expr\n" "Evaluates its expression in list context and dumps out the result in a pretty-printed fashion. Nested data structures are printed out recursively," msgstr "" "Oszacuj wyrażenie\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Takie jak wyrażenie print {$DB::OUT} w bieżącym pakiecie. W szczególności, ponieważ jest to własna funkcja print Perl-a.\n" "\n" "x [maxdepth] wyrażenie\n" "Szacuje wyrażenie w liście kontekstowej i zrzuca wynik wypisując w eleganckim stylu. Zagnieżdżone struktury danych są wypisane rekursywnie." #: lib/Padre/Wx/Main.pm:4800 msgid "Exist" msgstr "Istnieje" #: lib/Padre/Wx/FBP/Bookmarks.pm:63 msgid "Existing Bookmarks:" msgstr "Istniejące zakładki:" #: lib/Padre/Wx/FBP/FoundInFiles.pm:71 msgid "Expand All" msgstr "Rozwiń wszystko" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "Funkcjonalność eksperymentalna. Wpisz '?' na dole strony aby uzyskać listę poleceń. Jeśli to nie zadziała, obwiniaj szabgab.\n" "\n" #: lib/Padre/Wx/FBP/Debugger.pm:503 msgid "Expression To Evaluate" msgstr "Wyrażenie od oszacowania" #: lib/Padre/Wx/Dialog/RegexEditor.pm:484 msgid "Extended (&x)" msgstr "Rozszerzone (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "Rozszerzone wyrażenia regularne pozwalają na dowolne formatowanie (białe znaki są ignorowane) i komentaże" #: lib/Padre/Wx/ActionLibrary.pm:1876 msgid "Extract &Subroutine..." msgstr "Wydobądź podprocedurę..." #: lib/Padre/Wx/ActionLibrary.pm:1889 msgid "Extract Subroutine" msgstr "Wydobądź podprocedurę" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "Hasło FTP" #: lib/Padre/Wx/Main.pm:4920 #, perl-format msgid "Failed to create path '%s'" msgstr "Niepowodzenie tworzenia ścieżki '%s'" #: lib/Padre/Wx/Main.pm:1135 msgid "Failed to create server" msgstr "Niepowodzenie tworzenia serwera" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "Niepowodzenie usuwania fragmentu POD" #: lib/Padre/PluginHandle.pm:402 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Niepowodzenie wyłączania wtyczki '%s': %s" #: lib/Padre/PluginHandle.pm:272 #: lib/Padre/PluginHandle.pm:299 #: lib/Padre/PluginHandle.pm:322 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Niepowodzenie włączania wtyczki '%s': %s" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "Niepowodzenie wykonywania procesu\n" #: lib/Padre/Wx/ActionLibrary.pm:1228 msgid "Failed to find any matches" msgstr "Niepowodzenie wyszukania dopasowania" #: lib/Padre/CPAN.pm:83 msgid "Failed to find your CPAN configuration" msgstr "Niepowodzenie odnajdywania Twojej konfiguracji CPAN" #: lib/Padre/PluginManager.pm:916 #: lib/Padre/PluginManager.pm:1010 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Niepowodzenie ładowania wtyczki '%s'\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "Niepowodzenie łączenia fragmentów POD" #: lib/Padre/Wx/Main.pm:3050 #, perl-format msgid "Failed to start '%s' command" msgstr "Niepowodzenie uruchamiania polecenia '%s'" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Fałsz" #: lib/Padre/Wx/Syntax.pm:65 msgid "Fatal Error" msgstr "Fatalny błąd" #: lib/Padre/Wx/FBP/CPAN.pm:278 msgid "Favorite" msgstr "Ulubione" #: lib/Padre/Wx/FBP/About.pm:176 #: lib/Padre/Wx/FBP/About.pm:352 msgid "Fayland Lam" msgstr "Fayland Lam" #: lib/Padre/Wx/FBP/Preferences.pm:1926 msgid "Features" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:363 #: lib/Padre/Wx/Dialog/WindowList.pm:223 #: lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "Plik" #: lib/Padre/Wx/Menu/File.pm:394 #, perl-format msgid "File %s not found." msgstr "Nie znaleziono pliku %s." #: lib/Padre/Wx/FBP/Preferences.pm:1929 msgid "File Handling" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:391 msgid "File Outline" msgstr "Plan pliku" #: lib/Padre/Wx/FBP/Document.pm:210 msgid "File Size (Bytes)" msgstr "Rozmiar pliku (Bajty)" #: lib/Padre/Wx/FBP/FindInFiles.pm:106 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:124 msgid "File Types:" msgstr "Typy plików:" #: lib/Padre/Wx/Main.pm:4906 msgid "File already exists" msgstr "Plik już istnieje." #: lib/Padre/Wx/Main.pm:4799 msgid "File already exists. Overwrite it?" msgstr "Plik już istnieje. Czy go zastąpić?" #: lib/Padre/Wx/Main.pm:5016 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Plik na dysku został zmieniony od ostatniego zapisu. Czy chcesz go zastąpić?" #: lib/Padre/Wx/Main.pm:5111 msgid "File changed. Do you want to save it?" msgstr "Plik został zmieniony. Czy chcesz go zapisać?" #: lib/Padre/Wx/ActionLibrary.pm:295 #: lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "Plik nie należy do projektu" #: lib/Padre/Wx/Main.pm:4464 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "Nazwa pliku %s zawiera * lub ? które są znakami specjalnymi w większości komputerów. Pominąć?" #: lib/Padre/Wx/Main.pm:4484 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "Nazwa pliku %s nie występuje na dysku. Pominąć?" #: lib/Padre/Wx/Main.pm:5017 msgid "File not in sync" msgstr "Plik nie jest zsynchronizowany" #: lib/Padre/Wx/Main.pm:5380 msgid "File was never saved and has no filename - can't delete from disk" msgstr "Plik nigdy nie został zapisany i nie posiada nazwy - nie można usunąć z dysku" #: lib/Padre/Wx/FBP/Patch.pm:138 msgid "File-1" msgstr "Plik-1" #: lib/Padre/Wx/FBP/Patch.pm:161 msgid "File-2" msgstr "Plik-2" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Plik/Katalog" #: lib/Padre/Wx/Notebook.pm:70 msgid "Files" msgstr "Pliki" #: lib/Padre/Wx/FBP/SLOC.pm:55 msgid "Files:" msgstr "Pliki:" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Polecenie filtrowania:" #: lib/Padre/Wx/ActionLibrary.pm:1134 msgid "Filter through &Perl..." msgstr "Filtruj przez &Perl..." #: lib/Padre/Wx/ActionLibrary.pm:1125 msgid "Filter through E&xternal Tool..." msgstr "Filtruj przez narzędzie z&ewnętrzne..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Filtruj przez narzędzie" #: lib/Padre/Wx/FBP/Snippet.pm:38 msgid "Filter:" msgstr "Filtr:" #: lib/Padre/Wx/ActionLibrary.pm:1126 msgid "Filters the selection (or the whole document) through any external command." msgstr "Filtruje zaznaczenie (lub cały dokument) przez dowolne zewnętrzne polecenie." #: lib/Padre/Wx/FBP/Find.pm:30 msgid "Find" msgstr "Znajdź" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "Zn&ajdź wszystkie" #: lib/Padre/Wx/ActionLibrary.pm:1754 msgid "Find &Method Declaration" msgstr "Znajdź deklarację metody" #: lib/Padre/Wx/ActionLibrary.pm:1208 msgid "Find &Next" msgstr "Znajdź &następny" #: lib/Padre/Wx/ActionLibrary.pm:1742 msgid "Find &Variable Declaration" msgstr "Znajdź deklarację zmiennej" #: lib/Padre/Wx/ActionLibrary.pm:1730 msgid "Find Unmatched &Brace" msgstr "Znajdź niedomknięty nawias" #: lib/Padre/Wx/ActionLibrary.pm:1250 msgid "Find in Fi&les..." msgstr "Znajdź w p&likach..." #: lib/Padre/Wx/FBP/Preferences.pm:485 #: lib/Padre/Wx/FBP/FindInFiles.pm:32 #: lib/Padre/Wx/Panel/FoundInFiles.pm:438 msgid "Find in Files" msgstr "Znajdź w plikach" #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find text and replace it" msgstr "Znajdź tekst i zastąp go" #: lib/Padre/Wx/ActionLibrary.pm:1168 msgid "Find text or regular expressions using a traditional dialog" msgstr "Znajdź tekst lub wyrażenie regularne przy użyciu tradycyjnego okna dialogowego" #: lib/Padre/Wx/ActionLibrary.pm:1755 msgid "Find where the selected function was defined and put the focus there." msgstr "Znajdź miejsce gdzie funkcja została zdefiniowana i ustaw tam kursor." #: lib/Padre/Wx/ActionLibrary.pm:1743 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "Znajdź miejsce gdzie wybrana zmienna została zadeklarowana przy użyciu \"my\" i ustaw kursor w tym miejscu." #: lib/Padre/Wx/FBP/FindFast.pm:55 msgid "Find:" msgstr "Znajdź:" #: lib/Padre/Document/Perl.pm:948 msgid "First character of selection does not seem to point at a token." msgstr "Pierwszy znak zaznaczenia nie wydaje się wskazywać tokena" #: lib/Padre/Wx/Editor.pm:1904 msgid "First character of selection must be a non-word character to align" msgstr "Pierwszy znak zaznaczenia, do którego wyrównać, musi nie być znakiem wyrazu" #: lib/Padre/Wx/ActionLibrary.pm:1519 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "Zwiń wszystkie bloki które mogą być zwijane (zwijanie musi być włączone)" #: lib/Padre/Wx/Menu/View.pm:178 msgid "Font Si&ze" msgstr "Rozmiar czcionki" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "Dla nowych dokumentów próbuj zgadnąć nazwę pliku bazując na zawartości pliku i zaproponuj jego zapisanie." #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Form feed" msgstr "" #: lib/Padre/Wx/Syntax.pm:472 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "Znaleziono %d problem(ów) w %s w czasie %3.2f sekund." #: lib/Padre/Wx/Syntax.pm:478 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "Znaleziono %d problem(ów) w czasie %3.2f sekund." #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "Znaleziono temat(y) pomocy %s\n" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "Znaleziono %s niezaładowanych modułów" #: lib/Padre/Locale.pm:283 #: lib/Padre/Wx/FBP/About.pm:409 msgid "French" msgstr "Francuski" #: lib/Padre/Locale.pm:269 msgid "French (Canada)" msgstr "Francuski (Kanada)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Przyjaciel" #: lib/Padre/Wx/ActionLibrary.pm:1664 msgid "Full Sc&reen" msgstr "&Pełen ekran\tF11" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Procedura" #: lib/Padre/Wx/FBP/Preferences.pm:56 #: lib/Padre/Wx/FBP/Preferences.pm:376 msgid "Function List" msgstr "Lista procedur" #: lib/Padre/Wx/FunctionList.pm:148 msgid "Functions" msgstr "Procedury" #: lib/Padre/Wx/FBP/About.pm:116 msgid "Gabor Szabo" msgstr "Gabor Szabo" #: lib/Padre/Wx/FBP/About.pm:302 #: lib/Padre/Wx/FBP/About.pm:589 msgid "Gabriel Vieira" msgstr "Gabriel Vieira" #: lib/Padre/Locale.pm:187 #: lib/Padre/Wx/FBP/About.pm:430 msgid "German" msgstr "Niemiecki" #: lib/Padre/Wx/Dialog/RegexEditor.pm:489 msgid "Global (&g)" msgstr "Globalny (&g)" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr "Idź do" #: lib/Padre/Wx/ActionLibrary.pm:2446 msgid "Go to &Command Line Window" msgstr "Idź do okna wiersza poleceń" #: lib/Padre/Wx/ActionLibrary.pm:2401 msgid "Go to &Functions Window" msgstr "Idź do okna procedur" #: lib/Padre/Wx/ActionLibrary.pm:2457 msgid "Go to &Main Window" msgstr "Idź do okna głównego\tAlt-M" #: lib/Padre/Wx/ActionLibrary.pm:1306 msgid "Go to Bookmar&k..." msgstr "Idź do zakładki..." #: lib/Padre/Wx/ActionLibrary.pm:2390 msgid "Go to CPAN E&xplorer Window" msgstr "Idź do okna Eksploratora CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2413 msgid "Go to O&utline Window" msgstr "Idź do okna planu" #: lib/Padre/Wx/ActionLibrary.pm:2424 msgid "Go to Ou&tput Window" msgstr "Idź do okna wyniku\tAlt-O" #: lib/Padre/Wx/ActionLibrary.pm:2435 msgid "Go to S&yntax Check Window" msgstr "Idź do okna sprawdzania składni\tAlt-C" #: lib/Padre/Wx/FBP/Preferences.pm:923 msgid "Graphical Debugger Tool" msgstr "Narzędzie graficznego debugera" #: lib/Padre/Wx/Dialog/RegexEditor.pm:123 msgid "Grouping constructs" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1016 msgid "Guess from Current Document" msgstr "Zgadnij na podstawie bieżącego dokumentu" #: lib/Padre/Wx/FBP/About.pm:493 msgid "Gyorgy Pasztor" msgstr "Gyorgy Pasztor" #: lib/Padre/Locale.pm:293 #: lib/Padre/Wx/FBP/About.pm:457 msgid "Hebrew" msgstr "Hebrajski" #: lib/Padre/Wx/FBP/About.pm:194 #: lib/Padre/Wx/FBP/About.pm:439 msgid "Heiko Jansen" msgstr "Heiko Jansen" #: lib/Padre/Wx/Browser.pm:63 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:373 msgid "Help" msgstr "Pomo&c" #: lib/Padre/Wx/Dialog/HelpSearch.pm:41 #: lib/Padre/Wx/Dialog/HelpSearch.pm:98 msgid "Help Search" msgstr "Pomoc wyszukiwania" #: lib/Padre/Wx/ActionLibrary.pm:2582 msgid "Help by translating Padre to your local language" msgstr "Pomóż tłumacząc Padre na swój język" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "Nie znaleziono pomocy." #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Hex character" msgstr "Znak szesnastkowy." #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Hexadecimal digits" msgstr "Cyfry szesnastkowe." #: lib/Padre/Wx/ActionLibrary.pm:1564 msgid "Highlight the line where the cursor is" msgstr "Podświetl wiersz w której jest kursor" #: lib/Padre/Wx/Directory.pm:595 msgid "Hit unfixed bug in directory browser, disabling it" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Home" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "Host" #: lib/Padre/Wx/Main.pm:6287 msgid "How many spaces for each tab:" msgstr "Ile spacji na każdy tabulator:" #: lib/Padre/Locale.pm:303 #: lib/Padre/Wx/FBP/About.pm:484 msgid "Hungarian" msgstr "Węgierski" #: lib/Padre/Wx/ActionLibrary.pm:1346 msgid "If activated, do not allow moving around some of the windows" msgstr "Jeśli aktywne, nie pozwalaj na poruszanie się po niektórych oknach" #: lib/Padre/Wx/Dialog/RegexEditor.pm:472 msgid "Ignore case (&i)" msgstr "Ignoruj wielkość (&i)" #: lib/Padre/Wx/VCS.pm:250 #: lib/Padre/Wx/FBP/VCS.pm:205 msgid "Ignored" msgstr "Ignorowany" #: lib/Padre/Wx/FBP/Preferences.pm:1475 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "dołącz katalog: -I\n" "włącz sprawdzanie skażenia danych: -T\n" "włącz wiele przydatnych ostrzeżeń: -w\n" "włącz wszystkie ostrzeżenia: -W\n" "wyłącz wszystkie ostrzeżenia: -X" #: lib/Padre/PluginHandle.pm:26 msgid "Incompatible" msgstr "Niekompatybilny" #: lib/Padre/Config.pm:897 msgid "Indent Deeply" msgstr "Głębokie wcięcie" #: lib/Padre/Wx/FBP/Preferences.pm:1032 msgid "Indent Detection" msgstr "Wykrywanie wcięć" #: lib/Padre/Wx/FBP/Preferences.pm:955 msgid "Indent Settings" msgstr "Ustawienia wcięć" #: lib/Padre/Wx/FBP/Preferences.pm:980 msgid "Indent Spaces:" msgstr "Odstępy wcięcia:" #: lib/Padre/Wx/FBP/Preferences.pm:1074 msgid "Indent on Newline:" msgstr "Wcięcie w nowym wierszu:" #: lib/Padre/Config.pm:896 msgid "Indent to Same Depth" msgstr "Wcięcia o jednakowej głębokości" #: lib/Padre/Wx/FBP/Preferences.pm:1927 msgid "Indentation" msgstr "Wcięcie" #: lib/Padre/Wx/FBP/About.pm:844 msgid "Information" msgstr "Informacja" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "Wejście/Wyjście:" #: lib/Padre/Wx/FBP/Snippet.pm:118 #: lib/Padre/Wx/FBP/Special.pm:78 #: lib/Padre/Wx/Menu/Edit.pm:119 #: lib/Padre/Wx/Dialog/Preferences.pm:35 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:270 msgid "Insert" msgstr "Wstaw" #: lib/Padre/Wx/FBP/Snippet.pm:29 msgid "Insert Snippet" msgstr "Wstaw fragment" #: lib/Padre/Wx/FBP/Special.pm:29 msgid "Insert Special Values" msgstr "Wstaw specjalne wartości" #: lib/Padre/Wx/FBP/CPAN.pm:207 #, fuzzy msgid "Insert Synopsis" msgstr "Wstaw fragment" #: lib/Padre/Wx/FBP/CPAN.pm:239 msgid "Install" msgstr "Instaluj" #: lib/Padre/Wx/ActionLibrary.pm:2331 msgid "Install &Remote Distribution" msgstr "Zainstaluj zdalną dystrybucję" #: lib/Padre/Wx/ActionLibrary.pm:2321 msgid "Install L&ocal Distribution" msgstr "Zainstaluj lokalną dystrybucję" #: lib/Padre/CPAN.pm:128 msgid "Install Local Distribution" msgstr "Zainstaluj lokalną dystrybucję" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Całkowity" #: lib/Padre/Wx/Syntax.pm:71 msgid "Internal Error" msgstr "Błąd wewnętrzny" #: lib/Padre/Wx/Main.pm:6109 msgid "Internal error" msgstr "Błąd wewnętrzny" #: lib/Padre/Wx/ActionLibrary.pm:1903 msgid "Introduce &Temporary Variable..." msgstr "Wprowadź zmienną tymczasową..." #: lib/Padre/Wx/ActionLibrary.pm:1912 msgid "Introduce Temporary Variable" msgstr "Wprowadź zmienną tymczasową" #: lib/Padre/Locale.pm:317 #: lib/Padre/Wx/FBP/About.pm:499 msgid "Italian" msgstr "Włoski" #: lib/Padre/Wx/FBP/Preferences.pm:105 #, fuzzy msgid "Item Regular Expression:" msgstr "Wyrażenie ®ularne " #: lib/Padre/Locale.pm:327 #: lib/Padre/Wx/FBP/About.pm:514 msgid "Japanese" msgstr "Japoński" #: lib/Padre/Wx/Main.pm:4407 msgid "JavaScript Files" msgstr "Pliki JavaScript" #: lib/Padre/Wx/FBP/About.pm:146 #: lib/Padre/Wx/FBP/About.pm:418 msgid "Jerome Quelin" msgstr "Jerome Quelin" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Join the next line to the end of the current line." msgstr "Dołącz następny wiersz na końcu bieżącego." #: lib/Padre/Wx/ActionLibrary.pm:1283 msgid "Jump to a specific line number or character position" msgstr "Przeskocz do konkretnego numeru wiersza lub pozycji znaku" #: lib/Padre/Wx/ActionLibrary.pm:792 msgid "Jump to the code that has been changed" msgstr "Przeskocz do kodu który został zmieniony" #: lib/Padre/Wx/ActionLibrary.pm:781 msgid "Jump to the code that triggered the next error" msgstr "Przeskocz do kodu który wywołał następny błąd" #: lib/Padre/Wx/ActionLibrary.pm:872 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Przeskocz do pasującego nawiasu otwierającego lub zamykającego: { }, ( ), [ ], < >" #: lib/Padre/Wx/FBP/About.pm:278 msgid "Kaare Rasmussen" msgstr "Kaare Rasmussen" #: lib/Padre/Wx/FBP/About.pm:290 msgid "Kartik Thakore" msgstr "Kartik Thakore" #: lib/Padre/Wx/FBP/About.pm:248 #: lib/Padre/Wx/FBP/About.pm:538 msgid "Keedi Kim" msgstr "Keedi Kim" #: lib/Padre/Wx/FBP/About.pm:242 #: lib/Padre/Wx/FBP/About.pm:523 msgid "Kenichi Ishigaki" msgstr "Kenichi Ishigaki" #: lib/Padre/Wx/Dialog/About.pm:142 msgid "Kernel" msgstr "Jądro" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Kevin Dawson" msgstr "Kevin Dawson" #: lib/Padre/Wx/FBP/Preferences.pm:1928 msgid "Key Bindings" msgstr "Przypisana klawisze" #: lib/Padre/Wx/FBP/About.pm:553 msgid "Kjetil Skotheim" msgstr "Kjetil Skotheim" #: lib/Padre/Locale.pm:465 msgid "Klingon" msgstr "Klingoński" #: lib/Padre/Locale.pm:337 #: lib/Padre/Wx/FBP/About.pm:529 msgid "Korean" msgstr "Koreański" #: lib/Padre/Wx/FBP/Debugger.pm:296 msgid "" "L [abw]\n" "List (default all) actions, breakpoints and watch expressions" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "" #: lib/Padre/Wx/Menu/View.pm:210 msgid "Lan&guage" msgstr "Język" #: lib/Padre/Wx/FBP/Preferences.pm:1930 msgid "Language - Perl 5" msgstr "Język - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:1931 msgid "Language - Perl 6" msgstr "Język - Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1380 #: lib/Padre/Wx/FBP/Preferences.pm:1503 msgid "Language Integration" msgstr "Integracja języka" #: lib/Padre/Wx/Dialog/SessionManager2.pm:30 msgid "Last Updated" msgstr "Ostatnia aktualizacja" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "Ostatnia aktualizacja" #: lib/Padre/Wx/ActionLibrary.pm:2111 msgid "Launch Debugger" msgstr "Uruchom debuger" #: lib/Padre/Wx/Dialog/Preferences.pm:33 msgid "Left" msgstr "Lewy" #: lib/Padre/Config.pm:59 msgid "Left Panel" msgstr "Panel lewy" #: lib/Padre/Wx/FBP/Diff.pm:72 msgid "Left side" msgstr "Lewa strona" #: lib/Padre/Wx/ActionLibrary.pm:1781 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "" #: lib/Padre/Wx/Syntax.pm:507 #, perl-format msgid "Line %d: (%s) %s" msgstr "Wiersz %d: (%s) %s" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "Wiersz %d: %s" #: lib/Padre/Wx/Dialog/Goto.pm:342 msgid "Line number" msgstr "Numer wiersza" #: lib/Padre/Wx/FBP/Document.pm:138 #: lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "Wierszy" #: lib/Padre/Wx/Dialog/WindowList.pm:210 msgid "List of open files" msgstr "Lista otwartych plików" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Lista sesji" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "List the files that match the current selection and let the user pick one to open" msgstr "Listuje pliki pasujące do bieżącego zaznaczenia i pozwala użytkownikowi na wybranie jednego do otwarcia" #: lib/Padre/PluginHandle.pm:25 msgid "Loaded" msgstr "Załadowany" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "Załadowano %s moduł(ów)" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Loc&k User Interface" msgstr "Zablokuj interfejs użytkownika" #: lib/Padre/Wx/FBP/Preferences.pm:1276 msgid "Local file update poll interval in seconds (0 to disable)" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:58 msgid "Logged out" msgstr "Wylogowany" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Logowanie do serwera FTP jako %s..." #: lib/Padre/Wx/FBP/Sync.pm:104 msgid "Login" msgstr "Login" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Long hex character" msgstr "" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Wyszukiwanie Net::FTP..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Lowercase characters" msgstr "Małe litery" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Lowercase next character" msgstr "Następny znak zmienia na małą literę" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Lowercase till \\E" msgstr "Zmieniaj na małe litery aż do \\E" #: lib/Padre/Wx/FBP/Debugger.pm:336 msgid "" "M\n" "Display all loaded modules and their versions." msgstr "" "M\n" "Wyświetla wszystkie załadowane modułu i ich wersje.." #: lib/Padre/Wx/FBP/Document.pm:79 msgid "MIME Type" msgstr "Typ MIME" #: lib/Padre/Wx/ActionLibrary.pm:1629 msgid "Make the letters bigger in the editor window" msgstr "Zwiększa litery w oknie edytora" #: lib/Padre/Wx/ActionLibrary.pm:1639 msgid "Make the letters smaller in the editor window" msgstr "Zmniejsza litery w oknie edytora" #: lib/Padre/Wx/FBP/About.pm:388 msgid "Marcela Maslanova" msgstr "Marcela Maslanova" #: lib/Padre/Wx/ActionLibrary.pm:646 msgid "Mark Selection &End" msgstr "Oznacz koniec zaznaczenia\tCtrl-]" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Mark Selection &Start" msgstr "Oznacz początek zaznaczenia\tCtrl-[" #: lib/Padre/Wx/ActionLibrary.pm:647 msgid "Mark the place where the selection should end" msgstr "Zaznacz miejsce gdzie zaznaczenie powinno się zakończyć" #: lib/Padre/Wx/ActionLibrary.pm:635 msgid "Mark the place where the selection should start" msgstr "Zaznacz miejsce gdzie zaznaczenie powinno się rozpocząć" #: lib/Padre/Wx/Dialog/RegexEditor.pm:102 msgid "Match 0 or more times" msgstr "Dopasuj 0 lub więcej razy" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or 0 times" msgstr "Dopasuj 1 lub 0 razy" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 1 or more times" msgstr "Dopasuj 1 lub więcej razy" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least m but not more than n times" msgstr "Dopasuj co najmniej m, ale nie więcej niż n razy" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match at least n times" msgstr "Dopasuj co najmniej n razy" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match exactly m times" msgstr "Dopasuj dokładnie m razy" #: lib/Padre/Wx/Dialog/RegexEditor.pm:677 #, perl-format msgid "Match failure in %s: %s" msgstr "Niepowodzenie dopasowania w %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:688 #, perl-format msgid "Match warning in %s: %s" msgstr "Ostrzeżenie dopasowania w %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:697 #, perl-format msgid "Match with 0 width at character %s" msgstr "Dopasowanie z długością 0 na znaku %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:235 msgid "Matched text:" msgstr "Tekst dopasowania:" #: lib/Padre/Wx/FBP/About.pm:373 msgid "Matthew Lien" msgstr "Matthew Lien" #: lib/Padre/Wx/FBP/About.pm:254 msgid "Max Maischein" msgstr "Max Maischein" #: lib/Padre/Wx/FBP/Preferences.pm:242 msgid "Maximum number of suggestions" msgstr "Maksymalna liczba podpowiedzi" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Komunikat" #: lib/Padre/Wx/FBP/CPAN.pm:223 msgid "MetaCPAN..." msgstr "MetaCPAN..." #: lib/Padre/Wx/Outline.pm:382 msgid "Methods" msgstr "Metody:" #: lib/Padre/Wx/FBP/Preferences.pm:260 msgid "Minimum characters for autocomplete" msgstr "Minimalna liczba znaków automatycznego uzupełniania" #: lib/Padre/Wx/FBP/Preferences.pm:224 msgid "Minimum length of suggestions" msgstr "Minimalna liczba podpowiedzi" #: lib/Padre/Wx/FBP/Preferences.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:111 msgid "Miscellaneous" msgstr "Różności" #: lib/Padre/Wx/VCS.pm:252 msgid "Missing" msgstr "Brakujący" #: lib/Padre/Wx/VCS.pm:248 #: lib/Padre/Wx/VCS.pm:259 msgid "Modified" msgstr "Zmodyfikowany" #: lib/Padre/Document/Perl/Starter.pm:122 msgid "Module Name:" msgstr "Nazwa Modułu:" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Nazwa modułu:" #: lib/Padre/Wx/Outline.pm:381 msgid "Modules" msgstr "Moduły" #: lib/Padre/Wx/Dialog/RegexEditor.pm:480 msgid "Multi-line (&m)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2256 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "My Plug-in jest wtyczką w której deweloperzy mogą rozszerzyć swoją instalację Padre" #: lib/Padre/Wx/FBP/SLOC.pm:120 msgid "Mythical Man Months:" msgstr "" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "NAZWA" #: lib/Padre/Wx/Dialog/SessionManager2.pm:28 #: lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "Nazwa" #: lib/Padre/Wx/ActionLibrary.pm:1888 msgid "Name for the new subroutine" msgstr "Nazwa nowej podprocedury" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "No&wy" #: lib/Padre/Wx/Main.pm:6615 msgid "Need to select text in order to translate numbers" msgstr "Należy zaznaczyć tekst by przetłumaczyć go na liczby" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Negative lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Negative lookbehind assertion" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:571 msgid "New File Creation" msgstr "Tworzenie nowego pliku" #: lib/Padre/Wx/Directory/TreeCtrl.pm:381 msgid "New Folder" msgstr "Nowy Folder" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "Ankieta nowej instalacji" #: lib/Padre/Document/Perl/Starter.pm:123 #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Nowy moduł" #: lib/Padre/Document/Perl.pm:822 msgid "New name" msgstr "Nowa nazwa" #: lib/Padre/PluginManager.pm:393 msgid "New plug-ins detected" msgstr "Wykryto nowe wtyczki" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Newline" msgstr "Znak nowego wiersza" #: lib/Padre/Wx/FBP/Document.pm:103 msgid "Newline Type" msgstr "Typ nowego wiersza:" #: lib/Padre/Wx/Diff2.pm:29 #: lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "Następna różnica" #: lib/Padre/Config.pm:895 msgid "No Autoindent" msgstr "Brak automatycznych wcięć:" #: lib/Padre/Wx/Main.pm:2785 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Nie znaleziono Build.PL ani Makefile.PL, ani dist.ini" #: lib/Padre/Wx/Dialog/HelpSearch.pm:95 msgid "No Help found" msgstr "Nie znaleziono Pomocy" #: lib/Padre/Wx/Diff.pm:260 msgid "No changes found" msgstr "Nie znaleziono zmian" #: lib/Padre/Document/Perl.pm:652 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Nie odnaleziono deklaracji danej zmiennej" #: lib/Padre/Document/Perl.pm:901 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Nie odnaleziono deklaracji danej zmiennej (leksykalnej?)" #: lib/Padre/Wx/Main.pm:2752 #: lib/Padre/Wx/Main.pm:2807 #: lib/Padre/Wx/Main.pm:2858 msgid "No document open" msgstr "Brak otwartego dokumentu" #: lib/Padre/Task/CPAN.pm:183 #, perl-format msgid "No documentation for '%s'" msgstr "Brak dokumentacji dla '%s'" #: lib/Padre/Document/Perl.pm:512 msgid "No errors found." msgstr "Nie znaleziono błędów." #: lib/Padre/Wx/Syntax.pm:454 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "Nie znaleziono błędów ani ostrzeżeń w %s w czasie %3.2f sekund." #: lib/Padre/Wx/Syntax.pm:459 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "Nie znaleziono błędów ani ostrzeżeń w czasie %3.2f sekund." #: lib/Padre/Wx/Main.pm:3093 msgid "No execution mode was defined for this document type" msgstr "Nie zdefiniowano trybu uruchomienia dla tego dokumentu" #: lib/Padre/PluginManager.pm:891 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Brak nazwy pliku" #: lib/Padre/Wx/Dialog/RegexEditor.pm:716 msgid "No match" msgstr "Brak dopasowania" #: lib/Padre/Wx/Dialog/Find.pm:63 #: lib/Padre/Wx/Dialog/Replace.pm:135 #: lib/Padre/Wx/Dialog/Replace.pm:158 #, perl-format msgid "No matches found for \"%s\"." msgstr "Nie znaleziono dopasowań dla dla \"%s\"." #: lib/Padre/Wx/Main.pm:3075 msgid "No open document" msgstr "Brak otwartego dokumentu" #: lib/Padre/Config.pm:486 msgid "No open files" msgstr "Nie otwarto plików" #: lib/Padre/Wx/ReplaceInFiles.pm:258 #: lib/Padre/Wx/Panel/FoundInFiles.pm:307 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "Brak wyników wyszukiwania '%s' wewnątrz '%s'" #: lib/Padre/Wx/Main.pm:931 #, perl-format msgid "No such session %s" msgstr "Brak sesji %s" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "No suggestions" msgstr "Brak podpowiedzi" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "Non-capturing group" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:27 msgid "None" msgstr "Żaden" #: lib/Padre/Wx/VCS.pm:245 #: lib/Padre/Wx/FBP/VCS.pm:173 msgid "Normal" msgstr "Normalny" #: lib/Padre/Locale.pm:371 #: lib/Padre/Wx/FBP/About.pm:544 msgid "Norwegian" msgstr "Norweski" #: lib/Padre/Wx/Panel/Debugger.pm:257 msgid "Not a Perl document" msgstr "To nie jest dokument Perl" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "Wartość ujemna!" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "Not a word boundary" msgstr "" #: lib/Padre/Wx/Main.pm:4246 msgid "Nothing selected. Enter what should be opened:" msgstr "Brak zaznaczenia. Wpisz co ma być otwarte:" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "Teraz" #: lib/Padre/Wx/FBP/SLOC.pm:144 msgid "Number of Developers:" msgstr "Liczba deweloperów:" #: lib/Padre/Wx/Menu/File.pm:84 msgid "O&pen" msgstr "Otwórz" #: lib/Padre/Wx/FBP/Bookmarks.pm:86 #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "OK" #: lib/Padre/Wx/VCS.pm:253 #, fuzzy msgid "Obstructed" msgstr "bez ograniczeń" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Octal character" msgstr "Znak ósemkowo" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "Offer completions to the current string. See Preferences" msgstr "Proponuje uzupełnianie bieżącego łańcucha. Patrz Preferencje" #: lib/Padre/Wx/FBP/About.pm:260 #: lib/Padre/Wx/FBP/About.pm:424 msgid "Olivier Mengue" msgstr "Olivier Mengue" #: lib/Padre/Wx/FBP/About.pm:466 msgid "Omer Zak" msgstr "Omer Zak" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Tylko jeden fragment POD, nie będzie łączony" #: lib/Padre/Wx/ActionLibrary.pm:2341 msgid "Open &CPAN Config File" msgstr "Otwórz plik konfiguracyjny &CPAN" #: lib/Padre/Wx/Outline.pm:150 msgid "Open &Documentation" msgstr "Otwórz &dokumentację" #: lib/Padre/Wx/ActionLibrary.pm:251 msgid "Open &Example" msgstr "Otwórz przykład" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open &Last Closed File" msgstr "Otwórz ostatnio zamknięty plik" #: lib/Padre/Wx/ActionLibrary.pm:1320 msgid "Open &Resources..." msgstr "Otwórz Zasoby..." #: lib/Padre/Wx/ActionLibrary.pm:463 msgid "Open &Selection" msgstr "Otwórz zaznaczenie" #: lib/Padre/Wx/ActionLibrary.pm:206 msgid "Open &URL..." msgstr "Otwórz &URL..." #: lib/Padre/Wx/ActionLibrary.pm:2342 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "Otwórz CPAN::MyConfig.pm do ręcznej konfiguracji przez ekspertów" #: lib/Padre/Wx/FBP/Preferences.pm:1329 msgid "Open FTP Files" msgstr "Otwórz pliki FTP" #: lib/Padre/Wx/Main.pm:4431 #: lib/Padre/Wx/Directory/TreeCtrl.pm:302 msgid "Open File" msgstr "Otwórz plik" #: lib/Padre/Wx/FBP/Preferences.pm:540 msgid "Open Files:" msgstr "Otwórz pliki:" #: lib/Padre/Wx/FBP/Preferences.pm:1294 msgid "Open HTTP Files" msgstr "Otwórz pliki HTTP" #: lib/Padre/Wx/Dialog/OpenResource.pm:33 #: lib/Padre/Wx/Dialog/OpenResource.pm:79 msgid "Open Resources" msgstr "Otwórz Zasoby" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "Open S&ession..." msgstr "Otwórz s&esję...\tCtrl-Alt-O" #: lib/Padre/Wx/Main.pm:4289 msgid "Open Selection" msgstr "Otwórz zaznaczenie" #: lib/Padre/Wx/FBP/SessionManager.pm:86 msgid "Open Session" msgstr "Otwórz sesję" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "Otwórz URL" #: lib/Padre/Wx/Main.pm:4467 #: lib/Padre/Wx/Main.pm:4487 msgid "Open Warning" msgstr "Otwórz ostrzeżenie" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 module" msgstr "Otwiera dokument ze szkieletem modułu Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "Otwiera dokument ze szkieletem skryptu Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Otwiera dokument ze szkieletem skryptu testu Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Open a document with a skeleton Perl 6 script" msgstr "Otwiera dokument ze szkieletem skryptu Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Open a file from a remote location" msgstr "Otwiera plik ze zdalnej lokalizacji" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "Otwiera nowy pusty dokument" #: lib/Padre/Wx/ActionLibrary.pm:524 msgid "Open all the files listed in the recent files list" msgstr "Otwiera wszystkie pliki wymienione w liście ostatnio otwartych plików" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "Otwórz przeglądarkę na wyszukiwaniu w CPAN wyświetlając pakiety Padre::Plugin" #: lib/Padre/Wx/Menu/File.pm:395 msgid "Open cancelled" msgstr "Otwórz anulowane" #: lib/Padre/PluginManager.pm:964 #: lib/Padre/Wx/Main.pm:6001 msgid "Open file" msgstr "Otwórz plik" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Open in &Command Line" msgstr "Otwórz w wierszu poleceń" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open in File &Browser" msgstr "Otwórz w przeglądarce plików" #: lib/Padre/Wx/Directory/TreeCtrl.pm:253 #: lib/Padre/Wx/Directory/TreeCtrl.pm:312 msgid "Open in File Browser" msgstr "Otwórz w przeglądarce plików" #: lib/Padre/Wx/ActionLibrary.pm:2176 msgid "Open interesting and helpful Padre Wiki in your default web browser" msgstr "Otwórz interesującą i pomocną Wiki Padre w domyślnej przeglądarce" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Open interesting and helpful Perl websites in your default web browser" msgstr "Otwórz interesujące i pomocne strony Perl-a w domyślnej przeglądarce" #: lib/Padre/Wx/Main.pm:4247 msgid "Open selection" msgstr "Otwórz zaznaczenie" #: lib/Padre/Config.pm:487 msgid "Open session" msgstr "Otwórz sesję" #: lib/Padre/Wx/ActionLibrary.pm:2517 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "Otwórz czat suportu Padre w przeglądarce web i porozmawiaj z ludźmi którzy pomogą Ci w rozwiązaniu problemu" #: lib/Padre/Wx/ActionLibrary.pm:2529 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "Otwórz czas suportu Perl w przeglądarce web i porozmawiaj z ludźmi którzy pomogą Ci w rozwiązaniu problemu" #: lib/Padre/Wx/ActionLibrary.pm:2541 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "Otwórz czat suportu Perl/Win32 w przeglądarce web i porozmawiaj z ludźmi którzy mogą pomóc Ci w rozwiązaniu problemu" #: lib/Padre/Wx/ActionLibrary.pm:2211 msgid "Open the regular expression editing window" msgstr "Otwiera okno edycji wyrażeń regularnych" #: lib/Padre/Wx/ActionLibrary.pm:2221 msgid "Open the selected text in the Regex Editor" msgstr "Otwiera zaznaczony tekst w edytorze wyrażeń regularnych" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Open with Default &System Editor" msgstr "Otwiera w domyślnym edytorze &systemowym" #: lib/Padre/Wx/Main.pm:3204 #, perl-format msgid "Opening session %s..." msgstr "Otwieranie sesji %s..." #: lib/Padre/Wx/ActionLibrary.pm:242 msgid "Opens a command line using the current document folder" msgstr "Otwiera wiersz poleceń z użyciem folderu bieżącego dokumentu" #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Opens the current document using the file browser" msgstr "Otwiera bieżący dokument przy użyciu przeglądarki" #: lib/Padre/Wx/ActionLibrary.pm:230 msgid "Opens the file with the default system editor" msgstr "Otwiera plik w domyślnym edytorze systemowym" #: lib/Padre/Wx/ActionLibrary.pm:264 msgid "Opens the last closed file" msgstr "Otwiera ostatnio zamknięty plik" #: lib/Padre/Wx/FBP/Preferences.pm:861 msgid "" "Optional features can be disabled to simplify the user interface,\n" "reduce memory consumption and make Padre run faster.\n" "\n" "Changes to features are only applied when Padre is restarted." msgstr "" "Opcjonalne funkcjonalności mogą zostać wyłączone, co uprości interfejs użytkownika,\n" "zredukuje zużycie pamięci i sprawi, że Padre będzie działać szybciej.\n" "\n" "Zmiany funkcjonalności będą zastosowane po ponownym uruchomieniu Padre." #: lib/Padre/Wx/FBP/Patch.pm:148 msgid "Options" msgstr "Opcje" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Opcje:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "Tekst oryg&inalny:" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Inne (proszę podać tutaj)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Inne zdarzenie" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Inna wyszukiwarka" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "Poza przedziałem." #: lib/Padre/Wx/Outline.pm:201 #: lib/Padre/Wx/Outline.pm:248 msgid "Outline" msgstr "Plan" #: lib/Padre/Wx/Output.pm:89 #: lib/Padre/Wx/FBP/Preferences.pm:470 msgid "Output" msgstr "Wynik" #: lib/Padre/Wx/Bottom.pm:53 msgid "Output View" msgstr "Podgląd wyniku" #: lib/Padre/Wx/Dialog/Preferences.pm:480 msgid "Override Shortcut" msgstr "Nadpisz skrót" #: lib/Padre/Wx/ActionLibrary.pm:2527 msgid "P&erl Help" msgstr "Pomoc P&erl" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "P&lug-in Tools" msgstr "Narzędzia wtyczek" #: lib/Padre/Wx/Main.pm:4411 msgid "PHP Files" msgstr "Pliki PHP" #: lib/Padre/Wx/FBP/Preferences.pm:311 msgid "POD" msgstr "POD" #: lib/Padre/Wx/FBP/POD.pm:30 msgid "POD Viewer" msgstr "Przeglądarka POD" #: lib/Padre/Config.pm:1126 #: lib/Padre/Wx/Scintilla.pm:28 msgid "PPI Experimental" msgstr "Eksperymentalne PPI" #: lib/Padre/Config.pm:1127 #: lib/Padre/Wx/Scintilla.pm:34 msgid "PPI Standard" msgstr "Standardowy PPI" #: lib/Padre/Wx/FBP/About.pm:604 msgid "Paco Alguacil" msgstr "Paco Alguacil" #: lib/Padre/Wx/FBP/About.pm:841 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Deweloper Padre" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Narzędzia dewelopera Padre" #: lib/Padre/Wx/FBP/Preferences.pm:32 msgid "Padre Preferences" msgstr "Preferencje Padre" #: lib/Padre/Wx/FBP/Sync.pm:29 msgid "Padre Sync" msgstr "Padre Sync" #: lib/Padre/Wx/FBP/About.pm:102 msgid "" "Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published by the \n" "Free Software Foundation; version 2 dated June, 1991." msgstr "" "Padre zawiera ikony z GNOME, możesz go dystrybuować i/lub\n" "modyfikować zgodnie z warunkami licencji GNU General Public License opublikowanej przez\n" "Free Software Foundation; wersja 2 datowana na czerwiec 1991." #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "PageDown" msgstr "PageDown" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "PageUp" msgstr "PageUp" #: lib/Padre/Wx/Dialog/Sync.pm:145 msgid "Password and confirmation do not match." msgstr "Hasło i potwierdzenie nie zgadzają się." #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "Hasło użytkownika '%s' na %s:" #: lib/Padre/Wx/FBP/Sync.pm:89 #: lib/Padre/Wx/FBP/Sync.pm:148 msgid "Password:" msgstr "Hasło:" #: lib/Padre/Wx/ActionLibrary.pm:766 msgid "Paste the clipboard to the current location" msgstr "Wklej zawartość schowka do bieżącej lokalizacji" #: lib/Padre/Wx/FBP/Patch.pm:29 msgid "Patch" msgstr "Łatka" #: lib/Padre/Wx/Dialog/Patch.pm:407 msgid "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "Plik łatki powinien mieć rozszerzenie .patch lub .diff, powinieneś wybrać ponownie i spróbować jeszcze raz" #: lib/Padre/Wx/Dialog/Patch.pm:422 msgid "Patch successful, you should see a new tab in editor called Unsaved #" msgstr "Łatka zastosowana, powinieneś zobaczyć w edytorze nową kartę Unsaved #" #: lib/Padre/Wx/VCS.pm:54 msgid "Path" msgstr "Ścieżka" #: lib/Padre/Wx/FBP/About.pm:224 msgid "Patrick Donelan" msgstr "Patrick Donelan" #: lib/Padre/Wx/FBP/About.pm:266 msgid "Paweł Murias" msgstr "Paweł Murias" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:367 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl &6 Script" msgstr "Skrypt Perl &6" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 &Module" msgstr "&Moduł Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "&Skrypt Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 &Test" msgstr "&Test Perl 5" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "Środowisko Tworzenia i Refaktoryzacji Aplikacji Perl-a" #: lib/Padre/Wx/FBP/Preferences.pm:1461 msgid "Perl Arguments" msgstr "Parametry Perl" #: lib/Padre/Wx/FBP/Preferences.pm:1419 msgid "Perl Ctags File:" msgstr "Plik ctag-ów Perl:" #: lib/Padre/Wx/FBP/Preferences.pm:1405 msgid "Perl Executable:" msgstr "Plik wykonywalny Perl-a:" #: lib/Padre/Wx/Main.pm:4409 #: lib/Padre/Wx/Choice/Files.pm:21 msgid "Perl Files" msgstr "Pliki Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Filtr Perl" #: lib/Padre/Locale.pm:259 msgid "Persian (Iran)" msgstr "Perski (Iran)" #: lib/Padre/Wx/FBP/About.pm:284 msgid "Petar Shangov" msgstr "Petar Shangov" #: lib/Padre/Wx/FBP/About.pm:134 msgid "Peter Lavender" msgstr "Peter Lavender" #: lib/Padre/Wx/Dialog/Sync.pm:134 msgid "Please ensure all inputs have appropriate values." msgstr "Proszę upewnij się, że wszystkie wprowadzone wartości są prawidłowe." #: lib/Padre/Wx/Dialog/Sync.pm:99 msgid "Please input a valid value for both username and password" msgstr "Wprowadź proszę prawidłowe wartości nazwy użytkownika i hasła." #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the directory" msgstr "Proszę wprowadzić nową nazwę katalogu" #: lib/Padre/Wx/Directory/TreeCtrl.pm:169 msgid "Please type in the new name of the file" msgstr "Proszę wprowadzić nową nazwę pliku" #: lib/Padre/Wx/Progress.pm:85 msgid "Please wait..." msgstr "Proszę czekać..." #: lib/Padre/Wx/ActionLibrary.pm:2246 msgid "Plug-in &List (CPAN)" msgstr "Lista wtyczek (CPAN)" #: lib/Padre/Wx/FBP/PluginManager.pm:29 msgid "Plug-in Manager" msgstr "Menedżer wtyczek" #: lib/Padre/PluginManager.pm:984 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "Wtyczka musi posiadać '%s' jako katalog bazowy" #: lib/Padre/PluginManager.pm:780 #, perl-format msgid "Plugin %s" msgstr "Wtyczka %s" #: lib/Padre/PluginHandle.pm:341 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "Wtyczka %s zwróciła %s zamiast listy uchwytu na ->padre_hooks" #: lib/Padre/PluginHandle.pm:354 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "Plugin %s próbował zarejestrować nieprawidłowy uchwyt %s" #: lib/Padre/PluginHandle.pm:362 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "Wtyczka %s próbowała zarejestrować uchwyt non-CODE %s" #: lib/Padre/PluginManager.pm:753 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "Wtyczka %s, uchwyt %s zwróciła pustą wiadomość o błędzie" #: lib/Padre/PluginManager.pm:720 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Błąd wtyczki przy zdarzeniu %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:371 msgid "Plugins" msgstr "Wtyczki" #: lib/Padre/Locale.pm:381 #: lib/Padre/Wx/FBP/About.pm:559 msgid "Polish" msgstr "Polski" #: lib/Padre/Plugin/PopularityContest.pm:323 msgid "Popularity Contest Report" msgstr "Raport Konkursu Popularności" #: lib/Padre/Locale.pm:391 #: lib/Padre/Wx/FBP/About.pm:574 msgid "Portuguese (Brazil)" msgstr "Portugalski (Brazylia)" #: lib/Padre/Locale.pm:401 msgid "Portuguese (Portugal)" msgstr "Portugalski (Portugalia)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Całkowity dodatni" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Positive lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Positive lookbehind assertion" msgstr "" #: lib/Padre/Wx/Outline.pm:380 msgid "Pragmata" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:160 msgid "Prefered language for error diagnostics" msgstr "Preferowany język błędów diagnostycznych" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Nazwa preferencji" #: lib/Padre/Wx/FBP/PluginManager.pm:112 msgid "Preferences" msgstr "Preferencje" #: lib/Padre/Wx/ActionLibrary.pm:2199 msgid "Preferences &Sync..." msgstr "Preferencje &synchronizacji" #: lib/Padre/PluginHandle.pm:283 #, perl-format msgid "Prerequisites missing suggest you read the POD for '%s': %s" msgstr "" #: lib/Padre/Wx/FBP/Snippet.pm:92 msgid "Preview:" msgstr "Podgląd:" #: lib/Padre/Wx/Diff2.pm:27 #: lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "Poprzednia różnica" #: lib/Padre/Config.pm:484 msgid "Previous open files" msgstr "Poprzednio otwarte pliki" #: lib/Padre/Wx/ActionLibrary.pm:504 msgid "Print the current document" msgstr "Wydrukuj bieżący dokument" #: lib/Padre/Wx/FBP/Patch.pm:104 msgid "Process" msgstr "" #: lib/Padre/Wx/Directory.pm:200 #: lib/Padre/Wx/Dialog/WindowList.pm:222 msgid "Project" msgstr "Projekt" #: lib/Padre/Wx/FBP/Preferences.pm:361 msgid "Project Browser" msgstr "Przeglądarka Projektów" #: lib/Padre/Wx/ActionLibrary.pm:1429 msgid "Project Browser - Was known as the Directory Tree" msgstr "Przeglądarka Projektów - Była znana jako Drzewo Katalogów." #: lib/Padre/Wx/FBP/SLOC.pm:29 msgid "Project Statistics" msgstr "Statystyki projektu" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "Narzędzia projektu" #: lib/Padre/Wx/ActionLibrary.pm:1808 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "Zapytaj o nazwę zastępującej zmienne i zastąp wszystkie wystąpienia tej zmiennej" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Punctuation characters" msgstr "Znaki interpunkcyjne" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Put focus on the next tab to the right" msgstr "Ustaw kursor na następnej karcie po prawej" #: lib/Padre/Wx/ActionLibrary.pm:2365 msgid "Put focus on the previous tab to the left" msgstr "Ustaw kursor na poprzedniej karcie po lewej" #: lib/Padre/Wx/ActionLibrary.pm:749 msgid "Put the content of the current document in the clipboard" msgstr "Umieść zawartość bieżącego dokumentu w schowku" #: lib/Padre/Wx/ActionLibrary.pm:689 msgid "Put the current selection in the clipboard" msgstr "Umieść bieżące zaznaczenie w schowku" #: lib/Padre/Wx/ActionLibrary.pm:705 msgid "Put the full path of the current file in the clipboard" msgstr "Umieść pełną ścieżkę bieżącego pliku w schowku" #: lib/Padre/Wx/ActionLibrary.pm:735 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Umieść pełną ścieżkę katalogu bieżącego pliku w schowku" #: lib/Padre/Wx/ActionLibrary.pm:720 msgid "Put the name of the current file in the clipboard" msgstr "Umieść nazwę bieżącego pliku w schowku" #: lib/Padre/Wx/Main.pm:4413 msgid "Python Files" msgstr "Pliki Python" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:43 msgid "Quick Menu Access" msgstr "Menu szybkiego dostępu" #: lib/Padre/Wx/ActionLibrary.pm:1332 msgid "Quick access to all menu functions" msgstr "Szybki dostęp do wszystkich funkcji menu" #: lib/Padre/Wx/FBP/Debugger.pm:163 msgid "Quit Debugger" msgstr "Wyjdź z debugera (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2163 msgid "Quit Debugger (&q)" msgstr "Wyjdź z debugera (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2164 msgid "Quit the process being debugged" msgstr "Wyjdź z debugowanego procesu" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "Włącz (wyłącz) cytowanie wzorca metaznaków aż do \\E" #: lib/Padre/Wx/Dialog/About.pm:161 msgid "RAM" msgstr "RAM" #: lib/Padre/Wx/FBP/Debugger.pm:484 msgid "" "Raw\n" "You can enter what ever debug command you want!" msgstr "" "Raw\n" "Możesz wprowadzić dowolne polecenie debugowania!" #: lib/Padre/Wx/Menu/File.pm:180 msgid "Re&load" msgstr "Ładuj ponownie" #: lib/Padre/Wx/ActionLibrary.pm:2303 msgid "Re&load All Plug-ins" msgstr "Ładuj ponownie wszystkie wtyczki" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Re&place in Files..." msgstr "Zastą&p w plikach..." #: lib/Padre/Wx/ActionLibrary.pm:2281 msgid "Re&set My plug-in" msgstr "Wyczyść wtyczkę My Plug-in" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Only" msgstr "Tylko do odczytu" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Write" msgstr "Odczyt Zapis" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Wczytywanie pliku z serwera FTP..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:274 msgid "Reading items. Please wait" msgstr "Wczytywanie elementów. Proszę czekać" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:327 msgid "Reading items. Please wait..." msgstr "Wczytywanie elementów. Proszę czekać..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:215 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Naprawdę usunąć plik \"%s\"?" #: lib/Padre/Wx/FBP/CPAN.pm:277 msgid "Recent" msgstr "Ostatni" #: lib/Padre/Wx/ActionLibrary.pm:608 msgid "Redo last undo" msgstr "Przywróć ostatnie cofnięcie zmian" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "Ref&aktoryzacja" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:368 msgid "Refactor" msgstr "Refaktoryzacja" #: lib/Padre/Wx/Directory.pm:226 #: lib/Padre/Wx/FBP/CPAN.pm:132 #: lib/Padre/Wx/FBP/CPAN.pm:180 msgid "Refresh" msgstr "Odśwież" #: lib/Padre/Wx/FBP/Breakpoints.pm:63 msgid "Refresh List" msgstr "Odśwież listę" #: lib/Padre/Wx/FBP/FoundInFiles.pm:51 msgid "Refresh Search" msgstr "Odśwież wyszukiwanie" #: lib/Padre/Wx/FBP/VCS.pm:143 msgid "Refresh the status of working copy files and directories" msgstr "Odśwież stan kopii roboczej plików i katalogów" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Edytor Regex" #: lib/Padre/Wx/FBP/Sync.pm:178 msgid "Register" msgstr "Rejestruj" #: lib/Padre/Wx/FBP/Sync.pm:315 msgid "Registration" msgstr "Rejestracja" #: lib/Padre/Wx/FBP/Find.pm:79 #: lib/Padre/Wx/FBP/Replace.pm:129 msgid "Regular E&xpression" msgstr "Wyrażenie ®ularne " #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Reinstalacja/Instalacja na innym komputerze" #: lib/Padre/Wx/ActionLibrary.pm:389 msgid "Reload &All" msgstr "Ładuj ponownie wszystkie" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload &File" msgstr "Ładuj ponownie plik" #: lib/Padre/Wx/ActionLibrary.pm:399 msgid "Reload &Some..." msgstr "Ładuj ponownie niektóre..." #: lib/Padre/Wx/Main.pm:4695 msgid "Reload Files" msgstr "Ładuj ponownie pliki" #: lib/Padre/Wx/ActionLibrary.pm:390 msgid "Reload all files currently open" msgstr "Ładuj ponownie wszystkie obecnie otwarte pliki" #: lib/Padre/Wx/ActionLibrary.pm:2304 msgid "Reload all plug-ins from &disk" msgstr "Ładuj ponownie wszystkie wtyczki z &dysku" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Reload current file from disk" msgstr "Ładuj ponownie bieżący plik z dysku" #: lib/Padre/Wx/Main.pm:4638 msgid "Reloading Files" msgstr "Ponowne ładowanie plików" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Reloads (or initially loads) the current plug-in" msgstr "Ponowne ładowanie (lub ładowanie inicjalne) bieżącej wtyczki" #: lib/Padre/Wx/ActionLibrary.pm:659 msgid "Remove all the selection marks" msgstr "Usuń wszystkie uchwyty zaznaczenia" #: lib/Padre/Wx/ActionLibrary.pm:969 msgid "Remove comment for selected lines or the current line" msgstr "Usuń komentarz z zaznaczonych wierszy lub bieżącej linii" #: lib/Padre/Wx/ActionLibrary.pm:674 msgid "Remove the current selection and put it in the clipboard" msgstr "Usuń bieżące zaznaczenie i umieść je w schowku" #: lib/Padre/Wx/ActionLibrary.pm:533 msgid "Remove the entries from the recent files list" msgstr "Usuń pozycje z listy ostatnio używanych plików" #: lib/Padre/Wx/ActionLibrary.pm:1064 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Usuń spacje na początku zaznaczonych wierszy" #: lib/Padre/Wx/ActionLibrary.pm:1074 msgid "Remove the spaces from the end of the selected lines" msgstr "Usuń spacje na końcu zaznaczonych wierszy" #: lib/Padre/Wx/Directory/TreeCtrl.pm:378 #: lib/Padre/Wx/Directory/TreeCtrl.pm:380 msgid "Rename" msgstr "Zmień nazwę" #: lib/Padre/Wx/Directory/TreeCtrl.pm:277 msgid "Rename Directory" msgstr "Zmień nazwę Katalogu" #: lib/Padre/Wx/Directory/TreeCtrl.pm:336 msgid "Rename File" msgstr "Zmień nazwę Pliku" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename directory" msgstr "Zmień nazwę katalogu" #: lib/Padre/Wx/Directory/TreeCtrl.pm:170 msgid "Rename file" msgstr "Zmień nazwę pliku" #: lib/Padre/Document/Perl.pm:813 #: lib/Padre/Document/Perl.pm:823 msgid "Rename variable" msgstr "Zmień nazwę zmiennej leksykalnej" #: lib/Padre/Wx/VCS.pm:262 msgid "Renamed" msgstr "Nazwy zmienione" #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Repeat the last find to find the next match" msgstr "Powtórz ostatnie wyszukiwanie i znajdź następne dopasowanie" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Powtórz ostatnie wyszukiwanie wstecz i znajdź poprzednie dopasowanie" #: lib/Padre/Wx/FBP/Replace.pm:31 msgid "Replace" msgstr "Zastąp" #: lib/Padre/Wx/FBP/Replace.pm:186 msgid "Replace &All" msgstr "Zastą&p wszystkie" #: lib/Padre/Wx/FBP/Replace.pm:88 msgid "Replace &With:" msgstr "Zastąp przez:" #: lib/Padre/Wx/FBP/Preferences.pm:500 msgid "Replace In Files" msgstr "Zastąp W Plikach" #: lib/Padre/Document/Perl.pm:907 #: lib/Padre/Document/Perl.pm:956 msgid "Replace Operation Canceled" msgstr "Przerwano operację zastąpienia" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:66 msgid "Replace With:" msgstr "Zastąp przez:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Replace all occurrences of the pattern" msgstr "Zastąp wszystkie wystąpienia wzorca" #: lib/Padre/Wx/ReplaceInFiles.pm:247 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Zastępowanie zakończone, znaleziono '%s' %d raz(y) w %d pliku(ach) wewnątrz %s." #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "Niepowodzenie zastępowania w %s: %s" #: lib/Padre/Wx/ReplaceInFiles.pm:131 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:32 msgid "Replace in Files" msgstr "Zastąp w Plikach" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "Zastąp..." #: lib/Padre/Wx/Dialog/Replace.pm:128 #, perl-format msgid "Replaced %d match" msgstr "Zastąpiono %d dopasowanie" #: lib/Padre/Wx/Dialog/Replace.pm:128 #, perl-format msgid "Replaced %d matches" msgstr "Zastąpiono %d dopasowań" #: lib/Padre/Wx/ReplaceInFiles.pm:188 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr "Zastępowanie '%s' w '%s'..." #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Report a New &Bug" msgstr "Zgłoś nowy &błąd" #: lib/Padre/Wx/ActionLibrary.pm:2288 msgid "Reset My plug-in" msgstr "Wyczyść wtyczkę My Plug-in" #: lib/Padre/Wx/ActionLibrary.pm:2282 msgid "Reset the My plug-in to the default" msgstr "Przywróć domyślne ustawienia wtyczki My plug-in" #: lib/Padre/Wx/ActionLibrary.pm:1649 msgid "Reset the size of the letters to the default in the editor window" msgstr "Przywróć domyślny rozmiar liter w oknie edytora" #: lib/Padre/Wx/FBP/Preferences.pm:1237 msgid "Reset to default shortcut" msgstr "Przywróć domyślny skrót" #: lib/Padre/Wx/Main.pm:3234 msgid "Restore focus..." msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:123 msgid "Restore pristine working copy file (undo most local edits)" msgstr "Przywróć pierwotną kopię roboczą pliku (cofa większość lokalnych edycji)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Return" msgstr "Zwraca" #: lib/Padre/Wx/VCS.pm:561 msgid "Revert changes?" msgstr "Cofnąć zmiany?" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "Cofnij tą zmianę" #: lib/Padre/Wx/VCS.pm:56 msgid "Revision" msgstr "Rewizja" #: lib/Padre/Wx/Dialog/Preferences.pm:34 msgid "Right" msgstr "Prawo" #: lib/Padre/Config.pm:60 msgid "Right Panel" msgstr "Prawy panel" #: lib/Padre/Wx/FBP/Diff.pm:83 msgid "Right side" msgstr "Prawa strona" #: lib/Padre/Wx/Main.pm:4415 msgid "Ruby Files" msgstr "Pliki Ruby" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:369 msgid "Run" msgstr "Uruchom" #: lib/Padre/Wx/ActionLibrary.pm:1981 msgid "Run &Build and Tests" msgstr "Uruchom &budowanie i testy" #: lib/Padre/Wx/ActionLibrary.pm:1970 msgid "Run &Command" msgstr "Uruchom polecenie\tCtrl-F5" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "Uruchom dokument wewnątrz Padre" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "Uruchom zaznaczenie wewnątrz Padre" #: lib/Padre/Wx/ActionLibrary.pm:1993 msgid "Run &Tests" msgstr "Uruchom testy" #: lib/Padre/Wx/FBP/Debugger.pm:43 msgid "" "Run Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1958 msgid "Run Script (&Debug Info)" msgstr "Uruchom skrypt (debug)\tShift-F5" #: lib/Padre/Wx/ActionLibrary.pm:2012 msgid "Run T&his Test" msgstr "Uruchom ten test" #: lib/Padre/Wx/ActionLibrary.pm:1995 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "Uruchom wszystkie testy w bieżącym projekcie lub dokumencie i pokaż wyniki w panelu wyjściowym." #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "Uruchom filtr" #: lib/Padre/Wx/Main.pm:2723 msgid "Run setup" msgstr "Ustawienia" #: lib/Padre/Wx/ActionLibrary.pm:1959 msgid "Run the current document but include debug info in the output." msgstr "Uruchom bieżący dokument ale dołącz informacje debuera na wyjściu." #: lib/Padre/Wx/ActionLibrary.pm:2013 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "Uruchom bieżące testy jeżeli bieżący dokument jest testem. (prove -lv)" #: lib/Padre/Wx/ActionLibrary.pm:1971 msgid "Runs a shell command and shows the output." msgstr "Uruchamia polecenie powłoki i wyświetl wynik." #: lib/Padre/Wx/ActionLibrary.pm:1943 msgid "Runs the current document and shows its output in the output panel." msgstr "Uruchamia bieżący dokument i wyświetla jego wyjście w panelu wyjściowym." #: lib/Padre/Locale.pm:411 #: lib/Padre/Wx/FBP/About.pm:616 msgid "Russian" msgstr "Rosyjski" #: lib/Padre/Wx/FBP/About.pm:188 msgid "Ryan Niebur" msgstr "Ryan Niebur" #: lib/Padre/Wx/FBP/Debugger.pm:444 msgid "" "S [[!]regex]\n" "List subroutine names [not] matching the regex." msgstr "" "S [[!]regex]\n" "Pokaż nazwy podprocedur [nie] pasujące do wyrażenia." #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "Z&apisz" #: lib/Padre/Wx/FBP/Preferences.pm:1194 msgid "S&et" msgstr "Ustaw" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Main.pm:4417 msgid "SQL Files" msgstr "Pliki SQL" #: lib/Padre/Wx/Dialog/Patch.pm:576 #, perl-format msgid "SVN Diff successful. You should see a new tab in editor called %s." msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "Zapisz" #: lib/Padre/Wx/ActionLibrary.pm:426 msgid "Save &As..." msgstr "Zapisz &jako...\tF12" #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save &Intuition" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:450 msgid "Save All" msgstr "Zapisz wszystkie" #: lib/Padre/Wx/ActionLibrary.pm:486 msgid "Save Sess&ion..." msgstr "Zapisz sesję..." #: lib/Padre/Document.pm:782 msgid "Save Warning" msgstr "Ostrzeżenie przy zapisie" #: lib/Padre/Wx/ActionLibrary.pm:451 msgid "Save all the files" msgstr "Zapisz wszystkie pliki" #: lib/Padre/Wx/FBP/Preferences.pm:660 msgid "Save and Close" msgstr "Zapisz i zamknij" #: lib/Padre/Wx/ActionLibrary.pm:414 msgid "Save current document" msgstr "Zapisz bieżący dokument" #: lib/Padre/Wx/Main.pm:4780 msgid "Save file as..." msgstr "Zapisz plik jako..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Zapisz sesję jako..." #: lib/Padre/Wx/FBP/SessionManager.pm:70 msgid "Save session automatically" msgstr "Zapisuje sesję automatycznie" #: lib/Padre/Wx/FBP/VCS.pm:43 msgid "Schedule the file or directory for addition to the repository" msgstr "Umieść plik lub katalog na liście do dodania do repozytorium" #: lib/Padre/Wx/FBP/VCS.pm:63 msgid "Schedule the file or directory for deletion from the repository" msgstr "Umieść plik lub katalog na liście do usunięcia z repozytorium" #: lib/Padre/Config.pm:1125 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/FBP/Preferences.pm:1923 msgid "Screen Layout" msgstr "Układ ekranu" #: lib/Padre/Wx/FBP/Preferences.pm:1481 msgid "Script Arguments" msgstr "Parametry skryptu" #: lib/Padre/Wx/FBP/Preferences.pm:1436 msgid "Script Execution" msgstr "Wykonywanie skryptu" #: lib/Padre/Wx/Main.pm:4423 msgid "Script Files" msgstr "Pliki skryptów" #: lib/Padre/Wx/Directory.pm:84 #: lib/Padre/Wx/Directory.pm:505 #: lib/Padre/Wx/FBP/CPAN.pm:276 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:365 #: lib/Padre/Wx/Dialog/Find.pm:66 msgid "Search" msgstr "Szukaj" #: lib/Padre/Wx/FBP/Find.pm:87 msgid "Search &Backwards" msgstr "Szukaj &wstecz" #: lib/Padre/Wx/FBP/FindInFiles.pm:48 #: lib/Padre/Wx/FBP/Find.pm:46 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:41 #: lib/Padre/Wx/FBP/Replace.pm:47 msgid "Search &Term:" msgstr "&Warunki wyszukiwania:" #: lib/Padre/Document/Perl.pm:658 msgid "Search Canceled" msgstr "Wyszukiwanie anulowane" #: lib/Padre/Wx/Dialog/Replace.pm:131 #: lib/Padre/Wx/Dialog/Replace.pm:136 #: lib/Padre/Wx/Dialog/Replace.pm:161 msgid "Search and Replace" msgstr "Wyszukiwanie i zastąp" #: lib/Padre/Wx/ActionLibrary.pm:1267 msgid "Search and replace text in all files below a given directory" msgstr "Szukaj tekstu we wszystkich plikach w danym katalogu" #: lib/Padre/Wx/Panel/FoundInFiles.pm:294 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Wyszukiwanie zakończone, znaleziono '%s' %d raz(y) w %d pliku(ach) wewnątrz %s." #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Search for a text in all files below a given directory" msgstr "Szukaj tekstu we wszystkich plikach w danym katalogu" #: lib/Padre/Wx/Browser.pm:92 #: lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Szukaj Perldoc-a - np. Padre::Task, Net::LDAP" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Search the Perl help pages (perldoc)" msgstr "Szukaj na stronach pomocy Perl (perldoc)" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "Szukaj:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "Wyszukiwanie '%s' zakończone niepowodzeniem..." #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "Wyszukuje w kodzie źródłowym nawiasy bez z brakującym dopasowaniem (otwarciem/zamknięciem)." #: lib/Padre/Wx/Panel/FoundInFiles.pm:242 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "Wyszukiwanie '%s' w '%s'..." #: lib/Padre/Wx/FBP/About.pm:140 #: lib/Padre/Wx/FBP/About.pm:445 msgid "Sebastian Willing" msgstr "Sebastian Willing" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Druga etykieta" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Informacje o aktualizacji znajdziesz na http://padre.perlide.org/" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Zaznacz" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Select &All" msgstr "Zaznacz wszystko" #: lib/Padre/Wx/Dialog/FindInFiles.pm:52 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:44 msgid "Select Directory" msgstr "Zaznacz Katalog" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Zaznacz Funkcję" #: lib/Padre/Wx/ActionLibrary.pm:1307 msgid "Select a bookmark created earlier and jump to that position" msgstr "Wybierz zakładkę utworzoną uprzednio i przeskocz do tej pozycji" #: lib/Padre/Wx/ActionLibrary.pm:907 msgid "Select a date, filename or other value and insert at the current location" msgstr "Wybierz datę, nazwę pliku lub inną wartość i wstaw w bieżącej pozycji" #: lib/Padre/Wx/FBP/Preferences.pm:1426 msgid "Select a file" msgstr "Zaznacz plik" #: lib/Padre/Wx/ActionLibrary.pm:931 msgid "Select a file and insert its content at the current location" msgstr "Wybierz plik i wstaw jego zawartość w bieżącej pozycji" #: lib/Padre/Wx/FBP/Preferences.pm:610 msgid "Select a folder" msgstr "Zaznacz folder" #: lib/Padre/Wx/ActionLibrary.pm:476 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "Wybierz sesję. Zamyka wszystkie obecnie otwarte pliki i otwiera wszystkie z wymienione w sesji" #: lib/Padre/Wx/ActionLibrary.pm:622 msgid "Select all the text in the current document" msgstr "Zaznacz cały tekst w bieżącym dokumencie" #: lib/Padre/Wx/ActionLibrary.pm:1002 msgid "Select an encoding and encode the document to that" msgstr "Wybierz kodowanie i zakoduj w nim dokument" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "Select and insert a snippet at the current location" msgstr "Wybierz i wstaw fragment w bieżącym położeniu" #: lib/Padre/CPAN.pm:100 msgid "Select distribution to install" msgstr "Wybierz dystrybucję do zainstalowania" #: lib/Padre/Wx/Main.pm:5247 msgid "Select files to close:" msgstr "Wybierz pliki do zamknięcia:" #: lib/Padre/Wx/Dialog/OpenResource.pm:238 msgid "Select one or more resources to open" msgstr "Wybierz jeden lub więcej zasobów do otwarcia" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Wskaż niektóre otwarte pliki do zamknięcia" #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Select some open files for reload" msgstr "Wskaż niektóre otwarte pliki do ponownego załadowania" #: lib/Padre/Wx/Dialog/HelpSearch.pm:131 msgid "Select the help &topic" msgstr "Wybierz &temat pomocy" #: lib/Padre/Wx/ActionLibrary.pm:882 msgid "Select to Matching &Brace" msgstr "Zaznacz do pasującego nawiasu" #: lib/Padre/Wx/ActionLibrary.pm:883 msgid "Select to the matching opening or closing brace" msgstr "Wybiera pasujący nawias otwierający lub zamykający" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" "Wybierz przed którą podprocedurą chcesz wstawić\n" "nową podprocedurę." #: lib/Padre/Wx/FBP/Document.pm:129 msgid "Selection" msgstr "Zaznaczenie" #: lib/Padre/Document/Perl.pm:950 msgid "Selection not part of a Perl statement?" msgstr "Zaznaczenie nie jest częścią wyrażenia Perla?" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Send a bug report to the Padre developer team" msgstr "Wyślij raport o błędzie do Zespołu Deweloperów Padre" #: lib/Padre/Wx/FBP/VCS.pm:103 msgid "Send changes from your working copy to the repository" msgstr "Wyślij zmiany z kopii roboczej do repozytorium" #: lib/Padre/File/HTTP.pm:52 #, perl-format msgid "Sending HTTP request %s..." msgstr "Wysyłanie żądania HTTP %s..." #: lib/Padre/Wx/FBP/Sync.pm:38 msgid "Server:" msgstr "Serwer:" #: lib/Padre/Wx/FBP/SessionManager.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Menedżer sesji" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "Nazwa sesji:" #: lib/Padre/Wx/ActionLibrary.pm:1295 msgid "Set &Bookmark" msgstr "Ustaw zakładkę" #: lib/Padre/Wx/FBP/Bookmarks.pm:38 msgid "Set Bookmark:" msgstr "Ustaw zakładkę:" #: lib/Padre/Wx/ActionLibrary.pm:2142 msgid "Set Breakpoint (&b)" msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:83 msgid "Set Breakpoints (toggle)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1665 msgid "Set Padre in full screen mode" msgstr "Przełącz Padre na tryb pełnoekranowy" #: lib/Padre/Wx/ActionLibrary.pm:2143 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2391 msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "Ustawia kursor na oknie \"Eksplorator CPAN\"" #: lib/Padre/Wx/ActionLibrary.pm:2447 msgid "Set the focus to the \"Command Line\" window" msgstr "Ustawia kursor na oknie \"Wiersz poleceń\"" #: lib/Padre/Wx/ActionLibrary.pm:2402 msgid "Set the focus to the \"Functions\" window" msgstr "Ustawia kursor na oknie \"Funkcje\"" #: lib/Padre/Wx/ActionLibrary.pm:2414 msgid "Set the focus to the \"Outline\" window" msgstr "Ustaw kursor na oknie \"Plan\"" #: lib/Padre/Wx/ActionLibrary.pm:2425 msgid "Set the focus to the \"Output\" window" msgstr "Ustawia kursor na oknie \"Wyjście\"" #: lib/Padre/Wx/ActionLibrary.pm:2436 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Ustawia kursor na oknie \"Sprawdzanie składni\"" #: lib/Padre/Wx/ActionLibrary.pm:2458 msgid "Set the focus to the main editor window" msgstr "Ustawia kursor na głównym oknie edytora" #: lib/Padre/Wx/FBP/Preferences.pm:1199 msgid "Sets the keyboard binding" msgstr "Ustawia przypisanie klawiszy" #: lib/Padre/Config.pm:534 #: lib/Padre/Config.pm:789 msgid "Several placeholders like the filename can be used" msgstr "" #: lib/Padre/Wx/Syntax.pm:59 msgid "Severe Warning" msgstr "Poważne ostrzeżenie" #: lib/Padre/Wx/ActionLibrary.pm:2200 msgid "Share your preferences between multiple computers" msgstr "Współdziel swoje preferencje pomiędzy wieloma komputerami" #: lib/Padre/MIME.pm:1037 msgid "Shell Script" msgstr "Skrypt shell" #: lib/Padre/Wx/FBP/Preferences.pm:1171 msgid "Shift" msgstr "Shift" #: lib/Padre/Wx/FBP/About.pm:472 msgid "Shlomi Fish" msgstr "Shlomi Fish" #: lib/Padre/Wx/Dialog/Preferences.pm:169 #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Skrót" #: lib/Padre/Wx/FBP/Preferences.pm:1143 msgid "Shortcut:" msgstr "Skr&ót:" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Shorten the common path in window list" msgstr "Skróć ścieżkę w liście okien" #: lib/Padre/Wx/FBP/VCS.pm:239 #: lib/Padre/Wx/FBP/Breakpoints.pm:151 #: lib/Padre/Wx/FBP/Debugger.pm:519 msgid "Show" msgstr "Pokaż" #: lib/Padre/Wx/ActionLibrary.pm:1377 msgid "Show &Command Line" msgstr "Pokaż wiersz poleceń" #: lib/Padre/Wx/Dialog/RegexEditor.pm:215 msgid "Show &Description" msgstr "Pokaż &Opis" #: lib/Padre/Wx/ActionLibrary.pm:1367 msgid "Show &Function List" msgstr "Pokaż listę procedury" #: lib/Padre/Wx/ActionLibrary.pm:1605 msgid "Show &Indentation Guide" msgstr "Pokaż prowadnice wyrównania" #: lib/Padre/Wx/ActionLibrary.pm:1417 msgid "Show &Outline" msgstr "Pokaż plan" #: lib/Padre/Wx/ActionLibrary.pm:1357 msgid "Show &Output" msgstr "Pokaż wynik" #: lib/Padre/Wx/ActionLibrary.pm:1428 msgid "Show &Project Browser" msgstr "Pokaż Przeglądarkę Projektów" #: lib/Padre/Wx/ActionLibrary.pm:1407 msgid "Show &Task List" msgstr "Pokaż listę zadań" #: lib/Padre/Wx/ActionLibrary.pm:1595 msgid "Show &Whitespaces" msgstr "Pokaż białe znaki" #: lib/Padre/Wx/ActionLibrary.pm:1563 msgid "Show C&urrent Line" msgstr "Pokaż aktualny wiersz" #: lib/Padre/Wx/ActionLibrary.pm:1387 msgid "Show CPA&N Explorer" msgstr "Pokaż Eksplorator CPAN" #: lib/Padre/Wx/ActionLibrary.pm:1549 msgid "Show Ca&ll Tips" msgstr "Pokaż podpowiedzi" #: lib/Padre/Wx/ActionLibrary.pm:1508 msgid "Show Code &Folding" msgstr "Pokaż zwijanie kodu" #: lib/Padre/Wx/ActionLibrary.pm:2062 msgid "Show Debug Breakpoints" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2075 msgid "Show Debug Output" msgstr "Pokaż wyjście debug" #: lib/Padre/Wx/ActionLibrary.pm:2085 msgid "Show Debugger" msgstr "Pokaż debuger" #: lib/Padre/Wx/FBP/Debugger.pm:212 msgid "Show Global Variables" msgstr "Pokaż zmienne globalne" #: lib/Padre/Wx/ActionLibrary.pm:1497 msgid "Show Line &Numbers" msgstr "Pokaż &numery wierszy" #: lib/Padre/Wx/FBP/Debugger.pm:193 msgid "Show Local Variables" msgstr "Pokaż zmienne lokalne" #: lib/Padre/Wx/ActionLibrary.pm:1585 msgid "Show Ne&wlines" msgstr "Pokaż znaki no&wego wiersza" #: lib/Padre/Wx/ActionLibrary.pm:1573 msgid "Show Right &Margin" msgstr "Pokaż prawy margines" #: lib/Padre/Wx/ActionLibrary.pm:1438 msgid "Show S&yntax Check" msgstr "Pokaż sprawdzanie składni" #: lib/Padre/Wx/ActionLibrary.pm:1459 msgid "Show St&atus Bar" msgstr "Pokaż pasek stanu" #: lib/Padre/Wx/FBP/Syntax.pm:63 msgid "Show Standard Error" msgstr "Pokaż standardowe wyjście błędów" #: lib/Padre/Wx/Dialog/RegexEditor.pm:245 msgid "Show Subs&titution" msgstr "Pokaż pods&tawienie" #: lib/Padre/Wx/ActionLibrary.pm:1469 msgid "Show Tool&bar" msgstr "Pokaż pasek narzędzi" #: lib/Padre/Wx/ActionLibrary.pm:1448 msgid "Show V&ersion Control" msgstr "Pokaż Kontrolę W&ersji" #: lib/Padre/Wx/ActionLibrary.pm:1574 msgid "Show a vertical line indicating the right margin" msgstr "Pokaż pionową linię wskazującą prawy margines" #: lib/Padre/Wx/ActionLibrary.pm:1408 msgid "Show a window listing all task items in the current document" msgstr "Pokaż okno z listą wszystkich rzeczy do zrobienia w bieżącym dokumencie" #: lib/Padre/Wx/ActionLibrary.pm:1368 msgid "Show a window listing all the functions in the current document" msgstr "Pokaż okno z listą wszystkich funkcji w bieżącym dokumencie" #: lib/Padre/Wx/ActionLibrary.pm:1418 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "Pokaż okno z listą wszystkich części bieżącego pliku (funkcje, pragmy, moduły)" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Show as" msgstr "Pokaż jako" #: lib/Padre/Wx/ActionLibrary.pm:1154 msgid "Show as &Decimal" msgstr "Pokaż jako dziesiętne" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Show as &Hexadecimal" msgstr "Pokaż jako szesnastkowe" #: lib/Padre/Plugin/PopularityContest.pm:212 msgid "Show current report" msgstr "Pokaż aktualny raport" #: lib/Padre/Wx/ActionLibrary.pm:1397 msgid "Show diff window!" msgstr "Pokaż okno diff!" #: lib/Padre/Wx/ActionLibrary.pm:2593 msgid "Show information about Padre" msgstr "Pokaż informacje o Padre" #: lib/Padre/Wx/FBP/Preferences.pm:152 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "Pokaż informacje o niskim priorytecie w pasku statusu (nie w wyskakującym okienku)" #: lib/Padre/Config.pm:1144 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "Pokaż informacje o niskim priorytecie w pasku statusu (nie w wyskakującym okienku)" #: lib/Padre/Config.pm:781 msgid "Show or hide the status bar at the bottom of the window." msgstr "Pokaż lub ukrywa pasek statusu na dole okna." #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "Pokaż poprzednie położenie" #: lib/Padre/Wx/FBP/Preferences.pm:742 msgid "Show right margin at column" msgstr "Pokaż prawy margines w kolumnie" #: lib/Padre/Wx/FBP/Preferences.pm:563 msgid "Show splash screen" msgstr "Pokaż ekran powitalny" #: lib/Padre/Wx/ActionLibrary.pm:1155 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "Pokaż wartości ASCII zaznaczonego tekstu jako liczby dziesiętne w oknie wynikowym" #: lib/Padre/Wx/ActionLibrary.pm:1145 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "Pokaż wartości ASCII zaznaczonego tekstu w notacji szesnastkowej w oknie wynikowym" #: lib/Padre/Wx/ActionLibrary.pm:2505 msgid "Show the POD (Perldoc) version of the current document" msgstr "Pokaż wersję POD (Perldoc) bieżącego dokumentu" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "Show the Padre help" msgstr "Pokaż pomoc Padre" #: lib/Padre/Wx/ActionLibrary.pm:2234 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Pokaż menedżer wtyczek Padre do włączania i wyłączania wtyczek." #: lib/Padre/Wx/ActionLibrary.pm:1378 msgid "Show the command line window" msgstr "Pokaż okno wiersza poleceń" #: lib/Padre/Wx/ActionLibrary.pm:2492 msgid "Show the help article for the current context" msgstr "Pokaż artykuł pomocy dla bieżącego kontekstu" #: lib/Padre/Wx/ActionLibrary.pm:1358 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "Pokaż okno wyświetlające standardowe wyjście i wyjście błędów uruchomionych skryptów" #: lib/Padre/Wx/ActionLibrary.pm:1719 msgid "Show what perl thinks about your code" msgstr "Pokaż co Perl sądzi o Twoim kodzie" #: lib/Padre/Wx/ActionLibrary.pm:1509 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "Pokaż/Ukryj pionową linie po lewej stronie okna i zezwól na zawijanie wierszy" #: lib/Padre/Wx/ActionLibrary.pm:1498 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "Pokaż/Ukryj numery wierszy wszystkich dokumentów po lewej stronie okna" #: lib/Padre/Wx/ActionLibrary.pm:1586 msgid "Show/hide the newlines with special character" msgstr "Pokaż/Ukryj znak nowego wiersza oznaczony specjalnym znakiem" #: lib/Padre/Wx/ActionLibrary.pm:1460 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Pokaż/Ukryj pasek statusu u dołu ekranu" #: lib/Padre/Wx/ActionLibrary.pm:1596 msgid "Show/hide the tabs and the spaces with special characters" msgstr "Pokaż/Ukryj tabulacje i spacje oznaczone specjalnym znakiem " #: lib/Padre/Wx/ActionLibrary.pm:1470 msgid "Show/hide the toolbar at the top of the editor" msgstr "Pokaż/Ukryj pasek narzędzi u góry edytora" #: lib/Padre/Wx/ActionLibrary.pm:1606 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "Pokaż/Ukryj pionowe linie na każdej pozycji wcięcia po lewej stronie wiersza" #: lib/Padre/Config.pm:471 msgid "Showing the splash image during start-up" msgstr "Pokazywanie ekranu powitalnego podczas uruchomienia" #: lib/Padre/Wx/FBP/About.pm:508 msgid "Simone Blandino" msgstr "Simone Blandino" #: lib/Padre/Wx/ActionLibrary.pm:1108 msgid "Simplistic Patch only works on saved files" msgstr "Uproszczone łatki działają tylko na zapisanych plikach" #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "Symuluj awarię w tle" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "Symuluj awarię" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "Symuluj wyjątek w tle" #: lib/Padre/Wx/ActionLibrary.pm:2377 msgid "Simulate a right mouse button click to open the context menu" msgstr "Symuluj kliknięcie prawego klawisza myszy do otwarcia menu kontekstowego" #: lib/Padre/Wx/Dialog/RegexEditor.pm:476 msgid "Single-line (&s)" msgstr "Linia pojedyncza (&s)" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "Rozmiar" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "Pomiń pytanie bez udzielania odpowiedzi" #: lib/Padre/Wx/Dialog/OpenResource.pm:270 msgid "Skip using MANIFEST.SKIP" msgstr "Przestań używać MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/OpenResource.pm:266 msgid "Skip version control system files" msgstr "Pomiń pliki systemu kontroli wersji" #: lib/Padre/Document.pm:1414 #: lib/Padre/Document.pm:1415 msgid "Skipped for large files" msgstr "Pominięty z uwagi na duże pliki" #: lib/Padre/Wx/FBP/Snippet.pm:61 msgid "Snippet:" msgstr "Fragment:" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "Coś złego dzieje się z bazą Padre:\n" "Sesja %s jest na liście ale nie ma danych" #: lib/Padre/Wx/Dialog/Patch.pm:492 msgid "Sorry Diff Failed, are you sure your choice of files was correct for this action" msgstr "Niepowodzenie Diff. Jesteś pewien poprawnego wyboru plików do przeprowadzenia tego działania?" #: lib/Padre/Wx/Dialog/Patch.pm:593 msgid "Sorry, Diff failed. Are you sure your have access to the repository for this action" msgstr "Niepowodzenie Diff. Jesteś pewien że masz dostęp do przeprowadzenia tego działania w repozytorium?" #: lib/Padre/Wx/Dialog/Patch.pm:434 msgid "Sorry, patch failed, are you sure your choice of files was correct for this action" msgstr "Niepowodzenie stosowania łatki. Jesteś pewien wyboru plików do przeprowadzenia tego działania?" #: lib/Padre/Wx/FBP/Preferences.pm:73 msgid "Sort Order:" msgstr "Kolejność sortowania:" #: lib/Padre/Wx/FBP/Document.pm:228 msgid "Source Lines of Code" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:30 msgid "Space" msgstr "Spacja" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "Space and tab" msgstr "Spacje i tabulatory" #: lib/Padre/Wx/Main.pm:6281 msgid "Space to Tab" msgstr "Spacja na tabulator" #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Spaces to &Tabs..." msgstr "Spacje na tabulatory..." #: lib/Padre/Locale.pm:249 #: lib/Padre/Wx/FBP/About.pm:595 msgid "Spanish" msgstr "Hiszpański" #: lib/Padre/Locale.pm:235 msgid "Spanish (Argentina)" msgstr "Hiszpański (Argentyna)" #: lib/Padre/Wx/ActionLibrary.pm:906 msgid "Special &Value..." msgstr "Wartość specjalna..." #: lib/Padre/Config.pm:1383 msgid "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "" #: lib/Padre/Config.pm:1402 msgid "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:523 msgid "Startup" msgstr "" #: lib/Padre/Wx/VCS.pm:53 #: lib/Padre/Wx/FBP/DebugOutput.pm:37 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:35 #: lib/Padre/Wx/CPAN/Listview.pm:59 msgid "Status" msgstr "Status" #: lib/Padre/Wx/FBP/Sync.pm:52 msgid "Status:" msgstr "Status:" #: lib/Padre/Wx/FBP/About.pm:152 msgid "Steffen Muller" msgstr "Steffen Muller" #: lib/Padre/Wx/FBP/FoundInFiles.pm:111 msgid "Stop Search" msgstr "Zatrzymaj wyszukiwanie" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "Stop a running task." msgstr "Zatrzymaj uruchomione zadanie." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "Zatrzymuje przetwarzanie kolejki pozostałych zadań na 1 sekundę" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Zatrzymuje przetwarzanie kolejki pozostałych zadań na 10 sekund" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Zatrzymuje przetwarzanie kolejki pozostałych zadań na 30 sekund" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "Ciąg" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Przełącz język interfejsu Padre na %s" #: lib/Padre/Wx/ActionLibrary.pm:1484 msgid "Switch document type" msgstr "Przełącz typ dokumentu" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Przełącz język na domyślny systemowy" #: lib/Padre/Wx/Syntax.pm:159 #: lib/Padre/Wx/FBP/Preferences.pm:455 msgid "Syntax Check" msgstr "Sprawdzanie składni" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Domyślny systemowy" #: lib/Padre/Wx/FBP/Debugger.pm:356 msgid "" "T\n" "Produce a stack backtrace." msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:29 #: lib/Padre/Wx/Dialog/RegexEditor.pm:140 msgid "Tab" msgstr "Karta" #: lib/Padre/Wx/FBP/Preferences.pm:998 #, fuzzy msgid "Tab Spaces:" msgstr "Tabulator na spację" #: lib/Padre/Wx/Main.pm:6282 msgid "Tab to Space" msgstr "Tabulator na spację" #: lib/Padre/Wx/Menu/Edit.pm:233 msgid "Tabs and S&paces" msgstr "Tabulatory i spacje" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Tabs to &Spaces..." msgstr "Tabulatory na spacje..." #: lib/Padre/Wx/TaskList.pm:184 #: lib/Padre/Wx/FBP/Preferences.pm:88 #: lib/Padre/Wx/FBP/Preferences.pm:406 #: lib/Padre/Wx/Panel/TaskList.pm:96 msgid "Task List" msgstr "Lista zadań" #: lib/Padre/MIME.pm:880 msgid "Text" msgstr "Tekst" #: lib/Padre/Wx/Main.pm:4419 #: lib/Padre/Wx/Choice/Files.pm:20 msgid "Text Files" msgstr "Pliki tekstowe" #: lib/Padre/Wx/Dialog/Bookmarks.pm:108 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "Zakładka '%s' już nie istnieje" #: lib/Padre/Document.pm:254 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "Plik %s który próbujesz otworzyć zajmuje %s bajtów. To ponad umowny limity rozmiaru pliku Padre który obecnie wynosi %s. Otwarcie tego pliku może obniżyć wydajność. Czy nadal chcesz otworzyć ten plik?" #: lib/Padre/Wx/Dialog/Preferences.pm:476 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "Skrót '%s' jest już używany przez akcję '%s'.\n" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "Brak dotychczas zapisanych pozycji" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Ten dokument nie zawiera jakichkolwiek POD" #: lib/Padre/Wx/ActionLibrary.pm:2273 msgid "This function reloads the My plug-in without restarting Padre" msgstr "Ta funkcja ponownie wczytuje wtyczkę My plug-in bez restartu Padre" #: lib/Padre/Config.pm:1374 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "To wymaga zainstalowania Devel::EndStats i restartu Padre" #: lib/Padre/Config.pm:1393 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "To wymaga zainstalowania Devel::TraceUse i restartu Padre" #: lib/Padre/Wx/Main.pm:5375 msgid "This type of file (URL) is missing delete support." msgstr "Ten typ pliku (URL) nie ma wsparcia usuwania." #: lib/Padre/Wx/Dialog/About.pm:152 msgid "Threads" msgstr "Wątki" #: lib/Padre/Wx/FBP/Preferences.pm:1311 #: lib/Padre/Wx/FBP/Preferences.pm:1354 msgid "Timeout (seconds)" msgstr "Timeout (w sekundach)" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "Dziś" #: lib/Padre/Config.pm:1447 msgid "Toggle Diff window feature that compares two buffers graphically" msgstr "Przełącz funkcjonalność okna Diff porównującego graficznie dwa bufory" #: lib/Padre/Config.pm:1465 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "Przełącz auto detekcję Perl 6 w plikach Perl 5" #: lib/Padre/Wx/FBP/Debugger.pm:316 msgid "" "Toggle running breakpoints (update DB)\n" "b\n" "Sets breakpoint on current line\n" "B line\n" "Delete a breakpoint from the specified line." msgstr "" #: lib/Padre/Wx/FBP/About.pm:230 msgid "Tom Eliaz" msgstr "Tom Eliaz" #: lib/Padre/Wx/FBP/Preferences.pm:344 msgid "Tool Positions" msgstr "Narzędzie Pozycje" #: lib/Padre/Wx/FBP/Debugger.pm:231 msgid "Trace" msgstr "Śledź" #: lib/Padre/Wx/FBP/About.pm:843 msgid "Translation" msgstr "Tłumaczenie" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Prawda" #: lib/Padre/Locale.pm:421 #: lib/Padre/Wx/FBP/About.pm:631 msgid "Turkish" msgstr "Turecki" #: lib/Padre/Wx/ActionLibrary.pm:1388 msgid "Turn on CPAN explorer" msgstr "Włącz Eksplorator CPAN" #: lib/Padre/Wx/ActionLibrary.pm:1398 msgid "Turn on Diff window" msgstr "Włącz okno Diff" #: lib/Padre/Wx/ActionLibrary.pm:2063 msgid "Turn on debug breakpoints panel" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1439 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "Włącz sprawdzanie składni w bieżącym dokumencie i pokaż wyjście w oknie" #: lib/Padre/Wx/ActionLibrary.pm:1450 msgid "Turn on version control view of the current project and show version control changes in a window" msgstr "Włącz podgląd kontroli wersji w bieżącym projekcie i pokaż zmiany kontroli wersji w oknie" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Typ" #: lib/Padre/Wx/Dialog/HelpSearch.pm:148 msgid "Type a help &keyword to read:" msgstr "" #: lib/Padre/MIME.pm:40 msgid "UNKNOWN" msgstr "NIEZNANY" #: lib/Padre/Wx/ActionLibrary.pm:1528 msgid "Un&fold All" msgstr "Rozwiń wszystkie" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "Nie można przetworzyć %s" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Undo last change in current file" msgstr "Cofnij ostatnią zmianę w bieżącym pliku" #: lib/Padre/Wx/ActionLibrary.pm:1529 #: lib/Padre/Wx/ActionLibrary.pm:1539 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "Rozwiń wszystkie bloki które mogą być zwinięte (wymaga łączonego zwijania)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Unicode character 'name'" msgstr "" #: lib/Padre/Locale.pm:143 #: lib/Padre/Wx/Main.pm:4163 msgid "Unknown" msgstr "Nieznany" #: lib/Padre/PluginManager.pm:770 #: lib/Padre/Document/Perl.pm:654 #: lib/Padre/Document/Perl.pm:903 #: lib/Padre/Document/Perl.pm:952 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "Nieznany błąd" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Nieznany błąd" #: lib/Padre/PluginHandle.pm:24 msgid "Unloaded" msgstr "Wyładowany" #: lib/Padre/Wx/VCS.pm:258 msgid "Unmodified" msgstr "" #: lib/Padre/Document.pm:1062 #, perl-format msgid "Unsaved %d" msgstr "Niezapisanych %d" #: lib/Padre/Wx/Main.pm:5112 msgid "Unsaved File" msgstr "Plik nie zapisany" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "System niewspierany: %s" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "Bez tytułu" #: lib/Padre/Wx/VCS.pm:251 #: lib/Padre/Wx/VCS.pm:265 #: lib/Padre/Wx/FBP/VCS.pm:189 #, fuzzy msgid "Unversioned" msgstr "Wersja" #: lib/Padre/Wx/Dialog/Preferences.pm:31 msgid "Up" msgstr "" #: lib/Padre/Wx/VCS.pm:264 msgid "Updated but unmerged" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:202 msgid "Upload" msgstr "Wyślij" #: lib/Padre/Wx/Menu/Edit.pm:263 msgid "Upper/Lo&wer Case" msgstr "Wielkie/Małe litery" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Uppercase characters" msgstr "Wielkie litery" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Uppercase next character" msgstr "Zmień następną literę na dużą" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Uppercase till \\E" msgstr "Wielkie litery aż do \\E" #: lib/Padre/Wx/FBP/Preferences.pm:1346 msgid "Use FTP passive mode" msgstr "Użyj trybu pasywnego FTP" #: lib/Padre/Wx/ActionLibrary.pm:1135 msgid "Use Perl source as filter" msgstr "Użyj filtra źródeł Perl" #: lib/Padre/Wx/FBP/Preferences.pm:644 msgid "Use X11 middle button paste style" msgstr "Użyj stylu wklejania środkowym przyciskiem X11" #: lib/Padre/Wx/ActionLibrary.pm:1321 msgid "Use a filter to select one or more files" msgstr "Użyj filtra do wybrania jednego lub więcej plików" #: lib/Padre/Wx/FBP/Preferences.pm:1453 msgid "Use external window for execution" msgstr "Użyj zewnętrznego okna do wykonywania" #: lib/Padre/Wx/FBP/Preferences.pm:972 msgid "Use tabs instead of spaces" msgstr "Użyj tabulatorów zamiast zpacji" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "Użytkownik" #: lib/Padre/Wx/ActionLibrary.pm:2322 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "Użyj CPAN.pm do instalacji pakietów CPAN otwartych lokalnie" #: lib/Padre/Wx/ActionLibrary.pm:2332 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "Użyj pip do pobrania pliku tar.gz i jego instalacji przy użyciu CPAN.pm" #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Wartość" #: lib/Padre/Wx/ActionLibrary.pm:1911 msgid "Variable Name" msgstr "Nazwa zmiennej" #: lib/Padre/Document/Perl.pm:863 msgid "Variable case change" msgstr "Nazwa wielkości liter zmiennej" #: lib/Padre/Wx/VCS.pm:124 #: lib/Padre/Wx/FBP/Preferences.pm:438 msgid "Version Control" msgstr "Kontrola wersji" #: lib/Padre/Wx/FBP/Preferences.pm:931 msgid "Version Control Tool" msgstr "Narzędzie kontroli wersji" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Vertically &Align Selected" msgstr "Wyrównaj w pionie zaznaczone" #: lib/Padre/Wx/Syntax.pm:77 msgid "Very Fatal Error" msgstr "Bardzo fatalny błąd" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:366 msgid "View" msgstr "Widok" #: lib/Padre/Wx/ActionLibrary.pm:2572 msgid "View All &Open Bugs" msgstr "Pokaż wszystkie &otwarte błędy" #: lib/Padre/Wx/ActionLibrary.pm:2573 msgid "View all known and currently unsolved bugs in Padre" msgstr "Podgląd wszystkich znany i jeszcze nierozwiązanych błędów w Padre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Visible characters" msgstr "Widoczne znaki" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Visible characters and spaces" msgstr "Widoczne znaki i spacje" #: lib/Padre/Wx/ActionLibrary.pm:2175 msgid "Visit Debug &Wiki..." msgstr "Odwiedź &Wiki debugera" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Visit Perl Websites..." msgstr "Odwiedź strony Perl-a" #: lib/Padre/Document.pm:778 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "" #: lib/Padre/Document.pm:260 #: lib/Padre/Wx/Syntax.pm:47 #: lib/Padre/Wx/Main.pm:3119 #: lib/Padre/Wx/Main.pm:3842 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Ostrzeżenie" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "Ostrzeżenie! Ta operacja spowoduje usunięcie wszystkich zmian wprowadzonych do wtyczki 'My plug-in' i zastąpienie ich domyślnym kodem dostarczanym z instalacją Padre" #: lib/Padre/Wx/Dialog/Patch.pm:531 #, perl-format msgid "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache Subversion\"" msgstr "Ostrzeżenie: znaleziono SVN v%s ale potrzebny jest SVN v%s zwany obecnie \"Apache Subversion\"" #: lib/Padre/Wx/FBP/Expression.pm:96 #, fuzzy msgid "Watch" msgstr "Brak dopasowania" #: lib/Padre/PluginManager.pm:383 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Odnaleziono kilka nowych wtyczek.\n" "By je skonfigurować i włączyć wybierz\n" "Wtyczki -> Menedżer wtyczek\n" "\n" "Lista nowych wtyczek:\n" "\n" #: lib/Padre/Wx/ActionLibrary.pm:2076 #: lib/Padre/Wx/ActionLibrary.pm:2086 msgid "We should not need this menu item" msgstr "Nie powinniśmy potrzebować tego elementu menu" #: lib/Padre/Wx/Main.pm:4421 msgid "Web Files" msgstr "Pliki WWW" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Cokolwiek" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "When typing in functions allow showing short examples of the function" msgstr "W trakcie wprowadzania funkcji zezwól na pokazywanie krótkich przykładów funkcji" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "Skąd dowiedziałeś się o Padre?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Whitespace characters" msgstr "Białe znaki" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:372 msgid "Window" msgstr "Okno" #: lib/Padre/Wx/Dialog/WindowList.pm:34 msgid "Window list" msgstr "Lista okien" #: lib/Padre/Wx/ActionLibrary.pm:545 msgid "Word count and other statistics of the current document" msgstr "Liczba wyrazów i inne statystyki bieżącego dokumentu" #: lib/Padre/Wx/FBP/Document.pm:156 msgid "Words" msgstr "Wyrazy:" #: lib/Padre/Wx/ActionLibrary.pm:1616 msgid "Wrap long lines" msgstr "Zawijaj długie wiersze" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Zapisywanie pliku na serwerze FTP..." #: lib/Padre/Wx/Output.pm:165 #: lib/Padre/Wx/Main.pm:2975 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream w wersji %s która znana jest z powodowania problemów. Pobierz wersję co najmniej 0.20 wpisując\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "Rok" #: lib/Padre/File/HTTP.pm:162 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "" "Zamierzasz zapisać plik używając HTTP PUT.\n" "To bardzo eksperymentalne i nie wspierane przez większość serwerów." #: lib/Padre/Wx/Editor.pm:1888 msgid "You must select a range of lines" msgstr "Musisz zaznaczyć wiersze" #: lib/Padre/Wx/Main.pm:3841 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Nadal masz działający proces. Czy chcesz go zabić i wyjść?" #: lib/Padre/MIME.pm:1215 msgid "ZIP Archive" msgstr "Archiwum ZIP" #: lib/Padre/Wx/FBP/About.pm:158 #: lib/Padre/Wx/FBP/About.pm:451 msgid "Zeno Gantner" msgstr "Zeno Gantner" #: lib/Padre/Wx/FBP/Debugger.pm:123 msgid "" "c [line|sub]\n" "Continue, optionally inserting a one-time-only breakpoint at the specified line or subroutine." msgstr "" #: lib/Padre/Wx/FBP/About.pm:314 msgid "code4pay" msgstr "" #: lib/Padre/CPAN.pm:180 msgid "cpanm is unexpectedly not installed" msgstr "cpanm nieoczekiwanie nie jest zainstalowany" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "np." #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:353 msgid "fresh" msgstr "świeży" #: lib/Padre/Wx/FBP/Debugger.pm:83 msgid "" "n [expr]\n" "Next. Executes over subroutine calls, until the beginning of the next statement. If an expression is supplied that includes function calls, those functions will be executed with stops before each statement." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:396 msgid "" "o\n" "Display all options.\n" "\n" "o booloption ...\n" "Set each listed Boolean option to the value 1.\n" "\n" "o anyoption? ...\n" "Print out the value of one or more options.\n" "\n" "o option=value ...\n" "Set the value of one or more options. If the value has internal whitespace, it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" to call less with those specific options. You may use either single or double quotes, but if you do, you must escape any embedded instances of same sort of quote you began with, as well as any escaping any escapes that immediately precede that quote but which are not meant to escape the quote itself. In other words, you follow single-quoting rules irrespective of the quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?\"\" .\n" "\n" "For historical reasons, the =value is optional, but defaults to 1 only where it is safe to do so--that is, mostly for Boolean options. It is always better to assign a specific value using = . The option can be abbreviated, but for clarity probably should not be. Several options can be set together. See Configurable Options for a list of these." msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:105 msgid "project" msgstr "projekt" #: lib/Padre/Wx/FBP/Debugger.pm:103 msgid "" "r\n" "Continue until the return from the current subroutine. Dump the return value if the PrintRet option is set (default)." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:63 msgid "" "s [expr]\n" "Single step. Executes until the beginning of another statement, descending into subroutine calls. If an expression is supplied that includes function calls, it too will be single-stepped." msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:110 msgid "show breakpoints in project" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:236 msgid "" "t\n" "Toggle trace mode (see also the AutoTrace option)." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:276 msgid "v [line] View window around line." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:464 msgid "" "w expr\n" "Add a global watch-expression. Whenever a watched global changes the debugger will stop and display the old and new values.\n" "\n" "W expr\n" "Delete watch-expression\n" "W *\n" "Delete all watch-expressions." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:217 msgid "" "working now with some gigery pokery to get around\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "Wsparcie techniczne wxPerl" #: lib/Padre/Wx/FBP/Debugger.pm:198 msgid "" "y [level [vars]]\n" "Display all (or some) lexical variables (mnemonic: mY variables) in the current scope or level scopes higher. You can limit the variables that you see with vars which works exactly as it does for the V and X commands. Requires the PadWalker module version 0.08 or higher; will warn if this isn't installed. Output is pretty-printed in the same style as for V and the format is controlled by the same options." msgstr "" #~ msgid "%s has no constructor" #~ msgstr "%s nie ma konstruktora" #~ msgid "&Add" #~ msgstr "&Dodaj" #~ msgid "&Back" #~ msgstr "&Wstecz" #~ msgid "&Insert" #~ msgstr "&Wstaw" #~ msgid "&Uncomment Selected Lines" #~ msgstr "&Odkomentuj zaznaczone wiersze\tCtrl-M" #~ msgid "&Update" #~ msgstr "&Aktualizuj" #~ msgid "About Padre" #~ msgstr "O Padre" #~ msgid "" #~ "An error has occured while generating '%s':\n" #~ "%s" #~ msgstr "" #~ "Wystąpił błąd podczas generowania '%s':\n" #~ "%s" #~ msgid "Apache License" #~ msgstr "Licencja Apache" #~ msgid "Apply Diff to File" #~ msgstr "Zastosuj diff do pliku" #~ msgid "Apply Diff to Project" #~ msgstr "Zastosuj diff do projektu" #~ msgid "Apply a patch file to the current document" #~ msgstr "Zastosuj łatkę do bieżącego dokumentu" #~ msgid "Apply a patch file to the current project" #~ msgstr "Zastosuj łatkę do bieżącego projektu" #~ msgid "Artistic License 1.0" #~ msgstr "Artistic License 1.0" #~ msgid "Artistic License 2.0" #~ msgstr "Artistic License 1.0" #~ msgid "Automatic indentation style detection" #~ msgstr "Automatyczne wykrycie stylu wcięć" #~ msgid "Blue butterfly on a green leaf" #~ msgstr "Niebieski motyl na zielonym liściu" #~ msgid "Builder:" #~ msgstr "Builder:" #~ msgid "Cannot diff if file was never saved" #~ msgstr "Nie można wykonać porównania jeśli plik nigdy nie został zapisany" #~ msgid "Case &insensitive" #~ msgstr "Nie uwzględniaj wielkości &liter" #~ msgid "Case &sensitive" #~ msgstr "Uwzględniaj wielkość &liter" #~ msgid "Category:" #~ msgstr "Kategoria:" #~ msgid "Characters (including whitespace)" #~ msgstr "Znaki (włącznie z białymi)" #~ msgid "Check for file updates on disk every (seconds)" #~ msgstr "Sprawdzaj zmiany w pliku na dysku co (sekund)" #~ msgid "Cl&ose Window on Hit" #~ msgstr "Zamknij &okno gdy znajdziesz" #~ msgid "Class:" #~ msgstr "Klasa:" #~ msgid "Close Window on &Hit" #~ msgstr "Zamknij okno &gdy znajdziesz" #~ msgid "" #~ "Compare the file in the editor to that on the disk and show the diff in " #~ "the output window" #~ msgstr "" #~ "Porównaj plik z edytora z plikiem na dysku i pokaż różnice w oknie " #~ "wyjściowym" #~ msgid "Copy &All" #~ msgstr "Kopiuj &wszystko" #~ msgid "Copy &Selected" #~ msgstr "Kopiuj &zaznaczone" #~ msgid "Copy of current file" #~ msgstr "Kopiuj bieżący plik" #~ msgid "Could not determine the comment character for %s document type" #~ msgstr "Nie można ustalić znaku komentarza dla pliku typu %s" #, fuzzy #~ msgid "Could not set breakpoint on file '%s' row '%s'" #~ msgstr "Nie można odnaleźć pliku '%s'" #~ msgid "Created by" #~ msgstr "Utworzony przez" #~ msgid "Creates a Padre Plugin" #~ msgstr "Tworzy Plugin Padre" #~ msgid "Creates a Padre document" #~ msgstr "Tworzy dokument Padre" #~ msgid "Creates a Perl 5 module or script" #~ msgstr "Tworzy skrypt lub moduł Perl 5" #~ msgid "Debugger not running" #~ msgstr "Debuger nie działa" #~ msgid "Diff Tools" #~ msgstr "Narzędzia diff" #~ msgid "Diff to Saved Version" #~ msgstr "Diff do zapisanej wersji" #~ msgid "Diff tool" #~ msgstr "Narzędzie diff" #~ msgid "" #~ "Display the current value of a variable in the right hand side debugger " #~ "pane" #~ msgstr "" #~ "Wyświetl bieżącą wartość zmiennej po prawej stronie panelu debugowania" #~ msgid "Dump" #~ msgstr "Zrzut" #~ msgid "Dump %INC and @INC" #~ msgstr "Zrzut %INC i @INC" #~ msgid "Dump Current Document" #~ msgstr "Zrzut bieżącego dokumentu" #~ msgid "Dump Current PPI Tree" #~ msgstr "Zrzut bieżącego drzewa PPI" #~ msgid "Dump Expression..." #~ msgstr "Zrzut wyrażenie..." #~ msgid "Dump Task Manager" #~ msgstr "Zrzut Menadżera zadań" #~ msgid "Dump Top IDE Object" #~ msgstr "Zrzut nadrzędnego obiektu IDE" #~ msgid "Edit/Add Snippets" #~ msgstr "Edytuj/Dodaj fragment" #~ msgid "Email Address:" #~ msgstr "Email:" #~ msgid "Error while loading %s" #~ msgstr "Błąd ładowania %s" #~ msgid "Evening" #~ msgstr "Wieczór" #~ msgid "" #~ "Execute the next statement, enter subroutine if needed. (Start debugger " #~ "if it is not yet running)" #~ msgstr "" #~ "Wykonaj następną deklarację. Jeśli trzeba wywołaj podprocedurę. (Uruchom " #~ "debuger jeśli jeszcze nie jest uruchomiony)" #, fuzzy #~ msgid "" #~ "Execute the next statement. If it is a subroutine call, stop only after " #~ "it returned. (Start debugger if it is not yet running)" #~ msgstr "" #~ "Wykonaj następną deklarację. Jeśli jest to wywołanie podprocedury, " #~ "zatrzymaj gdy coś zwróci. (Uruchom debuger jeśli nie jest jeszcze " #~ "uruchomiony)" #~ msgid "Expr" #~ msgstr "Wyrażenie" #~ msgid "Expression:" #~ msgstr "Wyrażenie:" #~ msgid "External Tools" #~ msgstr "Narzędzia zewnętrzne" #~ msgid "Failed to find template file '%s'" #~ msgstr "Niepowodzenie wyszukiwania szablonu '%s'" #~ msgid "Fast but might be out of date" #~ msgstr "Szybkie ale może być przestarzałe" #~ msgid "Field %s was missing. Module not created." #~ msgstr "Brakuje pola %s. Moduł nie został stworzony." #~ msgid "File access via FTP" #~ msgstr "Dostęp do pliku przez FTP" #~ msgid "File access via HTTP" #~ msgstr "Dostęp do pliku przez HTTP" #~ msgid "Find Previous" #~ msgstr "Znajdź poprzedni\tShift-F3" #~ msgid "Find Results (%s)" #~ msgstr "Wyniki wyszukiwania (%s)" #~ msgid "Find Text:" #~ msgstr "Szukany tekst:" #~ msgid "Find and Replace" #~ msgstr "Znajdź i zastąp" #~ msgid "" #~ "Find next matching text using a toolbar-like dialog at the bottom of the " #~ "editor" #~ msgstr "" #~ "Znajdź następne dopasowanie przy użyciu narzędziowego okna dialogowego u " #~ "dołu edytora" #~ msgid "" #~ "Find previous matching text using a toolbar-like dialog at the bottom of " #~ "the editor" #~ msgstr "" #~ "Znajdź poprzednie dopasowanie przy użyciu narzędziowego okna dialogowego " #~ "u dołu edytora" #~ msgid "Found %d issue(s)" #~ msgstr "Znaleziono %d problem(ów)" #~ msgid "GPL 2 or later" #~ msgstr "GPL 2 lub nowsza" #~ msgid "Go to Todo Window" #~ msgstr "Idź do okna Todo" #~ msgid "Goto" #~ msgstr "Idź do" #~ msgid "Goto previous position" #~ msgstr "Idź do poprzedniej pozycji" #~ msgid "Hide Find in Files" #~ msgstr "Ukryj wyszukaj w plikach" #~ msgid "Hide the list of matches for a Find in Files search" #~ msgstr "Ukryj listę dopasowań w wynikach wyszukiwania w plikach" #~ msgid "" #~ "Hopefully faster than the PPI Traditional. Big file will fall back to " #~ "Scintilla highlighter." #~ msgstr "" #~ "Możliwe, że szybszy niż Tradycyjny PPI. Duże pliki będą podświetlane przy " #~ "użyciu Scintilla." #~ msgid "Imitate clicking on the right mouse button" #~ msgstr "Imituj klikanie prawym klawiszem myszki" #~ msgid "Indentation width (in columns)" #~ msgstr "Szerokość wcięcia (w kolumnach)" #~ msgid "Install CPAN Module" #~ msgstr "Zainstaluj moduł CPAN" #~ msgid "Install a Perl module from CPAN" #~ msgstr "Zainstaluj moduł Perl z CPAN" #~ msgid "Interpreter arguments" #~ msgstr "Parametry interpretera" #~ msgid "Jump between the two last visited files back and forth" #~ msgstr "" #~ "Przeskak pomiędzy dwoma ostatnio wyświetlanymi plikami wstecz i wprzód" #~ msgid "Jump to Current Execution Line" #~ msgstr "Skocz do bieżącego wiersza wywołania" #~ msgid "Jump to the last position saved in memory" #~ msgstr "Przeskocz do ostatniej pozycji zapisanej w pamięci" #~ msgid "Kibibytes (kiB)" #~ msgstr "Kibibajtów (kiB)" #~ msgid "Kilobytes (kB)" #~ msgstr "Kilobajtów (kB)" #~ msgid "LGPL 2.1 or later" #~ msgstr "LGPL 2.1 lub nowsza" #~ msgid "License:" #~ msgstr "Licencja:" #~ msgid "Line" #~ msgstr "Wiersz" #~ msgid "Local/Remote File Access" #~ msgstr "Lokalny/Zdalny dostęp do plików" #~ msgid "MIT License" #~ msgstr "Licencja MIT" #~ msgid "Match Case" #~ msgstr "Dopasuj wielkość" #~ msgid "Methods order" #~ msgstr "Kolejność metod" #~ msgid "Mime type already had a class '%s' when %s(%s) was called" #~ msgstr "Typ MIME posiadał klasę '%s' przy wywołaniu %s(%s)" #~ msgid "Mime type is not supported when %s(%s) was called" #~ msgstr "Typ MIME nie jest wspierany przy wywołaniu %s(%s)" #~ msgid "Mime type was not supported when %s(%s) was called" #~ msgstr "Typ MIME nie był wspierany przy wywołano %s(%s)" #~ msgid "Module" #~ msgstr "Moduł" #~ msgid "Module Start" #~ msgstr "Uruchom moduł" #~ msgid "Move to other panel" #~ msgstr "Przenieś do innego panelu" #~ msgid "Mozilla Public License" #~ msgstr "Mozilla Public License" #~ msgid "Name:" #~ msgstr "Nazwa:" #~ msgid "New" #~ msgstr "Nowy" #~ msgid "Next" #~ msgstr "Następny" #~ msgid "Night" #~ msgstr "Noc" #~ msgid "No Perl 5 file is open" #~ msgstr "Nie otwarto żadnego pliku Pelr 5" #~ msgid "No errors or warnings found." #~ msgstr "Nie znaleziono błędów ani ostrzeżeń." #~ msgid "No file is open" #~ msgstr "Nie otwarto żadnego pliku" #~ msgid "Notepad++" #~ msgstr "Notepad++" #~ msgid "Oldest Visited File" #~ msgstr "Najstarszy wyświetlany plik\tCtrl-Shift-P" #~ msgid "Open Source" #~ msgstr "Otwórz źródło" #~ msgid "Open a document and copy the content of the current tab" #~ msgstr "Otwórz dokument i skopiuj zawartość bieżącej karty" #~ msgid "Open files" #~ msgstr "Otwórz pliki" #~ msgid "Opens the Padre document wizard" #~ msgstr "Otwiera kreatora dokumentów Padre" #~ msgid "Opens the Padre plugin wizard" #~ msgstr "Otwiera kreatora pluginów Padre" #~ msgid "Opens the Perl 5 module wizard" #~ msgstr "Otwiera kreatora modułów Perl 5" #~ msgid "Other Open Source" #~ msgstr "Inny Open Source" #~ msgid "Padre Document Wizard" #~ msgstr "Kreator dokumentów Padre" #~ msgid "Padre Plugin Wizard" #~ msgstr "Kreator wtyczek Padre" #~ msgid "Parent Directory:" #~ msgstr "Katalog nadrzędny:" #~ msgid "Perl 5" #~ msgstr "Perl 5" #~ msgid "Perl 5 Module Wizard" #~ msgstr "Kreator Modułów Perl 5" #~ msgid "Perl Distribution (New)..." #~ msgstr "Dystrybucja Perla (Nowa)..." #~ msgid "Perl interpreter" #~ msgstr "Interpreter Perl" #~ msgid "Perl licensing terms" #~ msgstr "Warunki licencjonowania Perl" #~ msgid "Pick parent directory" #~ msgstr "Wybierz katalog nadrzędny" #~ msgid "Plug-in Name" #~ msgstr "Nazwa wtyczki" #~ msgid "Plugin" #~ msgstr "Wtyczka" #~ msgid "Previ&ous" #~ msgstr "P&oprzedni" #~ msgid "Project Tools (Left)" #~ msgstr "Narzędzia projektu (lewo)" #~ msgid "Proprietary/Restrictive" #~ msgstr "Własnościowy/Restrykcyjny" #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "Ustaw kursor na najstarszej odwiedzanej karcie." #~ msgid "R/W" #~ msgstr "R/W" #~ msgid "RegExp for TODO panel" #~ msgstr "RegExp dla panelu TODO" #~ msgid "Regular &Expression" #~ msgstr "&Wyrażenie regularne" #~ msgid "Related editor has been closed" #~ msgstr "Powiązany edytor został zamknięty" #~ msgid "Reload all files" #~ msgstr "Ładuj ponownie wszystkie pliki" #~ msgid "Reload some" #~ msgstr "Ładuj ponownie niektóre" #~ msgid "Reload some files" #~ msgstr "Ładuj ponownie niektóre pliki" #~ msgid "Revised BSD License" #~ msgstr "Zrewidowana licencja BSD" #~ msgid "Search Directory:" #~ msgstr "Katalog wyszukiwania:" #~ msgid "Search in Types:" #~ msgstr "Szukaj w typach:" #~ msgid "Selects and opens a wizard" #~ msgstr "Wybiera i otwiera kreator" #~ msgid "Setup a skeleton Perl distribution" #~ msgstr "Ustaw szkieletową dystrybucję Perl" #~ msgid "Setup a skeleton Perl module distribution" #~ msgstr "Ustaw szkieletową dystrybucję modułu Perl" #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "Pokaż okno dialogowe przypisania skrótów klawiszowych Padre" #~ msgid "Show the list of positions recently visited" #~ msgstr "Pokaż listę pozycji ostatnio odwiedzanych" #~ msgid "Show the value of a variable now in a pop-up window." #~ msgstr "Pokaż teraz wartość zmiennej w wyskakującym oknie." #~ msgid "Slow but accurate and we have full control so bugs can be fixed" #~ msgstr "Powoli i dokładnie i mamy pełną kontrolę więc błędy można naprawić" #~ msgid "Snippets" #~ msgstr "Fragmenty" #~ msgid "Snippit:" #~ msgstr "Fragment:" #~ msgid "Special Value:" #~ msgstr "Wartość specjalna:" #~ msgid "Stats" #~ msgstr "Statystyki" #~ msgid "Switch highlighting colours" #~ msgstr "Przełącz kolory podświetlania" #~ msgid "" #~ "Switch to edit the file that was previously edited (can switch back and " #~ "forth)" #~ msgstr "" #~ "Przełącz do edycji pliku uprzednio edytowanego (można przełączać w przód " #~ "i wstecz)" #~ msgid "Syntax Highlighter" #~ msgstr "Podświetlanie składni" #~ msgid "System Info" #~ msgstr "Informacje systemowe" #~ msgid "Tab display size (in spaces)" #~ msgstr "Rozmiar tabulatora (w spacjach)" #~ msgid "The Padre Development Team" #~ msgstr "Zespół Deweloperów Padre" #~ msgid "The Padre Translation Team" #~ msgstr "Zespół Tłumaczy Padre" #, fuzzy #~ msgid "" #~ "The debugger is not running.\n" #~ "You can start the debugger using one of the commands 'Step In', 'Step " #~ "Over', or 'Run till Breakpoint' in the Debug menu." #~ msgstr "" #~ "Debuger nie działa.\n" #~ "Możesz uruchomić debuger przy użyciu następujących poleceń 'Step In', " #~ "'Step Over' lub 'Run till Breakpoint' w menu Debug" #~ msgid "" #~ "The directory browser got an undef object and may stop working now. " #~ "Please save your work and restart Padre." #~ msgstr "" #~ "Przeglądarka katalogów napotkała obiekt undef i może teraz przestać " #~ "pracować. Proszę zapisać swoją pracę i zrestartować Padre" #~ msgid "The same as Perl itself" #~ msgstr "Taka sama jak Perl" #~ msgid "There are no differences\n" #~ msgstr "Brak różnic\n" #~ msgid "To-do" #~ msgstr "To-do" #~ msgid "Type in any expression and evaluate it in the debugged process" #~ msgstr "Wprowadź dowolne wyrażenie i oszacuj je w procesie debugowania" #~ msgid "Ultraedit" #~ msgstr "Ultraedit" #~ msgid "Uptime" #~ msgstr "Uptime" #~ msgid "Use Tabs" #~ msgstr "Używaj tabulatorów" #~ msgid "Use rege&x" #~ msgstr "Wykorzystaj wyrażenia ®ularne\t\t" #~ msgid "Username" #~ msgstr "Nazwa użytkownika" #~ msgid "Variable" #~ msgstr "Nazwa zmiennej" #~ msgid "Visit the PerlMonks" #~ msgstr "Odwiedź stronę PerlMonks" #~ msgid "Wizard Selector" #~ msgstr "Kreator selektora" #~ msgid "Wizard Selector..." #~ msgstr "Kreator selektora..." #~ msgid "X" #~ msgstr "X" #~ msgid "enabled" #~ msgstr "włączona" #~ msgid "error" #~ msgstr "błąd" #~ msgid "none" #~ msgstr "żaden" #~ msgid "splash image is based on work by" #~ msgstr "obraz ekranu powitalnego bazuje na pracy" #~ msgid "Norwegian (Norway)" #~ msgstr "Norweski (Norwegia)" #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "Wtyczka:%s - Błąd przy próbie wczytania modułu: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "Wtyczka:%s - Nie jest zgodna z API Padre::Plugin. Musi być podklasą " #~ "Padre::Plugin" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "Wtyczka: %s - Nie można utworzyć instancji obiektu wtyczki: konstruktor " #~ "nie zwraca obiektu Padre::Plugin" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "Wtyczka: %s - Nie zawiera menu" #~ msgid "%s worker threads are running.\n" #~ msgstr "Uruchomionych jest %s wątków.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "Brak zadań aktualnie działających w tle.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "Następujące zadania działają obecnie w tle:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s typu '%s':\n" #~ " (w wątku(-kach) %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "Dodatkowo istnieje %s zadań czekających na uruchomienie.\n" #~ msgid "L:" #~ msgstr "W:" #~ msgid "Ch:" #~ msgstr "Zn:" #~ msgid "Undo" #~ msgstr "Confij" #~ msgid "Redo" #~ msgstr "Przywróć" #~ msgid "&Close\tCtrl+W" #~ msgstr "Z&amknij\tCtrl-W" #~ msgid "E&xit\tCtrl+X" #~ msgstr "Zakoń&cz\tCtrl-X" #~ msgid "Term:" #~ msgstr "Fraza:" #~ msgid "Dir:" #~ msgstr "Katalog:" #~ msgid "Pick &directory" #~ msgstr "Wybierz &katalog" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "I&gnoruj ukryte podkatalogi" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Workspace View" #~ msgstr "Podgląd obszaru roboczego" #~ msgid "Select all\tCtrl-A" #~ msgstr "Zaznacz wszystko\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Kopiuj\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "Wy&tnij\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "&Wklej\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "&Przełącz komentarz\tCtrl-Shift-C" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "&Usuń komentarz z wierszy\tCtrl-Shift-M" #~ msgid "&Split window" #~ msgstr "&Podziel okno" #~ msgid "Error List" #~ msgstr "Lista błędów" #~ msgid "No diagnostics available for this error!" #~ msgstr "Brak diagnostyki dla tego błędu!" #~ msgid "Diagnostics" #~ msgstr "Diagnostyka" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "Nie można otworzyć %s ponieważ rozmiar pliku przekracza limit Padre, " #~ "który obecnie wynosi %s" #~ msgid "Lines: %d" #~ msgstr "Wiersze: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Znaków bez odstępów: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Znaków z odstępami: %d" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "" #~ "Plik na dysku został zmieniony od ostatniego zapisu. Czy chcesz go " #~ "ponownie wczytać?" #~ msgid "&Use Regex" #~ msgstr "Wykorzystaj wyrażenia ®ularne" #~ msgid "Cannot build regex for '%s'" #~ msgstr "Nie można przygotować wyrażenia regularnego dla '%s'" #~ msgid "Guess" #~ msgstr "Zgadnij" #~ msgid "Settings Demo" #~ msgstr "Przykład ustawień" #~ msgid "Enable?" #~ msgstr "Włączyć?" #~ msgid "Unsaved" #~ msgstr "Brak nazwy" #~ msgid "N/A" #~ msgstr "Brak" #~ msgid "Document name:" #~ msgstr "Nazwa dokumentu:" #~ msgid "Run Parameters" #~ msgstr "Parametry uruchomienia" #~ msgid "nothing" #~ msgstr "żadnego" #~ msgid "last" #~ msgstr "ostatnie" #~ msgid "no" #~ msgstr "brak" #~ msgid "same_level" #~ msgstr "ten_sam_poziom" #~ msgid "deep" #~ msgstr "głębokie" #~ msgid "Close Window on &hit" #~ msgstr "Zamknij okno &gdy znajdziesz" #~ msgid "%s occurences were replaced" #~ msgstr "%s wystąpień zostało zamienionych" #~ msgid "Nothing to replace" #~ msgstr "Brak elementów do zatąpienia" #~ msgid "%s apparantly created. Do you want to open it now?" #~ msgstr "%s istnieje. Czy chcesz go otworzyć?" #~ msgid "&Goto\tCtrl-G" #~ msgstr "&Idź do\tCtrl-G" #~ msgid "&AutoComp\tCtrl-P" #~ msgstr "&Automatycznie uzupełnij\tCtrl-P" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "Wstawki\tCtrl-Shift-A" #~ msgid "Convert EOL" #~ msgstr "Zmień znaki EOL" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "Wszystkie na wielkie\tCtrl-Shift-U" #~ msgid "Insert From File..." #~ msgstr "Wstaw z pliku..." #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "Ustaw zakładkę\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "Idź do zakładki\tCtrl-Shift-B" #~ msgid "Style" #~ msgstr "Styl" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Sprawdź wtyczkę z lokalnego katalogu" #~ msgid "&Find\tCtrl-F" #~ msgstr "&Znajdź\tCtrl-F" #~ msgid "Find Next\tF3" #~ msgstr "Znajdź następny\tF3" #~ msgid "Replace\tCtrl-R" #~ msgstr "Zastąp\tCtrl-R" #~ msgid "Find Next\tF4" #~ msgstr "Znajdź następny\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "Znajdź poprzedni\tShift-F4" #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "Copyright 2008-2009 zespół Padre wymieniony w Padre.pm" #~ msgid "Stop\tF6" #~ msgstr "Zatrzymaj\tF6" #~ msgid "&New\tCtrl-N" #~ msgstr "&Nowy\tCtrl-N" #~ msgid "&Open...\tCtrl-O" #~ msgstr "&Otwórz...\tCtrl-O" #~ msgid "&Close\tCtrl-W" #~ msgstr "Z&amknj\tCtrl-W" #~ msgid "Close All but Current" #~ msgstr "Zamknij wszystkie oprócz bieżącego" #~ msgid "&Save\tCtrl-S" #~ msgstr "&Zapisz\tCtrl-S" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "Otwórz zaznaczone\tCtrl-Shift-O" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "Zapisz sesję...\tCtrl-Alt-S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "Zakoń&cz\tCtrl-Q" #~ msgid "Replacement" #~ msgstr "Zastąpienie" #~ msgid "Automatic bracket completion" #~ msgstr "Automatyczne uzupełnianie nawiasów" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "Następny plik\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "Poprzedni plik\tCtrl-Shift-TAB" #~ msgid "Disable Experimental Mode" #~ msgstr "Wyłącz tryb eksperymentalny" #~ msgid "Refresh Counter: " #~ msgstr "Licznik odświeżeń:" #~ msgid "Install Module..." #~ msgstr "Zainstaluj moduł..." #~ msgid "Enable logging" #~ msgstr "Włącz logowanie" #~ msgid "Disable logging" #~ msgstr "Wyłącz logowanie" #~ msgid "Enable trace when logging" #~ msgstr "Włącz śledzenie (trace) przy logowaniu" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Symuluj awarię zadania tła" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "Sub List" #~ msgstr "Lista procedur" #~ msgid "Text to find:" #~ msgstr "Tekst do odszukania:" #~ msgid "All available plugins on CPAN" #~ msgstr "Wszystkie wtyczki dostępne w CPAN" #~ msgid "Convert..." #~ msgstr "Zamień..." #~ msgid "Background Tasks are idle" #~ msgstr "Brak zadań w tle" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "Wtyczka:%s - Nie jest zgodna z API Padre::Plugin. Nie można utworzyć " #~ "instancji z wtyczki" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "Wtyczka:%s - Nie jest zgodna z API Padre::Plugin. Musi zawierać funkcję " #~ "padre_interfaces" #~ msgid "No output" #~ msgstr "Brak wyniku" #~ msgid "Ac&k Search" #~ msgstr "Wyszukiwanie Ac&k" #~ msgid "Doc Stats" #~ msgstr "Statystyki dokumentu" Padre-1.00/share/locale/cz.po0000644000175000017500000036503211532441577014500 0ustar petepete# Czech translations for PACKAGE package. # Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Marcela Maslanova , 2009. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-21 16:11+0100\n" "PO-Revision-Date: 2009-04-30 13:08+0200\n" "Last-Translator: Marcela Mašláňová \n" "Language-Team: Czech\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: lib/Padre/PluginManager.pm:402 #, fuzzy msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Nalezeno několik nových doplňků.\n" "Pro další nastavení přejděte v menu na\n" "Doplňky -> Správce doplňků\n" "\n" "Seznam nových doplňků:\n" "\n" #: lib/Padre/PluginManager.pm:412 #, fuzzy msgid "New plug-ins detected" msgstr "Nalezeny nové doplňky" #: lib/Padre/PluginManager.pm:544 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Pád aplikace během nahrávání: %s" #: lib/Padre/PluginManager.pm:556 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - Nejedná se o podtřídu Padre::Plugin" #: lib/Padre/PluginManager.pm:569 #, perl-format msgid "%s - Not compatible with Padre version %s - %s" msgstr "%s - Nekompatibilní s verzí Padre %s - %s" #: lib/Padre/PluginManager.pm:584 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Pád během vytváření instance: %s" #: lib/Padre/PluginManager.pm:594 #, fuzzy, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - Nelze vytvořit instanci objektu doplňku" #: lib/Padre/PluginManager.pm:846 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Chyba doplňku na události %s: %s" #: lib/Padre/PluginManager.pm:856 msgid "(core)" msgstr "(jádro)" #: lib/Padre/PluginManager.pm:857 lib/Padre/File/FTP.pm:145 #: lib/Padre/Document/Perl.pm:579 lib/Padre/Document/Perl.pm:911 #: lib/Padre/Document/Perl.pm:960 msgid "Unknown error" msgstr "Neznámá chyba" #: lib/Padre/PluginManager.pm:867 #, fuzzy, perl-format msgid "Plugin %s" msgstr "Doplněk %s" #: lib/Padre/PluginManager.pm:943 #, fuzzy msgid "Error when calling menu for plug-in " msgstr "Chyba při vytváření menu doplňků" #: lib/Padre/PluginManager.pm:979 lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Žádné jméno souboru" #: lib/Padre/PluginManager.pm:982 #, fuzzy msgid "Could not locate project directory." msgstr "Nelze najít adresář projektu" #: lib/Padre/PluginManager.pm:1004 lib/Padre/PluginManager.pm:1100 #, fuzzy, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Selhalo nahrání doplňku '%s'\n" "%s" #: lib/Padre/PluginManager.pm:1054 lib/Padre/Wx/Main.pm:5439 msgid "Open file" msgstr "Otevřít soubor" #: lib/Padre/PluginManager.pm:1074 #, fuzzy, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "Doplněk potřebuje '%s' jako hlavní adresář" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "Anglický (Spojené Království)" #: lib/Padre/Locale.pm:124 #, fuzzy msgid "English (Australia)" msgstr "Anglický (Austrálie)" #: lib/Padre/Locale.pm:142 lib/Padre/Wx/Main.pm:3612 msgid "Unknown" msgstr "Neznámý" #: lib/Padre/Locale.pm:156 msgid "Arabic" msgstr "Arabský" #: lib/Padre/Locale.pm:166 msgid "Czech" msgstr "Český" #: lib/Padre/Locale.pm:176 #, fuzzy msgid "Danish" msgstr "Španělský" #: lib/Padre/Locale.pm:186 msgid "German" msgstr "Německý" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "Anglický" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "Anglický (Kanada)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "Anglický (Nový Zéland)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "Anglický (USA)" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "Španělský (Argentina)" #: lib/Padre/Locale.pm:248 msgid "Spanish" msgstr "Španělský" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "Perský (Írán)" #: lib/Padre/Locale.pm:268 #, fuzzy msgid "French (Canada)" msgstr "Francouzský (Francie)" #: lib/Padre/Locale.pm:282 msgid "French" msgstr "Francouzský" #: lib/Padre/Locale.pm:292 msgid "Hebrew" msgstr "Hebrejský" #: lib/Padre/Locale.pm:302 msgid "Hungarian" msgstr "Maďarský" #: lib/Padre/Locale.pm:316 msgid "Italian" msgstr "Italský" #: lib/Padre/Locale.pm:326 msgid "Japanese" msgstr "Japonský" #: lib/Padre/Locale.pm:336 msgid "Korean" msgstr "Korejský" #: lib/Padre/Locale.pm:350 msgid "Dutch" msgstr "Holandský" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "Holandský (Belgie)" #: lib/Padre/Locale.pm:370 #, fuzzy msgid "Norwegian" msgstr "Norský (Norsko)" #: lib/Padre/Locale.pm:380 msgid "Polish" msgstr "Polský" #: lib/Padre/Locale.pm:390 msgid "Portuguese (Brazil)" msgstr "Portugalský (Brazílie)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "Portugalský (Portugalsko)" #: lib/Padre/Locale.pm:410 msgid "Russian" msgstr "Ruský" #: lib/Padre/Locale.pm:420 msgid "Turkish" msgstr "Turecký" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "Čínský" #: lib/Padre/Locale.pm:440 msgid "Chinese (Simplified)" msgstr "Čínský (zjednodušený)" #: lib/Padre/Locale.pm:450 msgid "Chinese (Traditional)" msgstr "Čínský (Tradiční)" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "Klingonský" #: lib/Padre/MimeTypes.pm:229 #, fuzzy msgid "Shell Script" msgstr "Shellový skript" #: lib/Padre/MimeTypes.pm:333 msgid "Text" msgstr "Text" #: lib/Padre/MimeTypes.pm:364 lib/Padre/MimeTypes.pm:374 msgid "Scintilla" msgstr "" #: lib/Padre/MimeTypes.pm:365 lib/Padre/MimeTypes.pm:375 msgid "Fast but might be out of date" msgstr "Rychlé, ale možná zastaralé." #: lib/Padre/MimeTypes.pm:383 #, fuzzy msgid "PPI Experimental" msgstr "PPI Experimentální" #: lib/Padre/MimeTypes.pm:384 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "Pomalé ale přesné a pod naší kontrolou tudíž chyby mohou být opraveny" #: lib/Padre/MimeTypes.pm:388 msgid "PPI Standard" msgstr "PPI Standard" #: lib/Padre/MimeTypes.pm:389 msgid "" "Hopefully faster than the PPI Traditional. Big file will fall back to " "Scintilla highlighter." msgstr "" "Snad rychlejší než PPI Traditional. Velké soubory jsou zpracovávány " "Scintilla zvýrazňovačem." #: lib/Padre/MimeTypes.pm:415 #, perl-format msgid "Mime type was not supported when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:425 #, perl-format msgid "Mime type already had a class '%s' when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:441 lib/Padre/MimeTypes.pm:467 #, perl-format msgid "Mime type is not supported when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:451 #, perl-format msgid "Mime type did not have a class entry when %s(%s) was called" msgstr "" #: lib/Padre/MimeTypes.pm:618 msgid "UNKNOWN" msgstr "" #: lib/Padre/Config.pm:398 msgid "Showing the splash image during start-up" msgstr "" #: lib/Padre/Config.pm:411 #, fuzzy msgid "Previous open files" msgstr "Předchozí otevřené soubory" #: lib/Padre/Config.pm:412 msgid "A new empty file" msgstr "Nový prázdný soubor" #: lib/Padre/Config.pm:413 #, fuzzy msgid "No open files" msgstr "Žádné otevřené soubory" #: lib/Padre/Config.pm:414 #, fuzzy msgid "Open session" msgstr "Otevřená sezení" #: lib/Padre/Config.pm:721 #, fuzzy msgid "No Autoindent" msgstr "Bez autoodsazování" #: lib/Padre/Config.pm:722 msgid "Indent to Same Depth" msgstr "Odsazovat do stejné hloubky" #: lib/Padre/Config.pm:723 msgid "Indent Deeply" msgstr "Odsazovat hlouběji" #: lib/Padre/PluginHandle.pm:89 lib/Padre/Wx/Dialog/PluginManager.pm:491 msgid "error" msgstr "chyba" #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "odebrán" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "nahrán" #: lib/Padre/PluginHandle.pm:92 lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "incompatible" msgstr "nekompatibilní" #: lib/Padre/PluginHandle.pm:93 lib/Padre/Wx/Dialog/PluginManager.pm:530 msgid "disabled" msgstr "zakázán" #: lib/Padre/PluginHandle.pm:94 lib/Padre/Wx/Dialog/PluginManager.pm:518 msgid "enabled" msgstr "povolen" #: lib/Padre/PluginHandle.pm:201 #, fuzzy, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Selhalo povolení doplňku '%s': %s" #: lib/Padre/PluginHandle.pm:281 #, fuzzy, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Selhalo zakázání doplňku '%s': %s" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "Selhalo nalezení vaší CPAN konfigurace" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "Zvolte instalaci distribuce" #: lib/Padre/CPAN.pm:118 lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "Neposkytuje distribuci" #: lib/Padre/CPAN.pm:132 #, fuzzy msgid "" "Enter URL to install\\ne.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00." "tar.gz" msgstr "" "Zadejte URL pro instalaci\n" "např. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/CPAN.pm:133 msgid "Install Local Distribution" msgstr "Instaluj lokální distribuci" #: lib/Padre/CPAN.pm:178 #, fuzzy msgid "cpanm is unexpectedly not installed" msgstr "cpanm neočekávaně není nainstalován" #: lib/Padre/Document.pm:231 msgid "Error while opening file: no file object" msgstr "" #: lib/Padre/Document.pm:253 #, perl-format msgid "" "The file %s you are trying to open is %s bytes large. It is over the " "arbitrary file size limit of Padre which is currently %s. Opening this file " "may reduce performance. Do you still want to open the file?" msgstr "" #: lib/Padre/Document.pm:259 lib/Padre/Wx/Syntax.pm:31 #: lib/Padre/Wx/Main.pm:2697 lib/Padre/Wx/Main.pm:3304 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Varování" #: lib/Padre/Document.pm:281 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Došlo k chybě během pokusu odhadnutí typu MIME.\n" "Pravděpodobně se jedná o problém kódování.\n" "Snažíte se otevřít binární soubor?" #: lib/Padre/Document.pm:325 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "" #: lib/Padre/Document.pm:440 lib/Padre/Wx/Editor.pm:215 #: lib/Padre/Wx/Main.pm:4492 lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 #: lib/Padre/Wx/Dialog/ModuleStart.pm:185 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:90 lib/Padre/Wx/Dialog/Sync2.pm:67 #: lib/Padre/Wx/Dialog/Sync2.pm:75 lib/Padre/Wx/Dialog/Sync2.pm:89 #: lib/Padre/Wx/Dialog/Sync2.pm:108 lib/Padre/Wx/Dialog/Sync2.pm:132 #: lib/Padre/Wx/Dialog/Sync2.pm:143 lib/Padre/Wx/Dialog/Sync2.pm:153 #: lib/Padre/Wx/Dialog/Sync2.pm:171 lib/Padre/Wx/Dialog/Sync2.pm:182 #: lib/Padre/Wx/Dialog/Sync2.pm:193 lib/Padre/Wx/Dialog/Sync2.pm:204 #: lib/Padre/Wx/Dialog/PerlFilter.pm:274 lib/Padre/Wx/Dialog/Sync.pm:447 #: lib/Padre/Wx/Dialog/Sync.pm:455 lib/Padre/Wx/Dialog/Sync.pm:469 #: lib/Padre/Wx/Dialog/Sync.pm:493 lib/Padre/Wx/Dialog/Sync.pm:517 #: lib/Padre/Wx/Dialog/Sync.pm:528 lib/Padre/Wx/Dialog/Sync.pm:538 #: lib/Padre/Wx/Dialog/Sync.pm:556 lib/Padre/Wx/Dialog/Sync.pm:567 #: lib/Padre/Wx/Dialog/Sync.pm:578 lib/Padre/Wx/Dialog/Sync.pm:589 #: lib/Padre/Wx/Dialog/OpenResource.pm:118 msgid "Error" msgstr "Chyba" #: lib/Padre/Document.pm:765 #, perl-format msgid "" "Visual filename %s does not match the internal filename %s, do you want to " "abort saving?" msgstr "" "Visual jméno souboru %s nesouhlasí s interním jménem souboru %s. Chcete " "zrušit ukládání?" #: lib/Padre/Document.pm:769 #, fuzzy msgid "Save Warning" msgstr "Bezpečnostní varování" #: lib/Padre/Document.pm:942 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "" #: lib/Padre/Document.pm:962 #, perl-format msgid "Unsaved %d" msgstr "Neuloženo %d" #: lib/Padre/Document.pm:1363 lib/Padre/Document.pm:1364 msgid "Skipped for large files" msgstr "Přeskočeno pro velké soubory" #: lib/Padre/Util/Template.pm:53 #, fuzzy msgid "Module name:" msgstr "Jméno modulu:" #: lib/Padre/Util/Template.pm:53 #, fuzzy msgid "New Module" msgstr "Perl 5 modul" #: lib/Padre/Util/FileBrowser.pm:63 lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "" #: lib/Padre/Util/FileBrowser.pm:193 msgid "Failed to execute process\n" msgstr "Selhalo provedení procesu\n" #: lib/Padre/Util/FileBrowser.pm:216 #, fuzzy msgid "Could not find KDE or GNOME" msgstr "Nelze najít kořen projektu" #: lib/Padre/File/HTTP.pm:48 #, perl-format msgid "Sending HTTP request %s..." msgstr "" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "" #: lib/Padre/File/FTP.pm:124 #, fuzzy, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Chyba nahrávání pod(u) třídy '%s': %s" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "" #: lib/Padre/File/FTP.pm:144 #, fuzzy, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Chyba nahrávání pod(u) třídy '%s': %s" #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "" #: lib/Padre/File/FTP.pm:186 #, fuzzy, perl-format msgid "Unable to parse %s" msgstr "Tabulátory na mezery" #: lib/Padre/File/FTP.pm:289 #, fuzzy msgid "Reading file from FTP server..." msgstr "Čtení položek. Prosím čekejte..." #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "" #: lib/Padre/PPI/EndifyPod.pm:38 #, fuzzy msgid "Error while searching for POD" msgstr "Chyba při provádění operace Padre" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:53 #, fuzzy msgid "Failed to merge the POD fragments" msgstr "Selhalo provedení procesu\n" #: lib/Padre/PPI/EndifyPod.pm:60 #, fuzzy msgid "Failed to delete POD fragment" msgstr "Selhalo provedení procesu\n" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Padre vývojářské nástroje" #: lib/Padre/Plugin/Devel.pm:67 msgid "Run Document inside Padre" msgstr "Spusť dokument v Padre" #: lib/Padre/Plugin/Devel.pm:68 #, fuzzy msgid "Run Selection inside Padre" msgstr "Spusť dokument v Padre" #: lib/Padre/Plugin/Devel.pm:71 msgid "Dump" msgstr "" #: lib/Padre/Plugin/Devel.pm:72 #, fuzzy msgid "Dump Expression..." msgstr "&Regulární výraz" #: lib/Padre/Plugin/Devel.pm:73 msgid "Dump Current Document" msgstr "Dumpni aktuální dokument" #: lib/Padre/Plugin/Devel.pm:74 msgid "Dump Task Manager" msgstr "" #: lib/Padre/Plugin/Devel.pm:75 msgid "Dump Top IDE Object" msgstr "Dumpni hlavní IDE objekt" #: lib/Padre/Plugin/Devel.pm:76 #, fuzzy msgid "Dump Current PPI Tree" msgstr "Dumpni aktuální dokument" #: lib/Padre/Plugin/Devel.pm:77 msgid "Dump %INC and @INC" msgstr "Dumpni %INC a @INC" #: lib/Padre/Plugin/Devel.pm:78 msgid "Dump Display Geometry" msgstr "" #: lib/Padre/Plugin/Devel.pm:79 msgid "Start/Stop sub trace" msgstr "" #: lib/Padre/Plugin/Devel.pm:83 msgid "Load All Padre Modules" msgstr "Nahraj všechny moduly Padre" #: lib/Padre/Plugin/Devel.pm:84 msgid "Simulate Crash" msgstr "Simuluj pád" #: lib/Padre/Plugin/Devel.pm:85 msgid "Simulate Background Exception" msgstr "" #: lib/Padre/Plugin/Devel.pm:86 #, fuzzy msgid "Simulate Background Crash" msgstr "Simuluj pád" #: lib/Padre/Plugin/Devel.pm:90 #, fuzzy, perl-format msgid "wxWidgets %s Reference" msgstr "wxWidgets %s reference" #: lib/Padre/Plugin/Devel.pm:93 msgid "STC Reference" msgstr "STC reference" #: lib/Padre/Plugin/Devel.pm:96 msgid "wxPerl Live Support" msgstr "wxPerl živá podpora" #: lib/Padre/Plugin/Devel.pm:102 lib/Padre/Plugin/PopularityContest.pm:201 msgid "About" msgstr "O programu" #: lib/Padre/Plugin/Devel.pm:120 lib/Padre/Plugin/Devel.pm:121 #, fuzzy msgid "Expression" msgstr "&Regulární výraz" #: lib/Padre/Plugin/Devel.pm:149 msgid "No file is open" msgstr "Žádný soubor otevřen" #: lib/Padre/Plugin/Devel.pm:170 #, fuzzy msgid "No Perl 5 file is open" msgstr "Žádný soubor otevřen" #: lib/Padre/Plugin/Devel.pm:242 msgid "Sub-tracing stopped" msgstr "" #: lib/Padre/Plugin/Devel.pm:248 msgid "Error while loading Aspect, is it installed?" msgstr "" #: lib/Padre/Plugin/Devel.pm:260 msgid "Sub-tracing started" msgstr "" #: lib/Padre/Plugin/Devel.pm:291 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Soubor všech nástrojů použitých vývojáři Padre\n" #: lib/Padre/Plugin/Devel.pm:311 #, perl-format msgid "Found %s unloaded modules" msgstr "" #: lib/Padre/Plugin/Devel.pm:323 #, fuzzy, perl-format msgid "Loaded %s modules" msgstr "Nahraj všechny moduly Padre" #: lib/Padre/Plugin/Devel.pm:334 #, perl-format msgid "Error: %s" msgstr "Chyba: %s" #: lib/Padre/Plugin/PopularityContest.pm:202 #, fuzzy msgid "Show current report" msgstr "Zobraz aktuální řádek" #: lib/Padre/Plugin/PopularityContest.pm:305 msgid "Popularity Contest Report" msgstr "" #: lib/Padre/Document/Perl.pm:430 #, fuzzy msgid "Error: " msgstr "Chyba: %s" #: lib/Padre/Document/Perl.pm:432 msgid "No errors found." msgstr "" #: lib/Padre/Document/Perl.pm:471 msgid "All braces appear to be matched" msgstr "Nechybí žádná závorka" #: lib/Padre/Document/Perl.pm:472 msgid "Check Complete" msgstr "Kontrola hotova" #: lib/Padre/Document/Perl.pm:541 lib/Padre/Document/Perl.pm:575 msgid "Current cursor does not seem to point at a variable" msgstr "Kurzor aktuálně neukazuje na žádnou proměnnou" #: lib/Padre/Document/Perl.pm:542 lib/Padre/Document/Perl.pm:596 #: lib/Padre/Document/Perl.pm:631 msgid "Check cancelled" msgstr "Kontrola zrušena" #: lib/Padre/Document/Perl.pm:577 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Nebyla nalezena deklarace pro specifikovanou (lexikální?) proměnnou" #: lib/Padre/Document/Perl.pm:583 #, fuzzy msgid "Search Canceled" msgstr "Kontrola zrušena" #: lib/Padre/Document/Perl.pm:595 #, fuzzy msgid "Current cursor does not seem to point at a method" msgstr "Kurzor aktuálně neukazuje na žádnou proměnnou" #: lib/Padre/Document/Perl.pm:630 #, perl-format msgid "Current '%s' not found" msgstr "" #: lib/Padre/Document/Perl.pm:819 lib/Padre/Document/Perl.pm:869 #: lib/Padre/Document/Perl.pm:907 #, fuzzy msgid "Current cursor does not seem to point at a variable." msgstr "Kurzor aktuálně neukazuje na žádnou proměnnou" #: lib/Padre/Document/Perl.pm:820 lib/Padre/Document/Perl.pm:830 #, fuzzy msgid "Rename variable" msgstr "Lexikální přejmenování proměnných" #: lib/Padre/Document/Perl.pm:829 #, fuzzy msgid "New name" msgstr "Žádný soubor" #: lib/Padre/Document/Perl.pm:870 #, fuzzy msgid "Variable case change" msgstr "Jména proměnných" #: lib/Padre/Document/Perl.pm:909 #, fuzzy msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Nebyla nalezena deklarace pro specifikovanou (lexikální?) proměnnou" #: lib/Padre/Document/Perl.pm:915 lib/Padre/Document/Perl.pm:964 msgid "Replace Operation Canceled" msgstr "Nahraď zrušenou operaci" #: lib/Padre/Document/Perl.pm:956 #, fuzzy msgid "First character of selection does not seem to point at a token." msgstr "První vybraný znak není symbolem." #: lib/Padre/Document/Perl.pm:958 msgid "Selection not part of a Perl statement?" msgstr "Označení není částí perlového příkazu?" #: lib/Padre/Document/Perl.pm:1696 lib/Padre/Wx/Menu/Refactor.pm:49 #, fuzzy msgid "Change variable style" msgstr "Lexikální přejmenování proměnných" #: lib/Padre/Document/Perl/Help.pm:302 #, perl-format msgid "(Since Perl %s)" msgstr "" #: lib/Padre/Document/Perl/Help.pm:306 msgid "- DEPRECATED!" msgstr "" #: lib/Padre/Wx/TodoList.pm:209 msgid "To-do" msgstr "" #: lib/Padre/Wx/Progress.pm:76 #, fuzzy msgid "Please wait..." msgstr "Čtení položek. Prosím čekejte..." #: lib/Padre/Wx/FindInFiles.pm:129 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "" #: lib/Padre/Wx/FindInFiles.pm:155 #, perl-format msgid "%s (%s results)" msgstr "" #: lib/Padre/Wx/FindInFiles.pm:212 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "" #: lib/Padre/Wx/FindInFiles.pm:223 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "" #: lib/Padre/Wx/FindInFiles.pm:320 lib/Padre/Wx/FBP/FindInFiles.pm:27 #, fuzzy msgid "Find in Files" msgstr "Hledání v souborech" #: lib/Padre/Wx/Syntax.pm:37 #, fuzzy msgid "Deprecation" msgstr "Označ" #: lib/Padre/Wx/Syntax.pm:43 #, fuzzy msgid "Severe Warning" msgstr "Bezpečnostní varování" #: lib/Padre/Wx/Syntax.pm:49 #, fuzzy msgid "Fatal Error" msgstr "Interní chyba" #: lib/Padre/Wx/Syntax.pm:55 #, fuzzy msgid "Internal Error" msgstr "Interní chyba" #: lib/Padre/Wx/Syntax.pm:61 #, fuzzy msgid "Very Fatal Error" msgstr "Interní chyba" #: lib/Padre/Wx/Syntax.pm:67 #, fuzzy msgid "Alien Error" msgstr "Chyba" #: lib/Padre/Wx/Syntax.pm:301 msgid "Syntax Check" msgstr "Kontrola syntaxe" #: lib/Padre/Wx/Syntax.pm:392 #, perl-format msgid "No errors or warnings found in %s." msgstr "" #: lib/Padre/Wx/Syntax.pm:395 msgid "No errors or warnings found." msgstr "" #: lib/Padre/Wx/Syntax.pm:404 #, fuzzy, perl-format msgid "Found %d issue(s) in %s" msgstr "Nalezeno '%s' v '%s':\n" #: lib/Padre/Wx/Syntax.pm:405 #, fuzzy, perl-format msgid "Found %d issue(s)" msgstr "Nalezeno %d souborů\n" #: lib/Padre/Wx/Syntax.pm:426 #, perl-format msgid "Line %d: (%s) %s" msgstr "" #: lib/Padre/Wx/Debug.pm:113 msgid "Debugger" msgstr "" #: lib/Padre/Wx/Debug.pm:138 #, fuzzy msgid "Variable" msgstr "Jména proměnných" #: lib/Padre/Wx/Debug.pm:139 lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of " "commands. If it does not work, blame szabgab.\n" "\n" msgstr "" #: lib/Padre/Wx/Command.pm:262 #, fuzzy msgid "Command" msgstr "Spusť příkaz" #: lib/Padre/Wx/WizardLibrary.pm:20 #, fuzzy msgid "Module" msgstr "Module nástrojů" #: lib/Padre/Wx/WizardLibrary.pm:21 #, fuzzy msgid "Perl 5" msgstr "&Perl" #: lib/Padre/Wx/WizardLibrary.pm:22 msgid "Opens the Perl 5 module wizard" msgstr "" #: lib/Padre/Wx/WizardLibrary.pm:28 #, fuzzy msgid "Plugin" msgstr "Do&plněk" #: lib/Padre/Wx/WizardLibrary.pm:29 lib/Padre/Wx/WizardLibrary.pm:37 #: lib/Padre/Wx/About.pm:59 lib/Padre/Wx/Dialog/Form.pm:98 #: lib/Padre/Config/Style.pm:34 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/WizardLibrary.pm:30 msgid "Opens the Padre plugin wizard" msgstr "" #: lib/Padre/Wx/WizardLibrary.pm:36 lib/Padre/Wx/Dialog/DocStats.pm:95 #, fuzzy msgid "Document" msgstr "Žádný dokument" #: lib/Padre/Wx/WizardLibrary.pm:38 #, fuzzy msgid "Opens the Padre document wizard" msgstr "Otevři nový prázdný dokument" #: lib/Padre/Wx/Editor.pm:1612 msgid "You must select a range of lines" msgstr "Musí být zvolen rozsah řádek" #: lib/Padre/Wx/Editor.pm:1628 msgid "First character of selection must be a non-word character to align" msgstr "" "První znak výběru nesmí být alfanumerický znak nebo podtržítko k seřazení" #: lib/Padre/Wx/Browser.pm:64 lib/Padre/Wx/ActionLibrary.pm:2578 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:398 #, fuzzy msgid "Help" msgstr "Pomoc" #: lib/Padre/Wx/Browser.pm:93 lib/Padre/Wx/Browser.pm:108 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "" #: lib/Padre/Wx/Browser.pm:104 #, fuzzy msgid "Search:" msgstr "&Hledej" #: lib/Padre/Wx/Browser.pm:110 lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/About.pm:86 lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/KeyBindings.pm:139 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 lib/Padre/Wx/Dialog/Replace.pm:191 #: lib/Padre/Wx/Dialog/RegexEditor.pm:238 lib/Padre/Wx/Dialog/PerlFilter.pm:99 #, fuzzy msgid "&Close" msgstr "&Zavřít" #: lib/Padre/Wx/Browser.pm:341 msgid "Untitled" msgstr "Bezejmený" #: lib/Padre/Wx/Browser.pm:409 #, perl-format msgid "Browser: no viewer for %s" msgstr "" #: lib/Padre/Wx/Browser.pm:443 #, perl-format msgid "Searched for '%s' and failed..." msgstr "" #: lib/Padre/Wx/Browser.pm:444 msgid "Help not found." msgstr "" #: lib/Padre/Wx/Browser.pm:465 msgid "NAME" msgstr "JMÉNO" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Systémové nastavení" #: lib/Padre/Wx/ActionLibrary.pm:40 #, fuzzy msgid "Switch language to system default" msgstr "Přepnutí jazyka do systémového nastavení" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Přepnutí rozhraní jazyka Padre do %s" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dump the Padre object to STDOUT" msgstr "Vypsání Padre objektu na STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:90 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Vypsání celého Padre objektu na STDOUT pro testování/ladění." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Delay the action queue for 10 seconds" msgstr "Prodleva akcí ve frontě o 10 sekund" #: lib/Padre/Wx/ActionLibrary.pm:111 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Zastaví zpracování ostatních položek fronty na 10 sekund" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Delay the action queue for 30 seconds" msgstr "Odložení akcí fronty o 30 sekund" #: lib/Padre/Wx/ActionLibrary.pm:120 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Zastaví zpracování ostatních položek fronty na 30 sekund" #: lib/Padre/Wx/ActionLibrary.pm:130 #, fuzzy msgid "&New" msgstr "&Nový" #: lib/Padre/Wx/ActionLibrary.pm:131 msgid "Open a new empty document" msgstr "Otevři nový prázdný dokument" #: lib/Padre/Wx/ActionLibrary.pm:141 #, fuzzy msgid "Perl 5 Script" msgstr "Perl 5 skript" #: lib/Padre/Wx/ActionLibrary.pm:142 msgid "Open a document with a skeleton Perl 5 script" msgstr "Otevření dokumentu s kostrou skriptu pro Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 #, fuzzy msgid "Perl 5 Module" msgstr "Perl 5 modul" #: lib/Padre/Wx/ActionLibrary.pm:151 msgid "Open a document with a skeleton Perl 5 module" msgstr "Otevření dokumentu s kostrou modulu pro Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:159 #, fuzzy msgid "Perl 5 Test" msgstr "Perl 5 test" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Otevření dokumentu s kostrou testů skriptu pro Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:170 #, fuzzy msgid "Perl 6 Script" msgstr "Perl 6 skript" #: lib/Padre/Wx/ActionLibrary.pm:171 msgid "Open a document with a skeleton Perl 6 script" msgstr "Otevření dokumentu s kostrou skriptu pro Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:181 #, fuzzy msgid "Perl Distribution..." msgstr "Distribuce Perlu..." #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Setup a skeleton Perl module distribution" msgstr "Nastaví kostru Perlového modulu distribuce" #: lib/Padre/Wx/ActionLibrary.pm:192 msgid "Wizard Selector..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:193 msgid "Selects and opens a wizard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:206 #, fuzzy msgid "&Open" msgstr "&Otevřít" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Browse directory of the current document to open one or several files" msgstr "Procházení adresáře aktuálního dokumentu pro otevření několika souborů" #: lib/Padre/Wx/ActionLibrary.pm:217 #, fuzzy msgid "Open &URL..." msgstr "Otevřít &URL..." #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Open a file from a remote location" msgstr "Otevřít soubor ze vzdáleného místa" #: lib/Padre/Wx/ActionLibrary.pm:228 lib/Padre/Wx/Directory/TreeCtrl.pm:218 #, fuzzy msgid "Open in File Browser" msgstr "Otevřít v prohlížeči souborů" #: lib/Padre/Wx/ActionLibrary.pm:229 msgid "Opens the current document using the file browser" msgstr "Otevřít aktuální dokument prohlížečem souborů" #: lib/Padre/Wx/ActionLibrary.pm:238 msgid "Open with Default System Editor" msgstr "Otevřít v systémovém editoru" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Opens the file with the default system editor" msgstr "Otevřít soubor v systémovém editoru" #: lib/Padre/Wx/ActionLibrary.pm:252 #, fuzzy msgid "Open in Command Line" msgstr "Otevřít na příkazové řádce" #: lib/Padre/Wx/ActionLibrary.pm:253 msgid "Opens a command line using the current document folder" msgstr "Otevřít na příkazové řádce v aktuálním adresáři" #: lib/Padre/Wx/ActionLibrary.pm:262 #, fuzzy msgid "Open Example" msgstr "Otevírá příklad" #: lib/Padre/Wx/ActionLibrary.pm:263 msgid "Browse the directory of the installed examples to open one file" msgstr "Prochází adresáře s nainstalovanými příklady pro otevření souboru" #: lib/Padre/Wx/ActionLibrary.pm:275 #, fuzzy msgid "Close current document" msgstr "Zavřít aktuální dokument" #: lib/Padre/Wx/ActionLibrary.pm:288 #, fuzzy msgid "Close this Project" msgstr "Zavřít tento projekt" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Zavřít všechny soubory aktuálního projektu" #: lib/Padre/Wx/ActionLibrary.pm:295 lib/Padre/Wx/ActionLibrary.pm:315 #, fuzzy msgid "File is not in a project" msgstr "Soubor nepatří do žádného projektu" #: lib/Padre/Wx/ActionLibrary.pm:309 #, fuzzy msgid "Close other Projects" msgstr "Zavřít ostatní projekty" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Zavřít všechny soubory, které nepatří do aktuálního projektu" #: lib/Padre/Wx/ActionLibrary.pm:329 #, fuzzy msgid "Close all Files" msgstr "Zavřít všechny soubory" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Zavřít všechny soubory otevřené v editoru" #: lib/Padre/Wx/ActionLibrary.pm:339 #, fuzzy msgid "Close all other Files" msgstr "Zavřít všechny ostatní soubory" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Zavřít všechny soubory mimo tohoto" #: lib/Padre/Wx/ActionLibrary.pm:349 #, fuzzy msgid "Close Files..." msgstr "Zavřít soubory..." #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Výběr otevřených souborů k uzavření" #: lib/Padre/Wx/ActionLibrary.pm:359 #, fuzzy msgid "Reload File" msgstr "Obnovení souboru" #: lib/Padre/Wx/ActionLibrary.pm:360 #, fuzzy msgid "Reload current file from disk" msgstr "Obnovení aktuálního souboru z disku" #: lib/Padre/Wx/ActionLibrary.pm:369 #, fuzzy msgid "Reload All" msgstr "Obnovení všech" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Reload all files currently open" msgstr "Obnovení všech otevřených souborů" #: lib/Padre/Wx/ActionLibrary.pm:379 #, fuzzy msgid "Reload Some..." msgstr "Obnovení některých..." #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Select some open files for reload" msgstr "Výběr některých otevřených souborů pro obnovení" #: lib/Padre/Wx/ActionLibrary.pm:393 lib/Padre/Wx/Dialog/Preferences.pm:917 #: lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "&Uložit" #: lib/Padre/Wx/ActionLibrary.pm:394 #, fuzzy msgid "Save current document" msgstr "Uložit aktuální dokument" #: lib/Padre/Wx/ActionLibrary.pm:406 #, fuzzy msgid "Save &As..." msgstr "Uložit &jako" #: lib/Padre/Wx/ActionLibrary.pm:407 msgid "Allow the selection of another name to save the current document" msgstr "Povolení výběru jiného než aktuálního jména aktuálního dokumentu" #: lib/Padre/Wx/ActionLibrary.pm:419 #, fuzzy msgid "Save Intuition" msgstr "Uložit intuitivně" #: lib/Padre/Wx/ActionLibrary.pm:420 msgid "" "For new document try to guess the filename based on the file content and " "offer to save it." msgstr "" "Nový dokument se pokusí odhadnout své jméno souboru na základě obsahua " "nabídne uložení." #: lib/Padre/Wx/ActionLibrary.pm:430 msgid "Save All" msgstr "Uložit vše" #: lib/Padre/Wx/ActionLibrary.pm:431 #, fuzzy msgid "Save all the files" msgstr "Zavřít všechny soubory" #: lib/Padre/Wx/ActionLibrary.pm:443 lib/Padre/Wx/Main.pm:3689 msgid "Open Selection" msgstr "Otevřít volby" #: lib/Padre/Wx/ActionLibrary.pm:444 msgid "" "List the files that match the current selection and let the user pick one to " "open" msgstr "" "Zobrazí seznam souborů, které souhlasí s aktuálním výběrem a nechá z nich " "uživatelevybrat" #: lib/Padre/Wx/ActionLibrary.pm:453 #, fuzzy msgid "Open Session..." msgstr "Otevřít sezení..." #: lib/Padre/Wx/ActionLibrary.pm:454 msgid "" "Select a session. Close all the files currently open and open all the listed " "in the session" msgstr "" "Volba sezení. Zavřít všechny otevřené soubory a otevřít všechny ze seznemu v " "tomto sezení" #: lib/Padre/Wx/ActionLibrary.pm:464 #, fuzzy msgid "Save Session..." msgstr "Uložit sezení" #: lib/Padre/Wx/ActionLibrary.pm:465 msgid "Ask for a session name and save the list of files currently opened" msgstr "Zeptat se na jméno sezení a uložit seznam aktuálně otevřených souborů" #: lib/Padre/Wx/ActionLibrary.pm:480 #, fuzzy msgid "&Print..." msgstr "&Tisk..." #: lib/Padre/Wx/ActionLibrary.pm:481 #, fuzzy msgid "Print the current document" msgstr "Tisk aktuálního dokumentu" #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "Open All Recent Files" msgstr "Otevřít všechny nedávno otevřené" #: lib/Padre/Wx/ActionLibrary.pm:501 msgid "Open all the files listed in the recent files list" msgstr "Otevřít všechny nedávno otevřené soubory" #: lib/Padre/Wx/ActionLibrary.pm:509 msgid "Clean Recent Files List" msgstr "Vymazat seznam nedávno otevřených" #: lib/Padre/Wx/ActionLibrary.pm:510 msgid "Remove the entries from the recent files list" msgstr "Odstranit položky ze seznamu nedávno otevřených souborů" #: lib/Padre/Wx/ActionLibrary.pm:521 lib/Padre/Wx/Dialog/DocStats.pm:31 #, fuzzy msgid "Document Statistics" msgstr "Statistky dokumentu" #: lib/Padre/Wx/ActionLibrary.pm:522 msgid "Word count and other statistics of the current document" msgstr "Počet slov a další statistiky aktuálního dokumentu" #: lib/Padre/Wx/ActionLibrary.pm:534 #, fuzzy msgid "&Quit" msgstr "&Konec" #: lib/Padre/Wx/ActionLibrary.pm:535 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Zeptat se zda neuložené soubory mají být uloženy a pak ukončit Padre" #: lib/Padre/Wx/ActionLibrary.pm:554 msgid "&Undo" msgstr "&Zpět" #: lib/Padre/Wx/ActionLibrary.pm:555 msgid "Undo last change in current file" msgstr "Zpět poslední změnu v aktuálním souboru" #: lib/Padre/Wx/ActionLibrary.pm:574 msgid "&Redo" msgstr "&Znova" #: lib/Padre/Wx/ActionLibrary.pm:575 msgid "Redo last undo" msgstr "Znova poslední zpět" #: lib/Padre/Wx/ActionLibrary.pm:588 #, fuzzy msgid "Select All" msgstr "Označit vše" #: lib/Padre/Wx/ActionLibrary.pm:589 msgid "Select all the text in the current document" msgstr "Označit všechen text v aktuálním dokumentu" #: lib/Padre/Wx/ActionLibrary.pm:601 #, fuzzy msgid "Mark Selection Start" msgstr "Začni označování od\tCtrl-[" #: lib/Padre/Wx/ActionLibrary.pm:602 msgid "Mark the place where the selection should start" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:613 #, fuzzy msgid "Mark Selection End" msgstr "Ukonči označování\tCtrl-]" #: lib/Padre/Wx/ActionLibrary.pm:614 msgid "Mark the place where the selection should end" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:625 #, fuzzy msgid "Clear Selection Marks" msgstr "Smaž označovací znaménka" #: lib/Padre/Wx/ActionLibrary.pm:626 #, fuzzy msgid "Remove all the selection marks" msgstr "Smaž označovací znaménka" #: lib/Padre/Wx/ActionLibrary.pm:640 msgid "Cu&t" msgstr "Vyjmi" #: lib/Padre/Wx/ActionLibrary.pm:641 msgid "Remove the current selection and put it in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:655 #, fuzzy msgid "&Copy" msgstr "Kopíruj" #: lib/Padre/Wx/ActionLibrary.pm:656 msgid "Put the current selection in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:671 #, fuzzy msgid "Copy Full Filename" msgstr "Žádný soubor" #: lib/Padre/Wx/ActionLibrary.pm:672 msgid "Put the full path of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:685 #, fuzzy msgid "Copy Filename" msgstr "Žádný soubor" #: lib/Padre/Wx/ActionLibrary.pm:686 msgid "Put the name of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:699 #, fuzzy msgid "Copy Directory Name" msgstr "Zobraz strom adresářů" #: lib/Padre/Wx/ActionLibrary.pm:700 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:712 #, fuzzy msgid "Copy Editor Content" msgstr "Font editoru:" #: lib/Padre/Wx/ActionLibrary.pm:713 msgid "Put the content of the current document in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:728 #, fuzzy msgid "&Paste" msgstr "Vlož" #: lib/Padre/Wx/ActionLibrary.pm:729 msgid "Paste the clipboard to the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:742 msgid "&Go To..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:743 msgid "Jump to a specific line number or character position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:753 msgid "&Next Problem" msgstr "Další problém" #: lib/Padre/Wx/ActionLibrary.pm:754 msgid "Jump to the code that triggered the next error" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:764 #, fuzzy msgid "&Quick Fix" msgstr "Rychlé hledání" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "Apply one of the quick fixes for the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:790 #, fuzzy msgid "No suggestions" msgstr "Neexistující sezení %s" #: lib/Padre/Wx/ActionLibrary.pm:819 #, fuzzy msgid "&Autocomplete" msgstr "&AutoDokonči" #: lib/Padre/Wx/ActionLibrary.pm:820 msgid "Offer completions to the current string. See Preferences" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:830 #, fuzzy msgid "&Brace Matching" msgstr "&Chybějící závorky" #: lib/Padre/Wx/ActionLibrary.pm:831 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:841 msgid "&Select to Matching Brace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:842 msgid "Select to the matching opening or closing brace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:853 #, fuzzy msgid "&Join Lines" msgstr "&Spoj řádky" #: lib/Padre/Wx/ActionLibrary.pm:854 msgid "Join the next line to the end of the current line." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:864 msgid "Special Value..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:865 msgid "" "Select a date, filename or other value and insert at the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:877 #, fuzzy msgid "Snippets..." msgstr "Úryvky" #: lib/Padre/Wx/ActionLibrary.pm:878 msgid "Select and insert a snippet at the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:889 #, fuzzy msgid "File..." msgstr "Soubory" #: lib/Padre/Wx/ActionLibrary.pm:890 msgid "Select a file and insert its content at the current location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:902 #, fuzzy msgid "&Toggle Comment" msgstr "&Zobraz komentář" #: lib/Padre/Wx/ActionLibrary.pm:903 msgid "Comment out or remove comment out of selected lines in the document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:915 #, fuzzy msgid "&Comment Selected Lines" msgstr "&Zakomentuj vybrané řádky" #: lib/Padre/Wx/ActionLibrary.pm:916 #, fuzzy msgid "Comment out selected lines in the document" msgstr "&Zakomentuj vybrané řádky" #: lib/Padre/Wx/ActionLibrary.pm:927 #, fuzzy msgid "&Uncomment Selected Lines" msgstr "&Zakomentuj vybrané řádky" #: lib/Padre/Wx/ActionLibrary.pm:928 msgid "Remove comment out of selected lines in the document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:940 #, fuzzy msgid "Encode Document to System Default" msgstr "Překóduj dokument do systémových hodnot" #: lib/Padre/Wx/ActionLibrary.pm:941 msgid "" "Change the encoding of the current document to the default of the operating " "system" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:951 #, fuzzy msgid "Encode Document to utf-8" msgstr "Překóduj dokument do utf-8" #: lib/Padre/Wx/ActionLibrary.pm:952 #, fuzzy msgid "Change the encoding of the current document to utf-8" msgstr "Překóduj dokument do utf-8" #: lib/Padre/Wx/ActionLibrary.pm:962 #, fuzzy msgid "Encode Document to..." msgstr "Zobraz dokument jako..." #: lib/Padre/Wx/ActionLibrary.pm:963 msgid "Select an encoding and encode the document to that" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:973 msgid "EOL to Windows" msgstr "EOL do Windows" #: lib/Padre/Wx/ActionLibrary.pm:974 msgid "" "Change the end of line character of the current document to those used in " "files on MS Windows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:983 msgid "EOL to Unix" msgstr "EOL do Unixu" #: lib/Padre/Wx/ActionLibrary.pm:984 msgid "" "Change the end of line character of the current document to that used on " "Unix, Linux, Mac OSX" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:993 msgid "EOL to Mac Classic" msgstr "EOL do Mac klasický" #: lib/Padre/Wx/ActionLibrary.pm:994 msgid "" "Change the end of line character of the current document to that used on Mac " "Classic" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1005 msgid "Tabs to Spaces..." msgstr "Taby na mezery..." #: lib/Padre/Wx/ActionLibrary.pm:1006 msgid "Convert all tabs to spaces in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1015 msgid "Spaces to Tabs..." msgstr "Mezery na taby..." #: lib/Padre/Wx/ActionLibrary.pm:1016 msgid "Convert all the spaces to tabs in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1025 msgid "Delete Trailing Spaces" msgstr "Smaž koncové mezery" #: lib/Padre/Wx/ActionLibrary.pm:1026 msgid "Remove the spaces from the end of the selected lines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1035 msgid "Delete Leading Spaces" msgstr "Smaž počáteční mezery" #: lib/Padre/Wx/ActionLibrary.pm:1036 msgid "Remove the spaces from the beginning of the selected lines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1047 msgid "Upper All" msgstr "Všechna velká" #: lib/Padre/Wx/ActionLibrary.pm:1048 msgid "Change the current selection to upper case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1058 #, fuzzy msgid "Lower All" msgstr "Všechna malá" #: lib/Padre/Wx/ActionLibrary.pm:1059 msgid "Change the current selection to lower case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1069 msgid "Diff to Saved Version" msgstr "Diff proti uložené verzi" #: lib/Padre/Wx/ActionLibrary.pm:1070 msgid "" "Compare the file in the editor to that on the disk and show the diff in the " "output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1079 msgid "Apply Diff to File" msgstr "Aplikuj diff na soubor" #: lib/Padre/Wx/ActionLibrary.pm:1080 msgid "Apply a patch file to the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1089 msgid "Apply Diff to Project" msgstr "Aplikuj diff na projekt" #: lib/Padre/Wx/ActionLibrary.pm:1090 msgid "Apply a patch file to the current project" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1101 msgid "Filter through External Tool..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1102 msgid "" "Filters the selection (or the whole document) through any external command." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1110 msgid "Filter through Perl..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1111 #, fuzzy msgid "Use Perl source as filter" msgstr "Nový soubor" #: lib/Padre/Wx/ActionLibrary.pm:1120 #, fuzzy msgid "Show as Hexadecimal" msgstr "Ukaž jako decimální" #: lib/Padre/Wx/ActionLibrary.pm:1121 msgid "" "Show the ASCII values of the selected text in hexadecimal notation in the " "output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1130 #, fuzzy msgid "Show as Decimal" msgstr "Ukaž jako decimální" #: lib/Padre/Wx/ActionLibrary.pm:1131 msgid "" "Show the ASCII values of the selected text in decimal numbers in the output " "window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1143 #, fuzzy msgid "&Find..." msgstr "&Najdi" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Find text or regular expressions using a traditional dialog" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1158 lib/Padre/Wx/ActionLibrary.pm:1214 #: lib/Padre/Wx/FBP/Find.pm:98 #, fuzzy msgid "Find Next" msgstr "Najdi další" #: lib/Padre/Wx/ActionLibrary.pm:1160 msgid "Repeat the last find to find the next match" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1193 msgid "Failed to find any matches" msgstr "Nenalezeny shody" #: lib/Padre/Wx/ActionLibrary.pm:1201 #, fuzzy msgid "&Find Previous" msgstr "&Najdi předchozí" #: lib/Padre/Wx/ActionLibrary.pm:1202 msgid "Repeat the last find, but backwards to find the previous match" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1215 msgid "" "Find next matching text using a toolbar-like dialog at the bottom of the " "editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1225 #, fuzzy msgid "Find Previous" msgstr "Najdi předchozí" #: lib/Padre/Wx/ActionLibrary.pm:1226 msgid "" "Find previous matching text using a toolbar-like dialog at the bottom of the " "editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1238 #, fuzzy msgid "Replace..." msgstr "Nahraď" #: lib/Padre/Wx/ActionLibrary.pm:1239 #, fuzzy msgid "Find a text and replace it" msgstr "Najdi a nahraď" #: lib/Padre/Wx/ActionLibrary.pm:1251 #, fuzzy msgid "Find in Fi&les..." msgstr "Najdi v souborech..." #: lib/Padre/Wx/ActionLibrary.pm:1252 msgid "Search for a text in all files below a given directory" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1265 #, fuzzy msgid "Open Resource..." msgstr "Otevři prostředky" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Type in a filter to select a file" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1276 #, fuzzy msgid "Quick Menu Access..." msgstr "Rychlé menu" #: lib/Padre/Wx/ActionLibrary.pm:1277 msgid "Quick access to all menu functions" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1292 msgid "Lock User Interface" msgstr "Uzamkni uživatelské rozhraní" #: lib/Padre/Wx/ActionLibrary.pm:1293 msgid "If activated, do not allow moving around some of the windows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1304 msgid "Show Output" msgstr "Zobraz výstup" #: lib/Padre/Wx/ActionLibrary.pm:1305 msgid "" "Show the window displaying the standard output and standard error of the " "running scripts" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1314 msgid "Show Functions" msgstr "Zobraz funkce" #: lib/Padre/Wx/ActionLibrary.pm:1315 msgid "Show a window listing all the functions in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1324 #, fuzzy msgid "Show Command Line window" msgstr "Příkazová řádka" #: lib/Padre/Wx/ActionLibrary.pm:1325 #, fuzzy msgid "Show the command line window" msgstr "Jdi na okna pod čarou" #: lib/Padre/Wx/ActionLibrary.pm:1334 #, fuzzy msgid "Show To-do List" msgstr "Zobraz seznam chyb" #: lib/Padre/Wx/ActionLibrary.pm:1335 msgid "Show a window listing all todo items in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1344 msgid "Show Outline" msgstr "Zobraz osnovu" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "" "Show a window listing all the parts of the current file (functions, pragmas, " "modules)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1354 #, fuzzy msgid "Show Project Browser/Tree" msgstr "Zobraz strom adresářů" #: lib/Padre/Wx/ActionLibrary.pm:1355 msgid "Project Browser - Was known as the Directory Tree." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1364 msgid "Show Syntax Check" msgstr "Zobraz kontrolu syntaxe" #: lib/Padre/Wx/ActionLibrary.pm:1365 msgid "" "Turn on syntax checking of the current document and show output in a window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1374 #, fuzzy msgid "Hide Find in Files" msgstr "Hledání v souborech" #: lib/Padre/Wx/ActionLibrary.pm:1375 msgid "Hide the list of matches for a Find in Files search" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1383 #, fuzzy msgid "Show Status Bar" msgstr "Zobraz StatusBar" #: lib/Padre/Wx/ActionLibrary.pm:1384 msgid "Show/hide the status bar at the bottom of the screen" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1393 msgid "Show Toolbar" msgstr "Zobraz panel nástrojů" #: lib/Padre/Wx/ActionLibrary.pm:1394 msgid "Show/hide the toolbar at the top of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1409 #, fuzzy msgid "Switch document type" msgstr "Žádný dokument" #: lib/Padre/Wx/ActionLibrary.pm:1422 msgid "Show Line Numbers" msgstr "Zobraz čísla řádků" #: lib/Padre/Wx/ActionLibrary.pm:1423 msgid "" "Show/hide the line numbers of all the documents on the left side of the " "window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1432 msgid "Show Code Folding" msgstr "Zobraz sbalování kódu" #: lib/Padre/Wx/ActionLibrary.pm:1433 msgid "" "Show/hide a vertical line on the left hand side of the window to allow " "folding rows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1442 msgid "Fold all" msgstr "Sbal vše" #: lib/Padre/Wx/ActionLibrary.pm:1443 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1452 msgid "Unfold all" msgstr "Rozbal vše" #: lib/Padre/Wx/ActionLibrary.pm:1453 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1462 msgid "Show Call Tips" msgstr "Zobraz tipy" #: lib/Padre/Wx/ActionLibrary.pm:1463 msgid "When typing in functions allow showing short examples of the function" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2442 #, fuzzy msgid "Last Visited File" msgstr "Poslední otevřený" #: lib/Padre/Wx/ActionLibrary.pm:2443 msgid "Jump between the two last visited files back and forth" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2453 msgid "Goto previous position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2454 msgid "Jump to the last position saved in memory" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2466 lib/Padre/Wx/Dialog/Positions.pm:108 #, fuzzy msgid "Show previous positions" msgstr "Popis" #: lib/Padre/Wx/ActionLibrary.pm:2467 msgid "Show the list of positions recently visited" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2480 #, fuzzy msgid "Right Click" msgstr "Pravý klik" #: lib/Padre/Wx/ActionLibrary.pm:2481 msgid "Imitate clicking on the right mouse button" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2494 #, fuzzy msgid "Go to Functions Window" msgstr "Jdi na okna pod čarou" #: lib/Padre/Wx/ActionLibrary.pm:2495 msgid "Set the focus to the \"Functions\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2508 #, fuzzy msgid "Go to Todo Window" msgstr "Jdi na podokna" #: lib/Padre/Wx/ActionLibrary.pm:2509 msgid "Set the focus to the \"Todo\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2520 #, fuzzy msgid "Go to Outline Window" msgstr "Jdi na okna pod čarou" #: lib/Padre/Wx/ActionLibrary.pm:2521 msgid "Set the focus to the \"Outline\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2531 #, fuzzy msgid "Go to Output Window" msgstr "Jdi na okno výstupu" #: lib/Padre/Wx/ActionLibrary.pm:2532 msgid "Set the focus to the \"Output\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2542 #, fuzzy msgid "Go to Syntax Check Window" msgstr "Jdi na okno s kontrolou syntaxe" #: lib/Padre/Wx/ActionLibrary.pm:2543 #, fuzzy msgid "Set the focus to the \"Syntax Check\" window" msgstr "Jdi na okno s kontrolou syntaxe" #: lib/Padre/Wx/ActionLibrary.pm:2553 #, fuzzy msgid "Go to Command Line Window" msgstr "Jdi na hlavní okno" #: lib/Padre/Wx/ActionLibrary.pm:2554 #, fuzzy msgid "Set the focus to the \"Command Line\" window" msgstr "Jdi na okno s kontrolou syntaxe" #: lib/Padre/Wx/ActionLibrary.pm:2564 #, fuzzy msgid "Go to Main Window" msgstr "Jdi na hlavní okno" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Set the focus to the main editor window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2579 msgid "Show the Padre help" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2587 #, fuzzy msgid "Search Help" msgstr "&Hledej" #: lib/Padre/Wx/ActionLibrary.pm:2588 msgid "Search the Perl help pages (perldoc)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2599 #, fuzzy msgid "Context Help" msgstr "Kontextová nápověda" #: lib/Padre/Wx/ActionLibrary.pm:2600 msgid "Show the help article for the current context" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2612 msgid "Current Document" msgstr "Aktuální dokument" #: lib/Padre/Wx/ActionLibrary.pm:2613 msgid "Show the POD (Perldoc) version of the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2623 msgid "Padre Support (English)" msgstr "Padre - podpora (anglicky)" #: lib/Padre/Wx/ActionLibrary.pm:2625 msgid "" "Open the Padre live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2635 #, fuzzy msgid "Perl Help" msgstr "Perl Help" #: lib/Padre/Wx/ActionLibrary.pm:2637 msgid "" "Open the Perl live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2647 msgid "Win32 Questions (English)" msgstr "Win32 otázky (anglicky)" #: lib/Padre/Wx/ActionLibrary.pm:2649 msgid "" "Open the Perl/Win32 live support chat in your web browser and talk to others " "who may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2661 msgid "Visit the PerlMonks" msgstr "Navštivte PerlMonks" #: lib/Padre/Wx/ActionLibrary.pm:2663 msgid "" "Open perlmonks.org, one of the biggest Perl community sites, in your default " "web browser" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2673 msgid "Report a New &Bug" msgstr "Ohlásit novou &chybu" #: lib/Padre/Wx/ActionLibrary.pm:2674 #, fuzzy msgid "Send a bug report to the Padre developer team" msgstr "Soubor všech nástrojů použitých vývojáři Padre\n" #: lib/Padre/Wx/ActionLibrary.pm:2681 msgid "View All &Open Bugs" msgstr "Ukaž všechny &otevřené chyby" #: lib/Padre/Wx/ActionLibrary.pm:2682 msgid "View all known and currently unsolved bugs in Padre" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2690 msgid "&Translate Padre..." msgstr "&Přeložit Padre..." #: lib/Padre/Wx/ActionLibrary.pm:2691 msgid "Help by translating Padre to your local language" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2702 msgid "&About" msgstr "&O programu" #: lib/Padre/Wx/ActionLibrary.pm:2703 #, fuzzy msgid "Show information about Padre" msgstr "Zobraz průvodce odsazováním" #: lib/Padre/Wx/FunctionList.pm:229 #, fuzzy msgid "Functions" msgstr "Zobraz funkce" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "Soubory" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "Zobraz výstup" #: lib/Padre/Wx/StatusBar.pm:290 msgid "Background Tasks are running" msgstr "Úlohy na pozadí běží" #: lib/Padre/Wx/StatusBar.pm:291 msgid "Background Tasks are running with high load" msgstr "Úlohy na pozadí běží s vysokou zátěží" #: lib/Padre/Wx/StatusBar.pm:417 msgid "Read Only" msgstr "" #: lib/Padre/Wx/StatusBar.pm:417 msgid "R/W" msgstr "" #: lib/Padre/Wx/Right.pm:52 #, fuzzy msgid "Document Tools" msgstr "Umístění dokumentu:" #: lib/Padre/Wx/Debugger.pm:78 msgid "Debugger is already running" msgstr "Debugger již běží" #: lib/Padre/Wx/Debugger.pm:82 msgid "Not a Perl document" msgstr "Nejedná se Perlový dokument" #: lib/Padre/Wx/Debugger.pm:137 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', " "or 'Run till Breakpoint' in the Debug menu." msgstr "" "Lazení neběží.\n" "Můžete zapnout lazení použitím některého z příkazů 'Zanořit/Step in', 'Step " "over', nebo 'Běžet po bod přerušení' v debugovacím menu." #: lib/Padre/Wx/Debugger.pm:193 lib/Padre/Wx/Debugger.pm:275 #: lib/Padre/Wx/Debugger.pm:299 lib/Padre/Wx/Debugger.pm:333 #: lib/Padre/Wx/Debugger.pm:353 msgid "Debugger not running" msgstr "Lazení neběží" #: lib/Padre/Wx/Debugger.pm:226 #, fuzzy, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "Nelze nastavit bod přerušení v souboru '%s' sloupec '%s'" #: lib/Padre/Wx/Debugger.pm:389 #, fuzzy, perl-format msgid "Could not evaluate '%s'" msgstr "Nelze vyhodnotit soubor '%s'" #: lib/Padre/Wx/Debugger.pm:407 #, perl-format msgid "" "'%s' does not look like a variable. First select a variable in the code and " "then try again." msgstr "'%s' není proměnná. Nejprve zvolte proměnou v kódua zkuste to znovu." #: lib/Padre/Wx/Debugger.pm:439 #, fuzzy msgid "Expression:" msgstr "Výraz:" #: lib/Padre/Wx/Debugger.pm:440 msgid "Expr" msgstr "Výraz" #: lib/Padre/Wx/Left.pm:52 msgid "Project Tools" msgstr "Nástroje projektu" #: lib/Padre/Wx/FindResult.pm:88 #, perl-format msgid "Find Results (%s)" msgstr "" #: lib/Padre/Wx/FindResult.pm:125 msgid "Related editor has been closed" msgstr "" #: lib/Padre/Wx/FindResult.pm:177 msgid "Line" msgstr "Řádek" #: lib/Padre/Wx/FindResult.pm:178 #, fuzzy msgid "Content" msgstr "Typ obsahu:" #: lib/Padre/Wx/FindResult.pm:226 #, fuzzy msgid "Copy &Selected" msgstr "Kopíruj sem" #: lib/Padre/Wx/FindResult.pm:249 msgid "Copy &All" msgstr "" #: lib/Padre/Wx/Main.pm:770 #, perl-format msgid "No such session %s" msgstr "Neexistující sezení %s" #: lib/Padre/Wx/Main.pm:969 msgid "Failed to create server" msgstr "Selhalo vytvoření serveru" #: lib/Padre/Wx/Main.pm:2313 msgid "Command line" msgstr "Příkazová řádka" #: lib/Padre/Wx/Main.pm:2314 msgid "Run setup" msgstr "Spusť setup" #: lib/Padre/Wx/Main.pm:2343 lib/Padre/Wx/Main.pm:2398 #: lib/Padre/Wx/Main.pm:2450 msgid "No document open" msgstr "Žádný otevřený dokument" #: lib/Padre/Wx/Main.pm:2349 lib/Padre/Wx/Main.pm:2410 #: lib/Padre/Wx/Main.pm:2465 msgid "Could not find project root" msgstr "Nelze najít kořen projektu" #: lib/Padre/Wx/Main.pm:2376 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "" #: lib/Padre/Wx/Main.pm:2379 #, fuzzy msgid "Could not find perl executable" msgstr "Nelze najít kořen projektu" #: lib/Padre/Wx/Main.pm:2404 lib/Padre/Wx/Main.pm:2456 msgid "Current document has no filename" msgstr "Aktuální dokument není pojmenován" #: lib/Padre/Wx/Main.pm:2459 #, fuzzy msgid "Current document is not a .t file" msgstr "Aktuální dokument není pojmenován" #: lib/Padre/Wx/Main.pm:2553 lib/Padre/Wx/Output.pm:141 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get " "at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream má verzi %s, která je známá problémy.Nainstalujte si " "alespoň 0.20 napsáním\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Main.pm:2628 #, perl-format msgid "Failed to start '%s' command" msgstr "Nelze spustit příkaz '%s'" #: lib/Padre/Wx/Main.pm:2653 msgid "No open document" msgstr "Žádný otevřený dokument" #: lib/Padre/Wx/Main.pm:2671 #, fuzzy msgid "No execution mode was defined for this document type" msgstr "Tento dokument nemá práva pro spuštění." #: lib/Padre/Wx/Main.pm:2696 msgid "Do you want to continue?" msgstr "" #: lib/Padre/Wx/Main.pm:2782 #, fuzzy, perl-format msgid "Opening session %s..." msgstr "Ulož sezení jako..." #: lib/Padre/Wx/Main.pm:2811 msgid "Restore focus..." msgstr "" #: lib/Padre/Wx/Main.pm:3141 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "" #: lib/Padre/Wx/Main.pm:3190 #, fuzzy msgid "Autocompletion error" msgstr "Chyba dokončování" #: lib/Padre/Wx/Main.pm:3303 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "" #: lib/Padre/Wx/Main.pm:3519 #, fuzzy, perl-format msgid "Cannot open a Directory: %s" msgstr "Zvolte adresář" #: lib/Padre/Wx/Main.pm:3646 msgid "Nothing selected. Enter what should be opened:" msgstr "Nemáte nic vybráno. Zvolte co má být otevřeno:" #: lib/Padre/Wx/Main.pm:3647 msgid "Open selection" msgstr "Otevřít volbu" #: lib/Padre/Wx/Main.pm:3688 #, perl-format msgid "Could not find file '%s'" msgstr "Nelze najít soubor '%s'" #: lib/Padre/Wx/Main.pm:3699 lib/Padre/Wx/Dialog/Positions.pm:120 #, fuzzy msgid "Choose File" msgstr "Zavři soubor" #: lib/Padre/Wx/Main.pm:3804 msgid "JavaScript Files" msgstr "" #: lib/Padre/Wx/Main.pm:3806 #, fuzzy msgid "Perl Files" msgstr "Nový soubor" #: lib/Padre/Wx/Main.pm:3808 #, fuzzy msgid "PHP Files" msgstr "PHP soubory" #: lib/Padre/Wx/Main.pm:3810 msgid "Python Files" msgstr "Python soubory" #: lib/Padre/Wx/Main.pm:3812 #, fuzzy msgid "Ruby Files" msgstr "Ruby soubory" #: lib/Padre/Wx/Main.pm:3814 #, fuzzy msgid "SQL Files" msgstr "SQL soubory" #: lib/Padre/Wx/Main.pm:3816 #, fuzzy msgid "Text Files" msgstr "Textové soubory" #: lib/Padre/Wx/Main.pm:3818 #, fuzzy msgid "Web Files" msgstr "Webové soubory" #: lib/Padre/Wx/Main.pm:3820 #, fuzzy msgid "Script Files" msgstr "SQL soubory" #: lib/Padre/Wx/Main.pm:4272 msgid "File already exists. Overwrite it?" msgstr "Soubor již existuje. Chcete ho přepsat?" #: lib/Padre/Wx/Main.pm:4273 msgid "Exist" msgstr "Existuje" #: lib/Padre/Wx/Main.pm:4376 #, fuzzy msgid "File already exists" msgstr "Soubor již existuje. Chcete ho přepsat?" #: lib/Padre/Wx/Main.pm:4390 #, fuzzy, perl-format msgid "Failed to create path '%s'" msgstr "Selhalo vytvoření serveru" #: lib/Padre/Wx/Main.pm:4481 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Soubor se změnil od posledního uložení. Chcete ho přepsat?" #: lib/Padre/Wx/Main.pm:4482 msgid "File not in sync" msgstr "Soubor nesynchronizován" #: lib/Padre/Wx/Main.pm:4491 msgid "Could not save file: " msgstr "Nelze uložit soubor: " #: lib/Padre/Wx/Main.pm:4577 msgid "File changed. Do you want to save it?" msgstr "Soubor změněn. Chcete ho uložit?" #: lib/Padre/Wx/Main.pm:4578 msgid "Unsaved File" msgstr "Neuložený soubor" #: lib/Padre/Wx/Main.pm:4661 #, fuzzy msgid "Close all" msgstr "Zavři" #: lib/Padre/Wx/Main.pm:4701 #, fuzzy msgid "Close some files" msgstr "Zavři soubor" #: lib/Padre/Wx/Main.pm:4702 msgid "Select files to close:" msgstr "" #: lib/Padre/Wx/Main.pm:4717 #, fuzzy msgid "Close some" msgstr "Zavři" #: lib/Padre/Wx/Main.pm:4880 msgid "Cannot diff if file was never saved" msgstr "Nelze provést diff pro neuložené" #: lib/Padre/Wx/Main.pm:4904 msgid "There are no differences\n" msgstr "Žádné rozdíly\n" #: lib/Padre/Wx/Main.pm:5000 #, fuzzy msgid "Error loading regex editor." msgstr "Chyba nahrávání pod(u) třídy '%s': %s" #: lib/Padre/Wx/Main.pm:5029 #, fuzzy msgid "Error loading perl filter dialog." msgstr "Chyba nahrávání pod(u) třídy '%s': %s" #: lib/Padre/Wx/Main.pm:5441 #, fuzzy msgid "All Files" msgstr "Všechny soubory" #: lib/Padre/Wx/Main.pm:5779 msgid "Space to Tab" msgstr "Mezery na tabulátory" #: lib/Padre/Wx/Main.pm:5780 msgid "Tab to Space" msgstr "Tabulátory na mezery" #: lib/Padre/Wx/Main.pm:5785 msgid "How many spaces for each tab:" msgstr "Počet mezer na tabulátor:" #: lib/Padre/Wx/Main.pm:5952 #, fuzzy msgid "Reload some files" msgstr "Obnov soubor" #: lib/Padre/Wx/Main.pm:5953 #, fuzzy msgid "&Select files to reload:" msgstr "Zvolte adresář" #: lib/Padre/Wx/Main.pm:5954 #, fuzzy msgid "&Reload selected" msgstr "Obnov soubor" #: lib/Padre/Wx/Main.pm:6065 #, fuzzy, perl-format msgid "Failed to find template file '%s'" msgstr "Chyba nahrávání pod(u) třídy '%s': %s" #: lib/Padre/Wx/Main.pm:6293 msgid "Need to select text in order to translate to hex" msgstr "Zvolte text souboru k překladu do hexa" #: lib/Padre/Wx/Main.pm:6436 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" #: lib/Padre/Wx/Main.pm:6451 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" #: lib/Padre/Wx/Outline.pm:110 lib/Padre/Wx/Outline.pm:312 msgid "Outline" msgstr "Osnova" #: lib/Padre/Wx/Outline.pm:221 #, fuzzy msgid "&Go to Element" msgstr "&Přejdi na element" #: lib/Padre/Wx/Outline.pm:235 msgid "Open &Documentation" msgstr "Otevřít &Dokumentaci" #: lib/Padre/Wx/Outline.pm:357 msgid "Pragmata" msgstr "" #: lib/Padre/Wx/Outline.pm:358 #, fuzzy msgid "Modules" msgstr "Module nástrojů" #: lib/Padre/Wx/Outline.pm:359 #, fuzzy msgid "Methods" msgstr "Metody řazení:" #: lib/Padre/Wx/Outline.pm:360 msgid "Attributes" msgstr "" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "Výstup" #: lib/Padre/Wx/Directory.pm:79 lib/Padre/Wx/Dialog/Find.pm:78 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 #, fuzzy msgid "Search" msgstr "&Hledej" #: lib/Padre/Wx/Directory.pm:110 msgid "Move to other panel" msgstr "Přesuň do jiného panelu" #: lib/Padre/Wx/Directory.pm:270 lib/Padre/Wx/Dialog/WindowList.pm:223 #, fuzzy msgid "Project" msgstr "Nástroje projektu" #: lib/Padre/Wx/About.pm:25 #, fuzzy msgid "About Padre" msgstr "O programu" #: lib/Padre/Wx/About.pm:64 msgid "Development" msgstr "Vývoj" #: lib/Padre/Wx/About.pm:69 msgid "Translation" msgstr "Překlad" #: lib/Padre/Wx/About.pm:74 lib/Padre/Wx/About.pm:317 #, fuzzy msgid "System Info" msgstr "Systémové nastavení" #: lib/Padre/Wx/About.pm:102 msgid "Created by" msgstr "" #: lib/Padre/Wx/About.pm:103 lib/Padre/Wx/About.pm:135 #, fuzzy msgid "The Padre Development Team" msgstr "Padre vývojářské nástroje" #: lib/Padre/Wx/About.pm:105 msgid "" "Padre is free software; you can redistribute it and/or modify it under the " "same terms as Perl 5." msgstr "" #: lib/Padre/Wx/About.pm:106 msgid "Blue butterfly on a green leaf" msgstr "" #: lib/Padre/Wx/About.pm:107 msgid "splash image is based on work by" msgstr "" #: lib/Padre/Wx/About.pm:227 msgid "The Padre Translation Team" msgstr "" #: lib/Padre/Wx/About.pm:318 msgid "Config:" msgstr "" #: lib/Padre/Wx/About.pm:337 msgid "Uptime" msgstr "" #: lib/Padre/Wx/About.pm:342 msgid "unsupported" msgstr "" #: lib/Padre/Wx/FBP/Find.pm:27 lib/Padre/Wx/FBP/FindInFiles.pm:125 #: lib/Padre/Wx/Dialog/Replace.pm:218 msgid "Find" msgstr "Najdi" #: lib/Padre/Wx/FBP/Find.pm:36 lib/Padre/Wx/FBP/FindInFiles.pm:36 #, fuzzy msgid "Search Term:" msgstr "Hledání termu" #: lib/Padre/Wx/FBP/Find.pm:58 lib/Padre/Wx/FBP/FindInFiles.pm:101 #, fuzzy msgid "Regular Expression" msgstr "&Regulární výraz" #: lib/Padre/Wx/FBP/Find.pm:66 #, fuzzy msgid "Search Backwards" msgstr "Hledej &obráceně" #: lib/Padre/Wx/FBP/Find.pm:74 lib/Padre/Wx/FBP/FindInFiles.pm:109 #, fuzzy msgid "Case Sensitive" msgstr "Ignoruj velikostí písmen" #: lib/Padre/Wx/FBP/Find.pm:82 #, fuzzy msgid "Close Window on Hit" msgstr "Zavři okno &kliknutím" #: lib/Padre/Wx/FBP/Find.pm:113 #, fuzzy msgid "Find All" msgstr "Najdi" #: lib/Padre/Wx/FBP/Find.pm:119 lib/Padre/Wx/FBP/FindInFiles.pm:132 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 #, fuzzy msgid "Cancel" msgstr "&Zrušit" #: lib/Padre/Wx/FBP/FindInFiles.pm:50 #, fuzzy msgid "Search Directory:" msgstr "Hledání adresáře:" #: lib/Padre/Wx/FBP/FindInFiles.pm:64 #, fuzzy msgid "Browse" msgstr "Zavři..." #: lib/Padre/Wx/FBP/FindInFiles.pm:78 #, fuzzy msgid "Search in Types:" msgstr "Hledání v souborech/typech:" #: lib/Padre/Wx/FBP/Sync.pm:25 lib/Padre/Wx/Dialog/Sync.pm:43 #, fuzzy msgid "Padre Sync" msgstr "Padre" #: lib/Padre/Wx/FBP/Sync.pm:34 msgid "Server" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:48 lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 lib/Padre/Wx/Dialog/PluginManager.pm:68 #: lib/Padre/Wx/Dialog/Advanced.pm:111 msgid "Status" msgstr "Stav" #: lib/Padre/Wx/FBP/Sync.pm:54 msgid "Logged out" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:68 lib/Padre/Wx/FBP/Sync.pm:111 #, fuzzy msgid "Username" msgstr "Jméno souboru: %s" #: lib/Padre/Wx/FBP/Sync.pm:82 lib/Padre/Wx/FBP/Sync.pm:125 msgid "Password" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:97 msgid "Login" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:139 lib/Padre/Wx/FBP/Sync.pm:167 msgid "Confirm" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:153 msgid "Email" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:181 msgid "Register" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:203 #, fuzzy msgid "Upload" msgstr "nahrán" #: lib/Padre/Wx/FBP/Sync.pm:218 #, fuzzy msgid "Download" msgstr "odebrán" #: lib/Padre/Wx/FBP/Sync.pm:233 lib/Padre/Wx/Dialog/KeyBindings.pm:100 #: lib/Padre/Wx/Dialog/SessionManager.pm:291 msgid "Delete" msgstr "Smazat" #: lib/Padre/Wx/FBP/Sync.pm:248 lib/Padre/Wx/Menu/File.pm:140 #: lib/Padre/Wx/Dialog/SessionSave.pm:230 #: lib/Padre/Wx/Dialog/SessionManager.pm:292 #: lib/Padre/Wx/Dialog/WindowList.pm:280 lib/Padre/Wx/Dialog/FilterTool.pm:152 msgid "Close" msgstr "Zavři" #: lib/Padre/Wx/FBP/Sync.pm:283 #, fuzzy msgid "Authentication" msgstr "Překlad" #: lib/Padre/Wx/FBP/Sync.pm:310 #, fuzzy msgid "Registration" msgstr "Odsazování" #: lib/Padre/Wx/FBP/WhereFrom.pm:31 msgid "Where did you hear about Padre?" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:54 msgid "OK" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "Skip question without giving feedback" msgstr "" #: lib/Padre/Wx/Menu/Help.pm:60 msgid "Live Support" msgstr "Technická podpora" #: lib/Padre/Wx/Menu/Help.pm:121 msgid "&Help" msgstr "&Pomoc" #: lib/Padre/Wx/Menu/Tools.pm:65 msgid "Module Tools" msgstr "Module nástrojů" #: lib/Padre/Wx/Menu/Tools.pm:103 #, fuzzy msgid "Plug-in Tools" msgstr "Nástroje doplňků" #: lib/Padre/Wx/Menu/Tools.pm:198 #, fuzzy msgid "&Tools" msgstr "Diff nástroje" #: lib/Padre/Wx/Menu/File.pm:44 #, fuzzy msgid "New" msgstr "&Zobraz" #: lib/Padre/Wx/Menu/File.pm:96 #, fuzzy msgid "Open..." msgstr "&Otevřít..." #: lib/Padre/Wx/Menu/File.pm:179 #, fuzzy msgid "Reload" msgstr "Obnov soubor" #: lib/Padre/Wx/Menu/File.pm:254 msgid "&Recent Files" msgstr "&Nedávno otevřené" #: lib/Padre/Wx/Menu/File.pm:293 msgid "&File" msgstr "&Soubor" #: lib/Padre/Wx/Menu/File.pm:380 #, perl-format msgid "File %s not found." msgstr "" #: lib/Padre/Wx/Menu/File.pm:381 #, fuzzy msgid "Open cancelled" msgstr "Kontrola zrušena" #: lib/Padre/Wx/Menu/Edit.pm:49 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Označ" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Copy Specials" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:121 lib/Padre/Wx/Dialog/KeyBindings.pm:100 #: lib/Padre/Wx/Dialog/RegexEditor.pm:233 lib/Padre/Wx/Dialog/PerlFilter.pm:94 #, fuzzy msgid "Insert" msgstr "&Vlož" #: lib/Padre/Wx/Menu/Edit.pm:200 msgid "Convert Encoding" msgstr "Konvertuj kódování" #: lib/Padre/Wx/Menu/Edit.pm:222 #, fuzzy msgid "Convert Line Endings" msgstr "Konvertuj kódování" #: lib/Padre/Wx/Menu/Edit.pm:245 msgid "Tabs and Spaces" msgstr "Taby a mezery" #: lib/Padre/Wx/Menu/Edit.pm:275 msgid "Upper/Lower Case" msgstr "Velká/malá písmena" #: lib/Padre/Wx/Menu/Edit.pm:295 #, fuzzy msgid "Diff Tools" msgstr "Diff nástroje" #: lib/Padre/Wx/Menu/Edit.pm:331 #, fuzzy msgid "Show as" msgstr "Ukaž jako ..." #: lib/Padre/Wx/Menu/Edit.pm:349 lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Edit" msgstr "&Edituj" #: lib/Padre/Wx/Menu/Refactor.pm:94 msgid "Ref&actor" msgstr "" #: lib/Padre/Wx/Menu/Perl.pm:101 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Menu/Window.pm:110 msgid "&Window" msgstr "&Okno" #: lib/Padre/Wx/Menu/View.pm:82 msgid "View Document As..." msgstr "Zobraz dokument jako..." #: lib/Padre/Wx/Menu/View.pm:174 msgid "Font Size" msgstr "Velikost písma" #: lib/Padre/Wx/Menu/View.pm:197 msgid "Style" msgstr "Styl" #: lib/Padre/Wx/Menu/View.pm:245 msgid "Language" msgstr "Jazyk" #: lib/Padre/Wx/Menu/View.pm:283 msgid "&View" msgstr "&Zobraz" #: lib/Padre/Wx/Menu/Debug.pm:116 msgid "&Debug" msgstr "" #: lib/Padre/Wx/Menu/Run.pm:74 msgid "&Run" msgstr "&Spusť" #: lib/Padre/Wx/Menu/Search.pm:99 msgid "&Search" msgstr "&Hledej" #: lib/Padre/Wx/Role/Dialog.pm:69 lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Zpráva" #: lib/Padre/Wx/Role/Dialog.pm:92 #, fuzzy msgid "Unknown error from " msgstr "Neznámá chyba" #: lib/Padre/Wx/Directory/TreeCtrl.pm:83 msgid "Directory" msgstr "Adresář" #: lib/Padre/Wx/Directory/TreeCtrl.pm:163 #, fuzzy, perl-format msgid "Could not create: '%s': %s" msgstr "Nelze vyhodnotit soubor '%s'" #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, fuzzy, perl-format msgid "Really delete the file \"%s\"?" msgstr "Zavřít všechny soubory" #: lib/Padre/Wx/Directory/TreeCtrl.pm:182 #, fuzzy, perl-format msgid "Could not delete: '%s': %s" msgstr "Nelze vyhodnotit soubor '%s'" #: lib/Padre/Wx/Directory/TreeCtrl.pm:210 msgid "Open File" msgstr "Otevři soubor" #: lib/Padre/Wx/Directory/TreeCtrl.pm:226 #, fuzzy msgid "Delete File" msgstr "Smaž &vše" #: lib/Padre/Wx/Directory/TreeCtrl.pm:237 #, fuzzy msgid "Create Directory" msgstr "Aktuální adresář:" #: lib/Padre/Wx/Directory/TreeCtrl.pm:249 msgid "Refresh" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:39 #, fuzzy msgid "Filename" msgstr "Jméno souboru: %s" #: lib/Padre/Wx/Dialog/DocStats.pm:40 #, fuzzy msgid "Selection" msgstr "Označ" #: lib/Padre/Wx/Dialog/DocStats.pm:60 msgid "&Update" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:98 #, fuzzy msgid "Lines" msgstr "Řádek" #: lib/Padre/Wx/Dialog/DocStats.pm:102 #, fuzzy msgid "Words" msgstr "Slova: %s" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "" #: lib/Padre/Wx/Dialog/DocStats.pm:131 #, fuzzy msgid "Encoding" msgstr "Kódování: %s" #: lib/Padre/Wx/Dialog/DocStats.pm:133 #, fuzzy msgid "Document type" msgstr "Typ dokumentu: %s" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "žádný" #: lib/Padre/Wx/Dialog/PluginManager.pm:35 #, fuzzy msgid "Plug-in Manager" msgstr "Správce doplňků" #: lib/Padre/Wx/Dialog/PluginManager.pm:66 #: lib/Padre/Wx/Dialog/SpecialValues.pm:25 #: lib/Padre/Wx/Dialog/SessionManager.pm:226 msgid "Name" msgstr "Jméno" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 msgid "Version" msgstr "Verze" #: lib/Padre/Wx/Dialog/PluginManager.pm:102 #, fuzzy msgid "Plug-in Name" msgstr "Správce doplňků" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:528 #, fuzzy msgid "&Enable" msgstr "Povolit" #: lib/Padre/Wx/Dialog/PluginManager.pm:131 #, fuzzy msgid "&Preferences" msgstr "Předvolby" #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Chyba nahrávání pod(u) třídy '%s': %s" #: lib/Padre/Wx/Dialog/PluginManager.pm:489 #: lib/Padre/Wx/Dialog/PluginManager.pm:501 #, fuzzy msgid "&Show error message" msgstr "Ukaž hlášení o chybách" #: lib/Padre/Wx/Dialog/PluginManager.pm:516 #, fuzzy msgid "&Disable" msgstr "Zakázat" #: lib/Padre/Wx/Dialog/KeyBindings.pm:29 msgid "Key Bindings" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:64 lib/Padre/Wx/Dialog/Advanced.pm:97 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:26 #, fuzzy msgid "&Filter:" msgstr "&Soubor" #: lib/Padre/Wx/Dialog/KeyBindings.pm:86 msgid "Sh&ortcut:" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:89 msgid "Ctrl" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:90 #, fuzzy msgid "Alt" msgstr "Vše" #: lib/Padre/Wx/Dialog/KeyBindings.pm:91 msgid "Shift" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "None" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Backspace" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Tab" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Space" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Up" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Down" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Left" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 #, fuzzy msgid "Right" msgstr "Noc" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Home" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "End" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageUp" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageDown" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Enter" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Escape" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:120 lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:126 #, fuzzy msgid "&Delete" msgstr "Smazat" #: lib/Padre/Wx/Dialog/KeyBindings.pm:132 lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:134 msgid "Reset to default shortcut" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:388 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:391 msgid "Do you want to override it with the selected action?" msgstr "" #: lib/Padre/Wx/Dialog/KeyBindings.pm:392 msgid "Override Shortcut" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:32 lib/Padre/Wx/Dialog/Warning.pm:32 #: lib/Padre/Wx/Dialog/Shortcut.pm:32 msgid "A Dialog" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:39 lib/Padre/Wx/Dialog/HelpSearch.pm:96 #, fuzzy msgid "Help Search" msgstr "Hledej" #: lib/Padre/Wx/Dialog/HelpSearch.pm:81 lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, fuzzy, perl-format msgid "Error while calling %s %s" msgstr "Chyba při vytváření menu doplňků" #: lib/Padre/Wx/Dialog/HelpSearch.pm:93 msgid "No Help found" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:129 msgid "Select the help &topic" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:146 msgid "Type a help &keyword to read:" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:153 #, fuzzy msgid "&Matching Help Topics:" msgstr "&Shodné položky:" #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 #, fuzzy msgid "Reading items. Please wait" msgstr "Čtení položek. Prosím čekejte..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 #, fuzzy msgid "Could not find a help provider for " msgstr "Nelze najít kořen projektu" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:16 lib/Padre/Wx/Dialog/ModuleStart.pm:36 #, fuzzy msgid "Apache License" msgstr "Licence:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:17 lib/Padre/Wx/Dialog/ModuleStart.pm:37 msgid "Artistic License 1.0" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:18 lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "Artistic License 2.0" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:19 lib/Padre/Wx/Dialog/ModuleStart.pm:39 msgid "Revised BSD License" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:20 lib/Padre/Wx/Dialog/ModuleStart.pm:40 msgid "GPL 2 or later" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:21 lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "LGPL 2.1 or later" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:22 lib/Padre/Wx/Dialog/ModuleStart.pm:42 #, fuzzy msgid "MIT License" msgstr "Licence:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:23 lib/Padre/Wx/Dialog/ModuleStart.pm:43 msgid "Mozilla Public License" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:24 lib/Padre/Wx/Dialog/ModuleStart.pm:44 #, fuzzy msgid "Open Source" msgstr "Otevři prostředky" #: lib/Padre/Wx/Dialog/ModuleStart.pm:25 lib/Padre/Wx/Dialog/ModuleStart.pm:45 #: lib/Padre/Wx/Dialog/ModuleStart.pm:113 msgid "Perl licensing terms" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 lib/Padre/Wx/Dialog/ModuleStart.pm:46 msgid "restrictive" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:27 lib/Padre/Wx/Dialog/ModuleStart.pm:47 msgid "unrestricted" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:55 msgid "Module Name:" msgstr "Jméno modulu:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:58 msgid "Author:" msgstr "Autor:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:61 #, fuzzy msgid "Email Address:" msgstr "Email:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:64 msgid "Builder:" msgstr "Builder:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:67 msgid "License:" msgstr "Licence:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:70 msgid "Parent Directory:" msgstr "Rodičovský adresář:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:71 msgid "Pick parent directory" msgstr "Zvol rodičovský adresář" #: lib/Padre/Wx/Dialog/ModuleStart.pm:97 msgid "Module Start" msgstr "Průvodce modulem" #: lib/Padre/Wx/Dialog/ModuleStart.pm:147 #, perl-format msgid "Field %s was missing. Module not created." msgstr "Chybí pole %s. Modul nebyl vytvořen." #: lib/Padre/Wx/Dialog/ModuleStart.pm:148 msgid "missing field" msgstr "chybějící pole" #: lib/Padre/Wx/Dialog/ModuleStart.pm:182 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:75 lib/Padre/Wx/Dialog/Replace.pm:537 #: lib/Padre/Wx/Dialog/Replace.pm:586 #, perl-format msgid "No matches found for \"%s\"." msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:30 #, fuzzy msgid "File/Directory" msgstr "Adresář" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:110 #, fuzzy msgid "Preference Name" msgstr "Předvolby" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Typ" #: lib/Padre/Wx/Dialog/Advanced.pm:117 #, fuzzy msgid "Copy" msgstr "Kopíruj" #: lib/Padre/Wx/Dialog/Advanced.pm:118 #, fuzzy msgid "Copy Name" msgstr "Kopíruj sem" #: lib/Padre/Wx/Dialog/Advanced.pm:119 #, fuzzy msgid "Copy Value" msgstr "Kopíruj sem" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:129 lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:130 lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:135 #, fuzzy msgid "Default value:" msgstr "Výchozí" #: lib/Padre/Wx/Dialog/Advanced.pm:147 #, fuzzy msgid "Options:" msgstr "Možnosti" #: lib/Padre/Wx/Dialog/Advanced.pm:158 lib/Padre/Wx/Dialog/SessionSave.pm:209 #: lib/Padre/Wx/Dialog/Preferences.pm:165 msgid "Description:" msgstr "Popis:" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:155 lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/Preferences.pm:939 #: lib/Padre/Wx/Dialog/OpenResource.pm:184 #: lib/Padre/Wx/Dialog/WizardSelector.pm:88 lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&Zrušit" #: lib/Padre/Wx/Dialog/Advanced.pm:430 lib/Padre/Wx/Dialog/Preferences.pm:805 msgid "Default" msgstr "Výchozí" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "User" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "Host" msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:50 #, fuzzy msgid "Find and Replace" msgstr "Najdi a nahraď" #: lib/Padre/Wx/Dialog/Replace.pm:80 #, fuzzy msgid "Case &sensitive" msgstr "Ignoruj velikostí písmen" #: lib/Padre/Wx/Dialog/Replace.pm:94 #, fuzzy msgid "Regular &Expression" msgstr "&Regulární výraz" #: lib/Padre/Wx/Dialog/Replace.pm:108 #, fuzzy msgid "Close Window on &Hit" msgstr "Zavři okno &kliknutím" #: lib/Padre/Wx/Dialog/Replace.pm:122 msgid "Search &Backwards" msgstr "Hledej &obráceně" #: lib/Padre/Wx/Dialog/Replace.pm:136 #, fuzzy msgid "Replace &All" msgstr "Nahraď &vše" #: lib/Padre/Wx/Dialog/Replace.pm:150 msgid "&Find" msgstr "&Najdi" #: lib/Padre/Wx/Dialog/Replace.pm:170 msgid "&Replace" msgstr "&Nahraď" #: lib/Padre/Wx/Dialog/Replace.pm:226 #, fuzzy msgid "Find Text:" msgstr "Najdi text:" #: lib/Padre/Wx/Dialog/Replace.pm:250 #, fuzzy msgid "Replace" msgstr "Nahraď" #: lib/Padre/Wx/Dialog/Replace.pm:258 #, fuzzy msgid "Replace Text:" msgstr "Nahraď text:" #: lib/Padre/Wx/Dialog/Replace.pm:304 msgid "Options" msgstr "Možnosti" #: lib/Padre/Wx/Dialog/Replace.pm:538 lib/Padre/Wx/Dialog/Replace.pm:582 #: lib/Padre/Wx/Dialog/Replace.pm:587 #, fuzzy msgid "Search and Replace" msgstr "Kontrola zrušena" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, fuzzy, perl-format msgid "Replaced %d match" msgstr "Nahraď" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, fuzzy, perl-format msgid "Replaced %d matches" msgstr "Nahraď" #: lib/Padre/Wx/Dialog/SpecialValues.pm:15 msgid "Date/Time" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:16 msgid "Now" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:17 msgid "Today" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:18 msgid "Year" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:19 msgid "Epoch" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:21 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 #: lib/Padre/Wx/Dialog/WindowList.pm:224 #, fuzzy msgid "File" msgstr "Soubory" #: lib/Padre/Wx/Dialog/SpecialValues.pm:22 #, fuzzy msgid "Size" msgstr "Velikost písma" #: lib/Padre/Wx/Dialog/SpecialValues.pm:30 msgid "Number of lines" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:46 lib/Padre/Wx/Dialog/Snippets.pm:22 msgid "Class:" msgstr "Třída:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:47 msgid "Special Value:" msgstr "" #: lib/Padre/Wx/Dialog/SpecialValues.pm:50 lib/Padre/Wx/Dialog/Snippets.pm:24 msgid "&Insert" msgstr "&Vlož" #: lib/Padre/Wx/Dialog/SpecialValues.pm:63 msgid "Insert Special Values" msgstr "" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Ulož sezení jako..." #: lib/Padre/Wx/Dialog/SessionSave.pm:200 msgid "Session name:" msgstr "Jméno sezení:" #: lib/Padre/Wx/Dialog/SessionSave.pm:229 msgid "Save" msgstr "Ulož" #: lib/Padre/Wx/Dialog/FindInFiles.pm:63 #, fuzzy msgid "Select Directory" msgstr "Volba adresáře" #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Manažer sezení" #: lib/Padre/Wx/Dialog/SessionManager.pm:214 msgid "List of sessions" msgstr "Seznam sezení" #: lib/Padre/Wx/Dialog/SessionManager.pm:227 msgid "Description" msgstr "Popis" #: lib/Padre/Wx/Dialog/SessionManager.pm:228 msgid "Last update" msgstr "Poslední aktualizace" #: lib/Padre/Wx/Dialog/SessionManager.pm:260 #, fuzzy msgid "Save session automatically" msgstr "Ulož sezení jako..." #: lib/Padre/Wx/Dialog/SessionManager.pm:290 msgid "Open" msgstr "Otevřít" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:40 msgid "Quick Menu Access" msgstr "Rychlé menu" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #, fuzzy, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Chyba při provádění operace Padre" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenResource.pm:178 lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:176 msgid "&Type a menu item name to access:" msgstr "&Zadej položku menu k přístupu:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:183 msgid "&Matching Menu Items:" msgstr "&Odpovídající položky menu:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:352 msgid "Reading items. Please wait..." msgstr "Čtení položek. Prosím čekejte..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 #, fuzzy msgid "Edit" msgstr "&Edituj" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 #, fuzzy msgid "View" msgstr "&Zobraz" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 #, fuzzy msgid "Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 msgid "Refactor" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:394 #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #, fuzzy msgid "Run" msgstr "&Spusť" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:395 msgid "Debug" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:396 #, fuzzy msgid "Plugins" msgstr "Do&plněk" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:397 #, fuzzy msgid "Window" msgstr "&Okno" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "Character classes" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 #, fuzzy msgid "Alphabetic characters" msgstr "Abecedy" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 #, fuzzy msgid "Space and tab" msgstr "Mezery na tabulátory" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 #, fuzzy msgid "Visible characters" msgstr "Zakaž tracování" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 msgid "Miscellaneous" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 #, fuzzy msgid "Alternation" msgstr "Překlad" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 #, fuzzy msgid "End of line" msgstr "Příkazová řádka" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 #, fuzzy msgid "A comment" msgstr "Žádný dokument" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "Grouping constructs" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 #, fuzzy msgid "&Regular expression:" msgstr "&Regulární výraz" #: lib/Padre/Wx/Dialog/RegexEditor.pm:191 #, fuzzy msgid "Show &Description" msgstr "Popis" #: lib/Padre/Wx/Dialog/RegexEditor.pm:204 #, fuzzy msgid "&Replace text with:" msgstr "Nahraď text:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:211 #, fuzzy msgid "&Original text:" msgstr "originální" #: lib/Padre/Wx/Dialog/RegexEditor.pm:218 #, fuzzy msgid "Matched text:" msgstr "&Shodné položky:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:225 msgid "&Result from replace:" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:408 msgid "Ignore case (&i)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:409 #, fuzzy msgid "Case-insensitive matching" msgstr "Ignoruj &malá/velká písmena" #: lib/Padre/Wx/Dialog/RegexEditor.pm:412 msgid "Single-line (&s)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:413 msgid "\".\" also matches newline" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:416 msgid "Multi-line (&m)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:417 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:420 msgid "Extended (&x)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:422 msgid "" "Extended regular expressions allow free formatting (whitespace is ignored) " "and comments" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:425 msgid "Global (&g)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:426 msgid "Replace all occurrences of the pattern" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:617 #, perl-format msgid "Match failure in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:624 #, perl-format msgid "Match warning in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:645 msgid "No match" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:656 #, perl-format msgid "Replace failure in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:35 #, fuzzy msgid "Window list" msgstr "&Okno" #: lib/Padre/Wx/Dialog/WindowList.pm:211 #, fuzzy msgid "List of open files" msgstr "Otevři soubory:" #: lib/Padre/Wx/Dialog/WindowList.pm:225 #, fuzzy msgid "Editor" msgstr "&Edituj" #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Disk" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:350 lib/Padre/Wx/Dialog/WindowList.pm:358 msgid "CHANGED" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:350 lib/Padre/Wx/Dialog/WindowList.pm:354 msgid "fresh" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:356 msgid "DELETED" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, fuzzy, perl-format msgid "Action: %s" msgstr "Kódování: %s" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:61 lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Goto" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:86 #, fuzzy msgid "Position type" msgstr "Typ obsahu:" #: lib/Padre/Wx/Dialog/Goto.pm:88 lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:226 lib/Padre/Wx/Dialog/Goto.pm:245 #, fuzzy msgid "Line number" msgstr "Číslo řádku:" #: lib/Padre/Wx/Dialog/Goto.pm:88 lib/Padre/Wx/Dialog/Goto.pm:230 msgid "Character position" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:228 #, fuzzy, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "Číslo řádku:" #: lib/Padre/Wx/Dialog/Goto.pm:229 #, fuzzy, perl-format msgid "Current line number: %s" msgstr "Aktuální dokument: %s" #: lib/Padre/Wx/Dialog/Goto.pm:232 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:233 #, fuzzy, perl-format msgid "Current position: %s" msgstr "Aktuální dokument: %s" #: lib/Padre/Wx/Dialog/Goto.pm:257 #, fuzzy msgid "Not a positive number!" msgstr "Číslo řádku:" #: lib/Padre/Wx/Dialog/Goto.pm:266 msgid "Out of range!" msgstr "" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "There are no positions saved yet" msgstr "" #: lib/Padre/Wx/Dialog/Positions.pm:124 #, fuzzy, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s řádka %s: %s" #: lib/Padre/Wx/Dialog/Search.pm:135 msgid "Find:" msgstr "Najdi:" #: lib/Padre/Wx/Dialog/Search.pm:154 msgid "Previ&ous" msgstr "Předch&ozí" #: lib/Padre/Wx/Dialog/Search.pm:172 lib/Padre/Wx/Dialog/WizardSelector.pm:87 msgid "&Next" msgstr "&Další" #: lib/Padre/Wx/Dialog/Search.pm:180 msgid "Case &insensitive" msgstr "Ignoruj &malá/velká písmena" #: lib/Padre/Wx/Dialog/Search.pm:184 msgid "Use rege&x" msgstr "Užij regulárn&í výraz" #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 #, fuzzy msgid "Filter command:" msgstr "Nelze spustit příkaz '%s'" #: lib/Padre/Wx/Dialog/Bookmarks.pm:31 msgid "Existing bookmarks:" msgstr "Existující záložky:" #: lib/Padre/Wx/Dialog/Bookmarks.pm:43 msgid "Delete &All" msgstr "Smaž &vše" #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "Set Bookmark" msgstr "Uprav záložku" #: lib/Padre/Wx/Dialog/Bookmarks.pm:57 #, fuzzy msgid "Go to Bookmark" msgstr "Přejdi na záložku" #: lib/Padre/Wx/Dialog/Bookmarks.pm:123 msgid "Cannot set bookmark in unsaved document" msgstr "Nelze přidat záložku v neuloženém" #: lib/Padre/Wx/Dialog/Bookmarks.pm:134 #, perl-format msgid "%s line %s: %s" msgstr "%s řádka %s: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:170 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "Záložka '%s' již neexistuje" #: lib/Padre/Wx/Dialog/Sync2.pm:88 lib/Padre/Wx/Dialog/Sync.pm:468 msgid "Please input a valid value for both username and password" msgstr "" #: lib/Padre/Wx/Dialog/Sync2.pm:131 lib/Padre/Wx/Dialog/Sync.pm:516 msgid "Please ensure all inputs have appropriate values." msgstr "" #: lib/Padre/Wx/Dialog/Sync2.pm:142 lib/Padre/Wx/Dialog/Sync.pm:527 msgid "Password and confirmation do not match." msgstr "" #: lib/Padre/Wx/Dialog/Sync2.pm:152 lib/Padre/Wx/Dialog/Sync.pm:537 msgid "Email and confirmation do not match." msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 #, fuzzy msgid "Perl Filter" msgstr "Nový soubor" #: lib/Padre/Wx/Dialog/PerlFilter.pm:67 #, fuzzy msgid "&Perl filter source:" msgstr "Žádný soubor otevřen" #: lib/Padre/Wx/Dialog/PerlFilter.pm:74 #, fuzzy msgid "Or&iginal text:" msgstr "originální" #: lib/Padre/Wx/Dialog/PerlFilter.pm:81 #, fuzzy msgid "&Output text:" msgstr "Zobraz výstup" #: lib/Padre/Wx/Dialog/PerlFilter.pm:89 #, fuzzy msgid "Run filter" msgstr "Otevřít soubor" #: lib/Padre/Wx/Dialog/PerlFilter.pm:208 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:18 msgid "Local/Remote File Access" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:19 #, fuzzy msgid "Perl Auto Complete" msgstr "&AutoDokonči" #: lib/Padre/Wx/Dialog/Preferences.pm:39 #, fuzzy msgid "Enable bookmarks" msgstr "Povol záložky" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "Change font size" msgstr "Změň velikost fontu" #: lib/Padre/Wx/Dialog/Preferences.pm:41 #, fuzzy msgid "Enable session manager" msgstr "Povol manažera sezení" #: lib/Padre/Wx/Dialog/Preferences.pm:86 msgid "Diff tool:" msgstr "Diff - nástroj:" #: lib/Padre/Wx/Dialog/Preferences.pm:88 lib/Padre/Wx/Dialog/Preferences.pm:92 #, fuzzy msgid "Browse..." msgstr "Zavři..." #: lib/Padre/Wx/Dialog/Preferences.pm:90 #, fuzzy msgid "Perl ctags file:" msgstr "Nový soubor" #: lib/Padre/Wx/Dialog/Preferences.pm:159 #, fuzzy msgid "File type:" msgstr "Typ souboru:" #: lib/Padre/Wx/Dialog/Preferences.pm:162 msgid "Highlighter:" msgstr "Zvýrazňovač:" #: lib/Padre/Wx/Dialog/Preferences.pm:168 #, fuzzy msgid "Content type:" msgstr "Typ obsahu:" #: lib/Padre/Wx/Dialog/Preferences.pm:260 #, fuzzy msgid "Automatic indentation style detection" msgstr "Automatická detekce stylu odsazování" #: lib/Padre/Wx/Dialog/Preferences.pm:264 msgid "Use Tabs" msgstr "Použij taby" #: lib/Padre/Wx/Dialog/Preferences.pm:267 #, fuzzy msgid "Tab display size (in spaces):" msgstr "TAB zobraz velikost (v mezerách):" #: lib/Padre/Wx/Dialog/Preferences.pm:270 msgid "Indentation width (in columns):" msgstr "Šířka odsazování (v sloupcích):" #: lib/Padre/Wx/Dialog/Preferences.pm:273 msgid "Guess from current document:" msgstr "Hádej z aktuálního dokumentu:" #: lib/Padre/Wx/Dialog/Preferences.pm:274 msgid "Guess" msgstr "Hádej" #: lib/Padre/Wx/Dialog/Preferences.pm:276 msgid "Autoindent:" msgstr "Autoodsazení:" #: lib/Padre/Wx/Dialog/Preferences.pm:300 msgid "Default word wrap on for each file" msgstr "Implicitní zalamování pro každý soubor" #: lib/Padre/Wx/Dialog/Preferences.pm:305 msgid "Use panel order for Ctrl-Tab (not usage history)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:312 msgid "Clean up file content on saving (for supported document types)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:317 msgid "Auto-fold POD markup when code folding enabled" msgstr "Autosbalení POD značek pokud je sbaleni povoleno" #: lib/Padre/Wx/Dialog/Preferences.pm:322 msgid "Perl beginner mode" msgstr "Perl mód začátečník" #: lib/Padre/Wx/Dialog/Preferences.pm:326 msgid "Open files:" msgstr "Otevři soubory:" #: lib/Padre/Wx/Dialog/Preferences.pm:329 #, fuzzy msgid "Default projects directory:" msgstr "Výchozí adresář projektu:" #: lib/Padre/Wx/Dialog/Preferences.pm:331 msgid "Choose the default projects directory" msgstr "Zvolte výchozí adresář projektu" #: lib/Padre/Wx/Dialog/Preferences.pm:335 msgid "Open files in existing Padre" msgstr "Otevři soubory existující v Padre" #: lib/Padre/Wx/Dialog/Preferences.pm:339 msgid "Methods order:" msgstr "Metody řazení:" #: lib/Padre/Wx/Dialog/Preferences.pm:342 msgid "Preferred language for error diagnostics:" msgstr "Preferovaný jazyk pro diagnostiku chyb:" #: lib/Padre/Wx/Dialog/Preferences.pm:345 msgid "Default line ending:" msgstr "Výchozí konce řádků:" #: lib/Padre/Wx/Dialog/Preferences.pm:348 msgid "Check for file updates on disk every (seconds):" msgstr "Zkontroluj aktualizace souborů na disku každou (sekundy):" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Cursor Blink Rate (milliseconds - 0 = blink off; 500 = default):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:360 #, fuzzy msgid "Autocomplete brackets" msgstr "&AutoDokonči" #: lib/Padre/Wx/Dialog/Preferences.pm:368 #, fuzzy msgid "" "Add another closing bracket if there is already one (and the 'Autocomplete " "brackets' above is enabled)" msgstr "" "Přidej další uzavírací závorku, pokud je tu už jedna (a autom. doplňováníje " "povoleno" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Enable Smart highlighting while typing" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:383 msgid "Shorten the common path in window list" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:390 msgid "Use X11 middle button paste style" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:394 msgid "RegExp for TODO-panel:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:400 msgid "Use Splash Screen" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:437 #, fuzzy msgid "Project name" msgstr "Nástroje projektu" #: lib/Padre/Wx/Dialog/Preferences.pm:438 #, fuzzy msgid "Padre version" msgstr "Ulož sezení" #: lib/Padre/Wx/Dialog/Preferences.pm:439 #, fuzzy msgid "Current filename" msgstr "Aktuální dokument není pojmenován" #: lib/Padre/Wx/Dialog/Preferences.pm:440 msgid "Current file's dirname" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:441 #, fuzzy msgid "Current file's basename" msgstr "Aktuální dokument není pojmenován" #: lib/Padre/Wx/Dialog/Preferences.pm:442 msgid "Current filename relative to project" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:463 #, fuzzy msgid "Window title:" msgstr "&Okno" #: lib/Padre/Wx/Dialog/Preferences.pm:470 msgid "Colored text in output window (ANSI)" msgstr "Barevný text na výstupu (ANSI)" #: lib/Padre/Wx/Dialog/Preferences.pm:475 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:480 msgid "Show right margin at column:" msgstr "Zobraz pravý okraj sloupce:" #: lib/Padre/Wx/Dialog/Preferences.pm:484 msgid "Editor Font:" msgstr "Font editoru:" #: lib/Padre/Wx/Dialog/Preferences.pm:487 msgid "Editor Current Line Background Colour:" msgstr "Editor barvy pozadí aktuální řádky" #: lib/Padre/Wx/Dialog/Preferences.pm:550 msgid "Settings Demo" msgstr "Ukázka nastavení" #: lib/Padre/Wx/Dialog/Preferences.pm:559 msgid "Any changes to these options require a restart:" msgstr "Každá změna tohoto nastavení potřebuje restart:" #: lib/Padre/Wx/Dialog/Preferences.pm:670 msgid "Enable?" msgstr "Povolit?" #: lib/Padre/Wx/Dialog/Preferences.pm:685 msgid "Crashed" msgstr "Pád" #: lib/Padre/Wx/Dialog/Preferences.pm:718 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" "t.j.\n" "\tslinkuj s adresářem: -I\n" "\tpovol kontrolu nakažení: -T\n" "\tpovol užitečná varování: -w\n" "\tpovol všechna varování: -W\n" "\tzakaž všechna varování: -X\n" #: lib/Padre/Wx/Dialog/Preferences.pm:728 msgid "Perl interpreter:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:731 #: lib/Padre/Wx/Dialog/Preferences.pm:781 msgid "Interpreter arguments:" msgstr "Argumenty interpretu:" #: lib/Padre/Wx/Dialog/Preferences.pm:737 #: lib/Padre/Wx/Dialog/Preferences.pm:787 msgid "Script arguments:" msgstr "Argumenty skriptu:" #: lib/Padre/Wx/Dialog/Preferences.pm:741 #, fuzzy msgid "Use external window for execution" msgstr "Použij externí okno pro spuštění (xterm)" #: lib/Padre/Wx/Dialog/Preferences.pm:750 msgid "Unsaved" msgstr "Neuloženo" #: lib/Padre/Wx/Dialog/Preferences.pm:751 msgid "N/A" msgstr "N/A" #: lib/Padre/Wx/Dialog/Preferences.pm:770 msgid "No Document" msgstr "Žádný dokument" #: lib/Padre/Wx/Dialog/Preferences.pm:775 msgid "Document name:" msgstr "Jméno dokumentu:" #: lib/Padre/Wx/Dialog/Preferences.pm:778 msgid "Document location:" msgstr "Umístění dokumentu:" #: lib/Padre/Wx/Dialog/Preferences.pm:811 #, perl-format msgid "Current Document: %s" msgstr "Aktuální dokument: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:828 msgid "Preferences" msgstr "Předvolby" #: lib/Padre/Wx/Dialog/Preferences.pm:854 msgid "Behaviour" msgstr "Chování" #: lib/Padre/Wx/Dialog/Preferences.pm:857 msgid "Appearance" msgstr "Vzhled" #: lib/Padre/Wx/Dialog/Preferences.pm:861 msgid "Run Parameters" msgstr "Spusť s parametry" #: lib/Padre/Wx/Dialog/Preferences.pm:865 msgid "Files and Colors" msgstr "Soubory a barvy" #: lib/Padre/Wx/Dialog/Preferences.pm:868 #, fuzzy msgid "Indentation" msgstr "Odsazování" #: lib/Padre/Wx/Dialog/Preferences.pm:871 msgid "External Tools" msgstr "Externí nástroje" #: lib/Padre/Wx/Dialog/Preferences.pm:926 msgid "&Advanced..." msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:974 msgid "new" msgstr "nový" #: lib/Padre/Wx/Dialog/Preferences.pm:975 msgid "nothing" msgstr "nic" #: lib/Padre/Wx/Dialog/Preferences.pm:976 msgid "last" msgstr "poslední" #: lib/Padre/Wx/Dialog/Preferences.pm:977 #, fuzzy msgid "session" msgstr "Verze" #: lib/Padre/Wx/Dialog/Preferences.pm:978 msgid "no" msgstr "ne" #: lib/Padre/Wx/Dialog/Preferences.pm:979 msgid "same_level" msgstr "stejná_úroveň" #: lib/Padre/Wx/Dialog/Preferences.pm:980 msgid "deep" msgstr "hloubková" #: lib/Padre/Wx/Dialog/Preferences.pm:981 msgid "alphabetical" msgstr "abecední" #: lib/Padre/Wx/Dialog/Preferences.pm:982 msgid "original" msgstr "originální" #: lib/Padre/Wx/Dialog/Preferences.pm:983 msgid "alphabetical_private_last" msgstr "abecedně_privátní_poslední" #: lib/Padre/Wx/Dialog/Preferences.pm:1150 #, fuzzy msgid "Save settings" msgstr "Ulož sezení jako..." #: lib/Padre/Wx/Dialog/OpenResource.pm:30 #: lib/Padre/Wx/Dialog/OpenResource.pm:76 msgid "Open Resource" msgstr "Otevři prostředky" #: lib/Padre/Wx/Dialog/OpenResource.pm:117 msgid "Error while trying to perform Padre action" msgstr "Chyba při provádění operace Padre" #: lib/Padre/Wx/Dialog/OpenResource.pm:206 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&Zvolte položku k otevření (? = jakýkoli znak, * = jakýkoli řetězec):" #: lib/Padre/Wx/Dialog/OpenResource.pm:220 msgid "&Matching Items:" msgstr "&Shodné položky:" #: lib/Padre/Wx/Dialog/OpenResource.pm:236 #, fuzzy msgid "Current Directory: " msgstr "Aktuální adresář:" #: lib/Padre/Wx/Dialog/OpenResource.pm:263 msgid "Skip version control system files" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:267 msgid "Skip using MANIFEST.SKIP" msgstr "Přeskoč použitý MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "Vše" #: lib/Padre/Wx/Dialog/Snippets.pm:23 lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "Úryvek:" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "&Přidej" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "Úryvky" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "Kategorie:" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "Jméno:" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "Edituj/přidej úryvky" #: lib/Padre/Wx/Dialog/WizardSelector.pm:47 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:18 #, fuzzy msgid "Wizard Selector" msgstr "Začni označování od\tCtrl-[" #: lib/Padre/Wx/Dialog/WizardSelector.pm:86 msgid "&Back" msgstr "" #: lib/Padre/Wx/Dialog/WizardSelector.pm:174 #, perl-format msgid "%s has no constructor" msgstr "" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 #, fuzzy msgid "Open URL" msgstr "Otevřít" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 #, fuzzy msgid "Select Function" msgstr "Zobraz funkce" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 #, fuzzy msgid "Function" msgstr "Zobraz funkce" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 #, fuzzy msgid "Padre Developer" msgstr "Padre vývojářské nástroje" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "" #: lib/Padre/Wx/Dialog/Encode.pm:53 msgid "Encode to:" msgstr "Překóduj do:" #: lib/Padre/Wx/Dialog/Encode.pm:63 #, fuzzy msgid "Encode document to..." msgstr "Zobraz dokument jako..." #: lib/Padre/Wx/Dialog/Wizard/Select.pm:17 msgid "Select a Wizard" msgstr "" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:126 #, fuzzy, perl-format msgid "Error while loading %s" msgstr "Chyba při vytváření menu doplňků" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:15 msgid "Creates a Padre Plugin" msgstr "" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:16 msgid "Padre Plugin Wizard" msgstr "" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:15 #, fuzzy msgid "Creates a Padre document" msgstr "Nejedná se Perlový dokument" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:16 msgid "Padre Document Wizard" msgstr "" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:17 msgid "Creates a Perl 5 module or script" msgstr "" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:18 #, fuzzy msgid "Perl 5 Module Wizard" msgstr "Perl 5 modul" #: lib/Padre/Wx/Dialog/Preferences/File.pm:36 msgid "File access via HTTP" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/File.pm:39 #: lib/Padre/Wx/Dialog/Preferences/File.pm:47 msgid "Timeout (in seconds):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/File.pm:44 msgid "File access via FTP" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/File.pm:51 msgid "Use FTP passive mode" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:34 msgid "Autocomplete always while typing" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:41 msgid "Autocomplete new methods in packages" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:48 msgid "Autocomplete new subroutines in scripts" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:52 #, fuzzy msgid "Min. length of suggestions:" msgstr "Seznam sezení" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:57 msgid "Max. number of suggestions:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:60 msgid "Min. chars for autocompletion:" msgstr "" #: lib/Padre/Config/Style.pm:35 msgid "Evening" msgstr "" #: lib/Padre/Config/Style.pm:36 msgid "Night" msgstr "Noc" #: lib/Padre/Config/Style.pm:37 msgid "Ultraedit" msgstr "Ultraedit" #: lib/Padre/Config/Style.pm:38 msgid "Notepad++" msgstr "Notepad++" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "Adresář projektu %s už neexistuje. Tento problém je závažný,prosím " #~ "zavřete soubory nebo použijte uložit jako pokud si nejstejisti." #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "Nelze otevřít %s, protože soubor překročil povolenou velikost pro Padre, " #~ "cožje právě %s" #~ msgid "Code Order" #~ msgstr "Seřazení podle" #, fuzzy #~ msgid "Alphabetical Order" #~ msgstr "Abecední pořadí" #, fuzzy #~ msgid "Alphabetical Order (Private Last)" #~ msgstr "Abecední pořadí (privátní poslední)" #, fuzzy #~ msgid "Directories First" #~ msgstr "Adresáře první" #, fuzzy #~ msgid "Directories Mixed" #~ msgstr "Adresáře abecedně" #~ msgid "Project Tools (Left)" #~ msgstr "Projektové nástroje(vlevo)" #~ msgid "Document Tools (Right)" #~ msgstr "Dokumentační nástroje (vpravo)" #~ msgid "Pick &directory" #~ msgstr "Volba &adresáře" #~ msgid "Case &Insensitive" #~ msgstr "Ignorování velikosti písmen" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "I&gnorování skrytých podadresářů" #~ msgid "Show only files that don't match" #~ msgstr "Zobrazní souborů, které nesouhlasí" #, fuzzy #~ msgid "Found %d files and %d matches\n" #~ msgstr "Nalezeno % souborů a %d shod\n" #, fuzzy #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "'%s' chybí v souboru '%s'" #~ msgid "Quick Find" #~ msgstr "Rychlé hledání" #, fuzzy #~ msgid "Show Errors" #~ msgstr "Zobraz seznam chyb" #~ msgid "Show Current Line" #~ msgstr "Zobraz aktuální řádek" #~ msgid "Show Right Margin" #~ msgstr "Zobraz pravý okraj" #~ msgid "Show Newlines" #~ msgstr "Zobraz nové řádky" #~ msgid "Show Whitespaces" #~ msgstr "Zobraz bílé znaky" #~ msgid "Show Indentation Guide" #~ msgstr "Zobraz průvodce odsazováním" #~ msgid "Word-Wrap" #~ msgstr "Zalomení slov" #, fuzzy #~ msgid "Wrap long lines" #~ msgstr "&Spoj řádky" #, fuzzy #~ msgid "Increase Font Size" #~ msgstr "Zvětši font\tCtrl-+" #, fuzzy #~ msgid "Decrease Font Size" #~ msgstr "Zmenši font\tCtrl--" #, fuzzy #~ msgid "Reset Font Size" #~ msgstr "Resetuj font\tCtrl-/" #, fuzzy #~ msgid "&Full Screen" #~ msgstr "&Celá obrazovka\tF11" #~ msgid "Find Unmatched Brace" #~ msgstr "Najdi chybějící závorky" #~ msgid "Find Variable Declaration" #~ msgstr "Najdi deklarované proměnné" #, fuzzy #~ msgid "Find Method Declaration" #~ msgstr "Najdi deklarované proměnné" #~ msgid "Vertically Align Selected" #~ msgstr "Vertikální odsazení zvoleno" #, fuzzy #~ msgid "Newline Same Column" #~ msgstr "Nový řádek, stejný sloupec" #, fuzzy #~ msgid "Create Project Tagsfile" #~ msgstr "Zavři ostatní projekty" #, fuzzy #~ msgid "Automatic Bracket Completion" #~ msgstr "Automatické doplnění závorek" #, fuzzy #~ msgid "Rename Variable..." #~ msgstr "Lexikální přejmenování proměnných" #, fuzzy #~ msgid "Introduce Temporary Variable..." #~ msgstr "Uveď dočasné proměnné" #~ msgid "Introduce Temporary Variable" #~ msgstr "Uveď dočasné proměnné" #, fuzzy #~ msgid "Run Script" #~ msgstr "Spusť skript" #, fuzzy #~ msgid "Run Script (Debug Info)" #~ msgstr "Spusť skript (debug)" #, fuzzy #~ msgid "Run Build and Tests" #~ msgstr "Spusť testy" #~ msgid "Run Tests" #~ msgstr "Spusť testy" #, fuzzy #~ msgid "Run This Test" #~ msgstr "Spusť testy" #, fuzzy #~ msgid "Show Stack Trace" #~ msgstr "Zobraz kontrolu syntaxe" #, fuzzy #~ msgid "Evaluate Expression..." #~ msgstr "&Regulární výraz" #, fuzzy #~ msgid "Plug-in List (CPAN)" #~ msgstr "Seznam doplňků (CPAN)" #, fuzzy #~ msgid "Edit My Plug-in" #~ msgstr "Edituj mé doplňky" #, fuzzy #~ msgid "Could not find the Padre::Plugin::My plug-in" #~ msgstr "Nelze nalézt Padre::Plugin::Můj doplněk" #, fuzzy #~ msgid "Reload My Plug-in" #~ msgstr "Nahrej můj doplněk" #, fuzzy #~ msgid "Reset My plug-in" #~ msgstr "Resetuj můj doplněk" #, fuzzy #~ msgid "Reload All Plug-ins" #~ msgstr "Nahrej všechny doplňky" #, fuzzy #~ msgid "Reload all plug-ins from disk" #~ msgstr "Nahrej všechny doplňky" #, fuzzy #~ msgid "(Re)load Current Plug-in" #~ msgstr "Nahrej aktuální doplněk" #~ msgid "Install CPAN Module" #~ msgstr "Instaluj CPAN modul" #, fuzzy #~ msgid "Install a Perl module from CPAN" #~ msgstr "Instaluj CPAN modul" #~ msgid "Install Remote Distribution" #~ msgstr "Instaluj vzdálenou distribuci" #~ msgid "Open CPAN Config File" #~ msgstr "Otevři CPAN konfigurační soubor" #, fuzzy #~ msgid "Oldest Visited File" #~ msgstr "Poslední otevřený" #, fuzzy #~ msgid "Next File" #~ msgstr "Nový soubor" #, fuzzy #~ msgid "Previous File" #~ msgstr "Předchozí" #, fuzzy #~ msgid "No diagnostics available for this error." #~ msgstr "K této chybě neexistují diagnostiky!" #~ msgid "Diagnostics" #~ msgstr "Diagnostiky" #, fuzzy #~ msgid "Errors" #~ msgstr "Chyba" #, fuzzy #~ msgid "Open Warning" #~ msgstr "Varování" #, fuzzy #~ msgid "Reload all files" #~ msgstr "Obnov soubor" #, fuzzy #~ msgid "Reload some" #~ msgstr "Obnov soubor" #~ msgid "Could not reload file: %s" #~ msgstr "Nelze obnovit soubor: %s" #~ msgid "Save file as..." #~ msgstr "Ulož jako..." #, fuzzy #~ msgid "Stats" #~ msgstr "Stav" #, fuzzy #~ msgid "&Find Next" #~ msgstr "&Najdi další" #, fuzzy #~ msgid "Find &Text:" #~ msgstr "Najdi text:" #~ msgid "Not a valid search" #~ msgstr "Neplatné hledání" #, fuzzy #~ msgid "Action" #~ msgstr "Zobraz funkce" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Simuluj pád úlohy na pozadí" #, fuzzy #~ msgid "Rename Variable" #~ msgstr "Lexikální přejmenování proměnných" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s vykonávaná vlákna probíhají.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "Nyní neprobíhají žádné úkoly na pozadí.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "Následující úlohy jsou spuštěny na pozadí:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s typu '%s':\n" #~ " (ve vláknech %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "Další úkoly %s čekají na provedení.\n" #~ msgid "Lines: %d" #~ msgstr "Řádky: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Znaků bez mezer: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Znaků s mezerami: %d" #~ msgid "Newline type: %s" #~ msgstr "Typ nového řádku: %s" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "Soubor se změnil od posledního uložení. Chcete ho obnovit?" #, fuzzy #~ msgid "&Close\tCtrl+W" #~ msgstr "&Zavřít\tCtrl-W" #, fuzzy #~ msgid "&Open\tCtrl+O" #~ msgstr "&Otevřít...\tCtrl-O" #, fuzzy #~ msgid "E&xit\tCtrl+X" #~ msgstr "Vyj&mi\tCtrl-X" #~ msgid "Select all\tCtrl-A" #~ msgstr "Označ vše\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Kopíruj\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "Vyj&mi\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "&Vlož\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "&Zobraz komentář\tCtrl-Shift-C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "&Zakomentuj vybrané řádky\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "&Odkomentuj vybrané řádky\tCtrl-Shift-M" #~ msgid "&Split window" #~ msgstr "&Rozděl okno" #~ msgid "Term:" #~ msgstr "Term:" #~ msgid "Dir:" #~ msgstr "Adresář:" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Error List" #~ msgstr "Seznam chyb" #~ msgid "Please choose a different name." #~ msgstr "Prosím zvolte jiné jméno." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "Soubor tohoto jména v adresáři již existuje" #~ msgid "Move here" #~ msgstr "Přesuň sem" #~ msgid "folder" #~ msgstr "adresář" #~ msgid "Rename / Move" #~ msgstr "Přejmenuj/Přesuň" #~ msgid "Move to trash" #~ msgstr "Přesuň do koše" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "Jste si jistí, že chcete smazat tuto položku?" #, fuzzy #~ msgid "Show hidden files" #~ msgstr "Zobraz skryté soubory" #, fuzzy #~ msgid "Skip hidden files" #~ msgstr "Přeskoč skryté soubory:" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "Přeskoč CVS.svn/.git/blib adresáře" #, fuzzy #~ msgid "Change project directory" #~ msgstr "Změňte adresář projektu" #~ msgid "Tree listing" #~ msgstr "Strom" #, fuzzy #~ msgid "Navigate" #~ msgstr "Naviguj" #~ msgid "Change listing mode view" #~ msgstr "Změň výpis zobrazení" #~ msgid "&Goto Line" #~ msgstr "Přejdi na řádku" #, fuzzy #~ msgid "Convert EOL" #~ msgstr "Konvertuj EOL" #~ msgid "Insert From File..." #~ msgstr "Vlož ze souboru..." #, fuzzy #~ msgid "Show as hexa" #~ msgstr "Ukaž jako hexa" #~ msgid "New..." #~ msgstr "Nový..." #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Testuj doplněk z lokálního adresáře" #~ msgid "GoTo Bookmark" #~ msgstr "Přejdi na záložku" #~ msgid "Skip VCS files" #~ msgstr "Přeskoč VCS soubory" #~ msgid "%s apparantly created. Do you want to open it now?" #~ msgstr "%s právě vytvořen. Chcete ho rovnou otevřít?" #~ msgid "Done" #~ msgstr "Hotovo" #~ msgid "&Use Regex" #~ msgstr "&Užij regulární výraz" #~ msgid "Close Window on &hit" #~ msgstr "Zavři okno &kliknutím" #~ msgid "%s occurences were replaced" #~ msgstr "%s výskytů nahrazeno" #~ msgid "Nothing to replace" #~ msgstr "Nic k nahrazení" #~ msgid "Cannot build regex for '%s'" #~ msgstr "Reg. výraz nejde pro '%s'" #, fuzzy #~ msgid "&Count All" #~ msgstr "&Sečti vše" #~ msgid "Found %d matching occurrences" #~ msgstr "Nalezeno %d výskytů" #~ msgid "Finished Searching" #~ msgstr "Dokončeno hledání" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "Enable logging" #~ msgstr "Povol logování" #~ msgid "Disable logging" #~ msgstr "Zakaž logování" #~ msgid "Enable trace when logging" #~ msgstr "Povol tracování s logováním" Padre-1.00/share/locale/fr.po0000644000175000017500000061770612012223662014466 0ustar petepetemsgid "" msgstr "" "Project-Id-Version: padre\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-08-11 16:10-0700\n" "PO-Revision-Date: 2012-08-13 18:10+0100\n" "Last-Translator: Olivier Mengué \n" "Language-Team: Jérôme Quelin \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "\".\" also matches newline" msgstr "« . » fait concorder aussi les sauts de ligne" #: lib/Padre/Config.pm:489 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "« Ouvrir une session » demandera quelle session (ensemble de fichiers) à ouvrir au démarrage de Padre." #: lib/Padre/Config.pm:491 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "« Fichier récents » se rappellera les fichier ouvert quand vous fermerez Padre et ouvrira les mêmes fichiers lorsque vous le relancerez." #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "« ^ » et « $ » correspondent au début et à la fin de n'importe quelle ligne dans le texte" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# L'entrée est dans $_\n" "$_ = $_;\n" "# Le résultat est dans $_\n" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "$_ en sortie" #: lib/Padre/Wx/Diff.pm:112 #, perl-format msgid "%d line added" msgstr "%d ligne ajoutée" #: lib/Padre/Wx/Diff.pm:100 #, perl-format msgid "%d line changed" msgstr "%d ligne modifiée" #: lib/Padre/Wx/Diff.pm:124 #, perl-format msgid "%d line deleted" msgstr "%d ligne supprimée" #: lib/Padre/Wx/Diff.pm:111 #, perl-format msgid "%d lines added" msgstr "%d lignes ajoutées" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d lines changed" msgstr "%d lignes modifiées" #: lib/Padre/Wx/Diff.pm:123 #, perl-format msgid "%d lines deleted" msgstr "%d lignes supprimées" #: lib/Padre/Wx/ReplaceInFiles.pm:213 #, perl-format msgid "%s (%s changed)" msgstr "%s (%s changé)" #: lib/Padre/Wx/Panel/FoundInFiles.pm:348 #, perl-format msgid "%s (%s results)" msgstr "%s (%s résultats)" #: lib/Padre/Wx/ReplaceInFiles.pm:221 #, perl-format msgid "%s (crashed)" msgstr "%s (planté)" #: lib/Padre/PluginManager.pm:521 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Interrompu durant l'instanciation: %s" #: lib/Padre/PluginManager.pm:469 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Interrompu durant le chargement: %s" #: lib/Padre/PluginManager.pm:531 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - Échec d'instanciation de l'extension" #: lib/Padre/PluginManager.pm:493 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - Pas une classe dérivée de Padre::Plugin" #: lib/Padre/PluginManager.pm:506 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - Incompatible avec Padre %s - %s" #: lib/Padre/PluginManager.pm:481 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - Extension vide ou non versionnée" #: lib/Padre/Wx/TaskList.pm:280 #: lib/Padre/Wx/Panel/TaskList.pm:171 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s dans la regex TODO, vérifiez votre configuration." #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s ligne %s : %s" #: lib/Padre/Wx/VCS.pm:210 #, perl-format msgid "%s version control is not currently available" msgstr "Le système de gestion de version « %s » n'est pas disponible" #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. ligne %s : Fichier : %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2592 #: lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "&À propos" #: lib/Padre/Wx/FBP/Preferences.pm:1545 msgid "&Advanced..." msgstr "&Avancé..." #: lib/Padre/Wx/ActionLibrary.pm:860 msgid "&Autocomplete" msgstr "Auto&complétion" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "&Brace Matching" msgstr "&Balance des parenthèses" #: lib/Padre/Wx/FBP/FindInFiles.pm:90 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:108 msgid "&Browse" msgstr "&Parcourir" #: lib/Padre/Wx/FBP/Preferences.pm:1561 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:153 #: lib/Padre/Wx/Dialog/OpenResource.pm:183 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&Annuler" #: lib/Padre/Wx/FBP/FindInFiles.pm:137 #: lib/Padre/Wx/FBP/Find.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:147 #: lib/Padre/Wx/FBP/Replace.pm:121 msgid "&Case Sensitive" msgstr "&Sensible à la casse" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "&Modifier le style de variable" #: lib/Padre/Wx/ActionLibrary.pm:1706 msgid "&Check for Common (Beginner) Errors" msgstr "Vérifier les &erreurs classiques (de débutant)" #: lib/Padre/Wx/ActionLibrary.pm:532 msgid "&Clean Recent Files List" msgstr "&Vider la liste" #: lib/Padre/Wx/ActionLibrary.pm:658 msgid "&Clear Selection Marks" msgstr "&Effacer les marques de sélection" #: lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:134 #: lib/Padre/Wx/Dialog/HelpSearch.pm:180 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:275 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 msgid "&Close" msgstr "&Fermer" #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "&Comment Out" msgstr "&Commenter" #: lib/Padre/Wx/ActionLibrary.pm:2491 msgid "&Context Help" msgstr "Aide &contextuelle" #: lib/Padre/Wx/ActionLibrary.pm:2376 msgid "&Context Menu" msgstr "Menu &contextuel" #: lib/Padre/Wx/ActionLibrary.pm:688 msgid "&Copy" msgstr "&Copier" #: lib/Padre/Wx/Menu/Debug.pm:68 msgid "&Debug" msgstr "&Débug" #: lib/Padre/Wx/ActionLibrary.pm:1638 msgid "&Decrease Font Size" msgstr "&Diminuer la taille de la police" #: lib/Padre/Wx/ActionLibrary.pm:369 #: lib/Padre/Wx/FBP/Preferences.pm:1213 #: lib/Padre/Wx/FBP/Bookmarks.pm:95 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "&Supprimer" #: lib/Padre/Wx/ActionLibrary.pm:1073 msgid "&Delete Trailing Spaces" msgstr "&Supprimer les espaces en fin de ligne" #: lib/Padre/Wx/ActionLibrary.pm:1718 msgid "&Deparse selection" msgstr "&Déparser la sélection" #: lib/Padre/Wx/Dialog/PluginManager.pm:100 msgid "&Disable" msgstr "&Désactiver" #: lib/Padre/Wx/ActionLibrary.pm:544 msgid "&Document Statistics" msgstr "Statistiques du &document" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "&Edit" msgstr "Éditio&n" #: lib/Padre/Wx/ActionLibrary.pm:2255 msgid "&Edit My Plug-in" msgstr "É&diter MyPlugin" #: lib/Padre/Wx/ActionLibrary.pm:2220 msgid "&Edit with Regex Editor..." msgstr "&Éditeur d'expressions régulières" #: lib/Padre/Wx/Dialog/PluginManager.pm:106 #: lib/Padre/Wx/Dialog/PluginManager.pm:112 msgid "&Enable" msgstr "&Activer" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "Saisir un numéro de ligne (entre 1 et %s) :" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "Position entre 1 et %s:" #: lib/Padre/Wx/Menu/File.pm:291 msgid "&File" msgstr "&Fichier" # Edit > Insert > File... #: lib/Padre/Wx/ActionLibrary.pm:930 msgid "&File..." msgstr "&Fichier..." #: lib/Padre/Wx/FBP/Preferences.pm:1097 #: lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "&Filtre :" #: lib/Padre/Wx/FBP/FindInFiles.pm:153 msgid "&Find" msgstr "&Rechercher" #: lib/Padre/Wx/FBP/Find.pm:111 #: lib/Padre/Wx/FBP/Replace.pm:153 msgid "&Find Next" msgstr "Rechercher en avant" #: lib/Padre/Wx/ActionLibrary.pm:1220 msgid "&Find Previous" msgstr "Rechercher le &précédent" #: lib/Padre/Wx/ActionLibrary.pm:1167 msgid "&Find..." msgstr "&Rechercher" #: lib/Padre/Wx/ActionLibrary.pm:1518 msgid "&Fold All" msgstr "Replier &tout" #: lib/Padre/Wx/ActionLibrary.pm:1538 msgid "&Fold/Unfold Current" msgstr "&Plier/Déplier" #: lib/Padre/Wx/ActionLibrary.pm:1282 msgid "&Go To..." msgstr "&Aller à..." #: lib/Padre/Wx/Outline.pm:133 msgid "&Go to Element" msgstr "&Aller à l'élément" #: lib/Padre/Wx/ActionLibrary.pm:2470 #: lib/Padre/Wx/Menu/Help.pm:115 msgid "&Help" msgstr "A&ide" #: lib/Padre/Wx/ActionLibrary.pm:1628 msgid "&Increase Font Size" msgstr "&Augmenter la taille de la police" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "&Join Lines" msgstr "&Joindre les lignes" #: lib/Padre/Wx/ActionLibrary.pm:2110 msgid "&Launch Debugger" msgstr "&Déboguer" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "&Support en direct (IRC)" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "Charger tous les modules Padre" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "&Lower All" msgstr "Tout mettre en m&inuscules" #: lib/Padre/Wx/Dialog/HelpSearch.pm:155 msgid "&Matching Help Topics:" msgstr "Sujets d'aide &concordants :" #: lib/Padre/Wx/Dialog/OpenResource.pm:227 msgid "&Matching Items:" msgstr "Items &concordants :" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:181 msgid "&Matching Menu Items:" msgstr "Items menus &concordants" #: lib/Padre/Wx/ActionLibrary.pm:1926 msgid "&Move POD to __END__" msgstr "Déplacer le &POD vers __END__" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "&Nouveau" #: lib/Padre/Wx/ActionLibrary.pm:1779 msgid "&Newline Same Column" msgstr "&Retour à la ligne à la même colonne" #: lib/Padre/Wx/FBP/FindFast.pm:101 msgid "&Next" msgstr "&Suivant" #: lib/Padre/Wx/ActionLibrary.pm:791 msgid "&Next Difference" msgstr "&Différence suivante" #: lib/Padre/Wx/ActionLibrary.pm:2353 msgid "&Next File" msgstr "Fichier &suivant" #: lib/Padre/Wx/ActionLibrary.pm:780 msgid "&Next Problem" msgstr "Problème &suivant" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:149 #: lib/Padre/Wx/Dialog/OpenResource.pm:177 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "&Ouvrir" #: lib/Padre/Wx/ActionLibrary.pm:523 msgid "&Open All Recent Files" msgstr "&Ouvrir tous les fichiers récents" #: lib/Padre/Wx/ActionLibrary.pm:195 msgid "&Open..." msgstr "&Ouvrir..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:228 msgid "&Original text:" msgstr "&Original :" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "&Sortie :" #: lib/Padre/Wx/Dialog/RegexEditor.pm:81 msgid "&POSIX Character classes" msgstr "Classe de caractères &POSIX" #: lib/Padre/Wx/ActionLibrary.pm:2515 msgid "&Padre Support (English)" msgstr "Support &Padre (anglais)" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "&Paste" msgstr "Co&ller" #: lib/Padre/Wx/ActionLibrary.pm:1107 msgid "&Patch..." msgstr "&Patch..." #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "&Interpréteur Perl :" #: lib/Padre/Wx/ActionLibrary.pm:2233 msgid "&Plug-in Manager" msgstr "&Gestion des extensions" #: lib/Padre/Wx/ActionLibrary.pm:2188 msgid "&Preferences" msgstr "&Options" #: lib/Padre/Wx/FBP/FindFast.pm:85 msgid "&Previous" msgstr "&Précédent" #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "&Previous File" msgstr "Fichier &précédent" #: lib/Padre/Wx/ActionLibrary.pm:503 msgid "&Print..." msgstr "Im&primer..." #: lib/Padre/Wx/ActionLibrary.pm:556 msgid "&Project Statistics" msgstr "Statistiques du &projet" #: lib/Padre/Wx/Dialog/RegexEditor.pm:100 msgid "&Quantifiers" msgstr "&Quantificateurs" #: lib/Padre/Wx/ActionLibrary.pm:803 msgid "&Quick Fix" msgstr "Correction &rapide" #: lib/Padre/Wx/ActionLibrary.pm:1331 msgid "&Quick Menu Access..." msgstr "&Accès menu rapide..." #: lib/Padre/Wx/ActionLibrary.pm:567 msgid "&Quit" msgstr "&Quitter" #: lib/Padre/Wx/Menu/File.pm:248 msgid "&Recent Files" msgstr "Fichiers &récents" #: lib/Padre/Wx/ActionLibrary.pm:607 msgid "&Redo" msgstr "&Refaire" #: lib/Padre/Wx/ActionLibrary.pm:2210 msgid "&Regex Editor" msgstr "Éditeur de ®ex" #: lib/Padre/Wx/FBP/FindInFiles.pm:129 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:155 msgid "&Regular Expression" msgstr "Expression &régulière" #: lib/Padre/Wx/Dialog/RegexEditor.pm:168 msgid "&Regular expression:" msgstr "Expression &régulière :" #: lib/Padre/Wx/ActionLibrary.pm:2272 msgid "&Reload My Plug-in" msgstr "&Recharger My Plug-in" #: lib/Padre/Wx/Main.pm:4715 msgid "&Reload selected" msgstr "&Recharger tous les fichiers" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "&Rename Variable..." msgstr "&Remplacement lexical de variable" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:171 #: lib/Padre/Wx/FBP/Replace.pm:169 msgid "&Replace" msgstr "&Remplacer" #: lib/Padre/Wx/Dialog/RegexEditor.pm:249 msgid "&Replace text with:" msgstr "&Remplacer le texte par:" #: lib/Padre/Wx/FBP/Preferences.pm:1232 #: lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "&Réinitialiser" #: lib/Padre/Wx/ActionLibrary.pm:1648 msgid "&Reset Font Size" msgstr "&Réinitialiser la taille de la police" #: lib/Padre/Wx/Dialog/RegexEditor.pm:259 msgid "&Result from replace:" msgstr "&Résultat du remplacement :" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "&Lancer" #: lib/Padre/Wx/ActionLibrary.pm:1942 msgid "&Run Script" msgstr "&Lancer le script" #: lib/Padre/Wx/ActionLibrary.pm:413 #: lib/Padre/Wx/FBP/Preferences.pm:1536 msgid "&Save" msgstr "&Enregistrer" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&Enregistrer la session automatiquement" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "&Référence Scintilla" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "&Rechercher" #: lib/Padre/Wx/ActionLibrary.pm:2479 msgid "&Search Help" msgstr "&Recherche dans l'aide" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "&Sélectionner" #: lib/Padre/Wx/Dialog/OpenResource.pm:205 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&Sélectionner un item à ouvrir (? = n'importe quel caractère, * = n'importe quelle chaîne)" #: lib/Padre/Wx/Main.pm:4713 msgid "&Select files to reload:" msgstr "&Sélectionner les fichiers à recharger :" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "Définir" #: lib/Padre/Wx/Dialog/PluginManager.pm:94 #, fuzzy msgid "&Show Error Message" msgstr "&Montrer le message d'erreur" #: lib/Padre/Wx/ActionLibrary.pm:918 msgid "&Snippets..." msgstr "&Extraits..." #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "Démarrer/Arrêter sub trace" #: lib/Padre/Wx/ActionLibrary.pm:2024 msgid "&Stop Execution" msgstr "&Arrêter l'exécution" #: lib/Padre/Wx/ActionLibrary.pm:943 msgid "&Toggle Comment" msgstr "Dé/commen&ter" #: lib/Padre/Wx/Menu/Tools.pm:199 msgid "&Tools" msgstr "&Outils" #: lib/Padre/Wx/ActionLibrary.pm:2581 msgid "&Translate Padre..." msgstr "&Traduire Padre..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:174 msgid "&Type a menu item name to access:" msgstr "&Taper un nom d'item de menu à accéder :" #: lib/Padre/Wx/ActionLibrary.pm:968 msgid "&Uncomment" msgstr "Dé-&commenter" #: lib/Padre/Wx/ActionLibrary.pm:587 msgid "&Undo" msgstr "&Annuler" #: lib/Padre/Wx/ActionLibrary.pm:1085 msgid "&Upper All" msgstr "Tout mettre en m&ajuscules" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Valeur :" #: lib/Padre/Wx/Menu/View.pm:247 msgid "&View" msgstr "&Affichage" #: lib/Padre/Wx/Menu/View.pm:101 msgid "&View Document As..." msgstr "&Voir le document en tant que..." #: lib/Padre/Wx/ActionLibrary.pm:2539 msgid "&Win32 Questions (English)" msgstr "Questions &Win32 (anglais)" #: lib/Padre/Wx/Menu/Window.pm:82 msgid "&Window" msgstr "Fenê&tre" #: lib/Padre/Wx/ActionLibrary.pm:1615 msgid "&Word-Wrap File" msgstr "&Retour à la ligne" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "Référence wxWidgets %s" #: lib/Padre/Wx/Panel/Debugger.pm:625 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "« %s » ne ressemble pas à une variable. Sélectionnez une variable dans le code avant de réessayer." #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "(Re)load &Current Plug-in" msgstr "(Re)charger l'extension actuelle" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(depuis Perl v%s)" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "(Non défini)" #: lib/Padre/PluginManager.pm:769 msgid "(core)" msgstr "(core)" #: lib/Padre/Wx/Dialog/About.pm:153 msgid "(disabled)" msgstr "(désactivé)" #: lib/Padre/Wx/Dialog/About.pm:161 msgid "(unsupported)" msgstr "(non supporté)" #: lib/Padre/Wx/FBP/Preferences.pm:1165 #: lib/Padre/Wx/FBP/Preferences.pm:1179 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/VCS.pm:335 msgid ", " msgstr "" #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:256 msgid ". Return to the executed line." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "7-bit US-ASCII character" msgstr "Caractère US-ASCII 7 bits" #: lib/Padre/Wx/CPAN.pm:514 #, perl-format msgid "Loading %s..." msgstr "Chargement de %s..." #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "Un dialogue" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "A comment" msgstr "Un commentaire" #: lib/Padre/Wx/Dialog/RegexEditor.pm:125 msgid "A group" msgstr "Un groupe" #: lib/Padre/Config.pm:485 msgid "A new empty file" msgstr "Un nouveau fichier vide" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Un ensemble d'outils utilisés par les développeurs Padre\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "A word boundary" msgstr "Frontière de mot" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/FBP/About.pm:296 msgid "Aaron Trevena" msgstr "Aaron Trevena" #: lib/Padre/Wx/FBP/About.pm:29 #: lib/Padre/Plugin/PopularityContest.pm:211 msgid "About" msgstr "À propos..." #: lib/Padre/Wx/CPAN.pm:221 msgid "Abstract" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:47 #: lib/Padre/Wx/Dialog/Preferences.pm:170 msgid "Action" msgstr "Action" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Action : %s" #: lib/Padre/Wx/FBP/About.pm:122 msgid "Adam Kennedy" msgstr "Adam Kennedy" #: lib/Padre/Wx/FBP/Preferences.pm:303 msgid "Add another closing bracket if there already is one" msgstr "Ajouter une parenthèse fermante supplémentaire s'il y en a déjà une (et que la fonction auto-parenthèse est activée)" #: lib/Padre/Wx/VCS.pm:515 msgid "Add file to repository?" msgstr "Ajouter le fichier au dépôt ?" #: lib/Padre/Wx/VCS.pm:246 #: lib/Padre/Wx/VCS.pm:260 msgid "Added" msgstr "Ajouté" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Paramètres avancés" #: lib/Padre/Wx/FBP/Patch.pm:70 msgid "Against" msgstr "Par rapport à" #: lib/Padre/Wx/FBP/About.pm:128 #: lib/Padre/Wx/FBP/About.pm:337 msgid "Ahmad Zawawi" msgstr "Ahmad Zawawi" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Alarm" msgstr "Alerte" #: lib/Padre/Wx/FBP/About.pm:200 msgid "Alexandr Ciornii" msgstr "Alexandr Ciornii" #: lib/Padre/Wx/Syntax.pm:83 msgid "Alien Error" msgstr "Erreur externe" #: lib/Padre/Wx/ActionLibrary.pm:1768 msgid "Align a selection of text to the same left column." msgstr "Aligner à gauche la sélection de texte." #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "Tout" #: lib/Padre/Wx/Main.pm:4436 #: lib/Padre/Wx/Main.pm:4437 #: lib/Padre/Wx/Main.pm:4800 #: lib/Padre/Wx/Main.pm:6027 #: lib/Padre/Wx/Choice/Files.pm:19 msgid "All Files" msgstr "Tous les fichiers" #: lib/Padre/Document/Perl.pm:549 msgid "All braces appear to be matched" msgstr "Toutes les parenthèses semblent balancées" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Allow the selection of another name to save the current document" msgstr "Permettre l'enregistrement du document courant sous un autre nom" #: lib/Padre/Wx/Dialog/RegexEditor.pm:83 msgid "Alphabetic characters" msgstr "Alphabétique" #: lib/Padre/Config.pm:582 msgid "Alphabetical Order" msgstr "Ordre alphabétique" #: lib/Padre/Config.pm:583 msgid "Alphabetical Order (Private Last)" msgstr "Ordre alphabétique (privé en dernier)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphanumeric characters" msgstr "Alphanumérique" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Alphanumeric characters plus \"_\"" msgstr "Alphanumérique ou \"_\"" #: lib/Padre/Wx/FBP/Preferences.pm:1157 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:113 msgid "Alternation" msgstr "Alternation" #: lib/Padre/Wx/FBP/About.pm:478 msgid "Amir E. Aharoni" msgstr "Amir E. Aharoni" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Andrew Bramble" msgstr "Andrew Bramble" #: lib/Padre/Wx/FBP/About.pm:631 msgid "Andrew Shitov" msgstr "Andrew Shitov" #: lib/Padre/Wx/Dialog/RegexEditor.pm:71 msgid "Any character except a newline" msgstr "N'importe quel caractère sauf un saut de ligne" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any decimal digit" msgstr "N'importe quel chiffre décimal" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any non-digit" msgstr "Tout sauf un chiffre décimal" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any non-whitespace character" msgstr "Tout sauf un blanc" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any non-word character" msgstr "Tout caractère sauf un \"word\"" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any whitespace character" msgstr "N'importe quel blanc" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any word character" msgstr "N'importe quel caractère \"word\"" #: lib/Padre/Wx/FBP/Preferences.pm:1921 msgid "Appearance" msgstr "Apparence" #: lib/Padre/Wx/FBP/Preferences.pm:822 msgid "Appearance Preview" msgstr "Aperçu" #: lib/Padre/Wx/ActionLibrary.pm:804 msgid "Apply one of the quick fixes for the current document" msgstr "Appliquer une correction rapide au document courant" #: lib/Padre/Locale.pm:157 #: lib/Padre/Wx/FBP/About.pm:328 msgid "Arabic" msgstr "Arabe" #: lib/Padre/Wx/ActionLibrary.pm:487 msgid "Ask for a session name and save the list of files currently opened" msgstr "Demande un nom de session et sauvegarde la liste des fichiers actuellement ouverts" #: lib/Padre/Wx/ActionLibrary.pm:568 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Demander si les fichiers non sauvegardés doivent l'être et terminer Padre" #: lib/Padre/Wx/ActionLibrary.pm:1904 msgid "Assign the selected expression to a newly declared variable" msgstr "Assigner l'expression sélectionnée à une nouvelle variable" #: lib/Padre/Wx/Outline.pm:365 msgid "Attributes" msgstr "Attributs" #: lib/Padre/Wx/FBP/Sync.pm:290 msgid "Authentication" msgstr "Authentification" #: lib/Padre/Wx/VCS.pm:55 #: lib/Padre/Wx/CPAN.pm:212 msgid "Author" msgstr "Auteur :" #: lib/Padre/Wx/FBP/Preferences.pm:328 msgid "Auto-fold POD markup when code folding enabled" msgstr "Replier le POD automatiquement" #: lib/Padre/Wx/FBP/Preferences.pm:1922 #, fuzzy msgid "Autocomplete" msgstr "Auto&complétion" #: lib/Padre/Wx/FBP/Preferences.pm:200 msgid "Autocomplete always while typing" msgstr "Activer l'auto-complétion lors de la frappe" #: lib/Padre/Wx/FBP/Preferences.pm:295 msgid "Autocomplete brackets" msgstr "Auto-compléter les parenthèses" #: lib/Padre/Wx/FBP/Preferences.pm:216 msgid "Autocomplete new functions in scripts" msgstr "Auto-compléter les nouvelles fonctions dans les scripts" #: lib/Padre/Wx/FBP/Preferences.pm:208 msgid "Autocomplete new methods in packages" msgstr "Auto-compléter les nouvelles méthodes dans les packages" #: lib/Padre/Wx/Main.pm:3696 msgid "Autocompletion error" msgstr "Erreur d'auto-complétion" #: lib/Padre/Wx/FBP/Preferences.pm:1057 msgid "Autoindent" msgstr "Auto-indentation" #: lib/Padre/Wx/StatusBar.pm:268 msgid "Background Tasks are running" msgstr "Les tâches de fond sont en cours d'exécution" #: lib/Padre/Wx/StatusBar.pm:269 msgid "Background Tasks are running with high load" msgstr "Les tâches de fond sont en cours d'exécution sous forte charge" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Backreference to the nth group" msgstr "Référence arrière au n-ième groupe" #: lib/Padre/Wx/Dialog/Preferences.pm:28 msgid "Backspace" msgstr "Retour arrière" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Beginning of line" msgstr "Début de ligne" #: lib/Padre/Wx/FBP/Preferences.pm:1924 msgid "Behaviour" msgstr "Comportement" #: lib/Padre/MIME.pm:887 msgid "Binary File" msgstr "Fichier binaire" #: lib/Padre/Wx/FBP/About.pm:308 msgid "Blake Willmarth" msgstr "Blake Willmarth" #: lib/Padre/Wx/FBP/SLOC.pm:91 msgid "Blank Lines:" msgstr "Lignes vides :" #: lib/Padre/Wx/FBP/Preferences.pm:844 msgid "Bloat Reduction" msgstr "Dépollution" #: lib/Padre/Wx/FBP/About.pm:93 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "" "L'image « Papillon bleu sur une feuille verte » est basée sur le travail\n" "de Jerry Charlotte (blackbutterfly)" #: lib/Padre/Wx/FBP/Bookmarks.pm:29 msgid "Bookmarks" msgstr "Signets" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Booléen" #: lib/Padre/Config.pm:61 msgid "Bottom Panel" msgstr "Panneau du bas" #: lib/Padre/Wx/FBP/Preferences.pm:278 #, fuzzy msgid "Brace Assist" msgstr "Aide pour les parenthèses" #: lib/Padre/Wx/Panel/Breakpoints.pm:55 msgid "Breakpoints" msgstr "Points d'arrêt" #: lib/Padre/Wx/FBP/About.pm:170 #: lib/Padre/Wx/FBP/About.pm:589 msgid "Breno G. de Oliveira" msgstr "Breno G. de Oliveira" #: lib/Padre/Wx/FBP/About.pm:212 msgid "Brian Cassidy" msgstr "Brian Cassidy" #: lib/Padre/Wx/FBP/VCS.pm:83 msgid "Bring changes from the repository into the working copy" msgstr "Récupérer les changements du dépôt dans la copie locale" #: lib/Padre/Wx/ActionLibrary.pm:196 msgid "Browse directory of the current document to open one or several files" msgstr "Navigue dans le répertoire du document courant pour ouvrir des fichiers" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Browse the directory of the installed examples to open one file" msgstr "Naviguer dans le répertoire des exemples installés" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "Navigateur : pas de visualisation pour %s" #: lib/Padre/Wx/ActionLibrary.pm:1982 msgid "Builds the current project, then run all tests." msgstr "Build le projet courant, puis lance les tests." #: lib/Padre/Wx/FBP/About.pm:236 #: lib/Padre/Wx/FBP/About.pm:646 msgid "Burak Gursoy" msgstr "Burak Gursoy" #: lib/Padre/Wx/ActionLibrary.pm:2504 msgid "C&urrent Document" msgstr "&Document courant" #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "CHANGED" msgstr "MODIFIÉ" #: lib/Padre/Wx/CPAN.pm:101 #: lib/Padre/Wx/FBP/Preferences.pm:421 msgid "CPAN Explorer" msgstr "Explorateur CPAN" #: lib/Padre/Wx/FBP/Preferences.pm:915 #, fuzzy msgid "CPAN Explorer Tool" msgstr "Explorateur CPAN" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/Snippet.pm:135 #: lib/Padre/Wx/FBP/FindInFiles.pm:162 #: lib/Padre/Wx/FBP/Bookmarks.pm:127 #: lib/Padre/Wx/FBP/Find.pm:136 #: lib/Padre/Wx/FBP/Special.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:180 #: lib/Padre/Wx/FBP/Replace.pm:202 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "Annuler" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "Ne peut pas trouver d'exécutable Python dans le PATH" #: lib/Padre/Document/Ruby.pm:54 msgid "Cannot find ruby executable in your PATH" msgstr "Ne peut pas trouver d'exécutable Ruby dans le PATH" #: lib/Padre/Wx/Main.pm:4089 #, perl-format msgid "Cannot open a directory: %s" msgstr "Ne peut ouvrir le répertoire : %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "Ne peut placer un signet dans un document non sauvegardé" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Case-insensitive matching" msgstr "&Insensible à la casse" #: lib/Padre/Wx/FBP/About.pm:206 #: lib/Padre/Wx/FBP/About.pm:568 msgid "Cezary Morga" msgstr "Cezary Morga" #: lib/Padre/Wx/FBP/Preferences.pm:1259 msgid "Change Detection" msgstr "Détection de changement" #: lib/Padre/Wx/FBP/Preferences.pm:939 msgid "Change Font Size (Outside Preferences)" msgstr "Modifier la taille de police (préférences externes)" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "Change the current selection to lower case" msgstr "Convertir la sélection courante en minuscules" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Change the current selection to upper case" msgstr "Convertir la sélection courante en majuscules" #: lib/Padre/Wx/ActionLibrary.pm:982 msgid "Change the encoding of the current document to the default of the operating system" msgstr "Changer l'encodage du document courant à la valeur par défaut du système" #: lib/Padre/Wx/ActionLibrary.pm:992 msgid "Change the encoding of the current document to utf-8" msgstr "Changer l'encodage du document courant en utf-8" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "Utiliser le caractère de fin de ligne de Mac Classic pour le document courant" #: lib/Padre/Wx/ActionLibrary.pm:1022 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "Utiliser le caractère de fin de ligne de Unix, Linux ou MacOS X pour le document courant" #: lib/Padre/Wx/ActionLibrary.pm:1012 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "Utiliser le caractère de fin de ligne de MS Windows pour le document courant" #: lib/Padre/Document/Perl.pm:1517 msgid "Change variable style" msgstr "Modifier le style de variable" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Change variable style from camelCase to Camel_Case" msgstr "Changer le nom de la variable de casseChameau en Casse_Chameau" #: lib/Padre/Wx/ActionLibrary.pm:1849 msgid "Change variable style from camelCase to camel_case" msgstr "Changer le nom de la variable de casseChameau en mots_soulignés" #: lib/Padre/Wx/ActionLibrary.pm:1835 msgid "Change variable style from camel_case to CamelCase" msgstr "Changer le nom de la variable de mots_soulignés en CasseChameau" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "Change variable style from camel_case to camelCase" msgstr "Changer le nom de la variable de mots_soulignés en casseChameau" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "Change variable to &camelCase" msgstr "&casseChameau" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Change variable to &using_underscores" msgstr "mots_et_&souligné" #: lib/Padre/Wx/ActionLibrary.pm:1834 msgid "Change variable to C&amelCase" msgstr "C&asseChameau" #: lib/Padre/Wx/ActionLibrary.pm:1862 msgid "Change variable to U&sing_Underscores" msgstr "Mots_et_S&oulignés" #: lib/Padre/Wx/Dialog/RegexEditor.pm:69 msgid "Character classes" msgstr "Classes de caractères" #: lib/Padre/Wx/Dialog/Goto.pm:343 msgid "Character position" msgstr "Position du caractère" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Character set" msgstr "Un ensemble de caractères" #: lib/Padre/Wx/FBP/Document.pm:174 msgid "Characters (All)" msgstr "Caractères (tous)" #: lib/Padre/Wx/FBP/Document.pm:192 msgid "Characters (Visible)" msgstr "Caractères (visibles)" #: lib/Padre/Document/Perl.pm:550 msgid "Check Complete" msgstr "Vérification terminée" #: lib/Padre/Document/Perl.pm:619 #: lib/Padre/Document/Perl.pm:675 #: lib/Padre/Document/Perl.pm:694 msgid "Check cancelled" msgstr "Vérification annulée" #: lib/Padre/Wx/ActionLibrary.pm:1707 msgid "Check the current file for common beginner errors" msgstr "Vérifie les erreurs classiques (de débutant) dans ce fichier" #: lib/Padre/Locale.pm:431 msgid "Chinese" msgstr "Chinois" #: lib/Padre/Locale.pm:441 #: lib/Padre/Wx/FBP/About.pm:343 msgid "Chinese (Simplified)" msgstr "Chinois (simplifié)" #: lib/Padre/Locale.pm:451 #: lib/Padre/Wx/FBP/About.pm:364 msgid "Chinese (Traditional)" msgstr "Chinois (traditionnel)" #: lib/Padre/Wx/Main.pm:4308 #: lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "Sélectionner un fichier" #: lib/Padre/Wx/FBP/About.pm:218 msgid "Chris Dolan" msgstr "Chris Dolan" #: lib/Padre/Wx/FBP/About.pm:358 msgid "Chuanren Wu" msgstr "Chuanren Wu" #: lib/Padre/Wx/FBP/About.pm:272 msgid "Claudio Ramirez" msgstr "Claudio Ramirez" #: lib/Padre/Wx/FBP/Preferences.pm:677 msgid "Clean up file content on saving (for supported document types)" msgstr "Nettoyer le contenu du fichier lors de la sauvegarde (types de document supportés)" #: lib/Padre/Wx/Dialog/OpenResource.pm:221 msgid "Click on the arrow for filter settings" msgstr "Cliquez sur la flèche pour les paramètres de filtrage" #: lib/Padre/Wx/FBP/Patch.pm:120 #: lib/Padre/Wx/FBP/Text.pm:56 #: lib/Padre/Wx/FBP/PluginManager.pm:128 #: lib/Padre/Wx/FBP/About.pm:672 #: lib/Padre/Wx/FBP/SLOC.pm:176 #: lib/Padre/Wx/FBP/Sync.pm:253 #: lib/Padre/Wx/FBP/Diff.pm:94 #: lib/Padre/Wx/FBP/Document.pm:254 #: lib/Padre/Wx/FBP/SessionManager.pm:119 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:279 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "Fermer" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close &Files..." msgstr "Fermer les fichiers..." #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close &all Files" msgstr "Fermer tous les fichiers" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close &this Project" msgstr "Fermer ce &projet" #: lib/Padre/Wx/Main.pm:5221 msgid "Close all" msgstr "Tout fermer" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all &other Files" msgstr "Fermer tous les autres fichiers" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Fermer tous les fichiers appartenant au projet courant" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Fermer tous les fichiers sauf le document courant" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Fermer tous les fichiers ouverts dans l'éditeur" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Fermer tous les fichiers n'appartenant pas au projet courant" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "Fermer le document courant" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Close current document and remove the file from disk" msgstr "Ferme le document et supprime le fichier" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other &Projects" msgstr "Fermer les &autres projets" #: lib/Padre/Wx/Main.pm:5289 msgid "Close some" msgstr "Fermer" #: lib/Padre/Wx/Main.pm:5267 msgid "Close some files" msgstr "Fermer des fichiers" #: lib/Padre/Wx/ActionLibrary.pm:1683 msgid "Close the highest priority dialog or panel" msgstr "Ferme le panneau de plus haute priorité (touche Échap)" #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "Fermer cette fenêtre" #: lib/Padre/Wx/FBP/SLOC.pm:67 msgid "Code Lines:" msgstr "Lignes de code :" #: lib/Padre/Config.pm:581 msgid "Code Order" msgstr "Ordre du code" #: lib/Padre/Wx/FBP/FoundInFiles.pm:91 #, fuzzy msgid "Collapse All" msgstr "Tout réduire" #: lib/Padre/Wx/FBP/Preferences.pm:144 msgid "Coloured text in output window (ANSI)" msgstr "Texte coloré (ANSI) dans la fenêtre de résultat" #: lib/Padre/Wx/ActionLibrary.pm:1927 msgid "Combine scattered POD at the end of the document" msgstr "Rassembler le POD éparpillé à la fin du document" #: lib/Padre/Wx/Command.pm:97 msgid "Command" msgstr "Commande" #: lib/Padre/Wx/Main.pm:2724 msgid "Command line" msgstr "Ligne de commande" #: lib/Padre/Wx/FBP/Preferences.pm:555 msgid "Command line files open in existing Padre instance" msgstr "Ouvrir dans un Padre existant les fichiers donnés sur la ligne de commande" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "Comment out selected lines or the current line" msgstr "Commenter les lignes sélectionnées" #: lib/Padre/Wx/ActionLibrary.pm:944 msgid "Comment out/remove comment for selected lines or the current line" msgstr "Dé/Commenter les lignes sélectionnées dans le document" #: lib/Padre/Wx/FBP/SLOC.pm:79 msgid "Comments Lines:" msgstr "Lignes de commentaires :" #: lib/Padre/Wx/VCS.pm:495 msgid "Commit file/directory to repository?" msgstr "Envoyer le fichier/répertoire sur le dépôt ?" #: lib/Padre/Wx/Dialog/About.pm:119 msgid "Config" msgstr "Répertoire de configuration :" #: lib/Padre/Wx/FBP/Sync.pm:134 #: lib/Padre/Wx/FBP/Sync.pm:163 msgid "Confirm:" msgstr "Confirmer :" #: lib/Padre/Wx/VCS.pm:249 msgid "Conflicted" msgstr "En conflit" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "Connexion au serveur FTP %s..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Connexion au serveur FTP réussie." #: lib/Padre/Wx/FBP/SLOC.pm:103 msgid "Constructive Cost Model (COCOMO)" msgstr "Constructive Cost Model (COCOMO)" #: lib/Padre/Wx/FBP/Preferences.pm:183 msgid "Content Assist" msgstr "Type de contenu" #: lib/Padre/Config.pm:789 msgid "Contents of the status bar" msgstr "Contenu de la barre d'état" #: lib/Padre/Config.pm:534 msgid "Contents of the window title" msgstr "Contenu du titre de la fenêtre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Control character" msgstr "Caractère de contrôle" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Control characters" msgstr "Caractères de contrôle" #: lib/Padre/Wx/Menu/Edit.pm:188 msgid "Convert &Encoding (broken)" msgstr "Convertir l'&encodage (défectueux)" #: lib/Padre/Wx/Menu/Edit.pm:210 msgid "Convert &Line Endings" msgstr "Convertir les &fin de ligne" #: lib/Padre/Wx/ActionLibrary.pm:1044 msgid "Convert all tabs to spaces in the current document" msgstr "Convertir toutes les tabulations en espaces dans le document courant" #: lib/Padre/Wx/ActionLibrary.pm:1054 msgid "Convert all the spaces to tabs in the current document" msgstr "Convertir tous les espaces en tabulations dans le document courant" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "Co&pies spéciales" #: lib/Padre/Wx/VCS.pm:263 msgid "Copied" msgstr "Copié" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "&Copier" #: lib/Padre/Wx/ActionLibrary.pm:734 msgid "Copy &Directory Name" msgstr "Copier le nom du &répertoire" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "Copy Editor &Content" msgstr "Copier le c&ontenu de l'éditeur" #: lib/Padre/Wx/ActionLibrary.pm:719 msgid "Copy F&ilename" msgstr "Copier le nom du &fichier" #: lib/Padre/Wx/ActionLibrary.pm:704 msgid "Copy Full &Filename" msgstr "Copier le &chemin du fichier" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Copier le nom" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Copier la valeur" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Copy filename to clipboard" msgstr "Copie le nom de fichier dans le presse-papier" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Copy the current tab into a new document" msgstr "Copier le document courant dans un nouvel onglet" #: lib/Padre/Wx/FBP/About.pm:87 msgid "" "Copyright 2008–2012 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "Copyright 2008–2012 The Padre Development Team. Padre est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les mêmes termes que Perl 5." #: lib/Padre/Wx/Directory/TreeCtrl.pm:197 #, perl-format msgid "Could not create: '%s': %s" msgstr "Ne peut pas créer: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, perl-format msgid "Could not delete: '%s': %s" msgstr "Ne peut pas supprimer: '%s': %s" #: lib/Padre/Wx/Panel/Debugger.pm:603 #, perl-format msgid "Could not evaluate '%s'" msgstr "Ne peut pas évaluer '%s'" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "KDE ou Gnome introuvables" #: lib/Padre/Wx/Dialog/HelpSearch.pm:312 msgid "Could not find a help provider for " msgstr "Ne peut pas trouver le fournisseur d'aide pour" #: lib/Padre/Wx/Main.pm:4296 #, perl-format msgid "Could not find file '%s'" msgstr "Ne peut pas trouver le fichier '%s'" #: lib/Padre/Wx/Main.pm:2790 msgid "Could not find perl executable" msgstr "Ne peut pas trouver d'exécutable perl" #: lib/Padre/Wx/Main.pm:2760 #: lib/Padre/Wx/Main.pm:2821 #: lib/Padre/Wx/Main.pm:2875 msgid "Could not find project root" msgstr "Ne peut pas trouver le répertoire racine du projet" #: lib/Padre/Wx/ActionLibrary.pm:2262 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "Ne peut pas trouver l'extension Padre::Plugin::My" #: lib/Padre/PluginManager.pm:894 msgid "Could not locate project directory." msgstr "Ne peut pas trouver le répertoire projet." #: lib/Padre/Wx/Main.pm:4606 #, perl-format msgid "Could not reload file: %s" msgstr "Ne peut pas recharger le fichier: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:178 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr "Ne peut renommer « %s » en « %s » : %s" #: lib/Padre/Wx/Main.pm:5043 msgid "Could not save file: " msgstr "Ne peut pas enregistrer le fichier:" #: lib/Padre/Wx/CPAN.pm:230 #, fuzzy msgid "Count" msgstr "Tout compter" #: lib/Padre/Wx/Directory/TreeCtrl.pm:290 #: lib/Padre/Wx/Directory/TreeCtrl.pm:349 msgid "Create Directory" msgstr "Créer un dossier" #: lib/Padre/Wx/ActionLibrary.pm:1793 msgid "Create Project &Tagsfile" msgstr "Créer le fichier de &tags du projet" #: lib/Padre/Wx/ActionLibrary.pm:1296 msgid "Create a bookmark in the current file current row" msgstr "Créer un signet dans le document courant à la ligne courante" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by Gábor Szabó" msgstr "Créé par Gábor Szabó" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "Crée un perltags - fichier du projet courant pour soutenir find_method et autocomplete." #: lib/Padre/Wx/FBP/Preferences.pm:1149 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:673 msgid "Cu&t" msgstr "Co&uper" #: lib/Padre/Document/Perl.pm:693 #, perl-format msgid "Current '%s' not found" msgstr "'%s' courant introuvable" #: lib/Padre/Wx/Dialog/OpenResource.pm:244 msgid "Current Directory: " msgstr "Répertoire courant :" #: lib/Padre/Document/Perl.pm:674 msgid "Current cursor does not seem to point at a method" msgstr "Le curseur ne semble pas pointer sur une méthode" #: lib/Padre/Document/Perl.pm:618 #: lib/Padre/Document/Perl.pm:652 msgid "Current cursor does not seem to point at a variable" msgstr "Le curseur ne semble pas pointer sur une variable" #: lib/Padre/Document/Perl.pm:814 #: lib/Padre/Document/Perl.pm:864 #: lib/Padre/Document/Perl.pm:901 msgid "Current cursor does not seem to point at a variable." msgstr "Le curseur ne semble pas pointer sur une variable." #: lib/Padre/Wx/Main.pm:2815 #: lib/Padre/Wx/Main.pm:2866 msgid "Current document has no filename" msgstr "Le document courant n'a pas de nom de fichier" #: lib/Padre/Wx/Main.pm:2869 msgid "Current document is not a .t file" msgstr "Le document courant n'est pas un fichier .t" #: lib/Padre/Wx/VCS.pm:204 msgid "Current file is not in a version control system" msgstr "Le fichier n'est pas enregistré dans un système de gestion de versions" #: lib/Padre/Wx/VCS.pm:195 msgid "Current file is not saved in a version control system" msgstr "Le fichier actuel n'est pas enregistré dans un système de gestion de versions" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "Numéro de ligne actuel: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "Position actuelle: %s" #: lib/Padre/Wx/FBP/Preferences.pm:727 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "Clignotement du curseur (millisecondes ; 0 = aucun ; 500 = défaut)" #: lib/Padre/Wx/ActionLibrary.pm:1878 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "Coupe la sélection courante et crée une nouvelle fonction avec. Un appel à cette fonction sera ajouté à la place de cette sélection." #: lib/Padre/Locale.pm:167 #: lib/Padre/Wx/FBP/About.pm:379 msgid "Czech" msgstr "Tchèque" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "D&uplicate" msgstr "D&upliquer" #: lib/Padre/Wx/Dialog/WindowList.pm:355 msgid "DELETED" msgstr "SUPPRIMÉ" #: lib/Padre/Locale.pm:177 msgid "Danish" msgstr "Danois" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "Date/Heure" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:370 msgid "Debug" msgstr "Débug" #: lib/Padre/Wx/Panel/DebugOutput.pm:50 msgid "Debug Output" msgstr "Sortie de débogage" #: lib/Padre/Wx/FBP/Debugger.pm:552 msgid "Debug-Output Options" msgstr "" #: lib/Padre/Wx/Panel/Debugger.pm:61 msgid "Debugger" msgstr "Débugger" #: lib/Padre/Wx/Panel/Debugger.pm:254 msgid "Debugger is already running" msgstr "Le débugger est déjà lancé" #: lib/Padre/Wx/Panel/Debugger.pm:323 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "Le lancement du débogage a échoué. Avez-vous d'abord vérifié la syntaxe du programme ?" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "Défaut" #: lib/Padre/Wx/FBP/Preferences.pm:588 msgid "Default Newline Format:" msgstr "Type de fin de ligne par défaut :" #: lib/Padre/Wx/FBP/Preferences.pm:603 msgid "Default Project Directory:" msgstr "Répertoire par défaut des projets :" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Par défaut :" #: lib/Padre/Wx/FBP/Preferences.pm:636 msgid "Default word wrap on for each file" msgstr "Retour à la ligne automatique pour chaque fichier" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "Retarder la queue d'actions de 1 seconde" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "Retarder la queue d'action de 10 secondes" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "Retarder la queue d'actions de 30 secondes" #: lib/Padre/Wx/FBP/Sync.pm:236 #: lib/Padre/Wx/Directory/TreeCtrl.pm:379 #: lib/Padre/Wx/Dialog/Preferences.pm:36 msgid "Delete" msgstr "Supprimer" #: lib/Padre/Wx/FBP/Bookmarks.pm:111 msgid "Delete &All" msgstr "&Tout supprimer" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Delete &Leading Spaces" msgstr "Supprimer les espaces en début de ligne" #: lib/Padre/Wx/Directory/TreeCtrl.pm:266 msgid "Delete Directory" msgstr "Supprimer le répertoire" #: lib/Padre/Wx/Directory/TreeCtrl.pm:325 msgid "Delete File" msgstr "Supprimer le fichier" #: lib/Padre/Wx/FBP/Breakpoints.pm:43 msgid "" "Delete MARKER_NOT_BREAKABLE\n" "Current File Only" msgstr "" #: lib/Padre/Wx/FBP/SessionManager.pm:103 msgid "Delete Session" msgstr "Supprimer la session" #: lib/Padre/Wx/FBP/Breakpoints.pm:138 msgid "Delete all project Breakpoints" msgstr "Supprimer tous les points d'arrêt" #: lib/Padre/Wx/VCS.pm:534 msgid "Delete file from repository??" msgstr "Supprimer le répertoire du dépôt??" #: lib/Padre/Wx/FBP/Preferences.pm:1218 msgid "Delete the keyboard binding" msgstr "Supprime le raccourci clavier" #: lib/Padre/Wx/VCS.pm:247 #: lib/Padre/Wx/VCS.pm:261 msgid "Deleted" msgstr "Supprimé" #: lib/Padre/Wx/Syntax.pm:53 msgid "Deprecation" msgstr "Dépréciation" #: lib/Padre/Wx/Dialog/Preferences.pm:171 #: lib/Padre/Wx/Dialog/SessionManager2.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "Description" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "Description :" #: lib/Padre/Wx/FBP/Preferences.pm:1520 msgid "Detect Perl 6 files" msgstr "Autodétection des fichiers Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1049 msgid "Detect indent settings for each file" msgstr "Détection automatique de l'indentation pour chaque fichier" #: lib/Padre/Wx/FBP/About.pm:849 msgid "Development" msgstr "Développement" #: lib/Padre/Wx/FBP/SLOC.pm:156 msgid "Development Cost (USD):" msgstr "Coût de développement (USD) :" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "Nom de signet manquant" #: lib/Padre/CPAN.pm:113 #: lib/Padre/CPAN.pm:137 msgid "Did not provide a distribution" msgstr "N'a pas fourni de distribution" #: lib/Padre/Wx/Dialog/Bookmarks.pm:94 msgid "Did not select a bookmark" msgstr "Pas de signet sélectionné" #: lib/Padre/Wx/FBP/Diff.pm:29 msgid "Diff" msgstr "Comparer" #: lib/Padre/Wx/Dialog/Patch.pm:488 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "Diff réalisé, vous devriez voir un nouvel onglet appelé %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Digits" msgstr "Chiffres" #: lib/Padre/Config.pm:637 msgid "Directories First" msgstr "Répertoires d'abord" #: lib/Padre/Config.pm:638 msgid "Directories Mixed" msgstr "Répertoires entre-mêlés" #: lib/Padre/Wx/Directory/TreeCtrl.pm:95 msgid "Directory" msgstr "Répertoire" #: lib/Padre/Wx/FBP/FindInFiles.pm:73 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:91 msgid "Directory:" msgstr "Dossier :" #: lib/Padre/Wx/FBP/About.pm:403 msgid "Dirk De Nijs" msgstr "" #: lib/Padre/PluginHandle.pm:27 msgid "Disabled" msgstr "Désactivé" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Disk" msgstr "Disque" #: lib/Padre/Wx/FBP/Debugger.pm:143 msgid "Display Value" msgstr "Afficher la valeur" #: lib/Padre/Wx/CPAN.pm:211 #: lib/Padre/Wx/CPAN.pm:220 #: lib/Padre/Wx/CPAN.pm:229 #: lib/Padre/Wx/Dialog/About.pm:139 msgid "Distribution" msgstr "Distribution" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "Ne plus afficher par la suite" #: lib/Padre/Wx/Main.pm:5407 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "Voulez-vous vraiment fermer et supprimer le fichier %s ?" #: lib/Padre/Wx/VCS.pm:514 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "Voulez vous ajouter « %s » au dépôt ?" #: lib/Padre/Wx/VCS.pm:494 msgid "Do you want to commit?" msgstr "Voulez-vous envoyer vers le dépôt (commit) ?" #: lib/Padre/Wx/Main.pm:3126 msgid "Do you want to continue?" msgstr "Voulez-vous continuer ?" #: lib/Padre/Wx/VCS.pm:533 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "Voulez-vous supprimer le fichier « %s » du dépôt ?" #: lib/Padre/Wx/Dialog/Preferences.pm:479 msgid "Do you want to override it with the selected action?" msgstr "Voulez-vous le remplacer par l'action sélectionnée ?" #: lib/Padre/Wx/VCS.pm:560 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "Voulez-vous annuler les changements sur « %s » ?" #: lib/Padre/Wx/FBP/Document.pm:123 msgid "Document" msgstr "Document" #: lib/Padre/Wx/FBP/Document.pm:67 msgid "Document Class" msgstr "Classe de document" #: lib/Padre/Wx/FBP/Document.pm:29 msgid "Document Information" msgstr "Information sur le document" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "Outils document" #: lib/Padre/Wx/FBP/Document.pm:55 msgid "Document Type" msgstr "Type de document" #: lib/Padre/Wx/Main.pm:6838 #, perl-format msgid "Document encoded to (%s)" msgstr "Document encodé en (%s)" #: lib/Padre/Wx/Dialog/Preferences.pm:32 msgid "Down" msgstr "Bas" #: lib/Padre/Wx/FBP/Sync.pm:219 msgid "Download" msgstr "Télécharger" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "Dumper l'objet Padre sur STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Dumpe l'objet Padre complet sur STDOUT pour tester / débugguer." #: lib/Padre/Locale.pm:351 #: lib/Padre/Wx/FBP/About.pm:394 msgid "Dutch" msgstr "Néerlandais" #: lib/Padre/Locale.pm:361 msgid "Dutch (Belgium)" msgstr "Néerlandais (Belgique)" #: lib/Padre/Wx/FBP/Debugger.pm:376 msgid "" "E\n" "Display all thread ids the current one will be identified: ." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1031 msgid "EOL to &Mac Classic" msgstr "Fins de ligne &Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1021 msgid "EOL to &Unix" msgstr "Fins de ligne &Unix" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "EOL to &Windows" msgstr "Fins de ligne &Windows" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:364 msgid "Edit" msgstr "Edition" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Edit user and host preferences" msgstr "Editer les préférences utilisateur" #: lib/Padre/Wx/Dialog/WindowList.pm:224 msgid "Editor" msgstr "Éditeur" #: lib/Padre/Wx/FBP/Preferences.pm:867 msgid "Editor Bookmark Support" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:875 msgid "Editor Code Folding" msgstr "Afficher les re&plis de code" #: lib/Padre/Wx/FBP/Preferences.pm:799 msgid "Editor Current Line Background Colour" msgstr "Couleur de fond de la ligne courante de l'éditeur :" #: lib/Padre/Wx/FBP/Preferences.pm:883 msgid "Editor Cursor Memory" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:907 msgid "Editor Diff Feature" msgstr "Fonctionnalité de diff intégré" #: lib/Padre/Wx/FBP/Preferences.pm:775 msgid "Editor Font" msgstr "Police de l'éditeur : " #: lib/Padre/Wx/FBP/Preferences.pm:619 msgid "Editor Options" msgstr "Options de l'éditeur" #: lib/Padre/Wx/FBP/Preferences.pm:891 msgid "Editor Session Support" msgstr "Support des sessions de l'éditeur" #: lib/Padre/Wx/FBP/Preferences.pm:693 #: lib/Padre/Wx/FBP/Preferences.pm:1925 msgid "Editor Style" msgstr "Style de l'éditeur" #: lib/Padre/Wx/FBP/Preferences.pm:899 msgid "Editor Syntax Annotations" msgstr "Annotations de syntaxe" #: lib/Padre/Wx/Dialog/Sync.pm:161 msgid "Email and confirmation do not match." msgstr "L'email et la confirmation ne concordent pas." #: lib/Padre/Wx/FBP/Sync.pm:75 #: lib/Padre/Wx/FBP/Sync.pm:120 msgid "Email:" msgstr "Email :" #: lib/Padre/Wx/Dialog/RegexEditor.pm:651 msgid "Empty regex" msgstr "Expression vide" #: lib/Padre/Wx/FBP/PluginManager.pm:96 msgid "Enable" msgstr "Activer" #: lib/Padre/Wx/FBP/Preferences.pm:1397 msgid "Enable Perl beginner mode" msgstr "Mode débutant Perl" #: lib/Padre/Wx/FBP/Preferences.pm:652 msgid "Enable Smart highlighting while typing" msgstr "Activer la coloration intelligente en tapant" #: lib/Padre/Config.pm:1420 msgid "Enable document differences feature" msgstr "(Dés)activer la fonctionnalité de différence entre documents" #: lib/Padre/Config.pm:1373 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "(Dés)active \"Exécuter avec Devel::EndStats\" si ce module est installé." #: lib/Padre/Config.pm:1392 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "(Dés)active \"Exécuter avec Devel::TraceUse\" si ce module est installé." #: lib/Padre/Config.pm:1411 msgid "Enable syntax checker annotations in the editor" msgstr "(Dés)active les annotations du vérificateur de syntaxe" #: lib/Padre/Config.pm:1438 msgid "Enable the CPAN Explorer, powered by MetaCPAN" msgstr "" #: lib/Padre/Config.pm:1456 msgid "Enable the experimental command line interface" msgstr "" #: lib/Padre/Config.pm:1429 #, fuzzy msgid "Enable version control system support" msgstr "(Dés)activer le support de systèmes de gestion de version" #: lib/Padre/PluginHandle.pm:28 #, fuzzy msgid "Enabled" msgstr "&Activer" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "Encode Document &to..." msgstr "Encoder le document &en..." #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Encode Document to &System Default" msgstr "Encoder le document selon le &défaut du système" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Encode Document to &utf-8" msgstr "Encoder le document en &UTF-8" #: lib/Padre/Wx/Main.pm:6860 msgid "Encode document to..." msgstr "Encoder le document en..." #: lib/Padre/Wx/Main.pm:6859 msgid "Encode to:" msgstr "Encoder en :" #: lib/Padre/Wx/FBP/Document.pm:91 msgid "Encoding" msgstr "Encodage" #: lib/Padre/Wx/Dialog/Preferences.pm:38 msgid "End" msgstr "Fin" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "End case modification/metacharacter quoting" msgstr "Fin de bloc de modification de casse ou d'échappement de méta-caractère" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "End of line" msgstr "Fin de ligne" #: lib/Padre/Locale.pm:197 msgid "English" msgstr "Anglais" #: lib/Padre/Locale.pm:125 msgid "English (Australia)" msgstr "Anglais (Australie)" #: lib/Padre/Locale.pm:206 msgid "English (Canada)" msgstr "Anglais (Canada)" #: lib/Padre/Locale.pm:215 msgid "English (New Zealand)" msgstr "Anglais (Nouvelle Zélande)" #: lib/Padre/Locale.pm:86 msgid "English (United Kingdom)" msgstr "Anglais (Royaume Uni)" #: lib/Padre/Locale.pm:226 msgid "English (United States)" msgstr "Anglais (Amérique)" #: lib/Padre/Wx/FBP/About.pm:616 msgid "Enrique Nell" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enter" msgstr "Entrée" #: lib/Padre/CPAN.pm:127 #, fuzzy msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Entez l'URL à installer\n" "ex : http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:214 msgid "Enter parts of the resource name to find it" msgstr "Entrez des portions du nom de la ressource pour la chercher" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "" #: lib/Padre/PluginHandle.pm:23 #: lib/Padre/Document.pm:454 #: lib/Padre/Wx/Editor.pm:939 #: lib/Padre/Wx/Main.pm:5044 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/PluginManager.pm:206 #: lib/Padre/Wx/Dialog/Sync.pm:85 #: lib/Padre/Wx/Dialog/Sync.pm:93 #: lib/Padre/Wx/Dialog/Sync.pm:106 #: lib/Padre/Wx/Dialog/Sync.pm:141 #: lib/Padre/Wx/Dialog/Sync.pm:152 #: lib/Padre/Wx/Dialog/Sync.pm:162 #: lib/Padre/Wx/Dialog/Sync.pm:180 #: lib/Padre/Wx/Dialog/Sync.pm:205 #: lib/Padre/Wx/Dialog/Sync.pm:216 #: lib/Padre/Wx/Dialog/Sync.pm:227 msgid "Error" msgstr "Erreur" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Erreur de connexion à %s:%s : %s" #: lib/Padre/Wx/Main.pm:5426 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "Erreur de suppression de %s :\n" "%s" #: lib/Padre/Wx/Main.pm:5637 msgid "Error loading perl filter dialog." msgstr "Erreur de chargement de la boîte de dialogue de filtre Perl." #: lib/Padre/Wx/Dialog/PluginManager.pm:134 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "Erreur lors du chargement du pod de la classe '%s' : %s" #: lib/Padre/Wx/Main.pm:5608 msgid "Error loading regex editor." msgstr "Erreur de chargement de l'éditeur de regex" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Erreur d'authentification sur %s:%s : %s" #: lib/Padre/Wx/Main.pm:6814 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "Erreur renvoyée par l'outil de filtre :\n" "%s" #: lib/Padre/Wx/Main.pm:6796 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Erreur lors de l'utilisation de l'outil de filtre :\n" "%s" #: lib/Padre/PluginManager.pm:837 #, fuzzy, perl-format msgid "Error when calling menu for plug-in %s: %s" msgstr "Erreur lors de l'appel du menu de l'extension" #: lib/Padre/Wx/Dialog/HelpSearch.pm:83 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "Erreur lors de l'appel de %s %s" #: lib/Padre/Document.pm:282 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Échec de détermination du type MIME.\n" "Peut-être un problème d'encodage.\n" "Ou bien essayez vous de charger un fichier binaire ?" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "Erreur de chargement de Aspect. Le module est-il installé ?" #: lib/Padre/Document.pm:232 msgid "Error while opening file: no file object" msgstr "Erreur lors de l'ouverture du fichier : aucun objet fichier" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Erreur de recherche de POD" #: lib/Padre/Wx/VCS.pm:445 msgid "Error while trying to perform Padre action" msgstr "Erreur en effectuant une action Padre" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:91 #: lib/Padre/Wx/Dialog/OpenResource.pm:119 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Erreur en effectuant une action Padre : %s" #: lib/Padre/Wx/Dialog/PerlFilter.pm:328 msgid "Error:\n" msgstr "Erreur :\n" #: lib/Padre/Document/Perl.pm:512 msgid "Error: " msgstr "Erreur :" #: lib/Padre/Wx/Main.pm:6132 #: lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "Erreur : %s" #: lib/Padre/Wx/Dialog/Preferences.pm:42 msgid "Escape" msgstr "Échap" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Escape (Esc)" msgstr "Échap" #: lib/Padre/Wx/Dialog/RegexEditor.pm:138 msgid "Escape characters" msgstr "Caractères d'échappement" #: lib/Padre/Wx/FBP/SLOC.pm:132 msgid "Estimated Project Years:" msgstr "" #: lib/Padre/Wx/FBP/Expression.pm:80 msgid "Evaluate" msgstr "Évaluer" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "Évaluer l'expression..." #: lib/Padre/Wx/FBP/Expression.pm:29 msgid "Evaluate Expression" msgstr "Évaluer l'expression..." #: lib/Padre/Wx/FBP/Debugger.pm:424 msgid "" "Evaluate expression\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Same as print {$DB::OUT} expr in the current package. In particular, because this is just Perl's own print function.\n" "\n" "x [maxdepth] expr\n" "Evaluates its expression in list context and dumps out the result in a pretty-printed fashion. Nested data structures are printed out recursively," msgstr "" #: lib/Padre/Wx/Main.pm:4817 msgid "Exist" msgstr "Existe" #: lib/Padre/Wx/FBP/Bookmarks.pm:63 #, fuzzy msgid "Existing Bookmarks:" msgstr "Signets existants " #: lib/Padre/Wx/FBP/FoundInFiles.pm:71 #, fuzzy msgid "Expand All" msgstr "Développer tout" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "Fonctionnalité expérimentale. Tapez '?' pour la liste de commande. Si ça ne marche pas, plaignez-vous à szabgab ! ;)\n" "\n" #: lib/Padre/Wx/FBP/Debugger.pm:503 #, fuzzy msgid "Expression To Evaluate" msgstr "Expression" #: lib/Padre/Wx/Dialog/RegexEditor.pm:484 msgid "Extended (&x)" msgstr "Étendue (%s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "Les expressions rationnelles étendues permettent un formatage libre (les espaces sont ignorés) et les commentaires" #: lib/Padre/Wx/ActionLibrary.pm:1876 msgid "Extract &Subroutine..." msgstr "Extraire la &fonction..." #: lib/Padre/Wx/ActionLibrary.pm:1889 msgid "Extract Subroutine" msgstr "Extraire la fonction" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "Mot de passe FTP" #: lib/Padre/Wx/Main.pm:4937 #, perl-format msgid "Failed to create path '%s'" msgstr "Erreur lors de la création du chemin '%s'" #: lib/Padre/Wx/Main.pm:1137 msgid "Failed to create server" msgstr "Erreur lors de la création du serveur" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "Échec de suppression du bloc POD" #: lib/Padre/PluginHandle.pm:402 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Désactivation de l'extension « %s » impossible : %s" #: lib/Padre/PluginHandle.pm:272 #: lib/Padre/PluginHandle.pm:299 #: lib/Padre/PluginHandle.pm:322 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Activation de l'extension « %s » impossible : %s" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "Erreur lors de l'exécution du processus\n" #: lib/Padre/Wx/ActionLibrary.pm:1228 msgid "Failed to find any matches" msgstr "Aucune concordance trouvée" #: lib/Padre/CPAN.pm:83 msgid "Failed to find your CPAN configuration" msgstr "N'a pas réussi à trouver votre configuration CPAN" #: lib/Padre/PluginManager.pm:916 #: lib/Padre/PluginManager.pm:1010 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Chargement de l'extension « %s » impossible\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "Échec de la fusion des blocs POD" #: lib/Padre/Wx/Main.pm:3058 #, perl-format msgid "Failed to start '%s' command" msgstr "Impossible de lancer la commande '%s'" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Faux" #: lib/Padre/Wx/Syntax.pm:65 msgid "Fatal Error" msgstr "Erreur fatale" #: lib/Padre/Wx/FBP/CPAN.pm:278 msgid "Favorite" msgstr "" #: lib/Padre/Wx/FBP/About.pm:176 #: lib/Padre/Wx/FBP/About.pm:352 msgid "Fayland Lam" msgstr "Fayland Lam" #: lib/Padre/Wx/FBP/Preferences.pm:1926 msgid "Features" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:363 #: lib/Padre/Wx/Dialog/WindowList.pm:223 #: lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "Fichiers" #: lib/Padre/Wx/Menu/File.pm:394 #, perl-format msgid "File %s not found." msgstr "Fichier %s introuvable." #: lib/Padre/Wx/FBP/Preferences.pm:1929 #, fuzzy msgid "File Handling" msgstr "Fichiers et couleurs" #: lib/Padre/Wx/FBP/Preferences.pm:391 #, fuzzy msgid "File Outline" msgstr "Profil" #: lib/Padre/Wx/FBP/Document.pm:210 msgid "File Size (Bytes)" msgstr "Taille du fichier (octets)" #: lib/Padre/Wx/FBP/FindInFiles.pm:106 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:124 #, fuzzy msgid "File Types:" msgstr "Types de fichier :" #: lib/Padre/Wx/Main.pm:4923 msgid "File already exists" msgstr "Le fichier existe déjà" #: lib/Padre/Wx/Main.pm:4816 msgid "File already exists. Overwrite it?" msgstr "Le fichier existe déjà. L'écraser ?" #: lib/Padre/Wx/Main.pm:5033 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Fichier modifié sur disque depuis la dernière sauvegarde. Voulez-vous l'écraser ?" #: lib/Padre/Wx/Main.pm:5128 msgid "File changed. Do you want to save it?" msgstr "Fichier modifié. Voulez-vous le sauvegarder ?" #: lib/Padre/Wx/ActionLibrary.pm:295 #: lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "Le fichier n'appartient à aucun projet" #: lib/Padre/Wx/Main.pm:4472 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "Le fichier %s contient les caractères * ou ? qui sont réservés sur la plupart des ordinateurs. Ignorer ?" #: lib/Padre/Wx/Main.pm:4492 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "Le fichier %s n'existe pas. Ignorer ?" #: lib/Padre/Wx/Main.pm:5034 msgid "File not in sync" msgstr "Fichier non synchronisé" #: lib/Padre/Wx/Main.pm:5401 msgid "File was never saved and has no filename - can't delete from disk" msgstr "Le fichier n'a pas encore été enregistré et n'a pas de nom. Impossible de le supprimer." #: lib/Padre/Wx/FBP/Patch.pm:138 msgid "File-1" msgstr "Fichier 1" #: lib/Padre/Wx/FBP/Patch.pm:161 msgid "File-2" msgstr "Fichier 2" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Fichier/Répertoire" #: lib/Padre/Wx/Notebook.pm:70 msgid "Files" msgstr "Fichiers" #: lib/Padre/Wx/FBP/SLOC.pm:55 #, fuzzy msgid "Files:" msgstr "Fichiers" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Commande de filtre :" #: lib/Padre/Wx/ActionLibrary.pm:1134 msgid "Filter through &Perl..." msgstr "Filtrer avec &Perl..." #: lib/Padre/Wx/ActionLibrary.pm:1125 msgid "Filter through E&xternal Tool..." msgstr "Filtrer avec un outil e&xterne..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Outil de filtre" #: lib/Padre/Wx/FBP/Snippet.pm:38 #, fuzzy msgid "Filter:" msgstr "&Filtre :" #: lib/Padre/Wx/ActionLibrary.pm:1126 msgid "Filters the selection (or the whole document) through any external command." msgstr "Filtre la sélection (ou le document en entier) à travers une commande externe." #: lib/Padre/Wx/FBP/Find.pm:30 msgid "Find" msgstr "Rechercher" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "&Tout Rechercher" #: lib/Padre/Wx/ActionLibrary.pm:1754 msgid "Find &Method Declaration" msgstr "Trouver la déclaration de la &méthode" #: lib/Padre/Wx/ActionLibrary.pm:1208 msgid "Find &Next" msgstr "Rechercher le &suivant" #: lib/Padre/Wx/ActionLibrary.pm:1742 msgid "Find &Variable Declaration" msgstr "Trouver la déclaration de la &variable" #: lib/Padre/Wx/ActionLibrary.pm:1730 msgid "Find Unmatched &Brace" msgstr "Trouver la &parenthèse orpheline" #: lib/Padre/Wx/ActionLibrary.pm:1250 msgid "Find in Fi&les..." msgstr "Rechercher dans des &fichiers..." #: lib/Padre/Wx/FBP/Preferences.pm:485 #: lib/Padre/Wx/FBP/FindInFiles.pm:32 #: lib/Padre/Wx/Panel/FoundInFiles.pm:438 msgid "Find in Files" msgstr "Rechercher dans des fichiers" #: lib/Padre/Wx/ActionLibrary.pm:1239 #, fuzzy msgid "Find text and replace it" msgstr "Trouver un texte et le remplacer" #: lib/Padre/Wx/ActionLibrary.pm:1168 msgid "Find text or regular expressions using a traditional dialog" msgstr "Recherche du texte ou une expression régulière avec un dialogue traditionnel" #: lib/Padre/Wx/ActionLibrary.pm:1755 msgid "Find where the selected function was defined and put the focus there." msgstr "Mettre le focus sur la déclaration de la fonction sélectionnée." #: lib/Padre/Wx/ActionLibrary.pm:1743 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "Mettre le focus sur la déclaration de la variable sélectionnée." #: lib/Padre/Wx/FBP/FindFast.pm:55 msgid "Find:" msgstr "Rechercher :" #: lib/Padre/Document/Perl.pm:950 msgid "First character of selection does not seem to point at a token." msgstr "Le premier caractère de la sélection ne semple pas pointer sur un signe." #: lib/Padre/Wx/Editor.pm:1904 msgid "First character of selection must be a non-word character to align" msgstr "Le premier caractère d'une sélection à aligner ne doit pas être alphanumérique" #: lib/Padre/Wx/ActionLibrary.pm:1519 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "Replier tous les blocks pouvant l'être (nécessite l'activation du repliage)" #: lib/Padre/Wx/Menu/View.pm:178 msgid "Font Si&ze" msgstr "&Taille de police" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "Essaie de deviner le nom des nouveaux fichiers selon leur contenu" #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Form feed" msgstr "Saut de page" #: lib/Padre/Wx/Syntax.pm:472 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "Trouvé %s erreurs dans %s en %3.2f s." #: lib/Padre/Wx/Syntax.pm:478 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "Trouvé %s erreurs en %3.2f s." #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "%s sujets d'aide trouvés\n" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "Trouvé %s modules déchargés" #: lib/Padre/Locale.pm:283 #: lib/Padre/Wx/FBP/About.pm:409 msgid "French" msgstr "Français" #: lib/Padre/Locale.pm:269 msgid "French (Canada)" msgstr "Français (Canada)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Ami" #: lib/Padre/Wx/ActionLibrary.pm:1664 msgid "Full Sc&reen" msgstr "Plein é&cran" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Fonction" #: lib/Padre/Wx/FBP/Preferences.pm:56 #: lib/Padre/Wx/FBP/Preferences.pm:376 #, fuzzy msgid "Function List" msgstr "Fonctions" #: lib/Padre/Wx/FunctionList.pm:148 msgid "Functions" msgstr "Fonctions" #: lib/Padre/Wx/FBP/About.pm:116 msgid "Gabor Szabo" msgstr "Gabor Szabo" #: lib/Padre/Wx/FBP/About.pm:302 #: lib/Padre/Wx/FBP/About.pm:595 msgid "Gabriel Vieira" msgstr "Gabriel Vieira" #: lib/Padre/Locale.pm:187 #: lib/Padre/Wx/FBP/About.pm:430 msgid "German" msgstr "Allemand" #: lib/Padre/Wx/Dialog/RegexEditor.pm:489 msgid "Global (&g)" msgstr "Global (&g)" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr "Aller à" #: lib/Padre/Wx/ActionLibrary.pm:2446 msgid "Go to &Command Line Window" msgstr "Aller à la fenêtre de &ligne de commande" #: lib/Padre/Wx/ActionLibrary.pm:2401 msgid "Go to &Functions Window" msgstr "Aller à la fenêtre des &fonctions" #: lib/Padre/Wx/ActionLibrary.pm:2457 msgid "Go to &Main Window" msgstr "Aller à la fenêtre &principale" #: lib/Padre/Wx/ActionLibrary.pm:1306 msgid "Go to Bookmar&k..." msgstr "Aller au si&gnet..." #: lib/Padre/Wx/ActionLibrary.pm:2390 #, fuzzy msgid "Go to CPAN E&xplorer Window" msgstr "Aller à la fenêtre &Todo" #: lib/Padre/Wx/ActionLibrary.pm:2413 msgid "Go to O&utline Window" msgstr "Aller à la fenêtre de p&rofil" #: lib/Padre/Wx/ActionLibrary.pm:2424 msgid "Go to Ou&tput Window" msgstr "Aller à la fenêtre de &résultat" #: lib/Padre/Wx/ActionLibrary.pm:2435 msgid "Go to S&yntax Check Window" msgstr "Aller à la fenêtre de vérification s&yntaxique" #: lib/Padre/Wx/FBP/Preferences.pm:923 msgid "Graphical Debugger Tool" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:123 msgid "Grouping constructs" msgstr "&Groupements" #: lib/Padre/Wx/FBP/Preferences.pm:1016 msgid "Guess from Current Document" msgstr "Deviner à partir du document courant :" #: lib/Padre/Wx/FBP/About.pm:493 msgid "Gyorgy Pasztor" msgstr "Gyorgy Pasztor" #: lib/Padre/Locale.pm:293 #: lib/Padre/Wx/FBP/About.pm:457 msgid "Hebrew" msgstr "Hébreu" #: lib/Padre/Wx/FBP/About.pm:194 #: lib/Padre/Wx/FBP/About.pm:439 msgid "Heiko Jansen" msgstr "Heiko Jansen" #: lib/Padre/Wx/Browser.pm:63 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:373 msgid "Help" msgstr "Aide" #: lib/Padre/Wx/Dialog/HelpSearch.pm:41 #: lib/Padre/Wx/Dialog/HelpSearch.pm:98 msgid "Help Search" msgstr "Aide sur la recherche" #: lib/Padre/Wx/ActionLibrary.pm:2582 msgid "Help by translating Padre to your local language" msgstr "Aider en traduisant Padre dans votre langue courante" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "Aide introuvable." #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Hex character" msgstr "Caractère hexadécimal" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Hexadecimal digits" msgstr "Chiffres hexadécimaux" #: lib/Padre/Wx/ActionLibrary.pm:1564 msgid "Highlight the line where the cursor is" msgstr "Surligner la position du curseur" #: lib/Padre/Wx/Directory.pm:595 msgid "Hit unfixed bug in directory browser, disabling it" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Home" msgstr "Début" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "Hôte" #: lib/Padre/Wx/Main.pm:6311 msgid "How many spaces for each tab:" msgstr "Combien d'espaces pour chaque tab : " #: lib/Padre/Locale.pm:303 #: lib/Padre/Wx/FBP/About.pm:484 msgid "Hungarian" msgstr "Hongrois" #: lib/Padre/Wx/ActionLibrary.pm:1346 msgid "If activated, do not allow moving around some of the windows" msgstr "Permettre à l'utilisateur de déplacer les panneaux" #: lib/Padre/Wx/Dialog/RegexEditor.pm:472 msgid "Ignore case (&i)" msgstr "&Ignorer la casse (&i)" #: lib/Padre/Wx/VCS.pm:250 #: lib/Padre/Wx/FBP/VCS.pm:205 msgid "Ignored" msgstr "Ignoré" #: lib/Padre/Wx/FBP/Preferences.pm:1475 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "Répertoire de modules (Include) : -I\n" "Activer le mode taint : -T\n" "Activer les avertissements : -w\n" "Activer tous les avertissements : -W\n" "Sésactiver tous les avertissements : -X" #: lib/Padre/PluginHandle.pm:26 msgid "Incompatible" msgstr "Incompatible" #: lib/Padre/Config.pm:897 msgid "Indent Deeply" msgstr "Indentation profonde" #: lib/Padre/Wx/FBP/Preferences.pm:1032 #, fuzzy msgid "Indent Detection" msgstr "Indentation" #: lib/Padre/Wx/FBP/Preferences.pm:955 #, fuzzy msgid "Indent Settings" msgstr "Indentation" #: lib/Padre/Wx/FBP/Preferences.pm:980 #, fuzzy msgid "Indent Spaces:" msgstr "&Tabulations et espaces" #: lib/Padre/Wx/FBP/Preferences.pm:1074 #, fuzzy msgid "Indent on Newline:" msgstr "Fin de ligne" #: lib/Padre/Config.pm:896 msgid "Indent to Same Depth" msgstr "Indenter à la même profondeur" #: lib/Padre/Wx/FBP/Preferences.pm:1927 msgid "Indentation" msgstr "Indentation" #: lib/Padre/Wx/FBP/About.pm:851 msgid "Information" msgstr "Information" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "Entrée/sortie :" #: lib/Padre/Wx/FBP/Snippet.pm:118 #: lib/Padre/Wx/FBP/Special.pm:78 #: lib/Padre/Wx/Menu/Edit.pm:119 #: lib/Padre/Wx/Dialog/Preferences.pm:35 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:270 msgid "Insert" msgstr "Insérer" #: lib/Padre/Wx/FBP/Snippet.pm:29 msgid "Insert Snippet" msgstr "Insérer l'extrait" #: lib/Padre/Wx/FBP/Special.pm:29 msgid "Insert Special Values" msgstr "Insérer des informations" #: lib/Padre/Wx/FBP/CPAN.pm:207 #, fuzzy msgid "Insert Synopsis" msgstr "Insérer l'extrait" #: lib/Padre/Wx/FBP/CPAN.pm:239 msgid "Install" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2331 msgid "Install &Remote Distribution" msgstr "Installer une distribution &distante" #: lib/Padre/Wx/ActionLibrary.pm:2321 msgid "Install L&ocal Distribution" msgstr "Installer une distribution &locale" #: lib/Padre/CPAN.pm:128 msgid "Install Local Distribution" msgstr "Installer une distribution locale" # vérifier le contexte #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Integer" #: lib/Padre/Wx/Syntax.pm:71 msgid "Internal Error" msgstr "Erreur interne" #: lib/Padre/Wx/Main.pm:6133 msgid "Internal error" msgstr "Erreur interne" #: lib/Padre/Wx/ActionLibrary.pm:1903 msgid "Introduce &Temporary Variable..." msgstr "Introduire une variable &temporaire..." #: lib/Padre/Wx/ActionLibrary.pm:1912 msgid "Introduce Temporary Variable" msgstr "Introduire une variable temporaire" #: lib/Padre/Locale.pm:317 #: lib/Padre/Wx/FBP/About.pm:499 msgid "Italian" msgstr "Italien" #: lib/Padre/Wx/FBP/Preferences.pm:105 #, fuzzy msgid "Item Regular Expression:" msgstr "Expression &régulière" #: lib/Padre/Locale.pm:327 #: lib/Padre/Wx/FBP/About.pm:514 msgid "Japanese" msgstr "Japonais" #: lib/Padre/Wx/Main.pm:4415 msgid "JavaScript Files" msgstr "Fichiers Javascript" #: lib/Padre/Wx/FBP/About.pm:146 #: lib/Padre/Wx/FBP/About.pm:418 msgid "Jerome Quelin" msgstr "Jérôme Quelin" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Join the next line to the end of the current line." msgstr "Joindre la ligne suivante à la fin de la ligne courante." #: lib/Padre/Wx/ActionLibrary.pm:1283 msgid "Jump to a specific line number or character position" msgstr "Déplace le curseur à un &numéro de ligne ou une position de caractère" #: lib/Padre/Wx/ActionLibrary.pm:792 msgid "Jump to the code that has been changed" msgstr "Aller au code qui a été changé" #: lib/Padre/Wx/ActionLibrary.pm:781 msgid "Jump to the code that triggered the next error" msgstr "Aller au code qui a provoqué l'erreur suivante" #: lib/Padre/Wx/ActionLibrary.pm:872 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Aller à la parenthèse / accolade correspondante : { }, ( ), [ ], < >" #: lib/Padre/Wx/FBP/About.pm:278 msgid "Kaare Rasmussen" msgstr "Kaare Rasmussen" #: lib/Padre/Wx/FBP/About.pm:290 msgid "Kartik Thakore" msgstr "Kartik Thakore" #: lib/Padre/Wx/FBP/About.pm:248 #: lib/Padre/Wx/FBP/About.pm:538 msgid "Keedi Kim" msgstr "Keedi Kim" #: lib/Padre/Wx/FBP/About.pm:242 #: lib/Padre/Wx/FBP/About.pm:523 msgid "Kenichi Ishigaki" msgstr "Kenichi Ishigaki" #: lib/Padre/Wx/Dialog/About.pm:144 msgid "Kernel" msgstr "Noyau" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Kevin Dawson" msgstr "Kevin Dawson" #: lib/Padre/Wx/FBP/Preferences.pm:1928 msgid "Key Bindings" msgstr "Raccourcis clavier" #: lib/Padre/Wx/FBP/About.pm:553 msgid "Kjetil Skotheim" msgstr "Kjetil Skotheim" #: lib/Padre/Locale.pm:465 msgid "Klingon" msgstr "Klingon" #: lib/Padre/Locale.pm:337 #: lib/Padre/Wx/FBP/About.pm:529 msgid "Korean" msgstr "Coréen" #: lib/Padre/Wx/FBP/Debugger.pm:296 msgid "" "L [abw]\n" "List (default all) actions, breakpoints and watch expressions" msgstr "" "L [abw]\n" "Lister (tout par défaut) les actions, breakpoints et expressions surveillées (w)" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Label un" #: lib/Padre/Wx/Menu/View.pm:210 msgid "Lan&guage" msgstr "&Langue" #: lib/Padre/Wx/FBP/Preferences.pm:1930 msgid "Language - Perl 5" msgstr "Langage - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:1931 msgid "Language - Perl 6" msgstr "Langage - Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1380 #: lib/Padre/Wx/FBP/Preferences.pm:1503 msgid "Language Integration" msgstr "Langues" #: lib/Padre/Wx/Dialog/SessionManager2.pm:30 #, fuzzy msgid "Last Updated" msgstr "Dernière mise à jour" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "Dernière mise à jour" #: lib/Padre/Wx/ActionLibrary.pm:2111 #, fuzzy msgid "Launch Debugger" msgstr "Débugger" #: lib/Padre/Wx/Dialog/Preferences.pm:33 msgid "Left" msgstr "Gauche" #: lib/Padre/Config.pm:59 msgid "Left Panel" msgstr "Panneau de gauche" #: lib/Padre/Wx/FBP/Diff.pm:72 #, fuzzy msgid "Left side" msgstr "Gauche" #: lib/Padre/Wx/ActionLibrary.pm:1781 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "Même comportement que Entrée, mais utilise la position courante comme indentation de la nouvelle ligne." #: lib/Padre/Wx/Syntax.pm:507 #, perl-format msgid "Line %d: (%s) %s" msgstr "Ligne %d : (%s) %s" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "Ligne %d : %s" #: lib/Padre/Wx/Dialog/Goto.pm:342 msgid "Line number" msgstr "Numéro de ligne" #: lib/Padre/Wx/FBP/Document.pm:138 #: lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "Lignes" #: lib/Padre/Wx/Dialog/WindowList.pm:210 msgid "List of open files" msgstr "Liste des fichiers ouverts" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Liste des sessions" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "List the files that match the current selection and let the user pick one to open" msgstr "Lister les fichiers correspondant à la sélection courante et permettre à l'utilisateur d'en ouvrir un" #: lib/Padre/PluginHandle.pm:25 #, fuzzy msgid "Loaded" msgstr "chargé" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "%s modules chargés" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Loc&k User Interface" msgstr "&Verrouiller l'interface" #: lib/Padre/Wx/FBP/Preferences.pm:1276 msgid "Local file update poll interval in seconds (0 to disable)" msgstr "Intervalle de surveillance de mise à jour des fichiers locaux en secondes (0 pour désactiver)" #: lib/Padre/Wx/FBP/Sync.pm:58 msgid "Logged out" msgstr "Déconnecté" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Connexion au serveur FTP en tant que %s..." #: lib/Padre/Wx/FBP/Sync.pm:104 msgid "Login" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Long hex character" msgstr "Caractère hexadécimal long" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Recherche de Net::FTP..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Lowercase characters" msgstr "Minuscules" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Lowercase next character" msgstr "Caractère suivant en minuscule" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Lowercase till \\E" msgstr "Minuscules jusqu'à \\E" #: lib/Padre/Wx/FBP/Debugger.pm:336 msgid "" "M\n" "Display all loaded modules and their versions." msgstr "" "M\n" "Afficher tous les modules chargés et leurs versions." #: lib/Padre/Wx/FBP/Document.pm:79 #, fuzzy msgid "MIME Type" msgstr "Type" #: lib/Padre/Wx/ActionLibrary.pm:1629 msgid "Make the letters bigger in the editor window" msgstr "Augmenter la police de la fenêtre d'édition" #: lib/Padre/Wx/ActionLibrary.pm:1639 msgid "Make the letters smaller in the editor window" msgstr "Diminuer la police de la fenêtre d'édition" #: lib/Padre/Wx/FBP/About.pm:388 msgid "Marcela Maslanova" msgstr "Marcela Maslanova" #: lib/Padre/Wx/FBP/About.pm:574 msgid "Marek Roszkowski" msgstr "Marek Roszkowski" #: lib/Padre/Wx/ActionLibrary.pm:646 msgid "Mark Selection &End" msgstr "Marquer la &fin de la sélection" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Mark Selection &Start" msgstr "Marquer le &début de la sélection" #: lib/Padre/Wx/ActionLibrary.pm:647 msgid "Mark the place where the selection should end" msgstr "Marquer l'endroit où la sélection doit s'arrêter" #: lib/Padre/Wx/ActionLibrary.pm:635 msgid "Mark the place where the selection should start" msgstr "Marquer l'endroit où la sélection doit commencer" #: lib/Padre/Wx/Dialog/RegexEditor.pm:102 msgid "Match 0 or more times" msgstr "Peut-être des répétitions" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or 0 times" msgstr "Peut-être 1 répétition" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 1 or more times" msgstr "Au moins 1 répétition" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least m but not more than n times" msgstr "Au moins m et au plus n répétitions" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match at least n times" msgstr "Au moins n répétitions" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match exactly m times" msgstr "Exactement m répétitions" #: lib/Padre/Wx/Dialog/RegexEditor.pm:677 #, perl-format msgid "Match failure in %s: %s" msgstr "Pas de correspondance dans %s : %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:688 #, perl-format msgid "Match warning in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:697 #, perl-format msgid "Match with 0 width at character %s" msgstr "Correspondance de zéro caractères au caractère %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:235 msgid "Matched text:" msgstr "&Concordances :" #: lib/Padre/Wx/FBP/About.pm:373 msgid "Matthew Lien" msgstr "Matthew Lien" #: lib/Padre/Wx/FBP/About.pm:254 msgid "Max Maischein" msgstr "Max Maischein" #: lib/Padre/Wx/FBP/Preferences.pm:242 msgid "Maximum number of suggestions" msgstr "Nombre maximum de suggestions :" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Message" #: lib/Padre/Wx/FBP/CPAN.pm:223 msgid "MetaCPAN..." msgstr "MetaCPAN..." #: lib/Padre/Wx/Outline.pm:364 msgid "Methods" msgstr "Méthodes" #: lib/Padre/Wx/FBP/Preferences.pm:260 msgid "Minimum characters for autocomplete" msgstr "Nombre minimum de caractères pour l'autocomplétion" #: lib/Padre/Wx/FBP/Preferences.pm:224 msgid "Minimum length of suggestions" msgstr "Longueur minimale des suggestions" #: lib/Padre/Wx/FBP/Preferences.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:111 msgid "Miscellaneous" msgstr "Divers" #: lib/Padre/Wx/VCS.pm:252 msgid "Missing" msgstr "Manquant" #: lib/Padre/Wx/VCS.pm:248 #: lib/Padre/Wx/VCS.pm:259 msgid "Modified" msgstr "Modifié" #: lib/Padre/Document/Perl/Starter.pm:122 msgid "Module Name:" msgstr "Nom du module :" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Nom du module :" #: lib/Padre/Wx/Outline.pm:363 msgid "Modules" msgstr "Outils module" #: lib/Padre/Wx/Dialog/RegexEditor.pm:480 msgid "Multi-line (&m)" msgstr "Multi-ligne (%s)" #: lib/Padre/Wx/ActionLibrary.pm:2256 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "My-Plugin est une extension où les développeurs peuvent étendre leur installation de Padre" #: lib/Padre/Wx/FBP/SLOC.pm:120 msgid "Mythical Man Months:" msgstr "" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "NOM" #: lib/Padre/Wx/Dialog/SessionManager2.pm:28 #: lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "Nom" #: lib/Padre/Wx/ActionLibrary.pm:1888 msgid "Name for the new subroutine" msgstr "Veuillez entrer un nom pour la nouvelle fonction" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "Nou&veau" #: lib/Padre/Wx/Main.pm:6639 #, fuzzy msgid "Need to select text in order to translate numbers" msgstr "Vous devez sélectionner du texte afin de le traduire en hexa" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Negative lookahead assertion" msgstr "Assertion négative en avant" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Negative lookbehind assertion" msgstr "Assertion négative en arrière" #: lib/Padre/Wx/FBP/Preferences.pm:571 msgid "New File Creation" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:381 msgid "New Folder" msgstr "Nouveau dossier" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "Sondage de nouvelle installation" #: lib/Padre/Document/Perl/Starter.pm:123 #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Nouveau module" #: lib/Padre/Document/Perl.pm:824 msgid "New name" msgstr "Nouveau nom" #: lib/Padre/PluginManager.pm:393 msgid "New plug-ins detected" msgstr "Nouvelles extensions détectées" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Newline" msgstr "Montrer les retours chariot" #: lib/Padre/Wx/FBP/Document.pm:103 #, fuzzy msgid "Newline Type" msgstr "Type de retour chariot : %s" #: lib/Padre/Wx/Diff2.pm:29 #: lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "Différence suivante" #: lib/Padre/Config.pm:895 msgid "No Autoindent" msgstr "Pas d'auto-indentation" #: lib/Padre/Wx/Main.pm:2787 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Ni Build.PL ni Makefile.PL ni dist.ini trouvé" #: lib/Padre/Wx/Dialog/HelpSearch.pm:95 msgid "No Help found" msgstr "Aucune aide trouvée" #: lib/Padre/Wx/Diff.pm:260 msgid "No changes found" msgstr "Aucune changement trouvé" #: lib/Padre/Document/Perl.pm:654 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Aucune déclaration trouvée pour la variable (lexicale ?) spécifiée" #: lib/Padre/Document/Perl.pm:903 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Aucune déclaration trouvée pour la variable (lexicale ?) spécifiée" #: lib/Padre/Wx/Main.pm:2754 #: lib/Padre/Wx/Main.pm:2809 #: lib/Padre/Wx/Main.pm:2860 msgid "No document open" msgstr "Aucun document ouvert" #: lib/Padre/Task/CPAN.pm:183 #, fuzzy, perl-format msgid "No documentation for '%s'" msgstr "Aucun document ouvert" #: lib/Padre/Document/Perl.pm:514 msgid "No errors found." msgstr "Aucune erreur trouvée." #: lib/Padre/Wx/Syntax.pm:454 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "Aucune erreur ni avertissement trouvé dans %s en %3.2f s." #: lib/Padre/Wx/Syntax.pm:459 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "Aucune erreur ni avertissement trouvé en %3.2f s." #: lib/Padre/Wx/Main.pm:3101 msgid "No execution mode was defined for this document type" msgstr "Aucun mode d'exécution défini pour ce document" #: lib/Padre/PluginManager.pm:891 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Pas de nom" #: lib/Padre/Wx/Dialog/RegexEditor.pm:716 msgid "No match" msgstr "Aucune occurrence trouvée" #: lib/Padre/Wx/Dialog/Find.pm:63 #: lib/Padre/Wx/Dialog/Replace.pm:135 #: lib/Padre/Wx/Dialog/Replace.pm:158 #, perl-format msgid "No matches found for \"%s\"." msgstr "Aucune occurrence de « %s »." #: lib/Padre/Wx/Main.pm:3083 msgid "No open document" msgstr "Aucun document ouvert" #: lib/Padre/Config.pm:486 msgid "No open files" msgstr "Aucun fichier ouvert" #: lib/Padre/Wx/ReplaceInFiles.pm:258 #: lib/Padre/Wx/Panel/FoundInFiles.pm:307 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "Pas de résultats trouvés pour « %s » dans « %s »" #: lib/Padre/Wx/Main.pm:933 #, perl-format msgid "No such session %s" msgstr "Aucune session %s" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "No suggestions" msgstr "Aucune suggestion" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "Non-capturing group" msgstr "Un groupe, sans capture" #: lib/Padre/Wx/Dialog/Preferences.pm:27 msgid "None" msgstr "Aucun" #: lib/Padre/Wx/VCS.pm:245 #: lib/Padre/Wx/FBP/VCS.pm:173 msgid "Normal" msgstr "Normal" #: lib/Padre/Locale.pm:371 #: lib/Padre/Wx/FBP/About.pm:544 msgid "Norwegian" msgstr "Norvégien" #: lib/Padre/Wx/Panel/Debugger.pm:258 msgid "Not a Perl document" msgstr "Pas un document Perl" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "Pas un nombre positif !" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "Not a word boundary" msgstr "Pas une frontière de mot" #: lib/Padre/Wx/Main.pm:4254 msgid "Nothing selected. Enter what should be opened:" msgstr "Aucune sélection. Entrez ce qu'il faut ouvrir :" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "Maintenant" #: lib/Padre/Wx/FBP/SLOC.pm:144 #, fuzzy msgid "Number of Developers:" msgstr "Nombre de fichiers" #: lib/Padre/Wx/Menu/File.pm:84 msgid "O&pen" msgstr "Ouvrir" #: lib/Padre/Wx/FBP/Bookmarks.pm:86 #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "OK" #: lib/Padre/Wx/VCS.pm:253 msgid "Obstructed" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Octal character" msgstr "Caractères de contrôle (code octal)" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "Offer completions to the current string. See Preferences" msgstr "Proposer des complétions pour la chaîne courante. Voir les options" #: lib/Padre/Wx/FBP/About.pm:260 #: lib/Padre/Wx/FBP/About.pm:424 msgid "Olivier Mengue" msgstr "Olivier Mengué" #: lib/Padre/Wx/FBP/About.pm:466 msgid "Omer Zak" msgstr "Omer Zak" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Un seul block POD trouvé. Fusion abandonnée." #: lib/Padre/Wx/ActionLibrary.pm:2341 msgid "Open &CPAN Config File" msgstr "Ouvrir le fichier de configuration CPAN" #: lib/Padre/Wx/Outline.pm:144 msgid "Open &Documentation" msgstr "Ouvrir la &documentation" #: lib/Padre/Wx/ActionLibrary.pm:251 msgid "Open &Example" msgstr "Ouvrir un &exemple" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open &Last Closed File" msgstr "Réouvrir le &dernier fichier fermé" #: lib/Padre/Wx/ActionLibrary.pm:1320 msgid "Open &Resources..." msgstr "Ouvrir une &ressource..." #: lib/Padre/Wx/ActionLibrary.pm:463 msgid "Open &Selection" msgstr "Ouvrir la &sélection" #: lib/Padre/Wx/ActionLibrary.pm:206 msgid "Open &URL..." msgstr "Ouvrir une &URL..." #: lib/Padre/Wx/ActionLibrary.pm:2342 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "Ouvrir CPAN::MyConfig.pm pour une édition manuelle (pour les experts)" #: lib/Padre/Wx/FBP/Preferences.pm:1329 #, fuzzy msgid "Open FTP Files" msgstr "Ouvrir" #: lib/Padre/Wx/Main.pm:4439 #: lib/Padre/Wx/Directory/TreeCtrl.pm:302 msgid "Open File" msgstr "Ouvrir" #: lib/Padre/Wx/FBP/Preferences.pm:540 #, fuzzy msgid "Open Files:" msgstr "Ouvrir" #: lib/Padre/Wx/FBP/Preferences.pm:1294 #, fuzzy msgid "Open HTTP Files" msgstr "Ouvrir" #: lib/Padre/Wx/Dialog/OpenResource.pm:33 #: lib/Padre/Wx/Dialog/OpenResource.pm:79 msgid "Open Resources" msgstr "Ouvrir une ressource" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "Open S&ession..." msgstr "Ouvrir une &session..." #: lib/Padre/Wx/Main.pm:4297 msgid "Open Selection" msgstr "Ouvrir la sélection" #: lib/Padre/Wx/FBP/SessionManager.pm:86 msgid "Open Session" msgstr "Ouvrir une session" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "Ouvrir une URL" #: lib/Padre/Wx/Main.pm:4475 #: lib/Padre/Wx/Main.pm:4495 msgid "Open Warning" msgstr "Avertissement" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 module" msgstr "Ouvrir un document avec un squelette de module Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "Ouvrir un document avec un squelette de script Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Ouvrir un document avec un squelette de script de test Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Open a document with a skeleton Perl 6 script" msgstr "Ouvrir un document avec un squelette de script Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Open a file from a remote location" msgstr "Ouvrir un fichier sur un serveur distant" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "Ouvrir un nouveau document vide" #: lib/Padre/Wx/ActionLibrary.pm:524 msgid "Open all the files listed in the recent files list" msgstr "Ouvre tous les fichiers listés dans la liste des fichiers récemment ouverts" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "Ouvrir un navigateur pour chercher les extensions Padre sur CPAN" #: lib/Padre/Wx/Menu/File.pm:395 msgid "Open cancelled" msgstr "Ouverture annulée" #: lib/Padre/PluginManager.pm:964 #: lib/Padre/Wx/Main.pm:6025 msgid "Open file" msgstr "Ouvrir fichier" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Open in &Command Line" msgstr "Ovrir dans la ligne de &commande" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open in File &Browser" msgstr "Ouvrir dans le &gestionnaire de fichiers" #: lib/Padre/Wx/Directory/TreeCtrl.pm:253 #: lib/Padre/Wx/Directory/TreeCtrl.pm:312 msgid "Open in File Browser" msgstr "Ouvrir dans le gestionnaire de fichiers" #: lib/Padre/Wx/ActionLibrary.pm:2176 msgid "Open interesting and helpful Padre Wiki in your default web browser" msgstr "Ouvre le wiki de Padre, un util site communautaire, dans votre navigateur" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Open interesting and helpful Perl websites in your default web browser" msgstr "Ouvre des sites web de la communauté Perl dans votre navigateur" #: lib/Padre/Wx/Main.pm:4255 msgid "Open selection" msgstr "Ouvrir la sélection" #: lib/Padre/Config.pm:487 msgid "Open session" msgstr "Ouvrir une session" #: lib/Padre/Wx/ActionLibrary.pm:2517 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "Ouvrir le support en direct de Padre dans votre navigateur et discuter avec d'autres personnes qui peuvent vous aider avec votre problème" #: lib/Padre/Wx/ActionLibrary.pm:2529 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "Ouvrir le support en direct de Perl dans votre navigateur et discuter avec d'autres personnes qui peuvent vous aider avec votre problème" #: lib/Padre/Wx/ActionLibrary.pm:2541 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "Ouvrir le support en direct de Perl/Win32 dans votre navigateur et discuter avec d'autres personnes qui peuvent vous aider avec votre problème" #: lib/Padre/Wx/ActionLibrary.pm:2211 msgid "Open the regular expression editing window" msgstr "Ouvrir la fenêtre d'édition des expressions régulières" #: lib/Padre/Wx/ActionLibrary.pm:2221 msgid "Open the selected text in the Regex Editor" msgstr "Augmenter la police de la fenêtre d'édition" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Open with Default &System Editor" msgstr "Ouvrir avec l'éditeur par défaut du &système" #: lib/Padre/Wx/Main.pm:3212 #, perl-format msgid "Opening session %s..." msgstr "Ouvrir la session %s..." #: lib/Padre/Wx/ActionLibrary.pm:242 msgid "Opens a command line using the current document folder" msgstr "Ouvrir une ligne de commande dans le répertoire du document courant" #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Opens the current document using the file browser" msgstr "Ouvrir le document courant avec le gestionnaire de fichiers" #: lib/Padre/Wx/ActionLibrary.pm:230 msgid "Opens the file with the default system editor" msgstr "Ouvrir le fichier avec l'éditeur par défaut du système" #: lib/Padre/Wx/ActionLibrary.pm:264 msgid "Opens the last closed file" msgstr "Ouvre le dernier fichier fermé" #: lib/Padre/Wx/FBP/Preferences.pm:861 msgid "" "Optional features can be disabled to simplify the user interface,\n" "reduce memory consumption and make Padre run faster.\n" "\n" "Changes to features are only applied when Padre is restarted." msgstr "" "Les fonctionnalités optionnelles peuvent être désactivées pour simplifier l'interface, réduire la consommation mémoire et rendre Padre plus rapide.\n" "\n" "Les modifications de fonctionnalités ne s'applique qu'au redémarrage de Padre." #: lib/Padre/Wx/FBP/Patch.pm:148 msgid "Options" msgstr "Options" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Options :" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "&Original :" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Autre (remplissez)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Autre événement" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Autre moteur de recherche" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "Valeur hors de la plage !" #: lib/Padre/Wx/Outline.pm:189 #: lib/Padre/Wx/Outline.pm:233 msgid "Outline" msgstr "Profil" #: lib/Padre/Wx/Output.pm:89 #: lib/Padre/Wx/FBP/Preferences.pm:470 msgid "Output" msgstr "Sortie" #: lib/Padre/Wx/Bottom.pm:53 msgid "Output View" msgstr "Sortie" #: lib/Padre/Wx/Dialog/Preferences.pm:480 msgid "Override Shortcut" msgstr "&Remplacer le raccourci" #: lib/Padre/Wx/ActionLibrary.pm:2527 msgid "P&erl Help" msgstr "A&ide Perl" #: lib/Padre/Wx/Menu/Tools.pm:104 msgid "P&lug-in Tools" msgstr "Outils extensions" #: lib/Padre/Wx/Main.pm:4419 msgid "PHP Files" msgstr "Fichiers PHP" #: lib/Padre/Wx/FBP/Preferences.pm:311 msgid "POD" msgstr "POD" #: lib/Padre/Wx/FBP/POD.pm:30 msgid "POD Viewer" msgstr "Visualiseur POD" #: lib/Padre/Config.pm:1126 #: lib/Padre/Wx/Scintilla.pm:28 msgid "PPI Experimental" msgstr "PPI expérimental" #: lib/Padre/Config.pm:1127 #: lib/Padre/Wx/Scintilla.pm:34 msgid "PPI Standard" msgstr "PPI Standard" #: lib/Padre/Wx/FBP/About.pm:610 msgid "Paco Alguacil" msgstr "Paco Alguacil" #: lib/Padre/Wx/FBP/About.pm:848 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Outils développeurs Padre" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Outils développeurs Padre" #: lib/Padre/Wx/FBP/Preferences.pm:32 msgid "Padre Preferences" msgstr "Options de Padre" #: lib/Padre/Wx/FBP/Sync.pm:29 msgid "Padre Sync" msgstr "Padre Sync" #: lib/Padre/Wx/FBP/About.pm:102 msgid "" "Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published by the \n" "Free Software Foundation; version 2 dated June, 1991." msgstr "" "\"Padre contient des icônes de GNOME, vous pouvez les redistribuer et/ou \n" "modifier selon les termes de la GNU General Public License telle que publiée par la \n" "Free Software Foundation ; version 2 datée de juin 1991.\"" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "PageDown" msgstr "PagePréc" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "PageUp" msgstr "PageSuiv" #: lib/Padre/Wx/Dialog/Sync.pm:151 msgid "Password and confirmation do not match." msgstr "Le mot de passe et sa confirmation ne concordent pas." #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "Mot de passe pour l'utilisateur '%s' sur '%s' :" #: lib/Padre/Wx/FBP/Sync.pm:89 #: lib/Padre/Wx/FBP/Sync.pm:148 msgid "Password:" msgstr "Mot de passe :" #: lib/Padre/Wx/ActionLibrary.pm:766 msgid "Paste the clipboard to the current location" msgstr "Coller le contenu du presse-papier à la position courante" #: lib/Padre/Wx/FBP/Patch.pm:29 msgid "Patch" msgstr "Patch" #: lib/Padre/Wx/Dialog/Patch.pm:411 msgid "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "Le fichier patch devrait avoir un suffixe .patch ou .diff." #: lib/Padre/Wx/Dialog/Patch.pm:430 msgid "Patch successful, you should see a new tab in editor called Unsaved #" msgstr "Patch appliqué ; vous devriez voir un nouvel onglet appelé SansNom #" #: lib/Padre/Wx/VCS.pm:54 msgid "Path" msgstr "Chemin" #: lib/Padre/Wx/FBP/About.pm:224 msgid "Patrick Donelan" msgstr "Patrick Donelan" #: lib/Padre/Wx/FBP/About.pm:266 msgid "Paweł Murias" msgstr "Paweł Murias" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:367 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl &6 Script" msgstr "Script Perl &6" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 &Module" msgstr "&Module Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "&Script Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 &Test" msgstr "&Test Perl 5" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "Perl Application Development and Refactoring Environment" #: lib/Padre/Wx/FBP/Preferences.pm:1461 #, fuzzy msgid "Perl Arguments" msgstr "Arguments du script :" #: lib/Padre/Wx/FBP/Preferences.pm:1419 #, fuzzy msgid "Perl Ctags File:" msgstr "Fichier ctags Perl" #: lib/Padre/Wx/FBP/Preferences.pm:1405 msgid "Perl Executable:" msgstr "Exécutable Perl :" #: lib/Padre/Wx/Main.pm:4417 #: lib/Padre/Wx/Choice/Files.pm:21 msgid "Perl Files" msgstr "Fichiers Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Filtre Perl" #: lib/Padre/Locale.pm:259 msgid "Persian (Iran)" msgstr "Perse (Iran)" #: lib/Padre/Wx/FBP/About.pm:284 msgid "Petar Shangov" msgstr "Petar Shangov" #: lib/Padre/Wx/FBP/About.pm:134 msgid "Peter Lavender" msgstr "Peter Lavender" #: lib/Padre/Wx/Dialog/Sync.pm:140 msgid "Please ensure all inputs have appropriate values." msgstr "Assurez vous que toutes les entrées ont des valeurs appropriées." #: lib/Padre/Wx/Dialog/Sync.pm:105 msgid "Please input a valid value for both username and password" msgstr "Veuillez entrer des valeurs correctes pour le nom d'utilisateur et le mot de passe" #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the directory" msgstr "Veuillez entrer le nouveau nom du répertoire" #: lib/Padre/Wx/Directory/TreeCtrl.pm:169 msgid "Please type in the new name of the file" msgstr "Veuillez entrer le nouveau nom du fichier" #: lib/Padre/Wx/Progress.pm:85 msgid "Please wait..." msgstr "Veuillez patienter..." #: lib/Padre/Wx/ActionLibrary.pm:2246 msgid "Plug-in &List (CPAN)" msgstr "&Liste d'extensions (CPAN)" #: lib/Padre/Wx/FBP/PluginManager.pm:29 msgid "Plug-in Manager" msgstr "Gestion des extensions" #: lib/Padre/PluginManager.pm:984 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "L'extension doit avoir « %s » comme répertoire de base" #: lib/Padre/PluginManager.pm:780 #, perl-format msgid "Plugin %s" msgstr "Extension %s" #: lib/Padre/PluginHandle.pm:341 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "Le plugin %s a renvoyé %s aulieu d'une liste de hooks sur ->padre_hooks." #: lib/Padre/PluginHandle.pm:354 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "Le plugin %s a tenté d'enregistrer un hook incorrect %s." #: lib/Padre/PluginHandle.pm:362 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "Le plugin %s a tenté d'eregistrer un hook %s qui n'est pas du CODE." #: lib/Padre/PluginManager.pm:753 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "Dans le plugin %s, le hook %s a renvoyé un message d'erreur vide." #: lib/Padre/PluginManager.pm:720 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Erreur d'extension lors de l'événement %s : %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:371 msgid "Plugins" msgstr "Extensions" #: lib/Padre/Locale.pm:381 #: lib/Padre/Wx/FBP/About.pm:559 msgid "Polish" msgstr "Polonais" #: lib/Padre/Plugin/PopularityContest.pm:323 msgid "Popularity Contest Report" msgstr "Rapport du concours de popularité" #: lib/Padre/Locale.pm:391 #: lib/Padre/Wx/FBP/About.pm:580 msgid "Portuguese (Brazil)" msgstr "Portugais (Brésil)" #: lib/Padre/Locale.pm:401 msgid "Portuguese (Portugal)" msgstr "Portugais (Portugal)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Type de position" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Entier positif" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Positive lookahead assertion" msgstr "Assertion positive en avant" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Positive lookbehind assertion" msgstr "Assertion positive en arrière" #: lib/Padre/Wx/Outline.pm:362 msgid "Pragmata" msgstr "Pragmata" #: lib/Padre/Wx/FBP/Preferences.pm:160 msgid "Prefered language for error diagnostics" msgstr "Langue préférée pour les diagnostics d'erreur :" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Nom d'option" #: lib/Padre/Wx/FBP/PluginManager.pm:112 #, fuzzy msgid "Preferences" msgstr "&Options" #: lib/Padre/Wx/ActionLibrary.pm:2199 msgid "Preferences &Sync..." msgstr "Synchronisation des options" #: lib/Padre/PluginHandle.pm:283 #, perl-format msgid "Prerequisites missing suggest you read the POD for '%s': %s" msgstr "Les dépendances manquantes suggèrent que vous lisiez le POD de '%s' : %s" #: lib/Padre/Wx/FBP/Snippet.pm:92 msgid "Preview:" msgstr "Aperçu :" #: lib/Padre/Wx/Diff2.pm:27 #: lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "Différence &précédente" #: lib/Padre/Config.pm:484 msgid "Previous open files" msgstr "Fichiers précédemment ouverts" #: lib/Padre/Wx/ActionLibrary.pm:504 msgid "Print the current document" msgstr "Imprimer le document courant" #: lib/Padre/Wx/FBP/Patch.pm:104 msgid "Process" msgstr "Exécuter" #: lib/Padre/Wx/Directory.pm:200 #: lib/Padre/Wx/Dialog/WindowList.pm:222 msgid "Project" msgstr "Projet" #: lib/Padre/Wx/FBP/Preferences.pm:361 #, fuzzy msgid "Project Browser" msgstr "Fenêtre e&xplorateur de projet" #: lib/Padre/Wx/ActionLibrary.pm:1429 msgid "Project Browser - Was known as the Directory Tree" msgstr "Navigateur de projet" #: lib/Padre/Wx/FBP/SLOC.pm:29 msgid "Project Statistics" msgstr "Statistiques du projet" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "Outils projet" #: lib/Padre/Wx/ActionLibrary.pm:1808 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "Demande un nom de remplacement et remplace toutes les occurrences de cette varibale" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Punctuation characters" msgstr "Ponctuation" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Put focus on the next tab to the right" msgstr "Mettre le focus sur l'onglet de droite" #: lib/Padre/Wx/ActionLibrary.pm:2365 msgid "Put focus on the previous tab to the left" msgstr "Mettre le focus sur l'onglet de gauche" #: lib/Padre/Wx/ActionLibrary.pm:749 msgid "Put the content of the current document in the clipboard" msgstr "Copier le document courant dans le presse-papier" #: lib/Padre/Wx/ActionLibrary.pm:689 msgid "Put the current selection in the clipboard" msgstr "Copier la sélection courante dans le presse-papier" #: lib/Padre/Wx/ActionLibrary.pm:705 msgid "Put the full path of the current file in the clipboard" msgstr "Copier le chemin complet du fichier courant dans le presse-papier" #: lib/Padre/Wx/ActionLibrary.pm:735 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Copier le chemin complet du répertoire du fichier courant dans le presse-papier" #: lib/Padre/Wx/ActionLibrary.pm:720 msgid "Put the name of the current file in the clipboard" msgstr "Copier le nom du fichier courant dans le presse-papier" #: lib/Padre/Wx/Main.pm:4421 msgid "Python Files" msgstr "Fichiers Python" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:43 msgid "Quick Menu Access" msgstr "Accès menu rapide" #: lib/Padre/Wx/ActionLibrary.pm:1332 msgid "Quick access to all menu functions" msgstr "Accès rapide aux fonctions des menus." #: lib/Padre/Wx/FBP/Debugger.pm:163 #, fuzzy msgid "Quit Debugger" msgstr "Quitter le débugger (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2163 msgid "Quit Debugger (&q)" msgstr "Quitter le débugger (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2164 msgid "Quit the process being debugged" msgstr "Terminer le processus en cours de débuggage" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "Ignorer les méta-caractères jusqu'à \\E" #: lib/Padre/Wx/Dialog/About.pm:163 msgid "RAM" msgstr "RAM" #: lib/Padre/Wx/FBP/Debugger.pm:484 msgid "" "Raw\n" "You can enter what ever debug command you want!" msgstr "" "Brut\n" "Vous pouvez entrer n'importe quelle commande de debug" #: lib/Padre/Wx/Menu/File.pm:180 msgid "Re&load" msgstr "Re&charger" #: lib/Padre/Wx/ActionLibrary.pm:2303 msgid "Re&load All Plug-ins" msgstr "Recharger toutes les extensions" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Re&place in Files..." msgstr "Remplacer dans des fichiers..." #: lib/Padre/Wx/ActionLibrary.pm:2281 msgid "Re&set My plug-in" msgstr "Ré&initialiser My Plug-in" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Only" msgstr "Lecture seule" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Write" msgstr "Lecture écriture" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Lecture des fichiers depuis le serveur FTP..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:274 msgid "Reading items. Please wait" msgstr "Lecture des items. Veuillez patienter" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:327 msgid "Reading items. Please wait..." msgstr "Lecture des items. Veuillez patienter..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:215 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Supprimer le fichier « %s » ?" #: lib/Padre/Wx/FBP/CPAN.pm:277 msgid "Recent" msgstr "Fichiers &récents" #: lib/Padre/Wx/ActionLibrary.pm:608 msgid "Redo last undo" msgstr "Refaire la dernière annulation" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "Refa&ctoriser" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:368 msgid "Refactor" msgstr "Refac&toriser" #: lib/Padre/Wx/Directory.pm:226 #: lib/Padre/Wx/FBP/CPAN.pm:132 #: lib/Padre/Wx/FBP/CPAN.pm:180 msgid "Refresh" msgstr "Rafraîchir" #: lib/Padre/Wx/FBP/Breakpoints.pm:63 msgid "Refresh List" msgstr "Rafraîchir" #: lib/Padre/Wx/FBP/FoundInFiles.pm:51 #, fuzzy msgid "Refresh Search" msgstr "Rafraîchir" #: lib/Padre/Wx/FBP/VCS.pm:143 msgid "Refresh the status of working copy files and directories" msgstr "Rafraîchir l'état de la copie locale des fichiers et répertoires" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Éditeur d'expressions régulières" #: lib/Padre/Wx/FBP/Sync.pm:178 msgid "Register" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:315 #, fuzzy msgid "Registration" msgstr "Traduction" #: lib/Padre/Wx/FBP/Find.pm:79 #: lib/Padre/Wx/FBP/Replace.pm:129 msgid "Regular E&xpression" msgstr "E&xpression régulière" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Réinstallation/installation sur un autre ordinateur" #: lib/Padre/Wx/ActionLibrary.pm:389 msgid "Reload &All" msgstr "Recharger &tout" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload &File" msgstr "Recharger le &fichier" #: lib/Padre/Wx/ActionLibrary.pm:399 msgid "Reload &Some..." msgstr "Recharger &certains..." #: lib/Padre/Wx/Main.pm:4712 msgid "Reload Files" msgstr "Recharger les &fichiers" #: lib/Padre/Wx/ActionLibrary.pm:390 msgid "Reload all files currently open" msgstr "Recharger tous les fichiers actuellement ouverts" #: lib/Padre/Wx/ActionLibrary.pm:2304 msgid "Reload all plug-ins from &disk" msgstr "Recharger les extensions depuis le &disque" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Reload current file from disk" msgstr "Recharger le fichier courant depuis le disque" #: lib/Padre/Wx/Main.pm:4655 msgid "Reloading Files" msgstr "Rechargement des fichiers" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Reloads (or initially loads) the current plug-in" msgstr "(Re)charger l'extension courante" #: lib/Padre/Wx/ActionLibrary.pm:659 msgid "Remove all the selection marks" msgstr "Effacer toutes les marques de sélection" #: lib/Padre/Wx/ActionLibrary.pm:969 msgid "Remove comment for selected lines or the current line" msgstr "Décommenter les lignes sélectionnées dans le document" #: lib/Padre/Wx/ActionLibrary.pm:674 msgid "Remove the current selection and put it in the clipboard" msgstr "Supprimer la sélection courante et la placer dans le presse-papier" #: lib/Padre/Wx/ActionLibrary.pm:533 msgid "Remove the entries from the recent files list" msgstr "Vider la liste des fichiers récemment ouverts" #: lib/Padre/Wx/ActionLibrary.pm:1064 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Supprimer les espaces au début des lignes sélectionnées" #: lib/Padre/Wx/ActionLibrary.pm:1074 msgid "Remove the spaces from the end of the selected lines" msgstr "Supprimer les espaces à la fin des lignes sélectionnées" #: lib/Padre/Wx/Directory/TreeCtrl.pm:378 #: lib/Padre/Wx/Directory/TreeCtrl.pm:380 msgid "Rename" msgstr "Renommer" #: lib/Padre/Wx/Directory/TreeCtrl.pm:277 msgid "Rename Directory" msgstr "Renommer le répertoire" #: lib/Padre/Wx/Directory/TreeCtrl.pm:336 msgid "Rename File" msgstr "Renommer le fichier" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename directory" msgstr "Renomme le répertoire" #: lib/Padre/Wx/Directory/TreeCtrl.pm:170 msgid "Rename file" msgstr "Renomme le fichier" #: lib/Padre/Document/Perl.pm:815 #: lib/Padre/Document/Perl.pm:825 msgid "Rename variable" msgstr "Remplacement lexical de variable" #: lib/Padre/Wx/VCS.pm:262 msgid "Renamed" msgstr "Renommé" #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Repeat the last find to find the next match" msgstr "Répète la dernière recherche pour trouver la prochaine occurrence" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Répète la dernière recherche en arrière, pour trouver l'occurrence précédente" #: lib/Padre/Wx/FBP/Replace.pm:31 msgid "Replace" msgstr "Remplacer" #: lib/Padre/Wx/FBP/Replace.pm:186 msgid "Replace &All" msgstr "&Tout remplacer" #: lib/Padre/Wx/FBP/Replace.pm:88 msgid "Replace &With:" msgstr "Remplacement :" #: lib/Padre/Wx/FBP/Preferences.pm:500 msgid "Replace In Files" msgstr "Remplacer dans des fichiers" #: lib/Padre/Document/Perl.pm:909 #: lib/Padre/Document/Perl.pm:958 msgid "Replace Operation Canceled" msgstr "Opération de remplacement annulée" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:66 msgid "Replace With:" msgstr "Remplacement :" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Replace all occurrences of the pattern" msgstr "Remplace toutes les occurences du patron" #: lib/Padre/Wx/ReplaceInFiles.pm:247 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Remplacement terminé. « %s » trouvé %d fois dans %d fichiers de « %s »" #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "Pas de concordance dans %s : %s" #: lib/Padre/Wx/ReplaceInFiles.pm:131 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:32 msgid "Replace in Files" msgstr "Remplacer dans des fichiers" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "R&emplacer..." #: lib/Padre/Wx/Dialog/Replace.pm:128 #, perl-format msgid "Replaced %d match" msgstr "%d occurrences remplacées" #: lib/Padre/Wx/Dialog/Replace.pm:128 #, perl-format msgid "Replaced %d matches" msgstr "%d occurrences remplacées" #: lib/Padre/Wx/ReplaceInFiles.pm:188 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr "Remplacement de '%s' dans '%s'..." #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Report a New &Bug" msgstr "Rapporter un nouveau &bug" #: lib/Padre/Wx/ActionLibrary.pm:2288 msgid "Reset My plug-in" msgstr "Réinitialiser MyPlugin" #: lib/Padre/Wx/ActionLibrary.pm:2282 msgid "Reset the My plug-in to the default" msgstr "Réinitialiser l'extension My Plugin" #: lib/Padre/Wx/ActionLibrary.pm:1649 msgid "Reset the size of the letters to the default in the editor window" msgstr "Remettre la taille par défaut de la police de la fenêtre d'édition" #: lib/Padre/Wx/FBP/Preferences.pm:1237 msgid "Reset to default shortcut" msgstr "Revenir au raccourci par défaut" #: lib/Padre/Wx/Main.pm:3242 msgid "Restore focus..." msgstr "Restaurer le focus..." #: lib/Padre/Wx/FBP/VCS.pm:123 msgid "Restore pristine working copy file (undo most local edits)" msgstr "Restaurer la version du dépôt (annule les modification locales)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Return" msgstr "Entrée" #: lib/Padre/Wx/VCS.pm:561 msgid "Revert changes?" msgstr "Annuler les changements ?" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "Annuler ce changement" #: lib/Padre/Wx/VCS.pm:56 msgid "Revision" msgstr "Version" #: lib/Padre/Wx/Dialog/Preferences.pm:34 msgid "Right" msgstr "Droite" #: lib/Padre/Config.pm:60 msgid "Right Panel" msgstr "Panneau de droite" #: lib/Padre/Wx/FBP/Diff.pm:83 msgid "Right side" msgstr "Côté droite" #: lib/Padre/Wx/Main.pm:4423 msgid "Ruby Files" msgstr "Fichiers Ruby" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:369 msgid "Run" msgstr "Lancer" #: lib/Padre/Wx/ActionLibrary.pm:1981 msgid "Run &Build and Tests" msgstr "&Exécuter le build et tous les tests" #: lib/Padre/Wx/ActionLibrary.pm:1970 msgid "Run &Command" msgstr "Exécuter une &commande" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "Exécuter le &document dans Padre" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "Exécuter la sélection dans Padre" #: lib/Padre/Wx/ActionLibrary.pm:1993 msgid "Run &Tests" msgstr "Exécuter les tests" #: lib/Padre/Wx/FBP/Debugger.pm:43 msgid "" "Run Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1958 msgid "Run Script (&Debug Info)" msgstr "Exécuter le script (infos de débogage)" #: lib/Padre/Wx/ActionLibrary.pm:2012 msgid "Run T&his Test" msgstr "Exécuter ce test" #: lib/Padre/Wx/ActionLibrary.pm:1995 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "Lance tous les tests du projet ou document courant et montre la sortie dans le panneau de résultat." #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "Exécuter le filtre" #: lib/Padre/Wx/Main.pm:2725 msgid "Run setup" msgstr "Configuration du lancement" #: lib/Padre/Wx/ActionLibrary.pm:1959 msgid "Run the current document but include debug info in the output." msgstr "Lance le document courant mais inclut les informations de débogage dans la sortie." #: lib/Padre/Wx/ActionLibrary.pm:2013 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "Lance le test si le document courant est un test. (prove -bv)" #: lib/Padre/Wx/ActionLibrary.pm:1971 msgid "Runs a shell command and shows the output." msgstr "Lance une commande externe et montre le résultat." #: lib/Padre/Wx/ActionLibrary.pm:1943 msgid "Runs the current document and shows its output in the output panel." msgstr "Exécute le document courant et montre sa sortie dans le panneau de résultat." #: lib/Padre/Locale.pm:411 #: lib/Padre/Wx/FBP/About.pm:622 msgid "Russian" msgstr "Russe" #: lib/Padre/Wx/FBP/About.pm:188 msgid "Ryan Niebur" msgstr "Ryan Niebur" #: lib/Padre/Wx/FBP/Debugger.pm:444 msgid "" "S [[!]regex]\n" "List subroutine names [not] matching the regex." msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "&Enregistrer" #: lib/Padre/Wx/FBP/Preferences.pm:1194 msgid "S&et" msgstr "&Définir" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Main.pm:4425 msgid "SQL Files" msgstr "Fichiers SQL" #: lib/Padre/Wx/Dialog/Patch.pm:587 #, perl-format msgid "SVN Diff successful. You should see a new tab in editor called %s." msgstr "Diff SVN réalisé, vous devriez voir un nouvel onglet appelé %s." #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "Enregistrer" #: lib/Padre/Wx/ActionLibrary.pm:426 msgid "Save &As..." msgstr "Enregistrer &sous..." #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save &Intuition" msgstr "Enregistrer (nom auto)" #: lib/Padre/Wx/ActionLibrary.pm:450 msgid "Save All" msgstr "Enregistrer tout" #: lib/Padre/Wx/ActionLibrary.pm:486 msgid "Save Sess&ion..." msgstr "Enregistrer la session..." #: lib/Padre/Document.pm:782 msgid "Save Warning" msgstr "Avertissement sauvegarde" #: lib/Padre/Wx/ActionLibrary.pm:451 msgid "Save all the files" msgstr "Enregistrer tous les fichiers" #: lib/Padre/Wx/FBP/Preferences.pm:660 msgid "Save and Close" msgstr "Enregistrer et fermer" #: lib/Padre/Wx/ActionLibrary.pm:414 msgid "Save current document" msgstr "Sauvegarder le document courant" #: lib/Padre/Wx/Main.pm:4797 msgid "Save file as..." msgstr "Enregistrer le fichier sous..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Enregistrer la session..." #: lib/Padre/Wx/FBP/SessionManager.pm:70 msgid "Save session automatically" msgstr "&Enregistrer la session automatiquement" #: lib/Padre/Wx/FBP/VCS.pm:43 msgid "Schedule the file or directory for addition to the repository" msgstr "Préparer l'ajout du fichier/répertoire dans le dépôt" #: lib/Padre/Wx/FBP/VCS.pm:63 msgid "Schedule the file or directory for deletion from the repository" msgstr "Préparer la suppression du fichier/répertoire du dépôt" #: lib/Padre/Config.pm:1125 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/FBP/Preferences.pm:1923 msgid "Screen Layout" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1481 msgid "Script Arguments" msgstr "Arguments du script :" #: lib/Padre/Wx/FBP/Preferences.pm:1436 #, fuzzy msgid "Script Execution" msgstr "&Arrêter l'exécution" #: lib/Padre/Wx/Main.pm:4431 msgid "Script Files" msgstr "Fichiers scripts" #: lib/Padre/Wx/Directory.pm:84 #: lib/Padre/Wx/Directory.pm:505 #: lib/Padre/Wx/FBP/CPAN.pm:276 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:365 #: lib/Padre/Wx/Dialog/Find.pm:66 msgid "Search" msgstr "Rechercher" #: lib/Padre/Wx/FBP/Find.pm:87 msgid "Search &Backwards" msgstr "Rechercher en a&rrière" #: lib/Padre/Wx/FBP/FindInFiles.pm:48 #: lib/Padre/Wx/FBP/Find.pm:46 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:41 #: lib/Padre/Wx/FBP/Replace.pm:47 #, fuzzy msgid "Search &Term:" msgstr "&Motif de recherche :" #: lib/Padre/Document/Perl.pm:660 msgid "Search Canceled" msgstr "Recherche annulée" #: lib/Padre/Wx/Dialog/Replace.pm:131 #: lib/Padre/Wx/Dialog/Replace.pm:136 #: lib/Padre/Wx/Dialog/Replace.pm:161 msgid "Search and Replace" msgstr "Rechercher et remplacer" #: lib/Padre/Wx/ActionLibrary.pm:1267 msgid "Search and replace text in all files below a given directory" msgstr "Chercher un texte dans tous les fichiers en dessous d'un répertoire donné" #: lib/Padre/Wx/Panel/FoundInFiles.pm:294 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Recherche terminée. « %s » trouvé %d fois dans %d fichiers de « %s »" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Search for a text in all files below a given directory" msgstr "Chercher un texte dans tous les fichiers en dessous d'un répertoire donné" #: lib/Padre/Wx/Browser.pm:92 #: lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Ouvrir un perldoc" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Search the Perl help pages (perldoc)" msgstr "Chercher dans les pages d'aide Perl (perldoc)" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "Rechercher:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "« %s » introuvable." #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "Chercher dans le code source les parenthèses, crochets et accolades non balancées." #: lib/Padre/Wx/Panel/FoundInFiles.pm:242 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "Recherche de « %s » dans « %s »..." #: lib/Padre/Wx/FBP/About.pm:140 #: lib/Padre/Wx/FBP/About.pm:445 msgid "Sebastian Willing" msgstr "Sebastian Willing" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Second label" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Cf http://padre.perlide.org/ pour plus d'information" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Sélectionner" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Select &All" msgstr "Sélectionner &tout" #: lib/Padre/Wx/Dialog/FindInFiles.pm:52 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:44 msgid "Select Directory" msgstr "Sélectionner un répertoire" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Choisir la fonction" #: lib/Padre/Wx/ActionLibrary.pm:1307 msgid "Select a bookmark created earlier and jump to that position" msgstr "Aller à la position sauvegardée par un signet" #: lib/Padre/Wx/ActionLibrary.pm:907 msgid "Select a date, filename or other value and insert at the current location" msgstr "Insére une date, le nom de fichier ou une autre valeur à la position courante" #: lib/Padre/Wx/FBP/Preferences.pm:1426 msgid "Select a file" msgstr "Sélectionner un fichier" #: lib/Padre/Wx/ActionLibrary.pm:931 msgid "Select a file and insert its content at the current location" msgstr "Insérer le contenu d'un fichier à la position courante" #: lib/Padre/Wx/FBP/Preferences.pm:610 msgid "Select a folder" msgstr "Sélectionner un dossier" #: lib/Padre/Wx/ActionLibrary.pm:476 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "Choisir une session. Fermer tous les fichiers actuellement ouvert et ouvrir ceux listés dans la session" #: lib/Padre/Wx/ActionLibrary.pm:622 msgid "Select all the text in the current document" msgstr "Sélectionner tout le texte du document courant" #: lib/Padre/Wx/ActionLibrary.pm:1002 msgid "Select an encoding and encode the document to that" msgstr "Changer l'encodage du document" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "Select and insert a snippet at the current location" msgstr "Insérer un extrait à la position courante" #: lib/Padre/CPAN.pm:100 msgid "Select distribution to install" msgstr "Sélectionner la distribution à installer" #: lib/Padre/Wx/Main.pm:5268 msgid "Select files to close:" msgstr "Sélectionner les fichiers à fermer:" #: lib/Padre/Wx/Dialog/OpenResource.pm:238 msgid "Select one or more resources to open" msgstr "Sélectionnez une ou plusieurs ressources à ouvrir" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Sélectionnez les fichiers à fermer" #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Select some open files for reload" msgstr "Sélectionner certains fichiers à réouvrir" #: lib/Padre/Wx/Dialog/HelpSearch.pm:131 msgid "Select the help &topic" msgstr "Choisir le &sujet d'aide" #: lib/Padre/Wx/ActionLibrary.pm:882 msgid "Select to Matching &Brace" msgstr "&Sélection jusqu'à la parenthèse correspondante" #: lib/Padre/Wx/ActionLibrary.pm:883 msgid "Select to the matching opening or closing brace" msgstr "Sélectionne jusqu'à la parententhèse correspondante" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" "Sélectionner la fonction devant laquelle vous souhaitez\n" "insérer la nouvelle fonction." #: lib/Padre/Wx/FBP/Document.pm:129 msgid "Selection" msgstr "Sélection" #: lib/Padre/Document/Perl.pm:952 msgid "Selection not part of a Perl statement?" msgstr "La sélection ne fait pas partie d'une instruction Perl ?" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Send a bug report to the Padre developer team" msgstr "Envoyer un rapport de bug aux développeurs Padre" #: lib/Padre/Wx/FBP/VCS.pm:103 msgid "Send changes from your working copy to the repository" msgstr "Envoyer vos changements locaux vers le dépôt" #: lib/Padre/File/HTTP.pm:52 #, perl-format msgid "Sending HTTP request %s..." msgstr "Requête HTTP %s..." #: lib/Padre/Wx/FBP/Sync.pm:38 #, fuzzy msgid "Server:" msgstr "Serveur" #: lib/Padre/Wx/FBP/SessionManager.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Gestion des sessions" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "Nom de la session :" #: lib/Padre/Wx/ActionLibrary.pm:1295 msgid "Set &Bookmark" msgstr "Placer un si&gnet" #: lib/Padre/Wx/FBP/Bookmarks.pm:38 #, fuzzy msgid "Set Bookmark:" msgstr "Placer un signet" #: lib/Padre/Wx/ActionLibrary.pm:2142 msgid "Set Breakpoint (&b)" msgstr "&Définir un point d'arrêt" #: lib/Padre/Wx/FBP/Breakpoints.pm:83 #, fuzzy msgid "Set Breakpoints (toggle)" msgstr "&Définir un point d'arrêt" #: lib/Padre/Wx/ActionLibrary.pm:1665 msgid "Set Padre in full screen mode" msgstr "Mettre Padre en mode plein-écran" #: lib/Padre/Wx/ActionLibrary.pm:2143 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "Placer un point d'arrêt à la position courante du curseur avec une condition" #: lib/Padre/Wx/ActionLibrary.pm:2391 #, fuzzy msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "Mettre le focus sur le panneau de résultat" #: lib/Padre/Wx/ActionLibrary.pm:2447 msgid "Set the focus to the \"Command Line\" window" msgstr "Mettre le focus sur le panneau Ligne de commande" #: lib/Padre/Wx/ActionLibrary.pm:2402 msgid "Set the focus to the \"Functions\" window" msgstr "Mettre le focus sur le panneau des fonctions" #: lib/Padre/Wx/ActionLibrary.pm:2414 msgid "Set the focus to the \"Outline\" window" msgstr "Mettre le focus sur le panneau Profil" #: lib/Padre/Wx/ActionLibrary.pm:2425 msgid "Set the focus to the \"Output\" window" msgstr "Mettre le focus sur le panneau de résultat" #: lib/Padre/Wx/ActionLibrary.pm:2436 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Mettre le focus sur le panneau de vérification syntaxique" #: lib/Padre/Wx/ActionLibrary.pm:2458 msgid "Set the focus to the main editor window" msgstr "Mettre le focus sur la fenêtre d'édition principale" #: lib/Padre/Wx/FBP/Preferences.pm:1199 msgid "Sets the keyboard binding" msgstr "Définir le raccourci clavier" #: lib/Padre/Config.pm:534 #: lib/Padre/Config.pm:789 msgid "Several placeholders like the filename can be used" msgstr "" #: lib/Padre/Wx/Syntax.pm:59 msgid "Severe Warning" msgstr "Avertissement important" #: lib/Padre/Wx/ActionLibrary.pm:2200 msgid "Share your preferences between multiple computers" msgstr "Partagez vos préférences entre plusieurs ordinateurs" #: lib/Padre/MIME.pm:1037 msgid "Shell Script" msgstr "Script Shell" #: lib/Padre/Wx/FBP/Preferences.pm:1171 msgid "Shift" msgstr "Maj" #: lib/Padre/Wx/FBP/About.pm:472 msgid "Shlomi Fish" msgstr "Shlomi Fish" #: lib/Padre/Wx/Dialog/Preferences.pm:169 #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Raccourci" #: lib/Padre/Wx/FBP/Preferences.pm:1143 msgid "Shortcut:" msgstr "&Raccourci :" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Shorten the common path in window list" msgstr "Raccourcir le chemin commun dans la liste des fenêtres" #: lib/Padre/Wx/FBP/VCS.pm:239 #: lib/Padre/Wx/FBP/Breakpoints.pm:159 #: lib/Padre/Wx/FBP/Debugger.pm:519 msgid "Show" msgstr "Montrer" #: lib/Padre/Wx/ActionLibrary.pm:1377 msgid "Show &Command Line" msgstr "Fenêtre &ligne de commande" #: lib/Padre/Wx/Dialog/RegexEditor.pm:215 msgid "Show &Description" msgstr "&Description" #: lib/Padre/Wx/ActionLibrary.pm:1367 #, fuzzy msgid "Show &Function List" msgstr "Fenêtre des &fonctions" #: lib/Padre/Wx/ActionLibrary.pm:1605 msgid "Show &Indentation Guide" msgstr "Montrer les &guides d'indentation" #: lib/Padre/Wx/ActionLibrary.pm:1417 msgid "Show &Outline" msgstr "Fenêtre &profil" #: lib/Padre/Wx/ActionLibrary.pm:1357 msgid "Show &Output" msgstr "Fenêtre &résultat" #: lib/Padre/Wx/ActionLibrary.pm:1428 msgid "Show &Project Browser" msgstr "Fenêtre e&xplorateur de projet" #: lib/Padre/Wx/ActionLibrary.pm:1407 #, fuzzy msgid "Show &Task List" msgstr "Fenêtre liste &To-do" #: lib/Padre/Wx/ActionLibrary.pm:1595 msgid "Show &Whitespaces" msgstr "Montrer les e&spaces" #: lib/Padre/Wx/ActionLibrary.pm:1563 msgid "Show C&urrent Line" msgstr "S&urligner la ligne courante" #: lib/Padre/Wx/ActionLibrary.pm:1387 msgid "Show CPA&N Explorer" msgstr "Afficher l'e&xplorateur CPAN" #: lib/Padre/Wx/ActionLibrary.pm:1549 msgid "Show Ca&ll Tips" msgstr "Afficher les astuces" #: lib/Padre/Wx/ActionLibrary.pm:1508 msgid "Show Code &Folding" msgstr "Afficher les re&plis de code" #: lib/Padre/Wx/ActionLibrary.pm:2062 #, fuzzy msgid "Show Debug Breakpoints" msgstr "Supprimer le point d'arrêt" #: lib/Padre/Wx/ActionLibrary.pm:2075 #, fuzzy msgid "Show Debug Output" msgstr "Fenêtre &résultat" #: lib/Padre/Wx/ActionLibrary.pm:2085 #, fuzzy msgid "Show Debugger" msgstr "Débugger" #: lib/Padre/Wx/FBP/Debugger.pm:212 msgid "Show Global Variables" msgstr "Montrer les variables globales" #: lib/Padre/Wx/ActionLibrary.pm:1497 msgid "Show Line &Numbers" msgstr "Afficher les numéros de ligne" #: lib/Padre/Wx/FBP/Debugger.pm:193 msgid "Show Local Variables" msgstr "Montrer les variables locales" #: lib/Padre/Wx/ActionLibrary.pm:1585 msgid "Show Ne&wlines" msgstr "Montrer les &retours chariot" #: lib/Padre/Wx/ActionLibrary.pm:1573 msgid "Show Right &Margin" msgstr "Afficher la &marge de droite" #: lib/Padre/Wx/ActionLibrary.pm:1438 msgid "Show S&yntax Check" msgstr "Fenêtre de vérification s&yntaxique" #: lib/Padre/Wx/ActionLibrary.pm:1459 msgid "Show St&atus Bar" msgstr "&Barre d'état" #: lib/Padre/Wx/FBP/Syntax.pm:63 msgid "Show Standard Error" msgstr "Montrer le flux des erreurs" #: lib/Padre/Wx/Dialog/RegexEditor.pm:245 msgid "Show Subs&titution" msgstr "Afficher la substitution" #: lib/Padre/Wx/ActionLibrary.pm:1469 msgid "Show Tool&bar" msgstr "Ba&rre d'outils" #: lib/Padre/Wx/ActionLibrary.pm:1448 msgid "Show V&ersion Control" msgstr "Afficher la gestion de &versions" #: lib/Padre/Wx/ActionLibrary.pm:1574 msgid "Show a vertical line indicating the right margin" msgstr "Montrer une ligne verticale indiquant la marge de droite" #: lib/Padre/Wx/ActionLibrary.pm:1408 #, fuzzy msgid "Show a window listing all task items in the current document" msgstr "Afficher le panneau listant toutes les TODO du document courant" #: lib/Padre/Wx/ActionLibrary.pm:1368 msgid "Show a window listing all the functions in the current document" msgstr "Afficher le panneau listant toutes les fonctions du document courant" #: lib/Padre/Wx/ActionLibrary.pm:1418 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "Afficher le panneau listant toutes les parties du fichier courant (fonctions, pragmas, modules)" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Show as" msgstr "Montrer en tant que" #: lib/Padre/Wx/ActionLibrary.pm:1154 msgid "Show as &Decimal" msgstr "Montrer en tant que &décimal" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Show as &Hexadecimal" msgstr "Montrer en tant qu'&hexadécimal" #: lib/Padre/Plugin/PopularityContest.pm:212 msgid "Show current report" msgstr "Montrer le rapport" #: lib/Padre/Wx/ActionLibrary.pm:1397 #, fuzzy msgid "Show diff window!" msgstr "Afficher la fenêtre de ligne de commande" #: lib/Padre/Wx/ActionLibrary.pm:2593 msgid "Show information about Padre" msgstr "Afficher des informations sur Padre" # L'espace pour ce libellé est limité. S'il est trop long il décale trop à d roite d'autres contrôles du dialogue. #: lib/Padre/Wx/FBP/Preferences.pm:152 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "Messages d'information de basse priorité dans la barre d'état (pas dans un popup)" #: lib/Padre/Config.pm:1144 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "Montrer les messages d'information de basse priorité dans la barre d'état (pas dans un popup)" #: lib/Padre/Config.pm:781 msgid "Show or hide the status bar at the bottom of the window." msgstr "Montrer/Cacher la barre de statut en bas de l'écran." #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "Affiche les positions précédentes" #: lib/Padre/Wx/FBP/Preferences.pm:742 msgid "Show right margin at column" msgstr "Afficher une marge droite à la colonne :" #: lib/Padre/Wx/FBP/Preferences.pm:563 #, fuzzy msgid "Show splash screen" msgstr "Afficher l'image de démarrage" #: lib/Padre/Wx/ActionLibrary.pm:1155 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "Montrer les valeurs ASCII en décimal du texte sélectionné dans le panneau de résultat" #: lib/Padre/Wx/ActionLibrary.pm:1145 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "Montrer les codes ASCII du texte sélectionné dans le panneau de résultat" #: lib/Padre/Wx/ActionLibrary.pm:2505 msgid "Show the POD (Perldoc) version of the current document" msgstr "Montrer la version POD (perldoc) du document courant" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "Show the Padre help" msgstr "Afficher l'aide de Padre" #: lib/Padre/Wx/ActionLibrary.pm:2234 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Montre le gestionnaire d'extensions de Padre pour les (dés)activer." #: lib/Padre/Wx/ActionLibrary.pm:1378 msgid "Show the command line window" msgstr "Afficher la fenêtre de ligne de commande" #: lib/Padre/Wx/ActionLibrary.pm:2492 msgid "Show the help article for the current context" msgstr "Afficher l'aide pour le contexte actuel" #: lib/Padre/Wx/ActionLibrary.pm:1358 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "Montrer le panneau contenant la sortie et l'erreur standard des scripts lancés" #: lib/Padre/Wx/ActionLibrary.pm:1719 msgid "Show what perl thinks about your code" msgstr "Affiche ce que perl pense de votre code" #: lib/Padre/Wx/ActionLibrary.pm:1509 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "Montrer/Cacher une barre verticale sur la gauche pour permettre de replier le code" #: lib/Padre/Wx/ActionLibrary.pm:1498 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "Montrer/Cacher les numéros de ligne des documents dans la partie gauche de la fenêtre" #: lib/Padre/Wx/ActionLibrary.pm:1586 msgid "Show/hide the newlines with special character" msgstr "Montrer/Cacher les retours chariot avec un caractère spécial" #: lib/Padre/Wx/ActionLibrary.pm:1460 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Montrer/Cacher la barre de statut en bas de l'écran" #: lib/Padre/Wx/ActionLibrary.pm:1596 msgid "Show/hide the tabs and the spaces with special characters" msgstr "Montrer/Cacher les espaces et tabulations avec des caractères spéciaux" #: lib/Padre/Wx/ActionLibrary.pm:1470 msgid "Show/hide the toolbar at the top of the editor" msgstr "Montrer/Cacher la barre d'outils en haut de l'éditeur" #: lib/Padre/Wx/ActionLibrary.pm:1606 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "Montrer/Cacher des lignes verticales à chaque position d'indentation sur la gauche" #: lib/Padre/Config.pm:471 msgid "Showing the splash image during start-up" msgstr "Afficher une image pour patienter au démarrage" #: lib/Padre/Wx/FBP/About.pm:508 msgid "Simone Blandino" msgstr "Simone Blandino" #: lib/Padre/Wx/ActionLibrary.pm:1108 msgid "Simplistic Patch only works on saved files" msgstr "« Patch simpliste » fonctionne uniquement sur les fichiers sauvegardés" #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "Simuler un crash (background)" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "Simuler un crash" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "Simuler une exception" #: lib/Padre/Wx/ActionLibrary.pm:2377 msgid "Simulate a right mouse button click to open the context menu" msgstr "Simule un clic droit pour ouvrir le menu contextuel" #: lib/Padre/Wx/Dialog/RegexEditor.pm:476 msgid "Single-line (&s)" msgstr "Simple-ligne (%s)" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "Taille de la police" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "Sauter la question" #: lib/Padre/Wx/Dialog/OpenResource.pm:270 msgid "Skip using MANIFEST.SKIP" msgstr "Ignorer en utilisant MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/OpenResource.pm:266 msgid "Skip version control system files" msgstr "Sauter les fichiers de systèmes de gestion de version" #: lib/Padre/Document.pm:1414 #: lib/Padre/Document.pm:1415 msgid "Skipped for large files" msgstr "Omis pour les gros fichiers" #: lib/Padre/Wx/FBP/Snippet.pm:61 #, fuzzy msgid "Snippet:" msgstr "Extrait" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "Il y a un problème dans votre base de données Padre :\n" "la session %s est listée, mais il n'y a pas de données." #: lib/Padre/Wx/Dialog/Patch.pm:500 msgid "Sorry Diff Failed, are you sure your choice of files was correct for this action" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:605 msgid "Sorry, Diff failed. Are you sure your have access to the repository for this action" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:442 msgid "Sorry, patch failed, are you sure your choice of files was correct for this action" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:73 #, fuzzy msgid "Sort Order:" msgstr "Ordre du code" #: lib/Padre/Wx/FBP/Document.pm:228 msgid "Source Lines of Code" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:30 msgid "Space" msgstr "Espace" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "Space and tab" msgstr "Espaces et tabulations" #: lib/Padre/Wx/Main.pm:6305 msgid "Space to Tab" msgstr "Convertir les espaces en tabulations" #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Spaces to &Tabs..." msgstr "Convertir les espaces en &tabulations" #: lib/Padre/Locale.pm:249 #: lib/Padre/Wx/FBP/About.pm:601 msgid "Spanish" msgstr "Espagnol" #: lib/Padre/Locale.pm:235 msgid "Spanish (Argentina)" msgstr "Espagnol (Argentine)" #: lib/Padre/Wx/ActionLibrary.pm:906 msgid "Special &Value..." msgstr "&Valeur spéciale..." #: lib/Padre/Config.pm:1383 msgid "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "" #: lib/Padre/Config.pm:1402 msgid "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:523 msgid "Startup" msgstr "" #: lib/Padre/Wx/VCS.pm:53 #: lib/Padre/Wx/FBP/DebugOutput.pm:37 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:35 #: lib/Padre/Wx/CPAN/Listview.pm:59 msgid "Status" msgstr "Statut" #: lib/Padre/Wx/FBP/Sync.pm:52 #, fuzzy msgid "Status:" msgstr "Statut" #: lib/Padre/Wx/FBP/About.pm:152 msgid "Steffen Muller" msgstr "Steffen Muller" #: lib/Padre/Wx/FBP/FoundInFiles.pm:111 #, fuzzy msgid "Stop Search" msgstr "Arrêter la recherche" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "Stop a running task." msgstr "Arrêter une tâche en cours." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "Arrête le traitement des autres actions de la queue pendant 1 seconde" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Arrête le traitement des autres actions de la queue pendant 10 secondes" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Arrête le traitement des autres actions de la queue pendant 30 secondes" # vérifier le contexte #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "String" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:195 msgid "Success" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Changer la langue de Padre vers « %s »" #: lib/Padre/Wx/ActionLibrary.pm:1484 msgid "Switch document type" msgstr "Changer le type de document" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Changer les menus au défaut" #: lib/Padre/Wx/Syntax.pm:159 #: lib/Padre/Wx/FBP/Preferences.pm:455 msgid "Syntax Check" msgstr "Vérification syntaxique" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Valeur par défaut du système" #: lib/Padre/Wx/FBP/Debugger.pm:356 msgid "" "T\n" "Produce a stack backtrace." msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:29 #: lib/Padre/Wx/Dialog/RegexEditor.pm:140 msgid "Tab" msgstr "Tab" #: lib/Padre/Wx/FBP/Preferences.pm:998 #, fuzzy msgid "Tab Spaces:" msgstr "Convertir les tabulations en espaces" #: lib/Padre/Wx/Main.pm:6306 msgid "Tab to Space" msgstr "Convertir les tabulations en espaces" #: lib/Padre/Wx/Menu/Edit.pm:233 msgid "Tabs and S&paces" msgstr "&Tabulations et espaces" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Tabs to &Spaces..." msgstr "Convertir les tabulations en e&spaces" #: lib/Padre/Wx/TaskList.pm:184 #: lib/Padre/Wx/FBP/Preferences.pm:88 #: lib/Padre/Wx/FBP/Preferences.pm:406 #: lib/Padre/Wx/Panel/TaskList.pm:96 msgid "Task List" msgstr "" #: lib/Padre/MIME.pm:880 msgid "Text" msgstr "Texte" #: lib/Padre/Wx/Main.pm:4427 #: lib/Padre/Wx/Choice/Files.pm:20 msgid "Text Files" msgstr "Fichiers texte" #: lib/Padre/Wx/Dialog/Bookmarks.pm:108 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "Le signet '%s' n'existe plus" #: lib/Padre/Document.pm:254 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "Le fichier %s que vous tentez d'ouvrir est ouvert est de %s octets. C'est plus que la limite arbitraire de Padre de %s. Ouvrir le fichier pourrait diminuer la performance. Voulez-vous malgré cela l'ouvrir ?" #: lib/Padre/Wx/Dialog/Preferences.pm:476 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "Le raccourci « %s » est déjà utilisé par l'action « %s ».\n" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "Il n'y a pas encore de position sauvée." #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Ce document ne contient pas de POD" #: lib/Padre/Wx/ActionLibrary.pm:2273 msgid "This function reloads the My plug-in without restarting Padre" msgstr "Cette fonction recharge l'extension MyPlugin sans redémarrer Padre" #: lib/Padre/Config.pm:1374 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "Ceci nécessite que Devel::EndStats soit installé et le redémarrage de Padre" #: lib/Padre/Config.pm:1393 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "Ceci requiert Devel::TraceUse installé et un redémarrage de Padre" #: lib/Padre/Wx/Main.pm:5396 msgid "This type of file (URL) is missing delete support." msgstr "Ce type de fichier (URL) ne reconnaît pas la fonction suppression." #: lib/Padre/Wx/Dialog/About.pm:154 msgid "Threads" msgstr "Threads" #: lib/Padre/Wx/FBP/Preferences.pm:1311 #: lib/Padre/Wx/FBP/Preferences.pm:1354 #, fuzzy msgid "Timeout (seconds)" msgstr "Expiration (en secondes) :" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "Aujourd'hui" #: lib/Padre/Config.pm:1447 msgid "Toggle Diff window feature that compares two buffers graphically" msgstr "" #: lib/Padre/Config.pm:1465 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "(Dés)activer l'autodétection de Perl 6 dans des fichiers Perl 5 " #: lib/Padre/Wx/FBP/Debugger.pm:316 msgid "" "Toggle running breakpoints (update DB)\n" "b\n" "Sets breakpoint on current line\n" "B line\n" "Delete a breakpoint from the specified line." msgstr "" #: lib/Padre/Wx/FBP/About.pm:230 msgid "Tom Eliaz" msgstr "Tom Eliaz" #: lib/Padre/Wx/FBP/Preferences.pm:344 msgid "Tool Positions" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:231 msgid "Trace" msgstr "" #: lib/Padre/Wx/FBP/About.pm:850 msgid "Translation" msgstr "Traduction" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Vrai" #: lib/Padre/Locale.pm:421 #: lib/Padre/Wx/FBP/About.pm:637 msgid "Turkish" msgstr "Turc" #: lib/Padre/Wx/ActionLibrary.pm:1388 msgid "Turn on CPAN explorer" msgstr "Activer l'explorateur CPAN" #: lib/Padre/Wx/ActionLibrary.pm:1398 msgid "Turn on Diff window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2063 msgid "Turn on debug breakpoints panel" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1439 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "Activer la vérification syntaxique du document courant et afficher le résultat dans un panneau" #: lib/Padre/Wx/ActionLibrary.pm:1450 msgid "Turn on version control view of the current project and show version control changes in a window" msgstr "Activer la vue des versions du projet et afficher les changement de version dans un panneau" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Type" #: lib/Padre/Wx/Dialog/HelpSearch.pm:148 msgid "Type a help &keyword to read:" msgstr "&Taper un sujet d'aide à atteindre :" #: lib/Padre/MIME.pm:40 msgid "UNKNOWN" msgstr "INCONNU" #: lib/Padre/Wx/ActionLibrary.pm:1528 msgid "Un&fold All" msgstr "Déplier &tout" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "Impossible d'analyser %s" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Undo last change in current file" msgstr "Annuler le dernier changement dans le fichier courant" #: lib/Padre/Wx/ActionLibrary.pm:1529 #: lib/Padre/Wx/ActionLibrary.pm:1539 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "Déplier tous les blocks pouvant l'être (nécessite l'activation du repliage)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Unicode character 'name'" msgstr "Cararactère unicode « nom »" #: lib/Padre/Locale.pm:143 #: lib/Padre/Wx/Main.pm:4171 msgid "Unknown" msgstr "Inconnu" #: lib/Padre/PluginManager.pm:770 #: lib/Padre/Document/Perl.pm:656 #: lib/Padre/Document/Perl.pm:905 #: lib/Padre/Document/Perl.pm:954 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "Erreur inconnue" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Erreur inconnue de " #: lib/Padre/PluginHandle.pm:24 #, fuzzy msgid "Unloaded" msgstr "non chargé" #: lib/Padre/Wx/VCS.pm:258 msgid "Unmodified" msgstr "Inchangé" #: lib/Padre/Document.pm:1062 #, perl-format msgid "Unsaved %d" msgstr "Non sauvegardé %d" #: lib/Padre/Wx/Main.pm:5129 msgid "Unsaved File" msgstr "Fichier non sauvegardé" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "non supporté: %s" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "Sans titre" #: lib/Padre/Wx/VCS.pm:251 #: lib/Padre/Wx/VCS.pm:265 #: lib/Padre/Wx/FBP/VCS.pm:189 msgid "Unversioned" msgstr "Pas versionné" #: lib/Padre/Wx/Dialog/Preferences.pm:31 msgid "Up" msgstr "Haut" #: lib/Padre/Wx/VCS.pm:264 msgid "Updated but unmerged" msgstr "Mis à jour mais non fusionné" #: lib/Padre/Wx/FBP/Sync.pm:202 msgid "Upload" msgstr "Upload" #: lib/Padre/Wx/Menu/Edit.pm:263 msgid "Upper/Lo&wer Case" msgstr "&Majuscules / Minuscules" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Uppercase characters" msgstr "Majuscules" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Uppercase next character" msgstr "Caractère suivant en majuscule" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Uppercase till \\E" msgstr "Majuscules jusqu'à \\E" #: lib/Padre/Wx/FBP/Preferences.pm:1346 msgid "Use FTP passive mode" msgstr "Utiliser le mode FTP passif" #: lib/Padre/Wx/ActionLibrary.pm:1135 msgid "Use Perl source as filter" msgstr "Utiliser le source Perl comme filtre" #: lib/Padre/Wx/FBP/Preferences.pm:644 msgid "Use X11 middle button paste style" msgstr "Style de collage X11 avec le bouton du milieu" #: lib/Padre/Wx/ActionLibrary.pm:1321 msgid "Use a filter to select one or more files" msgstr "Entrer un filtre pour sélectionner un fichier" #: lib/Padre/Wx/FBP/Preferences.pm:1453 msgid "Use external window for execution" msgstr "Utiliser une fenêtre externe pour l'exécution" #: lib/Padre/Wx/FBP/Preferences.pm:972 msgid "Use tabs instead of spaces" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "Utilisateur" #: lib/Padre/Wx/ActionLibrary.pm:2322 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "Utiliser CPAN.pm pour installer un paquetage décompressé localement" #: lib/Padre/Wx/ActionLibrary.pm:2332 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "Utiliser pip pour télécharger un fichier .tar.gz et l'installer en utilisant CPAN.pm" #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Valeur" #: lib/Padre/Wx/ActionLibrary.pm:1911 msgid "Variable Name" msgstr "Nom de variable" #: lib/Padre/Document/Perl.pm:865 msgid "Variable case change" msgstr "Changer la casse de la variable" #: lib/Padre/Wx/VCS.pm:124 #: lib/Padre/Wx/FBP/Preferences.pm:438 msgid "Version Control" msgstr "Versions" #: lib/Padre/Wx/FBP/Preferences.pm:931 #, fuzzy msgid "Version Control Tool" msgstr "Versions" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Vertically &Align Selected" msgstr "&Aligner verticalement" #: lib/Padre/Wx/Syntax.pm:77 msgid "Very Fatal Error" msgstr "Erreur fatale" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:366 msgid "View" msgstr "Affichage" #: lib/Padre/Wx/ActionLibrary.pm:2572 msgid "View All &Open Bugs" msgstr "Afficher tous les bugs &ouverts" #: lib/Padre/Wx/ActionLibrary.pm:2573 msgid "View all known and currently unsolved bugs in Padre" msgstr "Voir tous les bugs de Padre connus et non résolus" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Visible characters" msgstr "Caractères visibles" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Visible characters and spaces" msgstr "Caractères visibles et espaces" #: lib/Padre/Wx/ActionLibrary.pm:2175 msgid "Visit Debug &Wiki..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Visit Perl Websites..." msgstr "" #: lib/Padre/Document.pm:778 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "Le nom de fichier %s ne correspond pas au nom de fichier interne %s, voulez-vous annuler la sauvegarde ?" #: lib/Padre/Document.pm:260 #: lib/Padre/Wx/Syntax.pm:47 #: lib/Padre/Wx/Main.pm:3127 #: lib/Padre/Wx/Main.pm:3850 #: lib/Padre/Wx/Main.pm:5412 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Avertissement" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:538 #, perl-format msgid "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache Subversion\"" msgstr "" #: lib/Padre/Wx/FBP/Expression.pm:96 #, fuzzy msgid "Watch" msgstr "Patch" #: lib/Padre/PluginManager.pm:383 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Plusieurs nouvelles extensions trouvées.\n" "Afin de les configurer et les activer, aller dans\n" "Extension -> Gestion des extensions\n" "\n" "Liste des nouvelles extensions :\n" "\n" #: lib/Padre/Wx/ActionLibrary.pm:2076 #: lib/Padre/Wx/ActionLibrary.pm:2086 msgid "We should not need this menu item" msgstr "" #: lib/Padre/Wx/Main.pm:4429 msgid "Web Files" msgstr "Fichiers web" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Peu importe" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "When typing in functions allow showing short examples of the function" msgstr "Montrer un court exemple de la fonction lorsqu'elle est utilisée" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "Where did you hear about Padre?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Whitespace characters" msgstr "Blancs" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:372 msgid "Window" msgstr "Fenêtre" #: lib/Padre/Wx/Dialog/WindowList.pm:34 msgid "Window list" msgstr "Liste des fenêtres" #: lib/Padre/Wx/ActionLibrary.pm:545 msgid "Word count and other statistics of the current document" msgstr "Nombre de mots et autres statistiques du document courant" #: lib/Padre/Wx/FBP/Document.pm:156 msgid "Words" msgstr "Mots" #: lib/Padre/Wx/ActionLibrary.pm:1616 msgid "Wrap long lines" msgstr "Continuer les longues lignes sur la ligne suivante" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Enregistrement du fichier vers le serveur FTP..." #: lib/Padre/Wx/Output.pm:165 #: lib/Padre/Wx/Main.pm:2983 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "La version de Wx::Perl::ProcessStream est%s qui est connue pour causer des problèmes. Récupérez la version 0.20 en tapant\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "Année" #: lib/Padre/File/HTTP.pm:162 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "" "Vous allez écrire un fichier en utilisant HTTP PUT.\n" "C'est très expérimental et n'est pas accepté par la plupart des serveurs." #: lib/Padre/Wx/Editor.pm:1888 msgid "You must select a range of lines" msgstr "Vous devez sélectionner un ensemble de lignes" #: lib/Padre/Wx/Main.pm:3849 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Un processus tourne toujours. Voulez-vous le tuer et quitter ?" #: lib/Padre/MIME.pm:1215 msgid "ZIP Archive" msgstr "" #: lib/Padre/Wx/FBP/About.pm:158 #: lib/Padre/Wx/FBP/About.pm:451 msgid "Zeno Gantner" msgstr "Zeno Gantner" #: lib/Padre/Wx/FBP/Debugger.pm:123 msgid "" "c [line|sub]\n" "Continue, optionally inserting a one-time-only breakpoint at the specified line or subroutine." msgstr "" #: lib/Padre/Wx/FBP/About.pm:314 msgid "code4pay" msgstr "code4pay" #: lib/Padre/CPAN.pm:180 msgid "cpanm is unexpectedly not installed" msgstr "cpanm n'est pas installé" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:353 msgid "fresh" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:83 msgid "" "n [expr]\n" "Next. Executes over subroutine calls, until the beginning of the next statement. If an expression is supplied that includes function calls, those functions will be executed with stops before each statement." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:396 msgid "" "o\n" "Display all options.\n" "\n" "o booloption ...\n" "Set each listed Boolean option to the value 1.\n" "\n" "o anyoption? ...\n" "Print out the value of one or more options.\n" "\n" "o option=value ...\n" "Set the value of one or more options. If the value has internal whitespace, it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" to call less with those specific options. You may use either single or double quotes, but if you do, you must escape any embedded instances of same sort of quote you began with, as well as any escaping any escapes that immediately precede that quote but which are not meant to escape the quote itself. In other words, you follow single-quoting rules irrespective of the quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?\"\" .\n" "\n" "For historical reasons, the =value is optional, but defaults to 1 only where it is safe to do so--that is, mostly for Boolean options. It is always better to assign a specific value using = . The option can be abbreviated, but for clarity probably should not be. Several options can be set together. See Configurable Options for a list of these." msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:113 #, fuzzy msgid "project" msgstr "Projet" #: lib/Padre/Wx/FBP/Debugger.pm:103 msgid "" "r\n" "Continue until the return from the current subroutine. Dump the return value if the PrintRet option is set (default)." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:63 msgid "" "s [expr]\n" "Single step. Executes until the beginning of another statement, descending into subroutine calls. If an expression is supplied that includes function calls, it too will be single-stepped." msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:118 msgid "show breakpoints in project" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:236 msgid "" "t\n" "Toggle trace mode (see also the AutoTrace option)." msgstr "" "t\n" "Bascule le mode trace (voir aussi l'option auto-trace)." #: lib/Padre/Wx/FBP/Debugger.pm:276 msgid "v [line] View window around line." msgstr "v [ligne] Voir la fenêtre autour de la ligne." #: lib/Padre/Wx/FBP/Debugger.pm:464 msgid "" "w expr\n" "Add a global watch-expression. Whenever a watched global changes the debugger will stop and display the old and new values.\n" "\n" "W expr\n" "Delete watch-expression\n" "W *\n" "Delete all watch-expressions." msgstr "" "w expr\n" "Ajoute une expression à surveiller globale. Dès qu'elle changera le débogueur s'arrêtera et affichera l'ancienne et la nouvelle valeur.\n" "\n" "W expr\n" "Supprime une expression à surveiller\n" "W *\n" "Supprime toutes les expressions à surveiller." #: lib/Padre/Wx/FBP/Debugger.pm:217 msgid "" "working now with some gigery pokery to get around\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "grep { }" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "map { }" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "Support en direct pour wxPerl" #: lib/Padre/Wx/FBP/Debugger.pm:198 msgid "" "y [level [vars]]\n" "Display all (or some) lexical variables (mnemonic: mY variables) in the current scope or level scopes higher. You can limit the variables that you see with vars which works exactly as it does for the V and X commands. Requires the PadWalker module version 0.08 or higher; will warn if this isn't installed. Output is pretty-printed in the same style as for V and the format is controlled by the same options." msgstr "" #~ msgid "&Install CPAN Module" #~ msgstr "Installer un module du &CPAN" #~ msgid "&Module Tools" #~ msgstr "Outils &module" #~ msgid "&Update" #~ msgstr "&Mettre à jour" #~ msgid "Auto-Complete" #~ msgstr "Autocomplétion" #~ msgid "Automatic indentation style detection" #~ msgstr "Détection automatique du style d'indentation" #~ msgid "Case &sensitive" #~ msgstr "&Sensible à la casse" #~ msgid "Characters (including whitespace)" #~ msgstr "Caractères (incluant les blancs)" #~ msgid "Check for file updates on disk every (seconds)" #~ msgstr "Vérifier les mises à jour sur disque toutes les (secondes) :" #~ msgid "Cl&ose Window on Hit" #~ msgstr "Fermer la fenêtre à la première occurrence" #~ msgid "Close Window on &Hit" #~ msgstr "Fermer la fenêtre à la première occurrence" #~ msgid "Content" #~ msgstr "Contenu" #~ msgid "Copy &All" #~ msgstr "&Tout copier" #~ msgid "Copy &Selected" #~ msgstr "Copier la &sélection" #~ msgid "Core Team" #~ msgstr "Équipe principale" #~ msgid "Could not determine the comment character for %s document type" #~ msgstr "Pas de caractère de commentaire défini pour le type de document %s" #~ msgid "Could not set breakpoint on file '%s' row '%s'" #~ msgstr "" #~ "Ne peut placer de point d'arrêt dans le fichier '%s' à la ligne '%s'" #~ msgid "Created by:" #~ msgstr "Créé par" #~ msgid "Debugger not running" #~ msgstr "Le debugger n'est pas lancé" #~ msgid "Developers" #~ msgstr "Développeurs" #~ msgid "Did not find any matches." #~ msgstr "Aucune concordance trouvée." #~ msgid "" #~ "Display the current value of a variable in the right hand side debugger " #~ "pane" #~ msgstr "" #~ "Montre la valeur courante d'une variable dans le panneau de débogage de " #~ "droite" #~ msgid "Document Tools (Right)" #~ msgstr "Outils document (droite)" #~ msgid "Evaluate Expression..." #~ msgstr "Évaluer l'expression..." #~ msgid "" #~ "Execute the next statement, enter subroutine if needed. (Start debugger " #~ "if it is not yet running)" #~ msgstr "" #~ "Exécute la prochaine instruction, entre dans la fonction si besoin. " #~ "(Démarre le débogueur s'il n'était pas lancé)" #~ msgid "" #~ "Execute the next statement. If it is a subroutine call, stop only after " #~ "it returned. (Start debugger if it is not yet running)" #~ msgstr "" #~ "Exécute la prochaine instruction. Si c'est un appel de fonction, stoppe " #~ "après son retour. (Démarre le débogueur s'il n'était pas lancé)" #~ msgid "Expr" #~ msgstr "Expr" #~ msgid "Expression:" #~ msgstr "Expression :" #~ msgid "Fast but might be out of date" #~ msgstr "Rapide mais peut ne pas reconnaître les nouveautés" #~ msgid "File access via FTP" #~ msgstr "Accès fichier via FTP" #~ msgid "File access via HTTP" #~ msgstr "Accès fichier via HTTP" #~ msgid "Filename" #~ msgstr "Fichier" #~ msgid "Filter" #~ msgstr "Filtre :" #~ msgid "Find Results (%s)" #~ msgstr "Résultats de la recherche (%s)" #~ msgid "Find Text:" #~ msgstr "Rechercher :" #~ msgid "Find and Replace" #~ msgstr "Trouver et remplacer" #~ msgid "Gabor Szabo: Project Manager" #~ msgstr "Gabor Szabo: chef de projet" #~ msgid "Go to &Todo Window" #~ msgstr "Aller à la fenêtre &Todo" #~ msgid "" #~ "Hopefully faster than the PPI Traditional. Big file will fall back to " #~ "Scintilla highlighter." #~ msgstr "" #~ "Censé être plus rapide que le PPI traditionnel. Les gros fichiers seront " #~ "toujours colorisés avec Scintilla." #~ msgid "If within a subroutine, run till return is called and then stop." #~ msgstr "Si dans une fonction, continuer jusqu'à sa sortie et s'arrêter." #~ msgid "Indentation width (in columns)" #~ msgstr "Largeur d'indentation (en colonnes) :" #~ msgid "Install a Perl module from CPAN" #~ msgstr "Installer un module depuis le CPAN" #~ msgid "Interpreter arguments" #~ msgstr "Arguments de l'interpréteur :" #~ msgid "Jump to Current Execution Line" #~ msgstr "Sauter jusqu'à la ligne d'exécution courante" #~ msgid "Kibibytes (kiB)" #~ msgstr "Kibioctets (Kio)" #~ msgid "Kilobytes (kB)" #~ msgstr "Kilooctets (kB)" #~ msgid "Line" #~ msgstr "Ligne" #~ msgid "Line break mode" #~ msgstr "Sauts de ligne" #~ msgid "List all the breakpoints on the console" #~ msgstr "Lister tous les points d'arrêt sur la console" #~ msgid "Local/Remote File Access" #~ msgstr "Accès à un fichier local/distant" #~ msgid "MIME type did not have a class entry when %s(%s) was called" #~ msgstr "Le type MIME n'avait pas de classe quand %s(%s) a été appelé" #~ msgid "MIME type is not supported when %s(%s) was called" #~ msgstr "Le type MIME n'est pas géré lorsque %s(%s) est appellé" #~ msgid "MIME type was not supported when %s(%s) was called" #~ msgstr "Le type MIME n'était pas géré lorsque %s(%s) a été appellé" #~ msgid "Match Case" #~ msgstr "Même casse" #~ msgid "Methods order" #~ msgstr "Tri des méthodes" #~ msgid "Move to other panel" #~ msgstr "Déplacer dans un autre cadre" #~ msgid "MyLabel" #~ msgstr "MonLabel" #~ msgid "Next" #~ msgstr "Suivant" #~ msgid "No file is open" #~ msgstr "Aucun fichier ouvert" #~ msgid "No module mime_type='%s' filename='%s'" #~ msgstr "Pas de module mime_type='%s' fichier='%s'" #~ msgid "Non-whitespace characters" #~ msgstr "Non-blancs" #~ msgid "Open files" #~ msgstr "Fichiers ouverts" #~ msgid "Padre:-" #~ msgstr "Padre:-" #~ msgid "Perl interpreter" #~ msgstr "Interpréteur Perl :" #~ msgid "Plug-in Name" #~ msgstr "Nom de l'extension" #~ msgid "Previ&ous" #~ msgstr "&Précédent" #~ msgid "Project Tools (Left)" #~ msgstr "Outils projet (gauche)" #~ msgid "R/W" #~ msgstr "R/W" #~ msgid "RegExp for TODO panel" #~ msgstr "RegExp pour la vue TODO" #~ msgid "Regular &Expression" #~ msgstr "&Expression régulière" #~ msgid "Related editor has been closed" #~ msgstr "L'éditeur associé a été fermé" #~ msgid "Reload all files" #~ msgstr "Recharger tous les fichiers" #~ msgid "Reload some" #~ msgstr "Recharger certain" #~ msgid "Reload some files" #~ msgstr "Recharger certains fichiers" #~ msgid "Remove the breakpoint at the current location of the cursor" #~ msgstr "Enlever le point d'arrêt à la position courante du curseur" #~ msgid "Replace Text:" #~ msgstr "Remplacement :" #~ msgid "Run till Breakpoint (&c)" #~ msgstr "Lancer jusqu'au point d'arrêt (&c)" #~ msgid "Run to Cursor" #~ msgstr "Lancer jusqu'au curseur" #~ msgid "Search again for '%s'" #~ msgstr "Rechercher encore « %s »" #, fuzzy #~ msgid "Search in recent" #~ msgstr "Répertoire parent :" #~ msgid "Set Bookmark" #~ msgstr "Placer un signet" #~ msgid "Set a breakpoint at the line where to cursor is and run till there" #~ msgstr "" #~ "Placer un point d'arrêt à la position courante du curseur et exécuter " #~ "jusqu'ici" #~ msgid "" #~ "Set focus to the line where the current statement is in the debugging " #~ "process" #~ msgstr "" #~ "Mettre le focus sur la ligne de l'instruction courante dans le processus " #~ "débuggué" #~ msgid "Set the focus to the \"Todo\" window" #~ msgstr "Mettre le focus sur le panneau de résultat" #, fuzzy #~ msgid "Show Changes" #~ msgstr "Montrer en tant que" #~ msgid "Show Stack Trace (&t)" #~ msgstr "Afficher la pile d'appels (&t)" #~ msgid "Show Value Now (&x)" #~ msgstr "Afficher la valeur" #~ msgid "Show the value of a variable now in a pop-up window." #~ msgstr "Affiche la valeur d'une variable." #~ msgid "Slow but accurate and we have full control so bugs can be fixed" #~ msgstr "" #~ "Lent mais correct, de plus nous avons le contrôle dessus donc les bugs " #~ "peuvent être corrigés" #~ msgid "Start running and/or continue running till next breakpoint or watch" #~ msgstr "" #~ "Démarrer et/ou continuer l'exécution jusqu'au prochain point d'arrêt ou " #~ "surveillance" #~ msgid "Stats" #~ msgstr "Statistiques" #~ msgid "Step In (&s)" #~ msgstr "Pas en avant" #~ msgid "Step Out (&r)" #~ msgstr "Pas sortant (&r)" #~ msgid "Step Over (&n)" #~ msgstr "Pas au-dessus (&n)" #~ msgid "Syntax Highlighter" #~ msgstr "Coloriseur syntaxique :" #~ msgid "Tab display size (in spaces)" #~ msgstr "Taille d'affichage des tabulations (en espaces)" #~ msgid "" #~ "The directory browser got an undef object and may stop working now. " #~ "Please save your work and restart Padre." #~ msgstr "" #~ "Le navigateur a reçu un objet undef et pourrait s'arrêter de fonctionner " #~ "maintenant. Sauvegardez votre travail et redémarrez Padre." #~ msgid "To-do" #~ msgstr "To-do" #~ msgid "Type in any expression and evaluate it in the debugged process" #~ msgstr "Entrer une expression pour l'évaluer dans le processus débuggué" #~ msgid "Use Tabs" #~ msgstr "Utiliser les tabulations" #~ msgid "Username" #~ msgstr "Utilisateur" #~ msgid "Variable" #~ msgstr "Variable" #~ msgid "Version" #~ msgstr "Version" #~ msgid "Visit the PerlM&onks" #~ msgstr "Visiter Perl&Monks (anglais)" #~ msgid "" #~ "When in a subroutine call show all the calls since the main of the program" #~ msgstr "" #~ "Dans un appel de fonction, montre la pile d'appels depuis le programme " #~ "principal" #~ msgid "disabled" #~ msgstr "désactivé" #~ msgid "enabled" #~ msgstr "activé" #~ msgid "error" #~ msgstr "erreur" #~ msgid "incompatible" #~ msgstr "incompatible" #~ msgid "no highlighter for mime-type '%s' using stc" #~ msgstr "Pas de coloriseur pour le type MIME « %s » avec STC" #~ msgid "none" #~ msgstr "aucun" #~ msgid "%s has no constructor" #~ msgstr "%s n'a pas de constructeur" #~ msgid "&Back" #~ msgstr "&Retour" #~ msgid "&Go to previous position" #~ msgstr "&Aller à la position précédente" #~ msgid "&Last Visited File" #~ msgstr "&Dernier fichier visité" #~ msgid "&Oldest Visited File" #~ msgstr "Plus &ancien fichier consulté" #~ msgid "&Right Click" #~ msgstr "&Clic droit" #~ msgid "&Show previous positions..." #~ msgstr "&Afficher les positions précédentes..." #~ msgid "&Wizard Selector" #~ msgstr "&Sélecteur d'assistant" #~ msgid "About Padre" #~ msgstr "À propos de Padre" #~ msgid "Blue butterfly on a green leaf" #~ msgstr "Papillon bleu sur une feuille verte" #~ msgid "Cannot diff if file was never saved" #~ msgstr "Ne peut comparer si le fichier n'a jamais été sauvé" #~ msgid "Creates a Padre Plugin" #~ msgstr "Crée une extension Padre" #~ msgid "Creates a Padre document" #~ msgstr "Crée un document Padre" #~ msgid "Creates a Perl 5 module or script" #~ msgstr "Crée un module ou un script Perl 5" #~ msgid "Current Developers" #~ msgstr "Développeurs actuels" #~ msgid "Diff tool" #~ msgstr "Outil de diff :" #~ msgid "Error while loading %s" #~ msgstr "Erreur lors du chargement de %s" #~ msgid "External Tools" #~ msgstr "Outils externes" #~ msgid "Find &Previous" #~ msgstr "Rechercher le &précédent" #~ msgid "" #~ "Find next matching text using a toolbar-like dialog at the bottom of the " #~ "editor" #~ msgstr "" #~ "Trouve l'occurrence suivante avec une barre de recherche au bas de " #~ "l'éditeur" #~ msgid "" #~ "Find previous matching text using a toolbar-like dialog at the bottom of " #~ "the editor" #~ msgstr "" #~ "Trouve l'occurrence précédente avec une barre de recherche au bas de " #~ "l'éditeur" #~ msgid "Imitate clicking on the right mouse button" #~ msgstr "Imiter le click droit sur la souris" #~ msgid "Jump between the two last visited files back and forth" #~ msgstr "Bascule entre les deux derniers documents consultés." #~ msgid "Jump to the last position saved in memory" #~ msgstr "Aller à la dernière position mémorisée" #~ msgid "Last Visited File" #~ msgstr "Dernier fichier visité" #~ msgid "Module" #~ msgstr "Nom du module :" #~ msgid "Opens the Padre document wizard" #~ msgstr "Ouvrir l'assistant document Padre" #~ msgid "Opens the Padre plugin wizard" #~ msgstr "Ouvre l'assistant Extension Padre" #~ msgid "Opens the Perl 5 module wizard" #~ msgstr "Ouvre l'assistant module Perl 5" #~ msgid "Padre Document Wizard" #~ msgstr "Assistant Document Padre" #~ msgid "Padre Plugin Wizard" #~ msgstr "Assistant Extension Padre" #~ msgid "" #~ "Padre is free software; you can redistribute it and/or modify it under " #~ "the same terms as Perl 5." #~ msgstr "" #~ "Padre est un logiciel libre ; vous pouvez le redistribuer et/ou le " #~ "modifier selon les mêmes termes que Perl 5." #~ msgid "Perl 5" #~ msgstr "Perl 5" #~ msgid "Perl 5 Module Wizard" #~ msgstr "Assistant module Perl 5" #~ msgid "Plugin" #~ msgstr "Extension" #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "Mettre le focus sur l'onglet visité le plus longtemps auparavant." #~ msgid "Select a Wizard" #~ msgstr "Sélectionner un assistant" #~ msgid "Selects and opens a wizard" #~ msgstr "Sélectionne et ouvre un assistant" #~ msgid "Show the list of positions recently visited" #~ msgstr "Affiche la liste des positions récemment visitées" #~ msgid "" #~ "Switch to edit the file that was previously edited (can switch back and " #~ "forth)" #~ msgstr "Aller au fichier précédemment édité (va et vient)" #~ msgid "System Info" #~ msgstr "Informations système" #~ msgid "The Padre Development Team" #~ msgstr "L'équipe de développement de Padre" #~ msgid "The Padre Translation Team" #~ msgstr "L'équipe de traduction de Padre" #~ msgid "There are no differences\n" #~ msgstr "Il n'y a pas de différences\n" #~ msgid "Uptime:" #~ msgstr "Temps d'utilisation :" #~ msgid "Use panel order for Ctrl-Tab (not usage history)" #~ msgstr "" #~ "Utiliser l'ordre des onglets pour Ctrl+Tab (et non selon l'historique " #~ "d'usage)" #~ msgid "Wizard Selector" #~ msgstr "Sélecteur d'assistant" #~ msgid "splash image is based on work by" #~ msgstr "image de démarrage basée sur le travail de" #, fuzzy #~ msgid "&About2" #~ msgstr "&À propos" #, fuzzy #~ msgid "&Filter" #~ msgstr "&Filtre :" #, fuzzy #~ msgid "About 2" #~ msgstr "À propos..." #~ msgid "Found %d issue(s)" #~ msgstr "Trouvé %d erreur(s)" #, fuzzy #~ msgid "No errors or warnings found" #~ msgstr "Aucune erreur ni avertissement trouvé." #~ msgid "&Hide Find in Files" #~ msgstr "&Masquer Rechercher dans des fichiers" #~ msgid "&Key Bindings" #~ msgstr "Raccourcis &clavier" #~ msgid "Apply Diff to &File" #~ msgstr "Appliquer un diff au &fichier" #~ msgid "Apply Diff to &Project" #~ msgstr "Appliquer un diff au &projet" #~ msgid "Apply a patch file to the current document" #~ msgstr "Appliquer un patch au document courant" #~ msgid "Apply a patch file to the current project" #~ msgstr "Appliquer un patch au projet courant" #~ msgid "" #~ "Compare the file in the editor to that on the disk and show the diff in " #~ "the output window" #~ msgstr "" #~ "Comparer le fichier dans l'éditeur à son état sur disque et montrer la " #~ "différence dans le panneau de résultat" #~ msgid "Dark" #~ msgstr "Sombre" #~ msgid "Di&ff Tools" #~ msgstr "Outils de &diff" #~ msgid "Diff to &Saved Version" #~ msgstr "Différence par rapport à la version sauvée" #~ msgid "Evening" #~ msgstr "Crépuscule" #~ msgid "Failed to find template file '%s'" #~ msgstr "Erreur de chargement du fichier modèle « %s »" #~ msgid "Hide the list of matches for a Find in Files search" #~ msgstr "" #~ "Masque la liste de correspondances d'une recherche dans des fichiers" #~ msgid "Night" #~ msgstr "Nuit" #~ msgid "Notepad++" #~ msgstr "Notepad++" #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "Dialogue de configuration des raccourcis clavier de Padre" #~ msgid "Solarize" #~ msgstr "Solarize" #~ msgid "Switch highlighting colours" #~ msgstr "Changer les couleurs de surlignage" #~ msgid "Ultraedit" #~ msgstr "Ultraedit" #~ msgid "&Uncomment Selected Lines" #~ msgstr "&Décommenter les lignes sélectionnées" #~ msgid "Case &insensitive" #~ msgstr "&Insensible à la casse" #~ msgid "Goto" #~ msgstr "Aller à la li&gne" #~ msgid "Find Next" #~ msgstr "Rechercher en avant" #~ msgid "New" #~ msgstr "&Nouveau" #~ msgid "This requires an installed Wx::Scintilla and a Padre restart" #~ msgstr "Ceci requiert Wx::Scintilla installé et un redémarrage de Padre" #~ msgid "&Add" #~ msgstr "&Ajouter" #~ msgid "&Insert" #~ msgstr "&Insérer" #~ msgid "" #~ "An error has occured while generating '%s':\n" #~ "%s" #~ msgstr "" #~ "Une erreur est survenue lors de la génération de '%s':\n" #~ "%s" #~ msgid "Apache License" #~ msgstr "Licence Apache" #~ msgid "Builder:" #~ msgstr "Constructeur :" #~ msgid "Category:" #~ msgstr "Catégorie :" #~ msgid "Class:" #~ msgstr "Classe :" #~ msgid "Copy of current file" #~ msgstr "Copie du fichier courant" #~ msgid "Dump %INC and @INC" #~ msgstr "Afficher %INC et @INC" #~ msgid "Dump Current Document" #~ msgstr "Dumper le document courant" #~ msgid "Dump Current PPI Tree" #~ msgstr "Dumper l'arbre PPI courant" #, fuzzy #~ msgid "Dump Display Geometry" #~ msgstr "Afficher la valeur" #, fuzzy #~ msgid "Dump Expression..." #~ msgstr "Dumper l'expression" #~ msgid "Dump Top IDE Object" #~ msgstr "Dumper l'objet IDE principal" #~ msgid "Edit/Add Snippets" #~ msgstr "Editer / Ajouter des extraits" #~ msgid "Email Address:" #~ msgstr "Courrier électronique :" #~ msgid "Field %s was missing. Module not created." #~ msgstr "Champ %s manquant. Module non créé." #~ msgid "GPL 2 or later" #~ msgstr "GPL 2 or ultérieur" #~ msgid "LGPL 2.1 or later" #~ msgstr "LGPL 2.1 ou ultérieur" #~ msgid "License:" #~ msgstr "Licence :" #~ msgid "MIT License" #~ msgstr "Licence MIT" #~ msgid "Module Start" #~ msgstr "Démarrage du module" #~ msgid "Mozilla Public License" #~ msgstr "Mozilla Public License" #~ msgid "Name:" #~ msgstr "Nom :" #~ msgid "No Perl 5 file is open" #~ msgstr "Aucun fichier Perl 5 ouvert" #, fuzzy #~ msgid "Open Source" #~ msgstr "Ouvrir une ressource" #~ msgid "Open a document and copy the content of the current tab" #~ msgstr "Ouvre un document et copie le contenu actuel" #, fuzzy #~ msgid "Other Open Source" #~ msgstr "Ouvrir une ressource" #~ msgid "Parent Directory:" #~ msgstr "Répertoire parent :" #, fuzzy #~ msgid "Perl Distribution (New)..." #~ msgstr "Distribution Perl (Module::Starter)" #~ msgid "Perl licensing terms" #~ msgstr "Licence de Perl" #~ msgid "Pick parent directory" #~ msgstr "Répertoire parent" #~ msgid "Revised BSD License" #~ msgstr "Licence BSD revue" #, fuzzy #~ msgid "Search in Types:" #~ msgstr "Rechercher et remplacer" #~ msgid "Setup a skeleton Perl distribution" #~ msgstr "Créer un squelette de distribution Perl" #~ msgid "Setup a skeleton Perl module distribution" #~ msgstr "Créer un squelette de distribution de module Perl" #~ msgid "Snippets" #~ msgstr "Extraits" #, fuzzy #~ msgid "Snippit:" #~ msgstr "Extrait :" #~ msgid "Special Value:" #~ msgstr "Valeur : " #~ msgid "Use rege&x" #~ msgstr "Utiliser une rege&xp" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s threads s'exécutent.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "Aucune tâche de fond ne s'exécute actuellement.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "Les tâches de fond suivantes sont en cours d'exécution:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s de type '%s' :\n" #~ " (dans le(s) thread(s) %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "De plus, il y a %s tâches attendant de s'exécuter.\n" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "Le dossier %s du projet n'existe plus. C'est une erreur fatale et " #~ "d'autres problèmes sont à venir. Fermez ce fichier ou enregistrez le à " #~ "moins que vous ne sachiez ce que vous faites." #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "Impossible d'ouvrir %s car il dépasse la taille de fichier maximum " #~ "arbitraire de Padre qui est actuellement de %s" #~ msgid "Quick Find" #~ msgstr "Recherche rapide" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "Recherche incrémentale présente en bas de la fenêtre" #~ msgid "???" #~ msgstr "???" #~ msgid "Show the about-Padre information" #~ msgstr "Montrer l'information à propos de Padre" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "" #~ "Montrer le panel avec un navigateur de fichier pour le fichier courant" #~ msgid "Show Error List" #~ msgstr "Montrer la liste d'erreurs" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "" #~ "Montrer la liste des erreurs rencontrées lors de l'exécution d'un script" #~ msgid "Automatic bracket completion" #~ msgstr "Complétion d'accolades automatique" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "Insérer une accolade fermante automatiquement après une {" #, fuzzy #~ msgid "" #~ "Ask the user for a line number or a character position and jump there" #~ msgstr "Demander un numéro de ligne à l'utilisateur et y aller" #~ msgid "Insert Special Value" #~ msgstr "Insérer une information" #~ msgid "Insert From File..." #~ msgstr "Insérer un fichier..." #~ msgid "Show as hexa" #~ msgstr "Montrer en tant qu'hexa" #~ msgid "" #~ "Show the ASCII values of the selected text in hexa in the output window" #~ msgstr "" #~ "Montrer les valeurs ASCII en hexa du texte sélectionné dans le panel de " #~ "sortie" #~ msgid "Replacement" #~ msgstr "Remplacement" #~ msgid "New Subroutine Name" #~ msgstr "Nom de la nouvelle fonction" #~ msgid "Open In File Browser" #~ msgstr "Ouvrir dans le gestionnaire de fichiers" #~ msgid "Save &As" #~ msgstr "Enregistrer &sous" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Simuler un crash de tache d'arrière-plan" #~ msgid "Info" #~ msgstr "Info" #~ msgid "Choose a directory" #~ msgstr "Sélectionner un répertoire" #~ msgid "Error List" #~ msgstr "Liste d'erreurs" #~ msgid "No diagnostics available for this error!" #~ msgstr "Aucun diagnostic disponible pour cette erreur !" #~ msgid "Diagnostics" #~ msgstr "Diagnostics" #~ msgid "'%s' does not look like a variable" #~ msgstr "'%s' ne semble pas être une variable" #~ msgid "Term:" #~ msgstr "Terme :" #~ msgid "Dir:" #~ msgstr "Répertoire :" #~ msgid "Pick &directory" #~ msgstr "Choisir &répertoire" #~ msgid "In Files/Types:" #~ msgstr "dans Fichiers / Types :" #~ msgid "Case &Insensitive" #~ msgstr "&Insensible à la casse" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "I&gnorer les répertoires cachés" #~ msgid "Show only files that don't match" #~ msgstr "Montrer seulement les fichiers ne correspondant pas" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Found %d files and %d matches\n" #~ msgstr "Trouvé %d fichiers et %d concordances\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "'%s' absent du fichier '%s'\n" #~ msgid "Line No" #~ msgstr "Ligne" #~ msgid "(Document not on disk)" #~ msgstr "(Document non présent sur le disque)" #~ msgid "Lines: %d" #~ msgstr "Lignes : %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Caractères (hors espaces) : %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Caractères (espaces compris) : %d" #~ msgid "Size on disk: %s" #~ msgstr "Taille sur disque : %s" #~ msgid "Open" #~ msgstr "Ouvrir" #~ msgid "Find &Text:" #~ msgstr "Rechercher le &texte :" #~ msgid "Not a valid search" #~ msgstr "Recherche non valide" #~ msgid "GoTo Bookmark" #~ msgstr "Aller au signet" #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "%s est apparemment créé. Voulez-vous l'ouvrir maintenant ?" #~ msgid "Done" #~ msgstr "Terminé" #, fuzzy #~ msgid "User set" #~ msgstr "Utiliser les tabulations" #~ msgid "Skip VCS files" #~ msgstr "Ignorer les fichiers des VCS" #~ msgid "Enable bookmarks" #~ msgstr "Activer les signets" #~ msgid "Change font size" #~ msgstr "Changer la taille de la police" #~ msgid "Enable session manager" #~ msgstr "Activer le gestionnaire de sessions" #~ msgid "Guess" #~ msgstr "Deviner" #~ msgid "Choose the default projects directory" #~ msgstr "Choisir le répertoire par défaut des projets" #~ msgid "Window title:" #~ msgstr "Titre de la fenêtre :" #~ msgid "Settings Demo" #~ msgstr "Démo de préférences" #~ msgid "Any changes to these options require a restart:" #~ msgstr "Tout changement à ces options nécessite un redémarrage :" #~ msgid "Enable?" #~ msgstr "Activer ?" #~ msgid "Unsaved" #~ msgstr "Non sauvegardé" #~ msgid "N/A" #~ msgstr "N/A" #~ msgid "Document name:" #~ msgstr "Nom du document :" #~ msgid "Current Document: %s" #~ msgstr "Document courant : %s" #~ msgid "Run Parameters" #~ msgstr "Paramètres d'exécution" #~ msgid "new" #~ msgstr "nouveau" #~ msgid "nothing" #~ msgstr "rien" #~ msgid "last" #~ msgstr "dernier" #~ msgid "no" #~ msgstr "non" #~ msgid "same_level" #~ msgstr "même niveau" #~ msgid "deep" #~ msgstr "profond" #~ msgid "alphabetical" #~ msgstr "alphabétique" #~ msgid "original" #~ msgstr "original" #~ msgid "alphabetical_private_last" #~ msgstr "alphabétique, privé en dernier" #~ msgid "" #~ "%s seems to be no executable Perl interpreter, abandon the new value?" #~ msgstr "" #~ "%s ne semble pas être un interpréteur Perl exécutable, ignorer la " #~ "nouvelle valeur ?" #~ msgid "Save settings" #~ msgstr "Enregistrer les paramètres" #~ msgid "Timeout:" #~ msgstr "Timeout:" #~ msgid "Refac&tor" #~ msgstr "Refac&toriser" #~ msgid "Convert EOL" #~ msgstr "Convertir les fins de ligne" #~ msgid "Style" #~ msgstr "Style" #~ msgid "Switch menus to %s" #~ msgstr "Changer les menus à %s" #~ msgid "New..." #~ msgstr "Nouveau..." #~ msgid "Close..." #~ msgstr "Fermer..." #~ msgid "Reload..." #~ msgstr "Recharger" #~ msgid "Pl&ugins" #~ msgstr "&Greffons" #~ msgid "Skip hidden files" #~ msgstr "Ignorer les fichiers cachés" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "Ignorer les répertoires CVS / .svn / .git / blib" #~ msgid "Tree listing" #~ msgstr "Liste arborescente" #~ msgid "Navigate" #~ msgstr "Naviguer" #~ msgid "Change listing mode view" #~ msgstr "Changer le mode d'affichage de la liste" #~ msgid "Please choose a different name." #~ msgstr "Veuillez choisir un nom différent." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "Un fichier de ce nom existe déjà dans ce répertoire" #~ msgid "Move here" #~ msgstr "Déplacer ici" #~ msgid "Copy here" #~ msgstr "Copier ici" #~ msgid "Move to trash" #~ msgstr "Déplacer à la poubelle" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "Etes-vous sûr de vouloir supprimer cet élément ?" #~ msgid "Show hidden files" #~ msgstr "Montrer les fichiers cachés" #~ msgid "Finished Searching" #~ msgstr "Fin de la recherche" #~ msgid "" #~ "%s seems to be no executable Perl interpreter, use the system default " #~ "perl instead?" #~ msgstr "" #~ "%s ne semble pas être un interpréteur Perl exécutable, utiliser le perl " #~ "par défaut du système à la place ?" #~ msgid "Regex editor" #~ msgstr "Editeur d'expressions régulières" #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "" #~ "Le fichier a été supprimé sur disque, voulez-vous EFFACER le contenu de " #~ "la fenêtre ?" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "" #~ "Fichier modifié depuis la dernière sauvegarde. Voulez-vous le recharger ?" #~ msgid "folder" #~ msgstr "répertoire" #~ msgid "Select all\tCtrl-A" #~ msgstr "Tout sélectionner\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Copier\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "&Co&uper\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "&C&oller\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "Dé/commenter\tCtrl-Shift-C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "Commenter les lignes sélectionnées\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "Décommenter les lignes sélectionnées\tCtrl-Shift-M" #~ msgid "Error while calling help_render: " #~ msgstr "Erreur lors de l'appel de help_render :" #~ msgid "Error while calling get_help_provider: " #~ msgstr "Erreur lors de l'appel de get_help_provider :" #~ msgid "Start Debugger (Debug::Client)" #~ msgstr "Démarrer le débugger (Debug::Client)" #~ msgid "Run the current document through the Debug::Client." #~ msgstr "Lancer le document courant à travers Debug::Client." #~ msgid "Enable logging" #~ msgstr "Activer les logs" #~ msgid "Disable logging" #~ msgstr "Désactiver les logs" #~ msgid "Enable trace when logging" #~ msgstr "Activer les traces pendant les logs" #~ msgid "Found %d matching occurrences" #~ msgstr "Trouvé %d occurrences concordantes" #~ msgid "Dump PPI Document" #~ msgstr "Dumper le document PPI" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "&Close\tCtrl+W" #~ msgstr "&Fermer\tCtrl+W" #~ msgid "&Open\tCtrl+O" #~ msgstr "&Ouvrir\tCtrl+O" #~ msgid "E&xit\tCtrl+X" #~ msgstr "&Co&uper\tCtrl+X" #~ msgid "&Split window" #~ msgstr "&Partager la fenêtre" #~ msgid "GoTo Subs Window" #~ msgstr "Aller à la fenêtre des fonctions" #~ msgid "&Use Regex" #~ msgstr "&Utiliser une expression régulière" #~ msgid "Close Window on &hit" #~ msgstr "Fermer la fenêtre à la première occurence" #~ msgid "%s occurences were replaced" #~ msgstr "%s occurences remplacées" #~ msgid "Nothing to replace" #~ msgstr "Rien à remplacer" #~ msgid "Cannot build regex for '%s'" #~ msgstr "Ne peut pas construire une expression régulière pour '%s'" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Tester un greffon à partir d'un répertoire" #~ msgid "Perl 6 Help (Powered by grok)" #~ msgstr "Aide Perl 6 (utilisant grok)" #~ msgid " item(s) found" #~ msgstr "item(s) trouvés" #~ msgid "Install Module..." #~ msgstr "Installer un module..." #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "Greffon : %s - Erreur lors du chargement du module : %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "Greffon : %s - Incompatible avec l'API de Padre::Plugin. Doit être une " #~ "sous-classe de Padre::Plugin" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "Greffon : %s - Ne peut pas instancier le greffon : le constructeur ne " #~ "renvoit pas un objet Padre::Plugin" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "Greffon : %s - N'a pas de menu" #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "" #~ "Copyright 2008-2009 L'équipe de développement de Padre, telle qu'indiquée " #~ "dans Padre.pm." #~ msgid "Save File" #~ msgstr "Enregistrer" #~ msgid "Undo" #~ msgstr "Annuler" #~ msgid "Redo" #~ msgstr "Refaire" #~ msgid "Workspace View" #~ msgstr "Espace de travail" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "Placer un signet\tCtrl-B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "Aller au signet\tCtrl-Shift-B" #~ msgid "Stop\tF6" #~ msgstr "Stop\tF6" #~ msgid "&New\tCtrl-N" #~ msgstr "&Nouveau\tCtrl-N" #~ msgid "&Close\tCtrl-W" #~ msgstr "&Fermer\tCtrl-W" #~ msgid "Close All but Current" #~ msgstr "Tout fermer sauf le document courant" #~ msgid "&Save\tCtrl-S" #~ msgstr "&Sauvegarder\tCtrl-S" #~ msgid "Save &As...\tF12" #~ msgstr "Enregistrer le fichier &sous...\tF12" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "Ouvrir la sélection\tCtrl-Shift-O" #~ msgid "Open Session...\tCtrl-Alt-O" #~ msgstr "Ouvrir une session...\tCtrl-Alt-O" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "Enregistrer la session courante...\tCtrl-Alt-S" #~ msgid "&Quit\tCtrl-Q" #~ msgstr "&Quitter\tCtrl-Q" #~ msgid "&Find\tCtrl-F" #~ msgstr "&Rechercher\tCtrl-F" #~ msgid "Find Next\tF3" #~ msgstr "Rechercher en avant\tF3" #~ msgid "Find Next\tF4" #~ msgstr "Rechercher en avant\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "Rechercher précédent\tShift-F4" #~ msgid "Replace\tCtrl-R" #~ msgstr "Remplacer\tCtrl-R" #~ msgid "&Goto\tCtrl-G" #~ msgstr "&Aller à\tCtrl-G" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "Extraits\tCtrl-Shift-A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "Tout en majuscules\tCtrl-Shift-U" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "Fichier suivant\tCtrl-TAB" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "Fichier précédent\tCtrl-Shift-TAB" #~ msgid "Mime-types" #~ msgstr "Types mime" #~ msgid "L:" #~ msgstr "L :" #~ msgid "Ch:" #~ msgstr "Car :" #~ msgid "Use PPI Syntax Highlighting" #~ msgstr "Utiliser PPI pour la coloration syntaxique" #~ msgid "Disable Experimental Mode" #~ msgstr "Interdire le mode expérimental" #~ msgid "Refresh Counter: " #~ msgstr "Rafraîchir le compteur :" #~ msgid "Text to find:" #~ msgstr "Texte à chercher :" #~ msgid "Sub List" #~ msgstr "Liste des fonctions" #~ msgid "All available plugins on CPAN" #~ msgstr "Greffons disponibles sur CPAN" #~ msgid "Convert..." #~ msgstr "Convertir..." #~ msgid "Background Tasks are idle" #~ msgstr "Les tâches de fond sont au repos" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "Greffon : %s - Incompatible avec l'API de Padre::Plugin. Le greffon ne " #~ "peut pas être instancié" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "Greffon : %s - Incompatible avec l'API de Padre::Plugin. Doit avoir une " #~ "méthode padre_interfaces" #~ msgid "No output" #~ msgstr "Pas de sortie" #~ msgid "Ac&k Search" #~ msgstr "Recherche Ac&k" #~ msgid "Doc Stats" #~ msgstr "Statistiques du document" #~ msgid "Command line parameters" #~ msgstr "Paramètres de ligne de commande" #~ msgid "Run Parameters\tShift-Ctrl-F5" #~ msgstr "Paramètres d'exécution\tShift-Ctrl-F5" #~ msgid "" #~ "Module Name:\n" #~ "e.g.: Perl::Critic" #~ msgstr "" #~ "Nom de module :\n" #~ "ex : Perl::Critic" #~ msgid "(running from SVN checkout)" #~ msgstr "(utilisant une copie SVN)" #~ msgid "Not implemented yet" #~ msgstr "Pas encore implémenté" #~ msgid "Not yet available" #~ msgstr "Pas encore disponible" #~ msgid "Select Project Name or type in new one" #~ msgstr "Sélectionner un nom de projet ou tapez-en un nouveau" #~ msgid "Recent Projects" #~ msgstr "Projets récents" #~ msgid "Ac&k" #~ msgstr "Ac&k" #~ msgid "Only .pl files can be executed" #~ msgstr "Seuls les fichiers .pl peuvent être exécutés" #~ msgid "Syntax" #~ msgstr "Syntaxe" #~ msgid "Need to have something selected" #~ msgstr "Il faut sélectionner quelque chose" #~ msgid "Not Yet" #~ msgstr "Pas encore disponible" Padre-1.00/share/locale/messages.pot0000644000175000017500000037443412031431735016053 0ustar petepete# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-09-28 16:10-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "\".\" also matches newline" msgstr "" #: lib/Padre/Config.pm:682 msgid "" "\"Open session\" will ask which session (set of files) to open when you " "launch Padre." msgstr "" #: lib/Padre/Config.pm:684 msgid "" "\"Previous open files\" will remember the open files when you close Padre " "and open the same files next time you launch Padre." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "" #: lib/Padre/Wx/Diff.pm:112 #, perl-format msgid "%d line added" msgstr "" #: lib/Padre/Wx/Diff.pm:100 #, perl-format msgid "%d line changed" msgstr "" #: lib/Padre/Wx/Diff.pm:124 #, perl-format msgid "%d line deleted" msgstr "" #: lib/Padre/Wx/Diff.pm:111 #, perl-format msgid "%d lines added" msgstr "" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d lines changed" msgstr "" #: lib/Padre/Wx/Diff.pm:123 #, perl-format msgid "%d lines deleted" msgstr "" #: lib/Padre/Wx/ReplaceInFiles.pm:213 #, perl-format msgid "%s (%s changed)" msgstr "" #: lib/Padre/Wx/Panel/FoundInFiles.pm:348 #, perl-format msgid "%s (%s results)" msgstr "" #: lib/Padre/Wx/ReplaceInFiles.pm:221 #, perl-format msgid "%s (crashed)" msgstr "" #: lib/Padre/PluginManager.pm:521 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "" #: lib/Padre/PluginManager.pm:469 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "" #: lib/Padre/PluginManager.pm:531 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "" #: lib/Padre/PluginManager.pm:493 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "" #: lib/Padre/PluginManager.pm:506 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "" #: lib/Padre/PluginManager.pm:481 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "" #: lib/Padre/Wx/TaskList.pm:280 lib/Padre/Wx/Panel/TaskList.pm:171 #, perl-format msgid "%s in TODO regex, check your config." msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "" #: lib/Padre/Wx/VCS.pm:210 #, perl-format msgid "%s version control is not currently available" msgstr "" #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2617 lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1530 msgid "&Advanced..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:873 msgid "&Autocomplete" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:884 msgid "&Brace Matching" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:90 lib/Padre/Wx/FBP/ReplaceInFiles.pm:108 msgid "&Browse" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1546 lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:153 #: lib/Padre/Wx/Dialog/OpenResource.pm:183 lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:137 lib/Padre/Wx/FBP/Find.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:147 lib/Padre/Wx/FBP/Replace.pm:121 msgid "&Case Sensitive" msgstr "" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1719 msgid "&Check for Common (Beginner) Errors" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:545 msgid "&Clean Recent Files List" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:671 msgid "&Clear Selection Marks" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:287 lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:144 lib/Padre/Wx/Dialog/HelpSearch.pm:180 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:275 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 msgid "&Close" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:969 msgid "&Comment Out" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2504 msgid "&Context Help" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2389 msgid "&Context Menu" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:701 msgid "&Copy" msgstr "" #: lib/Padre/Wx/Menu/Debug.pm:68 msgid "&Debug" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1651 msgid "&Decrease Font Size" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:382 lib/Padre/Wx/FBP/Preferences.pm:1198 #: lib/Padre/Wx/FBP/Bookmarks.pm:95 lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "&Delete Trailing Spaces" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "&Deparse selection" msgstr "" #: lib/Padre/Wx/Dialog/PluginManager.pm:115 msgid "&Disable" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:557 msgid "&Document Statistics" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "&Edit" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2268 msgid "&Edit My Plug-in" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2233 msgid "&Edit with Regex Editor..." msgstr "" #: lib/Padre/Wx/Dialog/PluginManager.pm:121 #: lib/Padre/Wx/Dialog/PluginManager.pm:127 msgid "&Enable" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "" #: lib/Padre/Wx/Menu/File.pm:301 msgid "&File" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:943 msgid "&File..." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1082 lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:153 msgid "&Find" msgstr "" #: lib/Padre/Wx/FBP/Find.pm:111 lib/Padre/Wx/FBP/Replace.pm:153 msgid "&Find Next" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1233 msgid "&Find Previous" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1180 msgid "&Find..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1531 msgid "&Fold All" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1551 msgid "&Fold/Unfold Current" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1295 msgid "&Go To..." msgstr "" #: lib/Padre/Wx/Outline.pm:133 msgid "&Go to Element" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2483 lib/Padre/Wx/Menu/Help.pm:120 msgid "&Help" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1641 msgid "&Increase Font Size" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:908 msgid "&Join Lines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2123 msgid "&Launch Debugger" msgstr "" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1109 msgid "&Lower All" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:155 msgid "&Matching Help Topics:" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:227 msgid "&Matching Items:" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:181 msgid "&Matching Menu Items:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1939 msgid "&Move POD to __END__" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1792 msgid "&Newline Same Column" msgstr "" #: lib/Padre/Wx/FBP/FindFast.pm:101 msgid "&Next" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:804 msgid "&Next Difference" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2366 msgid "&Next File" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:793 msgid "&Next Problem" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:149 #: lib/Padre/Wx/Dialog/OpenResource.pm:177 lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:536 msgid "&Open All Recent Files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:208 msgid "&Open..." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:228 msgid "&Original text:" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:81 msgid "&POSIX Character classes" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2528 msgid "&Padre Support (English)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:778 msgid "&Paste" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1120 msgid "&Patch..." msgstr "" #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2246 msgid "&Plug-in Manager" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2201 msgid "&Preferences" msgstr "" #: lib/Padre/Wx/FBP/FindFast.pm:85 msgid "&Previous" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2377 msgid "&Previous File" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:516 msgid "&Print..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:569 msgid "&Project Statistics" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:100 msgid "&Quantifiers" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:816 msgid "&Quick Fix" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1344 msgid "&Quick Menu Access..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:580 msgid "&Quit" msgstr "" #: lib/Padre/Wx/Menu/File.pm:258 msgid "&Recent Files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:620 msgid "&Redo" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2223 msgid "&Regex Editor" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:129 lib/Padre/Wx/FBP/ReplaceInFiles.pm:155 msgid "&Regular Expression" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:168 msgid "&Regular expression:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2285 msgid "&Reload My Plug-in" msgstr "" #: lib/Padre/Wx/Main.pm:4720 msgid "&Reload selected" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "&Rename Variable..." msgstr "" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:171 lib/Padre/Wx/FBP/Replace.pm:169 msgid "&Replace" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:249 msgid "&Replace text with:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1217 lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1661 msgid "&Reset Font Size" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:259 msgid "&Result from replace:" msgstr "" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1955 msgid "&Run Script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:426 lib/Padre/Wx/FBP/Preferences.pm:1521 msgid "&Save" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2492 msgid "&Search Help" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:205 msgid "&Select an item to open (? = any character, * = any string):" msgstr "" #: lib/Padre/Wx/Main.pm:4718 msgid "&Select files to reload:" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "" #: lib/Padre/Wx/Dialog/PluginManager.pm:109 msgid "&Show Error Message" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:931 msgid "&Snippets..." msgstr "" #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2037 msgid "&Stop Execution" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "&Toggle Comment" msgstr "" #: lib/Padre/Wx/Menu/Tools.pm:199 msgid "&Tools" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2606 msgid "&Translate Padre..." msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:174 msgid "&Type a menu item name to access:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "&Uncomment" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:600 msgid "&Undo" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1098 msgid "&Upper All" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "" #: lib/Padre/Wx/Menu/View.pm:247 msgid "&View" msgstr "" #: lib/Padre/Wx/Menu/View.pm:101 msgid "&View Document As..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "&Win32 Questions (English)" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:82 msgid "&Window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1628 msgid "&Word-Wrap File" msgstr "" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "" #: lib/Padre/Wx/Panel/Debugger.pm:668 #, perl-format msgid "" "'%s' does not look like a variable. First select a variable in the code and " "then try again." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2325 msgid "(Re)load &Current Plug-in" msgstr "" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "" #: lib/Padre/PluginManager.pm:770 msgid "(core)" msgstr "" #: lib/Padre/Wx/Dialog/About.pm:153 msgid "(disabled)" msgstr "" #: lib/Padre/Wx/Dialog/About.pm:161 msgid "(unsupported)" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1150 lib/Padre/Wx/FBP/Preferences.pm:1164 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "" #: lib/Padre/Wx/VCS.pm:335 msgid ", " msgstr "" #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:256 msgid ". Return to the executed line." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "7-bit US-ASCII character" msgstr "" #: lib/Padre/Wx/CPAN.pm:514 #, perl-format msgid "Loading %s..." msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:32 lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "A comment" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:125 msgid "A group" msgstr "" #: lib/Padre/Config.pm:678 msgid "A new empty file" msgstr "" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "A word boundary" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "" #: lib/Padre/Wx/FBP/About.pm:296 msgid "Aaron Trevena" msgstr "" #: lib/Padre/Wx/FBP/About.pm:29 lib/Padre/Plugin/PopularityContest.pm:211 msgid "About" msgstr "" #: lib/Padre/Wx/CPAN.pm:221 msgid "Abstract" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:47 lib/Padre/Wx/Dialog/Preferences.pm:175 msgid "Action" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "" #: lib/Padre/Wx/FBP/About.pm:122 msgid "Adam Kennedy" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:288 msgid "Add another closing bracket if there already is one" msgstr "" #: lib/Padre/Wx/VCS.pm:515 msgid "Add file to repository?" msgstr "" #: lib/Padre/Wx/VCS.pm:246 lib/Padre/Wx/VCS.pm:260 msgid "Added" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:70 msgid "Against" msgstr "" #: lib/Padre/Wx/FBP/About.pm:128 lib/Padre/Wx/FBP/About.pm:337 msgid "Ahmad Zawawi" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Alarm" msgstr "" #: lib/Padre/Wx/FBP/About.pm:200 msgid "Alexandr Ciornii" msgstr "" #: lib/Padre/Wx/Syntax.pm:83 msgid "Alien Error" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1781 msgid "Align a selection of text to the same left column." msgstr "" #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "" #: lib/Padre/Wx/Main.pm:4441 lib/Padre/Wx/Main.pm:4442 #: lib/Padre/Wx/Main.pm:4805 lib/Padre/Wx/Main.pm:6032 #: lib/Padre/Wx/Choice/Files.pm:19 msgid "All Files" msgstr "" #: lib/Padre/Document/Perl.pm:549 msgid "All braces appear to be matched" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "Allow the selection of another name to save the current document" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:83 msgid "Alphabetic characters" msgstr "" #: lib/Padre/Config.pm:775 msgid "Alphabetical Order" msgstr "" #: lib/Padre/Config.pm:776 msgid "Alphabetical Order (Private Last)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphanumeric characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Alphanumeric characters plus \"_\"" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1142 msgid "Alt" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:113 msgid "Alternation" msgstr "" #: lib/Padre/Wx/FBP/About.pm:478 msgid "Amir E. Aharoni" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStarter.pm:158 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Andrew Bramble" msgstr "" #: lib/Padre/Wx/FBP/About.pm:631 msgid "Andrew Shitov" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:71 msgid "Any character except a newline" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any decimal digit" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any non-digit" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any non-whitespace character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any non-word character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any whitespace character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any word character" msgstr "" #: lib/Padre/Config.pm:1928 msgid "Apache License" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1899 msgid "Appearance" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:807 msgid "Appearance Preview" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:817 msgid "Apply one of the quick fixes for the current document" msgstr "" #: lib/Padre/Locale.pm:157 lib/Padre/Wx/FBP/About.pm:328 msgid "Arabic" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "Ask for a session name and save the list of files currently opened" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:581 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1917 msgid "Assign the selected expression to a newly declared variable" msgstr "" #: lib/Padre/Wx/Outline.pm:365 msgid "Attributes" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:290 msgid "Authentication" msgstr "" #: lib/Padre/Wx/VCS.pm:55 lib/Padre/Wx/CPAN.pm:212 msgid "Author" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:56 msgid "Author:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:313 msgid "Auto-fold POD markup when code folding enabled" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1900 msgid "Autocomplete" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:185 msgid "Autocomplete always while typing" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:280 msgid "Autocomplete brackets" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:201 msgid "Autocomplete new functions in scripts" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:193 msgid "Autocomplete new methods in packages" msgstr "" #: lib/Padre/Wx/Main.pm:3696 msgid "Autocompletion error" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1042 msgid "Autoindent" msgstr "" #: lib/Padre/Wx/StatusBar.pm:268 msgid "Background Tasks are running" msgstr "" #: lib/Padre/Wx/StatusBar.pm:269 msgid "Background Tasks are running with high load" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Backreference to the nth group" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:33 msgid "Backspace" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Beginning of line" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1902 msgid "Behaviour" msgstr "" #: lib/Padre/MIME.pm:887 msgid "Binary File" msgstr "" #: lib/Padre/Wx/FBP/About.pm:308 msgid "Blake Willmarth" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:91 msgid "Blank Lines:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:829 msgid "Bloat Reduction" msgstr "" #: lib/Padre/Wx/FBP/About.pm:93 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "" #: lib/Padre/Wx/FBP/Bookmarks.pm:29 msgid "Bookmarks" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "" #: lib/Padre/Config.pm:138 msgid "Bottom Panel" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:263 msgid "Brace Assist" msgstr "" #: lib/Padre/Wx/Panel/Breakpoints.pm:55 msgid "Breakpoints" msgstr "" #: lib/Padre/Wx/FBP/About.pm:170 lib/Padre/Wx/FBP/About.pm:589 msgid "Breno G. de Oliveira" msgstr "" #: lib/Padre/Wx/FBP/About.pm:212 msgid "Brian Cassidy" msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:83 msgid "Bring changes from the repository into the working copy" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:209 msgid "Browse directory of the current document to open one or several files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:265 msgid "Browse the directory of the installed examples to open one file" msgstr "" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:84 msgid "Builder:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1995 msgid "Builds the current project, then run all tests." msgstr "" #: lib/Padre/Wx/FBP/About.pm:236 lib/Padre/Wx/FBP/About.pm:646 msgid "Burak Gursoy" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2517 msgid "C&urrent Document" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:349 lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "CHANGED" msgstr "" #: lib/Padre/Wx/CPAN.pm:101 lib/Padre/Wx/FBP/Preferences.pm:406 msgid "CPAN Explorer" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:900 msgid "CPAN Explorer Tool" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "" #: lib/Padre/Wx/FBP/Snippet.pm:135 lib/Padre/Wx/FBP/ModuleStarter.pm:155 #: lib/Padre/Wx/FBP/FindInFiles.pm:162 lib/Padre/Wx/FBP/Bookmarks.pm:127 #: lib/Padre/Wx/FBP/Find.pm:136 lib/Padre/Wx/FBP/Special.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:180 lib/Padre/Wx/FBP/Replace.pm:202 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "" #: lib/Padre/Document/Ruby.pm:54 msgid "Cannot find ruby executable in your PATH" msgstr "" #: lib/Padre/Wx/Main.pm:4089 #, perl-format msgid "Cannot open a directory: %s" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Case-insensitive matching" msgstr "" #: lib/Padre/Wx/FBP/About.pm:206 lib/Padre/Wx/FBP/About.pm:568 msgid "Cezary Morga" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1244 msgid "Change Detection" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:924 msgid "Change Font Size (Outside Preferences)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1110 msgid "Change the current selection to lower case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1099 msgid "Change the current selection to upper case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:995 msgid "" "Change the encoding of the current document to the default of the operating " "system" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1005 msgid "Change the encoding of the current document to utf-8" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1045 msgid "" "Change the end of line character of the current document to that used on Mac " "Classic" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1035 msgid "" "Change the end of line character of the current document to that used on " "Unix, Linux, Mac OSX" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1025 msgid "" "Change the end of line character of the current document to those used in " "files on MS Windows" msgstr "" #: lib/Padre/Document/Perl.pm:1517 msgid "Change variable style" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1876 msgid "Change variable style from camelCase to Camel_Case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1862 msgid "Change variable style from camelCase to camel_case" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Change variable style from camel_case to CamelCase" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1834 msgid "Change variable style from camel_case to camelCase" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1833 msgid "Change variable to &camelCase" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1861 msgid "Change variable to &using_underscores" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1847 msgid "Change variable to C&amelCase" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1875 msgid "Change variable to U&sing_Underscores" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:69 msgid "Character classes" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:343 msgid "Character position" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Character set" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:174 msgid "Characters (All)" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:192 msgid "Characters (Visible)" msgstr "" #: lib/Padre/Document/Perl.pm:550 msgid "Check Complete" msgstr "" #: lib/Padre/Document/Perl.pm:619 lib/Padre/Document/Perl.pm:675 #: lib/Padre/Document/Perl.pm:694 msgid "Check cancelled" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1720 msgid "Check the current file for common beginner errors" msgstr "" #: lib/Padre/Locale.pm:431 msgid "Chinese" msgstr "" #: lib/Padre/Locale.pm:441 lib/Padre/Wx/FBP/About.pm:343 msgid "Chinese (Simplified)" msgstr "" #: lib/Padre/Locale.pm:451 lib/Padre/Wx/FBP/About.pm:364 msgid "Chinese (Traditional)" msgstr "" #: lib/Padre/Wx/Main.pm:4313 lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "" #: lib/Padre/Wx/FBP/About.pm:218 msgid "Chris Dolan" msgstr "" #: lib/Padre/Wx/FBP/About.pm:358 msgid "Chuanren Wu" msgstr "" #: lib/Padre/Wx/FBP/About.pm:272 msgid "Claudio Ramirez" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:662 msgid "Clean up file content on saving (for supported document types)" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:221 msgid "Click on the arrow for filter settings" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:120 lib/Padre/Wx/FBP/Text.pm:56 #: lib/Padre/Wx/FBP/PluginManager.pm:152 lib/Padre/Wx/FBP/About.pm:672 #: lib/Padre/Wx/FBP/SLOC.pm:176 lib/Padre/Wx/FBP/Sync.pm:253 #: lib/Padre/Wx/FBP/Diff.pm:94 lib/Padre/Wx/FBP/Document.pm:254 #: lib/Padre/Wx/FBP/SessionManager.pm:119 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 lib/Padre/Wx/Dialog/WindowList.pm:279 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:362 msgid "Close &Files..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:342 msgid "Close &all Files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:301 msgid "Close &this Project" msgstr "" #: lib/Padre/Wx/Main.pm:5226 msgid "Close all" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:352 msgid "Close all &other Files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:302 msgid "Close all the files belonging to the current project" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:353 msgid "Close all the files except the current one" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:343 msgid "Close all the files open in the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:323 msgid "Close all the files that do not belong to the current project" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:383 msgid "Close current document and remove the file from disk" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:322 msgid "Close other &Projects" msgstr "" #: lib/Padre/Wx/Main.pm:5294 msgid "Close some" msgstr "" #: lib/Padre/Wx/Main.pm:5272 msgid "Close some files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1696 msgid "Close the highest priority dialog or panel" msgstr "" #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:67 msgid "Code Lines:" msgstr "" #: lib/Padre/Config.pm:774 msgid "Code Order" msgstr "" #: lib/Padre/Wx/FBP/FoundInFiles.pm:91 msgid "Collapse All" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:144 msgid "Coloured text in output window (ANSI)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1940 msgid "Combine scattered POD at the end of the document" msgstr "" #: lib/Padre/Wx/Command.pm:97 msgid "Command" msgstr "" #: lib/Padre/Wx/Main.pm:2724 msgid "Command line" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:540 msgid "Command line files open in existing Padre instance" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:970 msgid "Comment out selected lines or the current line" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "Comment out/remove comment for selected lines or the current line" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:79 msgid "Comments Lines:" msgstr "" #: lib/Padre/Wx/VCS.pm:495 msgid "Commit file/directory to repository?" msgstr "" #: lib/Padre/Wx/Dialog/About.pm:119 msgid "Config" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:134 lib/Padre/Wx/FBP/Sync.pm:163 msgid "Confirm:" msgstr "" #: lib/Padre/Wx/VCS.pm:249 msgid "Conflicted" msgstr "" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "" #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:103 msgid "Constructive Cost Model (COCOMO)" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:168 msgid "Content Assist" msgstr "" #: lib/Padre/Config.pm:982 msgid "Contents of the status bar" msgstr "" #: lib/Padre/Config.pm:727 msgid "Contents of the window title" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Control character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Control characters" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:188 msgid "Convert &Encoding (broken)" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:210 msgid "Convert &Line Endings" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1057 msgid "Convert all tabs to spaces in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1067 msgid "Convert all the spaces to tabs in the current document" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "" #: lib/Padre/Wx/VCS.pm:263 msgid "Copied" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:747 msgid "Copy &Directory Name" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:761 msgid "Copy Editor &Content" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:732 msgid "Copy F&ilename" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:717 msgid "Copy Full &Filename" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Copy filename to clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:373 msgid "Copy the current tab into a new document" msgstr "" #: lib/Padre/Wx/FBP/About.pm:87 msgid "" "Copyright 2008–2012 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:197 #, perl-format msgid "Could not create: '%s': %s" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, perl-format msgid "Could not delete: '%s': %s" msgstr "" #: lib/Padre/Wx/Panel/Debugger.pm:646 #, perl-format msgid "Could not evaluate '%s'" msgstr "" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:312 msgid "Could not find a help provider for " msgstr "" #: lib/Padre/Wx/Main.pm:4301 #, perl-format msgid "Could not find file '%s'" msgstr "" #: lib/Padre/Wx/Main.pm:2790 msgid "Could not find perl executable" msgstr "" #: lib/Padre/Wx/Main.pm:2760 lib/Padre/Wx/Main.pm:2821 #: lib/Padre/Wx/Main.pm:2875 msgid "Could not find project root" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2275 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "" #: lib/Padre/PluginManager.pm:895 msgid "Could not locate project directory." msgstr "" #: lib/Padre/Wx/Main.pm:4611 #, perl-format msgid "Could not reload file: %s" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:178 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr "" #: lib/Padre/Wx/Main.pm:5048 msgid "Could not save file: " msgstr "" #: lib/Padre/Wx/CPAN.pm:230 msgid "Count" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:290 #: lib/Padre/Wx/Directory/TreeCtrl.pm:349 msgid "Create Directory" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1806 msgid "Create Project &Tagsfile" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1309 msgid "Create a bookmark in the current file current row" msgstr "" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by Gábor Szabó" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "" "Creates a perltags - file for the current project supporting find_method and " "autocomplete." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1134 msgid "Ctrl" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:686 msgid "Cu&t" msgstr "" #: lib/Padre/Document/Perl.pm:693 #, perl-format msgid "Current '%s' not found" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:244 msgid "Current Directory: " msgstr "" #: lib/Padre/Document/Perl.pm:674 msgid "Current cursor does not seem to point at a method" msgstr "" #: lib/Padre/Document/Perl.pm:618 lib/Padre/Document/Perl.pm:652 msgid "Current cursor does not seem to point at a variable" msgstr "" #: lib/Padre/Document/Perl.pm:814 lib/Padre/Document/Perl.pm:864 #: lib/Padre/Document/Perl.pm:901 msgid "Current cursor does not seem to point at a variable." msgstr "" #: lib/Padre/Wx/Main.pm:2815 lib/Padre/Wx/Main.pm:2866 msgid "Current document has no filename" msgstr "" #: lib/Padre/Wx/Main.pm:2869 msgid "Current document is not a .t file" msgstr "" #: lib/Padre/Wx/VCS.pm:204 msgid "Current file is not in a version control system" msgstr "" #: lib/Padre/Wx/VCS.pm:195 msgid "Current file is not saved in a version control system" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:712 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1891 msgid "" "Cut the current selection and create a new sub from it. A call to this sub " "is added in the place where the selection was." msgstr "" #: lib/Padre/Locale.pm:167 lib/Padre/Wx/FBP/About.pm:379 msgid "Czech" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:372 msgid "D&uplicate" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:355 msgid "DELETED" msgstr "" #: lib/Padre/Locale.pm:177 msgid "Danish" msgstr "" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:370 msgid "Debug" msgstr "" #: lib/Padre/Wx/Panel/DebugOutput.pm:50 msgid "Debug Output" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:552 msgid "Debug-Output Options" msgstr "" #: lib/Padre/Wx/Panel/Debugger.pm:61 msgid "Debugger" msgstr "" #: lib/Padre/Wx/Panel/Debugger.pm:257 msgid "Debugger is already running" msgstr "" #: lib/Padre/Wx/Panel/Debugger.pm:334 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:573 msgid "Default Newline Format:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:588 msgid "Default Project Directory:" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:621 msgid "Default word wrap on for each file" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:236 lib/Padre/Wx/Directory/TreeCtrl.pm:379 #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Delete" msgstr "" #: lib/Padre/Wx/FBP/Bookmarks.pm:111 msgid "Delete &All" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1076 msgid "Delete &Leading Spaces" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:266 msgid "Delete Directory" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:325 msgid "Delete File" msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:43 msgid "" "Delete MARKER_NOT_BREAKABLE\n" "Current File Only" msgstr "" #: lib/Padre/Wx/FBP/SessionManager.pm:103 msgid "Delete Session" msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:138 msgid "Delete all project Breakpoints" msgstr "" #: lib/Padre/Wx/VCS.pm:534 msgid "Delete file from repository??" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1203 msgid "Delete the keyboard binding" msgstr "" #: lib/Padre/Wx/VCS.pm:247 lib/Padre/Wx/VCS.pm:261 msgid "Deleted" msgstr "" #: lib/Padre/Wx/Syntax.pm:53 msgid "Deprecation" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:176 #: lib/Padre/Wx/Dialog/SessionManager2.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:158 lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1505 msgid "Detect Perl 6 files" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1034 msgid "Detect indent settings for each file" msgstr "" #: lib/Padre/Wx/FBP/About.pm:849 msgid "Development" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:156 msgid "Development Cost (USD):" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "" #: lib/Padre/CPAN.pm:113 lib/Padre/CPAN.pm:137 msgid "Did not provide a distribution" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:94 msgid "Did not select a bookmark" msgstr "" #: lib/Padre/Wx/FBP/Diff.pm:29 msgid "Diff" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:485 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Digits" msgstr "" #: lib/Padre/Config.pm:830 msgid "Directories First" msgstr "" #: lib/Padre/Config.pm:831 msgid "Directories Mixed" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:95 msgid "Directory" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:73 lib/Padre/Wx/FBP/ReplaceInFiles.pm:91 msgid "Directory:" msgstr "" #: lib/Padre/Wx/FBP/About.pm:403 msgid "Dirk De Nijs" msgstr "" #: lib/Padre/PluginHandle.pm:27 msgid "Disabled" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Disk" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:143 msgid "Display Value" msgstr "" #: lib/Padre/Wx/CPAN.pm:211 lib/Padre/Wx/CPAN.pm:220 lib/Padre/Wx/CPAN.pm:229 #: lib/Padre/Wx/Dialog/About.pm:139 msgid "Distribution" msgstr "" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "" #: lib/Padre/Wx/Main.pm:5412 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "" #: lib/Padre/Wx/VCS.pm:514 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "" #: lib/Padre/Wx/VCS.pm:494 msgid "Do you want to commit?" msgstr "" #: lib/Padre/Wx/Main.pm:3126 msgid "Do you want to continue?" msgstr "" #: lib/Padre/Wx/VCS.pm:533 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:481 msgid "Do you want to override it with the selected action?" msgstr "" #: lib/Padre/Wx/VCS.pm:560 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:123 msgid "Document" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:67 msgid "Document Class" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:29 msgid "Document Information" msgstr "" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:55 msgid "Document Type" msgstr "" #: lib/Padre/Wx/Main.pm:6843 #, perl-format msgid "Document encoded to (%s)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Down" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:219 msgid "Download" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "" #: lib/Padre/Locale.pm:351 lib/Padre/Wx/FBP/About.pm:394 msgid "Dutch" msgstr "" #: lib/Padre/Locale.pm:361 msgid "Dutch (Belgium)" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:376 msgid "" "E\n" "Display all thread ids the current one will be identified: ." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1044 msgid "EOL to &Mac Classic" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1034 msgid "EOL to &Unix" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1024 msgid "EOL to &Windows" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:364 msgid "Edit" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2202 msgid "Edit user and host preferences" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:224 msgid "Editor" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:852 msgid "Editor Bookmark Support" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:860 msgid "Editor Code Folding" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:784 msgid "Editor Current Line Background Colour" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:868 msgid "Editor Cursor Memory" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:892 msgid "Editor Diff Feature" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:760 msgid "Editor Font" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:604 msgid "Editor Options" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:876 msgid "Editor Session Support" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:678 lib/Padre/Wx/FBP/Preferences.pm:1903 msgid "Editor Style" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:884 msgid "Editor Syntax Annotations" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:70 msgid "Email Address:" msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:163 msgid "Email and confirmation do not match." msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:75 lib/Padre/Wx/FBP/Sync.pm:120 msgid "Email:" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:651 msgid "Empty regex" msgstr "" #: lib/Padre/Wx/FBP/PluginManager.pm:120 msgid "Enable" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1382 msgid "Enable Perl beginner mode" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:637 msgid "Enable Smart highlighting while typing" msgstr "" #: lib/Padre/Config.pm:1620 msgid "Enable document differences feature" msgstr "" #: lib/Padre/Config.pm:1570 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "" #: lib/Padre/Config.pm:1590 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "" #: lib/Padre/Config.pm:1610 msgid "Enable syntax checker annotations in the editor" msgstr "" #: lib/Padre/Config.pm:1640 msgid "Enable the CPAN Explorer, powered by MetaCPAN" msgstr "" #: lib/Padre/Config.pm:1660 msgid "Enable the experimental command line interface" msgstr "" #: lib/Padre/Config.pm:1630 msgid "Enable version control system support" msgstr "" #: lib/Padre/PluginHandle.pm:28 msgid "Enabled" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1014 msgid "Encode Document &to..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:994 msgid "Encode Document to &System Default" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1004 msgid "Encode Document to &utf-8" msgstr "" #: lib/Padre/Wx/Main.pm:6865 msgid "Encode document to..." msgstr "" #: lib/Padre/Wx/Main.pm:6864 msgid "Encode to:" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:91 msgid "Encoding" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:43 msgid "End" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "End case modification/metacharacter quoting" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "End of line" msgstr "" #: lib/Padre/Locale.pm:197 msgid "English" msgstr "" #: lib/Padre/Locale.pm:125 msgid "English (Australia)" msgstr "" #: lib/Padre/Locale.pm:206 msgid "English (Canada)" msgstr "" #: lib/Padre/Locale.pm:215 msgid "English (New Zealand)" msgstr "" #: lib/Padre/Locale.pm:86 msgid "English (United Kingdom)" msgstr "" #: lib/Padre/Locale.pm:226 msgid "English (United States)" msgstr "" #: lib/Padre/Wx/FBP/About.pm:616 msgid "Enrique Nell" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:46 msgid "Enter" msgstr "" #: lib/Padre/CPAN.pm:127 msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:214 msgid "Enter parts of the resource name to find it" msgstr "" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "" #: lib/Padre/PluginHandle.pm:23 lib/Padre/Document.pm:454 #: lib/Padre/Wx/Editor.pm:939 lib/Padre/Wx/Main.pm:5049 #: lib/Padre/Wx/Role/Dialog.pm:95 lib/Padre/Wx/Dialog/Sync.pm:87 #: lib/Padre/Wx/Dialog/Sync.pm:95 lib/Padre/Wx/Dialog/Sync.pm:108 #: lib/Padre/Wx/Dialog/Sync.pm:143 lib/Padre/Wx/Dialog/Sync.pm:154 #: lib/Padre/Wx/Dialog/Sync.pm:164 lib/Padre/Wx/Dialog/Sync.pm:182 #: lib/Padre/Wx/Dialog/Sync.pm:206 lib/Padre/Wx/Dialog/Sync.pm:230 #: lib/Padre/Wx/Dialog/Sync.pm:241 msgid "Error" msgstr "" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "" #: lib/Padre/Wx/Main.pm:5431 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" #: lib/Padre/Wx/Main.pm:5642 msgid "Error loading perl filter dialog." msgstr "" #: lib/Padre/Wx/Main.pm:5613 msgid "Error loading regex editor." msgstr "" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "" #: lib/Padre/Wx/Main.pm:6819 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" #: lib/Padre/Wx/Main.pm:6801 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" #: lib/Padre/PluginManager.pm:838 #, perl-format msgid "Error when calling menu for plug-in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:83 lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "" #: lib/Padre/Document.pm:282 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "" #: lib/Padre/Document.pm:232 msgid "Error while opening file: no file object" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "" #: lib/Padre/Wx/VCS.pm:445 msgid "Error while trying to perform Padre action" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:91 #: lib/Padre/Wx/Dialog/OpenResource.pm:119 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:328 msgid "Error:\n" msgstr "" #: lib/Padre/Document/Perl.pm:512 msgid "Error: " msgstr "" #: lib/Padre/Wx/Main.pm:6137 lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:47 msgid "Escape" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Escape (Esc)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:138 msgid "Escape characters" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:132 msgid "Estimated Project Years:" msgstr "" #: lib/Padre/Wx/FBP/Expression.pm:80 msgid "Evaluate" msgstr "" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "" #: lib/Padre/Wx/FBP/Expression.pm:29 msgid "Evaluate Expression" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:424 msgid "" "Evaluate expression\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Same as print {$DB::OUT} expr in the current package. In particular, because " "this is just Perl's own print function.\n" "\n" "x [maxdepth] expr\n" "Evaluates its expression in list context and dumps out the result in a " "pretty-printed fashion. Nested data structures are printed out recursively," msgstr "" #: lib/Padre/Wx/Main.pm:4822 msgid "Exist" msgstr "" #: lib/Padre/Wx/FBP/Bookmarks.pm:63 msgid "Existing Bookmarks:" msgstr "" #: lib/Padre/Wx/FBP/FoundInFiles.pm:71 msgid "Expand All" msgstr "" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of " "commands. If it does not work, blame szabgab.\n" "\n" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:503 msgid "Expression To Evaluate" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:484 msgid "Extended (&x)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "" "Extended regular expressions allow free formatting (whitespace is ignored) " "and comments" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1889 msgid "Extract &Subroutine..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1902 msgid "Extract Subroutine" msgstr "" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "" #: lib/Padre/Wx/Main.pm:4942 #, perl-format msgid "Failed to create path '%s'" msgstr "" #: lib/Padre/Wx/Main.pm:1137 msgid "Failed to create server" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "" #: lib/Padre/PluginHandle.pm:402 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "" #: lib/Padre/PluginHandle.pm:272 lib/Padre/PluginHandle.pm:299 #: lib/Padre/PluginHandle.pm:322 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1241 msgid "Failed to find any matches" msgstr "" #: lib/Padre/CPAN.pm:83 msgid "Failed to find your CPAN configuration" msgstr "" #: lib/Padre/PluginManager.pm:917 lib/Padre/PluginManager.pm:1012 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "" #: lib/Padre/Wx/Main.pm:3058 #, perl-format msgid "Failed to start '%s' command" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:130 lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "" #: lib/Padre/Wx/Syntax.pm:65 msgid "Fatal Error" msgstr "" #: lib/Padre/Wx/FBP/CPAN.pm:278 msgid "Favorite" msgstr "" #: lib/Padre/Wx/FBP/About.pm:176 lib/Padre/Wx/FBP/About.pm:352 msgid "Fayland Lam" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1904 msgid "Features" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStarter.pm:112 #, perl-format msgid "Field %s was missing. Module not created." msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:363 #: lib/Padre/Wx/Dialog/WindowList.pm:223 lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "" #: lib/Padre/Wx/Menu/File.pm:404 #, perl-format msgid "File %s not found." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1907 msgid "File Handling" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:376 msgid "File Outline" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:210 msgid "File Size (Bytes)" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:106 lib/Padre/Wx/FBP/ReplaceInFiles.pm:124 msgid "File Types:" msgstr "" #: lib/Padre/Wx/Main.pm:4928 msgid "File already exists" msgstr "" #: lib/Padre/Wx/Main.pm:4821 msgid "File already exists. Overwrite it?" msgstr "" #: lib/Padre/Wx/Main.pm:5038 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "" #: lib/Padre/Wx/Main.pm:5133 msgid "File changed. Do you want to save it?" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:308 lib/Padre/Wx/ActionLibrary.pm:328 msgid "File is not in a project" msgstr "" #: lib/Padre/Wx/Main.pm:4477 #, perl-format msgid "" "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "" #: lib/Padre/Wx/Main.pm:4497 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "" #: lib/Padre/Wx/Main.pm:5039 msgid "File not in sync" msgstr "" #: lib/Padre/Wx/Main.pm:5406 msgid "File was never saved and has no filename - can't delete from disk" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:138 msgid "File-1" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:161 msgid "File-2" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "" #: lib/Padre/Wx/Notebook.pm:70 msgid "Files" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:55 msgid "Files:" msgstr "" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1147 msgid "Filter through &Perl..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1138 msgid "Filter through E&xternal Tool..." msgstr "" #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "" #: lib/Padre/Wx/FBP/Snippet.pm:38 msgid "Filter:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1139 msgid "" "Filters the selection (or the whole document) through any external command." msgstr "" #: lib/Padre/Wx/FBP/Find.pm:30 msgid "Find" msgstr "" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Find &Method Declaration" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Find &Next" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1755 msgid "Find &Variable Declaration" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1743 msgid "Find Unmatched &Brace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1263 msgid "Find in Fi&les..." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:470 lib/Padre/Wx/FBP/FindInFiles.pm:32 #: lib/Padre/Wx/Panel/FoundInFiles.pm:438 msgid "Find in Files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1252 msgid "Find text and replace it" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1181 msgid "Find text or regular expressions using a traditional dialog" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1768 msgid "Find where the selected function was defined and put the focus there." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1756 msgid "" "Find where the selected variable was declared using \"my\" and put the focus " "there." msgstr "" #: lib/Padre/Wx/FBP/FindFast.pm:55 msgid "Find:" msgstr "" #: lib/Padre/Document/Perl.pm:950 msgid "First character of selection does not seem to point at a token." msgstr "" #: lib/Padre/Wx/Editor.pm:1904 msgid "First character of selection must be a non-word character to align" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1532 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/Menu/View.pm:178 msgid "Font Si&ze" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:453 msgid "" "For new document try to guess the filename based on the file content and " "offer to save it." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Form feed" msgstr "" #: lib/Padre/Wx/Syntax.pm:472 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "" #: lib/Padre/Wx/Syntax.pm:478 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "" #: lib/Padre/Locale.pm:283 lib/Padre/Wx/FBP/About.pm:409 msgid "French" msgstr "" #: lib/Padre/Locale.pm:269 msgid "French (Canada)" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1677 msgid "Full Sc&reen" msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:56 lib/Padre/Wx/FBP/Preferences.pm:361 msgid "Function List" msgstr "" #: lib/Padre/Wx/FunctionList.pm:148 msgid "Functions" msgstr "" #: lib/Padre/Config.pm:1932 msgid "GPL 2 or later" msgstr "" #: lib/Padre/Wx/FBP/About.pm:116 msgid "Gabor Szabo" msgstr "" #: lib/Padre/Wx/FBP/About.pm:302 lib/Padre/Wx/FBP/About.pm:595 msgid "Gabriel Vieira" msgstr "" #: lib/Padre/Locale.pm:187 lib/Padre/Wx/FBP/About.pm:430 msgid "German" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:489 msgid "Global (&g)" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2459 msgid "Go to &Command Line Window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2414 msgid "Go to &Functions Window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2470 msgid "Go to &Main Window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1319 msgid "Go to Bookmar&k..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2403 msgid "Go to CPAN E&xplorer Window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2426 msgid "Go to O&utline Window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2437 msgid "Go to Ou&tput Window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2448 msgid "Go to S&yntax Check Window" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:908 msgid "Graphical Debugger Tool" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:123 msgid "Grouping constructs" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1001 msgid "Guess from Current Document" msgstr "" #: lib/Padre/Wx/FBP/About.pm:493 msgid "Gyorgy Pasztor" msgstr "" #: lib/Padre/Locale.pm:293 lib/Padre/Wx/FBP/About.pm:457 msgid "Hebrew" msgstr "" #: lib/Padre/Wx/FBP/About.pm:194 lib/Padre/Wx/FBP/About.pm:439 msgid "Heiko Jansen" msgstr "" #: lib/Padre/Wx/Browser.pm:63 lib/Padre/Wx/Dialog/QuickMenuAccess.pm:373 msgid "Help" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:41 lib/Padre/Wx/Dialog/HelpSearch.pm:98 msgid "Help Search" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2607 msgid "Help by translating Padre to your local language" msgstr "" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Hex character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Hexadecimal digits" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1577 msgid "Highlight the line where the cursor is" msgstr "" #: lib/Padre/Wx/Directory.pm:595 msgid "Hit unfixed bug in directory browser, disabling it" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:42 msgid "Home" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "" #: lib/Padre/Wx/Main.pm:6316 msgid "How many spaces for each tab:" msgstr "" #: lib/Padre/Locale.pm:303 lib/Padre/Wx/FBP/About.pm:484 msgid "Hungarian" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1359 msgid "If activated, do not allow moving around some of the windows" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:472 msgid "Ignore case (&i)" msgstr "" #: lib/Padre/Wx/VCS.pm:250 lib/Padre/Wx/FBP/VCS.pm:205 msgid "Ignored" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1460 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" #: lib/Padre/PluginHandle.pm:26 msgid "Incompatible" msgstr "" #: lib/Padre/Config.pm:1090 msgid "Indent Deeply" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1017 msgid "Indent Detection" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:940 msgid "Indent Settings" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:965 msgid "Indent Spaces:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1059 msgid "Indent on Newline:" msgstr "" #: lib/Padre/Config.pm:1089 msgid "Indent to Same Depth" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1905 msgid "Indentation" msgstr "" #: lib/Padre/Wx/FBP/About.pm:851 msgid "Information" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "" #: lib/Padre/Wx/FBP/Snippet.pm:118 lib/Padre/Wx/FBP/Special.pm:78 #: lib/Padre/Wx/Menu/Edit.pm:119 lib/Padre/Wx/Dialog/Preferences.pm:40 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:270 msgid "Insert" msgstr "" #: lib/Padre/Wx/FBP/Snippet.pm:29 msgid "Insert Snippet" msgstr "" #: lib/Padre/Wx/FBP/Special.pm:29 msgid "Insert Special Values" msgstr "" #: lib/Padre/Wx/FBP/CPAN.pm:207 msgid "Insert Synopsis" msgstr "" #: lib/Padre/Wx/FBP/CPAN.pm:239 msgid "Install" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2344 msgid "Install &Remote Distribution" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2334 msgid "Install L&ocal Distribution" msgstr "" #: lib/Padre/CPAN.pm:128 msgid "Install Local Distribution" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "" #: lib/Padre/Wx/Syntax.pm:71 msgid "Internal Error" msgstr "" #: lib/Padre/Wx/Main.pm:6138 msgid "Internal error" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1916 msgid "Introduce &Temporary Variable..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1925 msgid "Introduce Temporary Variable" msgstr "" #: lib/Padre/Locale.pm:317 lib/Padre/Wx/FBP/About.pm:499 msgid "Italian" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:105 msgid "Item Regular Expression:" msgstr "" #: lib/Padre/Locale.pm:327 lib/Padre/Wx/FBP/About.pm:514 msgid "Japanese" msgstr "" #: lib/Padre/Wx/Main.pm:4420 msgid "JavaScript Files" msgstr "" #: lib/Padre/Wx/FBP/About.pm:146 lib/Padre/Wx/FBP/About.pm:418 msgid "Jerome Quelin" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:909 msgid "Join the next line to the end of the current line." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1296 msgid "Jump to a specific line number or character position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:805 msgid "Jump to the code that has been changed" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:794 msgid "Jump to the code that triggered the next error" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:885 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "" #: lib/Padre/Wx/FBP/About.pm:278 msgid "Kaare Rasmussen" msgstr "" #: lib/Padre/Wx/FBP/About.pm:290 msgid "Kartik Thakore" msgstr "" #: lib/Padre/Wx/FBP/About.pm:248 lib/Padre/Wx/FBP/About.pm:538 msgid "Keedi Kim" msgstr "" #: lib/Padre/Wx/FBP/About.pm:242 lib/Padre/Wx/FBP/About.pm:523 msgid "Kenichi Ishigaki" msgstr "" #: lib/Padre/Wx/Dialog/About.pm:144 msgid "Kernel" msgstr "" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Kevin Dawson" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1906 msgid "Key Bindings" msgstr "" #: lib/Padre/Wx/FBP/About.pm:553 msgid "Kjetil Skotheim" msgstr "" #: lib/Padre/Locale.pm:465 msgid "Klingon" msgstr "" #: lib/Padre/Locale.pm:337 lib/Padre/Wx/FBP/About.pm:529 msgid "Korean" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:296 msgid "" "L [abw]\n" "List (default all) actions, breakpoints and watch expressions" msgstr "" #: lib/Padre/Config.pm:1933 msgid "LGPL 2.1 or later" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "" #: lib/Padre/Wx/Menu/View.pm:210 msgid "Lan&guage" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1908 msgid "Language - Perl 5" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1909 msgid "Language - Perl 6" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1365 lib/Padre/Wx/FBP/Preferences.pm:1488 msgid "Language Integration" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager2.pm:30 msgid "Last Updated" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2124 msgid "Launch Debugger" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:38 msgid "Left" msgstr "" #: lib/Padre/Config.pm:136 msgid "Left Panel" msgstr "" #: lib/Padre/Wx/FBP/Diff.pm:72 msgid "Left side" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:99 msgid "License:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "" "Like pressing ENTER somewhere on a line, but use the current position as " "ident for the new line." msgstr "" #: lib/Padre/Wx/Syntax.pm:507 #, perl-format msgid "Line %d: (%s) %s" msgstr "" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:342 msgid "Line number" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:138 lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:210 msgid "List of open files" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:477 msgid "" "List the files that match the current selection and let the user pick one to " "open" msgstr "" #: lib/Padre/PluginHandle.pm:25 msgid "Loaded" msgstr "" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1358 msgid "Loc&k User Interface" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1261 msgid "Local file update poll interval in seconds (0 to disable)" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:58 msgid "Logged out" msgstr "" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:104 msgid "Login" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Long hex character" msgstr "" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Lowercase characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Lowercase next character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Lowercase till \\E" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:336 msgid "" "M\n" "Display all loaded modules and their versions." msgstr "" #: lib/Padre/Wx/FBP/Document.pm:79 msgid "MIME Type" msgstr "" #: lib/Padre/Config.pm:1934 msgid "MIT License" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1642 msgid "Make the letters bigger in the editor window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1652 msgid "Make the letters smaller in the editor window" msgstr "" #: lib/Padre/Wx/FBP/About.pm:388 msgid "Marcela Maslanova" msgstr "" #: lib/Padre/Wx/FBP/About.pm:574 msgid "Marek Roszkowski" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:659 msgid "Mark Selection &End" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:647 msgid "Mark Selection &Start" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:660 msgid "Mark the place where the selection should end" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:648 msgid "Mark the place where the selection should start" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:102 msgid "Match 0 or more times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or 0 times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 1 or more times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least m but not more than n times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match at least n times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match exactly m times" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:677 #, perl-format msgid "Match failure in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:688 #, perl-format msgid "Match warning in %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:697 #, perl-format msgid "Match with 0 width at character %s" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:235 msgid "Matched text:" msgstr "" #: lib/Padre/Wx/FBP/About.pm:373 msgid "Matthew Lien" msgstr "" #: lib/Padre/Wx/FBP/About.pm:254 msgid "Max Maischein" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:227 msgid "Maximum number of suggestions" msgstr "" #: lib/Padre/Wx/Role/Dialog.pm:69 lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "" #: lib/Padre/Wx/FBP/CPAN.pm:223 msgid "MetaCPAN..." msgstr "" #: lib/Padre/Wx/Outline.pm:364 msgid "Methods" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:245 msgid "Minimum characters for autocomplete" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:209 msgid "Minimum length of suggestions" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:119 lib/Padre/Wx/Dialog/RegexEditor.pm:111 msgid "Miscellaneous" msgstr "" #: lib/Padre/Wx/VCS.pm:252 msgid "Missing" msgstr "" #: lib/Padre/Wx/VCS.pm:248 lib/Padre/Wx/VCS.pm:259 msgid "Modified" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:38 lib/Padre/Document/Perl/Starter.pm:139 msgid "Module Name:" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:29 msgid "Module Starter" msgstr "" #: lib/Padre/Wx/Outline.pm:363 msgid "Modules" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:480 msgid "Multi-line (&m)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2269 msgid "" "My Plug-in is a plug-in where developers could extend their Padre " "installation" msgstr "" #: lib/Padre/Plugin/My.pm:28 msgid "My Plugin" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:120 msgid "Mythical Man Months:" msgstr "" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager2.pm:28 lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1901 msgid "Name for the new subroutine" msgstr "" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "" #: lib/Padre/Wx/Main.pm:6644 msgid "Need to select text in order to translate numbers" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Negative lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Negative lookbehind assertion" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:556 msgid "New File Creation" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:381 msgid "New Folder" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "" #: lib/Padre/Document/Perl/Starter.pm:140 msgid "New Module" msgstr "" #: lib/Padre/Document/Perl.pm:824 msgid "New name" msgstr "" #: lib/Padre/PluginManager.pm:393 msgid "New plug-ins detected" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Newline" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:103 msgid "Newline Type" msgstr "" #: lib/Padre/Wx/Diff2.pm:29 lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "" #: lib/Padre/Config.pm:1088 msgid "No Autoindent" msgstr "" #: lib/Padre/Wx/Main.pm:2787 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:95 msgid "No Help found" msgstr "" #: lib/Padre/Wx/Diff.pm:260 msgid "No changes found" msgstr "" #: lib/Padre/Document/Perl.pm:654 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "" #: lib/Padre/Document/Perl.pm:903 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "" #: lib/Padre/Wx/Main.pm:2754 lib/Padre/Wx/Main.pm:2809 #: lib/Padre/Wx/Main.pm:2860 msgid "No document open" msgstr "" #: lib/Padre/Task/CPAN.pm:183 #, perl-format msgid "No documentation for '%s'" msgstr "" #: lib/Padre/Document/Perl.pm:514 msgid "No errors found." msgstr "" #: lib/Padre/Wx/Syntax.pm:454 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "" #: lib/Padre/Wx/Syntax.pm:459 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "" #: lib/Padre/Wx/Main.pm:3101 msgid "No execution mode was defined for this document type" msgstr "" #: lib/Padre/PluginManager.pm:892 lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:716 msgid "No match" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:63 lib/Padre/Wx/Dialog/Replace.pm:135 #: lib/Padre/Wx/Dialog/Replace.pm:158 #, perl-format msgid "No matches found for \"%s\"." msgstr "" #: lib/Padre/Wx/Main.pm:3083 msgid "No open document" msgstr "" #: lib/Padre/Config.pm:679 msgid "No open files" msgstr "" #: lib/Padre/Wx/ReplaceInFiles.pm:258 lib/Padre/Wx/Panel/FoundInFiles.pm:307 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "" #: lib/Padre/Wx/Main.pm:933 #, perl-format msgid "No such session %s" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:843 msgid "No suggestions" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "Non-capturing group" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:32 msgid "None" msgstr "" #: lib/Padre/Wx/VCS.pm:245 lib/Padre/Wx/FBP/VCS.pm:173 msgid "Normal" msgstr "" #: lib/Padre/Locale.pm:371 lib/Padre/Wx/FBP/About.pm:544 msgid "Norwegian" msgstr "" #: lib/Padre/Wx/Panel/Debugger.pm:261 msgid "Not a Perl document" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:200 lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "Not a word boundary" msgstr "" #: lib/Padre/Wx/Main.pm:4254 msgid "Nothing selected. Enter what should be opened:" msgstr "" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:144 msgid "Number of Developers:" msgstr "" #: lib/Padre/Wx/Menu/File.pm:94 msgid "O&pen" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:138 lib/Padre/Wx/FBP/Bookmarks.pm:86 #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "" #: lib/Padre/Wx/VCS.pm:253 msgid "Obstructed" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Octal character" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:874 msgid "Offer completions to the current string. See Preferences" msgstr "" #: lib/Padre/Wx/FBP/About.pm:260 lib/Padre/Wx/FBP/About.pm:424 msgid "Olivier Mengue" msgstr "" #: lib/Padre/Wx/FBP/About.pm:466 msgid "Omer Zak" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Open &CPAN Config File" msgstr "" #: lib/Padre/Wx/Outline.pm:144 msgid "Open &Documentation" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:264 msgid "Open &Example" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Open &Last Closed File" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1333 msgid "Open &Resources..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:476 msgid "Open &Selection" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:219 msgid "Open &URL..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2355 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1314 msgid "Open FTP Files" msgstr "" #: lib/Padre/Wx/Main.pm:4444 lib/Padre/Wx/Directory/TreeCtrl.pm:302 msgid "Open File" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:525 msgid "Open Files:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1279 msgid "Open HTTP Files" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:33 #: lib/Padre/Wx/Dialog/OpenResource.pm:79 msgid "Open Resources" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:487 msgid "Open S&ession..." msgstr "" #: lib/Padre/Wx/Main.pm:4302 msgid "Open Selection" msgstr "" #: lib/Padre/Wx/FBP/SessionManager.pm:86 msgid "Open Session" msgstr "" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "" #: lib/Padre/Wx/Main.pm:4480 lib/Padre/Wx/Main.pm:4500 msgid "Open Warning" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 module" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:195 msgid "Open a document with a skeleton Perl 6 script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:220 msgid "Open a file from a remote location" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:537 msgid "Open all the files listed in the recent files list" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2260 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "" #: lib/Padre/Wx/Menu/File.pm:405 msgid "Open cancelled" msgstr "" #: lib/Padre/PluginManager.pm:966 lib/Padre/Wx/Main.pm:6030 msgid "Open file" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:254 msgid "Open in &Command Line" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:230 msgid "Open in File &Browser" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:253 #: lib/Padre/Wx/Directory/TreeCtrl.pm:312 msgid "Open in File Browser" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Open interesting and helpful Padre Wiki in your default web browser" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2579 msgid "Open interesting and helpful Perl websites in your default web browser" msgstr "" #: lib/Padre/Wx/Main.pm:4255 msgid "Open selection" msgstr "" #: lib/Padre/Config.pm:680 msgid "Open session" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2530 msgid "" "Open the Padre live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2542 lib/Padre/Wx/ActionLibrary.pm:2554 msgid "" "Open the Perl live support chat in your web browser and talk to others who " "may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2566 msgid "" "Open the Perl/Win32 live support chat in your web browser and talk to others " "who may help you with your problem" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2224 msgid "Open the regular expression editing window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2234 msgid "Open the selected text in the Regex Editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:240 msgid "Open with Default &System Editor" msgstr "" #: lib/Padre/Wx/Main.pm:3212 #, perl-format msgid "Opening session %s..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:255 msgid "Opens a command line using the current document folder" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:231 msgid "Opens the current document using the file browser" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:243 msgid "Opens the file with the default system editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:277 msgid "Opens the last closed file" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:846 msgid "" "Optional features can be disabled to simplify the user interface,\n" "reduce memory consumption and make Padre run faster.\n" "\n" "Changes to features are only applied when Padre is restarted." msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:148 msgid "Options" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "" #: lib/Padre/Wx/Outline.pm:189 lib/Padre/Wx/Outline.pm:233 msgid "Outline" msgstr "" #: lib/Padre/Wx/Output.pm:89 lib/Padre/Wx/FBP/Preferences.pm:455 msgid "Output" msgstr "" #: lib/Padre/Wx/Bottom.pm:53 msgid "Output View" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:482 msgid "Override Shortcut" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2540 msgid "P&erl Help (English)" msgstr "" #: lib/Padre/Wx/Menu/Tools.pm:104 msgid "P&lug-in Tools" msgstr "" #: lib/Padre/Wx/Main.pm:4424 msgid "PHP Files" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:296 msgid "POD" msgstr "" #: lib/Padre/Wx/FBP/POD.pm:30 msgid "POD Viewer" msgstr "" #: lib/Padre/Config.pm:1319 lib/Padre/Wx/Scintilla.pm:28 msgid "PPI Experimental" msgstr "" #: lib/Padre/Config.pm:1320 lib/Padre/Wx/Scintilla.pm:34 msgid "PPI Standard" msgstr "" #: lib/Padre/Wx/FBP/About.pm:610 msgid "Paco Alguacil" msgstr "" #: lib/Padre/Wx/FBP/About.pm:848 lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:32 msgid "Padre Preferences" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:29 msgid "Padre Sync" msgstr "" #: lib/Padre/Wx/FBP/About.pm:102 msgid "" "Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published " "by the \n" "Free Software Foundation; version 2 dated June, 1991." msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:45 msgid "PageDown" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:44 msgid "PageUp" msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:114 msgid "Parent Directory:" msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:153 msgid "Password and confirmation do not match." msgstr "" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:89 lib/Padre/Wx/FBP/Sync.pm:148 msgid "Password:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:779 msgid "Paste the clipboard to the current location" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:29 msgid "Patch" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:411 msgid "" "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:427 #, perl-format msgid "Patch successful, you should see a new tab in editor called %s" msgstr "" #: lib/Padre/Wx/VCS.pm:54 msgid "Path" msgstr "" #: lib/Padre/Wx/FBP/About.pm:224 msgid "Patrick Donelan" msgstr "" #: lib/Padre/Wx/FBP/About.pm:266 msgid "Paweł Murias" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:367 msgid "Perl" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:194 msgid "Perl &6 Script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 &Module" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 &Test" msgstr "" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1446 msgid "Perl Arguments" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1404 msgid "Perl Ctags File:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl Distribution..." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1390 msgid "Perl Executable:" msgstr "" #: lib/Padre/Wx/Main.pm:4422 lib/Padre/Wx/Choice/Files.pm:21 msgid "Perl Files" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2552 msgid "Perl Help (Japanese)" msgstr "" #: lib/Padre/Locale.pm:259 msgid "Persian (Iran)" msgstr "" #: lib/Padre/Wx/FBP/About.pm:284 msgid "Petar Shangov" msgstr "" #: lib/Padre/Wx/FBP/About.pm:134 msgid "Peter Lavender" msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:142 msgid "Please ensure all inputs have appropriate values." msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:107 msgid "Please input a valid value for both username and password" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the directory" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:169 msgid "Please type in the new name of the file" msgstr "" #: lib/Padre/Wx/Progress.pm:85 msgid "Please wait..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2259 msgid "Plug-in &List (CPAN)" msgstr "" #: lib/Padre/Wx/FBP/PluginManager.pm:29 msgid "Plug-in Manager" msgstr "" #: lib/Padre/PluginManager.pm:986 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "" #: lib/Padre/PluginManager.pm:781 #, perl-format msgid "Plugin %s" msgstr "" #: lib/Padre/PluginHandle.pm:341 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "" #: lib/Padre/PluginHandle.pm:354 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "" #: lib/Padre/PluginHandle.pm:362 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "" #: lib/Padre/PluginManager.pm:754 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "" #: lib/Padre/PluginManager.pm:721 #, perl-format msgid "Plugin error on event %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:371 msgid "Plugins" msgstr "" #: lib/Padre/Locale.pm:381 lib/Padre/Wx/FBP/About.pm:559 msgid "Polish" msgstr "" #: lib/Padre/Plugin/PopularityContest.pm:323 msgid "Popularity Contest Report" msgstr "" #: lib/Padre/Locale.pm:391 lib/Padre/Wx/FBP/About.pm:580 msgid "Portuguese (Brazil)" msgstr "" #: lib/Padre/Locale.pm:401 msgid "Portuguese (Portugal)" msgstr "" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Positive lookahead assertion" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Positive lookbehind assertion" msgstr "" #: lib/Padre/Wx/Outline.pm:362 msgid "Pragmata" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "" #: lib/Padre/Wx/FBP/PluginManager.pm:136 msgid "Preferences" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2212 msgid "Preferences &Sync..." msgstr "" #: lib/Padre/PluginHandle.pm:283 #, perl-format msgid "Prerequisites missing suggest you read the POD for '%s': %s" msgstr "" #: lib/Padre/Wx/FBP/Snippet.pm:92 msgid "Preview:" msgstr "" #: lib/Padre/Wx/Diff2.pm:27 lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "" #: lib/Padre/Config.pm:677 msgid "Previous open files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:517 msgid "Print the current document" msgstr "" #: lib/Padre/Wx/FBP/Patch.pm:104 msgid "Process" msgstr "" #: lib/Padre/Wx/Directory.pm:200 lib/Padre/Wx/Dialog/WindowList.pm:222 msgid "Project" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:346 msgid "Project Browser" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1442 msgid "Project Browser - Was known as the Directory Tree" msgstr "" #: lib/Padre/Wx/FBP/SLOC.pm:29 msgid "Project Statistics" msgstr "" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "" "Prompt for a replacement variable name and replace all occurrences of this " "variable" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Punctuation characters" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2367 msgid "Put focus on the next tab to the right" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2378 msgid "Put focus on the previous tab to the left" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:762 msgid "Put the content of the current document in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:702 msgid "Put the current selection in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:718 msgid "Put the full path of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:733 msgid "Put the name of the current file in the clipboard" msgstr "" #: lib/Padre/Wx/Main.pm:4426 msgid "Python Files" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:43 msgid "Quick Menu Access" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Quick access to all menu functions" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:163 msgid "Quit Debugger" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2176 msgid "Quit Debugger (&q)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2177 msgid "Quit the process being debugged" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "" #: lib/Padre/Wx/Dialog/About.pm:163 msgid "RAM" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:484 msgid "" "Raw\n" "You can enter what ever debug command you want!" msgstr "" #: lib/Padre/Wx/Menu/File.pm:190 msgid "Re&load" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2316 msgid "Re&load All Plug-ins" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1279 msgid "Re&place in Files..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2294 msgid "Re&set My plug-in" msgstr "" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Only" msgstr "" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Write" msgstr "" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:274 msgid "Reading items. Please wait" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:327 msgid "Reading items. Please wait..." msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:215 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "" #: lib/Padre/Wx/FBP/CPAN.pm:277 msgid "Recent" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Redo last undo" msgstr "" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:368 msgid "Refactor" msgstr "" #: lib/Padre/Wx/Directory.pm:226 lib/Padre/Wx/FBP/CPAN.pm:132 #: lib/Padre/Wx/FBP/CPAN.pm:180 msgid "Refresh" msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:63 msgid "Refresh List" msgstr "" #: lib/Padre/Wx/FBP/FoundInFiles.pm:51 msgid "Refresh Search" msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:143 msgid "Refresh the status of working copy files and directories" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:178 msgid "Register" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:315 msgid "Registration" msgstr "" #: lib/Padre/Wx/FBP/Find.pm:79 lib/Padre/Wx/FBP/Replace.pm:129 msgid "Regular E&xpression" msgstr "" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:402 msgid "Reload &All" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:392 msgid "Reload &File" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:412 msgid "Reload &Some..." msgstr "" #: lib/Padre/Wx/Main.pm:4717 msgid "Reload Files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:403 msgid "Reload all files currently open" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2317 msgid "Reload all plug-ins from &disk" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:393 msgid "Reload current file from disk" msgstr "" #: lib/Padre/Wx/Main.pm:4660 msgid "Reloading Files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2326 msgid "Reloads (or initially loads) the current plug-in" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:672 msgid "Remove all the selection marks" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:982 msgid "Remove comment for selected lines or the current line" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:687 msgid "Remove the current selection and put it in the clipboard" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:546 msgid "Remove the entries from the recent files list" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1077 msgid "Remove the spaces from the beginning of the selected lines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1087 msgid "Remove the spaces from the end of the selected lines" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:378 #: lib/Padre/Wx/Directory/TreeCtrl.pm:380 msgid "Rename" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:277 msgid "Rename Directory" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:336 msgid "Rename File" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename directory" msgstr "" #: lib/Padre/Wx/Directory/TreeCtrl.pm:170 msgid "Rename file" msgstr "" #: lib/Padre/Document/Perl.pm:815 lib/Padre/Document/Perl.pm:825 msgid "Rename variable" msgstr "" #: lib/Padre/Wx/VCS.pm:262 msgid "Renamed" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1223 msgid "Repeat the last find to find the next match" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1234 msgid "Repeat the last find, but backwards to find the previous match" msgstr "" #: lib/Padre/Wx/FBP/Replace.pm:31 msgid "Replace" msgstr "" #: lib/Padre/Wx/FBP/Replace.pm:186 msgid "Replace &All" msgstr "" #: lib/Padre/Wx/FBP/Replace.pm:88 msgid "Replace &With:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:485 msgid "Replace In Files" msgstr "" #: lib/Padre/Document/Perl.pm:909 lib/Padre/Document/Perl.pm:958 msgid "Replace Operation Canceled" msgstr "" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:66 msgid "Replace With:" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Replace all occurrences of the pattern" msgstr "" #: lib/Padre/Wx/ReplaceInFiles.pm:247 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "" #: lib/Padre/Wx/ReplaceInFiles.pm:131 lib/Padre/Wx/FBP/ReplaceInFiles.pm:32 msgid "Replace in Files" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Replace..." msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:128 #, perl-format msgid "Replaced %d match" msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:128 #, perl-format msgid "Replaced %d matches" msgstr "" #: lib/Padre/Wx/ReplaceInFiles.pm:188 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2589 msgid "Report a New &Bug" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2301 msgid "Reset My plug-in" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2295 msgid "Reset the My plug-in to the default" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1662 msgid "Reset the size of the letters to the default in the editor window" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1222 msgid "Reset to default shortcut" msgstr "" #: lib/Padre/Wx/Main.pm:3242 msgid "Restore focus..." msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:123 msgid "Restore pristine working copy file (undo most local edits)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Return" msgstr "" #: lib/Padre/Wx/VCS.pm:561 msgid "Revert changes?" msgstr "" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "" #: lib/Padre/Config.pm:1931 msgid "Revised BSD License" msgstr "" #: lib/Padre/Wx/VCS.pm:56 msgid "Revision" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "Right" msgstr "" #: lib/Padre/Config.pm:137 msgid "Right Panel" msgstr "" #: lib/Padre/Wx/FBP/Diff.pm:83 msgid "Right side" msgstr "" #: lib/Padre/Wx/Main.pm:4428 msgid "Ruby Files" msgstr "" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:369 msgid "Run" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1994 msgid "Run &Build and Tests" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1983 msgid "Run &Command" msgstr "" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2006 msgid "Run &Tests" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:43 msgid "" "Run Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1971 msgid "Run Script (&Debug Info)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "Run T&his Test" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2008 msgid "" "Run all tests for the current project or document and show the results in " "the output panel." msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "" #: lib/Padre/Wx/Main.pm:2725 msgid "Run setup" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1972 msgid "Run the current document but include debug info in the output." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2026 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1984 msgid "Runs a shell command and shows the output." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1956 msgid "Runs the current document and shows its output in the output panel." msgstr "" #: lib/Padre/Locale.pm:411 lib/Padre/Wx/FBP/About.pm:622 msgid "Russian" msgstr "" #: lib/Padre/Wx/FBP/About.pm:188 msgid "Ryan Niebur" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:444 msgid "" "S [[!]regex]\n" "List subroutine names [not] matching the regex." msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1179 msgid "S&et" msgstr "" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "" #: lib/Padre/Wx/Main.pm:4430 msgid "SQL Files" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:584 #, perl-format msgid "SVN Diff successful. You should see a new tab in editor called %s." msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save &As..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:452 msgid "Save &Intuition" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:463 msgid "Save All" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:499 msgid "Save Sess&ion..." msgstr "" #: lib/Padre/Document.pm:782 msgid "Save Warning" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "Save all the files" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:645 msgid "Save and Close" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Save current document" msgstr "" #: lib/Padre/Wx/Main.pm:4802 msgid "Save file as..." msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "" #: lib/Padre/Wx/FBP/SessionManager.pm:70 msgid "Save session automatically" msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:43 msgid "Schedule the file or directory for addition to the repository" msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:63 msgid "Schedule the file or directory for deletion from the repository" msgstr "" #: lib/Padre/Config.pm:1318 msgid "Scintilla" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1901 msgid "Screen Layout" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1466 msgid "Script Arguments" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1421 msgid "Script Execution" msgstr "" #: lib/Padre/Wx/Main.pm:4436 msgid "Script Files" msgstr "" #: lib/Padre/Wx/Directory.pm:84 lib/Padre/Wx/Directory.pm:505 #: lib/Padre/Wx/FBP/CPAN.pm:276 lib/Padre/Wx/Dialog/QuickMenuAccess.pm:365 #: lib/Padre/Wx/Dialog/Find.pm:66 msgid "Search" msgstr "" #: lib/Padre/Wx/FBP/Find.pm:87 msgid "Search &Backwards" msgstr "" #: lib/Padre/Wx/FBP/FindInFiles.pm:48 lib/Padre/Wx/FBP/Find.pm:46 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:41 lib/Padre/Wx/FBP/Replace.pm:47 msgid "Search &Term:" msgstr "" #: lib/Padre/Document/Perl.pm:660 msgid "Search Canceled" msgstr "" #: lib/Padre/Wx/Dialog/Replace.pm:131 lib/Padre/Wx/Dialog/Replace.pm:136 #: lib/Padre/Wx/Dialog/Replace.pm:161 msgid "Search and Replace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1280 msgid "Search and replace text in all files below a given directory" msgstr "" #: lib/Padre/Wx/Panel/FoundInFiles.pm:294 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1264 msgid "Search for a text in all files below a given directory" msgstr "" #: lib/Padre/Wx/Browser.pm:92 lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2493 msgid "Search the Perl help pages (perldoc)" msgstr "" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1744 msgid "" "Searches the source code for brackets with lack a matching (opening/closing) " "part." msgstr "" #: lib/Padre/Wx/Panel/FoundInFiles.pm:242 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "" #: lib/Padre/Wx/FBP/About.pm:140 lib/Padre/Wx/FBP/About.pm:445 msgid "Sebastian Willing" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Select &All" msgstr "" #: lib/Padre/Wx/Dialog/FindInFiles.pm:52 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:44 msgid "Select Directory" msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1320 msgid "Select a bookmark created earlier and jump to that position" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:920 msgid "" "Select a date, filename or other value and insert at the current location" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1411 msgid "Select a file" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:944 msgid "Select a file and insert its content at the current location" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:595 lib/Padre/Wx/FBP/ModuleStarter.pm:121 msgid "Select a folder" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:489 msgid "" "Select a session. Close all the files currently open and open all the listed " "in the session" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:635 msgid "Select all the text in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1015 msgid "Select an encoding and encode the document to that" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:932 msgid "Select and insert a snippet at the current location" msgstr "" #: lib/Padre/CPAN.pm:100 msgid "Select distribution to install" msgstr "" #: lib/Padre/Wx/Main.pm:5273 msgid "Select files to close:" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:238 msgid "Select one or more resources to open" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:363 msgid "Select some open files for closing" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:413 msgid "Select some open files for reload" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:131 msgid "Select the help &topic" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "Select to Matching &Brace" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Select to the matching opening or closing brace" msgstr "" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" #: lib/Padre/Wx/FBP/Document.pm:129 msgid "Selection" msgstr "" #: lib/Padre/Document/Perl.pm:952 msgid "Selection not part of a Perl statement?" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2590 msgid "Send a bug report to the Padre developer team" msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:103 msgid "Send changes from your working copy to the repository" msgstr "" #: lib/Padre/File/HTTP.pm:52 #, perl-format msgid "Sending HTTP request %s..." msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:38 msgid "Server:" msgstr "" #: lib/Padre/Wx/FBP/SessionManager.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1308 msgid "Set &Bookmark" msgstr "" #: lib/Padre/Wx/FBP/Bookmarks.pm:38 msgid "Set Bookmark:" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2155 msgid "Set Breakpoint (&b)" msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:83 msgid "Set Breakpoints (toggle)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1678 msgid "Set Padre in full screen mode" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2156 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2404 msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2460 msgid "Set the focus to the \"Command Line\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2415 msgid "Set the focus to the \"Functions\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2427 msgid "Set the focus to the \"Outline\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2438 msgid "Set the focus to the \"Output\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2449 msgid "Set the focus to the \"Syntax Check\" window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "Set the focus to the main editor window" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1184 msgid "Sets the keyboard binding" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Setup a skeleton Perl distribution" msgstr "" #: lib/Padre/Config.pm:727 lib/Padre/Config.pm:982 msgid "Several placeholders like the filename can be used" msgstr "" #: lib/Padre/Wx/Syntax.pm:59 msgid "Severe Warning" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2213 msgid "Share your preferences between multiple computers" msgstr "" #: lib/Padre/MIME.pm:1037 msgid "Shell Script" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1156 msgid "Shift" msgstr "" #: lib/Padre/Wx/FBP/About.pm:472 msgid "Shlomi Fish" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:174 lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1128 msgid "Shortcut:" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Shorten the common path in window list" msgstr "" #: lib/Padre/Wx/FBP/VCS.pm:239 lib/Padre/Wx/FBP/Breakpoints.pm:159 #: lib/Padre/Wx/FBP/Debugger.pm:519 msgid "Show" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1390 msgid "Show &Command Line" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:215 msgid "Show &Description" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1380 msgid "Show &Function List" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1618 msgid "Show &Indentation Guide" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1430 msgid "Show &Outline" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1370 msgid "Show &Output" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1441 msgid "Show &Project Browser" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1420 msgid "Show &Task List" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1608 msgid "Show &Whitespaces" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1576 msgid "Show C&urrent Line" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1400 msgid "Show CPA&N Explorer" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1562 msgid "Show Ca&ll Tips" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1521 msgid "Show Code &Folding" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2075 msgid "Show Debug Breakpoints" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2088 msgid "Show Debug Output" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2098 msgid "Show Debugger" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:212 msgid "Show Global Variables" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1510 msgid "Show Line &Numbers" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:193 msgid "Show Local Variables" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1598 msgid "Show Ne&wlines" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1586 msgid "Show Right &Margin" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1451 msgid "Show S&yntax Check" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1472 msgid "Show St&atus Bar" msgstr "" #: lib/Padre/Wx/FBP/Syntax.pm:63 msgid "Show Standard Error" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:245 msgid "Show Subs&titution" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1482 msgid "Show Tool&bar" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1461 msgid "Show V&ersion Control" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1587 msgid "Show a vertical line indicating the right margin" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1421 msgid "Show a window listing all task items in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1381 msgid "Show a window listing all the functions in the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1431 msgid "" "Show a window listing all the parts of the current file (functions, pragmas, " "modules)" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Show as" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1167 msgid "Show as &Decimal" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1157 msgid "Show as &Hexadecimal" msgstr "" #: lib/Padre/Plugin/PopularityContest.pm:212 msgid "Show current report" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1410 msgid "Show diff window!" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2618 msgid "Show information about Padre" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:152 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "" #: lib/Padre/Config.pm:1337 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "" #: lib/Padre/Config.pm:974 msgid "Show or hide the status bar at the bottom of the window." msgstr "" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:727 msgid "Show right margin at column" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:548 msgid "Show splash screen" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1168 msgid "" "Show the ASCII values of the selected text in decimal numbers in the output " "window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1158 msgid "" "Show the ASCII values of the selected text in hexadecimal notation in the " "output window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2518 msgid "Show the POD (Perldoc) version of the current document" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2484 msgid "Show the Padre help" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1391 msgid "Show the command line window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2505 msgid "Show the help article for the current context" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1371 msgid "" "Show the window displaying the standard output and standard error of the " "running scripts" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1732 msgid "Show what perl thinks about your code" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1522 msgid "" "Show/hide a vertical line on the left hand side of the window to allow " "folding rows" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1511 msgid "" "Show/hide the line numbers of all the documents on the left side of the " "window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1599 msgid "Show/hide the newlines with special character" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1473 msgid "Show/hide the status bar at the bottom of the screen" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1609 msgid "Show/hide the tabs and the spaces with special characters" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1483 msgid "Show/hide the toolbar at the top of the editor" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1619 msgid "" "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "" #: lib/Padre/Config.pm:664 msgid "Showing the splash image during start-up" msgstr "" #: lib/Padre/Wx/FBP/About.pm:508 msgid "Simone Blandino" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1121 msgid "Simplistic Patch only works on saved files" msgstr "" #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2390 msgid "Simulate a right mouse button click to open the context menu" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:476 msgid "Single-line (&s)" msgstr "" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:270 msgid "Skip using MANIFEST.SKIP" msgstr "" #: lib/Padre/Wx/Dialog/OpenResource.pm:266 msgid "Skip version control system files" msgstr "" #: lib/Padre/Document.pm:1444 lib/Padre/Document.pm:1445 msgid "Skipped for large files" msgstr "" #: lib/Padre/Wx/FBP/Snippet.pm:61 msgid "Snippet:" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:497 msgid "" "Sorry Diff Failed, are you sure your choice of files was correct for this " "action" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:602 msgid "" "Sorry, Diff failed. Are you sure your have access to the repository for this " "action" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:439 msgid "" "Sorry, patch failed, are you sure your choice of files was correct for this " "action" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:73 msgid "Sort Order:" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:228 msgid "Source Lines of Code" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:35 msgid "Space" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "Space and tab" msgstr "" #: lib/Padre/Wx/Main.pm:6310 msgid "Space to Tab" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1066 msgid "Spaces to &Tabs..." msgstr "" #: lib/Padre/Locale.pm:249 lib/Padre/Wx/FBP/About.pm:601 msgid "Spanish" msgstr "" #: lib/Padre/Locale.pm:235 msgid "Spanish (Argentina)" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "Special &Value..." msgstr "" #: lib/Padre/Config.pm:1580 msgid "" "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "" #: lib/Padre/Config.pm:1600 msgid "" "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:508 msgid "Startup" msgstr "" #: lib/Padre/Wx/VCS.pm:53 lib/Padre/Wx/FBP/DebugOutput.pm:37 #: lib/Padre/Wx/Dialog/Advanced.pm:111 lib/Padre/Wx/CPAN/Listview.pm:35 #: lib/Padre/Wx/CPAN/Listview.pm:59 msgid "Status" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:52 msgid "Status:" msgstr "" #: lib/Padre/Wx/FBP/About.pm:152 msgid "Steffen Muller" msgstr "" #: lib/Padre/Wx/FBP/FoundInFiles.pm:111 msgid "Stop Search" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2038 msgid "Stop a running task." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "" #: lib/Padre/Wx/Dialog/Sync.pm:196 lib/Padre/Wx/Dialog/Sync.pm:220 msgid "Success" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1497 msgid "Switch document type" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "" #: lib/Padre/Wx/Syntax.pm:159 lib/Padre/Wx/FBP/Preferences.pm:440 msgid "Syntax Check" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:356 msgid "" "T\n" "Produce a stack backtrace." msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:34 #: lib/Padre/Wx/Dialog/RegexEditor.pm:140 msgid "Tab" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:983 msgid "Tab Spaces:" msgstr "" #: lib/Padre/Wx/Main.pm:6311 msgid "Tab to Space" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:233 msgid "Tabs and S&paces" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1056 msgid "Tabs to &Spaces..." msgstr "" #: lib/Padre/Wx/TaskList.pm:184 lib/Padre/Wx/FBP/Preferences.pm:88 #: lib/Padre/Wx/FBP/Preferences.pm:391 lib/Padre/Wx/Panel/TaskList.pm:96 msgid "Task List" msgstr "" #: lib/Padre/MIME.pm:880 msgid "Text" msgstr "" #: lib/Padre/Wx/Main.pm:4432 lib/Padre/Wx/Choice/Files.pm:20 msgid "Text Files" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:108 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "" #: lib/Padre/Document.pm:254 #, perl-format msgid "" "The file %s you are trying to open is %s bytes large. It is over the " "arbitrary file size limit of Padre which is currently %s. Opening this file " "may reduce performance. Do you still want to open the file?" msgstr "" #: lib/Padre/Config.pm:1937 msgid "The same as Perl itself" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:478 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "This function reloads the My plug-in without restarting Padre" msgstr "" #: lib/Padre/Config.pm:1571 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "" #: lib/Padre/Config.pm:1591 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "" #: lib/Padre/Wx/Main.pm:5401 msgid "This type of file (URL) is missing delete support." msgstr "" #: lib/Padre/Wx/Dialog/About.pm:154 msgid "Threads" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1296 lib/Padre/Wx/FBP/Preferences.pm:1339 msgid "Timeout (seconds)" msgstr "" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "" #: lib/Padre/Config.pm:1650 msgid "Toggle Diff window feature that compares two buffers graphically" msgstr "" #: lib/Padre/Config.pm:1669 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:316 msgid "" "Toggle running breakpoints (update DB)\n" "b\n" "Sets breakpoint on current line\n" "B line\n" "Delete a breakpoint from the specified line." msgstr "" #: lib/Padre/Wx/FBP/About.pm:230 msgid "Tom Eliaz" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:329 msgid "Tool Positions" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:231 msgid "Trace" msgstr "" #: lib/Padre/Wx/FBP/About.pm:850 msgid "Translation" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:129 lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "" #: lib/Padre/Locale.pm:421 lib/Padre/Wx/FBP/About.pm:637 msgid "Turkish" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1401 msgid "Turn on CPAN explorer" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1411 msgid "Turn on Diff window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2076 msgid "Turn on debug breakpoints panel" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1452 msgid "" "Turn on syntax checking of the current document and show output in a window" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1463 msgid "" "Turn on version control view of the current project and show version control " "changes in a window" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "" #: lib/Padre/Wx/Dialog/HelpSearch.pm:148 msgid "Type a help &keyword to read:" msgstr "" #: lib/Padre/MIME.pm:40 msgid "UNKNOWN" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1541 msgid "Un&fold All" msgstr "" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:601 msgid "Undo last change in current file" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1542 lib/Padre/Wx/ActionLibrary.pm:1552 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Unicode character 'name'" msgstr "" #: lib/Padre/Locale.pm:143 lib/Padre/Wx/Main.pm:4171 msgid "Unknown" msgstr "" #: lib/Padre/PluginManager.pm:771 lib/Padre/Document/Perl.pm:656 #: lib/Padre/Document/Perl.pm:905 lib/Padre/Document/Perl.pm:954 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "" #: lib/Padre/PluginHandle.pm:24 msgid "Unloaded" msgstr "" #: lib/Padre/Wx/VCS.pm:258 msgid "Unmodified" msgstr "" #: lib/Padre/Document.pm:1062 #, perl-format msgid "Unsaved %d" msgstr "" #: lib/Padre/Wx/Main.pm:5134 msgid "Unsaved File" msgstr "" #: lib/Padre/Util/FileBrowser.pm:63 lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "" #: lib/Padre/Wx/VCS.pm:251 lib/Padre/Wx/VCS.pm:265 lib/Padre/Wx/FBP/VCS.pm:189 msgid "Unversioned" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:36 msgid "Up" msgstr "" #: lib/Padre/Wx/VCS.pm:264 msgid "Updated but unmerged" msgstr "" #: lib/Padre/Wx/FBP/Sync.pm:202 msgid "Upload" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:263 msgid "Upper/Lo&wer Case" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Uppercase characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Uppercase next character" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Uppercase till \\E" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1331 msgid "Use FTP passive mode" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1148 msgid "Use Perl source as filter" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:629 msgid "Use X11 middle button paste style" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1334 msgid "Use a filter to select one or more files" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:1438 msgid "Use external window for execution" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:957 msgid "Use tabs instead of spaces" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2335 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2345 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "" #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1924 msgid "Variable Name" msgstr "" #: lib/Padre/Document/Perl.pm:865 msgid "Variable case change" msgstr "" #: lib/Padre/Wx/VCS.pm:124 lib/Padre/Wx/FBP/Preferences.pm:423 msgid "Version Control" msgstr "" #: lib/Padre/Wx/FBP/Preferences.pm:916 msgid "Version Control Tool" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1780 msgid "Vertically &Align Selected" msgstr "" #: lib/Padre/Wx/Syntax.pm:77 msgid "Very Fatal Error" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:366 msgid "View" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2597 msgid "View All &Open Bugs" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2598 msgid "View all known and currently unsolved bugs in Padre" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Visible characters" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Visible characters and spaces" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2188 msgid "Visit Debug &Wiki..." msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2578 msgid "Visit Perl Websites..." msgstr "" #: lib/Padre/Document.pm:778 #, perl-format msgid "" "Visual filename %s does not match the internal filename %s, do you want to " "abort saving?" msgstr "" #: lib/Padre/Document.pm:260 lib/Padre/Wx/Syntax.pm:47 #: lib/Padre/Wx/Main.pm:3127 lib/Padre/Wx/Main.pm:3850 #: lib/Padre/Wx/Main.pm:5417 lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2299 msgid "" "Warning! This will delete all the changes you made to 'My plug-in' and " "replace it with the default code that comes with your installation of Padre" msgstr "" #: lib/Padre/Wx/Dialog/Patch.pm:535 #, perl-format msgid "" "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache " "Subversion\"" msgstr "" #: lib/Padre/Wx/FBP/Expression.pm:96 msgid "Watch" msgstr "" #: lib/Padre/PluginManager.pm:383 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:2089 lib/Padre/Wx/ActionLibrary.pm:2099 msgid "We should not need this menu item" msgstr "" #: lib/Padre/Wx/Main.pm:4434 msgid "Web Files" msgstr "" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1563 msgid "When typing in functions allow showing short examples of the function" msgstr "" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Whitespace characters" msgstr "" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:372 msgid "Window" msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:34 msgid "Window list" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:558 msgid "Word count and other statistics of the current document" msgstr "" #: lib/Padre/Wx/FBP/Document.pm:156 msgid "Words" msgstr "" #: lib/Padre/Wx/ActionLibrary.pm:1629 msgid "Wrap long lines" msgstr "" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "" #: lib/Padre/Wx/Output.pm:165 lib/Padre/Wx/Main.pm:2983 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get " "at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "" #: lib/Padre/File/HTTP.pm:162 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "" #: lib/Padre/Wx/FBP/ModuleStarter.pm:50 msgid "" "You can now add multiple module names, ie: Foo::Bar, Foo::Bar::Two (csv)" msgstr "" #: lib/Padre/Wx/Editor.pm:1888 msgid "You must select a range of lines" msgstr "" #: lib/Padre/Wx/Main.pm:3849 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "" #: lib/Padre/MIME.pm:1215 msgid "ZIP Archive" msgstr "" #: lib/Padre/Wx/FBP/About.pm:158 lib/Padre/Wx/FBP/About.pm:451 msgid "Zeno Gantner" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:123 msgid "" "c [line|sub]\n" "Continue, optionally inserting a one-time-only breakpoint at the specified " "line or subroutine." msgstr "" #: lib/Padre/Wx/FBP/About.pm:314 msgid "code4pay" msgstr "" #: lib/Padre/CPAN.pm:180 msgid "cpanm is unexpectedly not installed" msgstr "" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "" #: lib/Padre/Wx/Dialog/WindowList.pm:349 lib/Padre/Wx/Dialog/WindowList.pm:353 msgid "fresh" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStarter.pm:113 msgid "missing field" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStarter.pm:167 #, perl-format msgid "module-starter error: %s" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:83 msgid "" "n [expr]\n" "Next. Executes over subroutine calls, until the beginning of the next " "statement. If an expression is supplied that includes function calls, those " "functions will be executed with stops before each statement." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:396 msgid "" "o\n" "Display all options.\n" "\n" "o booloption ...\n" "Set each listed Boolean option to the value 1.\n" "\n" "o anyoption? ...\n" "Print out the value of one or more options.\n" "\n" "o option=value ...\n" "Set the value of one or more options. If the value has internal whitespace, " "it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" " "to call less with those specific options. You may use either single or " "double quotes, but if you do, you must escape any embedded instances of same " "sort of quote you began with, as well as any escaping any escapes that " "immediately precede that quote but which are not meant to escape the quote " "itself. In other words, you follow single-quoting rules irrespective of the " "quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?" "\"\" .\n" "\n" "For historical reasons, the =value is optional, but defaults to 1 only where " "it is safe to do so--that is, mostly for Boolean options. It is always " "better to assign a specific value using = . The option can be abbreviated, " "but for clarity probably should not be. Several options can be set together. " "See Configurable Options for a list of these." msgstr "" #: lib/Padre/Wx/FBP/PluginManager.pm:89 msgid "plugin name" msgstr "" #: lib/Padre/Wx/FBP/PluginManager.pm:104 msgid "plugin status" msgstr "" #: lib/Padre/Wx/FBP/PluginManager.pm:98 msgid "plugin version" msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:113 msgid "project" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:103 msgid "" "r\n" "Continue until the return from the current subroutine. Dump the return value " "if the PrintRet option is set (default)." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:63 msgid "" "s [expr]\n" "Single step. Executes until the beginning of another statement, descending " "into subroutine calls. If an expression is supplied that includes function " "calls, it too will be single-stepped." msgstr "" #: lib/Padre/Wx/FBP/Breakpoints.pm:118 msgid "show breakpoints in project" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:236 msgid "" "t\n" "Toggle trace mode (see also the AutoTrace option)." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:276 msgid "v [line] View window around line." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:464 msgid "" "w expr\n" "Add a global watch-expression. Whenever a watched global changes the " "debugger will stop and display the old and new values.\n" "\n" "W expr\n" "Delete watch-expression\n" "W *\n" "Delete all watch-expressions." msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:217 msgid "" "working now with some gigery pokery to get around\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "" #: lib/Padre/Wx/FBP/Debugger.pm:198 msgid "" "y [level [vars]]\n" "Display all (or some) lexical variables (mnemonic: mY variables) in the " "current scope or level scopes higher. You can limit the variables that you " "see with vars which works exactly as it does for the V and X commands. " "Requires the PadWalker module version 0.08 or higher; will warn if this " "isn't installed. Output is pretty-printed in the same style as for V and the " "format is controlled by the same options." msgstr "" Padre-1.00/share/locale/fa.po0000644000175000017500000011113211204761257014434 0ustar petepete# Persian translations for PACKAGE package. # Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # root , 2009. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-15 15:02+0800\n" "PO-Revision-Date: 2009-05-15 15:53+0730\n" "Last-Translator: Mohsen Basirat \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Padre/TaskManager.pm:541 #, perl-format msgid "%s worker threads are running.\n" msgstr "" #: lib/Padre/TaskManager.pm:544 msgid "Currently, no background tasks are being executed.\n" msgstr "" #: lib/Padre/TaskManager.pm:550 msgid "The following tasks are currently executing in the background:\n" msgstr "" #: lib/Padre/TaskManager.pm:556 #, perl-format msgid "" "- %s of type '%s':\n" " (in thread(s) %s)\n" msgstr "" #: lib/Padre/TaskManager.pm:568 #, perl-format msgid "" "\n" "Additionally, there are %s tasks pending execution.\n" msgstr "" #: lib/Padre/Locale.pm:72 msgid "English (United Kingdom)" msgstr "انگلیسی ( بریتانیایی )" #: lib/Padre/Locale.pm:111 msgid "English (Australian)" msgstr "انگلیسی (استرالیایی)" #: lib/Padre/Locale.pm:129 msgid "Unknown" msgstr "ناشناخته" #: lib/Padre/Locale.pm:143 msgid "Arabic" msgstr "عربی" #: lib/Padre/Locale.pm:153 msgid "Czech" msgstr "چک" #: lib/Padre/Locale.pm:163 msgid "German" msgstr "آلمانی" #: lib/Padre/Locale.pm:173 msgid "English" msgstr "انگلیسی" #: lib/Padre/Locale.pm:182 msgid "English (Canada)" msgstr "انگلیسی (کانادا)" #: lib/Padre/Locale.pm:191 msgid "English (New Zealand)" msgstr "" #: lib/Padre/Locale.pm:202 msgid "English (United States)" msgstr "" #: lib/Padre/Locale.pm:211 msgid "Spanish (Argentina)" msgstr "" #: lib/Padre/Locale.pm:224 msgid "Spanish" msgstr "" #: lib/Padre/Locale.pm:234 msgid "French (France)" msgstr "" #: lib/Padre/Locale.pm:247 msgid "French" msgstr "" #: lib/Padre/Locale.pm:257 msgid "Hebrew" msgstr "عبری" #: lib/Padre/Locale.pm:267 msgid "Hungarian" msgstr "" #: lib/Padre/Locale.pm:281 msgid "Italian" msgstr "ایتالیایی" #: lib/Padre/Locale.pm:291 msgid "Japanese" msgstr "" #: lib/Padre/Locale.pm:301 msgid "Korean" msgstr "کره ایی" #: lib/Padre/Locale.pm:315 msgid "Dutch" msgstr "" #: lib/Padre/Locale.pm:325 msgid "Dutch (Belgium)" msgstr "" #: lib/Padre/Locale.pm:334 msgid "Norwegian (Norway)" msgstr "" #: lib/Padre/Locale.pm:343 msgid "Polish" msgstr "" #: lib/Padre/Locale.pm:353 msgid "Portuguese (Brazil)" msgstr "" #: lib/Padre/Locale.pm:363 msgid "Portuguese (Portugal)" msgstr "" #: lib/Padre/Locale.pm:372 msgid "Russian" msgstr "" #: lib/Padre/Locale.pm:382 msgid "Chinese" msgstr "" #: lib/Padre/Locale.pm:392 msgid "Chinese (Simplified)" msgstr "" #: lib/Padre/Locale.pm:402 msgid "Chinese (Traditional)" msgstr "" #: lib/Padre/Locale.pm:415 msgid "Klingon" msgstr "" #: lib/Padre/PluginManager.pm:345 msgid "" "We found several new plugins.\n" "In order to configure and enable them go to\n" "Plugins -> Plugin Manager\n" "\n" "List of new plugins:\n" "\n" msgstr "" #: lib/Padre/PluginManager.pm:355 msgid "New plugins detected" msgstr "" #: lib/Padre/PluginManager.pm:477 #, perl-format msgid "Plugin:%s - Failed to load module: %s" msgstr "" #: lib/Padre/PluginManager.pm:491 #, perl-format msgid "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of Padre::Plugin" msgstr "" #: lib/Padre/PluginManager.pm:505 #, perl-format msgid "Plugin:%s - Could not instantiate plugin object" msgstr "" #: lib/Padre/PluginManager.pm:517 #, perl-format msgid "Plugin:%s - Could not instantiate plugin object: the constructor does not return a Padre::Plugin object" msgstr "" #: lib/Padre/PluginManager.pm:537 #, perl-format msgid "Plugin:%s - Does not have menus" msgstr "" #: lib/Padre/PluginManager.pm:756 msgid "Error when calling menu for plugin" msgstr "" #: lib/Padre/PluginManager.pm:785 #: lib/Padre/Wx/Main.pm:1396 msgid "No document open" msgstr "" #: lib/Padre/PluginManager.pm:787 #: lib/Padre/Wx/Main.pm:3465 msgid "No filename" msgstr "پرونده بدون نام" #: lib/Padre/PluginManager.pm:791 msgid "Could not locate project dir" msgstr "" #: lib/Padre/PluginManager.pm:810 #: lib/Padre/PluginManager.pm:907 #, perl-format msgid "" "Failed to load the plugin '%s'\n" "%s" msgstr "" #: lib/Padre/PluginManager.pm:861 #: lib/Padre/Wx/Main.pm:2377 #: lib/Padre/Wx/Main.pm:3159 msgid "Open file" msgstr "بازکردن پرونده" #: lib/Padre/PluginManager.pm:881 #, perl-format msgid "Plugin must have '%s' as base directory" msgstr "" #: lib/Padre/Document.pm:675 #, perl-format msgid "Unsaved %d" msgstr "ذخیره نشده %d" #: lib/Padre/Document.pm:944 #: lib/Padre/Document.pm:945 msgid "Skipped for large files" msgstr "صرفنظر از فایل های بزرگ " #: lib/Padre/PluginHandle.pm:71 #: lib/Padre/Wx/Dialog/PluginManager.pm:472 msgid "error" msgstr "خطا" #: lib/Padre/PluginHandle.pm:72 msgid "unloaded" msgstr "بارگذاری نشده" #: lib/Padre/PluginHandle.pm:73 msgid "loaded" msgstr "بارگذاری شده" #: lib/Padre/PluginHandle.pm:74 #: lib/Padre/Wx/Dialog/PluginManager.pm:482 msgid "incompatible" msgstr "ناسازگار" #: lib/Padre/PluginHandle.pm:75 #: lib/Padre/Wx/Dialog/PluginManager.pm:506 msgid "disabled" msgstr "غیرفعال" #: lib/Padre/PluginHandle.pm:76 #: lib/Padre/Wx/Dialog/PluginManager.pm:496 msgid "enabled" msgstr "فعال" #: lib/Padre/PluginHandle.pm:171 #, perl-format msgid "Failed to enable plugin '%s': %s" msgstr "" #: lib/Padre/PluginHandle.pm:225 #, perl-format msgid "Failed to disable plugin '%s': %s" msgstr "" #: lib/Padre/Wx/Menubar.pm:72 msgid "&File" msgstr "&پرونده" #: lib/Padre/Wx/Menubar.pm:73 #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Edit" msgstr "&ویرایش" #: lib/Padre/Wx/Menubar.pm:74 msgid "&Search" msgstr "&جستجو" #: lib/Padre/Wx/Menubar.pm:75 msgid "&View" msgstr "&مشاهده" #: lib/Padre/Wx/Menubar.pm:76 msgid "&Run" msgstr "&اجرا" #: lib/Padre/Wx/Menubar.pm:77 msgid "Pl&ugins" msgstr "" #: lib/Padre/Wx/Menubar.pm:78 msgid "&Window" msgstr "پنجره" #: lib/Padre/Wx/Menubar.pm:79 msgid "&Help" msgstr "کمک" #: lib/Padre/Wx/Menubar.pm:96 msgid "E&xperimental" msgstr "آزمایشی" #: lib/Padre/Wx/Menubar.pm:119 #: lib/Padre/Wx/Menubar.pm:159 msgid "&Perl" msgstr "پرل" #: lib/Padre/Wx/Directory.pm:52 #: lib/Padre/Wx/Directory.pm:143 msgid "Directory" msgstr "پوشه" #: lib/Padre/Wx/Directory.pm:170 #: lib/Padre/Wx/ToolBar.pm:49 msgid "Open File" msgstr "بازکردن پرونده" #: lib/Padre/Wx/Directory.pm:182 #: lib/Padre/Task/Outline/Perl.pm:192 msgid "Open &Documentation" msgstr "بازکردن مستندات" #: lib/Padre/Wx/Right.pm:42 msgid "Workspace View" msgstr "مشاهده فضای کاری" #: lib/Padre/Wx/Syntax.pm:66 msgid "Syntax Check" msgstr "چک دستورعمل" #: lib/Padre/Wx/Syntax.pm:92 #: lib/Padre/Wx/Syntax.pm:254 msgid "Line" msgstr "خط" #: lib/Padre/Wx/Syntax.pm:96 #: lib/Padre/Wx/Syntax.pm:97 #: lib/Padre/Task/SyntaxChecker.pm:179 msgid "Warning" msgstr "اخطار" #: lib/Padre/Wx/Syntax.pm:96 #: lib/Padre/Wx/Syntax.pm:99 #: lib/Padre/Wx/Main.pm:1481 #: lib/Padre/Wx/Main.pm:1733 #: lib/Padre/Wx/Main.pm:2570 #: lib/Padre/Wx/Dialog/PluginManager.pm:362 #: lib/Padre/Task/SyntaxChecker.pm:179 msgid "Error" msgstr "خطا" #: lib/Padre/Wx/Syntax.pm:255 msgid "Type" msgstr "نوع" #: lib/Padre/Wx/Syntax.pm:256 #: lib/Padre/Wx/Dialog/SessionManager.pm:211 msgid "Description" msgstr "توضیحات" #: lib/Padre/Wx/Bottom.pm:42 msgid "Output View" msgstr "مشاهده خروجی" #: lib/Padre/Wx/Outline.pm:58 #: lib/Padre/Task/Outline/Perl.pm:146 msgid "Outline" msgstr "" #: lib/Padre/Wx/Output.pm:54 msgid "Output" msgstr "خروجی" #: lib/Padre/Wx/Notebook.pm:31 msgid "Files" msgstr "پرونده ها" #: lib/Padre/Wx/ToolBar.pm:41 msgid "New File" msgstr "پرونده جدید" #: lib/Padre/Wx/ToolBar.pm:54 msgid "Save File" msgstr "ذخیره پرونده" #: lib/Padre/Wx/ToolBar.pm:59 msgid "Close File" msgstr "بستن پرونده" #: lib/Padre/Wx/ToolBar.pm:71 msgid "Undo" msgstr "برگرداندن" #: lib/Padre/Wx/ToolBar.pm:77 msgid "Redo" msgstr "" #: lib/Padre/Wx/ToolBar.pm:86 msgid "Cut" msgstr "بریدن" #: lib/Padre/Wx/ToolBar.pm:99 msgid "Copy" msgstr "کپی" #: lib/Padre/Wx/ToolBar.pm:112 msgid "Paste" msgstr "چسباندن" #: lib/Padre/Wx/ToolBar.pm:126 msgid "Select all" msgstr "انتخاب همه" #: lib/Padre/Wx/ToolBar.pm:151 #: lib/Padre/Wx/ToolBar.pm:201 msgid "Background Tasks are idle" msgstr "" #: lib/Padre/Wx/ToolBar.pm:211 msgid "Background Tasks are running" msgstr "" #: lib/Padre/Wx/ToolBar.pm:221 msgid "Background Tasks are running with high load" msgstr "" #: lib/Padre/Wx/Main.pm:391 #, perl-format msgid "No such session %s" msgstr "" #: lib/Padre/Wx/Main.pm:569 msgid "Failed to create server" msgstr "" #: lib/Padre/Wx/Main.pm:1369 msgid "Command line" msgstr "خط فرمان" #: lib/Padre/Wx/Main.pm:1370 msgid "Run setup" msgstr "اجرای نصاب" #: lib/Padre/Wx/Main.pm:1400 msgid "Current document has no filename" msgstr "" #: lib/Padre/Wx/Main.pm:1403 msgid "Could not find project root" msgstr "" #: lib/Padre/Wx/Main.pm:1480 #, perl-format msgid "Failed to start '%s' command" msgstr "" #: lib/Padre/Wx/Main.pm:1505 msgid "No open document" msgstr "پرونده باز موجود نیست" #: lib/Padre/Wx/Main.pm:1522 msgid "No execution mode was defined for this document" msgstr "" #: lib/Padre/Wx/Main.pm:1553 msgid "Not a Perl document" msgstr "پرونده پرل نیست" #: lib/Padre/Wx/Main.pm:1719 msgid "Message" msgstr "پیغام" #: lib/Padre/Wx/Main.pm:1915 msgid "Autocompletions error" msgstr "" #: lib/Padre/Wx/Main.pm:1935 msgid "Line number:" msgstr "شماره خط:" #: lib/Padre/Wx/Main.pm:1936 msgid "Go to line number" msgstr "برو به شماره خط:" #: lib/Padre/Wx/Main.pm:2170 #, perl-format msgid "Cannot open %s as it is over the arbitrary file size limit of Padre which is currently %s" msgstr "" #: lib/Padre/Wx/Main.pm:2268 msgid "Nothing selected. Enter what should be opened:" msgstr "" #: lib/Padre/Wx/Main.pm:2269 msgid "Open selection" msgstr "بازکردن انتخاب شده" #: lib/Padre/Wx/Main.pm:2333 #, perl-format msgid "Could not find file '%s'" msgstr "" #: lib/Padre/Wx/Main.pm:2334 msgid "Open Selection" msgstr "" #: lib/Padre/Wx/Main.pm:2418 #: lib/Padre/Wx/Main.pm:3622 #, perl-format msgid "Could not reload file: %s" msgstr "" #: lib/Padre/Wx/Main.pm:2444 msgid "Save file as..." msgstr "دخیره پرونده به ..." #: lib/Padre/Wx/Main.pm:2458 msgid "File already exists. Overwrite it?" msgstr "پرونده موجود است رونویسی شود؟" #: lib/Padre/Wx/Main.pm:2459 msgid "Exist" msgstr "موجود" #: lib/Padre/Wx/Main.pm:2559 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "" #: lib/Padre/Wx/Main.pm:2560 #: lib/Padre/Wx/Main.pm:3615 msgid "File not in sync" msgstr "" #: lib/Padre/Wx/Main.pm:2569 msgid "Could not save file: " msgstr "" #: lib/Padre/Wx/Main.pm:2631 msgid "File changed. Do you want to save it?" msgstr "" #: lib/Padre/Wx/Main.pm:2632 msgid "Unsaved File" msgstr "" #: lib/Padre/Wx/Main.pm:2794 msgid "Cannot diff if file was never saved" msgstr "" #: lib/Padre/Wx/Main.pm:2800 msgid "There are no differences\n" msgstr "" #: lib/Padre/Wx/Main.pm:3267 #: lib/Padre/Plugin/Devel.pm:162 #, perl-format msgid "Error: %s" msgstr "" #: lib/Padre/Wx/Main.pm:3268 msgid "Internal error" msgstr "خطای داخلی" #: lib/Padre/Wx/Main.pm:3456 #, perl-format msgid "Words: %s" msgstr "کلمات: %s" #: lib/Padre/Wx/Main.pm:3457 #, perl-format msgid "Lines: %d" msgstr "خطوط:%d" #: lib/Padre/Wx/Main.pm:3458 #, perl-format msgid "Chars without spaces: %s" msgstr "" #: lib/Padre/Wx/Main.pm:3459 #, perl-format msgid "Chars with spaces: %d" msgstr "" #: lib/Padre/Wx/Main.pm:3460 #, perl-format msgid "Newline type: %s" msgstr "" #: lib/Padre/Wx/Main.pm:3461 #, perl-format msgid "Encoding: %s" msgstr "" #: lib/Padre/Wx/Main.pm:3462 #, perl-format msgid "Document type: %s" msgstr "" #: lib/Padre/Wx/Main.pm:3462 msgid "none" msgstr "هیجکدام" #: lib/Padre/Wx/Main.pm:3464 #, perl-format msgid "Filename: %s" msgstr "" #: lib/Padre/Wx/Main.pm:3494 msgid "Space to Tab" msgstr "" #: lib/Padre/Wx/Main.pm:3495 msgid "Tab to Space" msgstr "" #: lib/Padre/Wx/Main.pm:3498 msgid "How many spaces for each tab:" msgstr "" #: lib/Padre/Wx/Main.pm:3614 msgid "File changed on disk since last saved. Do you want to reload it?" msgstr "" #: lib/Padre/Wx/ErrorList.pm:91 msgid "Error List" msgstr "لیست خطا" #: lib/Padre/Wx/ErrorList.pm:126 msgid "No diagnostics available for this error!" msgstr "" #: lib/Padre/Wx/ErrorList.pm:135 msgid "Diagnostics" msgstr "" #: lib/Padre/Wx/StatusBar.pm:78 msgid "L:" msgstr "" #: lib/Padre/Wx/StatusBar.pm:78 msgid "Ch:" msgstr "" #: lib/Padre/Wx/Editor.pm:709 #: lib/Padre/Wx/Menu/Edit.pm:66 msgid "Select all\tCtrl-A" msgstr "" #: lib/Padre/Wx/Editor.pm:720 #: lib/Padre/Wx/Menu/Edit.pm:110 msgid "&Copy\tCtrl-C" msgstr "" #: lib/Padre/Wx/Editor.pm:732 #: lib/Padre/Wx/Menu/Edit.pm:122 msgid "Cu&t\tCtrl-X" msgstr "" #: lib/Padre/Wx/Editor.pm:744 #: lib/Padre/Wx/Menu/Edit.pm:134 msgid "&Paste\tCtrl-V" msgstr "" #: lib/Padre/Wx/Editor.pm:761 #: lib/Padre/Wx/Menu/Edit.pm:205 msgid "&Toggle Comment\tCtrl-Shift-C" msgstr "" #: lib/Padre/Wx/Editor.pm:766 #: lib/Padre/Wx/Menu/Edit.pm:215 msgid "&Comment Selected Lines\tCtrl-M" msgstr "" #: lib/Padre/Wx/Editor.pm:771 #: lib/Padre/Wx/Menu/Edit.pm:225 msgid "&Uncomment Selected Lines\tCtrl-Shift-M" msgstr "" #: lib/Padre/Wx/Editor.pm:789 msgid "Fold all" msgstr "" #: lib/Padre/Wx/Editor.pm:796 msgid "Unfold all" msgstr "" #: lib/Padre/Wx/Editor.pm:809 #: lib/Padre/Wx/Menu/Window.pm:34 msgid "&Split window" msgstr "" #: lib/Padre/Wx/Editor.pm:1149 msgid "You must select a range of lines" msgstr "" #: lib/Padre/Wx/Editor.pm:1165 msgid "First character of selection must be a non-word character to align" msgstr "" #: lib/Padre/Wx/FunctionList.pm:71 msgid "Sub List" msgstr "" #: lib/Padre/Wx/Ack.pm:82 msgid "Term:" msgstr "" #: lib/Padre/Wx/Ack.pm:86 msgid "Dir:" msgstr "" #: lib/Padre/Wx/Ack.pm:88 msgid "Pick &directory" msgstr "" #: lib/Padre/Wx/Ack.pm:90 msgid "In Files/Types:" msgstr "" #: lib/Padre/Wx/Ack.pm:96 #: lib/Padre/Wx/Dialog/Find.pm:137 msgid "Case &Insensitive" msgstr "" #: lib/Padre/Wx/Ack.pm:102 msgid "I&gnore hidden Subdirectories" msgstr "" #: lib/Padre/Wx/Ack.pm:118 msgid "Find in Files" msgstr "" #: lib/Padre/Wx/Ack.pm:147 msgid "Select directory" msgstr "" #: lib/Padre/Wx/Ack.pm:281 #: lib/Padre/Wx/Ack.pm:305 msgid "Ack" msgstr "" #: lib/Padre/Wx/CPAN/Listview.pm:43 #: lib/Padre/Wx/CPAN/Listview.pm:78 #: lib/Padre/Wx/Dialog/PluginManager.pm:235 msgid "Status" msgstr "وضعیت" #: lib/Padre/Wx/Menu/View.pm:37 msgid "Lock User Interface" msgstr "" #: lib/Padre/Wx/Menu/View.pm:52 msgid "Show Output" msgstr "خروجی را نشان بده" #: lib/Padre/Wx/Menu/View.pm:64 msgid "Show Functions" msgstr "نمایش توابع" #: lib/Padre/Wx/Menu/View.pm:82 msgid "Show Outline" msgstr "" #: lib/Padre/Wx/Menu/View.pm:94 msgid "Show Directory Tree" msgstr "" #: lib/Padre/Wx/Menu/View.pm:106 msgid "Show Syntax Check" msgstr "" #: lib/Padre/Wx/Menu/View.pm:118 msgid "Show Error List" msgstr "" #: lib/Padre/Wx/Menu/View.pm:132 msgid "Show StatusBar" msgstr "" #: lib/Padre/Wx/Menu/View.pm:149 msgid "View Document As..." msgstr "" #: lib/Padre/Wx/Menu/View.pm:183 msgid "Show Line Numbers" msgstr "" #: lib/Padre/Wx/Menu/View.pm:195 msgid "Show Code Folding" msgstr "" #: lib/Padre/Wx/Menu/View.pm:207 msgid "Show Call Tips" msgstr "" #: lib/Padre/Wx/Menu/View.pm:222 msgid "Show Current Line" msgstr "نمایش خط جاری" #: lib/Padre/Wx/Menu/View.pm:237 msgid "Show Newlines" msgstr "نمایش ته خط" #: lib/Padre/Wx/Menu/View.pm:249 msgid "Show Whitespaces" msgstr "نمایش خالی" #: lib/Padre/Wx/Menu/View.pm:261 msgid "Show Indentation Guide" msgstr "" #: lib/Padre/Wx/Menu/View.pm:273 msgid "Word-Wrap" msgstr "" #: lib/Padre/Wx/Menu/View.pm:288 msgid "Increase Font Size\tCtrl-+" msgstr "" #: lib/Padre/Wx/Menu/View.pm:300 msgid "Decrease Font Size\tCtrl--" msgstr "" #: lib/Padre/Wx/Menu/View.pm:312 msgid "Reset Font Size\tCtrl-/" msgstr "" #: lib/Padre/Wx/Menu/View.pm:327 msgid "Set Bookmark\tCtrl-B" msgstr "" #: lib/Padre/Wx/Menu/View.pm:339 msgid "Goto Bookmark\tCtrl-Shift-B" msgstr "" #: lib/Padre/Wx/Menu/View.pm:355 msgid "Style" msgstr "" #: lib/Padre/Wx/Menu/View.pm:359 msgid "Padre" msgstr "پادره" #: lib/Padre/Wx/Menu/View.pm:360 msgid "Night" msgstr "شب" #: lib/Padre/Wx/Menu/View.pm:361 msgid "Ultraedit" msgstr "" #: lib/Padre/Wx/Menu/View.pm:362 msgid "Notepad++" msgstr "" #: lib/Padre/Wx/Menu/View.pm:410 msgid "Language" msgstr "زبان" #: lib/Padre/Wx/Menu/View.pm:417 msgid "System Default" msgstr "" #: lib/Padre/Wx/Menu/View.pm:464 msgid "&Full Screen\tF11" msgstr "&تمام صفحه\tF11" #: lib/Padre/Wx/Menu/Perl.pm:40 msgid "Find Unmatched Brace" msgstr "" #: lib/Padre/Wx/Menu/Perl.pm:51 #: lib/Padre/Document/Perl.pm:666 msgid "Find Variable Declaration" msgstr "" #: lib/Padre/Wx/Menu/Perl.pm:66 #: lib/Padre/Document/Perl.pm:678 msgid "Lexically Rename Variable" msgstr "" #: lib/Padre/Wx/Menu/Perl.pm:73 #: lib/Padre/Wx/Menu/Perl.pm:74 #: lib/Padre/Document/Perl.pm:689 #: lib/Padre/Document/Perl.pm:690 msgid "Replacement" msgstr "" #: lib/Padre/Wx/Menu/Perl.pm:89 msgid "Vertically Align Selected" msgstr "" #: lib/Padre/Wx/Menu/Perl.pm:102 msgid "Use PPI Syntax Highlighting" msgstr "" #: lib/Padre/Wx/Menu/Perl.pm:128 msgid "Automatic bracket completion" msgstr "" #: lib/Padre/Wx/Menu/Run.pm:31 msgid "Run Script\tF5" msgstr "اجرای نوشته ها" #: lib/Padre/Wx/Menu/Run.pm:43 msgid "Run Script (debug info)\tShift-F5" msgstr "" #: lib/Padre/Wx/Menu/Run.pm:55 msgid "Run Command\tCtrl-F5" msgstr "" #: lib/Padre/Wx/Menu/Run.pm:67 msgid "Run Tests" msgstr "" #: lib/Padre/Wx/Menu/Run.pm:80 msgid "Stop\tF6" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:31 msgid "&Find\tCtrl-F" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:43 msgid "Find Next\tF3" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:55 msgid "Find Previous\tShift-F3" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:68 msgid "Replace\tCtrl-R" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:81 msgid "Quick Find" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:102 msgid "Find Next\tF4" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:114 msgid "Find Previous\tShift-F4" msgstr "" #: lib/Padre/Wx/Menu/Search.pm:131 msgid "Find in fi&les..." msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:34 #: lib/Padre/Wx/Dialog/PluginManager.pm:43 msgid "Plugin Manager" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:49 msgid "All available plugins on CPAN" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:60 msgid "Edit My Plugin" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:66 msgid "Could not find the Padre::Plugin::My plugin" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:75 msgid "Reload My Plugin" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:82 #: lib/Padre/Wx/Menu/Plugins.pm:85 #: lib/Padre/Wx/Menu/Plugins.pm:86 msgid "Reset My Plugin" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:101 msgid "Reload All Plugins" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:108 msgid "(Re)load Current Plugin" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:115 msgid "Test A Plugin From Local Dir" msgstr "" #: lib/Padre/Wx/Menu/Plugins.pm:122 msgid "Plugin Tools" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:31 msgid "&Undo" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:43 msgid "&Redo" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:59 msgid "Select" msgstr "انتخاب" #: lib/Padre/Wx/Menu/Edit.pm:78 msgid "Mark selection start\tCtrl-[" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Mark selection end\tCtrl-]" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:102 msgid "Clear selection marks" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:150 msgid "&Goto\tCtrl-G" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:160 msgid "&AutoComp\tCtrl-P" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:170 msgid "&Brace matching\tCtrl-1" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:180 msgid "&Join lines\tCtrl-J" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:190 msgid "Snippets\tCtrl-Shift-A" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:238 msgid "Tabs and Spaces" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:244 msgid "Tabs to Spaces..." msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:256 msgid "Spaces to Tabs..." msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:270 msgid "Delete Trailing Spaces" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:283 msgid "Delete Leading Spaces" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Upper/Lower Case" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:303 msgid "Upper All\tCtrl-Shift-U" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "Lower All\tCtrl-U" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:330 msgid "Diff" msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:340 msgid "Insert From File..." msgstr "" #: lib/Padre/Wx/Menu/Edit.pm:355 #: lib/Padre/Wx/Dialog/PluginManager.pm:294 #: lib/Padre/Wx/Dialog/Preferences.pm:427 msgid "Preferences" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:46 msgid "Next File\tCtrl-TAB" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:55 msgid "Previous File\tCtrl-Shift-TAB" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:64 msgid "Last Visited File\tCtrl-6" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:73 msgid "Right Click\tAlt-/" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:90 msgid "GoTo Subs Window" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:103 msgid "GoTo Outline Window\tAlt-L" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:115 msgid "GoTo Output Window\tAlt-O" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:125 msgid "GoTo Syntax Check Window\tAlt-C" msgstr "" #: lib/Padre/Wx/Menu/Window.pm:140 msgid "GoTo Main Window\tAlt-M" msgstr "" #: lib/Padre/Wx/Menu/Experimental.pm:30 msgid "Disable Experimental Mode" msgstr "" #: lib/Padre/Wx/Menu/Experimental.pm:44 msgid "Refresh Menu" msgstr "" #: lib/Padre/Wx/Menu/Experimental.pm:55 #: lib/Padre/Wx/Menu/Experimental.pm:76 msgid "Refresh Counter: " msgstr "" #: lib/Padre/Wx/Menu/File.pm:31 msgid "&New\tCtrl-N" msgstr "" #: lib/Padre/Wx/Menu/File.pm:48 msgid "New..." msgstr "جدید ..." #: lib/Padre/Wx/Menu/File.pm:55 msgid "Perl 5 Script" msgstr "" #: lib/Padre/Wx/Menu/File.pm:65 msgid "Perl 5 Module" msgstr "" #: lib/Padre/Wx/Menu/File.pm:75 msgid "Perl 5 Test" msgstr "" #: lib/Padre/Wx/Menu/File.pm:85 msgid "Perl 6 Script" msgstr "" #: lib/Padre/Wx/Menu/File.pm:95 msgid "Perl Distribution (Module::Starter)" msgstr "" #: lib/Padre/Wx/Menu/File.pm:108 msgid "&Open...\tCtrl-O" msgstr "" #: lib/Padre/Wx/Menu/File.pm:117 msgid "Open Selection\tCtrl-Shift-O" msgstr "" #: lib/Padre/Wx/Menu/File.pm:121 msgid "Open Session...\tCtrl-Alt-O" msgstr "" #: lib/Padre/Wx/Menu/File.pm:138 msgid "&Close\tCtrl-W" msgstr "" #: lib/Padre/Wx/Menu/File.pm:150 msgid "Close All" msgstr "بستن همه" #: lib/Padre/Wx/Menu/File.pm:161 msgid "Close All but Current" msgstr "" #: lib/Padre/Wx/Menu/File.pm:172 msgid "Reload File" msgstr "بارگذاری دوباره پرونده" #: lib/Padre/Wx/Menu/File.pm:187 msgid "&Save\tCtrl-S" msgstr "" #: lib/Padre/Wx/Menu/File.pm:198 msgid "Save &As...\tF12" msgstr "" #: lib/Padre/Wx/Menu/File.pm:209 msgid "Save All" msgstr "ذخیره همه" #: lib/Padre/Wx/Menu/File.pm:220 msgid "Save Session...\tCtrl-Alt-S" msgstr "" #: lib/Padre/Wx/Menu/File.pm:232 msgid "&Print..." msgstr "&چاپ" #: lib/Padre/Wx/Menu/File.pm:256 msgid "Convert..." msgstr "تبدیل" #: lib/Padre/Wx/Menu/File.pm:262 msgid "EOL to Windows" msgstr "" #: lib/Padre/Wx/Menu/File.pm:274 msgid "EOL to Unix" msgstr "" #: lib/Padre/Wx/Menu/File.pm:286 msgid "EOL to Mac Classic" msgstr "" #: lib/Padre/Wx/Menu/File.pm:302 msgid "&Recent Files" msgstr "پرونده های اخیر" #: lib/Padre/Wx/Menu/File.pm:309 msgid "Open All Recent Files" msgstr "باز کردن تمام پرونده های اخیر" #: lib/Padre/Wx/Menu/File.pm:319 msgid "Clean Recent Files List" msgstr "" #: lib/Padre/Wx/Menu/File.pm:336 msgid "Document Statistics" msgstr "آمار مستند" #: lib/Padre/Wx/Menu/File.pm:353 msgid "&Quit\tCtrl-Q" msgstr "" #: lib/Padre/Wx/Menu/Help.pm:38 msgid "Context Help\tF1" msgstr "" #: lib/Padre/Wx/Menu/Help.pm:58 msgid "Current Document" msgstr "مستند جاری" #: lib/Padre/Wx/Menu/Help.pm:70 msgid "Visit the PerlMonks" msgstr "برو به سایت موبدان پرل" #: lib/Padre/Wx/Menu/Help.pm:80 msgid "Report a New &Bug" msgstr "" #: lib/Padre/Wx/Menu/Help.pm:87 msgid "View All &Open Bugs" msgstr "" #: lib/Padre/Wx/Menu/Help.pm:97 msgid "&About" msgstr "&درباره" #: lib/Padre/Wx/Menu/Help.pm:151 msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:32 msgid "Save session as..." msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:179 msgid "Session name:" msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:188 msgid "Description:" msgstr "" #: lib/Padre/Wx/Dialog/SessionSave.pm:208 msgid "Save" msgstr "دخیره" #: lib/Padre/Wx/Dialog/SessionSave.pm:209 #: lib/Padre/Wx/Dialog/PluginManager.pm:295 #: lib/Padre/Wx/Dialog/SessionManager.pm:241 msgid "Close" msgstr "بستن" #: lib/Padre/Wx/Dialog/Bookmarks.pm:30 msgid "Existing bookmarks:" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:42 msgid "Delete &All" msgstr "حدف &همه" #: lib/Padre/Wx/Dialog/Bookmarks.pm:55 msgid "Set Bookmark" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "GoTo Bookmark" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:122 msgid "Cannot set bookmark in unsaved document" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:133 #, perl-format msgid "%s line %s: %s" msgstr "" #: lib/Padre/Wx/Dialog/Bookmarks.pm:171 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "" #: lib/Padre/Wx/Dialog/Search.pm:132 #: lib/Padre/Wx/Dialog/Find.pm:76 msgid "Find:" msgstr "بیاب:" #: lib/Padre/Wx/Dialog/Search.pm:151 msgid "Previ&ous" msgstr "" #: lib/Padre/Wx/Dialog/Search.pm:169 msgid "&Next" msgstr "" #: lib/Padre/Wx/Dialog/Search.pm:177 msgid "Case &insensitive" msgstr "" #: lib/Padre/Wx/Dialog/Search.pm:181 msgid "Use rege&x" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 msgid "Module Name:" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:29 msgid "Author:" msgstr "نویسنده:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:32 msgid "Email:" msgstr "ایمیل:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:35 msgid "Builder:" msgstr "سازنده:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "License:" msgstr "مجوز:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "Parent Directory:" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "Pick parent directory" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:68 msgid "Module Start" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:110 #, perl-format msgid "Field %s was missing. Module not created." msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:111 msgid "missing field" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:139 #, perl-format msgid "%s apparantly created. Do you want to open it now?" msgstr "" #: lib/Padre/Wx/Dialog/ModuleStart.pm:140 msgid "Done" msgstr "انجام شد" #: lib/Padre/Wx/Dialog/PluginManager.pm:178 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "" #: lib/Padre/Wx/Dialog/PluginManager.pm:233 #: lib/Padre/Wx/Dialog/SessionManager.pm:210 msgid "Name" msgstr "نام" #: lib/Padre/Wx/Dialog/PluginManager.pm:234 msgid "Version" msgstr "نسخه" #: lib/Padre/Wx/Dialog/PluginManager.pm:469 #: lib/Padre/Wx/Dialog/PluginManager.pm:479 msgid "Show error message" msgstr "نمایش پیغام خطا" #: lib/Padre/Wx/Dialog/PluginManager.pm:493 msgid "Disable" msgstr "غیرفعال" #: lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "Enable" msgstr "فعال" #: lib/Padre/Wx/Dialog/SessionManager.pm:36 msgid "Session Manager" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:198 msgid "List of sessions" msgstr "" #: lib/Padre/Wx/Dialog/SessionManager.pm:212 msgid "Last update" msgstr "آخرین بروز رسانی" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Open" msgstr "یازکردن" #: lib/Padre/Wx/Dialog/SessionManager.pm:240 msgid "Delete" msgstr "حذف" #: lib/Padre/Wx/Dialog/Find.pm:58 msgid "Find" msgstr "بیاب" #: lib/Padre/Wx/Dialog/Find.pm:91 msgid "Replace with:" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:113 msgid "&Find" msgstr "&بیاب" #: lib/Padre/Wx/Dialog/Find.pm:121 msgid "&Replace" msgstr "&جاگذاری" #: lib/Padre/Wx/Dialog/Find.pm:146 msgid "&Use Regex" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:155 msgid "Search &Backwards" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:164 msgid "Close Window on &hit" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:178 msgid "Replace &all" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:189 #: lib/Padre/Wx/Dialog/Preferences.pm:500 msgid "&Cancel" msgstr "" #: lib/Padre/Wx/Dialog/Find.pm:347 #, perl-format msgid "%s occurences were replaced" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Automatic indentation style detection" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Use Tabs" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:44 msgid "TAB display size (in spaces):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:47 msgid "Indentation width (in columns):" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:50 msgid "Guess from current document:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:51 msgid "Guess" msgstr "حدس بزن" #: lib/Padre/Wx/Dialog/Preferences.pm:53 msgid "Autoindent:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:77 msgid "Default word wrap on for each file" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:82 msgid "Auto-fold POD markup when code folding enabled" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:87 msgid "Perl beginner mode" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:91 msgid "Open files:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:95 msgid "Open files in existing Padre" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:99 msgid "Methods order:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:102 msgid "Preferred language for error diagnostics:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:139 msgid "Colored text in output window (ANSI)" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:143 msgid "Editor Font:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:146 msgid "Editor Current Line Background Colour:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:196 msgid "Settings Demo" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:280 msgid "Enable?" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:295 msgid "Crashed" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:328 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:338 #: lib/Padre/Wx/Dialog/Preferences.pm:382 msgid "Interpreter arguments:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:344 #: lib/Padre/Wx/Dialog/Preferences.pm:388 msgid "Script arguments:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Unsaved" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:352 msgid "N/A" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:371 msgid "No Document" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Document name:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:379 msgid "Document location:" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:406 msgid "Default" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:412 #, perl-format msgid "Current Document: %s" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:452 msgid "Behaviour" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:455 msgid "Appearance" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:458 msgid "Run Parameters" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:462 msgid "Indentation" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:489 #: lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:535 msgid "new" msgstr "جدید" #: lib/Padre/Wx/Dialog/Preferences.pm:536 msgid "nothing" msgstr "هیج چیز" #: lib/Padre/Wx/Dialog/Preferences.pm:537 msgid "last" msgstr "آخر" #: lib/Padre/Wx/Dialog/Preferences.pm:538 msgid "no" msgstr "نه" #: lib/Padre/Wx/Dialog/Preferences.pm:539 msgid "same_level" msgstr "" #: lib/Padre/Wx/Dialog/Preferences.pm:540 msgid "deep" msgstr "عمیق" #: lib/Padre/Wx/Dialog/Preferences.pm:541 msgid "alphabetical" msgstr "حروفی" #: lib/Padre/Wx/Dialog/Preferences.pm:542 msgid "original" msgstr "اصلی" #: lib/Padre/Wx/Dialog/Preferences.pm:543 msgid "alphabetical_private_last" msgstr "" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "همه" #: lib/Padre/Wx/Dialog/Snippets.pm:22 msgid "Class:" msgstr "کلاس:" #: lib/Padre/Wx/Dialog/Snippets.pm:23 #: lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "" #: lib/Padre/Wx/Dialog/Snippets.pm:24 msgid "&Insert" msgstr "" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "&اضافه" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "نام:" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "" #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:87 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:182 #: lib/Padre/Document/Perl.pm:511 #: lib/Padre/Document/Perl.pm:537 msgid "Current cursor does not seem to point at a variable" msgstr "" #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:89 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:184 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "" #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:91 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:186 msgid "Unknown error" msgstr "خطای نامعلوم" #: lib/Padre/Task/PPI/FindVariableDeclaration.pm:95 #: lib/Padre/Task/PPI/LexicalReplaceVariable.pm:190 msgid "Check Canceled" msgstr "" #: lib/Padre/Task/PPI/FindUnmatchedBrace.pm:77 msgid "All braces appear to be matched" msgstr "" #: lib/Padre/Task/PPI/FindUnmatchedBrace.pm:78 msgid "Check Complete" msgstr "" #: lib/Padre/Task/Outline/Perl.pm:180 msgid "&GoTo Element" msgstr "" #: lib/Padre/Plugin/Devel.pm:21 msgid "Padre Developer Tools" msgstr "ابزار توسعه پادره" #: lib/Padre/Plugin/Devel.pm:55 msgid "Run Document inside Padre" msgstr "" #: lib/Padre/Plugin/Devel.pm:57 msgid "Dump Current Document" msgstr "" #: lib/Padre/Plugin/Devel.pm:58 msgid "Dump Top IDE Object" msgstr "" #: lib/Padre/Plugin/Devel.pm:59 msgid "Dump %INC and @INC" msgstr "" #: lib/Padre/Plugin/Devel.pm:65 msgid "Enable logging" msgstr "فعال سازی گزارشات" #: lib/Padre/Plugin/Devel.pm:66 msgid "Disable logging" msgstr "" #: lib/Padre/Plugin/Devel.pm:67 msgid "Enable trace when logging" msgstr "" #: lib/Padre/Plugin/Devel.pm:68 msgid "Disable trace" msgstr "" #: lib/Padre/Plugin/Devel.pm:70 msgid "Simulate Crash" msgstr "" #: lib/Padre/Plugin/Devel.pm:71 msgid "Simulate Crashing Bg Task" msgstr "" #: lib/Padre/Plugin/Devel.pm:73 msgid "wxWidgets 2.8.8 Reference" msgstr "" #: lib/Padre/Plugin/Devel.pm:76 msgid "STC Reference" msgstr "" #: lib/Padre/Plugin/Devel.pm:80 #: lib/Padre/Plugin/PopularityContest.pm:118 msgid "About" msgstr "درباره" #: lib/Padre/Plugin/Devel.pm:119 msgid "No file is open" msgstr "" #: lib/Padre/Plugin/Devel.pm:149 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "" #: lib/Padre/Plugin/PopularityContest.pm:119 msgid "Ping" msgstr "" #: lib/Padre/Plugin/Perl5.pm:39 msgid "Install Module..." msgstr "" #: lib/Padre/Plugin/Perl5.pm:40 msgid "Install CPAN Module" msgstr "نصب سی پن ماژول" #: lib/Padre/Plugin/Perl5.pm:42 msgid "Install Local Distribution" msgstr "نصب توزیع محلی" #: lib/Padre/Plugin/Perl5.pm:43 msgid "Install Remote Distribution" msgstr "تصب توزیع از دور" #: lib/Padre/Plugin/Perl5.pm:45 msgid "Open CPAN Config File" msgstr "بازکردن تنظیمات سی پن" #: lib/Padre/Plugin/Perl5.pm:96 msgid "Failed to find your CPAN configuration" msgstr "" #: lib/Padre/Plugin/Perl5.pm:106 msgid "Select distribution to install" msgstr "" #: lib/Padre/Plugin/Perl5.pm:119 #: lib/Padre/Plugin/Perl5.pm:144 msgid "Did not provide a distribution" msgstr "" #: lib/Padre/Plugin/Perl5.pm:134 msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" #: lib/Padre/Plugin/Perl5.pm:164 msgid "pip is unexpectedly not installed" msgstr "" #: lib/Padre/Document/Perl.pm:512 #: lib/Padre/Document/Perl.pm:538 msgid "Check cancelled" msgstr "" Padre-1.00/share/locale/ru.po0000644000175000017500000073220312137733173014506 0ustar petepete# Padre Russian translation. # Copyright 2008-2013 The Padre development team as listed in Padre.pm." # This file is distributed under the same license as the Padre package. # Andrew Shitov , 4 December 2008 # Anatoly Sharifulin , 12 May 2009 # Vladimir Lettiev , 03 August 2010 # msgid "" msgstr "" "Project-Id-Version: Padre Russian Translation 3 for Padre 0.68\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-09-28 16:10-0700\n" "PO-Revision-Date: \n" "Last-Translator: Vladimir Lettiev \n" "Language-Team: Russian\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "\".\" also matches newline" msgstr "\".\" также соответствует новой строке" #: lib/Padre/Config.pm:682 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "\"Открыть сессию\" запросит какую сессию (набор файлов) открыть, когда вы запускаете Padre." #: lib/Padre/Config.pm:684 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "\"Ранее открытые файлы\" запомнит открытые файлы, когда вы закроете Padre, и откроет те же файлы в следующий раз, когда вы запустите Padre." #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" и \"$\" соотвестствует началу и концу любой строки в тексте" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# Ввод в $_\n" "$_ = $_;\n" "# Вывод идёт в $_\n" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "$_ для обоих" #: lib/Padre/Wx/Diff.pm:112 #, perl-format msgid "%d line added" msgstr "%d строк добавлено" #: lib/Padre/Wx/Diff.pm:100 #, perl-format msgid "%d line changed" msgstr "%d строк изменено" #: lib/Padre/Wx/Diff.pm:124 #, perl-format msgid "%d line deleted" msgstr "%d строк удалено" #: lib/Padre/Wx/Diff.pm:111 #, perl-format msgid "%d lines added" msgstr "%d строк добавлено" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d lines changed" msgstr "%d строк изменено" #: lib/Padre/Wx/Diff.pm:123 #, perl-format msgid "%d lines deleted" msgstr "%d линий удалено" #: lib/Padre/Wx/ReplaceInFiles.pm:213 #, perl-format msgid "%s (%s changed)" msgstr "%s (%s изменены)" #: lib/Padre/Wx/Panel/FoundInFiles.pm:348 #, perl-format msgid "%s (%s results)" msgstr "%s (%s результаты)" #: lib/Padre/Wx/ReplaceInFiles.pm:221 #, perl-format msgid "%s (crashed)" msgstr "%s (крах)" #: lib/Padre/PluginManager.pm:521 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Крах во время установки: %s" #: lib/Padre/PluginManager.pm:469 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Крах во время загрузки: %s" #: lib/Padre/PluginManager.pm:531 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - Плагин не может быть подтверждён" #: lib/Padre/PluginManager.pm:493 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - не Padre::Plugin субкласс" #: lib/Padre/PluginManager.pm:506 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - Не совместимо с Padre %s - %s" #: lib/Padre/PluginManager.pm:481 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - Плагин пуст или без версии" #: lib/Padre/Wx/TaskList.pm:280 #: lib/Padre/Wx/Panel/TaskList.pm:171 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s в регулярном выражении TODO, проверьте вашу конфигурацию." #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s строка %s: %s" #: lib/Padre/Wx/VCS.pm:210 #, perl-format msgid "%s version control is not currently available" msgstr "%s система контроля версий сейчас не доступна" #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Строка: %s Файл: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2617 #: lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "&О программе" #: lib/Padre/Wx/FBP/Preferences.pm:1530 msgid "&Advanced..." msgstr "&Продвинутые настройки..." #: lib/Padre/Wx/ActionLibrary.pm:873 msgid "&Autocomplete" msgstr "&Автоподстановка" #: lib/Padre/Wx/ActionLibrary.pm:884 msgid "&Brace Matching" msgstr "Парная &скобка" #: lib/Padre/Wx/FBP/FindInFiles.pm:90 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:108 msgid "&Browse" msgstr "&Просмотр" #: lib/Padre/Wx/FBP/Preferences.pm:1546 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:153 #: lib/Padre/Wx/Dialog/OpenResource.pm:183 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&Отмена" #: lib/Padre/Wx/FBP/FindInFiles.pm:137 #: lib/Padre/Wx/FBP/Find.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:147 #: lib/Padre/Wx/FBP/Replace.pm:121 msgid "&Case Sensitive" msgstr "&Регистрозависимо" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "&Сменить стиль переменной" #: lib/Padre/Wx/ActionLibrary.pm:1719 msgid "&Check for Common (Beginner) Errors" msgstr "&Проверить на типичные (у новичка) ошибки" #: lib/Padre/Wx/ActionLibrary.pm:545 msgid "&Clean Recent Files List" msgstr "&Очистить список недавних файлов" #: lib/Padre/Wx/ActionLibrary.pm:671 msgid "&Clear Selection Marks" msgstr "&Снять метки выделения" #: lib/Padre/Wx/ActionLibrary.pm:287 #: lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:144 #: lib/Padre/Wx/Dialog/HelpSearch.pm:180 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:275 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 msgid "&Close" msgstr "&Закрыть" #: lib/Padre/Wx/ActionLibrary.pm:969 msgid "&Comment Out" msgstr "&Закомментировать" #: lib/Padre/Wx/ActionLibrary.pm:2504 msgid "&Context Help" msgstr "&Контекстная подсказка" #: lib/Padre/Wx/ActionLibrary.pm:2389 msgid "&Context Menu" msgstr "&Контекстное меню" #: lib/Padre/Wx/ActionLibrary.pm:701 msgid "&Copy" msgstr "&Копировать" #: lib/Padre/Wx/Menu/Debug.pm:68 msgid "&Debug" msgstr "&Отладка" #: lib/Padre/Wx/ActionLibrary.pm:1651 msgid "&Decrease Font Size" msgstr "&Уменьшить размер шрифта" #: lib/Padre/Wx/ActionLibrary.pm:382 #: lib/Padre/Wx/FBP/Preferences.pm:1198 #: lib/Padre/Wx/FBP/Bookmarks.pm:95 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "&Удалить" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "&Delete Trailing Spaces" msgstr "&Удалить завершающие пробелы" #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "&Deparse selection" msgstr "&Операция Deparse на выделенное" #: lib/Padre/Wx/Dialog/PluginManager.pm:115 msgid "&Disable" msgstr "&Отключить" #: lib/Padre/Wx/ActionLibrary.pm:557 msgid "&Document Statistics" msgstr "&Статистика документа" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "&Edit" msgstr "&Правка" #: lib/Padre/Wx/ActionLibrary.pm:2268 msgid "&Edit My Plug-in" msgstr "&Редактировать Мой плагин" #: lib/Padre/Wx/ActionLibrary.pm:2233 msgid "&Edit with Regex Editor..." msgstr "&Редактировать в редакторе регулярных выражений..." #: lib/Padre/Wx/Dialog/PluginManager.pm:121 #: lib/Padre/Wx/Dialog/PluginManager.pm:127 msgid "&Enable" msgstr "&Включить" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "&Введите номер строки от 1 до %s:" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "&Ввести позицию от 1 до %s:" #: lib/Padre/Wx/Menu/File.pm:301 msgid "&File" msgstr "&Файл" #: lib/Padre/Wx/ActionLibrary.pm:943 msgid "&File..." msgstr "&Файл..." #: lib/Padre/Wx/FBP/Preferences.pm:1082 #: lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "&Фильтр:" #: lib/Padre/Wx/FBP/FindInFiles.pm:153 msgid "&Find" msgstr "&Найти:" #: lib/Padre/Wx/FBP/Find.pm:111 #: lib/Padre/Wx/FBP/Replace.pm:153 msgid "&Find Next" msgstr "&Найти следующее" #: lib/Padre/Wx/ActionLibrary.pm:1233 msgid "&Find Previous" msgstr "&Найти предыдущее" #: lib/Padre/Wx/ActionLibrary.pm:1180 msgid "&Find..." msgstr "&Найти..." #: lib/Padre/Wx/ActionLibrary.pm:1531 msgid "&Fold All" msgstr "&Свернуть все" #: lib/Padre/Wx/ActionLibrary.pm:1551 msgid "&Fold/Unfold Current" msgstr "&Свернуть/Развернуть Текущую" #: lib/Padre/Wx/ActionLibrary.pm:1295 msgid "&Go To..." msgstr "&Перейти..." #: lib/Padre/Wx/Outline.pm:133 msgid "&Go to Element" msgstr "&Перейти к элементу" #: lib/Padre/Wx/ActionLibrary.pm:2483 #: lib/Padre/Wx/Menu/Help.pm:120 msgid "&Help" msgstr "&Справка" #: lib/Padre/Wx/ActionLibrary.pm:1641 msgid "&Increase Font Size" msgstr "&Увеличить размер шрифта" #: lib/Padre/Wx/ActionLibrary.pm:908 msgid "&Join Lines" msgstr "&Объединить строки" #: lib/Padre/Wx/ActionLibrary.pm:2123 msgid "&Launch Debugger" msgstr "&Запустить Отладчик" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "&Поддержка" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "&Загрузить все модули Padre" #: lib/Padre/Wx/ActionLibrary.pm:1109 msgid "&Lower All" msgstr "&Всё в нижний регистр" #: lib/Padre/Wx/Dialog/HelpSearch.pm:155 msgid "&Matching Help Topics:" msgstr "&Совпадающие темы помощи:" #: lib/Padre/Wx/Dialog/OpenResource.pm:227 msgid "&Matching Items:" msgstr "&Совпадающие объекты:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:181 msgid "&Matching Menu Items:" msgstr "&Совпадающие пункты меню:" #: lib/Padre/Wx/ActionLibrary.pm:1939 msgid "&Move POD to __END__" msgstr "&Переместить POD к __END__" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "&Новый" #: lib/Padre/Wx/ActionLibrary.pm:1792 msgid "&Newline Same Column" msgstr "&Новая строка с той же колонки" #: lib/Padre/Wx/FBP/FindFast.pm:101 msgid "&Next" msgstr "&Следующий" #: lib/Padre/Wx/ActionLibrary.pm:804 msgid "&Next Difference" msgstr "&Следующие различия" #: lib/Padre/Wx/ActionLibrary.pm:2366 msgid "&Next File" msgstr "&Следующий файл" #: lib/Padre/Wx/ActionLibrary.pm:793 msgid "&Next Problem" msgstr "&Следующая проблема" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:149 #: lib/Padre/Wx/Dialog/OpenResource.pm:177 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "&Открыть" #: lib/Padre/Wx/ActionLibrary.pm:536 msgid "&Open All Recent Files" msgstr "&Открыть все недавние файлы" #: lib/Padre/Wx/ActionLibrary.pm:208 msgid "&Open..." msgstr "&Открыть..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:228 msgid "&Original text:" msgstr "&Оригинальный текст:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "Текст &вывода:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:81 msgid "&POSIX Character classes" msgstr "&POSIX классы символов" #: lib/Padre/Wx/ActionLibrary.pm:2528 msgid "&Padre Support (English)" msgstr "&Поддержка Padre (Английский)" #: lib/Padre/Wx/ActionLibrary.pm:778 msgid "&Paste" msgstr "В&ставить" #: lib/Padre/Wx/ActionLibrary.pm:1120 msgid "&Patch..." msgstr "&Патч..." #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "&Perl код фильтра:" #: lib/Padre/Wx/ActionLibrary.pm:2246 msgid "&Plug-in Manager" msgstr "&Менеджер плагинов" #: lib/Padre/Wx/ActionLibrary.pm:2201 msgid "&Preferences" msgstr "&Настройки" #: lib/Padre/Wx/FBP/FindFast.pm:85 msgid "&Previous" msgstr "&Предыдущий" #: lib/Padre/Wx/ActionLibrary.pm:2377 msgid "&Previous File" msgstr "&Предыдущий файл" #: lib/Padre/Wx/ActionLibrary.pm:516 msgid "&Print..." msgstr "&Печать..." #: lib/Padre/Wx/ActionLibrary.pm:569 msgid "&Project Statistics" msgstr "&Статистика проекта" #: lib/Padre/Wx/Dialog/RegexEditor.pm:100 msgid "&Quantifiers" msgstr "&Кванторы" #: lib/Padre/Wx/ActionLibrary.pm:816 msgid "&Quick Fix" msgstr "&Быстрое исправление" #: lib/Padre/Wx/ActionLibrary.pm:1344 msgid "&Quick Menu Access..." msgstr "&Меню быстрого доступа..." #: lib/Padre/Wx/ActionLibrary.pm:580 msgid "&Quit" msgstr "&Выход" #: lib/Padre/Wx/Menu/File.pm:258 msgid "&Recent Files" msgstr "&Недавние файлы" #: lib/Padre/Wx/ActionLibrary.pm:620 msgid "&Redo" msgstr "&Повторить" #: lib/Padre/Wx/ActionLibrary.pm:2223 msgid "&Regex Editor" msgstr "&Редактор регулярных выражений" #: lib/Padre/Wx/FBP/FindInFiles.pm:129 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:155 msgid "&Regular Expression" msgstr "&Регулярное выражение" #: lib/Padre/Wx/Dialog/RegexEditor.pm:168 msgid "&Regular expression:" msgstr "&Регулярное выражение:" #: lib/Padre/Wx/ActionLibrary.pm:2285 msgid "&Reload My Plug-in" msgstr "&Перезагрузить Мой плагин" #: lib/Padre/Wx/Main.pm:4720 msgid "&Reload selected" msgstr "&Переоткрыть выбранное" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "&Rename Variable..." msgstr "&Переименовать переменную..." #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:171 #: lib/Padre/Wx/FBP/Replace.pm:169 msgid "&Replace" msgstr "&Заменить" #: lib/Padre/Wx/Dialog/RegexEditor.pm:249 msgid "&Replace text with:" msgstr "&Заменить текст:" #: lib/Padre/Wx/FBP/Preferences.pm:1217 #: lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "С&бросить" #: lib/Padre/Wx/ActionLibrary.pm:1661 msgid "&Reset Font Size" msgstr "&Сбросить размер шрифта" #: lib/Padre/Wx/Dialog/RegexEditor.pm:259 msgid "&Result from replace:" msgstr "&Результат замены:" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "За&пуск" #: lib/Padre/Wx/ActionLibrary.pm:1955 msgid "&Run Script" msgstr "&Выполнить скрипт" #: lib/Padre/Wx/ActionLibrary.pm:426 #: lib/Padre/Wx/FBP/Preferences.pm:1521 msgid "&Save" msgstr "&Сохранить" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "&Сохранить сессию автоматически" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "&Руководство Scintilla" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "&Поиск" #: lib/Padre/Wx/ActionLibrary.pm:2492 msgid "&Search Help" msgstr "&Поиск в помощи" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "&Выбрать" #: lib/Padre/Wx/Dialog/OpenResource.pm:205 msgid "&Select an item to open (? = any character, * = any string):" msgstr "&Выберите объект для открытия (? = любой символ, * = любая строка):" #: lib/Padre/Wx/Main.pm:4718 msgid "&Select files to reload:" msgstr "&Выбрать файлы для переоткрытия:" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "&Установить" #: lib/Padre/Wx/Dialog/PluginManager.pm:109 msgid "&Show Error Message" msgstr "&Показывать сообщение об ошибке" #: lib/Padre/Wx/ActionLibrary.pm:931 msgid "&Snippets..." msgstr "&Фрагменты..." #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "&Старт/Стоп трассировки процедуры" #: lib/Padre/Wx/ActionLibrary.pm:2037 msgid "&Stop Execution" msgstr "&Прекратить выполнение" #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "&Toggle Comment" msgstr "&Переключить комментарии" #: lib/Padre/Wx/Menu/Tools.pm:199 msgid "&Tools" msgstr "&Утилиты" #: lib/Padre/Wx/ActionLibrary.pm:2606 msgid "&Translate Padre..." msgstr "&Перевести Padre..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:174 msgid "&Type a menu item name to access:" msgstr "&Ввести имя пункта меню для доступа:" #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "&Uncomment" msgstr "&Раскомментировать" #: lib/Padre/Wx/ActionLibrary.pm:600 msgid "&Undo" msgstr "&Отменить" #: lib/Padre/Wx/ActionLibrary.pm:1098 msgid "&Upper All" msgstr "&Всё в верхний регистр" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Значение:" #: lib/Padre/Wx/Menu/View.pm:247 msgid "&View" msgstr "&Вид" #: lib/Padre/Wx/Menu/View.pm:101 msgid "&View Document As..." msgstr "&Показать документ как..." #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "&Win32 Questions (English)" msgstr "&Вопросы по Win32 (Английский)" #: lib/Padre/Wx/Menu/Window.pm:82 msgid "&Window" msgstr "&Окно" #: lib/Padre/Wx/ActionLibrary.pm:1628 msgid "&Word-Wrap File" msgstr "&Перевод длинных строк" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "&wxWidgets %s руководство" #: lib/Padre/Wx/Panel/Debugger.pm:668 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "'%s' не выгядит как переменная. Сначала выберите переменную в коде и затем попытайтесь снова." #: lib/Padre/Wx/ActionLibrary.pm:2325 msgid "(Re)load &Current Plug-in" msgstr "(Пере)загрузить &текущий плагин" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(Начиная с Perl %s)" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "(Неопределённый)" #: lib/Padre/PluginManager.pm:770 msgid "(core)" msgstr "(ядро)" #: lib/Padre/Wx/Dialog/About.pm:153 msgid "(disabled)" msgstr "(отключён)" #: lib/Padre/Wx/Dialog/About.pm:161 msgid "(unsupported)" msgstr "(не поддерживается)" #: lib/Padre/Wx/FBP/Preferences.pm:1150 #: lib/Padre/Wx/FBP/Preferences.pm:1164 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/VCS.pm:335 msgid ", " msgstr ", " #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "- УСТАРЕЛО!" #: lib/Padre/Wx/FBP/Debugger.pm:256 msgid ". Return to the executed line." msgstr ". Возврат к выполняемой строке." #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "7-bit US-ASCII character" msgstr "7-бит US-ASCII символ" #: lib/Padre/Wx/CPAN.pm:514 #, perl-format msgid "Loading %s..." msgstr "Загружается %s..." #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "Диалог" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "A comment" msgstr "Комментарий" #: lib/Padre/Wx/Dialog/RegexEditor.pm:125 msgid "A group" msgstr "Группа" #: lib/Padre/Config.pm:678 msgid "A new empty file" msgstr "Новый пустой файл" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Множество несвязанных инструментов используется Padre-разработчиками\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "A word boundary" msgstr "Граница слова" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/FBP/About.pm:296 msgid "Aaron Trevena" msgstr "Aaron Trevena" #: lib/Padre/Wx/FBP/About.pm:29 #: lib/Padre/Plugin/PopularityContest.pm:211 msgid "About" msgstr "О программе" #: lib/Padre/Wx/CPAN.pm:221 msgid "Abstract" msgstr "Резюме" #: lib/Padre/Wx/FBP/Patch.pm:47 #: lib/Padre/Wx/Dialog/Preferences.pm:175 msgid "Action" msgstr "Действие" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Действие: %s" #: lib/Padre/Wx/FBP/About.pm:122 msgid "Adam Kennedy" msgstr "Adam Kennedy" #: lib/Padre/Wx/FBP/Preferences.pm:288 msgid "Add another closing bracket if there already is one" msgstr "Добавить другую закрывающую скобку, если уже есть одна" #: lib/Padre/Wx/VCS.pm:515 msgid "Add file to repository?" msgstr "Добавить файл в репозиторий" #: lib/Padre/Wx/VCS.pm:246 #: lib/Padre/Wx/VCS.pm:260 msgid "Added" msgstr "Добавлен" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Продвинутые настройки" #: lib/Padre/Wx/FBP/Patch.pm:70 msgid "Against" msgstr "Против" #: lib/Padre/Wx/FBP/About.pm:128 #: lib/Padre/Wx/FBP/About.pm:337 msgid "Ahmad Zawawi" msgstr "Ahmad Zawawi" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Alarm" msgstr "Тревога" #: lib/Padre/Wx/FBP/About.pm:200 msgid "Alexandr Ciornii" msgstr "Alexandr Ciornii" #: lib/Padre/Wx/Syntax.pm:83 msgid "Alien Error" msgstr "Чужая Ошибка" #: lib/Padre/Wx/ActionLibrary.pm:1781 msgid "Align a selection of text to the same left column." msgstr "Выровнять выделеный тест к той же левой колонке." #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "Все" #: lib/Padre/Wx/Main.pm:4441 #: lib/Padre/Wx/Main.pm:4442 #: lib/Padre/Wx/Main.pm:4805 #: lib/Padre/Wx/Main.pm:6032 #: lib/Padre/Wx/Choice/Files.pm:19 msgid "All Files" msgstr "Все файлы" #: lib/Padre/Document/Perl.pm:549 msgid "All braces appear to be matched" msgstr "Все скобки выглядят парными" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "Allow the selection of another name to save the current document" msgstr "Разрешить выбор другого имени для сохранения текущего документа" #: lib/Padre/Wx/Dialog/RegexEditor.pm:83 msgid "Alphabetic characters" msgstr "Алфавитный символ" #: lib/Padre/Config.pm:775 msgid "Alphabetical Order" msgstr "Алфавитный порядок" #: lib/Padre/Config.pm:776 msgid "Alphabetical Order (Private Last)" msgstr "Алфавитный порядок (Приватные последними)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphanumeric characters" msgstr "Буквоцифровой символ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Alphanumeric characters plus \"_\"" msgstr "Цифробуквенные символы и \"_\"" #: lib/Padre/Wx/FBP/Preferences.pm:1142 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:113 msgid "Alternation" msgstr "Чередование" #: lib/Padre/Wx/FBP/About.pm:478 msgid "Amir E. Aharoni" msgstr "Amir E. Aharoni" #: lib/Padre/Wx/Dialog/ModuleStarter.pm:158 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" "Произошла ошибка при генерации '%s':\n" "%s" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Andrew Bramble" msgstr "Andrew Bramble" #: lib/Padre/Wx/FBP/About.pm:631 msgid "Andrew Shitov" msgstr "Andrew Shitov" #: lib/Padre/Wx/Dialog/RegexEditor.pm:71 msgid "Any character except a newline" msgstr "Любой символ кроме новой строки" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any decimal digit" msgstr "Любая десятичная цифра" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any non-digit" msgstr "Любая не-цифра" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any non-whitespace character" msgstr "Любой непробельный символ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any non-word character" msgstr "Любой символ не-слова" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any whitespace character" msgstr "Любой пробельный символ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any word character" msgstr "Любой символ слова" #: lib/Padre/Config.pm:1928 msgid "Apache License" msgstr "Лицензия Apache" #: lib/Padre/Wx/FBP/Preferences.pm:1899 msgid "Appearance" msgstr "Внешний вид" #: lib/Padre/Wx/FBP/Preferences.pm:807 msgid "Appearance Preview" msgstr "Предпросмотр внешнего вида" #: lib/Padre/Wx/ActionLibrary.pm:817 msgid "Apply one of the quick fixes for the current document" msgstr "Применить одно из быстрых исправлений для текущего документа" #: lib/Padre/Locale.pm:157 #: lib/Padre/Wx/FBP/About.pm:328 msgid "Arabic" msgstr "Арабский" #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "Ask for a session name and save the list of files currently opened" msgstr "Запросить имя сессии и сохранить список открытых в данный момент файлов" #: lib/Padre/Wx/ActionLibrary.pm:581 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Спросить должны ли несохранённые файлы быть сохранены и затем завершить Padre" #: lib/Padre/Wx/ActionLibrary.pm:1917 msgid "Assign the selected expression to a newly declared variable" msgstr "Присвоить выделенное выражение новой обьявляемой переменной" #: lib/Padre/Wx/Outline.pm:365 msgid "Attributes" msgstr "Атрибуты" #: lib/Padre/Wx/FBP/Sync.pm:290 msgid "Authentication" msgstr "Аутентификация" #: lib/Padre/Wx/VCS.pm:55 #: lib/Padre/Wx/CPAN.pm:212 msgid "Author" msgstr "Автор" #: lib/Padre/Wx/FBP/ModuleStarter.pm:56 msgid "Author:" msgstr "Автор:" #: lib/Padre/Wx/FBP/Preferences.pm:313 msgid "Auto-fold POD markup when code folding enabled" msgstr "Сворачивать POD при включенном сворачивании кода" #: lib/Padre/Wx/FBP/Preferences.pm:1900 msgid "Autocomplete" msgstr "Автозавершение" #: lib/Padre/Wx/FBP/Preferences.pm:185 msgid "Autocomplete always while typing" msgstr "Автодополнять всегда при наборе" #: lib/Padre/Wx/FBP/Preferences.pm:280 msgid "Autocomplete brackets" msgstr "Автозавершение скобок" #: lib/Padre/Wx/FBP/Preferences.pm:201 msgid "Autocomplete new functions in scripts" msgstr "Автодополнять новые функции в скриптах" #: lib/Padre/Wx/FBP/Preferences.pm:193 msgid "Autocomplete new methods in packages" msgstr "Автодополнять новые методы в пакетах" #: lib/Padre/Wx/Main.pm:3696 msgid "Autocompletion error" msgstr "Ошибка автоподстановки" #: lib/Padre/Wx/FBP/Preferences.pm:1042 msgid "Autoindent" msgstr "Автоотступ" #: lib/Padre/Wx/StatusBar.pm:268 msgid "Background Tasks are running" msgstr "Фоновые задачи запущены" #: lib/Padre/Wx/StatusBar.pm:269 msgid "Background Tasks are running with high load" msgstr "Фоновые задачи запущены с нагрузкой" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Backreference to the nth group" msgstr "Обратная ссылка к n-ой группе" #: lib/Padre/Wx/Dialog/Preferences.pm:33 msgid "Backspace" msgstr "Забой" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Beginning of line" msgstr "Начало строки" #: lib/Padre/Wx/FBP/Preferences.pm:1902 msgid "Behaviour" msgstr "Режим работы" #: lib/Padre/MIME.pm:887 msgid "Binary File" msgstr "Бинарный файл" #: lib/Padre/Wx/FBP/About.pm:308 msgid "Blake Willmarth" msgstr "Blake Willmarth" #: lib/Padre/Wx/FBP/SLOC.pm:91 msgid "Blank Lines:" msgstr "Пустые строки:" #: lib/Padre/Wx/FBP/Preferences.pm:829 msgid "Bloat Reduction" msgstr "Сокращение Раздувания" #: lib/Padre/Wx/FBP/About.pm:93 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "" "Сплэш-изображение синей бабочки на зелёном листе \n" "основано на работе Jerry Charlotte (blackbutterfly)" #: lib/Padre/Wx/FBP/Bookmarks.pm:29 msgid "Bookmarks" msgstr "Закладки" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Логический" #: lib/Padre/Config.pm:138 msgid "Bottom Panel" msgstr "Нижняя Панель" #: lib/Padre/Wx/FBP/Preferences.pm:263 msgid "Brace Assist" msgstr "Помощь со скобками" #: lib/Padre/Wx/Panel/Breakpoints.pm:55 msgid "Breakpoints" msgstr "Точки Останова" #: lib/Padre/Wx/FBP/About.pm:170 #: lib/Padre/Wx/FBP/About.pm:589 msgid "Breno G. de Oliveira" msgstr "Breno G. de Oliveira" #: lib/Padre/Wx/FBP/About.pm:212 msgid "Brian Cassidy" msgstr "Brian Cassidy" #: lib/Padre/Wx/FBP/VCS.pm:83 msgid "Bring changes from the repository into the working copy" msgstr "Перенести изменения из репозитория в рабочую копию" #: lib/Padre/Wx/ActionLibrary.pm:209 msgid "Browse directory of the current document to open one or several files" msgstr "Просмотреть каталог текущего документа для открытия одного или нескольких файлов" #: lib/Padre/Wx/ActionLibrary.pm:265 msgid "Browse the directory of the installed examples to open one file" msgstr "Просмотреть каталог установленных примеров для открытия одного файла" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "Браузер: нет просмотрщика для %s" #: lib/Padre/Wx/FBP/ModuleStarter.pm:84 msgid "Builder:" msgstr "Сборщик:" #: lib/Padre/Wx/ActionLibrary.pm:1995 msgid "Builds the current project, then run all tests." msgstr "Собрать текущий проект и затем запустить тесты." #: lib/Padre/Wx/FBP/About.pm:236 #: lib/Padre/Wx/FBP/About.pm:646 msgid "Burak Gursoy" msgstr "Burak Gursoy" #: lib/Padre/Wx/ActionLibrary.pm:2517 msgid "C&urrent Document" msgstr "&Текущий документ" #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "CHANGED" msgstr "ИЗМЕНЕНО" #: lib/Padre/Wx/CPAN.pm:101 #: lib/Padre/Wx/FBP/Preferences.pm:406 msgid "CPAN Explorer" msgstr "Исследователь CPAN" #: lib/Padre/Wx/FBP/Preferences.pm:900 msgid "CPAN Explorer Tool" msgstr "Исследователь CPAN" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "CTRL" #: lib/Padre/Wx/FBP/Snippet.pm:135 #: lib/Padre/Wx/FBP/ModuleStarter.pm:155 #: lib/Padre/Wx/FBP/FindInFiles.pm:162 #: lib/Padre/Wx/FBP/Bookmarks.pm:127 #: lib/Padre/Wx/FBP/Find.pm:136 #: lib/Padre/Wx/FBP/Special.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:180 #: lib/Padre/Wx/FBP/Replace.pm:202 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "Отмена" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "Не могу найти запускаемый файл python в Вашем PATH" #: lib/Padre/Document/Ruby.pm:54 msgid "Cannot find ruby executable in your PATH" msgstr "Не могу найти запускаемый файл ruby в Вашем PATH" #: lib/Padre/Wx/Main.pm:4089 #, perl-format msgid "Cannot open a directory: %s" msgstr "Не могу открыть каталог: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "Невозможно установить закладку в несохраненном документе" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Case-insensitive matching" msgstr "Регистронезависимые совпадения" #: lib/Padre/Wx/FBP/About.pm:206 #: lib/Padre/Wx/FBP/About.pm:568 msgid "Cezary Morga" msgstr "Cezary Morga" #: lib/Padre/Wx/FBP/Preferences.pm:1244 msgid "Change Detection" msgstr "Отслеживание Изменения" #: lib/Padre/Wx/FBP/Preferences.pm:924 msgid "Change Font Size (Outside Preferences)" msgstr "Изменить Размер Шрифта (Внешние Настройки)" #: lib/Padre/Wx/ActionLibrary.pm:1110 msgid "Change the current selection to lower case" msgstr "Изменить символы в текущем выделении в нижний регистр" #: lib/Padre/Wx/ActionLibrary.pm:1099 msgid "Change the current selection to upper case" msgstr "Изменить символы в текущем выделении в верхний регистр" #: lib/Padre/Wx/ActionLibrary.pm:995 msgid "Change the encoding of the current document to the default of the operating system" msgstr "Сменить кодировку текущего документа в кодировку по умолчанию операционной системы" #: lib/Padre/Wx/ActionLibrary.pm:1005 msgid "Change the encoding of the current document to utf-8" msgstr "Изменить колировку текущего документа на utf-8" #: lib/Padre/Wx/ActionLibrary.pm:1045 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "Изменить символ конца строки текущего документа как в Mac Classic" #: lib/Padre/Wx/ActionLibrary.pm:1035 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "Изменить символ конца строки текущего документа как в Unix, Linux, Mac OSX" #: lib/Padre/Wx/ActionLibrary.pm:1025 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "Изменить символ конца строки текущего документа как в файлах на MS Windows" #: lib/Padre/Document/Perl.pm:1517 msgid "Change variable style" msgstr "Сменить стиль переменной" #: lib/Padre/Wx/ActionLibrary.pm:1876 msgid "Change variable style from camelCase to Camel_Case" msgstr "Сменить стиль переменной с camelCase на Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1862 msgid "Change variable style from camelCase to camel_case" msgstr "Сменить стиль переменной с camelCase на camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Change variable style from camel_case to CamelCase" msgstr "Сменить стиль переменной в camel_case на CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1834 msgid "Change variable style from camel_case to camelCase" msgstr "Сменить стиль переменной с camel_case на camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1833 msgid "Change variable to &camelCase" msgstr "Сменить стиль переменной на &camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1861 msgid "Change variable to &using_underscores" msgstr "Сменить стиль переменной на &использование_подчёркиваний" #: lib/Padre/Wx/ActionLibrary.pm:1847 msgid "Change variable to C&amelCase" msgstr "Сменить стиль переменной на C&amelCase" #: lib/Padre/Wx/ActionLibrary.pm:1875 msgid "Change variable to U&sing_Underscores" msgstr "Сменить стиль переменной на И&спользование_Подчёркиваний" #: lib/Padre/Wx/Dialog/RegexEditor.pm:69 msgid "Character classes" msgstr "Классы символов" #: lib/Padre/Wx/Dialog/Goto.pm:343 msgid "Character position" msgstr "Позиция символа" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Character set" msgstr "Набор символов" #: lib/Padre/Wx/FBP/Document.pm:174 msgid "Characters (All)" msgstr "Символы (Все)" #: lib/Padre/Wx/FBP/Document.pm:192 msgid "Characters (Visible)" msgstr "Символы (Видимые)" #: lib/Padre/Document/Perl.pm:550 msgid "Check Complete" msgstr "Проверка завершена" #: lib/Padre/Document/Perl.pm:619 #: lib/Padre/Document/Perl.pm:675 #: lib/Padre/Document/Perl.pm:694 msgid "Check cancelled" msgstr "Проверка отменена" #: lib/Padre/Wx/ActionLibrary.pm:1720 msgid "Check the current file for common beginner errors" msgstr "Проверить текущий файл на типичные ошибки новичка" #: lib/Padre/Locale.pm:431 msgid "Chinese" msgstr "Китайский" #: lib/Padre/Locale.pm:441 #: lib/Padre/Wx/FBP/About.pm:343 msgid "Chinese (Simplified)" msgstr "Китайский (Упрощенный)" #: lib/Padre/Locale.pm:451 #: lib/Padre/Wx/FBP/About.pm:364 msgid "Chinese (Traditional)" msgstr "Китайский (Традиционный)" #: lib/Padre/Wx/Main.pm:4313 #: lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "Выбрать файл" #: lib/Padre/Wx/FBP/About.pm:218 msgid "Chris Dolan" msgstr "Chris Dolan" #: lib/Padre/Wx/FBP/About.pm:358 msgid "Chuanren Wu" msgstr "Chuanren Wu" #: lib/Padre/Wx/FBP/About.pm:272 msgid "Claudio Ramirez" msgstr "Claudio Ramirez" #: lib/Padre/Wx/FBP/Preferences.pm:662 msgid "Clean up file content on saving (for supported document types)" msgstr "Очистить содержимое файла при сохранении (для поддерживающих типов документа)" #: lib/Padre/Wx/Dialog/OpenResource.pm:221 msgid "Click on the arrow for filter settings" msgstr "Нажмите на стрелку для настроек фильтра" #: lib/Padre/Wx/FBP/Patch.pm:120 #: lib/Padre/Wx/FBP/Text.pm:56 #: lib/Padre/Wx/FBP/PluginManager.pm:152 #: lib/Padre/Wx/FBP/About.pm:672 #: lib/Padre/Wx/FBP/SLOC.pm:176 #: lib/Padre/Wx/FBP/Sync.pm:253 #: lib/Padre/Wx/FBP/Diff.pm:94 #: lib/Padre/Wx/FBP/Document.pm:254 #: lib/Padre/Wx/FBP/SessionManager.pm:119 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:279 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "Закрыть" #: lib/Padre/Wx/ActionLibrary.pm:362 msgid "Close &Files..." msgstr "Закрыть &файлы..." #: lib/Padre/Wx/ActionLibrary.pm:342 msgid "Close &all Files" msgstr "Закрыть &все файлы" #: lib/Padre/Wx/ActionLibrary.pm:301 msgid "Close &this Project" msgstr "Закрыть &этот проект" #: lib/Padre/Wx/Main.pm:5226 msgid "Close all" msgstr "Закрыть все" #: lib/Padre/Wx/ActionLibrary.pm:352 msgid "Close all &other Files" msgstr "Закрыть все &другие файлы" #: lib/Padre/Wx/ActionLibrary.pm:302 msgid "Close all the files belonging to the current project" msgstr "Закрыть все файлы, принадлежащие текущему проекту" #: lib/Padre/Wx/ActionLibrary.pm:353 msgid "Close all the files except the current one" msgstr "Закрыть все файлы кроме текущего" #: lib/Padre/Wx/ActionLibrary.pm:343 msgid "Close all the files open in the editor" msgstr "Закрыть все файлы открытые в редакторе" #: lib/Padre/Wx/ActionLibrary.pm:323 msgid "Close all the files that do not belong to the current project" msgstr "Закрыть все файлы, непринадлежащие текущему проекту" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close current document" msgstr "Закрыть текущий документ" #: lib/Padre/Wx/ActionLibrary.pm:383 msgid "Close current document and remove the file from disk" msgstr "Закрыть текущий документ и удалить файл с диска" #: lib/Padre/Wx/ActionLibrary.pm:322 msgid "Close other &Projects" msgstr "Закрыть другие &проекты" #: lib/Padre/Wx/Main.pm:5294 msgid "Close some" msgstr "Закрыть некоторые" #: lib/Padre/Wx/Main.pm:5272 msgid "Close some files" msgstr "Закрыть некоторые файлы" #: lib/Padre/Wx/ActionLibrary.pm:1696 msgid "Close the highest priority dialog or panel" msgstr "Закрыть панель или диалог с самым высоким приоритетом " #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "Закрыть это окно" #: lib/Padre/Wx/FBP/SLOC.pm:67 msgid "Code Lines:" msgstr "Строк кода:" #: lib/Padre/Config.pm:774 msgid "Code Order" msgstr "В порядке нахождения в коде" #: lib/Padre/Wx/FBP/FoundInFiles.pm:91 msgid "Collapse All" msgstr "Свернуть всё" #: lib/Padre/Wx/FBP/Preferences.pm:144 msgid "Coloured text in output window (ANSI)" msgstr "Цветной текст в окне вывода (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1940 msgid "Combine scattered POD at the end of the document" msgstr "Комбинировать разбросанный POD к концу документа" #: lib/Padre/Wx/Command.pm:97 msgid "Command" msgstr "Комманда" #: lib/Padre/Wx/Main.pm:2724 msgid "Command line" msgstr "Командная строка" #: lib/Padre/Wx/FBP/Preferences.pm:540 msgid "Command line files open in existing Padre instance" msgstr "Открыть файлы в существующем окне Padre" #: lib/Padre/Wx/ActionLibrary.pm:970 msgid "Comment out selected lines or the current line" msgstr "Закомментировать выделенные строки или текущую линию" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "Comment out/remove comment for selected lines or the current line" msgstr "Закомментировать/удалить комментарий в выбранных строках или в текущей линии" #: lib/Padre/Wx/FBP/SLOC.pm:79 msgid "Comments Lines:" msgstr "Закомментировать строки:" #: lib/Padre/Wx/VCS.pm:495 msgid "Commit file/directory to repository?" msgstr "Занести файл/каталог в репозиторий?" #: lib/Padre/Wx/Dialog/About.pm:119 msgid "Config" msgstr "Конфигурация" #: lib/Padre/Wx/FBP/Sync.pm:134 #: lib/Padre/Wx/FBP/Sync.pm:163 msgid "Confirm:" msgstr "Подтверждение:" #: lib/Padre/Wx/VCS.pm:249 msgid "Conflicted" msgstr "Конфликтует" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "Подключаюсь к FTP серверу %s..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "Подключение к FTP серверу успешно." #: lib/Padre/Wx/FBP/SLOC.pm:103 msgid "Constructive Cost Model (COCOMO)" msgstr "Модель Издержек Разработки (COCOMO)" #: lib/Padre/Wx/FBP/Preferences.pm:168 msgid "Content Assist" msgstr "Помощь с содержимым" #: lib/Padre/Config.pm:982 msgid "Contents of the status bar" msgstr "Содержимое статусной строки" #: lib/Padre/Config.pm:727 msgid "Contents of the window title" msgstr "Содержимое заголовка окна" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Control character" msgstr "Контрольный символ" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Control characters" msgstr "Контрольный символ" #: lib/Padre/Wx/Menu/Edit.pm:188 msgid "Convert &Encoding (broken)" msgstr "Конвертировать &кодировку (сломано)" #: lib/Padre/Wx/Menu/Edit.pm:210 msgid "Convert &Line Endings" msgstr "Конвертировать &перевод строк" #: lib/Padre/Wx/ActionLibrary.pm:1057 msgid "Convert all tabs to spaces in the current document" msgstr "Конвертировать все символы табуляции в пробелы в текущем документе" #: lib/Padre/Wx/ActionLibrary.pm:1067 msgid "Convert all the spaces to tabs in the current document" msgstr "Конвертировать все пробелы в символы табуляции в текущем документе" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "Особое &копирование" #: lib/Padre/Wx/VCS.pm:263 msgid "Copied" msgstr "Скопировано" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Копировать" #: lib/Padre/Wx/ActionLibrary.pm:747 msgid "Copy &Directory Name" msgstr "Копировать имя &каталога" #: lib/Padre/Wx/ActionLibrary.pm:761 msgid "Copy Editor &Content" msgstr "Копировать &содержимое редактора" #: lib/Padre/Wx/ActionLibrary.pm:732 msgid "Copy F&ilename" msgstr "Копировать имя ф&айла" #: lib/Padre/Wx/ActionLibrary.pm:717 msgid "Copy Full &Filename" msgstr "Копировать полное имя &файла" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Копировать имя" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Копировать значение" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Copy filename to clipboard" msgstr "Копировать имя файла в буфер обмена" #: lib/Padre/Wx/ActionLibrary.pm:373 msgid "Copy the current tab into a new document" msgstr "Копировать текущую вкладку в новый документ" #: lib/Padre/Wx/FBP/About.pm:87 msgid "" "Copyright 2008–2012 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "" "Авторские права 2008-2012 Команда разработчиков Padre, Padre свободное программное обеспечение;\n" "вы можете распространять его и/или изменять его на тех же условиях, что и Perl 5." #: lib/Padre/Wx/Directory/TreeCtrl.pm:197 #, perl-format msgid "Could not create: '%s': %s" msgstr "Не могу создать '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, perl-format msgid "Could not delete: '%s': %s" msgstr "Не могу удалить: '%s': %s" #: lib/Padre/Wx/Panel/Debugger.pm:646 #, perl-format msgid "Could not evaluate '%s'" msgstr "Не могу вычислить '%s'" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "Не могу найти KDE или GNOME" #: lib/Padre/Wx/Dialog/HelpSearch.pm:312 msgid "Could not find a help provider for " msgstr "Не могу найти поставщика помощи для " #: lib/Padre/Wx/Main.pm:4301 #, perl-format msgid "Could not find file '%s'" msgstr "Файл '%s' не найден" #: lib/Padre/Wx/Main.pm:2790 msgid "Could not find perl executable" msgstr "Не могу найти запускаемый файл perl" #: lib/Padre/Wx/Main.pm:2760 #: lib/Padre/Wx/Main.pm:2821 #: lib/Padre/Wx/Main.pm:2875 msgid "Could not find project root" msgstr "Путь к проекту не найден" #: lib/Padre/Wx/ActionLibrary.pm:2275 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "Невозможно найти плагин Padre::Plugin::My" #: lib/Padre/PluginManager.pm:895 msgid "Could not locate project directory." msgstr "Невозможно найти каталог проекта." #: lib/Padre/Wx/Main.pm:4611 #, perl-format msgid "Could not reload file: %s" msgstr "Невозможно загрузить файл %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:178 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr "Не могу переименовать: '%s' в '%s': %s" #: lib/Padre/Wx/Main.pm:5048 msgid "Could not save file: " msgstr "Невозможно записать файл:" #: lib/Padre/Wx/CPAN.pm:230 msgid "Count" msgstr "Итог" #: lib/Padre/Wx/Directory/TreeCtrl.pm:290 #: lib/Padre/Wx/Directory/TreeCtrl.pm:349 msgid "Create Directory" msgstr "Создать каталог" #: lib/Padre/Wx/ActionLibrary.pm:1806 msgid "Create Project &Tagsfile" msgstr "Создать файл &тегов проекта" #: lib/Padre/Wx/ActionLibrary.pm:1309 msgid "Create a bookmark in the current file current row" msgstr "Создать закладку в текущей строке данного файла" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by Gábor Szabó" msgstr "Создано Габором Сабо" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "Создать теги перл - файл для текущего проекта, поддерживающий поиск методов и автозавершение." #: lib/Padre/Wx/FBP/Preferences.pm:1134 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:686 msgid "Cu&t" msgstr "&Вырезать" #: lib/Padre/Document/Perl.pm:693 #, perl-format msgid "Current '%s' not found" msgstr "Текущий '%s' не найден" #: lib/Padre/Wx/Dialog/OpenResource.pm:244 msgid "Current Directory: " msgstr "Текущий каталог: " #: lib/Padre/Document/Perl.pm:674 msgid "Current cursor does not seem to point at a method" msgstr "В настоящий момент курсор установлен не на методе" #: lib/Padre/Document/Perl.pm:618 #: lib/Padre/Document/Perl.pm:652 msgid "Current cursor does not seem to point at a variable" msgstr "В настоящий момент курсор установлен не на переменной" #: lib/Padre/Document/Perl.pm:814 #: lib/Padre/Document/Perl.pm:864 #: lib/Padre/Document/Perl.pm:901 msgid "Current cursor does not seem to point at a variable." msgstr "В настоящий момент курсор установлен не на переменной." #: lib/Padre/Wx/Main.pm:2815 #: lib/Padre/Wx/Main.pm:2866 msgid "Current document has no filename" msgstr "Для текущего документа не указано имя файла" #: lib/Padre/Wx/Main.pm:2869 msgid "Current document is not a .t file" msgstr "Текущий документ не является .t файлом" #: lib/Padre/Wx/VCS.pm:204 msgid "Current file is not in a version control system" msgstr "Текущий файл не в системе контроля версий" #: lib/Padre/Wx/VCS.pm:195 msgid "Current file is not saved in a version control system" msgstr "Текущий файл не сохранён в системе контроля версия" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "Текущий номер строки: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "Текущая позиция: %s" #: lib/Padre/Wx/FBP/Preferences.pm:712 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "Частота мерцания курсора ( миллисекунды - 0 = нет мерцания; 500 = по умолчанию)" #: lib/Padre/Wx/ActionLibrary.pm:1891 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "Вырезать текущее выделение и создать новую процедуру из него. Вызов процедуры добавляется в место, где было выделение." #: lib/Padre/Locale.pm:167 #: lib/Padre/Wx/FBP/About.pm:379 msgid "Czech" msgstr "Чешский" #: lib/Padre/Wx/ActionLibrary.pm:372 msgid "D&uplicate" msgstr "Д&убликат" #: lib/Padre/Wx/Dialog/WindowList.pm:355 msgid "DELETED" msgstr "УДАЛЕНО" #: lib/Padre/Locale.pm:177 msgid "Danish" msgstr "Датский" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "Дата/Время" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:370 msgid "Debug" msgstr "Отладка" #: lib/Padre/Wx/Panel/DebugOutput.pm:50 msgid "Debug Output" msgstr "Вывод Отладчика" #: lib/Padre/Wx/FBP/Debugger.pm:552 msgid "Debug-Output Options" msgstr "Опции Debug-Output" #: lib/Padre/Wx/Panel/Debugger.pm:61 msgid "Debugger" msgstr "Отладчик" #: lib/Padre/Wx/Panel/Debugger.pm:257 msgid "Debugger is already running" msgstr "Отладчик уже запущен" #: lib/Padre/Wx/Panel/Debugger.pm:334 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "Ошибка отладки. Проверили ли вы программу на синтаксические ошибки?" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "По умолчанию" #: lib/Padre/Wx/FBP/Preferences.pm:573 msgid "Default Newline Format:" msgstr "Концы строк по умолчанию:" #: lib/Padre/Wx/FBP/Preferences.pm:588 msgid "Default Project Directory:" msgstr "Каталог проекта по умолчанию:" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Значение по умолчанию:" #: lib/Padre/Wx/FBP/Preferences.pm:621 msgid "Default word wrap on for each file" msgstr "Перевод строк по умолчанию для всех файлов" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "Приостановить очередь действий на 1 секунду" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "Приостановить очередь действий на 10 секунд" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "Приостановить очередь действий на 30 секунд" #: lib/Padre/Wx/FBP/Sync.pm:236 #: lib/Padre/Wx/Directory/TreeCtrl.pm:379 #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Delete" msgstr "Удалить" #: lib/Padre/Wx/FBP/Bookmarks.pm:111 msgid "Delete &All" msgstr "&Удалить все" #: lib/Padre/Wx/ActionLibrary.pm:1076 msgid "Delete &Leading Spaces" msgstr "Удалить &начальные пробелы" #: lib/Padre/Wx/Directory/TreeCtrl.pm:266 msgid "Delete Directory" msgstr "Удалить каталог" #: lib/Padre/Wx/Directory/TreeCtrl.pm:325 msgid "Delete File" msgstr "Удалить файл" #: lib/Padre/Wx/FBP/Breakpoints.pm:43 msgid "" "Delete MARKER_NOT_BREAKABLE\n" "Current File Only" msgstr "" "Удалить MARKER_NOT_BREAKABLE\n" "Только в текущем файе" #: lib/Padre/Wx/FBP/SessionManager.pm:103 msgid "Delete Session" msgstr "Удалить Сессию" #: lib/Padre/Wx/FBP/Breakpoints.pm:138 msgid "Delete all project Breakpoints" msgstr "Удалить все точки останова проекта" #: lib/Padre/Wx/VCS.pm:534 msgid "Delete file from repository??" msgstr "Удалить файл из репозитория??" #: lib/Padre/Wx/FBP/Preferences.pm:1203 msgid "Delete the keyboard binding" msgstr "Удалить сочетание клавиш" #: lib/Padre/Wx/VCS.pm:247 #: lib/Padre/Wx/VCS.pm:261 msgid "Deleted" msgstr "Удалено" #: lib/Padre/Wx/Syntax.pm:53 msgid "Deprecation" msgstr "|Устаревшее" #: lib/Padre/Wx/Dialog/Preferences.pm:176 #: lib/Padre/Wx/Dialog/SessionManager2.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "Описание" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "Описание:" #: lib/Padre/Wx/FBP/Preferences.pm:1505 msgid "Detect Perl 6 files" msgstr "Автоопределение файлов Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1034 msgid "Detect indent settings for each file" msgstr "Определить настройки отступов для каждой строки" #: lib/Padre/Wx/FBP/About.pm:849 msgid "Development" msgstr "Разработка" #: lib/Padre/Wx/FBP/SLOC.pm:156 msgid "Development Cost (USD):" msgstr "Цена Разработки (USD):" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "Не указано имя закладки" #: lib/Padre/CPAN.pm:113 #: lib/Padre/CPAN.pm:137 msgid "Did not provide a distribution" msgstr "Дистрибутив не предоставляется" #: lib/Padre/Wx/Dialog/Bookmarks.pm:94 msgid "Did not select a bookmark" msgstr "Не выбрана закладка" #: lib/Padre/Wx/FBP/Diff.pm:29 msgid "Diff" msgstr "Различия" #: lib/Padre/Wx/Dialog/Patch.pm:485 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "Сравнение успешно, вы должны увидеть новую вкладку в редакторе с именем %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Digits" msgstr "Цифры" #: lib/Padre/Config.pm:830 msgid "Directories First" msgstr "Каталоги вначале" #: lib/Padre/Config.pm:831 msgid "Directories Mixed" msgstr "Каталоги смешаны" #: lib/Padre/Wx/Directory/TreeCtrl.pm:95 msgid "Directory" msgstr "Каталог" #: lib/Padre/Wx/FBP/FindInFiles.pm:73 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:91 msgid "Directory:" msgstr "Каталог:" #: lib/Padre/Wx/FBP/About.pm:403 msgid "Dirk De Nijs" msgstr "Dirk De Nijs" #: lib/Padre/PluginHandle.pm:27 msgid "Disabled" msgstr "Отключено" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Disk" msgstr "Диск" #: lib/Padre/Wx/FBP/Debugger.pm:143 msgid "Display Value" msgstr "Отобразить значение" #: lib/Padre/Wx/CPAN.pm:211 #: lib/Padre/Wx/CPAN.pm:220 #: lib/Padre/Wx/CPAN.pm:229 #: lib/Padre/Wx/Dialog/About.pm:139 msgid "Distribution" msgstr "Дистрибутив" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "Не показывать это снова" #: lib/Padre/Wx/Main.pm:5412 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "Вы действительно хотите закрыть и удалить %s с диска?" #: lib/Padre/Wx/VCS.pm:514 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "Хотите ли Вы добавить '%s' в Ваш репозиторий" #: lib/Padre/Wx/VCS.pm:494 msgid "Do you want to commit?" msgstr "Хотите ли вы сделать коммит?" #: lib/Padre/Wx/Main.pm:3126 msgid "Do you want to continue?" msgstr "Хотите ли вы продолжить?" #: lib/Padre/Wx/VCS.pm:533 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "Хотите ли Вы удалить '%s' из Вашего репозитория" #: lib/Padre/Wx/Dialog/Preferences.pm:481 msgid "Do you want to override it with the selected action?" msgstr "Хотите ли вы переназначить выбранным действием?" #: lib/Padre/Wx/VCS.pm:560 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "Хотите ли Вы откатить изменения к '%s'" #: lib/Padre/Wx/FBP/Document.pm:123 msgid "Document" msgstr "Документ" #: lib/Padre/Wx/FBP/Document.pm:67 msgid "Document Class" msgstr "Класс Документа" #: lib/Padre/Wx/FBP/Document.pm:29 msgid "Document Information" msgstr "Информация Документа" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "Утилиты документа" #: lib/Padre/Wx/FBP/Document.pm:55 msgid "Document Type" msgstr "Тип документа" #: lib/Padre/Wx/Main.pm:6843 #, perl-format msgid "Document encoded to (%s)" msgstr "Документ кодирован в (%s)" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Down" msgstr "Вниз" #: lib/Padre/Wx/FBP/Sync.pm:219 msgid "Download" msgstr "Загрузить" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "Вывести объект Padre на STDOUT" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Вывести полный объект Padre на STDOUT для тестирования/отладки." #: lib/Padre/Locale.pm:351 #: lib/Padre/Wx/FBP/About.pm:394 msgid "Dutch" msgstr "Нидерландский" #: lib/Padre/Locale.pm:361 msgid "Dutch (Belgium)" msgstr "Нидерландский (Бельгия)" #: lib/Padre/Wx/FBP/Debugger.pm:376 msgid "" "E\n" "Display all thread ids the current one will be identified: ." msgstr "" "E\n" "Показать все идентифкаторы нитей, текущий будет идентфицирован: ." #: lib/Padre/Wx/ActionLibrary.pm:1044 msgid "EOL to &Mac Classic" msgstr "Переводы строк &Mac Классический" #: lib/Padre/Wx/ActionLibrary.pm:1034 msgid "EOL to &Unix" msgstr "Переводы строк &Unix" #: lib/Padre/Wx/ActionLibrary.pm:1024 msgid "EOL to &Windows" msgstr "Переводы строк &Windows" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:364 msgid "Edit" msgstr "Редактировать" #: lib/Padre/Wx/ActionLibrary.pm:2202 msgid "Edit user and host preferences" msgstr "Редактировать настройки пользователя и системы" #: lib/Padre/Wx/Dialog/WindowList.pm:224 msgid "Editor" msgstr "Редактор" #: lib/Padre/Wx/FBP/Preferences.pm:852 msgid "Editor Bookmark Support" msgstr "Поддержка Закладок Редактора" #: lib/Padre/Wx/FBP/Preferences.pm:860 msgid "Editor Code Folding" msgstr "Сворачивание Кода Редактора" #: lib/Padre/Wx/FBP/Preferences.pm:784 msgid "Editor Current Line Background Colour" msgstr "Цвет фона текущей строки редактора" #: lib/Padre/Wx/FBP/Preferences.pm:868 msgid "Editor Cursor Memory" msgstr "Память Курсора Редактора" #: lib/Padre/Wx/FBP/Preferences.pm:892 msgid "Editor Diff Feature" msgstr "Функционал Отличий Редактора" #: lib/Padre/Wx/FBP/Preferences.pm:760 msgid "Editor Font" msgstr "Шрифт Редактора" #: lib/Padre/Wx/FBP/Preferences.pm:604 msgid "Editor Options" msgstr "Опции Редактора" #: lib/Padre/Wx/FBP/Preferences.pm:876 msgid "Editor Session Support" msgstr "Поддержка Сессий Редактора" #: lib/Padre/Wx/FBP/Preferences.pm:678 #: lib/Padre/Wx/FBP/Preferences.pm:1903 msgid "Editor Style" msgstr "Стиль редактора" #: lib/Padre/Wx/FBP/Preferences.pm:884 msgid "Editor Syntax Annotations" msgstr "Аннотации Синтаксиса Редактора" #: lib/Padre/Wx/FBP/ModuleStarter.pm:70 msgid "Email Address:" msgstr "Email Адрес:" #: lib/Padre/Wx/Dialog/Sync.pm:163 msgid "Email and confirmation do not match." msgstr "Email и подтверждение не совпадают." #: lib/Padre/Wx/FBP/Sync.pm:75 #: lib/Padre/Wx/FBP/Sync.pm:120 msgid "Email:" msgstr "Эл.почта:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:651 msgid "Empty regex" msgstr "Пустой regex" #: lib/Padre/Wx/FBP/PluginManager.pm:120 msgid "Enable" msgstr "Включить" #: lib/Padre/Wx/FBP/Preferences.pm:1382 msgid "Enable Perl beginner mode" msgstr "Включить режим новичка Perl" #: lib/Padre/Wx/FBP/Preferences.pm:637 msgid "Enable Smart highlighting while typing" msgstr "Включить умную подсветку при наборе" #: lib/Padre/Config.pm:1620 msgid "Enable document differences feature" msgstr "Включить отображение отличий документов" #: lib/Padre/Config.pm:1570 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "Включить или отключить Запуск с Devel::EndStats, если он установлен." #: lib/Padre/Config.pm:1590 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "Включить или отключить Запуск с Devel::TraceUse, если он установлен." #: lib/Padre/Config.pm:1610 msgid "Enable syntax checker annotations in the editor" msgstr "Включить аннотации проверки синтаксиса в редакторе" #: lib/Padre/Config.pm:1640 msgid "Enable the CPAN Explorer, powered by MetaCPAN" msgstr "Включить Обозреватель CPAN, базирующийся на MetaCPAN" #: lib/Padre/Config.pm:1660 msgid "Enable the experimental command line interface" msgstr "Включить экспериментальный интерфейс коммандной строки" #: lib/Padre/Config.pm:1630 msgid "Enable version control system support" msgstr "Включить поддержку системы контроля версий" #: lib/Padre/PluginHandle.pm:28 msgid "Enabled" msgstr "Включено" #: lib/Padre/Wx/ActionLibrary.pm:1014 msgid "Encode Document &to..." msgstr "Перекодировать документ &в..." #: lib/Padre/Wx/ActionLibrary.pm:994 msgid "Encode Document to &System Default" msgstr "Перекодировать документ в &системную кодировку" #: lib/Padre/Wx/ActionLibrary.pm:1004 msgid "Encode Document to &utf-8" msgstr "Перекодировать документ в &utf-8" #: lib/Padre/Wx/Main.pm:6865 msgid "Encode document to..." msgstr "Кодировать документ в..." #: lib/Padre/Wx/Main.pm:6864 msgid "Encode to:" msgstr "Кодировать в:" #: lib/Padre/Wx/FBP/Document.pm:91 msgid "Encoding" msgstr "Кодировка" #: lib/Padre/Wx/Dialog/Preferences.pm:43 msgid "End" msgstr "End" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "End case modification/metacharacter quoting" msgstr "Конечный случай изменения/метасимвол цитирования" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "End of line" msgstr "Конец строки" #: lib/Padre/Locale.pm:197 msgid "English" msgstr "Английский" #: lib/Padre/Locale.pm:125 msgid "English (Australia)" msgstr "Английский (Австралия)" #: lib/Padre/Locale.pm:206 msgid "English (Canada)" msgstr "Английский (Канада)" #: lib/Padre/Locale.pm:215 msgid "English (New Zealand)" msgstr "Английский (Новая Зеландия)" #: lib/Padre/Locale.pm:86 msgid "English (United Kingdom)" msgstr "Английский (Великобритания)" #: lib/Padre/Locale.pm:226 msgid "English (United States)" msgstr "Английский (США)" #: lib/Padre/Wx/FBP/About.pm:616 msgid "Enrique Nell" msgstr "Enrique Nell" #: lib/Padre/Wx/Dialog/Preferences.pm:46 msgid "Enter" msgstr "Ввод" #: lib/Padre/CPAN.pm:127 msgid "" "Enter URL to install\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Введите адрес для установки\n" "например, http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:214 msgid "Enter parts of the resource name to find it" msgstr "Введите часть имени ресурса для его поиска" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "Эпоха" #: lib/Padre/PluginHandle.pm:23 #: lib/Padre/Document.pm:454 #: lib/Padre/Wx/Editor.pm:939 #: lib/Padre/Wx/Main.pm:5049 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/Sync.pm:87 #: lib/Padre/Wx/Dialog/Sync.pm:95 #: lib/Padre/Wx/Dialog/Sync.pm:108 #: lib/Padre/Wx/Dialog/Sync.pm:143 #: lib/Padre/Wx/Dialog/Sync.pm:154 #: lib/Padre/Wx/Dialog/Sync.pm:164 #: lib/Padre/Wx/Dialog/Sync.pm:182 #: lib/Padre/Wx/Dialog/Sync.pm:206 #: lib/Padre/Wx/Dialog/Sync.pm:230 #: lib/Padre/Wx/Dialog/Sync.pm:241 msgid "Error" msgstr "Ошибка" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "Ошибка при подключении к %s:%s: %s" #: lib/Padre/Wx/Main.pm:5431 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "Ошибка удаления %s:\n" "%s" #: lib/Padre/Wx/Main.pm:5642 msgid "Error loading perl filter dialog." msgstr "Ошибка при загрузке окна perl фильтра." #: lib/Padre/Wx/Main.pm:5613 msgid "Error loading regex editor." msgstr "Ошибка при загрузке редактора регулярных выражений." #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "Ошибка входа на %s:%s: %s" #: lib/Padre/Wx/Main.pm:6819 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "Ошибка возвращена утилитой фильтра:\n" "%s" #: lib/Padre/Wx/Main.pm:6801 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Ошибка при работе утилиты фильтра:\n" "%s" #: lib/Padre/PluginManager.pm:838 #, perl-format msgid "Error when calling menu for plug-in %s: %s" msgstr "Произошла ошибка при вызове меню плагина %s: %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:83 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "Произошла ошибка при вызове %s %s" #: lib/Padre/Document.pm:282 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "Ошибка при определении типа MIME.\n" "Возможно эта проблема связана с кодировкой\n" "Пытаетесь ли вы открыть бинарный файл?" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "Ошибка при загрузке Aspect, установлена ли программа?" #: lib/Padre/Document.pm:232 msgid "Error while opening file: no file object" msgstr "Ошибка при открытии файла: нет файлового объекта" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "Произошла ошибка при поиске POD" #: lib/Padre/Wx/VCS.pm:445 msgid "Error while trying to perform Padre action" msgstr "Ошибка при попытке выполнения действия Padre" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:91 #: lib/Padre/Wx/Dialog/OpenResource.pm:119 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Ошибка при попытке выполнить действие Padre: %s" #: lib/Padre/Wx/Dialog/PerlFilter.pm:328 msgid "Error:\n" msgstr "Ошибка:\n" #: lib/Padre/Document/Perl.pm:512 msgid "Error: " msgstr "Ошибка: " #: lib/Padre/Wx/Main.pm:6137 #: lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "Ошибка: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:47 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Escape (Esc)" msgstr "Escape (Esc)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:138 msgid "Escape characters" msgstr "Символы экранирования" #: lib/Padre/Wx/FBP/SLOC.pm:132 msgid "Estimated Project Years:" msgstr "Оценка Времени (лет) Проекта:" #: lib/Padre/Wx/FBP/Expression.pm:80 msgid "Evaluate" msgstr "Вычислить" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "Вычислить &выражение" #: lib/Padre/Wx/FBP/Expression.pm:29 msgid "Evaluate Expression" msgstr "Вычислить выражение" #: lib/Padre/Wx/FBP/Debugger.pm:424 msgid "" "Evaluate expression\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Same as print {$DB::OUT} expr in the current package. In particular, because this is just Perl's own print function.\n" "\n" "x [maxdepth] expr\n" "Evaluates its expression in list context and dumps out the result in a pretty-printed fashion. Nested data structures are printed out recursively," msgstr "" "Вычислить выражение\n" "\t$ -> p\n" "\t@ -> x\n" "\t% -> x\n" "\n" "p expr \n" "Тоже, что и вывод выражения {$DB::OUT} в текущем пакете. В частности потому, что это просто собственная функция Perl для печати.\n" "\n" "x [maxdepth] expr\n" "Вычисляет выражение с списочном контексте и выводит результат в удобо-читаемом формате. Вложенные структуры выводятся рекурсивно," #: lib/Padre/Wx/Main.pm:4822 msgid "Exist" msgstr "Существует" #: lib/Padre/Wx/FBP/Bookmarks.pm:63 msgid "Existing Bookmarks:" msgstr "Существующие закладки:" #: lib/Padre/Wx/FBP/FoundInFiles.pm:71 msgid "Expand All" msgstr "Развернуть все" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "Экспериментальная возможность. Введите '?' внизу страницы для получения списка комманд. Если это не сработает, претензии к szabgab.\n" "\n" #: lib/Padre/Wx/FBP/Debugger.pm:503 msgid "Expression To Evaluate" msgstr "Выражение для Вычисления" #: lib/Padre/Wx/Dialog/RegexEditor.pm:484 msgid "Extended (&x)" msgstr "Расширенный (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "Расширенные регулярные выражения позволяют свободное форматирование (пробелы игнорируются) и комментарии" #: lib/Padre/Wx/ActionLibrary.pm:1889 msgid "Extract &Subroutine..." msgstr "Извлечь &процедуру..." #: lib/Padre/Wx/ActionLibrary.pm:1902 msgid "Extract Subroutine" msgstr "Извлечь процедуру" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "FTP Пароль" #: lib/Padre/Wx/Main.pm:4942 #, perl-format msgid "Failed to create path '%s'" msgstr "Ошибка при создании пути '%s'" #: lib/Padre/Wx/Main.pm:1137 msgid "Failed to create server" msgstr "Ошибка при создании сервера" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "Ошибка при удаленнии POD" #: lib/Padre/PluginHandle.pm:402 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Ошибка отключения плагина '%s': %s" #: lib/Padre/PluginHandle.pm:272 #: lib/Padre/PluginHandle.pm:299 #: lib/Padre/PluginHandle.pm:322 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Ошибка подключения плагина '%s': %s" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "Ошибка при запуске процесса\n" #: lib/Padre/Wx/ActionLibrary.pm:1241 msgid "Failed to find any matches" msgstr "Не удалось найти каких-либо совпадений" #: lib/Padre/CPAN.pm:83 msgid "Failed to find your CPAN configuration" msgstr "Произошла ошибка при попытке открыть файл настроек CPAN" #: lib/Padre/PluginManager.pm:917 #: lib/Padre/PluginManager.pm:1012 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "Ошибка загрузки плагина '%s'\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "Ошибка при объединении фрагментов POD" #: lib/Padre/Wx/Main.pm:3058 #, perl-format msgid "Failed to start '%s' command" msgstr "Ошибка запуска команды '%s'" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Ложь" #: lib/Padre/Wx/Syntax.pm:65 msgid "Fatal Error" msgstr "Фатальная ошибка" #: lib/Padre/Wx/FBP/CPAN.pm:278 msgid "Favorite" msgstr "Предпочтимый" #: lib/Padre/Wx/FBP/About.pm:176 #: lib/Padre/Wx/FBP/About.pm:352 msgid "Fayland Lam" msgstr "Fayland Lam" #: lib/Padre/Wx/FBP/Preferences.pm:1904 msgid "Features" msgstr "Возможности" #: lib/Padre/Wx/Dialog/ModuleStarter.pm:112 #, perl-format msgid "Field %s was missing. Module not created." msgstr "Поле %s пропущено. Модуль не создан." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:363 #: lib/Padre/Wx/Dialog/WindowList.pm:223 #: lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "Файл" #: lib/Padre/Wx/Menu/File.pm:404 #, perl-format msgid "File %s not found." msgstr "Файл %s не найден." #: lib/Padre/Wx/FBP/Preferences.pm:1907 msgid "File Handling" msgstr "Обработка Файла" #: lib/Padre/Wx/FBP/Preferences.pm:376 msgid "File Outline" msgstr "Схема Файла" #: lib/Padre/Wx/FBP/Document.pm:210 msgid "File Size (Bytes)" msgstr "Размер Файла (Байты)" #: lib/Padre/Wx/FBP/FindInFiles.pm:106 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:124 msgid "File Types:" msgstr "Типы файла:" #: lib/Padre/Wx/Main.pm:4928 msgid "File already exists" msgstr "Файл уже существует" #: lib/Padre/Wx/Main.pm:4821 msgid "File already exists. Overwrite it?" msgstr "Файл уже существует. Перезаписать?" #: lib/Padre/Wx/Main.pm:5038 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Со времени последнего сохранения файл на диске изменился. Перезаписать?" #: lib/Padre/Wx/Main.pm:5133 msgid "File changed. Do you want to save it?" msgstr "Файл изменен. Сохранить?" #: lib/Padre/Wx/ActionLibrary.pm:308 #: lib/Padre/Wx/ActionLibrary.pm:328 msgid "File is not in a project" msgstr "Файл не в проекте" #: lib/Padre/Wx/Main.pm:4477 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "Имя файла %s содержит * или ?, которые являются специальными на большинстве компьютеров. Пропустить?" #: lib/Padre/Wx/Main.pm:4497 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "Имя файла %s не найдено на диске. Пропустить?" #: lib/Padre/Wx/Main.pm:5039 msgid "File not in sync" msgstr "Файл не синхронизирован" #: lib/Padre/Wx/Main.pm:5406 msgid "File was never saved and has no filename - can't delete from disk" msgstr "Файл никогда не сохранялся и не имеет имени - невозможно удалить с диска" #: lib/Padre/Wx/FBP/Patch.pm:138 msgid "File-1" msgstr "Файл-1" #: lib/Padre/Wx/FBP/Patch.pm:161 msgid "File-2" msgstr "Файл-2" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Файл/Каталог" #: lib/Padre/Wx/Notebook.pm:70 msgid "Files" msgstr "Файлы" #: lib/Padre/Wx/FBP/SLOC.pm:55 msgid "Files:" msgstr "Файлы:" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Команда фильтра:" #: lib/Padre/Wx/ActionLibrary.pm:1147 msgid "Filter through &Perl..." msgstr "Фильтровать через &Perl..." #: lib/Padre/Wx/ActionLibrary.pm:1138 msgid "Filter through E&xternal Tool..." msgstr "Фильтр через в&нешнюю утилиту..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Фильтровать через утилиту" #: lib/Padre/Wx/FBP/Snippet.pm:38 msgid "Filter:" msgstr "Фильтр:" #: lib/Padre/Wx/ActionLibrary.pm:1139 msgid "Filters the selection (or the whole document) through any external command." msgstr "Фильтровать выделение (или целый документ) через внешнюю команду." #: lib/Padre/Wx/FBP/Find.pm:30 msgid "Find" msgstr "Найти" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "Найти &всё" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Find &Method Declaration" msgstr "Найти объявление &метода" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Find &Next" msgstr "Найти &следующее" #: lib/Padre/Wx/ActionLibrary.pm:1755 msgid "Find &Variable Declaration" msgstr "Найти объявление &переменной" #: lib/Padre/Wx/ActionLibrary.pm:1743 msgid "Find Unmatched &Brace" msgstr "Найти непарные &скобки" #: lib/Padre/Wx/ActionLibrary.pm:1263 msgid "Find in Fi&les..." msgstr "Поиск в &файлах..." #: lib/Padre/Wx/FBP/Preferences.pm:470 #: lib/Padre/Wx/FBP/FindInFiles.pm:32 #: lib/Padre/Wx/Panel/FoundInFiles.pm:438 msgid "Find in Files" msgstr "Поиск в файлах" #: lib/Padre/Wx/ActionLibrary.pm:1252 msgid "Find text and replace it" msgstr "Найти текст и заменить его" #: lib/Padre/Wx/ActionLibrary.pm:1181 msgid "Find text or regular expressions using a traditional dialog" msgstr "Найти текст или регулярное выражение, используя традиционный диалог" #: lib/Padre/Wx/ActionLibrary.pm:1768 msgid "Find where the selected function was defined and put the focus there." msgstr "Найти, где выбранная функция была определена и установить там фокус." #: lib/Padre/Wx/ActionLibrary.pm:1756 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "Найти, где выбранная переменная была объявлена используя \"my\" и установить там фокус." #: lib/Padre/Wx/FBP/FindFast.pm:55 msgid "Find:" msgstr "Найти:" #: lib/Padre/Document/Perl.pm:950 msgid "First character of selection does not seem to point at a token." msgstr "Первый символ выделения не указывает на знак." #: lib/Padre/Wx/Editor.pm:1904 msgid "First character of selection must be a non-word character to align" msgstr "Первый символ выделения для выравнивания должен быть не буквой" #: lib/Padre/Wx/ActionLibrary.pm:1532 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "Свернуть все блоки, которые могут быть свёрнуты (необходимо включение функции сворачивания кода)" #: lib/Padre/Wx/Menu/View.pm:178 msgid "Font Si&ze" msgstr "Размер шри&фта" #: lib/Padre/Wx/ActionLibrary.pm:453 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "Для нового документа пытаться подобрать имя, основываясь на содержимом файла и предлагать сохранить его." #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Form feed" msgstr "Перенос строки" #: lib/Padre/Wx/Syntax.pm:472 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "Найдено %d ошибок в %s в течении %3.2f секунд." #: lib/Padre/Wx/Syntax.pm:478 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "Найдено %d ошибок в течении %3.2f секунд." #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "Найдено %s тем помощи\n" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "Найдено %s незагруженных модулей" #: lib/Padre/Locale.pm:283 #: lib/Padre/Wx/FBP/About.pm:409 msgid "French" msgstr "Французский" #: lib/Padre/Locale.pm:269 msgid "French (Canada)" msgstr "Французский (Канада)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Друг" #: lib/Padre/Wx/ActionLibrary.pm:1677 msgid "Full Sc&reen" msgstr "Полный &экран" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "Функция" #: lib/Padre/Wx/FBP/Preferences.pm:56 #: lib/Padre/Wx/FBP/Preferences.pm:361 msgid "Function List" msgstr "Список Функций" #: lib/Padre/Wx/FunctionList.pm:148 msgid "Functions" msgstr "Функции" #: lib/Padre/Config.pm:1932 msgid "GPL 2 or later" msgstr "GPL 2 или позднее" #: lib/Padre/Wx/FBP/About.pm:116 msgid "Gabor Szabo" msgstr "Gabor Szabo" #: lib/Padre/Wx/FBP/About.pm:302 #: lib/Padre/Wx/FBP/About.pm:595 msgid "Gabriel Vieira" msgstr "Gabriel Vieira" #: lib/Padre/Locale.pm:187 #: lib/Padre/Wx/FBP/About.pm:430 msgid "German" msgstr "Немецкий" #: lib/Padre/Wx/Dialog/RegexEditor.pm:489 msgid "Global (&g)" msgstr "Глобальный (&g)" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr "Перейти" #: lib/Padre/Wx/ActionLibrary.pm:2459 msgid "Go to &Command Line Window" msgstr "Перейти в окно &коммандной строки" #: lib/Padre/Wx/ActionLibrary.pm:2414 msgid "Go to &Functions Window" msgstr "Перейти к окну &функций" #: lib/Padre/Wx/ActionLibrary.pm:2470 msgid "Go to &Main Window" msgstr "Перейти в &главное окно" #: lib/Padre/Wx/ActionLibrary.pm:1319 msgid "Go to Bookmar&k..." msgstr "Перейти к заклад&ке..." #: lib/Padre/Wx/ActionLibrary.pm:2403 msgid "Go to CPAN E&xplorer Window" msgstr "Перейти к окну О&бозревателя CPAN" #: lib/Padre/Wx/ActionLibrary.pm:2426 msgid "Go to O&utline Window" msgstr "Перейти к окну схемы" #: lib/Padre/Wx/ActionLibrary.pm:2437 msgid "Go to Ou&tput Window" msgstr "Перейти к окну &вывода" #: lib/Padre/Wx/ActionLibrary.pm:2448 msgid "Go to S&yntax Check Window" msgstr "Перейти к окну проверки с&интаксиса" #: lib/Padre/Wx/FBP/Preferences.pm:908 msgid "Graphical Debugger Tool" msgstr "Графическая Отладочная Утилита" #: lib/Padre/Wx/Dialog/RegexEditor.pm:123 msgid "Grouping constructs" msgstr "Группирующие конструкции" #: lib/Padre/Wx/FBP/Preferences.pm:1001 msgid "Guess from Current Document" msgstr "Определить из текущего документа" #: lib/Padre/Wx/FBP/About.pm:493 msgid "Gyorgy Pasztor" msgstr "Gyorgy Pasztor" #: lib/Padre/Locale.pm:293 #: lib/Padre/Wx/FBP/About.pm:457 msgid "Hebrew" msgstr "Иврит" #: lib/Padre/Wx/FBP/About.pm:194 #: lib/Padre/Wx/FBP/About.pm:439 msgid "Heiko Jansen" msgstr "Heiko Jansen" #: lib/Padre/Wx/Browser.pm:63 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:373 msgid "Help" msgstr "Справка" #: lib/Padre/Wx/Dialog/HelpSearch.pm:41 #: lib/Padre/Wx/Dialog/HelpSearch.pm:98 msgid "Help Search" msgstr "Поиск в помощи" #: lib/Padre/Wx/ActionLibrary.pm:2607 msgid "Help by translating Padre to your local language" msgstr "Помочь переводом Padre на ваш родной язык" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "Помощь не найдена." #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Hex character" msgstr "Шестнадцатиричные символы" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Hexadecimal digits" msgstr "Шестнадцатеричные цифры" #: lib/Padre/Wx/ActionLibrary.pm:1577 msgid "Highlight the line where the cursor is" msgstr "Подсветка строки, где находится курсор" #: lib/Padre/Wx/Directory.pm:595 msgid "Hit unfixed bug in directory browser, disabling it" msgstr "Произошла непоправимая ошибка в обозревателе директорий, отключаем его" #: lib/Padre/Wx/Dialog/Preferences.pm:42 msgid "Home" msgstr "Home" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "Хост" #: lib/Padre/Wx/Main.pm:6316 msgid "How many spaces for each tab:" msgstr "Сколько пробелов в каждом символе табуляции:" #: lib/Padre/Locale.pm:303 #: lib/Padre/Wx/FBP/About.pm:484 msgid "Hungarian" msgstr "Венгерский" #: lib/Padre/Wx/ActionLibrary.pm:1359 msgid "If activated, do not allow moving around some of the windows" msgstr "Если выбран, не позволяет перемещать некоторые окна" #: lib/Padre/Wx/Dialog/RegexEditor.pm:472 msgid "Ignore case (&i)" msgstr "Игнорировать регистр (&i)" #: lib/Padre/Wx/VCS.pm:250 #: lib/Padre/Wx/FBP/VCS.pm:205 msgid "Ignored" msgstr "Игнорируется" #: lib/Padre/Wx/FBP/Preferences.pm:1460 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "Включить каталог: -I\n" "Включить taint проверки: -T\n" "Включить множество полезных предупреждений: -w\n" "Включить все предупреждения: -W\n" "Отключить все предупреждения: -X" #: lib/Padre/PluginHandle.pm:26 msgid "Incompatible" msgstr "Несовместим" #: lib/Padre/Config.pm:1090 msgid "Indent Deeply" msgstr "Отступ дальше" #: lib/Padre/Wx/FBP/Preferences.pm:1017 msgid "Indent Detection" msgstr "Определять отступы" #: lib/Padre/Wx/FBP/Preferences.pm:940 msgid "Indent Settings" msgstr "Настройки отступов" #: lib/Padre/Wx/FBP/Preferences.pm:965 msgid "Indent Spaces:" msgstr "Пробелов в отступе:" #: lib/Padre/Wx/FBP/Preferences.pm:1059 msgid "Indent on Newline:" msgstr "Отступ на новой строке:" #: lib/Padre/Config.pm:1089 msgid "Indent to Same Depth" msgstr "Отступ на ту же величину" #: lib/Padre/Wx/FBP/Preferences.pm:1905 msgid "Indentation" msgstr "Показывать отступы" #: lib/Padre/Wx/FBP/About.pm:851 msgid "Information" msgstr "Иноформация" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "Ввод/вывод:" #: lib/Padre/Wx/FBP/Snippet.pm:118 #: lib/Padre/Wx/FBP/Special.pm:78 #: lib/Padre/Wx/Menu/Edit.pm:119 #: lib/Padre/Wx/Dialog/Preferences.pm:40 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:270 msgid "Insert" msgstr "Вст&авить" #: lib/Padre/Wx/FBP/Snippet.pm:29 msgid "Insert Snippet" msgstr "Вставить фрагмент:" #: lib/Padre/Wx/FBP/Special.pm:29 msgid "Insert Special Values" msgstr "Ввести специальное значение" #: lib/Padre/Wx/FBP/CPAN.pm:207 msgid "Insert Synopsis" msgstr "Вставить резюме" #: lib/Padre/Wx/FBP/CPAN.pm:239 msgid "Install" msgstr "Установить" #: lib/Padre/Wx/ActionLibrary.pm:2344 msgid "Install &Remote Distribution" msgstr "Установить &удаленный дистрибутив" #: lib/Padre/Wx/ActionLibrary.pm:2334 msgid "Install L&ocal Distribution" msgstr "Установить л&окальный дистрибутив" #: lib/Padre/CPAN.pm:128 msgid "Install Local Distribution" msgstr "Установить локальный дистрибутив" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Целое" #: lib/Padre/Wx/Syntax.pm:71 msgid "Internal Error" msgstr "Внутренняя ошибка" #: lib/Padre/Wx/Main.pm:6138 msgid "Internal error" msgstr "Внутренняя ошибка" #: lib/Padre/Wx/ActionLibrary.pm:1916 msgid "Introduce &Temporary Variable..." msgstr "Ввести &временную переменную..." #: lib/Padre/Wx/ActionLibrary.pm:1925 msgid "Introduce Temporary Variable" msgstr "Ввести временную переменную" #: lib/Padre/Locale.pm:317 #: lib/Padre/Wx/FBP/About.pm:499 msgid "Italian" msgstr "Итальянский" #: lib/Padre/Wx/FBP/Preferences.pm:105 msgid "Item Regular Expression:" msgstr "Пункт Регулярное выражение:" #: lib/Padre/Locale.pm:327 #: lib/Padre/Wx/FBP/About.pm:514 msgid "Japanese" msgstr "Японский" #: lib/Padre/Wx/Main.pm:4420 msgid "JavaScript Files" msgstr "Файлы JavaScript" #: lib/Padre/Wx/FBP/About.pm:146 #: lib/Padre/Wx/FBP/About.pm:418 msgid "Jerome Quelin" msgstr "Jerome Quelin" #: lib/Padre/Wx/ActionLibrary.pm:909 msgid "Join the next line to the end of the current line." msgstr "Присоеденить следующую линию с конца текущей строки." #: lib/Padre/Wx/ActionLibrary.pm:1296 msgid "Jump to a specific line number or character position" msgstr "Переместиться к указанному номеру строки или позиции символа " #: lib/Padre/Wx/ActionLibrary.pm:805 msgid "Jump to the code that has been changed" msgstr "Перейти к коду, который был изменён" #: lib/Padre/Wx/ActionLibrary.pm:794 msgid "Jump to the code that triggered the next error" msgstr "Перейти к коду, где возникла следующая ошибка" #: lib/Padre/Wx/ActionLibrary.pm:885 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Перейти к парной открывающей или закрывающей скобке: { }, ( ), [ ], < >" #: lib/Padre/Wx/FBP/About.pm:278 msgid "Kaare Rasmussen" msgstr "Kaare Rasmussen" #: lib/Padre/Wx/FBP/About.pm:290 msgid "Kartik Thakore" msgstr "Kartik Thakore" #: lib/Padre/Wx/FBP/About.pm:248 #: lib/Padre/Wx/FBP/About.pm:538 msgid "Keedi Kim" msgstr "Keedi Kim" #: lib/Padre/Wx/FBP/About.pm:242 #: lib/Padre/Wx/FBP/About.pm:523 msgid "Kenichi Ishigaki" msgstr "Kenichi Ishigaki" #: lib/Padre/Wx/Dialog/About.pm:144 msgid "Kernel" msgstr "Ядро" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Kevin Dawson" msgstr "Kevin Dawson" #: lib/Padre/Wx/FBP/Preferences.pm:1906 msgid "Key Bindings" msgstr "Привязка клавиш" #: lib/Padre/Wx/FBP/About.pm:553 msgid "Kjetil Skotheim" msgstr "Kjetil Skotheim" #: lib/Padre/Locale.pm:465 msgid "Klingon" msgstr "Клингонский" #: lib/Padre/Locale.pm:337 #: lib/Padre/Wx/FBP/About.pm:529 msgid "Korean" msgstr "Корейский" #: lib/Padre/Wx/FBP/Debugger.pm:296 msgid "" "L [abw]\n" "List (default all) actions, breakpoints and watch expressions" msgstr "" "L [abw]\n" "Показать (по-умолчанию все) действия, точки останова и наблюдаемые переменные" #: lib/Padre/Config.pm:1933 msgid "LGPL 2.1 or later" msgstr "LGPL 2.1 или позднее" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Первая метка" #: lib/Padre/Wx/Menu/View.pm:210 msgid "Lan&guage" msgstr "Я&зык" #: lib/Padre/Wx/FBP/Preferences.pm:1908 msgid "Language - Perl 5" msgstr "Язык - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:1909 msgid "Language - Perl 6" msgstr "Язык - Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1365 #: lib/Padre/Wx/FBP/Preferences.pm:1488 msgid "Language Integration" msgstr "Языковая Интеграция" #: lib/Padre/Wx/Dialog/SessionManager2.pm:30 msgid "Last Updated" msgstr "Последнее обновление" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "Дата обновления" #: lib/Padre/Wx/ActionLibrary.pm:2124 msgid "Launch Debugger" msgstr "Запустить Отладчик" #: lib/Padre/Wx/Dialog/Preferences.pm:38 msgid "Left" msgstr "Влево" #: lib/Padre/Config.pm:136 msgid "Left Panel" msgstr "Левая Панель" #: lib/Padre/Wx/FBP/Diff.pm:72 msgid "Left side" msgstr "Левая сторона" #: lib/Padre/Wx/FBP/ModuleStarter.pm:99 msgid "License:" msgstr "Лицензия:" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "То же, что и нажатие ENTER где-либо в строке, но использовать текущую позицию как отступ для новой строки." #: lib/Padre/Wx/Syntax.pm:507 #, perl-format msgid "Line %d: (%s) %s" msgstr "Строка %d: (%s) %s" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "Строка %d: %s" #: lib/Padre/Wx/Dialog/Goto.pm:342 msgid "Line number" msgstr "Номер строки" #: lib/Padre/Wx/FBP/Document.pm:138 #: lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "Строки" #: lib/Padre/Wx/Dialog/WindowList.pm:210 msgid "List of open files" msgstr "Список открытых файлов" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Список сессий" #: lib/Padre/Wx/ActionLibrary.pm:477 msgid "List the files that match the current selection and let the user pick one to open" msgstr "Показать файлы, который совпадают с текущим выделением и позволить пользователю выбрать один для открытия" #: lib/Padre/PluginHandle.pm:25 msgid "Loaded" msgstr "Загружен" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "Загружено %s модулей" #: lib/Padre/Wx/ActionLibrary.pm:1358 msgid "Loc&k User Interface" msgstr "Зафи&ксировать пользовательский интерфейс" #: lib/Padre/Wx/FBP/Preferences.pm:1261 msgid "Local file update poll interval in seconds (0 to disable)" msgstr "Интервал времени обновления локальный файлов в секундах (0 для отключения)" #: lib/Padre/Wx/FBP/Sync.pm:58 msgid "Logged out" msgstr "Вышли" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "Вхожу на FTP сервер как %s..." #: lib/Padre/Wx/FBP/Sync.pm:104 msgid "Login" msgstr "Логин" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Long hex character" msgstr "Длинный шестнадцатиричный символ" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Ищу Net::FTP..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Lowercase characters" msgstr "Символы нижнего регистра" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Lowercase next character" msgstr "Перевести следующий символ в нижний регистр" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Lowercase till \\E" msgstr "Перевести в нижний регистр до \\E" #: lib/Padre/Wx/FBP/Debugger.pm:336 msgid "" "M\n" "Display all loaded modules and their versions." msgstr "" "M\n" "Показать все загруженные модули и их версии." #: lib/Padre/Wx/FBP/Document.pm:79 msgid "MIME Type" msgstr "Тип MIME" #: lib/Padre/Config.pm:1934 msgid "MIT License" msgstr "MIT лицензия" #: lib/Padre/Wx/ActionLibrary.pm:1642 msgid "Make the letters bigger in the editor window" msgstr "Сделать буквы больше в окне редактора" #: lib/Padre/Wx/ActionLibrary.pm:1652 msgid "Make the letters smaller in the editor window" msgstr "Сделать буквы меньше в окне редактора" #: lib/Padre/Wx/FBP/About.pm:388 msgid "Marcela Maslanova" msgstr "Marcela Maslanova" #: lib/Padre/Wx/FBP/About.pm:574 msgid "Marek Roszkowski" msgstr "Marek Roszkowski" #: lib/Padre/Wx/ActionLibrary.pm:659 msgid "Mark Selection &End" msgstr "Пометить &конец выделения" #: lib/Padre/Wx/ActionLibrary.pm:647 msgid "Mark Selection &Start" msgstr "Пометить &начало выделения" #: lib/Padre/Wx/ActionLibrary.pm:660 msgid "Mark the place where the selection should end" msgstr "Пометить место где выделение должно закончиться" #: lib/Padre/Wx/ActionLibrary.pm:648 msgid "Mark the place where the selection should start" msgstr "Пометить место где выделение должно начаться" #: lib/Padre/Wx/Dialog/RegexEditor.pm:102 msgid "Match 0 or more times" msgstr "Совпадает 0 или более раз" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or 0 times" msgstr "Совпадает 1 или 0 раз" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 1 or more times" msgstr "Совпадает 1 и более раз" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least m but not more than n times" msgstr "Совпадает по крайней мере m, но не более n раз" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match at least n times" msgstr "Совпадает по крайней мере n раз" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match exactly m times" msgstr "Совпадает точно m раз" #: lib/Padre/Wx/Dialog/RegexEditor.pm:677 #, perl-format msgid "Match failure in %s: %s" msgstr "Ошибка поиска в %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:688 #, perl-format msgid "Match warning in %s: %s" msgstr "Предупреждение при поиске в %s: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:697 #, perl-format msgid "Match with 0 width at character %s" msgstr "Совпало с нулевой шириной у символа %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:235 msgid "Matched text:" msgstr "Совпавший текст:" #: lib/Padre/Wx/FBP/About.pm:373 msgid "Matthew Lien" msgstr "Matthew Lien" #: lib/Padre/Wx/FBP/About.pm:254 msgid "Max Maischein" msgstr "Max Maischein" #: lib/Padre/Wx/FBP/Preferences.pm:227 msgid "Maximum number of suggestions" msgstr "Макс. число предложений" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "Сообщение" #: lib/Padre/Wx/FBP/CPAN.pm:223 msgid "MetaCPAN..." msgstr "MetaCPAN..." #: lib/Padre/Wx/Outline.pm:364 msgid "Methods" msgstr "Методы" #: lib/Padre/Wx/FBP/Preferences.pm:245 msgid "Minimum characters for autocomplete" msgstr "Мин. число символов для автодополнения" #: lib/Padre/Wx/FBP/Preferences.pm:209 msgid "Minimum length of suggestions" msgstr "Мин. длина предложений" #: lib/Padre/Wx/FBP/Preferences.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:111 msgid "Miscellaneous" msgstr "Разное" #: lib/Padre/Wx/VCS.pm:252 msgid "Missing" msgstr "Пропущено" #: lib/Padre/Wx/VCS.pm:248 #: lib/Padre/Wx/VCS.pm:259 msgid "Modified" msgstr "Изменён" #: lib/Padre/Wx/FBP/ModuleStarter.pm:38 #: lib/Padre/Document/Perl/Starter.pm:139 msgid "Module Name:" msgstr "Название модуля:" #: lib/Padre/Wx/FBP/ModuleStarter.pm:29 msgid "Module Starter" msgstr "Создатель Модуля" #: lib/Padre/Wx/Outline.pm:363 msgid "Modules" msgstr "Модули" #: lib/Padre/Wx/Dialog/RegexEditor.pm:480 msgid "Multi-line (&m)" msgstr "Несколько строк (&m)" #: lib/Padre/Wx/ActionLibrary.pm:2269 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "Мой плагин - это плагин, где разработчики могут расширять их инсталляции Padre" #: lib/Padre/Plugin/My.pm:28 msgid "My Plugin" msgstr "Мой Плагин" #: lib/Padre/Wx/FBP/SLOC.pm:120 msgid "Mythical Man Months:" msgstr "Мифические Человеко-Месяцы:" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "ИМЯ" #: lib/Padre/Wx/Dialog/SessionManager2.pm:28 #: lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "Имя" #: lib/Padre/Wx/ActionLibrary.pm:1901 msgid "Name for the new subroutine" msgstr "Имя новой процедуры" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "Но&вый" #: lib/Padre/Wx/Main.pm:6644 msgid "Need to select text in order to translate numbers" msgstr "Необходимо выбрать текст, чтобы транслировать в число" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Negative lookahead assertion" msgstr "Негативное проверка впереди" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Negative lookbehind assertion" msgstr "Негативная проверка позади" #: lib/Padre/Wx/FBP/Preferences.pm:556 msgid "New File Creation" msgstr "Создание Нового Файла" #: lib/Padre/Wx/Directory/TreeCtrl.pm:381 msgid "New Folder" msgstr "Новый каталог" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "Обзор новой установки" #: lib/Padre/Document/Perl/Starter.pm:140 msgid "New Module" msgstr "Новый модуль" #: lib/Padre/Document/Perl.pm:824 msgid "New name" msgstr "Новое имя" #: lib/Padre/PluginManager.pm:393 msgid "New plug-ins detected" msgstr "Обнаружены новые плагины" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Newline" msgstr "Новая строка" #: lib/Padre/Wx/FBP/Document.pm:103 msgid "Newline Type" msgstr "Тип перевода строки" #: lib/Padre/Wx/Diff2.pm:29 #: lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "Следующее отличие" #: lib/Padre/Config.pm:1088 msgid "No Autoindent" msgstr "Без автоотступа" #: lib/Padre/Wx/Main.pm:2787 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Ни Build.PL, ни Makefile.PL, ни dist.ini не найдено" #: lib/Padre/Wx/Dialog/HelpSearch.pm:95 msgid "No Help found" msgstr "Не найдено помощи" #: lib/Padre/Wx/Diff.pm:260 msgid "No changes found" msgstr "Не найдено изменений" #: lib/Padre/Document/Perl.pm:654 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Не найдено объявление указаной переменной (лексической?)" #: lib/Padre/Document/Perl.pm:903 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Не найдено объявление указаной переменной (лексической?)." #: lib/Padre/Wx/Main.pm:2754 #: lib/Padre/Wx/Main.pm:2809 #: lib/Padre/Wx/Main.pm:2860 msgid "No document open" msgstr "Нет открытых документов" #: lib/Padre/Task/CPAN.pm:183 #, perl-format msgid "No documentation for '%s'" msgstr "Нет документации для '%s'" #: lib/Padre/Document/Perl.pm:514 msgid "No errors found." msgstr "Ошибок не найдено." #: lib/Padre/Wx/Syntax.pm:454 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "Не найдено ошибок и предупреждений в %s за %3.2f секунд." #: lib/Padre/Wx/Syntax.pm:459 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "Не найдено ошибок и предупреждений за %3.2f секунд." #: lib/Padre/Wx/Main.pm:3101 msgid "No execution mode was defined for this document type" msgstr "Для этого документа не установлен режим исполнения" #: lib/Padre/PluginManager.pm:892 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Файл без имени" #: lib/Padre/Wx/Dialog/RegexEditor.pm:716 msgid "No match" msgstr "Нет совпадений" #: lib/Padre/Wx/Dialog/Find.pm:63 #: lib/Padre/Wx/Dialog/Replace.pm:135 #: lib/Padre/Wx/Dialog/Replace.pm:158 #, perl-format msgid "No matches found for \"%s\"." msgstr "Не найдено совпадений для \"%s\"." #: lib/Padre/Wx/Main.pm:3083 msgid "No open document" msgstr "Нет открытых документов" #: lib/Padre/Config.pm:679 msgid "No open files" msgstr "Нет открытых файлов" #: lib/Padre/Wx/ReplaceInFiles.pm:258 #: lib/Padre/Wx/Panel/FoundInFiles.pm:307 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "Не найдено результатов для '%s' внутри '%s'" #: lib/Padre/Wx/Main.pm:933 #, perl-format msgid "No such session %s" msgstr "Нет такой сессии %s" #: lib/Padre/Wx/ActionLibrary.pm:843 msgid "No suggestions" msgstr "Нет предложений" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "Non-capturing group" msgstr "Незахватывающая группа" #: lib/Padre/Wx/Dialog/Preferences.pm:32 msgid "None" msgstr "Нет" #: lib/Padre/Wx/VCS.pm:245 #: lib/Padre/Wx/FBP/VCS.pm:173 msgid "Normal" msgstr "Нормальный" #: lib/Padre/Locale.pm:371 #: lib/Padre/Wx/FBP/About.pm:544 msgid "Norwegian" msgstr "Норвежский" #: lib/Padre/Wx/Panel/Debugger.pm:261 msgid "Not a Perl document" msgstr "Не Perl-документ" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "Не положительное число." #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "Not a word boundary" msgstr "Не граница слова" #: lib/Padre/Wx/Main.pm:4254 msgid "Nothing selected. Enter what should be opened:" msgstr "Ничего не выбрано. Укажите, что нужно открыть:" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "Сейчас" #: lib/Padre/Wx/FBP/SLOC.pm:144 msgid "Number of Developers:" msgstr "Число Разработчиков:" #: lib/Padre/Wx/Menu/File.pm:94 msgid "O&pen" msgstr "О&ткрыть" #: lib/Padre/Wx/FBP/ModuleStarter.pm:138 #: lib/Padre/Wx/FBP/Bookmarks.pm:86 #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "OK" #: lib/Padre/Wx/VCS.pm:253 msgid "Obstructed" msgstr "Затруднено" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Octal character" msgstr "Восьмиричный символ" #: lib/Padre/Wx/ActionLibrary.pm:874 msgid "Offer completions to the current string. See Preferences" msgstr "Предложить завершения для текущей строки. Смотрите Настройки" #: lib/Padre/Wx/FBP/About.pm:260 #: lib/Padre/Wx/FBP/About.pm:424 msgid "Olivier Mengue" msgstr "Olivier Mengue" #: lib/Padre/Wx/FBP/About.pm:466 msgid "Omer Zak" msgstr "Omer Zak" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Только один фрагмент POD, не буду пытаться объединить" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Open &CPAN Config File" msgstr "Открыть файл настроек &CPAN" #: lib/Padre/Wx/Outline.pm:144 msgid "Open &Documentation" msgstr "Открыть &документацию" #: lib/Padre/Wx/ActionLibrary.pm:264 msgid "Open &Example" msgstr "Открыть &пример" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Open &Last Closed File" msgstr "Открыть &последний закрытый файл" #: lib/Padre/Wx/ActionLibrary.pm:1333 msgid "Open &Resources..." msgstr "Открыть &Ресурсы..." #: lib/Padre/Wx/ActionLibrary.pm:476 msgid "Open &Selection" msgstr "Открыть &выделенное" #: lib/Padre/Wx/ActionLibrary.pm:219 msgid "Open &URL..." msgstr "Открыть &URL..." #: lib/Padre/Wx/ActionLibrary.pm:2355 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "Открыть CPAN::MyConfig.pm для ручного редактирования экспертом" #: lib/Padre/Wx/FBP/Preferences.pm:1314 msgid "Open FTP Files" msgstr "Открыть FTP файлы" #: lib/Padre/Wx/Main.pm:4444 #: lib/Padre/Wx/Directory/TreeCtrl.pm:302 msgid "Open File" msgstr "Открыть файл" #: lib/Padre/Wx/FBP/Preferences.pm:525 msgid "Open Files:" msgstr "Открыть Файлы:" #: lib/Padre/Wx/FBP/Preferences.pm:1279 msgid "Open HTTP Files" msgstr "Открыть HTTP файлы" #: lib/Padre/Wx/Dialog/OpenResource.pm:33 #: lib/Padre/Wx/Dialog/OpenResource.pm:79 msgid "Open Resources" msgstr "Открыть Ресурсы" #: lib/Padre/Wx/ActionLibrary.pm:487 msgid "Open S&ession..." msgstr "Открыть с&ессию..." #: lib/Padre/Wx/Main.pm:4302 msgid "Open Selection" msgstr "Открыть выделенное" #: lib/Padre/Wx/FBP/SessionManager.pm:86 msgid "Open Session" msgstr "Открыть Сессию" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "Открыть URL" #: lib/Padre/Wx/Main.pm:4480 #: lib/Padre/Wx/Main.pm:4500 msgid "Open Warning" msgstr "Предупреждение при открытии" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 module" msgstr "Открыть документ с каркасом модуля Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "Открыть документ с каркасом скрипта Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Откруть документ с шаблоном тестового скрипта Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:195 msgid "Open a document with a skeleton Perl 6 script" msgstr "Открыть документ с каркасом скрипта Perl 6" #: lib/Padre/Wx/ActionLibrary.pm:220 msgid "Open a file from a remote location" msgstr "Открыть файл из внешнего источника" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "Открыть новый пустой документ" #: lib/Padre/Wx/ActionLibrary.pm:537 msgid "Open all the files listed in the recent files list" msgstr "Открыть все файлы, указанные в списке недавних файлов" #: lib/Padre/Wx/ActionLibrary.pm:2260 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "Открыть браузер для поиска в CPAN, показывающего пакеты Padre::Plugin" #: lib/Padre/Wx/Menu/File.pm:405 msgid "Open cancelled" msgstr "Открытие отменено" #: lib/Padre/PluginManager.pm:966 #: lib/Padre/Wx/Main.pm:6030 msgid "Open file" msgstr "Открыть файл" #: lib/Padre/Wx/ActionLibrary.pm:254 msgid "Open in &Command Line" msgstr "Открыть в &командной строке" #: lib/Padre/Wx/ActionLibrary.pm:230 msgid "Open in File &Browser" msgstr "Открыть в программе &просмотра файлов" #: lib/Padre/Wx/Directory/TreeCtrl.pm:253 #: lib/Padre/Wx/Directory/TreeCtrl.pm:312 msgid "Open in File Browser" msgstr "Открыть в программе просмотра файлов" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Open interesting and helpful Padre Wiki in your default web browser" msgstr "Открыть интересный и полезный веб-сайт Padre Wiki в вашем веб-браузере по умолчанию" #: lib/Padre/Wx/ActionLibrary.pm:2579 msgid "Open interesting and helpful Perl websites in your default web browser" msgstr "Открыть интересные и полезные Perl веб-сайты в вашем веб-браузере по умолчанию" #: lib/Padre/Wx/Main.pm:4255 msgid "Open selection" msgstr "Открыть выделенное" #: lib/Padre/Config.pm:680 msgid "Open session" msgstr "Открыть сессию" #: lib/Padre/Wx/ActionLibrary.pm:2530 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "Открыть чат поддержки Padre в вашем веб-браузере и начать разговор с другими, кто может помочь вам с вашими проблемами" #: lib/Padre/Wx/ActionLibrary.pm:2542 #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "Открыть чат поддержки Perl в вашем веб-браузере и начать разговор с другими, кто может помочь вам с вашими проблемами" #: lib/Padre/Wx/ActionLibrary.pm:2566 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "Открыть чат поддержки Perl/Win32 в вашем веб-браузере и начать разговор с другими, кто может помочь вам с вашими проблемами" #: lib/Padre/Wx/ActionLibrary.pm:2224 msgid "Open the regular expression editing window" msgstr "Открыть окно редактора регулярных выражений" #: lib/Padre/Wx/ActionLibrary.pm:2234 msgid "Open the selected text in the Regex Editor" msgstr "Открыть выбранный текст в редакторе регулярных выражений" #: lib/Padre/Wx/ActionLibrary.pm:240 msgid "Open with Default &System Editor" msgstr "Открыть &системным редактором по умолчанию" #: lib/Padre/Wx/Main.pm:3212 #, perl-format msgid "Opening session %s..." msgstr "Открыть сессию %s..." #: lib/Padre/Wx/ActionLibrary.pm:255 msgid "Opens a command line using the current document folder" msgstr "Открыть коммандную строку в текущем каталоге документа" #: lib/Padre/Wx/ActionLibrary.pm:231 msgid "Opens the current document using the file browser" msgstr "Открыть текущий документ в программе просмотра файлов" #: lib/Padre/Wx/ActionLibrary.pm:243 msgid "Opens the file with the default system editor" msgstr "Открыть файл редактором по умолчанию" #: lib/Padre/Wx/ActionLibrary.pm:277 msgid "Opens the last closed file" msgstr "Открыть последний закрытый файл" #: lib/Padre/Wx/FBP/Preferences.pm:846 msgid "" "Optional features can be disabled to simplify the user interface,\n" "reduce memory consumption and make Padre run faster.\n" "\n" "Changes to features are only applied when Padre is restarted." msgstr "" "Дополнительные возможности могут быть отключены для упрощения пользовательского интерфейса,\n" "уменьшения потребления памяти и ускорения работы Padre.\n" "\n" "Изменения будут применены только после перезапуска Padre." #: lib/Padre/Wx/FBP/Patch.pm:148 msgid "Options" msgstr "Опции" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Опции:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "&Оригинальный текст:" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Другие (Пожалуйста заполните здесь)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Другие события" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Другие движки поиска" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "Вне диапазона." #: lib/Padre/Wx/Outline.pm:189 #: lib/Padre/Wx/Outline.pm:233 msgid "Outline" msgstr "Схема" #: lib/Padre/Wx/Output.pm:89 #: lib/Padre/Wx/FBP/Preferences.pm:455 msgid "Output" msgstr "Вывод" #: lib/Padre/Wx/Bottom.pm:53 msgid "Output View" msgstr "Вид вывода" #: lib/Padre/Wx/Dialog/Preferences.pm:482 msgid "Override Shortcut" msgstr "Переназначить комбинацию клавиш" #: lib/Padre/Wx/ActionLibrary.pm:2540 msgid "P&erl Help (English)" msgstr "Помощь по P&erl (Английский)" #: lib/Padre/Wx/Menu/Tools.pm:104 msgid "P&lug-in Tools" msgstr "Инструменты п&лагинов" #: lib/Padre/Wx/Main.pm:4424 msgid "PHP Files" msgstr "Файлы PHP" #: lib/Padre/Wx/FBP/Preferences.pm:296 msgid "POD" msgstr "POD" #: lib/Padre/Wx/FBP/POD.pm:30 msgid "POD Viewer" msgstr "Просмотр POD" #: lib/Padre/Config.pm:1319 #: lib/Padre/Wx/Scintilla.pm:28 msgid "PPI Experimental" msgstr "PPI Экспериментальный" #: lib/Padre/Config.pm:1320 #: lib/Padre/Wx/Scintilla.pm:34 msgid "PPI Standard" msgstr "PPI Стандартный" #: lib/Padre/Wx/FBP/About.pm:610 msgid "Paco Alguacil" msgstr "Paco Alguacil" #: lib/Padre/Wx/FBP/About.pm:848 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Разработчик Padre" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Инструменты разработки Padre" #: lib/Padre/Wx/FBP/Preferences.pm:32 msgid "Padre Preferences" msgstr "Настройки Padre" #: lib/Padre/Wx/FBP/Sync.pm:29 msgid "Padre Sync" msgstr "Синхронизация Padre" #: lib/Padre/Wx/FBP/About.pm:102 msgid "" "Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published by the \n" "Free Software Foundation; version 2 dated June, 1991." msgstr "" "Padre содержит иконки GNOME, Вы можете распространять их и/или \n" "изменять на условиях Общественной Публичной Лицензии GNU как опубликовано\n" "Free Software Foundation; версия 2, датированная июнем 1991." #: lib/Padre/Wx/Dialog/Preferences.pm:45 msgid "PageDown" msgstr "PageDown" #: lib/Padre/Wx/Dialog/Preferences.pm:44 msgid "PageUp" msgstr "PageUp" #: lib/Padre/Wx/FBP/ModuleStarter.pm:114 msgid "Parent Directory:" msgstr "Родительский каталог:" #: lib/Padre/Wx/Dialog/Sync.pm:153 msgid "Password and confirmation do not match." msgstr "Пароль и подтверждение не совпадают." #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "Пароль для пользователя '%s' на %s:" #: lib/Padre/Wx/FBP/Sync.pm:89 #: lib/Padre/Wx/FBP/Sync.pm:148 msgid "Password:" msgstr "Пароль:" #: lib/Padre/Wx/ActionLibrary.pm:779 msgid "Paste the clipboard to the current location" msgstr "Вставить из буфера обмена в текущую позицию" #: lib/Padre/Wx/FBP/Patch.pm:29 msgid "Patch" msgstr "Патч" #: lib/Padre/Wx/Dialog/Patch.pm:411 msgid "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "Файл заплатки должен заканчиваться на .patch или .diff, вы должны ещё раз выбрать и попробовать снова" #: lib/Padre/Wx/Dialog/Patch.pm:427 #, perl-format msgid "Patch successful, you should see a new tab in editor called %s" msgstr "Патч применён успешно, Вы должны увидеть новую вкладку в редакторе, названную %s" #: lib/Padre/Wx/VCS.pm:54 msgid "Path" msgstr "Путь" #: lib/Padre/Wx/FBP/About.pm:224 msgid "Patrick Donelan" msgstr "Patrick Donelan" #: lib/Padre/Wx/FBP/About.pm:266 msgid "Paweł Murias" msgstr "Paweł Murias" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:367 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/ActionLibrary.pm:194 msgid "Perl &6 Script" msgstr "Perl &6 Скрипт" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 &Module" msgstr "Perl 5 &Модуль" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "Perl 5 &Скрипт" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 &Test" msgstr "Perl 5 &Тест" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "Среда для Разработки Perl Приложений и Рефакторинга" #: lib/Padre/Wx/FBP/Preferences.pm:1446 msgid "Perl Arguments" msgstr "Аргументы Perl" #: lib/Padre/Wx/FBP/Preferences.pm:1404 msgid "Perl Ctags File:" msgstr "Файл Perl Ctags:" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl Distribution..." msgstr "Perl дистрибутив..." #: lib/Padre/Wx/FBP/Preferences.pm:1390 msgid "Perl Executable:" msgstr "Исполняемый файл Perl:" #: lib/Padre/Wx/Main.pm:4422 #: lib/Padre/Wx/Choice/Files.pm:21 msgid "Perl Files" msgstr "Файлы Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Perl фильтр" #: lib/Padre/Wx/ActionLibrary.pm:2552 msgid "Perl Help (Japanese)" msgstr "Помощь по Perl (Японский)" #: lib/Padre/Locale.pm:259 msgid "Persian (Iran)" msgstr "Персидский (Иран)" #: lib/Padre/Wx/FBP/About.pm:284 msgid "Petar Shangov" msgstr "Petar Shangov" #: lib/Padre/Wx/FBP/About.pm:134 msgid "Peter Lavender" msgstr "Peter Lavender" #: lib/Padre/Wx/Dialog/Sync.pm:142 msgid "Please ensure all inputs have appropriate values." msgstr "Пожалуйста убедитесь, что все введёные данные имеют корректные значения" #: lib/Padre/Wx/Dialog/Sync.pm:107 msgid "Please input a valid value for both username and password" msgstr "Пожалуйста введите корректные значения для имени пользователя и пароля" #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the directory" msgstr "Пожалуйста, введите новое имя для каталога" #: lib/Padre/Wx/Directory/TreeCtrl.pm:169 msgid "Please type in the new name of the file" msgstr "Пожалуйста, введите новое имя для файла" #: lib/Padre/Wx/Progress.pm:85 msgid "Please wait..." msgstr "Пожалуйста подождите..." #: lib/Padre/Wx/ActionLibrary.pm:2259 msgid "Plug-in &List (CPAN)" msgstr "&Список плагинов (CPAN)" #: lib/Padre/Wx/FBP/PluginManager.pm:29 msgid "Plug-in Manager" msgstr "Менеджер плагинов" #: lib/Padre/PluginManager.pm:986 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "Плагин должен содержать '%s' в качестве основного каталога" #: lib/Padre/PluginManager.pm:781 #, perl-format msgid "Plugin %s" msgstr "Плагин %s" #: lib/Padre/PluginHandle.pm:341 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "Плагин %s вернул %s вместо списка хуков на вызов ->padre_hooks" #: lib/Padre/PluginHandle.pm:354 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "Плагин %s пытался зарегистрировать некорректный хук %s" #: lib/Padre/PluginHandle.pm:362 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "Плагин %s пытался зарегистрировать не CODE хук %s" #: lib/Padre/PluginManager.pm:754 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "Плагин %s, хук %s вернул пустое сообщение об ошибке" #: lib/Padre/PluginManager.pm:721 #, perl-format msgid "Plugin error on event %s: %s" msgstr "Ошибка плагина при событии %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:371 msgid "Plugins" msgstr "Плагины" #: lib/Padre/Locale.pm:381 #: lib/Padre/Wx/FBP/About.pm:559 msgid "Polish" msgstr "Польский" #: lib/Padre/Plugin/PopularityContest.pm:323 msgid "Popularity Contest Report" msgstr "Отчёт соревнования популярности" #: lib/Padre/Locale.pm:391 #: lib/Padre/Wx/FBP/About.pm:580 msgid "Portuguese (Brazil)" msgstr "Португальский (Бразилия)" #: lib/Padre/Locale.pm:401 msgid "Portuguese (Portugal)" msgstr "Португальский (Португалия)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Тип позиции" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Положительное целое" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Positive lookahead assertion" msgstr "Позитивная проверка впереди" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Positive lookbehind assertion" msgstr "Позитивная проверка позади" #: lib/Padre/Wx/Outline.pm:362 msgid "Pragmata" msgstr "Прагма" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Имя настройки" #: lib/Padre/Wx/FBP/PluginManager.pm:136 msgid "Preferences" msgstr "Настройки" #: lib/Padre/Wx/ActionLibrary.pm:2212 msgid "Preferences &Sync..." msgstr "&Синхронизация настроек..." #: lib/Padre/PluginHandle.pm:283 #, perl-format msgid "Prerequisites missing suggest you read the POD for '%s': %s" msgstr "Необходимые условия не выполнены, предлагаю Вам прочесть POD для '%s': %s" #: lib/Padre/Wx/FBP/Snippet.pm:92 msgid "Preview:" msgstr "Предпросмотр:" #: lib/Padre/Wx/Diff2.pm:27 #: lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "Предыдущее различие" #: lib/Padre/Config.pm:677 msgid "Previous open files" msgstr "Ранее открытые файлы" #: lib/Padre/Wx/ActionLibrary.pm:517 msgid "Print the current document" msgstr "Печать текущего документа" #: lib/Padre/Wx/FBP/Patch.pm:104 msgid "Process" msgstr "Процесс" #: lib/Padre/Wx/Directory.pm:200 #: lib/Padre/Wx/Dialog/WindowList.pm:222 msgid "Project" msgstr "Проект" #: lib/Padre/Wx/FBP/Preferences.pm:346 msgid "Project Browser" msgstr "Обозреватель проекта" #: lib/Padre/Wx/ActionLibrary.pm:1442 msgid "Project Browser - Was known as the Directory Tree" msgstr "Обозреватель проекта - Был известен как дерево каталогов" #: lib/Padre/Wx/FBP/SLOC.pm:29 msgid "Project Statistics" msgstr "Статистика Проекта" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "Утилиты проекта" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "Запрос для подстановки имени переменной и замена всех вхождений этой переменной" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Punctuation characters" msgstr "Символы пунктуации" #: lib/Padre/Wx/ActionLibrary.pm:2367 msgid "Put focus on the next tab to the right" msgstr "Поместить фокус на следующем правом табе" #: lib/Padre/Wx/ActionLibrary.pm:2378 msgid "Put focus on the previous tab to the left" msgstr "Поместить фокус на предыдущем табе слева" #: lib/Padre/Wx/ActionLibrary.pm:762 msgid "Put the content of the current document in the clipboard" msgstr "Поместить содержимое текущего документа в буфер обмена" #: lib/Padre/Wx/ActionLibrary.pm:702 msgid "Put the current selection in the clipboard" msgstr "Поместить текущеее выделение в буфер обмена" #: lib/Padre/Wx/ActionLibrary.pm:718 msgid "Put the full path of the current file in the clipboard" msgstr "Поместить полный путь к текущему файлу в буфер обмена" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Поместить полный путь каталога к текущему файлу в буфер обмена" #: lib/Padre/Wx/ActionLibrary.pm:733 msgid "Put the name of the current file in the clipboard" msgstr "Поместить имя текущего файла в буфер обмена" #: lib/Padre/Wx/Main.pm:4426 msgid "Python Files" msgstr "Файлы Python" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:43 msgid "Quick Menu Access" msgstr "Меню быстрого доступа" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Quick access to all menu functions" msgstr "Быстрый доступ ко всем функциям меню" #: lib/Padre/Wx/FBP/Debugger.pm:163 msgid "Quit Debugger" msgstr "Выход из отладчика" #: lib/Padre/Wx/ActionLibrary.pm:2176 msgid "Quit Debugger (&q)" msgstr "Выход из отладчика (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2177 msgid "Quit the process being debugged" msgstr "Выйти из отлаживаемого процесса" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "Заквотить (отключить) метасимволы шаблона до \\E" #: lib/Padre/Wx/Dialog/About.pm:163 msgid "RAM" msgstr "ОЗУ" #: lib/Padre/Wx/FBP/Debugger.pm:484 msgid "" "Raw\n" "You can enter what ever debug command you want!" msgstr "" "Сырой\n" "Вы можете ввести какие угодно отладочные команды!" #: lib/Padre/Wx/Menu/File.pm:190 msgid "Re&load" msgstr "Пере&открыть" #: lib/Padre/Wx/ActionLibrary.pm:2316 msgid "Re&load All Plug-ins" msgstr "Пере&загрузить все плагины" #: lib/Padre/Wx/ActionLibrary.pm:1279 msgid "Re&place in Files..." msgstr "За&менить в файлах..." #: lib/Padre/Wx/ActionLibrary.pm:2294 msgid "Re&set My plug-in" msgstr "С&бросить Мой плагин" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Only" msgstr "Только для чтения" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Write" msgstr "Чтение Запись" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Чтение файла с FTP сервера..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:274 msgid "Reading items. Please wait" msgstr "Чтение объектов. Пожалуйста подождите" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:327 msgid "Reading items. Please wait..." msgstr "Чтение объектов. Пожалуйста подождите..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:215 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Действительно удалить файл \"%s\"?" #: lib/Padre/Wx/FBP/CPAN.pm:277 msgid "Recent" msgstr "Недавние" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Redo last undo" msgstr "Повторить последнюю отмену" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "&Рефакторинг" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:368 msgid "Refactor" msgstr "Рефакторинг" #: lib/Padre/Wx/Directory.pm:226 #: lib/Padre/Wx/FBP/CPAN.pm:132 #: lib/Padre/Wx/FBP/CPAN.pm:180 msgid "Refresh" msgstr "Обновить" #: lib/Padre/Wx/FBP/Breakpoints.pm:63 msgid "Refresh List" msgstr "Обновить Список" #: lib/Padre/Wx/FBP/FoundInFiles.pm:51 msgid "Refresh Search" msgstr "Обновить Поиск" #: lib/Padre/Wx/FBP/VCS.pm:143 msgid "Refresh the status of working copy files and directories" msgstr "Обновить статус файлов и каталогов рабочей копии" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Редактор регулярных выражений" #: lib/Padre/Wx/FBP/Sync.pm:178 msgid "Register" msgstr "Зарегистрироваться" #: lib/Padre/Wx/FBP/Sync.pm:315 msgid "Registration" msgstr "Регистрация" #: lib/Padre/Wx/FBP/Find.pm:79 #: lib/Padre/Wx/FBP/Replace.pm:129 msgid "Regular E&xpression" msgstr "Регулярное В&ыражение" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Переустановка/установка на другом компьютере" #: lib/Padre/Wx/ActionLibrary.pm:402 msgid "Reload &All" msgstr "Перезагрузить &всё" #: lib/Padre/Wx/ActionLibrary.pm:392 msgid "Reload &File" msgstr "Перезагрузить &файл" #: lib/Padre/Wx/ActionLibrary.pm:412 msgid "Reload &Some..." msgstr "Перезагрузить &некоторые..." #: lib/Padre/Wx/Main.pm:4717 msgid "Reload Files" msgstr "Перезагрузить Файлы" #: lib/Padre/Wx/ActionLibrary.pm:403 msgid "Reload all files currently open" msgstr "Перезагрузить все открытые в текущий момент файлы" #: lib/Padre/Wx/ActionLibrary.pm:2317 msgid "Reload all plug-ins from &disk" msgstr "Перезагрузить все плагины с &диска" #: lib/Padre/Wx/ActionLibrary.pm:393 msgid "Reload current file from disk" msgstr "Перезагрузить текущий файл с диска" #: lib/Padre/Wx/Main.pm:4660 msgid "Reloading Files" msgstr "Перезагружаю Файлы" #: lib/Padre/Wx/ActionLibrary.pm:2326 msgid "Reloads (or initially loads) the current plug-in" msgstr "Перезагружает (или первоначально загружает) текущий плагин" #: lib/Padre/Wx/ActionLibrary.pm:672 msgid "Remove all the selection marks" msgstr "Снять все метки выделения" #: lib/Padre/Wx/ActionLibrary.pm:982 msgid "Remove comment for selected lines or the current line" msgstr "Удалить комментарии в выделенных строках или текущей линии" #: lib/Padre/Wx/ActionLibrary.pm:687 msgid "Remove the current selection and put it in the clipboard" msgstr "Удалить текущение выделение и поместить его в буфер обмена" #: lib/Padre/Wx/ActionLibrary.pm:546 msgid "Remove the entries from the recent files list" msgstr "Очистить записи в списке недавних файлов" #: lib/Padre/Wx/ActionLibrary.pm:1077 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Удалить все пробелы в начале выделенных линий" #: lib/Padre/Wx/ActionLibrary.pm:1087 msgid "Remove the spaces from the end of the selected lines" msgstr "Удалить пробелы на конце выбранных строк" #: lib/Padre/Wx/Directory/TreeCtrl.pm:378 #: lib/Padre/Wx/Directory/TreeCtrl.pm:380 msgid "Rename" msgstr "Переименовать" #: lib/Padre/Wx/Directory/TreeCtrl.pm:277 msgid "Rename Directory" msgstr "Переименовать каталог" #: lib/Padre/Wx/Directory/TreeCtrl.pm:336 msgid "Rename File" msgstr "Переименовать файл" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename directory" msgstr "Переименовать каталог" #: lib/Padre/Wx/Directory/TreeCtrl.pm:170 msgid "Rename file" msgstr "Переименовать файл" #: lib/Padre/Document/Perl.pm:815 #: lib/Padre/Document/Perl.pm:825 msgid "Rename variable" msgstr "Переименование переменной" #: lib/Padre/Wx/VCS.pm:262 msgid "Renamed" msgstr "Переименован" #: lib/Padre/Wx/ActionLibrary.pm:1223 msgid "Repeat the last find to find the next match" msgstr "Повторить последний поиск для нахождения следующего совпадения" #: lib/Padre/Wx/ActionLibrary.pm:1234 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Повторить последний поиск, но назад, чтобы найти предыдущее совпадение" #: lib/Padre/Wx/FBP/Replace.pm:31 msgid "Replace" msgstr "&Заменить" #: lib/Padre/Wx/FBP/Replace.pm:186 msgid "Replace &All" msgstr "Заменить &все" #: lib/Padre/Wx/FBP/Replace.pm:88 msgid "Replace &With:" msgstr "Заменить &текстом:" #: lib/Padre/Wx/FBP/Preferences.pm:485 msgid "Replace In Files" msgstr "Заменить в Файлах" #: lib/Padre/Document/Perl.pm:909 #: lib/Padre/Document/Perl.pm:958 msgid "Replace Operation Canceled" msgstr "Операция замены отменена" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:66 msgid "Replace With:" msgstr "Заменить текстом:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Replace all occurrences of the pattern" msgstr "Заменить все вхождения в шаблоне" #: lib/Padre/Wx/ReplaceInFiles.pm:247 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Переименование завершено, найдено '%s' %d раз в %d файлах внутри '%s'" #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "Ошибка замены в %s: %s" #: lib/Padre/Wx/ReplaceInFiles.pm:131 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:32 msgid "Replace in Files" msgstr "Заменить в файлах" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Replace..." msgstr "Заменить..." #: lib/Padre/Wx/Dialog/Replace.pm:128 #, perl-format msgid "Replaced %d match" msgstr "Заменено %d совпадение" #: lib/Padre/Wx/Dialog/Replace.pm:128 #, perl-format msgid "Replaced %d matches" msgstr "Заменено %d совпадений" #: lib/Padre/Wx/ReplaceInFiles.pm:188 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr "Замена '%s' в '%s'..." #: lib/Padre/Wx/ActionLibrary.pm:2589 msgid "Report a New &Bug" msgstr "Сообщить о новом &баге" #: lib/Padre/Wx/ActionLibrary.pm:2301 msgid "Reset My plug-in" msgstr "Сбросить Мой плагин" #: lib/Padre/Wx/ActionLibrary.pm:2295 msgid "Reset the My plug-in to the default" msgstr "Сбросить Мой плагин к состоянию по умолчанию" #: lib/Padre/Wx/ActionLibrary.pm:1662 msgid "Reset the size of the letters to the default in the editor window" msgstr "Установить размер по умолчанию букв в окне редактора" #: lib/Padre/Wx/FBP/Preferences.pm:1222 msgid "Reset to default shortcut" msgstr "Сбросить до комбинаций клавиш по-умолчанию" #: lib/Padre/Wx/Main.pm:3242 msgid "Restore focus..." msgstr "Восстановить фокус..." #: lib/Padre/Wx/FBP/VCS.pm:123 msgid "Restore pristine working copy file (undo most local edits)" msgstr "Восстановить первоначальную рабочую копию файла (отменить все локальные изменения)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Return" msgstr "Возврат" #: lib/Padre/Wx/VCS.pm:561 msgid "Revert changes?" msgstr "Откатить изменения?" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "Откатить это изменение" #: lib/Padre/Config.pm:1931 msgid "Revised BSD License" msgstr "Пересмотренная BSD лицензия" #: lib/Padre/Wx/VCS.pm:56 msgid "Revision" msgstr "Ревизия" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "Right" msgstr "Вправо" #: lib/Padre/Config.pm:137 msgid "Right Panel" msgstr "Правая Панель" #: lib/Padre/Wx/FBP/Diff.pm:83 msgid "Right side" msgstr "Правая сторона" #: lib/Padre/Wx/Main.pm:4428 msgid "Ruby Files" msgstr "Файлы Ruby" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:369 msgid "Run" msgstr "Запуск" #: lib/Padre/Wx/ActionLibrary.pm:1994 msgid "Run &Build and Tests" msgstr "Выполнить &сборку и тесты" #: lib/Padre/Wx/ActionLibrary.pm:1983 msgid "Run &Command" msgstr "Запустить &комманду" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "Выполнить &документ в Padre" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "Выполнить &выделение в Padre" #: lib/Padre/Wx/ActionLibrary.pm:2006 msgid "Run &Tests" msgstr "Выполнить &тесты" #: lib/Padre/Wx/FBP/Debugger.pm:43 msgid "" "Run Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" msgstr "" "Запуск Отладки\n" "BLUE MORPHO CATERPILLAR \n" "прикольный жучок" #: lib/Padre/Wx/ActionLibrary.pm:1971 msgid "Run Script (&Debug Info)" msgstr "Выполнить скрипт (режим &отладки)" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "Run T&his Test" msgstr "Выполнить &этот тест" #: lib/Padre/Wx/ActionLibrary.pm:2008 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "Выполнить все тесты текущего проекта или документа и показать результаты в панели вывода." #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "Запустить фильтр" #: lib/Padre/Wx/Main.pm:2725 msgid "Run setup" msgstr "Выполнить установку" #: lib/Padre/Wx/ActionLibrary.pm:1972 msgid "Run the current document but include debug info in the output." msgstr "Выполнить текущий документ, но включить отладочную информацию в вывод." #: lib/Padre/Wx/ActionLibrary.pm:2026 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "Выполнить текущий тест, если текущий документ это тест. (prove -lv)" #: lib/Padre/Wx/ActionLibrary.pm:1984 msgid "Runs a shell command and shows the output." msgstr "Выполнить команду оболочки и показать вывод." #: lib/Padre/Wx/ActionLibrary.pm:1956 msgid "Runs the current document and shows its output in the output panel." msgstr "Выполнить текущий документ и показать его вывод в панели вывода." #: lib/Padre/Locale.pm:411 #: lib/Padre/Wx/FBP/About.pm:622 msgid "Russian" msgstr "Русский" #: lib/Padre/Wx/FBP/About.pm:188 msgid "Ryan Niebur" msgstr "Ryan Niebur" #: lib/Padre/Wx/FBP/Debugger.pm:444 msgid "" "S [[!]regex]\n" "List subroutine names [not] matching the regex." msgstr "" "S [[!]regex]\n" "Показать имена подпрограмм [не] совпадающие с регулярным выражением." #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "&Сохранить" #: lib/Padre/Wx/FBP/Preferences.pm:1179 msgid "S&et" msgstr "У&становить" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Main.pm:4430 msgid "SQL Files" msgstr "Файлы SQL" #: lib/Padre/Wx/Dialog/Patch.pm:584 #, perl-format msgid "SVN Diff successful. You should see a new tab in editor called %s." msgstr "SVN Diff произведён успешно. Вы должны увидеть новую вкладку в редакторе названную %s." #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "&Сохранить" #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save &As..." msgstr "Сохранить &как..." #: lib/Padre/Wx/ActionLibrary.pm:452 msgid "Save &Intuition" msgstr "&Интуитивное сохранение" #: lib/Padre/Wx/ActionLibrary.pm:463 msgid "Save All" msgstr "Сохранить все" #: lib/Padre/Wx/ActionLibrary.pm:499 msgid "Save Sess&ion..." msgstr "Сохранить сесс&ию..." #: lib/Padre/Document.pm:782 msgid "Save Warning" msgstr "Сохранить предупреждение" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "Save all the files" msgstr "Сохранить все файлы" #: lib/Padre/Wx/FBP/Preferences.pm:645 msgid "Save and Close" msgstr "Сохранить и Закрыть" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Save current document" msgstr "Сохранить текущий документ" #: lib/Padre/Wx/Main.pm:4802 msgid "Save file as..." msgstr "Сохранить файл как..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Сохранить сессию как..." #: lib/Padre/Wx/FBP/SessionManager.pm:70 msgid "Save session automatically" msgstr "Сохранить сессию автоматически" #: lib/Padre/Wx/FBP/VCS.pm:43 msgid "Schedule the file or directory for addition to the repository" msgstr "Внести файл или каталог в перечень для добавления в репозиторий " #: lib/Padre/Wx/FBP/VCS.pm:63 msgid "Schedule the file or directory for deletion from the repository" msgstr "Внести файл или каталог в перечень для удаления из репозитория" #: lib/Padre/Config.pm:1318 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/FBP/Preferences.pm:1901 msgid "Screen Layout" msgstr "Раскладка Экрана" #: lib/Padre/Wx/FBP/Preferences.pm:1466 msgid "Script Arguments" msgstr "Аргументы Скрипта" #: lib/Padre/Wx/FBP/Preferences.pm:1421 msgid "Script Execution" msgstr "Выполнение Скрипта" #: lib/Padre/Wx/Main.pm:4436 msgid "Script Files" msgstr "Файлы скриптов" #: lib/Padre/Wx/Directory.pm:84 #: lib/Padre/Wx/Directory.pm:505 #: lib/Padre/Wx/FBP/CPAN.pm:276 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:365 #: lib/Padre/Wx/Dialog/Find.pm:66 msgid "Search" msgstr "Поиск" #: lib/Padre/Wx/FBP/Find.pm:87 msgid "Search &Backwards" msgstr "Поиск &назад" #: lib/Padre/Wx/FBP/FindInFiles.pm:48 #: lib/Padre/Wx/FBP/Find.pm:46 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:41 #: lib/Padre/Wx/FBP/Replace.pm:47 msgid "Search &Term:" msgstr "&Условия поиска:" #: lib/Padre/Document/Perl.pm:660 msgid "Search Canceled" msgstr "Поиск отменён" #: lib/Padre/Wx/Dialog/Replace.pm:131 #: lib/Padre/Wx/Dialog/Replace.pm:136 #: lib/Padre/Wx/Dialog/Replace.pm:161 msgid "Search and Replace" msgstr "Найти и заменить" #: lib/Padre/Wx/ActionLibrary.pm:1280 msgid "Search and replace text in all files below a given directory" msgstr "Поиск и замена текста во всех файлах ниже данного каталога" #: lib/Padre/Wx/Panel/FoundInFiles.pm:294 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Поиск завершён, найдено '%s' %d раз в %d файлах внутри '%s'" #: lib/Padre/Wx/ActionLibrary.pm:1264 msgid "Search for a text in all files below a given directory" msgstr "Поиск текста во всех файлах ниже данного каталога" #: lib/Padre/Wx/Browser.pm:92 #: lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "Поиск по документации Perl - например Padre::Task, Net::LDAP" #: lib/Padre/Wx/ActionLibrary.pm:2493 msgid "Search the Perl help pages (perldoc)" msgstr "Поиск по страницам помощи Perl (perldoc)" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "Поиск:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "Поиск по '%s' не удался..." #: lib/Padre/Wx/ActionLibrary.pm:1744 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "Поиск в исходном коде непарных (открывающихся/закрывающихся) скобок" #: lib/Padre/Wx/Panel/FoundInFiles.pm:242 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "Поиск '%s' в '%s'..." #: lib/Padre/Wx/FBP/About.pm:140 #: lib/Padre/Wx/FBP/About.pm:445 msgid "Sebastian Willing" msgstr "Sebastian Willing" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "Вторая метка" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Смотрите http://padre.perlide.org/ для обновления информации" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Выбрать" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Select &All" msgstr "Выделить &все" #: lib/Padre/Wx/Dialog/FindInFiles.pm:52 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:44 msgid "Select Directory" msgstr "Выбрать каталог" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "Выбрать функцию" #: lib/Padre/Wx/ActionLibrary.pm:1320 msgid "Select a bookmark created earlier and jump to that position" msgstr "Выбрать закладку, созданную ранее, и перейти к этой позиции" #: lib/Padre/Wx/ActionLibrary.pm:920 msgid "Select a date, filename or other value and insert at the current location" msgstr "Выбрать дату, имя файла или другое значение и вставить в текущую позицию" #: lib/Padre/Wx/FBP/Preferences.pm:1411 msgid "Select a file" msgstr "Выбрать файл" #: lib/Padre/Wx/ActionLibrary.pm:944 msgid "Select a file and insert its content at the current location" msgstr "Выбрать файл и вставить его содержимое в текущую позицию" #: lib/Padre/Wx/FBP/Preferences.pm:595 #: lib/Padre/Wx/FBP/ModuleStarter.pm:121 msgid "Select a folder" msgstr "Выбрать каталог" #: lib/Padre/Wx/ActionLibrary.pm:489 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "Выбрать сессию. Закрыть все файлы, который на данный момент открыты и открыть все, указанные в сессии" #: lib/Padre/Wx/ActionLibrary.pm:635 msgid "Select all the text in the current document" msgstr "Выделить весь текст в текущем документе" #: lib/Padre/Wx/ActionLibrary.pm:1015 msgid "Select an encoding and encode the document to that" msgstr "Выбрать кодировку и перекодировать документ в эту кодировку" #: lib/Padre/Wx/ActionLibrary.pm:932 msgid "Select and insert a snippet at the current location" msgstr "Выбрать и вставить фрагмент в текущую позицию" #: lib/Padre/CPAN.pm:100 msgid "Select distribution to install" msgstr "Выберите дистрибутив для установки" #: lib/Padre/Wx/Main.pm:5273 msgid "Select files to close:" msgstr "Выбрать файлы для закрытия:" #: lib/Padre/Wx/Dialog/OpenResource.pm:238 msgid "Select one or more resources to open" msgstr "Выбрать один или более русурсов для открытия" #: lib/Padre/Wx/ActionLibrary.pm:363 msgid "Select some open files for closing" msgstr "Выбрать некоторые открытые файлы для закрытия" #: lib/Padre/Wx/ActionLibrary.pm:413 msgid "Select some open files for reload" msgstr "Выбрать некоторые открытые файлы для перезагрузки" #: lib/Padre/Wx/Dialog/HelpSearch.pm:131 msgid "Select the help &topic" msgstr "Выбрать тему помощи" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "Select to Matching &Brace" msgstr "Выделить до парной &скобки" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Select to the matching opening or closing brace" msgstr "Выделить до парной открывающей или закрывающей скобки" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "" "Выбрать подпрограмму, перед которой будет вставлена\n" "новая подпрограмма" #: lib/Padre/Wx/FBP/Document.pm:129 msgid "Selection" msgstr "Выделение" #: lib/Padre/Document/Perl.pm:952 msgid "Selection not part of a Perl statement?" msgstr "Выделение не является часть оператора Perl?" #: lib/Padre/Wx/ActionLibrary.pm:2590 msgid "Send a bug report to the Padre developer team" msgstr "Отправить отчёт по багу команде разработчиков Padre" #: lib/Padre/Wx/FBP/VCS.pm:103 msgid "Send changes from your working copy to the repository" msgstr "Отправить изменения из Вашей локальной копии в репозиторий" #: lib/Padre/File/HTTP.pm:52 #, perl-format msgid "Sending HTTP request %s..." msgstr "Отправка HTTP запроса %s..." #: lib/Padre/Wx/FBP/Sync.pm:38 msgid "Server:" msgstr "Сервер:" #: lib/Padre/Wx/FBP/SessionManager.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Менеджер сесиий" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "Название сессии:" #: lib/Padre/Wx/ActionLibrary.pm:1308 msgid "Set &Bookmark" msgstr "Установить &закладку" #: lib/Padre/Wx/FBP/Bookmarks.pm:38 msgid "Set Bookmark:" msgstr "Установить закладку:" #: lib/Padre/Wx/ActionLibrary.pm:2155 msgid "Set Breakpoint (&b)" msgstr "Установить точку останова (&b)" #: lib/Padre/Wx/FBP/Breakpoints.pm:83 msgid "Set Breakpoints (toggle)" msgstr "Установить точки останова (переключение)" #: lib/Padre/Wx/ActionLibrary.pm:1678 msgid "Set Padre in full screen mode" msgstr "Включить Padre в режим на полный экран" #: lib/Padre/Wx/ActionLibrary.pm:2156 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "Установить точку останова в текущем положении курсора с условием" #: lib/Padre/Wx/ActionLibrary.pm:2404 msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "Установить фокус на окне \"Исследователь CPAN\"" #: lib/Padre/Wx/ActionLibrary.pm:2460 msgid "Set the focus to the \"Command Line\" window" msgstr "Установить фокус на окне \"Коммандная строка\"" #: lib/Padre/Wx/ActionLibrary.pm:2415 msgid "Set the focus to the \"Functions\" window" msgstr "Поместить фокус на окно \"Функции\"" #: lib/Padre/Wx/ActionLibrary.pm:2427 msgid "Set the focus to the \"Outline\" window" msgstr "Установить фокус на окне \"Схема\"" #: lib/Padre/Wx/ActionLibrary.pm:2438 msgid "Set the focus to the \"Output\" window" msgstr "Поместить фокус на окне \"Вывод\"" #: lib/Padre/Wx/ActionLibrary.pm:2449 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Поместить фокус на окне \"Проверка Синтаксиса\"" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "Set the focus to the main editor window" msgstr "Поместить фокус на главное окно редактора" #: lib/Padre/Wx/FBP/Preferences.pm:1184 msgid "Sets the keyboard binding" msgstr "Установить сочетание клавиш" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Setup a skeleton Perl distribution" msgstr "Задать шаблон дистрибутива модуля Perl" #: lib/Padre/Config.pm:727 #: lib/Padre/Config.pm:982 msgid "Several placeholders like the filename can be used" msgstr "Несколько обозначений такие как имя файла могут быть использованы" #: lib/Padre/Wx/Syntax.pm:59 msgid "Severe Warning" msgstr "Строгое предупреждение" #: lib/Padre/Wx/ActionLibrary.pm:2213 msgid "Share your preferences between multiple computers" msgstr "Поделиться вашими настройками между несколькими компьютерами" #: lib/Padre/MIME.pm:1037 msgid "Shell Script" msgstr "Shell Скрипт" #: lib/Padre/Wx/FBP/Preferences.pm:1156 msgid "Shift" msgstr "Shift" #: lib/Padre/Wx/FBP/About.pm:472 msgid "Shlomi Fish" msgstr "Shlomi Fish" #: lib/Padre/Wx/Dialog/Preferences.pm:174 #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Сочетание клавиш" #: lib/Padre/Wx/FBP/Preferences.pm:1128 msgid "Shortcut:" msgstr "Сочетание клавиш:" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Shorten the common path in window list" msgstr "Сокращать общий путь в списке окон" #: lib/Padre/Wx/FBP/VCS.pm:239 #: lib/Padre/Wx/FBP/Breakpoints.pm:159 #: lib/Padre/Wx/FBP/Debugger.pm:519 msgid "Show" msgstr "Показать" #: lib/Padre/Wx/ActionLibrary.pm:1390 msgid "Show &Command Line" msgstr "Показать окно &коммандной строки" #: lib/Padre/Wx/Dialog/RegexEditor.pm:215 msgid "Show &Description" msgstr "Показать &Описание" #: lib/Padre/Wx/ActionLibrary.pm:1380 msgid "Show &Function List" msgstr "Показывать список &функций" #: lib/Padre/Wx/ActionLibrary.pm:1618 msgid "Show &Indentation Guide" msgstr "Показывать руководство по &отступам" #: lib/Padre/Wx/ActionLibrary.pm:1430 msgid "Show &Outline" msgstr "Показывать &схему" #: lib/Padre/Wx/ActionLibrary.pm:1370 msgid "Show &Output" msgstr "Показывать &вывод" #: lib/Padre/Wx/ActionLibrary.pm:1441 msgid "Show &Project Browser" msgstr "Показывать обозреватель &проекта" #: lib/Padre/Wx/ActionLibrary.pm:1420 msgid "Show &Task List" msgstr "Показывать Список &Задач" #: lib/Padre/Wx/ActionLibrary.pm:1608 msgid "Show &Whitespaces" msgstr "Показывать &пробелы" #: lib/Padre/Wx/ActionLibrary.pm:1576 msgid "Show C&urrent Line" msgstr "Подсветка &текущей строки" #: lib/Padre/Wx/ActionLibrary.pm:1400 msgid "Show CPA&N Explorer" msgstr "Показать Исследователь CPA&N" #: lib/Padre/Wx/ActionLibrary.pm:1562 msgid "Show Ca&ll Tips" msgstr "Показывать подсказки по вызову фу&нкций" #: lib/Padre/Wx/ActionLibrary.pm:1521 msgid "Show Code &Folding" msgstr "Показывать &сворачивание кода" #: lib/Padre/Wx/ActionLibrary.pm:2075 msgid "Show Debug Breakpoints" msgstr "Показывать Отладочные Точки Останова" #: lib/Padre/Wx/ActionLibrary.pm:2088 msgid "Show Debug Output" msgstr "Показывать Отладочный Вывод" #: lib/Padre/Wx/ActionLibrary.pm:2098 msgid "Show Debugger" msgstr "Показывать Отладчик" #: lib/Padre/Wx/FBP/Debugger.pm:212 msgid "Show Global Variables" msgstr "Показать Глобальные Переменные" #: lib/Padre/Wx/ActionLibrary.pm:1510 msgid "Show Line &Numbers" msgstr "Показывать &номера строк" #: lib/Padre/Wx/FBP/Debugger.pm:193 msgid "Show Local Variables" msgstr "Показать Локальные Переменные" #: lib/Padre/Wx/ActionLibrary.pm:1598 msgid "Show Ne&wlines" msgstr "Показывать пе&реводы строк" #: lib/Padre/Wx/ActionLibrary.pm:1586 msgid "Show Right &Margin" msgstr "Показывать &границу справа" #: lib/Padre/Wx/ActionLibrary.pm:1451 msgid "Show S&yntax Check" msgstr "Показывать пр&оверку синтаксиса" #: lib/Padre/Wx/ActionLibrary.pm:1472 msgid "Show St&atus Bar" msgstr "Показывать ст&атусную строку" #: lib/Padre/Wx/FBP/Syntax.pm:63 msgid "Show Standard Error" msgstr "Показывать стандартную ошибку" #: lib/Padre/Wx/Dialog/RegexEditor.pm:245 msgid "Show Subs&titution" msgstr "Показывать &Замещение" #: lib/Padre/Wx/ActionLibrary.pm:1482 msgid "Show Tool&bar" msgstr "Показывать па&нель инструментов" #: lib/Padre/Wx/ActionLibrary.pm:1461 msgid "Show V&ersion Control" msgstr "Показать Контроль В&ерсий" #: lib/Padre/Wx/ActionLibrary.pm:1587 msgid "Show a vertical line indicating the right margin" msgstr "Показывать вертикальную линию, отображающую границу справа" #: lib/Padre/Wx/ActionLibrary.pm:1421 msgid "Show a window listing all task items in the current document" msgstr "Показывать окно отображающее все пункты задач в текущем документе" #: lib/Padre/Wx/ActionLibrary.pm:1381 msgid "Show a window listing all the functions in the current document" msgstr "Показывать окно отображающее все функции в текущем документе" #: lib/Padre/Wx/ActionLibrary.pm:1431 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "Показывать окно отображающее все части текущего дкоумента (функции, прагмы, модули)" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Show as" msgstr "Показать как" #: lib/Padre/Wx/ActionLibrary.pm:1167 msgid "Show as &Decimal" msgstr "Показать как &десятичное" #: lib/Padre/Wx/ActionLibrary.pm:1157 msgid "Show as &Hexadecimal" msgstr "Показать как &шестнадцатиричное" #: lib/Padre/Plugin/PopularityContest.pm:212 msgid "Show current report" msgstr "Показать текущий отчёт" #: lib/Padre/Wx/ActionLibrary.pm:1410 msgid "Show diff window!" msgstr "Показать окно различий!" #: lib/Padre/Wx/ActionLibrary.pm:2618 msgid "Show information about Padre" msgstr "Показать информацию о Padre" #: lib/Padre/Wx/FBP/Preferences.pm:152 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "Показывать низкоприоритетные информационные сообщения в статусной строке (не во всплывающем окне)" #: lib/Padre/Config.pm:1337 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "" "Показывать низкоприоритетные информационные сообщения\n" "в статусной строке (не во всплывающем окне)" #: lib/Padre/Config.pm:974 msgid "Show or hide the status bar at the bottom of the window." msgstr "Показать или скрыть строку статуса внизу окна." #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "Показать предыдущую позицию" #: lib/Padre/Wx/FBP/Preferences.pm:727 msgid "Show right margin at column" msgstr "Показывать границу справа у колонки" #: lib/Padre/Wx/FBP/Preferences.pm:548 msgid "Show splash screen" msgstr "Показывать заставку" #: lib/Padre/Wx/ActionLibrary.pm:1168 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "Показать ASCII значения выделенного текста в десятичном представлении в окне вывода" #: lib/Padre/Wx/ActionLibrary.pm:1158 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "Показать ASCII значения выделенного текста в шестнадцатиричном представлении в окне вывода" #: lib/Padre/Wx/ActionLibrary.pm:2518 msgid "Show the POD (Perldoc) version of the current document" msgstr "Показать версию POD (Perldoc) текущего документа" #: lib/Padre/Wx/ActionLibrary.pm:2484 msgid "Show the Padre help" msgstr "Показать помощь по Padre" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Показать менеджер плагинов Padre для включения или отключения плагинов" #: lib/Padre/Wx/ActionLibrary.pm:1391 msgid "Show the command line window" msgstr "Показать окно коммандной строки" #: lib/Padre/Wx/ActionLibrary.pm:2505 msgid "Show the help article for the current context" msgstr "Показать страницу помощи для текущего контекста" #: lib/Padre/Wx/ActionLibrary.pm:1371 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "Показывать окно отображающее стандартный вывод и стандартный вывод ошибок запущенных скриптов" #: lib/Padre/Wx/ActionLibrary.pm:1732 msgid "Show what perl thinks about your code" msgstr "Показать, что perl думает о Вашем коде" #: lib/Padre/Wx/ActionLibrary.pm:1522 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "Показать/скрыть вертикальную линию на левой стороне окна для возможности сворачивания рядов" #: lib/Padre/Wx/ActionLibrary.pm:1511 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "Показать/скрыть номера строк всех документов на левой строне окна" #: lib/Padre/Wx/ActionLibrary.pm:1599 msgid "Show/hide the newlines with special character" msgstr "Показать/скрыть специальный символ для отображения перевода строки" #: lib/Padre/Wx/ActionLibrary.pm:1473 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Показать/скрыть строку статуса внизу экрана" #: lib/Padre/Wx/ActionLibrary.pm:1609 msgid "Show/hide the tabs and the spaces with special characters" msgstr "Показать/скрыть специальные символы для отображения табуляции и пробелов" #: lib/Padre/Wx/ActionLibrary.pm:1483 msgid "Show/hide the toolbar at the top of the editor" msgstr "Показать/скрыть панель инструментов вверху редактора" #: lib/Padre/Wx/ActionLibrary.pm:1619 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "Показать/скрыть вертикальные панели на каждый отступ позиции влево в рядах" #: lib/Padre/Config.pm:664 msgid "Showing the splash image during start-up" msgstr "Показывать заставку при старте" #: lib/Padre/Wx/FBP/About.pm:508 msgid "Simone Blandino" msgstr "Simone Blandino" #: lib/Padre/Wx/ActionLibrary.pm:1121 msgid "Simplistic Patch only works on saved files" msgstr "Упрощённый патч работает только на сохранённых файлах" #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "Имитация падения в &фоне" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "Имитация &падения" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "Имитация фонового &исключения" #: lib/Padre/Wx/ActionLibrary.pm:2390 msgid "Simulate a right mouse button click to open the context menu" msgstr "Иммитировать правую кнопку мыши для открытия контекстного меню" #: lib/Padre/Wx/Dialog/RegexEditor.pm:476 msgid "Single-line (&s)" msgstr "Одна строка (&s)" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "Размер" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "Пропустить вопросы без отправки отзыва" #: lib/Padre/Wx/Dialog/OpenResource.pm:270 msgid "Skip using MANIFEST.SKIP" msgstr "Пропускать используя MANIFEST.SKIP" #: lib/Padre/Wx/Dialog/OpenResource.pm:266 msgid "Skip version control system files" msgstr "Пропускать файлы систем контроля версий" #: lib/Padre/Document.pm:1444 #: lib/Padre/Document.pm:1445 msgid "Skipped for large files" msgstr "Пропущено для больших файлов" #: lib/Padre/Wx/FBP/Snippet.pm:61 msgid "Snippet:" msgstr "Фрагмент:" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "Что-то не так с Вашей базой Padre:\n" "Сессия %s есть в списке, но там нет данных" #: lib/Padre/Wx/Dialog/Patch.pm:497 msgid "Sorry Diff Failed, are you sure your choice of files was correct for this action" msgstr "Простите, Diff был неудачен, Вы уверены, что Ваш выбор файлов бул корректен для данного действия" #: lib/Padre/Wx/Dialog/Patch.pm:602 msgid "Sorry, Diff failed. Are you sure your have access to the repository for this action" msgstr "Простите, Diff был неудачен. Вы уверены, что Вы имеете доступ к репозиторию для данного действия" #: lib/Padre/Wx/Dialog/Patch.pm:439 msgid "Sorry, patch failed, are you sure your choice of files was correct for this action" msgstr "Простите, патч не применён, Вы уверены, что Ваш выбор файлов был корректен для данного действия" #: lib/Padre/Wx/FBP/Preferences.pm:73 msgid "Sort Order:" msgstr "Порядок Сортировки:" #: lib/Padre/Wx/FBP/Document.pm:228 msgid "Source Lines of Code" msgstr "Исходные Строки Кода" #: lib/Padre/Wx/Dialog/Preferences.pm:35 msgid "Space" msgstr "Пробел" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "Space and tab" msgstr "Пробелы и табуляция" #: lib/Padre/Wx/Main.pm:6310 msgid "Space to Tab" msgstr "Пробелы в табуляцию" #: lib/Padre/Wx/ActionLibrary.pm:1066 msgid "Spaces to &Tabs..." msgstr "Пробелы в &табы..." #: lib/Padre/Locale.pm:249 #: lib/Padre/Wx/FBP/About.pm:601 msgid "Spanish" msgstr "Испанский" #: lib/Padre/Locale.pm:235 msgid "Spanish (Argentina)" msgstr "Испанский (Аргентина)" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "Special &Value..." msgstr "Специальное &значение..." #: lib/Padre/Config.pm:1580 msgid "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "Укажите опции для Devel::EndStats. 'feature_devel_endstats' должна быть включена." #: lib/Padre/Config.pm:1600 msgid "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "Укажите опции для Devel::TraceUse. 'feature_devel_traceuse' должна быть включена." #: lib/Padre/Wx/FBP/Preferences.pm:508 msgid "Startup" msgstr "Запуск" #: lib/Padre/Wx/VCS.pm:53 #: lib/Padre/Wx/FBP/DebugOutput.pm:37 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:35 #: lib/Padre/Wx/CPAN/Listview.pm:59 msgid "Status" msgstr "Статус" #: lib/Padre/Wx/FBP/Sync.pm:52 msgid "Status:" msgstr "Статус:" #: lib/Padre/Wx/FBP/About.pm:152 msgid "Steffen Muller" msgstr "Steffen Muller" #: lib/Padre/Wx/FBP/FoundInFiles.pm:111 msgid "Stop Search" msgstr "Остановить поиск" #: lib/Padre/Wx/ActionLibrary.pm:2038 msgid "Stop a running task." msgstr "Остановить запущенную задачу." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "Прекратить обработку других элементов очереди действий на 1 секунду" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Прекратить обработку других элементов очереди действий на 10 секунд" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Прекратить обработку других элементов очереди действий на 30 секунд" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "Строка" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "Трассировка процедуры запущена" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "Трассировка процедуры остановлена" #: lib/Padre/Wx/Dialog/Sync.pm:196 #: lib/Padre/Wx/Dialog/Sync.pm:220 msgid "Success" msgstr "Успех" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Переключить язык интерфейса Padre на %s" #: lib/Padre/Wx/ActionLibrary.pm:1497 msgid "Switch document type" msgstr "Изменить тип документа" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Сменить язык на системный по умолчанию" #: lib/Padre/Wx/Syntax.pm:159 #: lib/Padre/Wx/FBP/Preferences.pm:440 msgid "Syntax Check" msgstr "Проверка синтаксиса" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Системные установки по умолчанию" #: lib/Padre/Wx/FBP/Debugger.pm:356 msgid "" "T\n" "Produce a stack backtrace." msgstr "" "T\n" "Получить цепочку стэка вызовов." #: lib/Padre/Wx/Dialog/Preferences.pm:34 #: lib/Padre/Wx/Dialog/RegexEditor.pm:140 msgid "Tab" msgstr "Табуляция" #: lib/Padre/Wx/FBP/Preferences.pm:983 msgid "Tab Spaces:" msgstr "Пробелов в Табуляции:" #: lib/Padre/Wx/Main.pm:6311 msgid "Tab to Space" msgstr "Табуляцию в пробелы" #: lib/Padre/Wx/Menu/Edit.pm:233 msgid "Tabs and S&paces" msgstr "Табуляция и п&робелы" #: lib/Padre/Wx/ActionLibrary.pm:1056 msgid "Tabs to &Spaces..." msgstr "Табы в &пробелы..." #: lib/Padre/Wx/TaskList.pm:184 #: lib/Padre/Wx/FBP/Preferences.pm:88 #: lib/Padre/Wx/FBP/Preferences.pm:391 #: lib/Padre/Wx/Panel/TaskList.pm:96 msgid "Task List" msgstr "Список Задач" #: lib/Padre/MIME.pm:880 msgid "Text" msgstr "Текст" #: lib/Padre/Wx/Main.pm:4432 #: lib/Padre/Wx/Choice/Files.pm:20 msgid "Text Files" msgstr "Текстовые файлы" #: lib/Padre/Wx/Dialog/Bookmarks.pm:108 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "Закладка '%s' больше не существует" #: lib/Padre/Document.pm:254 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "Файл %s, который вы пытаетесь открыть, имеет размер %s. Это превышает допустимый предел для Padre, который составляет сейчас %s. Открытие этого файла может ухудшить производительность. Вы действительно хотите открыть файл?" #: lib/Padre/Config.pm:1937 msgid "The same as Perl itself" msgstr "То же, что и самого Perl" #: lib/Padre/Wx/Dialog/Preferences.pm:478 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "Комбинация клавиш '%s' уже используется для действия '%s'.\n" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "Пока не сохранено ни одной позиции" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Этот документ не содержит POD" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "This function reloads the My plug-in without restarting Padre" msgstr "Эта функция перегружает Мой плагин без перезапуска Padre" #: lib/Padre/Config.pm:1571 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "Это требует установленного Devel::EndStats и перезапуск Padre" #: lib/Padre/Config.pm:1591 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "Это требует установленного Devel::TraceUse и перезапуск Padre" #: lib/Padre/Wx/Main.pm:5401 msgid "This type of file (URL) is missing delete support." msgstr "Для данного типа файла (URL) нет возможности удаления." #: lib/Padre/Wx/Dialog/About.pm:154 msgid "Threads" msgstr "Нити" #: lib/Padre/Wx/FBP/Preferences.pm:1296 #: lib/Padre/Wx/FBP/Preferences.pm:1339 msgid "Timeout (seconds)" msgstr "Таймаут (в секундах)" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "Сегодня" #: lib/Padre/Config.pm:1650 msgid "Toggle Diff window feature that compares two buffers graphically" msgstr "Показать/Cкрыть окно Diff, которое сравнивает два буфера графически " #: lib/Padre/Config.pm:1669 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "Показать/Cкрыть автоопределение Perl 6 в Perl 5 файлах" #: lib/Padre/Wx/FBP/Debugger.pm:316 msgid "" "Toggle running breakpoints (update DB)\n" "b\n" "Sets breakpoint on current line\n" "B line\n" "Delete a breakpoint from the specified line." msgstr "" "Переключить текущие точки останова (обновить DB)\n" "b\n" "Установить точку останова на текущей строки\n" "B строка\n" "Удалить точку останова с указанной строки." #: lib/Padre/Wx/FBP/About.pm:230 msgid "Tom Eliaz" msgstr "Tom Eliaz" #: lib/Padre/Wx/FBP/Preferences.pm:329 msgid "Tool Positions" msgstr "Расположение Утилиты" #: lib/Padre/Wx/FBP/Debugger.pm:231 msgid "Trace" msgstr "Трассировка" #: lib/Padre/Wx/FBP/About.pm:850 msgid "Translation" msgstr "Перевод" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Истина" #: lib/Padre/Locale.pm:421 #: lib/Padre/Wx/FBP/About.pm:637 msgid "Turkish" msgstr "Турецкий" #: lib/Padre/Wx/ActionLibrary.pm:1401 msgid "Turn on CPAN explorer" msgstr "Включить обозреватель CPAN" #: lib/Padre/Wx/ActionLibrary.pm:1411 msgid "Turn on Diff window" msgstr "Включить окно Diff" #: lib/Padre/Wx/ActionLibrary.pm:2076 msgid "Turn on debug breakpoints panel" msgstr "Включить панель с отладочными точками останова" #: lib/Padre/Wx/ActionLibrary.pm:1452 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "Включить проверку синтаксиса текущего дкоумента и показать вывод в окне" #: lib/Padre/Wx/ActionLibrary.pm:1463 msgid "Turn on version control view of the current project and show version control changes in a window" msgstr "Включить просмотр системы контроля версий для текущего проекта и показать изменения системы контроля версий в окне" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Тип" #: lib/Padre/Wx/Dialog/HelpSearch.pm:148 msgid "Type a help &keyword to read:" msgstr "Введите &ключевое слово помощи для чтения:" #: lib/Padre/MIME.pm:40 msgid "UNKNOWN" msgstr "НЕИЗВЕСТНЫЙ" #: lib/Padre/Wx/ActionLibrary.pm:1541 msgid "Un&fold All" msgstr "Ра&звернуть все" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "Невозможно разобрать %s" #: lib/Padre/Wx/ActionLibrary.pm:601 msgid "Undo last change in current file" msgstr "Отменить последнее изменение в текущем файле" #: lib/Padre/Wx/ActionLibrary.pm:1542 #: lib/Padre/Wx/ActionLibrary.pm:1552 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "Развернуть все блоки, которые могут быть развёрнуты (необходимо включение функции сворачивания кода)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Unicode character 'name'" msgstr "Символ юникода 'name'" #: lib/Padre/Locale.pm:143 #: lib/Padre/Wx/Main.pm:4171 msgid "Unknown" msgstr "Неизвестный" #: lib/Padre/PluginManager.pm:771 #: lib/Padre/Document/Perl.pm:656 #: lib/Padre/Document/Perl.pm:905 #: lib/Padre/Document/Perl.pm:954 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "Неизвестная ошибка" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Неизвестная ошибка из " #: lib/Padre/PluginHandle.pm:24 msgid "Unloaded" msgstr "Выгружен" #: lib/Padre/Wx/VCS.pm:258 msgid "Unmodified" msgstr "Не изменён" #: lib/Padre/Document.pm:1062 #, perl-format msgid "Unsaved %d" msgstr "Несохраненный %d" #: lib/Padre/Wx/Main.pm:5134 msgid "Unsaved File" msgstr "Несохраненный файл" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "Неподдерживаемые OS: %s" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "Неозаглавлен" #: lib/Padre/Wx/VCS.pm:251 #: lib/Padre/Wx/VCS.pm:265 #: lib/Padre/Wx/FBP/VCS.pm:189 msgid "Unversioned" msgstr "Без версии" #: lib/Padre/Wx/Dialog/Preferences.pm:36 msgid "Up" msgstr "Вверх" #: lib/Padre/Wx/VCS.pm:264 msgid "Updated but unmerged" msgstr "Обновлён, но не объединён" #: lib/Padre/Wx/FBP/Sync.pm:202 msgid "Upload" msgstr "Выгрузить" #: lib/Padre/Wx/Menu/Edit.pm:263 msgid "Upper/Lo&wer Case" msgstr "Верхний/ни&жний регистр" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Uppercase characters" msgstr "Символы верхнего регистра" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Uppercase next character" msgstr "Перевести следующий символ в верхний регистр" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Uppercase till \\E" msgstr "Всё в верхний регистр до \\E" #: lib/Padre/Wx/FBP/Preferences.pm:1331 msgid "Use FTP passive mode" msgstr "Использовать пассивный режим FTP" #: lib/Padre/Wx/ActionLibrary.pm:1148 msgid "Use Perl source as filter" msgstr "Использовать исходный код на Perl как фильтр" #: lib/Padre/Wx/FBP/Preferences.pm:629 msgid "Use X11 middle button paste style" msgstr "Использовать X11 стиль вставки средней кнопкой" #: lib/Padre/Wx/ActionLibrary.pm:1334 msgid "Use a filter to select one or more files" msgstr "Используйте фильтр для выбора одного или нескольких файлов" #: lib/Padre/Wx/FBP/Preferences.pm:1438 msgid "Use external window for execution" msgstr "Использовать внешнее окно для запуска" #: lib/Padre/Wx/FBP/Preferences.pm:957 msgid "Use tabs instead of spaces" msgstr "Использовать табуляцию вместо пробелов" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "Пользователь" #: lib/Padre/Wx/ActionLibrary.pm:2335 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "Используя CPAN.pm установить CPAN-подобный пакет, открытый локально" #: lib/Padre/Wx/ActionLibrary.pm:2345 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "Использовать pip для загрузки тарболла и устаноить его с помощью CPAN.pm" #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Значение" #: lib/Padre/Wx/ActionLibrary.pm:1924 msgid "Variable Name" msgstr "Имя переменной" #: lib/Padre/Document/Perl.pm:865 msgid "Variable case change" msgstr "Изменить переменный регистр" #: lib/Padre/Wx/VCS.pm:124 #: lib/Padre/Wx/FBP/Preferences.pm:423 msgid "Version Control" msgstr "Контроль Версий" #: lib/Padre/Wx/FBP/Preferences.pm:916 msgid "Version Control Tool" msgstr "Утилита Контроля Версий" #: lib/Padre/Wx/ActionLibrary.pm:1780 msgid "Vertically &Align Selected" msgstr "Вертикальное &выравнивание выделения" #: lib/Padre/Wx/Syntax.pm:77 msgid "Very Fatal Error" msgstr "Самая фатальная ошибка" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:366 msgid "View" msgstr "Вид" #: lib/Padre/Wx/ActionLibrary.pm:2597 msgid "View All &Open Bugs" msgstr "Показать все &открытые баги" #: lib/Padre/Wx/ActionLibrary.pm:2598 msgid "View all known and currently unsolved bugs in Padre" msgstr "Просмотреть все известные и нерешённые баги в Padre" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Visible characters" msgstr "Видимые символы" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Visible characters and spaces" msgstr "Видимые символы и пробелы" #: lib/Padre/Wx/ActionLibrary.pm:2188 msgid "Visit Debug &Wiki..." msgstr "Посетите &Wiki Отладки..." #: lib/Padre/Wx/ActionLibrary.pm:2578 msgid "Visit Perl Websites..." msgstr "Посетите веб-сайты Perl..." #: lib/Padre/Document.pm:778 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "Видимое имя файла %s не совпадает с внутрнним именем %s, хотите ли вы прервать сохранение?" #: lib/Padre/Document.pm:260 #: lib/Padre/Wx/Syntax.pm:47 #: lib/Padre/Wx/Main.pm:3127 #: lib/Padre/Wx/Main.pm:3850 #: lib/Padre/Wx/Main.pm:5417 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Предупреждение" #: lib/Padre/Wx/ActionLibrary.pm:2299 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "Внимание! Это удалит все изменения, которые вы сделали в 'My plug-in' и заменит их кодом по-умолчанию, который идёт с вашей инсталляцией Padre" #: lib/Padre/Wx/Dialog/Patch.pm:535 #, perl-format msgid "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache Subversion\"" msgstr "Внимание: найден SVN v%s, но нам требуется SVN v%s и сейчас он называется \"Apache Subversion\"" #: lib/Padre/Wx/FBP/Expression.pm:96 msgid "Watch" msgstr "Наблюдать" #: lib/Padre/PluginManager.pm:383 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Найдено несколько новых плагинов.\n" "Для того, чтобы настроить и подключить их откройте\n" "Плагины -> Менеджер плагинов\n" "\n" "Список новых плагинов:\n" "\n" #: lib/Padre/Wx/ActionLibrary.pm:2089 #: lib/Padre/Wx/ActionLibrary.pm:2099 msgid "We should not need this menu item" msgstr "Нам не требуется этот пункт меню" #: lib/Padre/Wx/Main.pm:4434 msgid "Web Files" msgstr "Файлы веб" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Любой" #: lib/Padre/Wx/ActionLibrary.pm:1563 msgid "When typing in functions allow showing short examples of the function" msgstr "При наборе в функциях разрешить показывать короткие примеры этой функции" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "Где вы узнали о Padre?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Whitespace characters" msgstr "Пробельные символы" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:372 msgid "Window" msgstr "Окно" #: lib/Padre/Wx/Dialog/WindowList.pm:34 msgid "Window list" msgstr "Список окон" #: lib/Padre/Wx/ActionLibrary.pm:558 msgid "Word count and other statistics of the current document" msgstr "Количество слов и другая статистика текущего документа" #: lib/Padre/Wx/FBP/Document.pm:156 msgid "Words" msgstr "Слов" #: lib/Padre/Wx/ActionLibrary.pm:1629 msgid "Wrap long lines" msgstr "Разбивать длинные строки" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Запись файла на FTP сервер..." #: lib/Padre/Wx/Output.pm:165 #: lib/Padre/Wx/Main.pm:2983 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream версии %s, которая гарантировано вызовет проблемы. /установите по крайней мере 0.20 набрав\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "Год" #: lib/Padre/File/HTTP.pm:162 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "" "Вы пытаетесь записать файл используя HTTP PUT.\n" "Это крайне экспериментальная возможность и не поддерживается большинством серверов." #: lib/Padre/Wx/FBP/ModuleStarter.pm:50 msgid "You can now add multiple module names, ie: Foo::Bar, Foo::Bar::Two (csv)" msgstr "Теперь Вы можете добавлять множество имён модулей, например: Foo::Bar, Foo::Bar::Two (csv)" #: lib/Padre/Wx/Editor.pm:1888 msgid "You must select a range of lines" msgstr "Вы должны выбрать диапазон строк" #: lib/Padre/Wx/Main.pm:3849 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Вы по-прежнему имеете запущеный процесс. Хотите ли вы завершить его и выйти?" #: lib/Padre/MIME.pm:1215 msgid "ZIP Archive" msgstr "ZIP архив" #: lib/Padre/Wx/FBP/About.pm:158 #: lib/Padre/Wx/FBP/About.pm:451 msgid "Zeno Gantner" msgstr "Zeno Gantner" #: lib/Padre/Wx/FBP/Debugger.pm:123 msgid "" "c [line|sub]\n" "Continue, optionally inserting a one-time-only breakpoint at the specified line or subroutine." msgstr "" "c [line|sub]\n" "Продолжить, возможно вставляя одноразовые точки останова на указанной строке подпрограммы" #: lib/Padre/Wx/FBP/About.pm:314 msgid "code4pay" msgstr "code4pay" #: lib/Padre/CPAN.pm:180 msgid "cpanm is unexpectedly not installed" msgstr "cpanm неожиданно не установлен" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "например" #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:353 msgid "fresh" msgstr "новый" #: lib/Padre/Wx/Dialog/ModuleStarter.pm:113 msgid "missing field" msgstr "пропущеное поле" #: lib/Padre/Wx/Dialog/ModuleStarter.pm:167 #, perl-format msgid "module-starter error: %s" msgstr "ошибка module-starter: %s" #: lib/Padre/Wx/FBP/Debugger.pm:83 msgid "" "n [expr]\n" "Next. Executes over subroutine calls, until the beginning of the next statement. If an expression is supplied that includes function calls, those functions will be executed with stops before each statement." msgstr "" "n [expr]\n" "Следующий. Выполнить через процедурный вызов до следующего операторы. Если указано выражение, которое включает вызов функции, эта функция будет вызывана с остановкой перед каждым оператором." #: lib/Padre/Wx/FBP/Debugger.pm:396 msgid "" "o\n" "Display all options.\n" "\n" "o booloption ...\n" "Set each listed Boolean option to the value 1.\n" "\n" "o anyoption? ...\n" "Print out the value of one or more options.\n" "\n" "o option=value ...\n" "Set the value of one or more options. If the value has internal whitespace, it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" to call less with those specific options. You may use either single or double quotes, but if you do, you must escape any embedded instances of same sort of quote you began with, as well as any escaping any escapes that immediately precede that quote but which are not meant to escape the quote itself. In other words, you follow single-quoting rules irrespective of the quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?\"\" .\n" "\n" "For historical reasons, the =value is optional, but defaults to 1 only where it is safe to do so--that is, mostly for Boolean options. It is always better to assign a specific value using = . The option can be abbreviated, but for clarity probably should not be. Several options can be set together. See Configurable Options for a list of these." msgstr "" "o\n" "Показать все опции.\n" "\n" "o booloption ...\n" "Установить каждую указанную опцию в значение 1.\n" "\n" "o anyoption? ...\n" "Напечатать значение одной или нескольких опций.\n" "\n" "o option=value ...\n" "Установить значение одной или нескольких опций. Если значение имеет внутренний пробел, оно должно быть заключено в кавычки. Например, вы можете задать o pager=\"less -MQeicsNfr\" чтобы вызывать less с указанными опциями. Вы можете использовать как одинарные, так и двойные кавыки, и, в таком случае, вы должны экранировать любые внутренние кавычки того же типа, как и экранировать символы экранирования, которые не преследуют цель экранирования. Другими словами используйте правило одинарных кавычек независимо от типа кавычек, например, o option='this isn't bad' or o option=\"She said, \"Isn't it?\"\" .\n" "\n" "По историческим причинам, часть =value опициональна, но по-умолчанию значение 1 присваивается только, когда это вполне безопасно --, например, для булевых опций. Всегда лучше присваивать конкретное значение, используя =. Опция может быть сокращена, но для лучшего понимания этого лучше не делать. Некоторые опции могут быть установлены вместе. Смотрите Редактируемые Опции со списком таких опций." #: lib/Padre/Wx/FBP/PluginManager.pm:89 msgid "plugin name" msgstr "имя плагина" #: lib/Padre/Wx/FBP/PluginManager.pm:104 msgid "plugin status" msgstr "статус плагина" #: lib/Padre/Wx/FBP/PluginManager.pm:98 msgid "plugin version" msgstr "версия плагина" #: lib/Padre/Wx/FBP/Breakpoints.pm:113 msgid "project" msgstr "проект" #: lib/Padre/Wx/FBP/Debugger.pm:103 msgid "" "r\n" "Continue until the return from the current subroutine. Dump the return value if the PrintRet option is set (default)." msgstr "" "r\n" "Продолжить до возврата из текущей подпрограммы. Вывести возвращаемое значение, если установлена опция PrintRet (по-умолчанию)." #: lib/Padre/Wx/FBP/Debugger.pm:63 msgid "" "s [expr]\n" "Single step. Executes until the beginning of another statement, descending into subroutine calls. If an expression is supplied that includes function calls, it too will be single-stepped." msgstr "" "s [expr]\n" "Один шаг. Выполнение до следующего оператора с погружением в процедурные вызовы. Если указано выражение, которое включает вызов функции, оно также будет выполнено пошагово." #: lib/Padre/Wx/FBP/Breakpoints.pm:118 msgid "show breakpoints in project" msgstr "показать точки останова проекта" #: lib/Padre/Wx/FBP/Debugger.pm:236 msgid "" "t\n" "Toggle trace mode (see also the AutoTrace option)." msgstr "" "t\n" "Включить режим трассировки (смотрите также опцию AutoTrace)." #: lib/Padre/Wx/FBP/Debugger.pm:276 msgid "v [line] View window around line." msgstr "v [line] Окно просмотра вокруг указанной строки." #: lib/Padre/Wx/FBP/Debugger.pm:464 msgid "" "w expr\n" "Add a global watch-expression. Whenever a watched global changes the debugger will stop and display the old and new values.\n" "\n" "W expr\n" "Delete watch-expression\n" "W *\n" "Delete all watch-expressions." msgstr "" "w expr\n" "Добавить глобальное наблюдение за выражением. Всякий раз когда наблюдаемое глобальная переменная изменяется, отладчик останавливается и показывает старое и новое значение.\n" "\n" "W expr\n" "Удалить наблюдение за выражением\n" "W *\n" "Удалить все наблюдаемые выражения." #: lib/Padre/Wx/FBP/Debugger.pm:217 msgid "" "working now with some gigery pokery to get around\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" msgstr "" "работаем теперь с некоторым костылём для обхода проблемы\n" "Прерывающая Ошибка, Вы не можете использовать FIRSTKEY с хэшем %~" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "обернуть в grep {}" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "обернуть в map {}" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "&Live поддержка wxPerl" #: lib/Padre/Wx/FBP/Debugger.pm:198 msgid "" "y [level [vars]]\n" "Display all (or some) lexical variables (mnemonic: mY variables) in the current scope or level scopes higher. You can limit the variables that you see with vars which works exactly as it does for the V and X commands. Requires the PadWalker module version 0.08 or higher; will warn if this isn't installed. Output is pretty-printed in the same style as for V and the format is controlled by the same options." msgstr "" "y [level [vars]]\n" "Показать все (или некоторые) лексические переменные (мнемонически: mY переменные) в текущей области видимости или областями видимости более высокого уровня. Вы можете ограничить переменные, которые Вы хотите видеть тем набором vars, которые работает так же, как работают команды V и X комманды. Требуется модуль PadWalker 0.08 или выше; вызовет предупреждение если он не установлен. Вывод симпатично печатается в том же стиле, что и для V и формат контроллируется теми же опциями." #~ msgid "&Install CPAN Module" #~ msgstr "&Установить CPAN-модуль" #~ msgid "&Module Tools" #~ msgstr "&Утилиты модулей" #~ msgid "&Update" #~ msgstr "&Обновить" #~ msgid "Ahmad Zawawi: Developer" #~ msgstr "Ahmad Zawawi: Разработчик" #~ msgid "Auto-Complete" #~ msgstr "Автоподстановка" #~ msgid "Automatic indentation style detection" #~ msgstr "Автоматическое определение стиля для отступов" #~ msgid "Case &sensitive" #~ msgstr "Регистро&зависимо" #~ msgid "Characters (including whitespace)" #~ msgstr "Символов (включая пробельные)" #~ msgid "Check for file updates on disk every (seconds)" #~ msgstr "Проверять обновление файла на диске каждые (секунд)" #~ msgid "Cl&ose Window on Hit" #~ msgstr "З&акрыть окно при совпадении" #~ msgid "Close Window on &Hit" #~ msgstr "Закрыть окно при &совпадении" #~ msgid "Content" #~ msgstr "Содержимое" #~ msgid "Copy &All" #~ msgstr "Копировать В&сё" #~ msgid "Copy &Selected" #~ msgstr "Копировать &Выделенное" #~ msgid "Core Team" #~ msgstr "Основная Команда" #~ msgid "Could not determine the comment character for %s document type" #~ msgstr "Не могу определить символ комментария для типа документа %s" #~ msgid "Could not set breakpoint on file '%s' row '%s'" #~ msgstr "Не могу установить точку останова на файл '%s' в строке '%s'" #~ msgid "Created by:" #~ msgstr "Создано:" #~ msgid "Debugger not running" #~ msgstr "Отладчик не запущен" #~ msgid "Developers" #~ msgstr "Разработчики" #~ msgid "Did not find any matches." #~ msgstr "Не удалось найти каких-либо совпадений." #~ msgid "" #~ "Display the current value of a variable in the right hand side debugger " #~ "pane" #~ msgstr "" #~ "Отобразить текущее значение переменной с правой стороны панели отладчика" #~ msgid "Document Tools (Right)" #~ msgstr "Утилиты документа (справа)" #~ msgid "Error loading pod for class '%s': %s" #~ msgstr "Ошибка загрузки pod для класса '%s': %s" #~ msgid "Evaluate Expression..." #~ msgstr "Вычислить выражение..." #~ msgid "" #~ "Execute the next statement, enter subroutine if needed. (Start debugger " #~ "if it is not yet running)" #~ msgstr "" #~ "Выполнить следующий оператор, ввойти в подпрограмму если необходимо. " #~ "(Запустить отладчик, если он ещё не запущен)" #~ msgid "" #~ "Execute the next statement. If it is a subroutine call, stop only after " #~ "it returned. (Start debugger if it is not yet running)" #~ msgstr "" #~ "Выполнить следующий оператор. Если это вызов процедуры, то остановиться " #~ "только после того, как она вернёт управление. (Запустить отладчик, если " #~ "он ещё не запущен)" #~ msgid "Expr" #~ msgstr "Выражение" #~ msgid "Expression:" #~ msgstr "Выражение:" #~ msgid "Fast but might be out of date" #~ msgstr "Быстрый, но может быть неточным" #~ msgid "File access via FTP" #~ msgstr "Файловый доступ через FTP" #~ msgid "File access via HTTP" #~ msgstr "Файловый доступ через HTTP" #~ msgid "Filename" #~ msgstr "Имя файла" #~ msgid "Filter" #~ msgstr "Фильтр" #~ msgid "Find Results (%s)" #~ msgstr "Найдены Результаты (%s)" #~ msgid "Find Text:" #~ msgstr "Найти текст:" #~ msgid "Find and Replace" #~ msgstr "Найти и заменить" #~ msgid "Gabor Szabo: Project Manager" #~ msgstr "Gabor Szabo: Руководитель проекта" #~ msgid "Go to &Todo Window" #~ msgstr "Перейти к окну &Todo" #~ msgid "" #~ "Hopefully faster than the PPI Traditional. Big file will fall back to " #~ "Scintilla highlighter." #~ msgstr "" #~ "Надеемся быстрее чем PPI Традиционный.\n" #~ "Большие файлы будут обрабатываться в движке подсветки синтаксиса Scintilla" #~ msgid "If within a subroutine, run till return is called and then stop." #~ msgstr "" #~ "Если внутри подпрограммы, то работать пока не произойдёт вызов return, и " #~ "после этого остановиться." #~ msgid "Indentation width (in columns)" #~ msgstr "Размер отступов (в символах):" #~ msgid "Install a Perl module from CPAN" #~ msgstr "Установить Perl модуль из CPAN" #~ msgid "Interpreter arguments" #~ msgstr "Параметры интерпретатора" #~ msgid "Jump to Current Execution Line" #~ msgstr "Перейти к текущей линии выполнения" #~ msgid "Kibibytes (kiB)" #~ msgstr "Кибибайты (киБ)" #~ msgid "Kilobytes (kB)" #~ msgstr "Килобайты (кБ)" #~ msgid "Line" #~ msgstr "Строка" #~ msgid "Line break mode" #~ msgstr "Режим переноса строк" #~ msgid "List all the breakpoints on the console" #~ msgstr "Показать все точки останова в консоли" #~ msgid "Local/Remote File Access" #~ msgstr "Локальный/Удалённый файловый доступ" #~ msgid "MIME type did not have a class entry when %s(%s) was called" #~ msgstr "Тип MIME не имеет класса при вызове %s(%s)" #~ msgid "MIME type is not supported when %s(%s) was called" #~ msgstr "Неподдерживаемый тип MIME при вызове %s(%s)" #~ msgid "MIME type was not supported when %s(%s) was called" #~ msgstr "Неподдерживаемый тип MIME при вызове %s(%s)" #~ msgid "Match Case" #~ msgstr "Случай совпадения" #~ msgid "Methods order" #~ msgstr "Порядок методов" #~ msgid "Module name:" #~ msgstr "Название модуля:" #~ msgid "Move to other panel" #~ msgstr "Переместить на другую панель" #~ msgid "MyLabel" #~ msgstr "МояМетка" #~ msgid "Next" #~ msgstr "Следующий" #~ msgid "No file is open" #~ msgstr "Ни один файл не открыт" #~ msgid "No module mime_type='%s' filename='%s'" #~ msgstr "Нет модуля mime_type='%s' файл='%s'" #~ msgid "Non-whitespace characters" #~ msgstr "Непробельных символов" #~ msgid "Open files" #~ msgstr "Открыть файлы" #~ msgid "Padre:-" #~ msgstr "Padre:" #~ msgid "Perl interpreter" #~ msgstr "Интерпретатор Perl" #~ msgid "Plug-in Name" #~ msgstr "Имя плагина" #~ msgid "Prefered language for error diagnostics" #~ msgstr "Предпочитаемый язык для диагностики ошибок" #~ msgid "Previ&ous" #~ msgstr "Преды&дущий" #~ msgid "Project Tools (Left)" #~ msgstr "Утилиты проекта (слева)" #~ msgid "R/W" #~ msgstr "Чтение/Запись" #~ msgid "RegExp for TODO panel" #~ msgstr "Регулярное выражение для TODO-панели" #~ msgid "Regular &Expression" #~ msgstr "Регулярное &Выражение" #~ msgid "Related editor has been closed" #~ msgstr "Связанный редактор был закрыт" #~ msgid "Reload all files" #~ msgstr "Переоткрыть все файлы" #~ msgid "Reload some" #~ msgstr "Переоткрыть некоторые" #~ msgid "Reload some files" #~ msgstr "Переоткрыть некоторые файлы" #~ msgid "Remove the breakpoint at the current location of the cursor" #~ msgstr "Удалить точку останова в текущей позиции курсора" #~ msgid "Replace All" #~ msgstr "Заменить все" #~ msgid "Replace Text:" #~ msgstr "Заменить текст:" #~ msgid "Replace With" #~ msgstr "Заменить текстом" #~ msgid "Run till Breakpoint (&c)" #~ msgstr "Выполнять до точки остановки (&c)" #~ msgid "Run to Cursor" #~ msgstr "Выполнять до курсора" #~ msgid "Search &Term" #~ msgstr "&Условия поиска" #~ msgid "Search again for '%s'" #~ msgstr "Снова искать '%s'" #~ msgid "Set a breakpoint at the line where to cursor is and run till there" #~ msgstr "" #~ "Установить точку останова на линии, где находится курсор и выполнять до " #~ "этой точки" #~ msgid "" #~ "Set focus to the line where the current statement is in the debugging " #~ "process" #~ msgstr "" #~ "Установить фокус на линии, где находится текущий оператор в процессе " #~ "отладки" #~ msgid "Set the focus to the \"Todo\" window" #~ msgstr "Установить фокус на окне \"Todo\"" #~ msgid "Show Stack Trace (&t)" #~ msgstr "Показать трассировку стека (&t)" #~ msgid "Show Value Now (&x)" #~ msgstr "Показать значение сейчас (&x)" #~ msgid "Show the value of a variable now in a pop-up window." #~ msgstr "Показать значение переменной сейчас в сплывающем окне." #~ msgid "Slow but accurate and we have full control so bugs can be fixed" #~ msgstr "" #~ "Медленный, но точный и мы имеем полный контроль, т.о. баги могут быть " #~ "исправлены" #~ msgid "Start running and/or continue running till next breakpoint or watch" #~ msgstr "" #~ "Приступить к выполнению и/или продолжать выполнение пока не достигнута " #~ "следующая точка останова или доступа" #~ msgid "Stats" #~ msgstr "Статистика" #~ msgid "Step In (&s)" #~ msgstr "Шаг внутрь (&s)" #~ msgid "Step Out (&r)" #~ msgstr "Шаг наружу (&r)" #~ msgid "Step Over (&n)" #~ msgstr "Шаг через (&n)" #~ msgid "Syntax Highlighter" #~ msgstr "Выделитель" #~ msgid "Tab display size (in spaces)" #~ msgstr "Размер табуляции (в пробелах)" #~ msgid "" #~ "The debugger is not running.\n" #~ "You can start the debugger using one of the commands 'Step In', 'Step " #~ "Over', or 'Run till Breakpoint' in the Debug menu." #~ msgstr "" #~ "Отладчик не запущен.\n" #~ "Вы можете запустить отладчик, используя одну из команд 'Шаг внутрь', 'Шаг " #~ "через', или 'Выполнять до точки остановки' в меню отладки." #~ msgid "" #~ "The directory browser got an undef object and may stop working now. " #~ "Please save your work and restart Padre." #~ msgstr "" #~ "Обозреватель каталогов получил неопределённый объект и может сейчас " #~ "прекратить работать. Пожалуйста, сохраните Вашу работу и перезапустите " #~ "Padre." #~ msgid "To-do" #~ msgstr "To-do" #~ msgid "Toggle MetaCPAN CPAN explorer panel" #~ msgstr "Показать/Cкрыть панель MetaCPAN обозревателя CPAN" #~ msgid "Type in any expression and evaluate it in the debugged process" #~ msgstr "Ввести любое выражение и вычислить его в отладочном процессе" #~ msgid "Use Tabs" #~ msgstr "Использовать табы" #~ msgid "Username" #~ msgstr "Пользователь" #~ msgid "Variable" #~ msgstr "Переменная" #~ msgid "Version" #~ msgstr "Версия" #~ msgid "" #~ "When in a subroutine call show all the calls since the main of the program" #~ msgstr "" #~ "Когда находимся в подпрограмме, показать все вызовы, начиная с начала " #~ "программы" #~ msgid "X" #~ msgstr "X" #~ msgid "disabled" #~ msgstr "отключён" #~ msgid "enabled" #~ msgstr "подключён" #~ msgid "error" #~ msgstr "Ошибка" #~ msgid "no highlighter for mime-type '%s' using stc" #~ msgstr "нет подсветки синтаксиса для типа mime '%s' используя stc" #~ msgid "none" #~ msgstr "нет" #~ msgid "%s has no constructor" #~ msgstr "%s не имеет конструктора" #~ msgid "&Add" #~ msgstr "&Добавить" #~ msgid "&Back" #~ msgstr "&Назад" #~ msgid "&Insert" #~ msgstr "Вст&авить" #~ msgid "&Uncomment Selected Lines" #~ msgstr "&Раскомментировать выделенные строки" #~ msgid "About Padre" #~ msgstr "О программе" #~ msgid "Any changes to these options require a restart:" #~ msgstr "Любые изменения в этих опциях требуют рестарта:" #~ msgid "Apply Diff to File" #~ msgstr "Применить изменения к файлу" #~ msgid "Apply Diff to Project" #~ msgstr "Применить изменения к проекту" #~ msgid "Apply a patch file to the current document" #~ msgstr "Применить патч-файл к текущему документу" #~ msgid "Apply a patch file to the current project" #~ msgstr "Применить патч-файл к текущему проекту" #~ msgid "Artistic License 1.0" #~ msgstr "Артистическая лицензия 1.0" #~ msgid "Artistic License 2.0" #~ msgstr "Артистическая лицензия 2.0" #~ msgid "Blue butterfly on a green leaf" #~ msgstr "Голубая бабочка на зелёном листе" #~ msgid "Browse..." #~ msgstr "Просмотр..." #~ msgid "Cannot diff if file was never saved" #~ msgstr "Невозможно найти различия в несохраненном файле" #~ msgid "Case &insensitive" #~ msgstr "Регистро&независимый" #~ msgid "Category:" #~ msgstr "Категория:" #~ msgid "Change font size" #~ msgstr "Изменить размер шрифта" #~ msgid "Choose the default projects directory" #~ msgstr "Выбрать каталог проекта по умолчанию" #~ msgid "Class:" #~ msgstr "Класс:" #~ msgid "" #~ "Compare the file in the editor to that on the disk and show the diff in " #~ "the output window" #~ msgstr "" #~ "Сравнить файл в редакторе с файлом на диске и показать различия в окне " #~ "вывода" #~ msgid "Creates a Padre Plugin" #~ msgstr "Создать Padre плагин" #~ msgid "Creates a Padre document" #~ msgstr "Создаёт Padre документ" #~ msgid "Creates a Perl 5 module or script" #~ msgstr "Создать модуль или скрипт Perl 5" #~ msgid "Current Document: %s" #~ msgstr "Текущий документ: %s" #~ msgid "Current file's basename" #~ msgstr "Базовое имя текущего файла" #~ msgid "Current file's dirname" #~ msgstr "Имя каталога текущего файла" #~ msgid "Current filename" #~ msgstr "Текущее имя файла" #~ msgid "Current filename relative to project" #~ msgstr "Текущее имя файла относительно проекта" #~ msgid "Diff Tools" #~ msgstr "Инструменты сравнения" #~ msgid "Diff to Saved Version" #~ msgstr "Diff к сохранённой версии" #~ msgid "Diff tool:" #~ msgstr "Утилита сравнения:" #~ msgid "Document name:" #~ msgstr "Название документа:" #~ msgid "Dump" #~ msgstr "Дамп" #~ msgid "Dump %INC and @INC" #~ msgstr "Дамп %INC и @INC" #~ msgid "Dump Current Document" #~ msgstr "Дамп текущего документа" #~ msgid "Dump Current PPI Tree" #~ msgstr "Дамп текущего PPI дерева" #~ msgid "Dump Display Geometry" #~ msgstr "Дамп геометрии дисплея" #~ msgid "Dump Expression..." #~ msgstr "Дамп выражения..." #~ msgid "Dump Task Manager" #~ msgstr "Дамп менеджера задач" #~ msgid "Dump Top IDE Object" #~ msgstr "Дамп Top IDE Object" #~ msgid "Edit/Add Snippets" #~ msgstr "Редактировать/добавить фрагменты" #~ msgid "Enable bookmarks" #~ msgstr "Включить закладки" #~ msgid "Enable session manager" #~ msgstr "Включить Менеджер сесиий" #~ msgid "Enable?" #~ msgstr "Включить?" #~ msgid "Error while loading %s" #~ msgstr "Произошла ошибка при загрузке %s" #~ msgid "Evening" #~ msgstr "Вечер" #~ msgid "External Tools" #~ msgstr "Внешние утилиты" #~ msgid "Failed to find template file '%s'" #~ msgstr "Не удалось найти файл шаблона '%s'" #~ msgid "Find Previous" #~ msgstr "Найти предыдущее" #~ msgid "" #~ "Find next matching text using a toolbar-like dialog at the bottom of the " #~ "editor" #~ msgstr "" #~ "Найти следующий текст совпадения, используя диалог в виде панели внизу " #~ "редактора" #~ msgid "" #~ "Find previous matching text using a toolbar-like dialog at the bottom of " #~ "the editor" #~ msgstr "" #~ "Найти предыдущий текст совпадения, используя диалог в виде панели внизу " #~ "редактора" #~ msgid "Found %d issue(s)" #~ msgstr "Найдено %d ошибок" #~ msgid "Goto" #~ msgstr "Перейти" #~ msgid "Goto previous position" #~ msgstr "Перейти в предыдущую позицию" #~ msgid "Guess" #~ msgstr "Угадать" #~ msgid "Hide Find in Files" #~ msgstr "Скрыть поиск в файлах" #~ msgid "Hide the list of matches for a Find in Files search" #~ msgstr "Скрыть список совпадений для поиска Найти в Файлах" #~ msgid "Imitate clicking on the right mouse button" #~ msgstr "Иммитировать нажатие правой клавишей мыши" #~ msgid "Indication if current file was modified" #~ msgstr "Индикация если текущий файл был изменён" #~ msgid "Jump between the two last visited files back and forth" #~ msgstr "Переход между двумя последними посещёнными файлами туда и обратно" #~ msgid "Jump to the last position saved in memory" #~ msgstr "Переход на последнюю позицию, сохранённую в памяти" #~ msgid "Mime type already had a class '%s' when %s(%s) was called" #~ msgstr "Тип MIME уже имеет класс '%s' при вызове %s(%s)" #~ msgid "Module" #~ msgstr "Модуль" #~ msgid "Mozilla Public License" #~ msgstr "Публичная лицензия Mozilla" #~ msgid "N/A" #~ msgstr "N/A" #~ msgid "Name of the current subroutine" #~ msgstr "Имя текущей процедуры" #~ msgid "Name:" #~ msgstr "Имя:" #~ msgid "New" #~ msgstr "Новый" #~ msgid "Night" #~ msgstr "Ночь" #~ msgid "No Document" #~ msgstr "Нет документа" #~ msgid "No Perl 5 file is open" #~ msgstr "Нет открытого файла Perl 5" #~ msgid "No errors or warnings found." #~ msgstr "Не найдено ошибок или предупреждений." #~ msgid "Notepad++" #~ msgstr "Notepad++" #~ msgid "Oldest Visited File" #~ msgstr "Самый старый из открытых файлов" #~ msgid "Open Source" #~ msgstr "Открытые Исходники" #~ msgid "Opens the Padre document wizard" #~ msgstr "Открыть помощника по документу Padre" #~ msgid "Opens the Padre plugin wizard" #~ msgstr "Открыть помощника по плагину Padre" #~ msgid "Opens the Perl 5 module wizard" #~ msgstr "Открыть помощника по молулю Perl 5" #~ msgid "Padre Document Wizard" #~ msgstr "Помощник для документа Padre" #~ msgid "Padre Plugin Wizard" #~ msgstr "Помощник для плагина Padre" #~ msgid "Padre version" #~ msgstr "Версия Padre" #~ msgid "Perl 5" #~ msgstr "Perl 5" #~ msgid "Perl 5 Module Wizard" #~ msgstr "Помощник для модуля Perl 5" #~ msgid "Perl Auto Complete" #~ msgstr "Автозавершение Perl" #~ msgid "Perl licensing terms" #~ msgstr "Условия лицензирования Perl" #~ msgid "Pick parent directory" #~ msgstr "Выбрать родительский каталог" #~ msgid "Project name" #~ msgstr "Название проекта" #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "Поместить фокус на табе посещённый давнее других." #~ msgid "Run Parameters" #~ msgstr "Параметры запуска" #~ msgid "Save settings" #~ msgstr "Сохранить настройки" #~ msgid "Search Backwards" #~ msgstr "Поиск назад" #~ msgid "Search Directory:" #~ msgstr "Поиск в каталоге:" #~ msgid "Search in Types:" #~ msgstr "Поиск в типах:" #~ msgid "Selects and opens a wizard" #~ msgstr "Выбрать и открыть помощника" #~ msgid "Settings Demo" #~ msgstr "Настройки демо" #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "Показать диалог привязки клавиш для конфигурации сочетаний клавиш" #~ msgid "Show the list of positions recently visited" #~ msgstr "Показать список ранее посещённых позиций" #~ msgid "Snippets" #~ msgstr "Фрагменты" #~ msgid "Special Value:" #~ msgstr "Специальное значение:" #~ msgid "Statusbar:" #~ msgstr "Статус:" #~ msgid "Style" #~ msgstr "Стиль" #~ msgid "Switch highlighting colours" #~ msgstr "Переключить цвета выделения" #~ msgid "" #~ "Switch to edit the file that was previously edited (can switch back and " #~ "forth)" #~ msgstr "" #~ "Переключиться на редактирование файла, который ранее редактировался " #~ "(может переключить назад и вперёд)" #~ msgid "System Info" #~ msgstr "Системная информация" #~ msgid "The Padre Development Team" #~ msgstr "Команда разработчиков Perl" #~ msgid "The Padre Translation Team" #~ msgstr "Команда переводчиков Padre" #~ msgid "There are no differences\n" #~ msgstr "Различий нет\n" #~ msgid "Ultraedit" #~ msgstr "Ultraedit" #~ msgid "Unsaved" #~ msgstr "Несохранённый" #~ msgid "Uptime" #~ msgstr "Время работы" #~ msgid "Use panel order for Ctrl-Tab (not usage history)" #~ msgstr "" #~ "Использовать порядок панелей для Ctrl-Tab (не история использования)" #~ msgid "Use rege&x" #~ msgstr "&Регулярное выражение" #~ msgid "Visit the PerlMonks" #~ msgstr "Посетить сайт PerlMonks" #~ msgid "Window title:" #~ msgstr "Заголовок окна:" #~ msgid "Wizard Selector" #~ msgstr "Выбор помощника" #~ msgid "Wizard Selector..." #~ msgstr "Выбор помощника..." #~ msgid "alphabetical" #~ msgstr "алфавитный" #~ msgid "alphabetical_private_last" #~ msgstr "алфавитный (приватные последние)" #~ msgid "deep" #~ msgstr "глубокий" #~ msgid "last" #~ msgstr "Последний" #~ msgid "new" #~ msgstr "Новый" #~ msgid "no" #~ msgstr "Нет" #~ msgid "nothing" #~ msgstr "Ничего" #~ msgid "original" #~ msgstr "оригинальный" #~ msgid "restrictive" #~ msgstr "ограничивающая" #~ msgid "same_level" #~ msgstr "похожий уровень" #~ msgid "session" #~ msgstr "сессия" #~ msgid "splash image is based on work by" #~ msgstr "изображение на заставке основано на работе" #~ msgid "Open" #~ msgstr "Открыть" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "Директория проекта %s не существует (больше). Это фатальная ошибка и " #~ "вызовет проблемы, пожалуйста закройте или сохраните_как этот файл, если " #~ "только выне осознаете что делаете" #~ msgid "Find &Text:" #~ msgstr "Найти &Текст:" #~ msgid "Not a valid search" #~ msgstr "Некорректный поиск" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Имитация падения фоновой задачи" #~ msgid "Info" #~ msgstr "Информация" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "Показывать список ошибок, полученных во время выполнения скрипта" #~ msgid "No diagnostics available for this error." #~ msgstr "Нет доступной диагностики для этой ошибки." #~ msgid "Quick Find" #~ msgstr "Быстрый поиск" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "Последовательный поиск виден внизу окна" #~ msgid "Automatic Bracket Completion" #~ msgstr "Автоматическое расставление скобок" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "Когда вводится { добавляется и закрывающая } автоматически" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "Показывать окно с просмотрщиком каталога текущего проекта" #~ msgid "???" #~ msgstr "???" #~ msgid "Pick &directory" #~ msgstr "Выбрать &каталог" #~ msgid "Case &Insensitive" #~ msgstr "Регистро&независимо" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "Пропускать скрытые подкаталоги" #~ msgid "Show only files that don't match" #~ msgstr "Показывать только те файлы, которые не совпадают" #~ msgid "Found %d files and %d matches\n" #~ msgstr "Найдено %d файлов и %d совпадений\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "'%s' не найден в файле '%s'\n" #~ msgid "Diagnostics" #~ msgstr "Диагностика" #~ msgid "Errors" #~ msgstr "Ошибки" #~ msgid "Key binding name" #~ msgstr "Имя привязки клавиши" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "Невозможно открыть %s из-за ограничения Padre на длину файла: %s" #~ msgid "Norwegian (Norway)" #~ msgstr "Норвежский (Норвегия)" #~ msgid "Plugin:%s - Failed to load module: %s" #~ msgstr "Плагин:%s - Ошибка загрузки модуля: %s" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of " #~ "Padre::Plugin" #~ msgstr "" #~ "Плагин:%s - Несовместим с Padre::Plugin API. Плагин должен быть " #~ "подклассом Padre::Plugin" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Plugin cannot be " #~ "instantiated" #~ msgstr "" #~ "Плагин:%s - Несовместим с Padre::Plugin API. Плагин не может быть " #~ "обработан" #~ msgid "" #~ "Plugin:%s - Not compatible with Padre::Plugin API. Need to have sub " #~ "padre_interfaces" #~ msgstr "" #~ "Плагин:%s - Несовместим с Padre::Plugin API. Плагин должен содержать " #~ "функцию padre_interfaces" #~ msgid "" #~ "Plugin:%s - Could not instantiate plugin object: the constructor does not " #~ "return a Padre::Plugin object" #~ msgstr "" #~ "Плагин:%s - Не может быть обработан объект плагина: конструктор не вернул " #~ "Padre::Plugin объект" #~ msgid "Plugin:%s - Does not have menus" #~ msgstr "Плагин:%s - Не содержит меню" #~ msgid "%s worker threads are running.\n" #~ msgstr "запущено %s рабочих потоков.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "На данный момент нет выполняющихся фоновых задач.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "На данный момент следующие задачи выполняются фоновом режиме:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s, тип '%s':\n" #~ " (в потоке(ах) %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "Кроме того, %s задач выполняются.\n" #~ msgid "Replacement" #~ msgstr "Замена" #~ msgid "Enable logging" #~ msgstr "Включить логирование" #~ msgid "Disable logging" #~ msgstr "Отключить логирование" #~ msgid "Enable trace when logging" #~ msgstr "Включить трасирование во время логирования" #~ msgid "Install Module..." #~ msgstr "Установить модуль..." #~ msgid "Term:" #~ msgstr "Термин:" #~ msgid "Dir:" #~ msgstr "Каталог:" #~ msgid "Ack" #~ msgstr "Искать" #~ msgid "Select all\tCtrl-A" #~ msgstr "Веделить все\tCtrl+A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "&Копировать\tCtrl+C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "&Вырезать\tCtrl+X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "Вст&авить\tCtrl+V" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "&Разкомментировать выделенные строки\tCtrl+Shift+M" #~ msgid "&Split window" #~ msgstr "Разделить &окно" #~ msgid "Error List" #~ msgstr "Список ошибок" #~ msgid "Sub List" #~ msgstr "Список функций" #~ msgid "Lines: %d" #~ msgstr "Строк: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "Символов без пробелов: %s" #~ msgid "Chars with spaces: %d" #~ msgstr "Символов с пробелами: %d" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "" #~ "Со времени последнего сохранения файл изменился. Переоткрыть с диска?" #~ msgid "Workspace View" #~ msgstr "Вид рабочей области" #~ msgid "L:" #~ msgstr "Стр.:" #~ msgid "Ch:" #~ msgstr "Симв.:" #~ msgid "Save File" #~ msgstr "Сохранить файл" #~ msgid "Undo" #~ msgstr "Отменить" #~ msgid "Redo" #~ msgstr "Повторить" #~ msgid "Background Tasks are idle" #~ msgstr "Фоновый задачи выполнены" #~ msgid "&Use Regex" #~ msgstr "&Регулярное выражение" #~ msgid "%s occurences were replaced" #~ msgstr "заменено %s" #~ msgid "%s apparantly created. Do you want to open it now?" #~ msgstr "%s создан. Открыть?" #~ msgid "Done" #~ msgstr "Готово" #~ msgid "&Goto\tCtrl-G" #~ msgstr "&Перейти к\tCtrl+G" #~ msgid "&AutoComp\tCtrl-P" #~ msgstr "Авто&заполнение\tCtrl+P" #~ msgid "Snippets\tCtrl-Shift-A" #~ msgstr "Сниппеты\tCtrl+Shift+A" #~ msgid "Upper All\tCtrl-Shift-U" #~ msgstr "Все в верхний регистр\tCtrl+Shift+U" #~ msgid "Insert From File..." #~ msgstr "Вставить из файла..." #~ msgid "Disable Experimental Mode" #~ msgstr "Отключить экспериментальный режим" #~ msgid "Refresh Counter: " #~ msgstr "Обновить счетчик: " #~ msgid "&New\tCtrl-N" #~ msgstr "&Новый\tCtrl+N" #~ msgid "&Open...\tCtrl-O" #~ msgstr "&Открыть...\tCtrl+O" #~ msgid "Open Selection\tCtrl-Shift-O" #~ msgstr "Открыть выделенное\tCtrl+Shift+O" #~ msgid "&Close\tCtrl-W" #~ msgstr "&Закрыть\tCtrl+W" #~ msgid "Close All but Current" #~ msgstr "Закрыть все, кроме текущего" #~ msgid "&Save\tCtrl-S" #~ msgstr "&Сохранить\tCtrl+S" #~ msgid "Save Session...\tCtrl-Alt-S" #~ msgstr "Сохранить сессию\tCtrl+Alt+S" #~ msgid "Convert..." #~ msgstr "Преобразовать..." #~ msgid "&Quit\tCtrl-Q" #~ msgstr "&Выход\tCtrl+Q" #~ msgid "Copyright 2008-2009 The Padre development team as listed in Padre.pm" #~ msgstr "" #~ "Все права сохранены. 2008-2009 Команда разработчиков Padre, перечисленных " #~ "в Padre.pm." #~ msgid "Use PPI Syntax Highlighting" #~ msgstr "Использовать PPI для подсветки синтаксиса" #~ msgid "All available plugins on CPAN" #~ msgstr "Все доступные плагины на CPAN" #~ msgid "Test A Plugin From Local Dir" #~ msgstr "Проверить плагин в локальном каталоге" #~ msgid "Stop\tF6" #~ msgstr "Ос&тановить" #~ msgid "&Find\tCtrl-F" #~ msgstr "&Найти\tCtrl+F" #~ msgid "Replace\tCtrl-R" #~ msgstr "&Заменить" #~ msgid "Find Next\tF4" #~ msgstr "Найти следующее\tF4" #~ msgid "Find Previous\tShift-F4" #~ msgstr "Найти предыдущее\tShift+F4" #~ msgid "Set Bookmark\tCtrl-B" #~ msgstr "Поместить в закладки\tCtrl+B" #~ msgid "Goto Bookmark\tCtrl-Shift-B" #~ msgstr "Перейти к закладке\tCtrl+Shift+B" #~ msgid "Next File\tCtrl-TAB" #~ msgstr "Следующий файл\tCtrl+Tab" #~ msgid "Previous File\tCtrl-Shift-TAB" #~ msgstr "Предыдущий файл\tCtrl+Shift+Tab" #~ msgid "No output" #~ msgstr "Вывода нет" #~ msgid "Ac&k Search" #~ msgstr "Искать" Padre-1.00/share/locale/tr.po0000644000175000017500000060377711713622165014517 0ustar petepete# Turkish translations for Padre package. # Copyright (C) 2010 THE Padre'S COPYRIGHT HOLDER # This file is distributed under the same license as the Padre package. # Burak Gürsoy , 2010. # msgid "" msgstr "" "Project-Id-Version: tr-0.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-02-03 08:10-0800\n" "PO-Revision-Date: 2012-02-06 01:46+0100\n" "Last-Translator: Burak Gürsoy \n" "Language-Team: Turkish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Poedit-Language: Turkish\n" "X-Poedit-Country: TURKEY\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:477 msgid "\".\" also matches newline" msgstr "\".\" ayrıca yeni satırlada eşleşir" #: lib/Padre/Config.pm:487 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "\"Oturum aç\", Padre' yi çalıştırdığınızda, hangi oturumu (dosya kümesini) açmak istediğinizi soracak" #: lib/Padre/Config.pm:489 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "\"Daha önce açılmış dosyalar\", Padre'yi kapattığınızda hangi dosyaların açık olduğunu hatırlayacak ve Padre'yi tekrar açtığınızda aynı dosyaları tekrar açacaktır." #: lib/Padre/Wx/Dialog/RegexEditor.pm:481 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" ve \"$\" damgaları, bir dizgi içindeki herhangi bir satırın başı ve sonu ile eşleşir" #: lib/Padre/Wx/Dialog/PerlFilter.pm:230 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# Girdinin bulunduğu yer: $_\n" "$_ = $_;\n" "# Çıktının gittiği yer: $_\n" #: lib/Padre/Wx/Dialog/PerlFilter.pm:72 msgid "$_ for both" msgstr "her ikisi için $_" #: lib/Padre/Wx/Diff.pm:110 #, perl-format msgid "%d line added" msgstr "%d satır eklendi" #: lib/Padre/Wx/Diff.pm:99 #, perl-format msgid "%d line changed" msgstr "%d satır değişti" #: lib/Padre/Wx/Diff.pm:121 #, perl-format msgid "%d line deleted" msgstr "%d satır silindi" #: lib/Padre/Wx/Diff.pm:109 #, perl-format msgid "%d lines added" msgstr "%d satır eklendi" #: lib/Padre/Wx/Diff.pm:98 #, perl-format msgid "%d lines changed" msgstr "%d satır değişti" #: lib/Padre/Wx/Diff.pm:120 #, perl-format msgid "%d lines deleted" msgstr "%d satır silindi" #: lib/Padre/Wx/ReplaceInFiles.pm:214 #, perl-format msgid "%s (%s changed)" msgstr "%s (%s değişti)" #: lib/Padre/Wx/Panel/FoundInFiles.pm:346 #, perl-format msgid "%s (%s results)" msgstr "%s (%s sonuç)" #: lib/Padre/Wx/ReplaceInFiles.pm:222 #, perl-format msgid "%s (crashed)" msgstr "%s (çöktü)" #: lib/Padre/PluginManager.pm:527 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - Somutlaştırılırken çöktü: %s" #: lib/Padre/PluginManager.pm:473 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - Yüklenirken çöktü: %s" #: lib/Padre/PluginManager.pm:537 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - Eklenti somutlaştırılamadı" #: lib/Padre/PluginManager.pm:497 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - Bir Padre::Plugin alt sınıfı değil" #: lib/Padre/PluginManager.pm:510 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s - Padre %s -%s ile uyumlu değil" #: lib/Padre/PluginManager.pm:485 #, perl-format msgid "%s - Plugin is empty or unversioned" msgstr "%s - Eklenti boş veya sürümlenmemiş" #: lib/Padre/Wx/TaskList.pm:280 #: lib/Padre/Wx/Panel/TaskList.pm:172 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s SONRA YAPILACAK düzenli ifadesi içinde. Ayarlarınızı denetleyin" #: lib/Padre/Wx/Dialog/Bookmarks.pm:37 #, perl-format msgid "%s line %s: %s" msgstr "%s satır %s: %s" #: lib/Padre/Wx/VCS.pm:212 #, perl-format msgid "%s version control is not currently available" msgstr "%s sürüm denetim dizgesi şu anda kullanılabilir değil" #: lib/Padre/Wx/Dialog/Positions.pm:123 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. Satır: %s Dosya: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2592 #: lib/Padre/Plugin/Devel.pm:109 msgid "&About" msgstr "&Hakkında" #: lib/Padre/Wx/FBP/Preferences.pm:1545 msgid "&Advanced..." msgstr "&Gelişmiş..." #: lib/Padre/Wx/ActionLibrary.pm:860 msgid "&Autocomplete" msgstr "&Otomatik Tamamla" #: lib/Padre/Wx/ActionLibrary.pm:871 msgid "&Brace Matching" msgstr "&Parantez eşleme" #: lib/Padre/Wx/FBP/FindInFiles.pm:90 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:108 msgid "&Browse" msgstr "Gez" #: lib/Padre/Wx/FBP/Preferences.pm:1561 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:153 #: lib/Padre/Wx/Dialog/OpenResource.pm:183 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "&İptal" #: lib/Padre/Wx/FBP/FindInFiles.pm:137 #: lib/Padre/Wx/FBP/Find.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:147 #: lib/Padre/Wx/FBP/Replace.pm:121 msgid "&Case Sensitive" msgstr "&Büyük/küçük harf duyarlı" #: lib/Padre/Wx/Menu/Refactor.pm:49 msgid "&Change variable style" msgstr "Değişken tarzını değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1706 msgid "&Check for Common (Beginner) Errors" msgstr "(Yeni başlayanların yaptığı) Ortak Hataları Denetle" #: lib/Padre/Wx/ActionLibrary.pm:532 msgid "&Clean Recent Files List" msgstr "Son Kullanılan Dosyalar Listesini Temizle" #: lib/Padre/Wx/ActionLibrary.pm:658 msgid "&Clear Selection Marks" msgstr "Seçim İşaretlerini Temizle" #: lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/Browser.pm:109 #: lib/Padre/Wx/Menu/File.pm:134 #: lib/Padre/Wx/Dialog/HelpSearch.pm:180 #: lib/Padre/Wx/Dialog/PerlFilter.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:275 #: lib/Padre/Wx/Dialog/SessionManager.pm:303 msgid "&Close" msgstr "&Kapat" #: lib/Padre/Wx/ActionLibrary.pm:956 msgid "&Comment Out" msgstr "&Yorum Haline Getir" #: lib/Padre/Wx/ActionLibrary.pm:2491 msgid "&Context Help" msgstr "&Bağlam Yardımı" #: lib/Padre/Wx/ActionLibrary.pm:2376 msgid "&Context Menu" msgstr "&Bağlam Menüsü" #: lib/Padre/Wx/ActionLibrary.pm:688 msgid "&Copy" msgstr "&Kopyala" #: lib/Padre/Wx/Menu/Debug.pm:68 msgid "&Debug" msgstr "&Hata Ayıkla" #: lib/Padre/Wx/ActionLibrary.pm:1638 msgid "&Decrease Font Size" msgstr "Yazı Yüzü Boyutunu Küçült" #: lib/Padre/Wx/ActionLibrary.pm:369 #: lib/Padre/Wx/FBP/Preferences.pm:1213 #: lib/Padre/Wx/FBP/Bookmarks.pm:95 #: lib/Padre/Wx/Dialog/SessionManager.pm:302 msgid "&Delete" msgstr "&Sil" #: lib/Padre/Wx/ActionLibrary.pm:1073 msgid "&Delete Trailing Spaces" msgstr "Sondaki Boşlukları Sil" #: lib/Padre/Wx/ActionLibrary.pm:1718 msgid "&Deparse selection" msgstr "Seçimi yeniden &ayrıştır" #: lib/Padre/Wx/Dialog/PluginManager.pm:104 msgid "&Disable" msgstr "Etkisizleş&tir" #: lib/Padre/Wx/ActionLibrary.pm:544 msgid "&Document Statistics" msgstr "&Belge İstatistikleri" #: lib/Padre/Wx/Menu/Edit.pm:315 msgid "&Edit" msgstr "&Düzenle" #: lib/Padre/Wx/ActionLibrary.pm:2255 msgid "&Edit My Plug-in" msgstr "My &Eklentisini Düzenle" #: lib/Padre/Wx/ActionLibrary.pm:2220 msgid "&Edit with Regex Editor..." msgstr "Düz&enli İfade Düzenleyicisi İle Düzenle..." #: lib/Padre/Wx/Dialog/PluginManager.pm:110 #: lib/Padre/Wx/Dialog/PluginManager.pm:116 msgid "&Enable" msgstr "&Etkinleştir" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "(1-%s) arası satır numarası girin:" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "1 ile %s arasın&da bir konum girin:" #: lib/Padre/Wx/Menu/File.pm:291 msgid "&File" msgstr "&Dosya" #: lib/Padre/Wx/ActionLibrary.pm:930 msgid "&File..." msgstr "&Dosya..." #: lib/Padre/Wx/FBP/Preferences.pm:1097 #: lib/Padre/Wx/Dialog/Advanced.pm:97 msgid "&Filter:" msgstr "&Süzgeç" #: lib/Padre/Wx/FBP/FindInFiles.pm:153 msgid "&Find" msgstr "&Bul" #: lib/Padre/Wx/FBP/Find.pm:111 #: lib/Padre/Wx/FBP/Replace.pm:153 msgid "&Find Next" msgstr "So&nrakini Bul" #: lib/Padre/Wx/ActionLibrary.pm:1220 msgid "&Find Previous" msgstr "&Öncekini Bul" #: lib/Padre/Wx/ActionLibrary.pm:1167 msgid "&Find..." msgstr "&Bul..." #: lib/Padre/Wx/ActionLibrary.pm:1518 msgid "&Fold All" msgstr "&Hepsini Kıvrımla" #: lib/Padre/Wx/ActionLibrary.pm:1538 msgid "&Fold/Unfold Current" msgstr "Geçerli Olanı Kıvrımla veya Kıvrımı Aç" #: lib/Padre/Wx/ActionLibrary.pm:1282 msgid "&Go To..." msgstr "Satıra &Git..." #: lib/Padre/Wx/Outline.pm:141 msgid "&Go to Element" msgstr "Unsura &Git" #: lib/Padre/Wx/ActionLibrary.pm:2470 #: lib/Padre/Wx/Menu/Help.pm:115 msgid "&Help" msgstr "&Yardım" #: lib/Padre/Wx/ActionLibrary.pm:1628 msgid "&Increase Font Size" msgstr "Yazı Yüzü Boyutunu &Büyüt" #: lib/Padre/Wx/ActionLibrary.pm:895 msgid "&Join Lines" msgstr "&Satırları Birleştir" #: lib/Padre/Wx/ActionLibrary.pm:2110 msgid "&Launch Debugger" msgstr "&Hata Ayıklayıcıyı Aç" #: lib/Padre/Wx/Menu/Help.pm:54 msgid "&Live Support" msgstr "&Canlı Destek" #: lib/Padre/Plugin/Devel.pm:89 msgid "&Load All Padre Modules" msgstr "Tüm Padre Modüllerini &Yükle" #: lib/Padre/Wx/ActionLibrary.pm:1096 msgid "&Lower All" msgstr "&Hepsini Küçük Harf Yap" #: lib/Padre/Wx/Dialog/HelpSearch.pm:155 msgid "&Matching Help Topics:" msgstr "Eşleşen Yardı&m Konuları" #: lib/Padre/Wx/Dialog/OpenResource.pm:227 msgid "&Matching Items:" msgstr "Eşleşen &Unsurlar:" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:181 msgid "&Matching Menu Items:" msgstr "Eşleşen &Menü Unsurları" #: lib/Padre/Wx/Menu/Tools.pm:67 msgid "&Module Tools" msgstr "&Modül Araçları" #: lib/Padre/Wx/ActionLibrary.pm:1926 msgid "&Move POD to __END__" msgstr "POD' u __END__ altına &taşı" #: lib/Padre/Wx/ActionLibrary.pm:138 msgid "&New" msgstr "&Yeni" #: lib/Padre/Wx/ActionLibrary.pm:1779 msgid "&Newline Same Column" msgstr "Aynı Sütuna Yeni Satır &Ekle" #: lib/Padre/Wx/FBP/FindFast.pm:101 msgid "&Next" msgstr "Son&raki" #: lib/Padre/Wx/ActionLibrary.pm:791 msgid "&Next Difference" msgstr "&Sonraki Fark" #: lib/Padre/Wx/ActionLibrary.pm:2353 msgid "&Next File" msgstr "&Sonraki Dosya" #: lib/Padre/Wx/ActionLibrary.pm:780 msgid "&Next Problem" msgstr "S&onraki Sorun" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:149 #: lib/Padre/Wx/Dialog/OpenResource.pm:177 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&TAMAM" #: lib/Padre/Wx/Dialog/SessionManager.pm:301 msgid "&Open" msgstr "&Aç" #: lib/Padre/Wx/ActionLibrary.pm:523 msgid "&Open All Recent Files" msgstr "Son Kullanılan Dosyaların Hepsini &Aç" #: lib/Padre/Wx/ActionLibrary.pm:195 msgid "&Open..." msgstr "&Aç..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:228 msgid "&Original text:" msgstr "Özgün metin:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:101 msgid "&Output text:" msgstr "Çıktı &Görünümü" #: lib/Padre/Wx/Dialog/RegexEditor.pm:81 msgid "&POSIX Character classes" msgstr "&POSIX Damga sınıfları" #: lib/Padre/Wx/ActionLibrary.pm:2515 msgid "&Padre Support (English)" msgstr "&Padre Yardımı (İngilizce)" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "&Paste" msgstr "&Yapıştır" #: lib/Padre/Wx/ActionLibrary.pm:1107 msgid "&Patch..." msgstr "&Yama..." #: lib/Padre/Wx/Menu/Perl.pm:98 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:87 msgid "&Perl filter source:" msgstr "&Perl süzgeç kaynağı:" #: lib/Padre/Wx/ActionLibrary.pm:2233 msgid "&Plug-in Manager" msgstr "&Eklenti Yöneticisi" #: lib/Padre/Wx/ActionLibrary.pm:2188 msgid "&Preferences" msgstr "Seçenekle&r" #: lib/Padre/Wx/FBP/FindFast.pm:85 msgid "&Previous" msgstr "&Önceki" #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "&Previous File" msgstr "&Önceki Dosya" #: lib/Padre/Wx/ActionLibrary.pm:503 msgid "&Print..." msgstr "&Yazdır..." #: lib/Padre/Wx/ActionLibrary.pm:556 msgid "&Project Statistics" msgstr "&Proje İstatistikleri" #: lib/Padre/Wx/Dialog/RegexEditor.pm:100 msgid "&Quantifiers" msgstr "Niceleyiciler" #: lib/Padre/Wx/ActionLibrary.pm:803 msgid "&Quick Fix" msgstr "&Hızlı Onarım" #: lib/Padre/Wx/ActionLibrary.pm:1331 msgid "&Quick Menu Access..." msgstr "&Hızlı Menü Erişimi..." #: lib/Padre/Wx/ActionLibrary.pm:567 msgid "&Quit" msgstr "&Çık" #: lib/Padre/Wx/Menu/File.pm:248 msgid "&Recent Files" msgstr "Son Kullanılan Dosyalar" #: lib/Padre/Wx/ActionLibrary.pm:607 msgid "&Redo" msgstr "&Tekrarla" #: lib/Padre/Wx/ActionLibrary.pm:2210 msgid "&Regex Editor" msgstr "&Düzenli İfade Düzenleyicisi" #: lib/Padre/Wx/FBP/FindInFiles.pm:129 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:155 msgid "&Regular Expression" msgstr "Düz&enli İfade" #: lib/Padre/Wx/Dialog/RegexEditor.pm:168 msgid "&Regular expression:" msgstr "Düz&enli İfade:" #: lib/Padre/Wx/ActionLibrary.pm:2272 msgid "&Reload My Plug-in" msgstr "My Eklentisini &Yeniden Yükle" #: lib/Padre/Wx/Main.pm:4691 msgid "&Reload selected" msgstr "Seçilenle&ri yeniden yükle" #: lib/Padre/Wx/ActionLibrary.pm:1807 msgid "&Rename Variable..." msgstr "Değişkeni Yeniden &Adlandır..." #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:171 #: lib/Padre/Wx/FBP/Replace.pm:169 msgid "&Replace" msgstr "&Değiştir" #: lib/Padre/Wx/Dialog/RegexEditor.pm:249 msgid "&Replace text with:" msgstr "Metni Değişti&r:" #: lib/Padre/Wx/FBP/Preferences.pm:1232 #: lib/Padre/Wx/Dialog/Advanced.pm:178 msgid "&Reset" msgstr "Sıfı&rla" #: lib/Padre/Wx/ActionLibrary.pm:1648 msgid "&Reset Font Size" msgstr "Yazı Yüzü Boyutunu &Sıfırla" #: lib/Padre/Wx/Dialog/RegexEditor.pm:259 msgid "&Result from replace:" msgstr "Değişti&rme sonucu:" #: lib/Padre/Wx/Menu/Run.pm:69 msgid "&Run" msgstr "&Yürüt" #: lib/Padre/Wx/ActionLibrary.pm:1942 msgid "&Run Script" msgstr "Betiği &Yürüt" #: lib/Padre/Wx/ActionLibrary.pm:413 #: lib/Padre/Wx/FBP/Preferences.pm:1536 msgid "&Save" msgstr "&Kaydet" #: lib/Padre/Wx/Dialog/SessionManager.pm:271 msgid "&Save session automatically" msgstr "Oturumu otomatik &kaydet" #: lib/Padre/Plugin/Devel.pm:100 msgid "&Scintilla Reference" msgstr "&Scintilla Başvurusu" #: lib/Padre/Wx/Menu/Search.pm:101 msgid "&Search" msgstr "&Ara" #: lib/Padre/Wx/ActionLibrary.pm:2479 msgid "&Search Help" msgstr "Arama &Yardımı" #: lib/Padre/Wx/Menu/Edit.pm:48 msgid "&Select" msgstr "&Seç" #: lib/Padre/Wx/Dialog/OpenResource.pm:205 msgid "&Select an item to open (? = any character, * = any string):" msgstr "Açmak için bir unsur &seçin (? = herhangi bir damga, * = herhangi bir dizgi):" #: lib/Padre/Wx/Main.pm:4688 msgid "&Select files to reload:" msgstr "Yeniden yüklenecek dosyaları &seçin:" #: lib/Padre/Wx/Dialog/Advanced.pm:172 msgid "&Set" msgstr "A&ta" #: lib/Padre/Wx/Dialog/PluginManager.pm:98 msgid "&Show Error Message" msgstr "Hata İletisini Gö&ster" #: lib/Padre/Wx/ActionLibrary.pm:918 msgid "&Snippets..." msgstr "&Ufak kodlar..." #: lib/Padre/Plugin/Devel.pm:93 msgid "&Start/Stop sub trace" msgstr "Altrutin izlemesini Başlat/Bitir" #: lib/Padre/Wx/ActionLibrary.pm:2024 msgid "&Stop Execution" msgstr "Çalışmayı &Durdur" #: lib/Padre/Wx/ActionLibrary.pm:943 msgid "&Toggle Comment" msgstr "&Yorumu Aç/Kapa" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "Ara&çlar" #: lib/Padre/Wx/ActionLibrary.pm:2581 msgid "&Translate Padre..." msgstr "&Padre' yi Çevir..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:174 msgid "&Type a menu item name to access:" msgstr "Eri&şmek için bir menü unsur adı yazın:" #: lib/Padre/Wx/ActionLibrary.pm:968 msgid "&Uncomment" msgstr "&Yorumu Kaldır" #: lib/Padre/Wx/ActionLibrary.pm:587 msgid "&Undo" msgstr "&Geri al" #: lib/Padre/Wx/ActionLibrary.pm:1085 msgid "&Upper All" msgstr "&Hepsini Büyük Harf Yap" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "&Değer:" #: lib/Padre/Wx/Menu/View.pm:247 msgid "&View" msgstr "&Görüntüle" #: lib/Padre/Wx/Menu/View.pm:101 msgid "&View Document As..." msgstr "Belgeyi Görüntüleme Biçimi" #: lib/Padre/Wx/ActionLibrary.pm:2539 msgid "&Win32 Questions (English)" msgstr "Win32 Soruları (İngilizce)" #: lib/Padre/Wx/Menu/Window.pm:82 msgid "&Window" msgstr "&Pencere" #: lib/Padre/Wx/ActionLibrary.pm:1615 msgid "&Word-Wrap File" msgstr "Sözcük Kaydır" #: lib/Padre/Plugin/Devel.pm:97 #, perl-format msgid "&wxWidgets %s Reference" msgstr "&wxWidgets %s Başvurusu" #: lib/Padre/Wx/Panel/Debugger.pm:598 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "'%s' bir değişkene benzemiyor. Öncelikle kod içinden bir değişken seçin ve tekrar deneyin." #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "(Re)load &Current Plug-in" msgstr "Geçerli Eklentiyi (Tekrar) Yükle" #: lib/Padre/Document/Perl/Help.pm:310 #, perl-format msgid "(Since Perl %s)" msgstr "(Perl %s sürümünden beri)" #: lib/Padre/Wx/Action.pm:112 msgid "(Undefined)" msgstr "(Tanımlanmamış)" #: lib/Padre/PluginManager.pm:777 msgid "(core)" msgstr "(çekirdek)" #: lib/Padre/Wx/Dialog/About.pm:145 msgid "(disabled)" msgstr "(engellenmiş)" #: lib/Padre/Wx/Dialog/About.pm:153 msgid "(unsupported)" msgstr "(desteklenmiyor)" #: lib/Padre/Wx/FBP/Preferences.pm:1165 #: lib/Padre/Wx/FBP/Preferences.pm:1179 #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Wx/VCS.pm:337 msgid ", " msgstr "," #: lib/Padre/Document/Perl/Help.pm:314 msgid "- DEPRECATED!" msgstr "- ONAYSIZ!" #: lib/Padre/Wx/FBP/Debugger.pm:256 msgid ". Return to the executed line." msgstr ". Çalıştırılmış satıra git." #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "7-bit US-ASCII character" msgstr "7-ikil US-ASCII damgası" #: lib/Padre/Wx/CPAN.pm:510 #, perl-format msgid "Loading %s..." msgstr "%s yükleniyor..." #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "Bir Diyalog" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "A comment" msgstr "Bir yorum" #: lib/Padre/Wx/Dialog/RegexEditor.pm:125 msgid "A group" msgstr "Bir öbek" #: lib/Padre/Config.pm:483 msgid "A new empty file" msgstr "Yeni bir boş dosya" #: lib/Padre/Plugin/Devel.pm:204 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Padre geliştiricileri tarafından kullanılan bazı alakasız araçlar listesi\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "A word boundary" msgstr "Bir kelime sınırı" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "ALT" #: lib/Padre/Wx/FBP/About.pm:296 msgid "Aaron Trevena" msgstr "Aaron Trevena" #: lib/Padre/Wx/FBP/About.pm:29 #: lib/Padre/Plugin/PopularityContest.pm:207 msgid "About" msgstr "Hakkında" #: lib/Padre/Wx/CPAN.pm:217 msgid "Abstract" msgstr "Özet" #: lib/Padre/Wx/FBP/Patch.pm:47 #: lib/Padre/Wx/Dialog/Preferences.pm:170 msgid "Action" msgstr "Eylem" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "Eylem: %s" #: lib/Padre/Wx/FBP/About.pm:122 msgid "Adam Kennedy" msgstr "Adam Kennedy" #: lib/Padre/Wx/FBP/Preferences.pm:303 msgid "Add another closing bracket if there already is one" msgstr "Hali hazırda bir tane varsa başka bir kapanış parantezi ekle" #: lib/Padre/Wx/VCS.pm:519 msgid "Add file to repository?" msgstr "Dosyayı depoya ekle" #: lib/Padre/Wx/VCS.pm:248 #: lib/Padre/Wx/VCS.pm:262 msgid "Added" msgstr "Eklendi" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "Gelişmiş Ayarlar" #: lib/Padre/Wx/FBP/Patch.pm:70 msgid "Against" msgstr "Karşısında" #: lib/Padre/Wx/FBP/About.pm:128 #: lib/Padre/Wx/FBP/About.pm:337 msgid "Ahmad Zawawi" msgstr "Ahmad Zawawi" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "Alarm" msgstr "İkaz" #: lib/Padre/Wx/FBP/About.pm:200 msgid "Alexandr Ciornii" msgstr "Alexandr Ciornii" #: lib/Padre/Wx/Syntax.pm:83 msgid "Alien Error" msgstr "Yabancı Hata" #: lib/Padre/Wx/ActionLibrary.pm:1768 msgid "Align a selection of text to the same left column." msgstr "Seçili metni aynı sol sütun içine hizala" #: lib/Padre/Wx/Dialog/Snippet.pm:86 msgid "All" msgstr "Tümü" #: lib/Padre/Wx/Main.pm:4420 #: lib/Padre/Wx/Main.pm:4421 #: lib/Padre/Wx/Main.pm:4776 #: lib/Padre/Wx/Main.pm:5994 #: lib/Padre/Wx/Choice/Files.pm:19 msgid "All Files" msgstr "Tüm Dosyalar" #: lib/Padre/Document/Perl.pm:540 msgid "All braces appear to be matched" msgstr "Bütün parantezler eşleşiyor gibi gözükmekte" #: lib/Padre/Wx/ActionLibrary.pm:427 msgid "Allow the selection of another name to save the current document" msgstr "Geçerli belgeyi kaydetmek için başka bir isim seçilmesine izin ver" #: lib/Padre/Wx/Dialog/RegexEditor.pm:83 msgid "Alphabetic characters" msgstr "Abecesel damgalar" #: lib/Padre/Config.pm:580 msgid "Alphabetical Order" msgstr "Abecesel Sıralama" #: lib/Padre/Config.pm:581 msgid "Alphabetical Order (Private Last)" msgstr "Abecesel Sıralama (Sondaki Özel)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphanumeric characters" msgstr "Abecesayısal damgalar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Alphanumeric characters plus \"_\"" msgstr "Abecesayısal damgalar artı \"_\"" #: lib/Padre/Wx/FBP/Preferences.pm:1157 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:113 msgid "Alternation" msgstr "Sıralı değişim" #: lib/Padre/Wx/FBP/About.pm:478 msgid "Amir E. Aharoni" msgstr "Amir E. Aharoni" #: lib/Padre/Wx/FBP/About.pm:164 msgid "Andrew Bramble" msgstr "Andrew Bramble" #: lib/Padre/Wx/FBP/About.pm:625 msgid "Andrew Shitov" msgstr "Andrew Shitov" #: lib/Padre/Wx/Dialog/RegexEditor.pm:71 msgid "Any character except a newline" msgstr "Yeni satır dışında herhangi bir damga" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any decimal digit" msgstr "Herhangi bir ondalık sayı" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any non-digit" msgstr "Herhangi bir rakam olmayan değer" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any non-whitespace character" msgstr "Herhangi bir beyaz boşluk olmayan damga" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any non-word character" msgstr "Herhangi bir kelime olmayan damga" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any whitespace character" msgstr "Herhangi bir beyaz boşluk damgası" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any word character" msgstr "Herhangi bir kelime damgası" #: lib/Padre/Wx/FBP/Preferences.pm:1921 msgid "Appearance" msgstr "Görünüş" #: lib/Padre/Wx/FBP/Preferences.pm:822 msgid "Appearance Preview" msgstr "Görünüş Önizlemesi" #: lib/Padre/Wx/ActionLibrary.pm:804 msgid "Apply one of the quick fixes for the current document" msgstr "Geçerli belge için, hızlı onarımlardan birisini uygula" #: lib/Padre/Locale.pm:157 #: lib/Padre/Wx/FBP/About.pm:328 msgid "Arabic" msgstr "Arapça" #: lib/Padre/Wx/ActionLibrary.pm:487 msgid "Ask for a session name and save the list of files currently opened" msgstr "Bir oturum adı sor ve şu an açık olan dosyaların listesini kaydet" #: lib/Padre/Wx/ActionLibrary.pm:568 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "Kaydedilmemiş dosyaların kayıt edilip edilmeyeceğini sor ve Padre' den çık" #: lib/Padre/Wx/ActionLibrary.pm:1904 msgid "Assign the selected expression to a newly declared variable" msgstr "Seçili ifadeyi yeni bildirilmiş değişkene ata" #: lib/Padre/Wx/Outline.pm:387 msgid "Attributes" msgstr "Öznitelikler" #: lib/Padre/Wx/FBP/Sync.pm:304 msgid "Authentication" msgstr "Kimlik doğrulama" #: lib/Padre/Wx/VCS.pm:55 #: lib/Padre/Wx/CPAN.pm:208 msgid "Author" msgstr "Yazar" #: lib/Padre/Wx/FBP/Preferences.pm:328 msgid "Auto-fold POD markup when code folding enabled" msgstr "Kod kıvrımlaması açıkken POD içeriğini otomatik kıvrımla" #: lib/Padre/Wx/FBP/Preferences.pm:1922 msgid "Autocomplete" msgstr "Otomatik Tamamla" #: lib/Padre/Wx/FBP/Preferences.pm:200 msgid "Autocomplete always while typing" msgstr "Yazarken herzaman otomatik tamamla" #: lib/Padre/Wx/FBP/Preferences.pm:295 msgid "Autocomplete brackets" msgstr "Parantezleri otomatik tamamla" #: lib/Padre/Wx/FBP/Preferences.pm:216 msgid "Autocomplete new functions in scripts" msgstr "Betiklerdeki yeni altrutinleri otomatik tamamla" #: lib/Padre/Wx/FBP/Preferences.pm:208 msgid "Autocomplete new methods in packages" msgstr "Paketlerdeki yeni metodları otomatik tamamla" #: lib/Padre/Wx/Main.pm:3683 msgid "Autocompletion error" msgstr "Otomatik tamamlama hatası" #: lib/Padre/Wx/FBP/Preferences.pm:1057 msgid "Autoindent" msgstr "Otomatik girintile" #: lib/Padre/Wx/StatusBar.pm:269 msgid "Background Tasks are running" msgstr "Arkaplan görevleri yürütülüyor" #: lib/Padre/Wx/StatusBar.pm:270 msgid "Background Tasks are running with high load" msgstr "Arkaplan görevleri yüksek yük altında yürütülüyor" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Backreference to the nth group" msgstr "N'inci öbeğe geri başvuru" #: lib/Padre/Wx/Dialog/Preferences.pm:28 msgid "Backspace" msgstr "Geri boşluk" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Beginning of line" msgstr "Satır başlangıcı" #: lib/Padre/Wx/FBP/Preferences.pm:1924 msgid "Behaviour" msgstr "Davranış" #: lib/Padre/MIME.pm:884 msgid "Binary File" msgstr "İkili Dosya" #: lib/Padre/Wx/FBP/About.pm:308 msgid "Blake Willmarth" msgstr "Blake Willmarth" #: lib/Padre/Wx/FBP/SLOC.pm:91 msgid "Blank Lines:" msgstr "Boş Satırlar:" #: lib/Padre/Wx/FBP/Preferences.pm:844 msgid "Bloat Reduction" msgstr "Şişkinlik Azaltıcı" #: lib/Padre/Wx/FBP/About.pm:93 msgid "" "Blue butterfly on a green leaf splash image is based on work \n" "by Jerry Charlotte (blackbutterfly)" msgstr "" "Yeşil yaprak üzerindeki mavi kelebek açılış resmi\n" "Jerry Charlotte'un bir çalışmasından (blackbutterfly) esinlenilmiştir" #: lib/Padre/Wx/FBP/Bookmarks.pm:29 msgid "Bookmarks" msgstr "Yer İmleri" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "Boole" #: lib/Padre/Config.pm:60 msgid "Bottom Panel" msgstr "Alt Pano" #: lib/Padre/Wx/FBP/Preferences.pm:278 msgid "Brace Assist" msgstr "Parantez Yardımcısı" #: lib/Padre/Wx/Panel/Breakpoints.pm:55 msgid "Breakpoints" msgstr "Kırılma Noktaları" #: lib/Padre/Wx/FBP/About.pm:170 #: lib/Padre/Wx/FBP/About.pm:583 msgid "Breno G. de Oliveira" msgstr "Breno G. de Oliveira" #: lib/Padre/Wx/FBP/About.pm:212 msgid "Brian Cassidy" msgstr "Brian Cassidy" #: lib/Padre/Wx/FBP/VCS.pm:83 msgid "Bring changes from the repository into the working copy" msgstr "Depodaki değişiklikleri, çalışma kopyasına ekle" #: lib/Padre/Wx/ActionLibrary.pm:196 msgid "Browse directory of the current document to open one or several files" msgstr "Bir veya daha fazla dosya açmak için, geçerli belgenin bulunduğu dizine gözatın" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Browse the directory of the installed examples to open one file" msgstr "Bir dosya açmak için yüklenmiş örneklerin bulunduğu dizine gözatın" #: lib/Padre/Wx/Browser.pm:408 #, perl-format msgid "Browser: no viewer for %s" msgstr "Tarayıcı: %s için bir görüntüleyici yok" #: lib/Padre/Wx/ActionLibrary.pm:1982 msgid "Builds the current project, then run all tests." msgstr "Geçerli projeyi inşa eder ve bütün testleri yürütür." #: lib/Padre/Wx/FBP/About.pm:236 #: lib/Padre/Wx/FBP/About.pm:640 msgid "Burak Gursoy" msgstr "Burak Gursoy" #: lib/Padre/Wx/ActionLibrary.pm:2504 msgid "C&urrent Document" msgstr "Geçerli Belge" #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:357 msgid "CHANGED" msgstr "DEĞİŞTİRİLDİ" #: lib/Padre/Wx/CPAN.pm:101 #: lib/Padre/Wx/FBP/Preferences.pm:421 msgid "CPAN Explorer" msgstr "CPAN Gezgini" #: lib/Padre/Wx/FBP/Preferences.pm:915 msgid "CPAN Explorer Tool" msgstr "CPAN Gezgin Aracı" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "KNTRL" #: lib/Padre/Wx/FBP/Snippet.pm:135 #: lib/Padre/Wx/FBP/FindInFiles.pm:162 #: lib/Padre/Wx/FBP/Bookmarks.pm:127 #: lib/Padre/Wx/FBP/Find.pm:136 #: lib/Padre/Wx/FBP/Special.pm:95 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:180 #: lib/Padre/Wx/FBP/Replace.pm:202 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "İptal" #: lib/Padre/Document/Python.pm:51 msgid "Cannot find python executable in your PATH" msgstr "python ikilisi PATH çevre değişkeninizde bulunamadı" #: lib/Padre/Document/Ruby.pm:54 msgid "Cannot find ruby executable in your PATH" msgstr "ruby ikilisi PATH çevre değişkeninizde bulunamadı" #: lib/Padre/Wx/Main.pm:4073 #, perl-format msgid "Cannot open a directory: %s" msgstr "Dizin açılamadı: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:27 msgid "Cannot set bookmark in unsaved document" msgstr "Kaydedilmemiş belge içine yer imi atanamıyor" #: lib/Padre/Wx/Dialog/RegexEditor.pm:473 msgid "Case-insensitive matching" msgstr "Büyük/küçük harf duyarsız eşleşme" #: lib/Padre/Wx/FBP/About.pm:206 #: lib/Padre/Wx/FBP/About.pm:568 msgid "Cezary Morga" msgstr "Cezary Morga" #: lib/Padre/Wx/FBP/Preferences.pm:1259 msgid "Change Detection" msgstr "Algılamayı Değiştir" #: lib/Padre/Wx/FBP/Preferences.pm:939 msgid "Change Font Size (Outside Preferences)" msgstr "Yazı Yüzü Boyutunu Değiştir (Tercihler Dışında)" #: lib/Padre/Wx/ActionLibrary.pm:1097 msgid "Change the current selection to lower case" msgstr "Geçerli seçimi küçük harfe çevir" #: lib/Padre/Wx/ActionLibrary.pm:1086 msgid "Change the current selection to upper case" msgstr "Geçerli seçimi büyük harfe çevir" #: lib/Padre/Wx/ActionLibrary.pm:982 msgid "Change the encoding of the current document to the default of the operating system" msgstr "Belgenin kodlamasını işletim sisteminin varsayılanı olarak değiştir" #: lib/Padre/Wx/ActionLibrary.pm:992 msgid "Change the encoding of the current document to utf-8" msgstr "Geçerli belgenin kodlamasını utf-8 olarak değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1032 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "Geçerli belgenin satır sonu damgasını Mac Classic içinde kullanılan ile değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1022 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "Geçerli belgenin satır sonu damgasını Unix, Linux ve Mac OSX içinde kullanılan ile değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1012 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "Geçerli belgenin satır sonu damgasını MS Windows içinde kullanılan ile değiştir" #: lib/Padre/Document/Perl.pm:1508 msgid "Change variable style" msgstr "Değişken tarzını değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Change variable style from camelCase to Camel_Case" msgstr "Değişken tarzını değişkenAdı yerine Değişken_Adı yap" #: lib/Padre/Wx/ActionLibrary.pm:1849 msgid "Change variable style from camelCase to camel_case" msgstr "Değişken tarzını değişkenAdı yerine değişken_adı yap" #: lib/Padre/Wx/ActionLibrary.pm:1835 msgid "Change variable style from camel_case to CamelCase" msgstr "Değişken tarzını değişken_adı yerine DeğişkenAdı yap" #: lib/Padre/Wx/ActionLibrary.pm:1821 msgid "Change variable style from camel_case to camelCase" msgstr "Değişken tarzını değisken_adı yerine değişkenAdı yap" #: lib/Padre/Wx/ActionLibrary.pm:1820 msgid "Change variable to &camelCase" msgstr "Değişken adını ortada büyük harf olacak şekilde yeniden adlandır" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Change variable to &using_underscores" msgstr "Değişken adını altçizgi_kullanacak hale getir" #: lib/Padre/Wx/ActionLibrary.pm:1834 msgid "Change variable to C&amelCase" msgstr "Değişken adlandırmasını ortada büyük harf olarak şekilde değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1862 msgid "Change variable to U&sing_Underscores" msgstr "Değişken tarzını Altçizgi_Kullan şeklinde değiştir" #: lib/Padre/Wx/Dialog/RegexEditor.pm:69 msgid "Character classes" msgstr "Damga sınıfları" #: lib/Padre/Wx/Dialog/Goto.pm:343 msgid "Character position" msgstr "Damga konumu" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Character set" msgstr "Damga takımı" #: lib/Padre/Wx/FBP/Document.pm:174 msgid "Characters (All)" msgstr "Damgalar (Hepsi)" #: lib/Padre/Wx/FBP/Document.pm:192 msgid "Characters (Visible)" msgstr "Damgalar (Görünür)" #: lib/Padre/Document/Perl.pm:541 msgid "Check Complete" msgstr "Denetim Tamamlandı" #: lib/Padre/Document/Perl.pm:610 #: lib/Padre/Document/Perl.pm:666 #: lib/Padre/Document/Perl.pm:685 msgid "Check cancelled" msgstr "İşaret iptal edildi" #: lib/Padre/Wx/ActionLibrary.pm:1707 msgid "Check the current file for common beginner errors" msgstr "Geçerli belgeyi, yeni başlayanların yaptığı ortak hatalar için denetle" #: lib/Padre/Locale.pm:431 msgid "Chinese" msgstr "Çince" #: lib/Padre/Locale.pm:441 #: lib/Padre/Wx/FBP/About.pm:343 msgid "Chinese (Simplified)" msgstr "Çince (Basitleştirilmiş)" #: lib/Padre/Locale.pm:451 #: lib/Padre/Wx/FBP/About.pm:364 msgid "Chinese (Traditional)" msgstr "Çince (Geleneksel)" #: lib/Padre/Wx/Main.pm:4292 #: lib/Padre/Wx/Dialog/Positions.pm:119 msgid "Choose File" msgstr "Dosya Seç" #: lib/Padre/Wx/FBP/About.pm:218 msgid "Chris Dolan" msgstr "Chris Dolan" #: lib/Padre/Wx/FBP/About.pm:358 msgid "Chuanren Wu" msgstr "Chuanren Wu" #: lib/Padre/Wx/FBP/About.pm:272 msgid "Claudio Ramirez" msgstr "Claudio Ramirez" #: lib/Padre/Wx/FBP/Preferences.pm:677 msgid "Clean up file content on saving (for supported document types)" msgstr "Kaydederken dosya içeriğini elden geçir (desteklenen belge türleri için)" #: lib/Padre/Wx/Dialog/OpenResource.pm:221 msgid "Click on the arrow for filter settings" msgstr "Oka tıklayarak süzgeç ayarlarını açın" #: lib/Padre/Wx/FBP/Patch.pm:120 #: lib/Padre/Wx/FBP/Text.pm:56 #: lib/Padre/Wx/FBP/PluginManager.pm:128 #: lib/Padre/Wx/FBP/About.pm:666 #: lib/Padre/Wx/FBP/SLOC.pm:176 #: lib/Padre/Wx/FBP/Sync.pm:267 #: lib/Padre/Wx/FBP/Diff.pm:94 #: lib/Padre/Wx/FBP/Document.pm:254 #: lib/Padre/Wx/FBP/SessionManager.pm:119 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:279 #: lib/Padre/Wx/Dialog/SessionSave.pm:235 msgid "Close" msgstr "Kapat" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close &Files..." msgstr "Dosyaları Kapat..." #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close &all Files" msgstr "Bütün dosyaları kapat" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close &this Project" msgstr "Bu Projeyi Kapat" #: lib/Padre/Wx/Main.pm:5190 msgid "Close all" msgstr "Hepsini Kapat" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all &other Files" msgstr "Tüm Diğer Dosyaları Kapat" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "Geçerli projeye ait bütün dosyaları kapat" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "Geçerli dosya dışındaki tüm dosyaları kapat" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "Düzenleyici içindeki açık olan tün dosyaları kapat" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "Geçerli projeye ait olmayan tüm dosyaları kapat" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "Geçerli belgeyi kapat" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Close current document and remove the file from disk" msgstr "Geçerli belgeyi kapat ve dosyayı diskten sil" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other &Projects" msgstr "Diğer Projeleri Kapat" #: lib/Padre/Wx/Main.pm:5259 msgid "Close some" msgstr "Bazılarını kapat" #: lib/Padre/Wx/Main.pm:5236 msgid "Close some files" msgstr "Bazı dosyaları kapat" #: lib/Padre/Wx/ActionLibrary.pm:1683 msgid "Close the highest priority dialog or panel" msgstr "En yüksek önceliğe sahip iletişim kutusunu veya panoyu göster" #: lib/Padre/Wx/Dialog/Diff.pm:46 msgid "Close this window" msgstr "Bu pencereyi kapat" #: lib/Padre/Wx/FBP/SLOC.pm:67 msgid "Code Lines:" msgstr "Kod Satırları:" #: lib/Padre/Config.pm:579 msgid "Code Order" msgstr "Kod Sıralaması" #: lib/Padre/Wx/FBP/FoundInFiles.pm:91 msgid "Collapse All" msgstr "Hepsini Kapat" #: lib/Padre/Wx/FBP/Preferences.pm:144 msgid "Coloured text in output window (ANSI)" msgstr "Çıktı penceresinde renklendirilmiş çıktı (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1927 msgid "Combine scattered POD at the end of the document" msgstr "Dağıtılmış POD'u, belgenin sonunda birleştir" #: lib/Padre/Wx/Command.pm:97 msgid "Command" msgstr "Komut" #: lib/Padre/Wx/Main.pm:2721 msgid "Command line" msgstr "Komut Satırı" #: lib/Padre/Wx/FBP/Preferences.pm:555 msgid "Command line files open in existing Padre instance" msgstr "Komut satırı dosyaları varolan Padre içinde açılır" #: lib/Padre/Wx/ActionLibrary.pm:957 msgid "Comment out selected lines or the current line" msgstr "Belgedeki seçilmiş satırları veya geçerli satırı yorum haline getirir" #: lib/Padre/Wx/ActionLibrary.pm:944 msgid "Comment out/remove comment for selected lines or the current line" msgstr "Belgedeki seçili satırları veya sadece geçerli satırı yorum haline getirin veya yorumları koda çevirin" #: lib/Padre/Wx/FBP/SLOC.pm:79 msgid "Comments Lines:" msgstr "Yorum Satırları" #: lib/Padre/Wx/VCS.pm:499 msgid "Commit file/directory to repository?" msgstr "Dosya/dizini depoya işle" #: lib/Padre/Wx/Dialog/About.pm:112 msgid "Config" msgstr "Ayar" #: lib/Padre/Wx/FBP/Sync.pm:149 #: lib/Padre/Wx/FBP/Sync.pm:178 msgid "Confirm" msgstr "Onayla" #: lib/Padre/Wx/VCS.pm:251 msgid "Conflicted" msgstr "Çakıştı" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "%s FTP sunucusuna bağlanılıyor..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "FTP sunucusuna bağlantı başarılı." #: lib/Padre/Wx/FBP/SLOC.pm:103 msgid "Constructive Cost Model (COCOMO)" msgstr "Yapıcı Maliyet Modeli (COCOMO)" #: lib/Padre/Wx/FBP/Preferences.pm:183 msgid "Content Assist" msgstr "İçerik Yardımı" #: lib/Padre/Config.pm:787 msgid "Contents of the status bar" msgstr "Durum çubuğunun içeriği" #: lib/Padre/Config.pm:532 msgid "Contents of the window title" msgstr "Pencere başlığının içerikleri" #: lib/Padre/Wx/Dialog/RegexEditor.pm:149 msgid "Control character" msgstr "Denetim damgası" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Control characters" msgstr "Denetim damgaları" #: lib/Padre/Wx/Menu/Edit.pm:188 msgid "Convert &Encoding" msgstr "Kodlamayı Değiştir" #: lib/Padre/Wx/Menu/Edit.pm:210 msgid "Convert &Line Endings" msgstr "Satır Sonunu Değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1044 msgid "Convert all tabs to spaces in the current document" msgstr "Geçerli belgedeki bütün sekmeleri boşluğa çevir" #: lib/Padre/Wx/ActionLibrary.pm:1054 msgid "Convert all the spaces to tabs in the current document" msgstr "Geçerli belgedeki bütün boşlukları sekmeye çevir" #: lib/Padre/Wx/Menu/Edit.pm:87 msgid "Cop&y Specials" msgstr "Özelleri Kopyala" #: lib/Padre/Wx/VCS.pm:265 msgid "Copied" msgstr "Kopyalandı" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "Kopyala" #: lib/Padre/Wx/ActionLibrary.pm:734 msgid "Copy &Directory Name" msgstr "Dizin Adını Kopyala" #: lib/Padre/Wx/ActionLibrary.pm:748 msgid "Copy Editor &Content" msgstr "Düzenleyici İçeriğini Kopyala" #: lib/Padre/Wx/ActionLibrary.pm:719 msgid "Copy F&ilename" msgstr "Dosya Adını Kopyala" #: lib/Padre/Wx/ActionLibrary.pm:704 msgid "Copy Full &Filename" msgstr "Tam Dosya Adını Kopyala" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "Adı Kopyala" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "Değeri Kopyala" #: lib/Padre/Wx/Dialog/OpenResource.pm:261 msgid "Copy filename to clipboard" msgstr "Dosya adını panoya kopyala" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Copy the current tab into a new document" msgstr "Geçerli sekmeyi yeni bir belgeye kopyala" #: lib/Padre/Wx/FBP/About.pm:87 msgid "" "Copyright 2008–2012 The Padre Development Team Padre is free software; \n" "you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "" "Telif Hakkı 2008-2012 Padre Geliştirim Takımı. Padre, ücretsiz bir yazılımdır;\n" "Perl 5 ile aynı lisans altında tekrar dağıtabilir ve/veya değiştirebilirsiniz." #: lib/Padre/Wx/Directory/TreeCtrl.pm:197 #, perl-format msgid "Could not create: '%s': %s" msgstr " '%s' oluşturulamıyor: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:228 #, perl-format msgid "Could not delete: '%s': %s" msgstr " '%s' silinemiyor: %s" #: lib/Padre/Wx/Panel/Debugger.pm:576 #, perl-format msgid "Could not evaluate '%s'" msgstr "'%s' değerlendirilemiyor" #: lib/Padre/Util/FileBrowser.pm:221 msgid "Could not find KDE or GNOME" msgstr "KDE veya GNOME bulunamadı" #: lib/Padre/Wx/Dialog/HelpSearch.pm:312 msgid "Could not find a help provider for " msgstr "Bir yardım sağlayıcı bulunamadı: " #: lib/Padre/Wx/Main.pm:4280 #, perl-format msgid "Could not find file '%s'" msgstr "'%s' dosyası bulunamıyor" #: lib/Padre/Wx/Main.pm:2787 msgid "Could not find perl executable" msgstr "Perl ikilisi bulunamadı" #: lib/Padre/Wx/Main.pm:2757 #: lib/Padre/Wx/Main.pm:2818 #: lib/Padre/Wx/Main.pm:2872 msgid "Could not find project root" msgstr "Proje kökü bulunamadı" #: lib/Padre/Wx/ActionLibrary.pm:2262 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "Padre::Plugin::My eklentisi bulunamıyor" #: lib/Padre/PluginManager.pm:906 msgid "Could not locate project directory." msgstr "Proje dizini bulunamıyor." #: lib/Padre/Wx/Main.pm:4582 #, perl-format msgid "Could not reload file: %s" msgstr "Dosya yeniden yüklenemiyor: %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:178 #, perl-format msgid "Could not rename: '%s' to '%s': %s" msgstr " '%s', %s olarak yeniden adlandırılamıyor: %s" #: lib/Padre/Wx/Main.pm:5016 msgid "Could not save file: " msgstr "Dosya kaydedilemiyor: " #: lib/Padre/Wx/CPAN.pm:226 msgid "Count" msgstr "Sayım" #: lib/Padre/Wx/Directory/TreeCtrl.pm:290 #: lib/Padre/Wx/Directory/TreeCtrl.pm:349 msgid "Create Directory" msgstr "Dizin Oluştur" #: lib/Padre/Wx/ActionLibrary.pm:1793 msgid "Create Project &Tagsfile" msgstr "Proje Etiket Dosyası Oluştur" #: lib/Padre/Wx/ActionLibrary.pm:1296 msgid "Create a bookmark in the current file current row" msgstr "Geçerli dosyanın geçerli satırında bir yer imi oluştur" #: lib/Padre/Wx/FBP/About.pm:73 msgid "Created by Gábor Szabó" msgstr "Gábor Szabó tarafından yaratılmıştır" #: lib/Padre/Wx/ActionLibrary.pm:1794 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "Geçerli proje için find_method ve otomatik tamamlama destekleyen Perl-Etiketleri dosyası oluşturur." #: lib/Padre/Wx/FBP/Preferences.pm:1149 msgid "Ctrl" msgstr "Denetim" #: lib/Padre/Wx/ActionLibrary.pm:673 msgid "Cu&t" msgstr "K&es" #: lib/Padre/Document/Perl.pm:684 #, perl-format msgid "Current '%s' not found" msgstr "Geçerli '%s' bulunamadı" #: lib/Padre/Wx/Dialog/OpenResource.pm:244 msgid "Current Directory: " msgstr "Geçerli Dizin: " #: lib/Padre/Document/Perl.pm:665 msgid "Current cursor does not seem to point at a method" msgstr "Geçerli imleç bir yönteme işaret etmiyor gibi gözükmekte" #: lib/Padre/Document/Perl.pm:609 #: lib/Padre/Document/Perl.pm:643 msgid "Current cursor does not seem to point at a variable" msgstr "Geçerli imleç bir değişkene işaret etmiyor gibi gözükmekte" #: lib/Padre/Document/Perl.pm:805 #: lib/Padre/Document/Perl.pm:855 #: lib/Padre/Document/Perl.pm:892 msgid "Current cursor does not seem to point at a variable." msgstr "Geçerli imlecin bir değişkene işaret etmediği belirlendi" #: lib/Padre/Wx/Main.pm:2812 #: lib/Padre/Wx/Main.pm:2863 msgid "Current document has no filename" msgstr "Geçerli belgenin bir dosya adı yok" #: lib/Padre/Wx/Main.pm:2866 msgid "Current document is not a .t file" msgstr "Geçerli belge bir .t dosyası değil" #: lib/Padre/Wx/VCS.pm:206 msgid "Current file is not in a version control system" msgstr "Geçerli dosya sürüm denetim dizgesi içinde değil" #: lib/Padre/Wx/VCS.pm:197 msgid "Current file is not saved in a version control system" msgstr "Geçerli dosya herhangi bir sürüm denetim dizgesine kaydedilmemiş" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "Geçerli satır numarası: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "Geçerli konum: %s" #: lib/Padre/Wx/FBP/Preferences.pm:727 msgid "Cursor blink rate (milliseconds - 0 = off, 500 = default)" msgstr "İmlecin yanıp sönme hızı (milisaniye cinsinden - 0 = kapalı; 500 = varsayılan)" #: lib/Padre/Wx/ActionLibrary.pm:1878 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "Geçerli seçimi kes ve bundan yeni bir altrutin oluştur. Seçimin olduğu konuma bu yeni altrutine ait bir çağrı eklenecektir." #: lib/Padre/Locale.pm:167 #: lib/Padre/Wx/FBP/About.pm:379 msgid "Czech" msgstr "Çekçe" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "D&uplicate" msgstr "Tekrarla" #: lib/Padre/Wx/Dialog/WindowList.pm:355 msgid "DELETED" msgstr "SİLİNDİ" #: lib/Padre/Locale.pm:177 msgid "Danish" msgstr "Danca" #: lib/Padre/Wx/Dialog/Special.pm:63 msgid "Date/Time" msgstr "Tarih/Zaman" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:370 msgid "Debug" msgstr "Hata Ayıkla" #: lib/Padre/Wx/Panel/DebugOutput.pm:49 msgid "Debug Output" msgstr "Hata Ayıklama Çıktısı" #: lib/Padre/Wx/FBP/Debugger.pm:552 msgid "Debug-Output Options" msgstr "Hata Ayıklama Çıktısı Seçenekleri" #: lib/Padre/Wx/Panel/Debugger.pm:60 msgid "Debugger" msgstr "Hata Ayıklayıcı" #: lib/Padre/Wx/Panel/Debugger.pm:247 msgid "Debugger is already running" msgstr "Hata ayıklayıcı zaten çalışıyor" #: lib/Padre/Wx/Panel/Debugger.pm:315 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "Hata ayıklama başarısız oldu. Programınızı sözdizimi hatalarına karşı denetlediniz mi?" #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "Varsayılan" #: lib/Padre/Wx/FBP/Preferences.pm:588 msgid "Default Newline Format:" msgstr "Varsayılan yeni satır sonu biçimi" #: lib/Padre/Wx/FBP/Preferences.pm:603 msgid "Default Project Directory:" msgstr "Varsayılan Proje Dizini:" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "Varsayılan değer" #: lib/Padre/Wx/FBP/Preferences.pm:636 msgid "Default word wrap on for each file" msgstr "Her dosya için varsayılan olarak sözcük kaydırma seçeneği" #: lib/Padre/Wx/ActionLibrary.pm:109 msgid "Delay the action queue for 1 seconds" msgstr "Eylem kuyruğunu 1 saniyeliğine geciktir" #: lib/Padre/Wx/ActionLibrary.pm:118 msgid "Delay the action queue for 10 seconds" msgstr "Eylem kuyruğunu 10 saniyeliğine geciktir" #: lib/Padre/Wx/ActionLibrary.pm:127 msgid "Delay the action queue for 30 seconds" msgstr "Eylem kuyruğunu 30 saniyeliğine geciktir" #: lib/Padre/Wx/FBP/Sync.pm:250 #: lib/Padre/Wx/Directory/TreeCtrl.pm:379 #: lib/Padre/Wx/Dialog/Preferences.pm:36 msgid "Delete" msgstr "Sil" #: lib/Padre/Wx/FBP/Bookmarks.pm:111 msgid "Delete &All" msgstr "H&epsini Sil" #: lib/Padre/Wx/ActionLibrary.pm:1063 msgid "Delete &Leading Spaces" msgstr "Baştaki Boşlukları Sil" #: lib/Padre/Wx/Directory/TreeCtrl.pm:266 msgid "Delete Directory" msgstr "Dizini Sil" #: lib/Padre/Wx/Directory/TreeCtrl.pm:325 msgid "Delete File" msgstr "Dosya Sil" #: lib/Padre/Wx/FBP/Breakpoints.pm:43 msgid "" "Delete MARKER_NOT_BREAKABLE\n" "Current File Only" msgstr "" "Sil: MARKER_NOT_BREAKABLE\n" "Sadece Geçerli Dosyada" #: lib/Padre/Wx/FBP/SessionManager.pm:103 msgid "Delete Session" msgstr "Oturumu Sil" #: lib/Padre/Wx/FBP/Breakpoints.pm:130 msgid "Delete all project Breakpoints" msgstr "Bütün proje kırılma noktalarını sil" #: lib/Padre/Wx/VCS.pm:538 msgid "Delete file from repository??" msgstr "Dosyayı depodan sil??" #: lib/Padre/Wx/FBP/Preferences.pm:1218 msgid "Delete the keyboard binding" msgstr "Klavye atamasını sil" #: lib/Padre/Wx/VCS.pm:249 #: lib/Padre/Wx/VCS.pm:263 msgid "Deleted" msgstr "Silindi" #: lib/Padre/Wx/Syntax.pm:53 msgid "Deprecation" msgstr "Gözden düşürme" #: lib/Padre/Wx/Dialog/Preferences.pm:171 #: lib/Padre/Wx/Dialog/SessionManager2.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:238 msgid "Description" msgstr "Tanım" #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:214 msgid "Description:" msgstr "Tanım:" #: lib/Padre/Wx/FBP/Preferences.pm:1520 msgid "Detect Perl 6 files" msgstr "Perl 6 Dosyalarını Algıla" #: lib/Padre/Wx/FBP/Preferences.pm:1049 msgid "Detect indent settings for each file" msgstr "Her dosyanın girinti ayarlarını algıla" #: lib/Padre/Wx/FBP/About.pm:842 msgid "Development" msgstr "Geliştirim" #: lib/Padre/Wx/FBP/SLOC.pm:156 msgid "Development Cost (USD):" msgstr "Geliştirim Maliyeti (USD):" #: lib/Padre/Wx/Dialog/Bookmarks.pm:62 msgid "Did not provide a bookmark name" msgstr "Bir yerimi adı sağlamadı" #: lib/Padre/CPAN.pm:113 #: lib/Padre/CPAN.pm:137 msgid "Did not provide a distribution" msgstr "Bir dağıtım sağlamadı" #: lib/Padre/Wx/Dialog/Bookmarks.pm:96 msgid "Did not select a bookmark" msgstr "Herhangi bir yerimi seçilmedi" #: lib/Padre/Wx/FBP/Diff.pm:29 msgid "Diff" msgstr "Fark" #: lib/Padre/Wx/Dialog/Patch.pm:479 #, perl-format msgid "Diff successful, you should see a new tab in editor called %s" msgstr "Fark başarılı. Düzenleyici içinde %s adlı yeni bir sekme göreceksiniz." #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Digits" msgstr "Rakamlar" #: lib/Padre/Config.pm:635 msgid "Directories First" msgstr "Önce Dizinler" #: lib/Padre/Config.pm:636 msgid "Directories Mixed" msgstr "Dizinler Karışık" #: lib/Padre/Wx/Directory/TreeCtrl.pm:95 msgid "Directory" msgstr "Dizin" #: lib/Padre/Wx/FBP/FindInFiles.pm:73 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:91 msgid "Directory:" msgstr "Dizin:" #: lib/Padre/Wx/FBP/About.pm:403 msgid "Dirk De Nijs" msgstr "Dirk De Nijs" #: lib/Padre/PluginHandle.pm:27 msgid "Disabled" msgstr "Etkisizleştir" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Disk" msgstr "Disk" #: lib/Padre/Wx/FBP/Debugger.pm:143 msgid "Display Value" msgstr "Değeri Görüntüle" #: lib/Padre/Wx/CPAN.pm:207 #: lib/Padre/Wx/CPAN.pm:216 #: lib/Padre/Wx/CPAN.pm:225 #: lib/Padre/Wx/Dialog/About.pm:131 msgid "Distribution" msgstr "Dağıtım" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "Bunu tekrar gösterme" #: lib/Padre/Wx/Main.pm:5377 #, perl-format msgid "Do you really want to close and delete %s from disk?" msgstr "Gerçekten %s dosyasını kapatıp diskten silmek istiyor musunuz?" #: lib/Padre/Wx/VCS.pm:518 #, perl-format msgid "Do you want to add '%s' to your repository" msgstr "'%s' dosyasını deponuza eklemek istiyor musunuz?" #: lib/Padre/Wx/VCS.pm:498 msgid "Do you want to commit?" msgstr "İşlemek istiyor musunuz?" #: lib/Padre/Wx/Main.pm:3117 msgid "Do you want to continue?" msgstr "Devam etmek istiyor musunuz?" #: lib/Padre/Wx/VCS.pm:537 #, perl-format msgid "Do you want to delete '%s' from your repository" msgstr "%s dosyasını deponuzdan silmek istiyor musunuz?" #: lib/Padre/Wx/Dialog/Preferences.pm:488 msgid "Do you want to override it with the selected action?" msgstr "Geçerli değeri, seçili eylem ile değiştirmek istiyor musunuz?" #: lib/Padre/Wx/VCS.pm:564 #, perl-format msgid "Do you want to revert changes to '%s'" msgstr "'%s' dosyasına yapılan değişiklikleri geri almak istiyor musunuz?" #: lib/Padre/Wx/FBP/Document.pm:123 msgid "Document" msgstr "Belge" #: lib/Padre/Wx/FBP/Document.pm:67 msgid "Document Class" msgstr "Belge Sınıfı" #: lib/Padre/Wx/FBP/Document.pm:29 msgid "Document Information" msgstr "Belge Bilgisi:" #: lib/Padre/Wx/Right.pm:53 msgid "Document Tools" msgstr "Belge araçları" #: lib/Padre/Wx/FBP/Document.pm:55 msgid "Document Type" msgstr "Belge Türü" #: lib/Padre/Wx/Main.pm:6802 #, perl-format msgid "Document encoded to (%s)" msgstr "Belge kodlaması (%s) olarak değişti" #: lib/Padre/Wx/Dialog/Preferences.pm:32 msgid "Down" msgstr "Aşağı" #: lib/Padre/Wx/FBP/Sync.pm:233 msgid "Download" msgstr "İndir" #: lib/Padre/Wx/ActionLibrary.pm:88 msgid "Dump the Padre object to STDOUT" msgstr "Padre nesnesini STDOUT kanalına yazdır" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "Padre nesnesinin tamamını deneme/hat ayıklama için STDOUT kanalına yazdırır" #: lib/Padre/Locale.pm:351 #: lib/Padre/Wx/FBP/About.pm:394 msgid "Dutch" msgstr "Hollandaca" #: lib/Padre/Locale.pm:361 msgid "Dutch (Belgium)" msgstr "Hollandaca (Belçika)" #: lib/Padre/Wx/FBP/Debugger.pm:376 msgid "" "E\n" "Display all thread ids the current one will be identified: ." msgstr "" "E\n" "Geçerli olanın tanımlayacağı bütun iş parçacıklarını görüntüle: ." #: lib/Padre/Wx/ActionLibrary.pm:1031 msgid "EOL to &Mac Classic" msgstr "Satır sonunu Mac satır sonuna değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1021 msgid "EOL to &Unix" msgstr "Satır sonunu Unix satır sonuna değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1011 msgid "EOL to &Windows" msgstr "Satır sonunu Windows satır sonuna değiştir" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:364 msgid "Edit" msgstr "Düzenle" #: lib/Padre/Wx/ActionLibrary.pm:2189 msgid "Edit user and host preferences" msgstr "Kullanıcı ve sunucu seçeneklerini düzenle" #: lib/Padre/Wx/Dialog/WindowList.pm:224 msgid "Editor" msgstr "Düzenleyici" #: lib/Padre/Wx/FBP/Preferences.pm:867 msgid "Editor Bookmark Support" msgstr "Düzenleyici Yerimi Desteği" #: lib/Padre/Wx/FBP/Preferences.pm:875 msgid "Editor Code Folding" msgstr "Düzenleyici Kod Kıvrımlanması" #: lib/Padre/Wx/FBP/Preferences.pm:799 msgid "Editor Current Line Background Colour" msgstr "Düzenleyicideki Geçerli Satırın Arkaplan Rengi" #: lib/Padre/Wx/FBP/Preferences.pm:883 msgid "Editor Cursor Memory" msgstr "Düzenleyici İmleç Belleği" #: lib/Padre/Wx/FBP/Preferences.pm:907 msgid "Editor Diff Feature" msgstr "Düzenleyici Fark Özelliği" #: lib/Padre/Wx/FBP/Preferences.pm:775 msgid "Editor Font" msgstr "Düzenleyici Yazı Yüzü" #: lib/Padre/Wx/FBP/Preferences.pm:619 msgid "Editor Options" msgstr "Düzenleyici Seçenekleri" #: lib/Padre/Wx/FBP/Preferences.pm:891 msgid "Editor Session Support" msgstr "Düzenleyici Oturum Desteği" #: lib/Padre/Wx/FBP/Preferences.pm:693 #: lib/Padre/Wx/FBP/Preferences.pm:1925 msgid "Editor Style" msgstr "Düzenleyici Tarzı" #: lib/Padre/Wx/FBP/Preferences.pm:899 msgid "Editor Syntax Annotations" msgstr "Düzenleyici Sözdizim Bilgi Notları" #: lib/Padre/Wx/FBP/Sync.pm:164 msgid "Email" msgstr "Eposta" #: lib/Padre/Wx/Dialog/Sync.pm:162 msgid "Email and confirmation do not match." msgstr "Eposta ve onayı eşleşmiyor" #: lib/Padre/Wx/Dialog/RegexEditor.pm:651 msgid "Empty regex" msgstr "Boş düzenli ifade" #: lib/Padre/Wx/FBP/PluginManager.pm:96 msgid "Enable" msgstr "Etkinleştir" #: lib/Padre/Wx/FBP/Preferences.pm:1397 msgid "Enable Perl beginner mode" msgstr "Perl' e yeni başlayan kipini etkinleştir" #: lib/Padre/Wx/FBP/Preferences.pm:652 msgid "Enable Smart highlighting while typing" msgstr "Yazarken akıllı renklendirmeyi aç" #: lib/Padre/Config.pm:1418 msgid "Enable document differences feature" msgstr "Belge farklılıkları özelliğini etkinleştir" #: lib/Padre/Config.pm:1371 msgid "Enable or disable the Run with Devel::EndStats if it is installed. " msgstr "Yüklü olması halinde Devel::EndStats ile çalıştırmayı aç veya kapa." #: lib/Padre/Config.pm:1390 msgid "Enable or disable the Run with Devel::TraceUse if it is installed. " msgstr "Yüklü olması halinde Devel::TraceUse ile çalıştırmayı aç veya kapat." #: lib/Padre/Config.pm:1409 msgid "Enable syntax checker annotations in the editor" msgstr "Düzenleyici içinde sözdizim denetleyicisi bilgi notlarını etkinleştir" #: lib/Padre/Config.pm:1436 msgid "Enable the CPAN Explorer, powered by MetaCPAN" msgstr "MetaCPAN tarafından güçlendirilen CPAN Gezginini etkinleştir" #: lib/Padre/Config.pm:1454 msgid "Enable the experimental command line interface" msgstr "Deneysel komut satırı arayüzünü etkinleştir" #: lib/Padre/Config.pm:1427 msgid "Enable version control system support" msgstr "Sürüm denetim dizgesi desteğini etkinleştir" #: lib/Padre/PluginHandle.pm:28 msgid "Enabled" msgstr "Etkinleştirildi" #: lib/Padre/Wx/ActionLibrary.pm:1001 msgid "Encode Document &to..." msgstr "Belgenin Kodlamasını değiştir..." #: lib/Padre/Wx/ActionLibrary.pm:981 msgid "Encode Document to &System Default" msgstr "Belgeyi Sistem Varsayılanına Kodla" #: lib/Padre/Wx/ActionLibrary.pm:991 msgid "Encode Document to &utf-8" msgstr "Belgeyi utf-8 Olarak Kodla" #: lib/Padre/Wx/Main.pm:6824 msgid "Encode document to..." msgstr "Belgenin kodlaması..." #: lib/Padre/Wx/Main.pm:6823 msgid "Encode to:" msgstr "Kodlama seçimi:" #: lib/Padre/Wx/FBP/Document.pm:91 msgid "Encoding" msgstr "Kodlama" #: lib/Padre/Wx/Dialog/Preferences.pm:38 msgid "End" msgstr "Son" #: lib/Padre/Wx/Dialog/RegexEditor.pm:155 msgid "End case modification/metacharacter quoting" msgstr "Bitiş durumu degiştirilmesi / yardımcı damga tırnaklaması" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "End of line" msgstr "Satır sonu" #: lib/Padre/Locale.pm:197 msgid "English" msgstr "İngilizce" #: lib/Padre/Locale.pm:125 msgid "English (Australia)" msgstr "İngilizce (Avustralya)" #: lib/Padre/Locale.pm:206 msgid "English (Canada)" msgstr "İngilizce (Kanada)" #: lib/Padre/Locale.pm:215 msgid "English (New Zealand)" msgstr "İngilizce (Yeni Zelanda)" #: lib/Padre/Locale.pm:86 msgid "English (United Kingdom)" msgstr "İngilizce (Birleşik Krallık)" #: lib/Padre/Locale.pm:226 msgid "English (United States)" msgstr "İngilizce (A.B.D.)" #: lib/Padre/Wx/FBP/About.pm:610 msgid "Enrique Nell" msgstr "Enrique Nell" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enter" msgstr "Giriş" #: lib/Padre/CPAN.pm:127 msgid "" "Enter URL to install\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "Kurulum için bir URL girin\n" "örnek: http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:214 msgid "Enter parts of the resource name to find it" msgstr "Bulmak için, kaynak adının bir bölümünü yazın" #: lib/Padre/Wx/Dialog/Special.pm:69 msgid "Epoch" msgstr "Devir" #: lib/Padre/PluginHandle.pm:23 #: lib/Padre/Document.pm:455 #: lib/Padre/Wx/Editor.pm:939 #: lib/Padre/Wx/Main.pm:5017 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/PluginManager.pm:209 #: lib/Padre/Wx/Dialog/Sync.pm:78 #: lib/Padre/Wx/Dialog/Sync.pm:86 #: lib/Padre/Wx/Dialog/Sync.pm:99 #: lib/Padre/Wx/Dialog/Sync.pm:118 #: lib/Padre/Wx/Dialog/Sync.pm:142 #: lib/Padre/Wx/Dialog/Sync.pm:153 #: lib/Padre/Wx/Dialog/Sync.pm:163 #: lib/Padre/Wx/Dialog/Sync.pm:183 #: lib/Padre/Wx/Dialog/Sync.pm:194 #: lib/Padre/Wx/Dialog/Sync.pm:205 #: lib/Padre/Wx/Dialog/Sync.pm:216 msgid "Error" msgstr "Hata" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "%s:%s konumuna bağlanılırken bir hata oluştu: %s" #: lib/Padre/Wx/Main.pm:5393 #, perl-format msgid "" "Error deleting %s:\n" "%s" msgstr "" "%s silinirken bir hata oluştu:\n" "%s" #: lib/Padre/Wx/Main.pm:5604 msgid "Error loading perl filter dialog." msgstr "Perl süzgeç iletişimi yüklenirken hata oluştu." #: lib/Padre/Wx/Dialog/PluginManager.pm:137 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "'%s' sınıfı için Pod yüklenemedi: %s" #: lib/Padre/Wx/Main.pm:5575 msgid "Error loading regex editor." msgstr "Düzenli ifade düzenleyicisi yüklenirken hata oluştu" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "%s:%s konumuna giriş yapılırken bir hata oluştu: %s" #: lib/Padre/Wx/Main.pm:6778 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "Süzgeç aracı hata döndürdü:\n" "%s" #: lib/Padre/Wx/Main.pm:6760 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "Süzgeç aracı çalıştırılırken bir hata oluştu:\n" "%s" #: lib/Padre/PluginManager.pm:849 #, perl-format msgid "Error when calling menu for plug-in %s: %s" msgstr "%s eklentisi için menü çağrılırken hata oluştu: %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:83 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:327 #, perl-format msgid "Error while calling %s %s" msgstr "%s çağrılırken bir hata oluştu: %s" #: lib/Padre/Document.pm:282 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "MIME türü tanımlanırken hata oluştu.\n" "Bu, muhtemelen bir kodlama sorunu.\n" "İkili bir dosya mı yüklemeye çalışıyorsunuz?" #: lib/Padre/Plugin/Devel.pm:161 msgid "Error while loading Aspect, is it installed?" msgstr "Aspect yüklenemedi. Kurduğunuzdan emin misiniz?" #: lib/Padre/Document.pm:232 msgid "Error while opening file: no file object" msgstr "Dosya açılırken bir hata oluştu: dosya nesnesi yok" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "POD aranırken hata oluştu" #: lib/Padre/Wx/VCS.pm:448 msgid "Error while trying to perform Padre action" msgstr "Padre eylemi gerçekleştirilirken bir hata oluştu" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:91 #: lib/Padre/Wx/Dialog/OpenResource.pm:119 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "Padre eylemi gerçekleştirilirken bir hata oluştu: %s" #: lib/Padre/Wx/Dialog/PerlFilter.pm:323 msgid "Error:\n" msgstr "Hata:\n" #: lib/Padre/Document/Perl.pm:503 msgid "Error: " msgstr "Hata: " #: lib/Padre/Wx/Main.pm:6099 #: lib/Padre/Plugin/Devel.pm:247 #, perl-format msgid "Error: %s" msgstr "Hata: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:42 msgid "Escape" msgstr "Kaçış" #: lib/Padre/Wx/Dialog/RegexEditor.pm:145 msgid "Escape (Esc)" msgstr "Kaçış (Esc)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:138 msgid "Escape characters" msgstr "Kaçış damgaları" #: lib/Padre/Wx/FBP/SLOC.pm:132 msgid "Estimated Project Years:" msgstr "Tahmini Proje Yılları:" #: lib/Padre/Wx/FBP/Expression.pm:80 msgid "Evaluate" msgstr "Değerlendir" #: lib/Padre/Plugin/Devel.pm:80 msgid "Evaluate &Expression" msgstr "İfadeyi Değerlendir" #: lib/Padre/Wx/FBP/Expression.pm:29 msgid "Evaluate Expression" msgstr "İfadeyi Değerlendir" #: lib/Padre/Wx/Main.pm:4793 msgid "Exist" msgstr "Mevcut" #: lib/Padre/Wx/FBP/Bookmarks.pm:63 msgid "Existing Bookmarks:" msgstr "Varolan yer imleri:" #: lib/Padre/Wx/FBP/FoundInFiles.pm:71 msgid "Expand All" msgstr "Hepsini Genişlet" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "Deneysel özellik. Sayfanın sonuna '?' yazarak bir komut listesi alabilirsiniz. Eğer çalışmazsa, szabgab' ı suçlayın.\n" "\n" #: lib/Padre/Wx/FBP/Debugger.pm:503 msgid "Expression To Evaluate" msgstr "Değerlendirilecek İfade" #: lib/Padre/Wx/Dialog/RegexEditor.pm:484 msgid "Extended (&x)" msgstr "&Uzatılmış (&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:486 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "Genişletilmiş düzenli ifadeler, serbest biçime (beyaz boşluk görmezden gelinir) ve yorumlara izin verir" #: lib/Padre/Wx/ActionLibrary.pm:1876 msgid "Extract &Subroutine..." msgstr "Altrutini Çıkart..." #: lib/Padre/Wx/ActionLibrary.pm:1889 msgid "Extract Subroutine" msgstr "Altrutini Çıkart" #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "FTP Parolası" #: lib/Padre/Wx/Main.pm:4910 #, perl-format msgid "Failed to create path '%s'" msgstr "'%s' yolu oluşturulamadı" #: lib/Padre/Wx/Main.pm:1135 msgid "Failed to create server" msgstr "Sunucu oluşturma işlemi başarısız oldu" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "POD parçası silinemedi" #: lib/Padre/PluginHandle.pm:406 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "Eklenti '%s' kapatılamadı: %s" #: lib/Padre/PluginHandle.pm:284 #: lib/Padre/PluginHandle.pm:300 #: lib/Padre/PluginHandle.pm:324 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "Eklenti '%s' etkinleştirilemedi: %s" #: lib/Padre/Util/FileBrowser.pm:198 msgid "Failed to execute process\n" msgstr "Sürecin çalıştırılması başarısız oldu\n" #: lib/Padre/Wx/ActionLibrary.pm:1228 msgid "Failed to find any matches" msgstr "Herhangi bir eşleşme bulunamadı" #: lib/Padre/CPAN.pm:83 msgid "Failed to find your CPAN configuration" msgstr "CPAN ayarlarınız bulunamadı" #: lib/Padre/PluginManager.pm:928 #: lib/Padre/PluginManager.pm:1022 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "'%s' eklentisi yüklenemedi\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "POD parçaları birleştirilemedi" #: lib/Padre/Wx/Main.pm:3049 #, perl-format msgid "Failed to start '%s' command" msgstr "'%s' komutu başlatılamadı" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "Yanlış" #: lib/Padre/Wx/Syntax.pm:65 msgid "Fatal Error" msgstr "Ölümcül hata" #: lib/Padre/Wx/FBP/CPAN.pm:278 msgid "Favorite" msgstr "Sık kullanılanlara ekle" #: lib/Padre/Wx/FBP/About.pm:176 #: lib/Padre/Wx/FBP/About.pm:352 msgid "Fayland Lam" msgstr "Fayland Lam" #: lib/Padre/Wx/FBP/Preferences.pm:1926 msgid "Features" msgstr "Özellikler" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:363 #: lib/Padre/Wx/Dialog/WindowList.pm:223 #: lib/Padre/Wx/Dialog/Special.pm:64 msgid "File" msgstr "Dosya" #: lib/Padre/Wx/Menu/File.pm:393 #, perl-format msgid "File %s not found." msgstr "Dosya %s bulunamadı." #: lib/Padre/Wx/FBP/Preferences.pm:1929 msgid "File Handling" msgstr "Dosya Yönetimi" #: lib/Padre/Wx/FBP/Preferences.pm:391 msgid "File Outline" msgstr "Dosya Taslağı" #: lib/Padre/Wx/FBP/Document.pm:210 msgid "File Size (Bytes)" msgstr "Dosya Boyutu (Bayt)" #: lib/Padre/Wx/FBP/FindInFiles.pm:106 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:124 msgid "File Types:" msgstr "Dosya türleri:" #: lib/Padre/Wx/Main.pm:4896 msgid "File already exists" msgstr "Dosya zaten mevcut" #: lib/Padre/Wx/Main.pm:4792 msgid "File already exists. Overwrite it?" msgstr "Dosya zaten mevcut. Üstüne yazılsın mı?" #: lib/Padre/Wx/Main.pm:5006 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "Dosya diske kaydedildiği andan sonra değişikliğe uğradı. Üstüne yazmak istiyor musunuz?" #: lib/Padre/Wx/Main.pm:5101 msgid "File changed. Do you want to save it?" msgstr "Dosya değişti. Kaydetmek istiyor musunuz?" #: lib/Padre/Wx/ActionLibrary.pm:295 #: lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "Dosya herhangi bir proje içinde değil" #: lib/Padre/Wx/Main.pm:4456 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "Belirttiğiniz dosya adı (%s), çoğu bilgisayarda özel anlamlara sahip olan * veya ? damgasını içeriyor. Atlayalım mı?" #: lib/Padre/Wx/Main.pm:4476 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "Belirttiğiniz dosya adı (%s) diskte bulunamadı. Atlayalım mı?" #: lib/Padre/Wx/Main.pm:5007 msgid "File not in sync" msgstr "Dosya eşlenik değil" #: lib/Padre/Wx/Main.pm:5371 msgid "File was never saved and has no filename - can't delete from disk" msgstr "Dosya henüz kaydedilmemişti ve bir dosya adı yoktu - diskten silinemez" #: lib/Padre/Wx/FBP/Patch.pm:138 msgid "File-1" msgstr "Dosya-1" #: lib/Padre/Wx/FBP/Patch.pm:161 msgid "File-2" msgstr "Dosya-2" #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "Dosya/Dizin" #: lib/Padre/Wx/Notebook.pm:70 msgid "Files" msgstr "Dosyalar" #: lib/Padre/Wx/FBP/SLOC.pm:55 msgid "Files:" msgstr "Dosyalar:" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "Sizgeç komutu:" #: lib/Padre/Wx/ActionLibrary.pm:1134 msgid "Filter through &Perl..." msgstr "&Perl yoluyla süzgeçten geçir..." #: lib/Padre/Wx/ActionLibrary.pm:1125 msgid "Filter through E&xternal Tool..." msgstr "Dış Araç ile süzgeçten geçir..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "Bir araçla süzgeçten geçir" #: lib/Padre/Wx/FBP/Snippet.pm:38 msgid "Filter:" msgstr "Süzgeç:" #: lib/Padre/Wx/ActionLibrary.pm:1126 msgid "Filters the selection (or the whole document) through any external command." msgstr "Seçimi (veya tüm belgeyi) herhangi bir dış komut ile süzgeçten geçirir." #: lib/Padre/Wx/FBP/Find.pm:30 msgid "Find" msgstr "Bul" #: lib/Padre/Wx/FBP/Find.pm:128 msgid "Find &All" msgstr "Hepsini Bul" #: lib/Padre/Wx/ActionLibrary.pm:1754 msgid "Find &Method Declaration" msgstr "Yöntem Bildirimini Bul" #: lib/Padre/Wx/ActionLibrary.pm:1208 msgid "Find &Next" msgstr "Sonrakini Bul" #: lib/Padre/Wx/ActionLibrary.pm:1742 msgid "Find &Variable Declaration" msgstr "Değişken Bildirimini Bul" #: lib/Padre/Wx/ActionLibrary.pm:1730 msgid "Find Unmatched &Brace" msgstr "Eşleşmemiş parantez bul" #: lib/Padre/Wx/ActionLibrary.pm:1250 msgid "Find in Fi&les..." msgstr "&Dosyalarda Bul" #: lib/Padre/Wx/FBP/Preferences.pm:485 #: lib/Padre/Wx/FBP/FindInFiles.pm:32 #: lib/Padre/Wx/Panel/FoundInFiles.pm:438 msgid "Find in Files" msgstr "Dosyalar içinde Bul" #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find text and replace it" msgstr "Bir metin bul ve değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1168 msgid "Find text or regular expressions using a traditional dialog" msgstr "Geleneksel diyalog ile metin veya düzenli ifade bul" #: lib/Padre/Wx/ActionLibrary.pm:1755 msgid "Find where the selected function was defined and put the focus there." msgstr "Seçili işlevin bildirildiği konumu bul ve odağı oraya yerleştir." #: lib/Padre/Wx/ActionLibrary.pm:1743 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "Seçili değişkenin \"my\" ile bildirildiği konumu bul ve odağı oraya yerleştir" #: lib/Padre/Wx/FBP/FindFast.pm:55 msgid "Find:" msgstr "Bul:" #: lib/Padre/Document/Perl.pm:941 msgid "First character of selection does not seem to point at a token." msgstr "Seçimin ilk damgası bir andaca işaret etmiyor gibi gözükmekte." #: lib/Padre/Wx/Editor.pm:1906 msgid "First character of selection must be a non-word character to align" msgstr "Seçimin ilk damgası, hizalamak için, kelime olmayan bir damga olmak zorunda" #: lib/Padre/Wx/ActionLibrary.pm:1519 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "Kıvrımlanabilen tüm öbekleri kıvrımla (kıvrımlanma açık olmalıdır)" #: lib/Padre/Wx/Menu/View.pm:178 msgid "Font Si&ze" msgstr "Yazı Yüzü Boyutu" #: lib/Padre/Wx/ActionLibrary.pm:440 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "Yeni bir belge için, dosya adını içerikten tahmin et ve kaydetmeyi öner." #: lib/Padre/Wx/Dialog/RegexEditor.pm:143 msgid "Form feed" msgstr "Form beslemesi" #: lib/Padre/Wx/Syntax.pm:474 #, perl-format msgid "Found %d issue(s) in %s within %3.2f secs." msgstr "%d adet sorun %s içinde %3.2f saniyede bulundu" #: lib/Padre/Wx/Syntax.pm:480 #, perl-format msgid "Found %d issue(s) within %3.2f secs." msgstr "%d adet sorun %3.2f saniyede bulundu." #: lib/Padre/Wx/Dialog/HelpSearch.pm:397 #, perl-format msgid "Found %s help topic(s)\n" msgstr "%s yardım başlığı bulundu\n" #: lib/Padre/Plugin/Devel.pm:224 #, perl-format msgid "Found %s unloaded modules" msgstr "%s adet yüklenmemiş modül bulundu" #: lib/Padre/Locale.pm:283 #: lib/Padre/Wx/FBP/About.pm:409 msgid "French" msgstr "Fransızca" #: lib/Padre/Locale.pm:269 msgid "French (Canada)" msgstr "Fransızca (Kanada)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "Arkadaş" #: lib/Padre/Wx/ActionLibrary.pm:1664 msgid "Full Sc&reen" msgstr "Tam Ekran" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "İşlev" #: lib/Padre/Wx/FBP/Preferences.pm:56 #: lib/Padre/Wx/FBP/Preferences.pm:376 msgid "Function List" msgstr "İşlev Listesi" #: lib/Padre/Wx/FunctionList.pm:148 msgid "Functions" msgstr "İşlevler" #: lib/Padre/Wx/FBP/About.pm:116 msgid "Gabor Szabo" msgstr "Gabor Szabo" #: lib/Padre/Wx/FBP/About.pm:302 #: lib/Padre/Wx/FBP/About.pm:589 msgid "Gabriel Vieira" msgstr "Gabriel Vieira" #: lib/Padre/Locale.pm:187 #: lib/Padre/Wx/FBP/About.pm:430 msgid "German" msgstr "Almanca" #: lib/Padre/Wx/Dialog/RegexEditor.pm:489 msgid "Global (&g)" msgstr "Küresel (&g)" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Go to" msgstr "Git" #: lib/Padre/Wx/ActionLibrary.pm:2446 msgid "Go to &Command Line Window" msgstr "Komut Satırı Penceresine Git" #: lib/Padre/Wx/ActionLibrary.pm:2401 msgid "Go to &Functions Window" msgstr "İşlevler Penceresine Git" #: lib/Padre/Wx/ActionLibrary.pm:2457 msgid "Go to &Main Window" msgstr "Ana Pencereye Git" #: lib/Padre/Wx/ActionLibrary.pm:1306 msgid "Go to Bookmar&k..." msgstr "Yer İmine Git" #: lib/Padre/Wx/ActionLibrary.pm:2390 msgid "Go to CPAN E&xplorer Window" msgstr "CPAN Gezgini Penceresine Git" #: lib/Padre/Wx/ActionLibrary.pm:2413 msgid "Go to O&utline Window" msgstr "Taslak Penceresine Git" #: lib/Padre/Wx/ActionLibrary.pm:2424 msgid "Go to Ou&tput Window" msgstr "Çıktı Penceresine Git" #: lib/Padre/Wx/ActionLibrary.pm:2435 msgid "Go to S&yntax Check Window" msgstr "Sözdizim Denetimi Penceresine Git" #: lib/Padre/Wx/FBP/Preferences.pm:923 msgid "Graphical Debugger Tool" msgstr "Grafik Hata Ayıklama Aracı" #: lib/Padre/Wx/Dialog/RegexEditor.pm:123 msgid "Grouping constructs" msgstr "Öbekleme yapıları" #: lib/Padre/Wx/FBP/Preferences.pm:1016 msgid "Guess from Current Document" msgstr "Geçerli belgeden tahmin et" #: lib/Padre/Wx/FBP/About.pm:493 msgid "Gyorgy Pasztor" msgstr "Gyorgy Pasztor" #: lib/Padre/Locale.pm:293 #: lib/Padre/Wx/FBP/About.pm:457 msgid "Hebrew" msgstr "İbranice" #: lib/Padre/Wx/FBP/About.pm:194 #: lib/Padre/Wx/FBP/About.pm:439 msgid "Heiko Jansen" msgstr "Heiko Jansen" #: lib/Padre/Wx/Browser.pm:63 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:373 msgid "Help" msgstr "Yardım" #: lib/Padre/Wx/Dialog/HelpSearch.pm:41 #: lib/Padre/Wx/Dialog/HelpSearch.pm:98 msgid "Help Search" msgstr "Arama Yardımı" #: lib/Padre/Wx/ActionLibrary.pm:2582 msgid "Help by translating Padre to your local language" msgstr "Padre' yi yerel dilinize çevirerek yardımcı olun" #: lib/Padre/Wx/Browser.pm:443 msgid "Help not found." msgstr "Yardım bulunamadı." #: lib/Padre/Wx/Dialog/RegexEditor.pm:147 msgid "Hex character" msgstr "Onaltılık damga" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Hexadecimal digits" msgstr "Onaltılık rakamlar" #: lib/Padre/Wx/ActionLibrary.pm:1564 msgid "Highlight the line where the cursor is" msgstr "İşlecin olduğu satırı aydınlat" #: lib/Padre/Wx/Directory.pm:595 msgid "Hit unfixed bug in directory browser, disabling it" msgstr "Dizin gezginindeki henüz düzeltilmemiş bir hatayla karşılaşıldı, devre dışı bırakılıyor" #: lib/Padre/Wx/Dialog/Preferences.pm:37 msgid "Home" msgstr "Ev" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "Host" msgstr "Anadizge" #: lib/Padre/Wx/Main.pm:6278 msgid "How many spaces for each tab:" msgstr "Her sekme için kaç boşluk kullanılsın:" #: lib/Padre/Locale.pm:303 #: lib/Padre/Wx/FBP/About.pm:484 msgid "Hungarian" msgstr "Macarca" #: lib/Padre/Wx/ActionLibrary.pm:1346 msgid "If activated, do not allow moving around some of the windows" msgstr "Eğer etkileştirildiyse, bazı pencerelerin yerinden oynatılmasını engelle" #: lib/Padre/Wx/Dialog/RegexEditor.pm:472 msgid "Ignore case (&i)" msgstr "Büyük/küçük harfe dikkat etme (&i)" #: lib/Padre/Wx/VCS.pm:252 #: lib/Padre/Wx/FBP/VCS.pm:205 msgid "Ignored" msgstr "Yoksayıldı" #: lib/Padre/Wx/FBP/Preferences.pm:1475 msgid "" "Include directory: -I\n" "Enable tainting checks: -T\n" "Enable many useful warnings: -w\n" "Enable all warnings: -W\n" "Disable all warnings: -X" msgstr "" "Eklenti dizini: -I\n" "Leke denetimlerini etkinleştir: -T\n" "Kullanışlı uyarıları aç: -w\n" "Tüm uyarıları aç: -W\n" "Tüm uyarıları iptal et: -X" #: lib/Padre/PluginHandle.pm:26 msgid "Incompatible" msgstr "Uyumsuz" #: lib/Padre/Config.pm:895 msgid "Indent Deeply" msgstr "Derin Girintile" #: lib/Padre/Wx/FBP/Preferences.pm:1032 msgid "Indent Detection" msgstr "Girintileme Algılaması" #: lib/Padre/Wx/FBP/Preferences.pm:955 msgid "Indent Settings" msgstr "Girintileme Ayarları" #: lib/Padre/Wx/FBP/Preferences.pm:980 msgid "Indent Spaces:" msgstr "Girintileme Boşlukları:" #: lib/Padre/Wx/FBP/Preferences.pm:1074 msgid "Indent on Newline:" msgstr "Satır sonuna göre girintile:" #: lib/Padre/Config.pm:894 msgid "Indent to Same Depth" msgstr "Aynı Derinliğe Girintile" #: lib/Padre/Wx/FBP/Preferences.pm:1927 msgid "Indentation" msgstr "Girintileme" #: lib/Padre/Wx/FBP/About.pm:844 msgid "Information" msgstr "Bilgi" #: lib/Padre/Wx/Dialog/PerlFilter.pm:69 msgid "Input/output:" msgstr "Girdi/çıktı:" #: lib/Padre/Wx/FBP/Snippet.pm:118 #: lib/Padre/Wx/FBP/Special.pm:78 #: lib/Padre/Wx/Menu/Edit.pm:119 #: lib/Padre/Wx/Dialog/Preferences.pm:35 #: lib/Padre/Wx/Dialog/PerlFilter.pm:114 #: lib/Padre/Wx/Dialog/RegexEditor.pm:270 msgid "Insert" msgstr "Araya Ekle" #: lib/Padre/Wx/FBP/Snippet.pm:29 msgid "Insert Snippet" msgstr "Örnek kod yapıştır" #: lib/Padre/Wx/FBP/Special.pm:29 msgid "Insert Special Values" msgstr "Özel Değerler Ekle" #: lib/Padre/Wx/FBP/CPAN.pm:207 msgid "Insert Synopsis" msgstr "Özet yapıştır" #: lib/Padre/Wx/FBP/CPAN.pm:239 msgid "Install" msgstr "Kur" #: lib/Padre/Wx/ActionLibrary.pm:2331 msgid "Install &Remote Distribution" msgstr "Uzak Dağıtım Kur" #: lib/Padre/Wx/ActionLibrary.pm:2321 msgid "Install L&ocal Distribution" msgstr "Yerel Dağıtım Kur" #: lib/Padre/CPAN.pm:128 msgid "Install Local Distribution" msgstr "Yerel Dağıtım Kur" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "Tam Sayı" #: lib/Padre/Wx/Syntax.pm:71 msgid "Internal Error" msgstr "İç hata" #: lib/Padre/Wx/Main.pm:6100 msgid "Internal error" msgstr "İç hata" #: lib/Padre/Wx/ActionLibrary.pm:1903 msgid "Introduce &Temporary Variable..." msgstr "Geçici Değişken Tanıt..." #: lib/Padre/Wx/ActionLibrary.pm:1912 msgid "Introduce Temporary Variable" msgstr "Geçici Değişken Tanıt" #: lib/Padre/Locale.pm:317 #: lib/Padre/Wx/FBP/About.pm:499 msgid "Italian" msgstr "İtalyanca" #: lib/Padre/Wx/FBP/Preferences.pm:105 msgid "Item Regular Expression:" msgstr "Unsur Düzenli İfadesi:" #: lib/Padre/Locale.pm:327 #: lib/Padre/Wx/FBP/About.pm:514 msgid "Japanese" msgstr "Japonca" #: lib/Padre/Wx/Main.pm:4399 msgid "JavaScript Files" msgstr "JavaScript Dosyaları" #: lib/Padre/Wx/FBP/About.pm:146 #: lib/Padre/Wx/FBP/About.pm:418 msgid "Jerome Quelin" msgstr "Jerome Quelin" #: lib/Padre/Wx/ActionLibrary.pm:896 msgid "Join the next line to the end of the current line." msgstr "Sonraki satırı geçerli satırın sonuna birleştir." #: lib/Padre/Wx/ActionLibrary.pm:1283 msgid "Jump to a specific line number or character position" msgstr "Belirli bir satır numarasına veya damga konumuna zıpla" #: lib/Padre/Wx/ActionLibrary.pm:792 msgid "Jump to the code that has been changed" msgstr "Değiştirilmiş olan koda zıpla" #: lib/Padre/Wx/ActionLibrary.pm:781 msgid "Jump to the code that triggered the next error" msgstr "Sonraki hatayı tetikleyen koda zıpla" #: lib/Padre/Wx/ActionLibrary.pm:872 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "Eşleşen açılış veya kapanış parantezine zıpla: { }, ( ), [ ], < >" #: lib/Padre/Wx/FBP/About.pm:278 msgid "Kaare Rasmussen" msgstr "Kaare Rasmussen" #: lib/Padre/Wx/FBP/About.pm:290 msgid "Kartik Thakore" msgstr "Kartik Thakore" #: lib/Padre/Wx/FBP/About.pm:248 #: lib/Padre/Wx/FBP/About.pm:538 msgid "Keedi Kim" msgstr "Keedi Kim" #: lib/Padre/Wx/FBP/About.pm:242 #: lib/Padre/Wx/FBP/About.pm:523 msgid "Kenichi Ishigaki" msgstr "Kenichi Ishigaki" #: lib/Padre/Wx/Dialog/About.pm:136 msgid "Kernel" msgstr "Çekirdek" #: lib/Padre/Wx/FBP/About.pm:182 msgid "Kevin Dawson" msgstr "Kevin Dawson" #: lib/Padre/Wx/FBP/Preferences.pm:1928 msgid "Key Bindings" msgstr "Tuş Atamaları" #: lib/Padre/Wx/FBP/About.pm:553 msgid "Kjetil Skotheim" msgstr "Kjetil Skotheim" #: lib/Padre/Locale.pm:465 msgid "Klingon" msgstr "Klingonca" #: lib/Padre/Locale.pm:337 #: lib/Padre/Wx/FBP/About.pm:529 msgid "Korean" msgstr "Korece" #: lib/Padre/Wx/FBP/Debugger.pm:296 msgid "" "L [abw]\n" "List (default all) actions, breakpoints and watch expressions" msgstr "" "L [abw]\n" "Eylemleri, kırılma noktalarını ve izleme ifadelerini (varsayılan: tümü) listele." #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "Birinci Etiket" #: lib/Padre/Wx/Menu/View.pm:210 msgid "Lan&guage" msgstr "Dil" #: lib/Padre/Wx/FBP/Preferences.pm:1930 msgid "Language - Perl 5" msgstr "Dil - Perl 5" #: lib/Padre/Wx/FBP/Preferences.pm:1931 msgid "Language - Perl 6" msgstr "Dil - Perl 6" #: lib/Padre/Wx/FBP/Preferences.pm:1380 #: lib/Padre/Wx/FBP/Preferences.pm:1503 msgid "Language Integration" msgstr "Dil Katılımı" #: lib/Padre/Wx/Dialog/SessionManager2.pm:30 msgid "Last Updated" msgstr "Son Güncelleme" #: lib/Padre/Wx/Dialog/SessionManager.pm:239 msgid "Last update" msgstr "Son güncelleme" #: lib/Padre/Wx/ActionLibrary.pm:2111 msgid "Launch Debugger" msgstr "Hata Ayıklayıcıyı Başlat" #: lib/Padre/Wx/Dialog/Preferences.pm:33 msgid "Left" msgstr "Sol" #: lib/Padre/Config.pm:58 msgid "Left Panel" msgstr "Sol Pano" #: lib/Padre/Wx/FBP/Diff.pm:72 msgid "Left side" msgstr "Sol taraf" #: lib/Padre/Wx/ActionLibrary.pm:1781 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "Herhangi bir satır içinde ENTER tuşuna basmak gibidir, fakat geçerli konumu yeni satır girintilemesi için kullanır." #: lib/Padre/Wx/Syntax.pm:509 #, perl-format msgid "Line %d: (%s) %s" msgstr "Satır %d: (%s) %s" #: lib/Padre/Document/Perl/Beginner.pm:84 #, perl-format msgid "Line %d: %s" msgstr "Satır %d: %s" #: lib/Padre/Wx/Dialog/Goto.pm:342 msgid "Line number" msgstr "Satır numarası" #: lib/Padre/Wx/FBP/Document.pm:138 #: lib/Padre/Wx/Dialog/Special.pm:72 msgid "Lines" msgstr "Satırlar" #: lib/Padre/Wx/Dialog/WindowList.pm:210 msgid "List of open files" msgstr "Açık dosya listesi" #: lib/Padre/Wx/Dialog/SessionManager.pm:225 msgid "List of sessions" msgstr "Oturum listesi" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "List the files that match the current selection and let the user pick one to open" msgstr "Geçerli seçim ile eşleşen dosyaları listele ve kullanıcının bir tanesini açmasına izin ver" #: lib/Padre/PluginHandle.pm:25 msgid "Loaded" msgstr "Yüklendi" #: lib/Padre/Plugin/Devel.pm:236 #, perl-format msgid "Loaded %s modules" msgstr "%s modül yüklendi" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Loc&k User Interface" msgstr "Kullanıcı Arayüzünü Kilitle" #: lib/Padre/Wx/FBP/Preferences.pm:1276 msgid "Local file update poll interval in seconds (0 to disable)" msgstr "Saniye cinsinden yerel dosya güncelleme yoklaması (kapatmak için 0)" #: lib/Padre/Wx/FBP/Sync.pm:58 msgid "Logged out" msgstr "Çıkış yapıldı" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "FTP sunucusuna %s olarak bağlanılıyor..." #: lib/Padre/Wx/FBP/Sync.pm:104 msgid "Login" msgstr "Bağlan" #: lib/Padre/Wx/Dialog/RegexEditor.pm:148 msgid "Long hex character" msgstr "Küçük onaltılık damga" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "Net::FTP denetleniyor" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Lowercase characters" msgstr "Küçük damgalar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:151 msgid "Lowercase next character" msgstr "Sonraki küçük damga" #: lib/Padre/Wx/Dialog/RegexEditor.pm:153 msgid "Lowercase till \\E" msgstr "\\E damgasına kadar hepsini küçük harf yap" #: lib/Padre/Wx/FBP/Debugger.pm:336 msgid "" "M\n" "Display all loaded modules and their versions." msgstr "" "M\n" "Yüklenmiş tüm eklentileri ve sürümlerini göster." #: lib/Padre/Wx/FBP/Document.pm:79 msgid "MIME Type" msgstr "MIME Türü" #: lib/Padre/Wx/ActionLibrary.pm:1629 msgid "Make the letters bigger in the editor window" msgstr "Düzenleyici penceresindeki harfleri büyütür" #: lib/Padre/Wx/ActionLibrary.pm:1639 msgid "Make the letters smaller in the editor window" msgstr "Düzenleyici penceresindeki yazıları küçültür" #: lib/Padre/Wx/FBP/About.pm:388 msgid "Marcela Maslanova" msgstr "Marcela Maslanova" #: lib/Padre/Wx/ActionLibrary.pm:646 msgid "Mark Selection &End" msgstr "Seçim Bitimini İşaretle" #: lib/Padre/Wx/ActionLibrary.pm:634 msgid "Mark Selection &Start" msgstr "Seçim Başlangıcını İşaretle" #: lib/Padre/Wx/ActionLibrary.pm:647 msgid "Mark the place where the selection should end" msgstr "Seçimin bitmesi gereken yeri işaretle" #: lib/Padre/Wx/ActionLibrary.pm:635 msgid "Mark the place where the selection should start" msgstr "Seçimin başlaması gereken yeri işaretle" #: lib/Padre/Wx/Dialog/RegexEditor.pm:102 msgid "Match 0 or more times" msgstr "0 veya daha fazla kere eşleş" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or 0 times" msgstr "1 veya 0 kere eşleş" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 1 or more times" msgstr "1 veya daha fazla kere eşleş" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least m but not more than n times" msgstr "En az m kere, en çok n kere eşleş" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match at least n times" msgstr "En az n kere eşleş" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match exactly m times" msgstr "Tam olarak m kere eşleş" #: lib/Padre/Wx/Dialog/RegexEditor.pm:677 #, perl-format msgid "Match failure in %s: %s" msgstr "%s içinde eşleşme başarısız: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:688 #, perl-format msgid "Match warning in %s: %s" msgstr "%s içinde eşleşme uyarısı: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:697 #, perl-format msgid "Match with 0 width at character %s" msgstr "%s damgasında 0 genişlikle eşleş" #: lib/Padre/Wx/Dialog/RegexEditor.pm:235 msgid "Matched text:" msgstr "Eşleşen metin:" #: lib/Padre/Wx/FBP/About.pm:373 msgid "Matthew Lien" msgstr "Matthew Lien" #: lib/Padre/Wx/FBP/About.pm:254 msgid "Max Maischein" msgstr "Max Maischein" #: lib/Padre/Wx/FBP/Preferences.pm:242 msgid "Maximum number of suggestions" msgstr "Önerilerin en çok sayısı" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "İleti" #: lib/Padre/Wx/FBP/CPAN.pm:223 msgid "MetaCPAN..." msgstr "MetaCPAN..." #: lib/Padre/Wx/Outline.pm:386 msgid "Methods" msgstr "Yöntemler" #: lib/Padre/Wx/FBP/Preferences.pm:260 msgid "Minimum characters for autocomplete" msgstr "Otomatik tamamlama için en az damga sayısı" #: lib/Padre/Wx/FBP/Preferences.pm:224 msgid "Minimum length of suggestions" msgstr "Önerilerin en az uzunluğu" #: lib/Padre/Wx/FBP/Preferences.pm:119 #: lib/Padre/Wx/Dialog/RegexEditor.pm:111 msgid "Miscellaneous" msgstr "Çeşitli" #: lib/Padre/Wx/VCS.pm:254 msgid "Missing" msgstr "Kayıp" #: lib/Padre/Wx/VCS.pm:250 #: lib/Padre/Wx/VCS.pm:261 msgid "Modified" msgstr "Değiştirildi" #: lib/Padre/Document/Perl/Starter.pm:122 msgid "Module Name:" msgstr "Modül Adı:" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "Modül adı:" #: lib/Padre/Wx/Outline.pm:385 msgid "Modules" msgstr "Modüller" #: lib/Padre/Wx/Dialog/RegexEditor.pm:480 msgid "Multi-line (&m)" msgstr "Çoklu-satır (&m)" #: lib/Padre/Wx/ActionLibrary.pm:2256 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "My Eklentisi, geliştiricilerin, kendi Padre kurulumlarını özelleştirebilecekleri bir eklentidir" #: lib/Padre/Wx/FBP/SLOC.pm:120 msgid "Mythical Man Months:" msgstr "Adam-Ay Efsaneleri:" #: lib/Padre/Wx/Browser.pm:464 msgid "NAME" msgstr "AD" #: lib/Padre/Wx/Dialog/SessionManager2.pm:28 #: lib/Padre/Wx/Dialog/Special.pm:70 #: lib/Padre/Wx/Dialog/SessionManager.pm:237 msgid "Name" msgstr "Ad" #: lib/Padre/Wx/ActionLibrary.pm:1888 msgid "Name for the new subroutine" msgstr "Yeni altrutinin adı" #: lib/Padre/Wx/Menu/File.pm:43 msgid "Ne&w" msgstr "Yeni" #: lib/Padre/Wx/Main.pm:6606 msgid "Need to select text in order to translate numbers" msgstr "Sayıları çevirmek için seçili bir dizgi olması gerekiyor" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Negative lookahead assertion" msgstr "Eksi ileriye dönük sav" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Negative lookbehind assertion" msgstr "Eksi arkaya dönük sav" #: lib/Padre/Wx/FBP/Preferences.pm:571 msgid "New File Creation" msgstr "Yeni Dosya Oluşturma" #: lib/Padre/Wx/Directory/TreeCtrl.pm:381 msgid "New Folder" msgstr "Yeni Dizin" #: lib/Padre/Wx/FBP/WhereFrom.pm:28 msgid "New Installation Survey" msgstr "Yeni Kurulum Anketi" #: lib/Padre/Document/Perl/Starter.pm:123 #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "Yeni Modül" #: lib/Padre/Document/Perl.pm:815 msgid "New name" msgstr "Yeni ad" #: lib/Padre/PluginManager.pm:393 msgid "New plug-ins detected" msgstr "Yeni eklentiler algılandı" #: lib/Padre/Wx/Dialog/RegexEditor.pm:141 msgid "Newline" msgstr "Yeni Satır" #: lib/Padre/Wx/FBP/Document.pm:103 msgid "Newline Type" msgstr "Yeni Satır Türü" #: lib/Padre/Wx/Diff2.pm:29 #: lib/Padre/Wx/Dialog/Diff.pm:32 msgid "Next difference" msgstr "Sonraki fark" #: lib/Padre/Config.pm:893 msgid "No Autoindent" msgstr "Otomatik girintileme yok" #: lib/Padre/Wx/Main.pm:2784 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "Build.PL veya Makefile.PL veya dist.ini bulunamadı" #: lib/Padre/Wx/Dialog/HelpSearch.pm:95 msgid "No Help found" msgstr "Yardım Bulunamadı" #: lib/Padre/Wx/Diff.pm:256 msgid "No changes found" msgstr "Herhangi bir değişiklik bulunamadı" #: lib/Padre/Document/Perl.pm:645 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "Belirtilmiş (sözcüksel?) değişken için herhangi bir bildirim bulunamadı" #: lib/Padre/Document/Perl.pm:894 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "Belirtilmiş (sözcüksel?) değişken için herhangi bir bildirim bulunamadı." #: lib/Padre/Wx/Main.pm:2751 #: lib/Padre/Wx/Main.pm:2806 #: lib/Padre/Wx/Main.pm:2857 msgid "No document open" msgstr "Herhangi bir belge açık değil" #: lib/Padre/Task/CPAN.pm:183 #, perl-format msgid "No documentation for '%s'" msgstr "%s içın herhangi bir yardım belgesi bulunamadı" #: lib/Padre/Document/Perl.pm:505 msgid "No errors found." msgstr "Hiç bir hata bulunamadı." #: lib/Padre/Wx/Syntax.pm:456 #, perl-format msgid "No errors or warnings found in %s within %3.2f secs." msgstr "%s içinde %3.2f saniye süresince herhangi bir hata veya uyarı bulunamadı." #: lib/Padre/Wx/Syntax.pm:461 #, perl-format msgid "No errors or warnings found within %3.2f secs." msgstr "%3.2f saniye süresince herhangi bir hata veya uyarı bulunamadı." #: lib/Padre/Wx/Main.pm:3092 msgid "No execution mode was defined for this document type" msgstr "Bu belge türü için herhangi bir çalıştırma kipi tanımlanmadı" #: lib/Padre/PluginManager.pm:903 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "Dosya adı yok" #: lib/Padre/Wx/Dialog/RegexEditor.pm:716 msgid "No match" msgstr "Hiç bir eşleşme yok" #: lib/Padre/Wx/Dialog/Find.pm:62 #: lib/Padre/Wx/Dialog/Replace.pm:136 #: lib/Padre/Wx/Dialog/Replace.pm:159 #, perl-format msgid "No matches found for \"%s\"." msgstr " \"%s\" için hiç bir eşleşme bulunamadı." #: lib/Padre/Wx/Main.pm:3074 msgid "No open document" msgstr "Açık hiç bir belge yok" #: lib/Padre/Config.pm:484 msgid "No open files" msgstr "Açık dosya yok" #: lib/Padre/Wx/ReplaceInFiles.pm:259 #: lib/Padre/Wx/Panel/FoundInFiles.pm:305 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr " '%s' için '%s' içinde herhangi bir sonuç bulunamadı" #: lib/Padre/Wx/Main.pm:931 #, perl-format msgid "No such session %s" msgstr "Geçersiz oturum: %s" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "No suggestions" msgstr "Tavsiye yok" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "Non-capturing group" msgstr "Yakalamayan öbek" #: lib/Padre/Wx/Dialog/Preferences.pm:27 msgid "None" msgstr "Hiçbiri" #: lib/Padre/Wx/VCS.pm:247 #: lib/Padre/Wx/FBP/VCS.pm:173 msgid "Normal" msgstr "Normal" #: lib/Padre/Locale.pm:371 #: lib/Padre/Wx/FBP/About.pm:544 msgid "Norwegian" msgstr "Norveççe" #: lib/Padre/Wx/Panel/Debugger.pm:251 msgid "Not a Perl document" msgstr "Bir Perl belgesi değil" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number." msgstr "Pozitif bir sayı değil." #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "Not a word boundary" msgstr "Bir kelime sınırı değil" #: lib/Padre/Wx/Main.pm:4238 msgid "Nothing selected. Enter what should be opened:" msgstr "Hiç bir şey seçilmedi. Açılması gereen şeyi girin:" #: lib/Padre/Wx/Dialog/Special.pm:66 msgid "Now" msgstr "Şimdi" #: lib/Padre/Wx/FBP/SLOC.pm:144 msgid "Number of Developers:" msgstr "Geliştirici Sayısı:" #: lib/Padre/Wx/Menu/File.pm:84 msgid "O&pen" msgstr "Aç" #: lib/Padre/Wx/FBP/Bookmarks.pm:86 #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "OK" msgstr "TAMAM" #: lib/Padre/Wx/VCS.pm:255 msgid "Obstructed" msgstr "Engellenmiş" #: lib/Padre/Wx/Dialog/RegexEditor.pm:146 msgid "Octal character" msgstr "Sekizlik damga" #: lib/Padre/Wx/ActionLibrary.pm:861 msgid "Offer completions to the current string. See Preferences" msgstr "Geçerli dizgi için tamamamlamalar öner. Seçeneklere bakın" #: lib/Padre/Wx/FBP/About.pm:260 #: lib/Padre/Wx/FBP/About.pm:424 msgid "Olivier Mengue" msgstr "Olivier Mengue" #: lib/Padre/Wx/FBP/About.pm:466 msgid "Omer Zak" msgstr "Omer Zak" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "Tek bir POD parçası var. Birleştirmeye çalışılmayacak" #: lib/Padre/Wx/ActionLibrary.pm:2341 msgid "Open &CPAN Config File" msgstr "&CPAN Ayar Dosyasını Aç" #: lib/Padre/Wx/Outline.pm:153 msgid "Open &Documentation" msgstr "&Belge Aç" #: lib/Padre/Wx/ActionLibrary.pm:251 msgid "Open &Example" msgstr "Örnek Aç" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open &Last Closed File" msgstr "Son Kullanılan Dosyayı Aç" #: lib/Padre/Wx/ActionLibrary.pm:1320 msgid "Open &Resources..." msgstr "Kaynakları Aç..." #: lib/Padre/Wx/ActionLibrary.pm:463 msgid "Open &Selection" msgstr "Seçimi Aç" #: lib/Padre/Wx/ActionLibrary.pm:206 msgid "Open &URL..." msgstr "&URL Aç..." #: lib/Padre/Wx/ActionLibrary.pm:2342 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "Uzmanların düzenlemesi için CPAN::MyConfig.pm dosyasını aç" #: lib/Padre/Wx/FBP/Preferences.pm:1329 msgid "Open FTP Files" msgstr "FTP Dosyaları Aç" #: lib/Padre/Wx/Main.pm:4423 #: lib/Padre/Wx/Directory/TreeCtrl.pm:302 msgid "Open File" msgstr "Dosya Aç" #: lib/Padre/Wx/FBP/Preferences.pm:540 msgid "Open Files:" msgstr "Açık Dosyalar:" #: lib/Padre/Wx/FBP/Preferences.pm:1294 msgid "Open HTTP Files" msgstr "HTTP Dosyaları Aç" #: lib/Padre/Wx/Dialog/OpenResource.pm:33 #: lib/Padre/Wx/Dialog/OpenResource.pm:79 msgid "Open Resources" msgstr "Kaynakları Aç" #: lib/Padre/Wx/ActionLibrary.pm:474 msgid "Open S&ession..." msgstr "Oturum Aç..." #: lib/Padre/Wx/Main.pm:4281 msgid "Open Selection" msgstr "Seçimi Aç" #: lib/Padre/Wx/FBP/SessionManager.pm:86 msgid "Open Session" msgstr "Oturum Aç" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "URL Aç" #: lib/Padre/Wx/Main.pm:4459 #: lib/Padre/Wx/Main.pm:4479 msgid "Open Warning" msgstr "Dosya Açma Uyarısı" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 module" msgstr "Bir belgeyi bir Perl 5 modül iskeleti ile aç" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Open a document with a skeleton Perl 5 script" msgstr "Bir belgeyi bir Perl 5 betik iskeleti ile aç" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Open a document with a skeleton Perl 5 test script" msgstr "Bir belgeyi bir Perl 5 test betiği iskeleti ile aç" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Open a document with a skeleton Perl 6 script" msgstr "Bir belgeyi bir Perl 6 betik iskeleti ile aç" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Open a file from a remote location" msgstr "Uzaktaki bir konumdan bir dosya açın" #: lib/Padre/Wx/ActionLibrary.pm:139 msgid "Open a new empty document" msgstr "Yeni bir boş belge aç" #: lib/Padre/Wx/ActionLibrary.pm:524 msgid "Open all the files listed in the recent files list" msgstr "Son kullanılan dosyalar listesindeki tüm dosyaları aç" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "Padre::Plugin paketleri için CPAN arama sonuçlarını gösteren bir tarayıcı aç" #: lib/Padre/Wx/Menu/File.pm:394 msgid "Open cancelled" msgstr "Açma işlemi iptal edildi" #: lib/Padre/PluginManager.pm:976 #: lib/Padre/Wx/Main.pm:5992 msgid "Open file" msgstr "Dosya aç" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Open in &Command Line" msgstr "Komut Satırında Aç" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open in File &Browser" msgstr "Dosya Gezginininde Aç" #: lib/Padre/Wx/Directory/TreeCtrl.pm:253 #: lib/Padre/Wx/Directory/TreeCtrl.pm:312 msgid "Open in File Browser" msgstr "Dosya Gezginini Aç" #: lib/Padre/Wx/ActionLibrary.pm:2176 msgid "Open interesting and helpful Padre Wiki in your default web browser" msgstr "İlginç ve yardımcı Padre Wiki'sini varsayılan ağ tarayıcınızda açın" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Open interesting and helpful Perl websites in your default web browser" msgstr "İlginç ve yardımcı Perl sitelerini varsayılan ağ tarayıcınızda açın" #: lib/Padre/Wx/Main.pm:4239 msgid "Open selection" msgstr "Seçimi aç" #: lib/Padre/Config.pm:485 msgid "Open session" msgstr "Oturum aç" #: lib/Padre/Wx/ActionLibrary.pm:2517 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "Padre canlı desteğini tarayıcınızda açın ve sorununuzu çözmenize yardımcı olabilecek diğer kişilerle sohbet edin" #: lib/Padre/Wx/ActionLibrary.pm:2529 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "Perl canlı desteğini tarayıcınızda açın ve sorununuzu çözmenize yardımcı olabilecek diğer kişilerle sohbet edin" #: lib/Padre/Wx/ActionLibrary.pm:2541 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "Perl/Win32 canlı desteğini tarayıcınızda açın ve sorununuzu çözmenize yardımcı olabilecek diğer kişilerle sohbet edin" #: lib/Padre/Wx/ActionLibrary.pm:2211 msgid "Open the regular expression editing window" msgstr "Düzenli ifade düzenleyicisi penceresini aç" #: lib/Padre/Wx/ActionLibrary.pm:2221 msgid "Open the selected text in the Regex Editor" msgstr "Seçili metni Düzenli İfade Düzenleyicisi içinde aç" #: lib/Padre/Wx/ActionLibrary.pm:227 msgid "Open with Default &System Editor" msgstr "Varsayılan Dizge Düzenleyicisi ile Aç" #: lib/Padre/Wx/Main.pm:3203 #, perl-format msgid "Opening session %s..." msgstr "%s oturumu açılıyor..." #: lib/Padre/Wx/ActionLibrary.pm:242 msgid "Opens a command line using the current document folder" msgstr "Geçerli belge klasörünü kullanarak bir komut satırı açar" #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Opens the current document using the file browser" msgstr "Geçerli belgeyi dosya gezgini ile açar" #: lib/Padre/Wx/ActionLibrary.pm:230 msgid "Opens the file with the default system editor" msgstr "Dosyayı varsayılan dizge düzenleyicisi ile açar" #: lib/Padre/Wx/ActionLibrary.pm:264 msgid "Opens the last closed file" msgstr "En son kapatılmış dosyayı açar" #: lib/Padre/Wx/FBP/Preferences.pm:861 msgid "" "Optional features can be disabled to simplify the user interface,\n" "reduce memory consumption and make Padre run faster.\n" "\n" "Changes to features are only applied when Padre is restarted." msgstr "" "Seçime bağlı özellikler; kullanıcı arayüzünü basitleştirmek,\n" "bellek kullanımını azaltmak ve Padre'yi daha hızlı çalıştırmak için\n" "kapatılabilir.\n" "\n" "Özelliklerde yapılan değişiklikler Padre yeniden başladığında uygulanacaktır." #: lib/Padre/Wx/FBP/Patch.pm:148 msgid "Options" msgstr "Seçenekler" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "Seçenekler:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 msgid "Or&iginal text:" msgstr "Özgün met&in:" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "Diğer (Lütfen burayı doldurun)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "Diğer etkinlik" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "Diğer arama motoru" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range." msgstr "Aralık dışında." #: lib/Padre/Wx/Outline.pm:205 #: lib/Padre/Wx/Outline.pm:252 msgid "Outline" msgstr "Taslak" #: lib/Padre/Wx/Output.pm:89 #: lib/Padre/Wx/FBP/Preferences.pm:470 msgid "Output" msgstr "Çıktı" #: lib/Padre/Wx/Bottom.pm:53 msgid "Output View" msgstr "Çıktı Görünümü" #: lib/Padre/Wx/Dialog/Preferences.pm:489 msgid "Override Shortcut" msgstr "Kısayolu Geçersiz Kıl" #: lib/Padre/Wx/ActionLibrary.pm:2527 msgid "P&erl Help" msgstr "Perl Yardımı" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "P&lug-in Tools" msgstr "Eklenti Araçları" #: lib/Padre/Wx/Main.pm:4403 msgid "PHP Files" msgstr "PHP Dosyaları" #: lib/Padre/Wx/FBP/Preferences.pm:311 msgid "POD" msgstr "POD" #: lib/Padre/Wx/FBP/POD.pm:30 msgid "POD Viewer" msgstr "POD Görüntüleyici" #: lib/Padre/Config.pm:1124 #: lib/Padre/Wx/Scintilla.pm:28 msgid "PPI Experimental" msgstr "PPI Deneysel" #: lib/Padre/Config.pm:1125 #: lib/Padre/Wx/Scintilla.pm:34 msgid "PPI Standard" msgstr "PPI Standart" #: lib/Padre/Wx/FBP/About.pm:604 msgid "Paco Alguacil" msgstr "Paco Alguacil" #: lib/Padre/Wx/FBP/About.pm:841 #: lib/Padre/Wx/Dialog/Form.pm:98 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Padre Geliştiricisi" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Padre Geliştirici Araçları" #: lib/Padre/Wx/FBP/Preferences.pm:32 msgid "Padre Preferences" msgstr "Padre Seçenekleri" #: lib/Padre/Wx/FBP/Sync.pm:29 msgid "Padre Sync" msgstr "Padre Eşitleme" #: lib/Padre/Wx/FBP/About.pm:102 msgid "" "Padre contains icons from GNOME, you can redistribute it and/or \n" "modify then under the terms of the GNU General Public License as published by the \n" "Free Software Foundation; version 2 dated June, 1991." msgstr "" "Padre, GNOME içindeki bazı simgeleri kullanmaktadır ve bunlar\n" "Free Software Foundation tarafından yayınlanan Haziran 1991 tarihli\n" "2. sürüm GNU Genel Kamu Lisansı altında yeniden dağıtılabilir ve/veya\n" "değiştirilebilir." #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "PageDown" msgstr "Sayfa Aşağı" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "PageUp" msgstr "Sayfa Yukarı" #: lib/Padre/Wx/FBP/Sync.pm:89 #: lib/Padre/Wx/FBP/Sync.pm:134 msgid "Password" msgstr "Parola" #: lib/Padre/Wx/Dialog/Sync.pm:152 msgid "Password and confirmation do not match." msgstr "Parola ve onayı eşleşmedi" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "%2$s için '%1$s' kullanıcısının parolası" #: lib/Padre/Wx/ActionLibrary.pm:766 msgid "Paste the clipboard to the current location" msgstr "Panoyu geçerli konuma yapıştır" #: lib/Padre/Wx/FBP/Patch.pm:29 msgid "Patch" msgstr "Yama" #: lib/Padre/Wx/Dialog/Patch.pm:407 msgid "Patch file should end in .patch or .diff, you should reselect & try again" msgstr "Yama dosyasının uzantısı .patch veya .diff olmalıdır. Yeni bir seçimle tekrar deneyin." #: lib/Padre/Wx/Dialog/Patch.pm:422 msgid "Patch successful, you should see a new tab in editor called Unsaved #" msgstr "Yama başarılı. Düzenleyicide Kaydedilmemiş # adlı yeni bir sekme göreceksiniz." #: lib/Padre/Wx/VCS.pm:54 msgid "Path" msgstr "Yol" #: lib/Padre/Wx/FBP/About.pm:224 msgid "Patrick Donelan" msgstr "Patrick Donelan" #: lib/Padre/Wx/FBP/About.pm:266 msgid "Paweł Murias" msgstr "Paweł Murias" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:367 msgid "Perl" msgstr "Perl" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl &6 Script" msgstr "Perl &6 Betiği" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 &Module" msgstr "Perl 5 &Modülü" #: lib/Padre/Wx/ActionLibrary.pm:149 msgid "Perl 5 &Script" msgstr "Perl 5 &Betiği" #: lib/Padre/Wx/ActionLibrary.pm:169 msgid "Perl 5 &Test" msgstr "Perl 5 Testi" #: lib/Padre/Wx/FBP/About.pm:64 msgid "Perl Application Development and Refactoring Environment" msgstr "Perl Uygulama Geliştirimi ve Yeniden Yapılandırma Ortamı" #: lib/Padre/Wx/FBP/Preferences.pm:1461 msgid "Perl Arguments" msgstr "Perl Argümanları" #: lib/Padre/Wx/FBP/Preferences.pm:1419 msgid "Perl Ctags File:" msgstr "Perl Ctags Dosyası:" #: lib/Padre/Wx/FBP/Preferences.pm:1405 msgid "Perl Executable:" msgstr "Çalıştırılabilir Perl İkilisi:" #: lib/Padre/Wx/Main.pm:4401 #: lib/Padre/Wx/Choice/Files.pm:21 msgid "Perl Files" msgstr "Perl Dosyaları" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Perl Süzgeci" #: lib/Padre/Locale.pm:259 msgid "Persian (Iran)" msgstr "Farsça (İran)" #: lib/Padre/Wx/FBP/About.pm:284 msgid "Petar Shangov" msgstr "Petar Shangov" #: lib/Padre/Wx/FBP/About.pm:134 msgid "Peter Lavender" msgstr "Peter Lavender" #: lib/Padre/Wx/Dialog/Sync.pm:141 msgid "Please ensure all inputs have appropriate values." msgstr "Lütfen, tüm girdilerin geçerli değerlere sahip olduğundan emin olun." #: lib/Padre/Wx/Dialog/Sync.pm:98 msgid "Please input a valid value for both username and password" msgstr "Lütfen kullanıcı adı ve parola alanlarına geçerli değerler girin" #: lib/Padre/Wx/Directory/TreeCtrl.pm:165 msgid "Please type in the new name of the directory" msgstr "Lütfen dizinin yeni adını yazın" #: lib/Padre/Wx/Directory/TreeCtrl.pm:169 msgid "Please type in the new name of the file" msgstr "Lütfen dosyanın yeni adını yazın" #: lib/Padre/Wx/Progress.pm:85 msgid "Please wait..." msgstr "Lütfen bekleyin..." #: lib/Padre/Wx/ActionLibrary.pm:2246 msgid "Plug-in &List (CPAN)" msgstr "Eklenti Listesi (CPAN)" #: lib/Padre/Wx/FBP/PluginManager.pm:29 msgid "Plug-in Manager" msgstr "Eklenti Yöneticisi" #: lib/Padre/PluginManager.pm:996 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "Eklentinin ana dizin olarak '%s' kullanması gerekiyor" #: lib/Padre/PluginManager.pm:788 #, perl-format msgid "Plugin %s" msgstr "Eklenti (%s)" #: lib/Padre/PluginHandle.pm:345 #, perl-format msgid "Plugin %s returned %s instead of a hook list on ->padre_hooks" msgstr "%s eklentisi, ->padre_hooks üzerinden bir kanca listesi yerine %s döndürdü" #: lib/Padre/PluginHandle.pm:358 #, perl-format msgid "Plugin %s tried to register invalid hook %s" msgstr "%s eklentisi, hatalı %s kancasını kaydettirmeye çalıştı" #: lib/Padre/PluginHandle.pm:366 #, perl-format msgid "Plugin %s tried to register non-CODE hook %s" msgstr "%s eklentisi KOD-olmayan %s kancasını kaydettirmeye çalıştı" #: lib/Padre/PluginManager.pm:761 #, perl-format msgid "Plugin %s, hook %s returned an emtpy error message" msgstr "%s eklentisinin %s kancası boş bir hata iletisi döndürdü" #: lib/Padre/PluginManager.pm:728 #, perl-format msgid "Plugin error on event %s: %s" msgstr "%s olayında eklenti hatası: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:371 msgid "Plugins" msgstr "Eklentiler" #: lib/Padre/Locale.pm:381 #: lib/Padre/Wx/FBP/About.pm:559 msgid "Polish" msgstr "Lehçe" #: lib/Padre/Plugin/PopularityContest.pm:311 msgid "Popularity Contest Report" msgstr "Gözdelik Yarışması Raporu" #: lib/Padre/Locale.pm:391 #: lib/Padre/Wx/FBP/About.pm:574 msgid "Portuguese (Brazil)" msgstr "Portekizce (Brezilya)" #: lib/Padre/Locale.pm:401 msgid "Portuguese (Portugal)" msgstr "Portekizce (Portekiz)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "Konum türü" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "Artı Tam Sayı" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Positive lookahead assertion" msgstr "Artı ileriye dönük sav" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Positive lookbehind assertion" msgstr "Artı arkaya dönük sav" #: lib/Padre/Wx/Outline.pm:384 msgid "Pragmata" msgstr "Derleyici Talimatları" #: lib/Padre/Wx/FBP/Preferences.pm:160 msgid "Prefered language for error diagnostics" msgstr "Hata tanıları için tercih edilen dil" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "Seçenek Adı" #: lib/Padre/Wx/FBP/PluginManager.pm:112 msgid "Preferences" msgstr "Seçenekler" #: lib/Padre/Wx/ActionLibrary.pm:2199 msgid "Preferences &Sync..." msgstr "Seçeneklerin Eşitlenmesi..." #: lib/Padre/Wx/FBP/Snippet.pm:92 msgid "Preview:" msgstr "Önizleme:" #: lib/Padre/Wx/Diff2.pm:27 #: lib/Padre/Wx/Dialog/Diff.pm:26 msgid "Previous difference" msgstr "Önceki fark" #: lib/Padre/Config.pm:482 msgid "Previous open files" msgstr "Daha önce açılmış dosyalar" #: lib/Padre/Wx/ActionLibrary.pm:504 msgid "Print the current document" msgstr "Geçerli belgeyi yazdır" #: lib/Padre/Wx/FBP/Patch.pm:104 msgid "Process" msgstr "Süreç" #: lib/Padre/Wx/Directory.pm:200 #: lib/Padre/Wx/Dialog/WindowList.pm:222 msgid "Project" msgstr "Proje" #: lib/Padre/Wx/FBP/Preferences.pm:361 msgid "Project Browser" msgstr "Proje Gezgini" #: lib/Padre/Wx/ActionLibrary.pm:1429 msgid "Project Browser - Was known as the Directory Tree" msgstr "Proje Gezgini - Daha önceki adıyla Dizin Ağacı" #: lib/Padre/Wx/FBP/SLOC.pm:29 msgid "Project Statistics" msgstr "Proje İstatistikleri" #: lib/Padre/Wx/Left.pm:53 msgid "Project Tools" msgstr "Proje Araçları" #: lib/Padre/Wx/ActionLibrary.pm:1808 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "Değiştirilecek değişken adı için sorgu penceresi aç ve bu değişkenin tüm kayıtlarını değiştir" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Punctuation characters" msgstr "Noktalama damgaları" #: lib/Padre/Wx/ActionLibrary.pm:2354 msgid "Put focus on the next tab to the right" msgstr "Odağı sağdaki ile sekmeye yerleştir" #: lib/Padre/Wx/ActionLibrary.pm:2365 msgid "Put focus on the previous tab to the left" msgstr "Odağı soldaki bir önceki sekmeye yerleştir" #: lib/Padre/Wx/ActionLibrary.pm:749 msgid "Put the content of the current document in the clipboard" msgstr "Geçerli belgenin içeriğini panoya yerleştir" #: lib/Padre/Wx/ActionLibrary.pm:689 msgid "Put the current selection in the clipboard" msgstr "Geçerli seçimi panoya yerleştir" #: lib/Padre/Wx/ActionLibrary.pm:705 msgid "Put the full path of the current file in the clipboard" msgstr "Geçerli dosyanın tam yolunu panoya yerleştir" #: lib/Padre/Wx/ActionLibrary.pm:735 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "Geçerli dosyanın içinde bulunduğu dizinin tam yolunu panoya yerleştir" #: lib/Padre/Wx/ActionLibrary.pm:720 msgid "Put the name of the current file in the clipboard" msgstr "Gerçerli dosyanın adını panoya yerleştir" #: lib/Padre/Wx/Main.pm:4405 msgid "Python Files" msgstr "Python Dosyaları" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:43 msgid "Quick Menu Access" msgstr "Hızlı Menü Erişimi" #: lib/Padre/Wx/ActionLibrary.pm:1332 msgid "Quick access to all menu functions" msgstr "Bütün menü işlevlerine hızlı erişim" #: lib/Padre/Wx/FBP/Debugger.pm:163 msgid "Quit Debugger" msgstr "Hata Ayıklayıcıdan Çık" #: lib/Padre/Wx/ActionLibrary.pm:2163 msgid "Quit Debugger (&q)" msgstr "Hata Ayıklayıcıdan Çık (&q)" #: lib/Padre/Wx/ActionLibrary.pm:2164 msgid "Quit the process being debugged" msgstr "Hata ayıklanan süreçten çık" #: lib/Padre/Wx/Dialog/RegexEditor.pm:156 msgid "Quote (disable) pattern metacharacters till \\E" msgstr "\\E işaretine kadar olan tüm desen yardımcı damgalarını tırnakla (iptal et)" #: lib/Padre/Wx/StatusBar.pm:411 msgid "R/W" msgstr "O/Y" #: lib/Padre/Wx/Dialog/About.pm:155 msgid "RAM" msgstr "Bellek" #: lib/Padre/Wx/FBP/Debugger.pm:484 msgid "" "Raw\n" "You can enter what ever debug command you want!" msgstr "" "Ham\n" "İstediğiniz herhangi bir hata ayıklama komutunu girebilirsiniz!" #: lib/Padre/Wx/Menu/File.pm:180 msgid "Re&load" msgstr "Yeniden Yükle" #: lib/Padre/Wx/ActionLibrary.pm:2303 msgid "Re&load All Plug-ins" msgstr "Tüm Eklentileri Yeniden Yükle" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Re&place in Files..." msgstr "Dosyalar içınde değiştir" #: lib/Padre/Wx/ActionLibrary.pm:2281 msgid "Re&set My plug-in" msgstr "My eklentisini sıfırla" #: lib/Padre/Wx/StatusBar.pm:411 msgid "Read Only" msgstr "Salt Okunur" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "Dosya FTP sunucusundan okunuyor..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:274 msgid "Reading items. Please wait" msgstr "Maddeler okunuyor. Lütfen bekleyin" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:327 msgid "Reading items. Please wait..." msgstr "Unsurlar Okunuyor. Lütfen bekleyin..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:215 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "Gerçekten \"%s\" dosyasını silmek istiyor musunuz?" #: lib/Padre/Wx/FBP/CPAN.pm:277 msgid "Recent" msgstr "Son Kullanılanlar" #: lib/Padre/Wx/ActionLibrary.pm:608 msgid "Redo last undo" msgstr "Son geri almayı tekrarla" #: lib/Padre/Wx/Menu/Refactor.pm:91 msgid "Ref&actor" msgstr "Yeniden y&apılandır" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:368 msgid "Refactor" msgstr "Yeniden yapılandır" #: lib/Padre/Wx/Directory.pm:226 #: lib/Padre/Wx/FBP/CPAN.pm:132 #: lib/Padre/Wx/FBP/CPAN.pm:180 msgid "Refresh" msgstr "Tazele" #: lib/Padre/Wx/FBP/Breakpoints.pm:63 msgid "Refresh List" msgstr "Listeyi Tazele" #: lib/Padre/Wx/FBP/FoundInFiles.pm:51 msgid "Refresh Search" msgstr "Aramayı Tazele" #: lib/Padre/Wx/FBP/VCS.pm:143 msgid "Refresh the status of working copy files and directories" msgstr "Çalışma kopyası olan dosya ve dizinlerin durumlarını tazele" #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "Düzenli İfade Düzenleyicisi" #: lib/Padre/Wx/FBP/Sync.pm:192 msgid "Register" msgstr "Kaydol" #: lib/Padre/Wx/FBP/Sync.pm:331 msgid "Registration" msgstr "Kayıt" #: lib/Padre/Wx/FBP/Find.pm:79 #: lib/Padre/Wx/FBP/Replace.pm:129 msgid "Regular E&xpression" msgstr "Düzenli İfade" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "Diğer bir bilgisayara yeniden/yeni kurulum yapılırken" #: lib/Padre/Wx/ActionLibrary.pm:389 msgid "Reload &All" msgstr "Hepsini Yeniden Yükle" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload &File" msgstr "Dosyayı Yeniden Yükle" #: lib/Padre/Wx/ActionLibrary.pm:399 msgid "Reload &Some..." msgstr "Bazılarını Yeniden Yükle..." #: lib/Padre/Wx/Main.pm:4687 msgid "Reload Files" msgstr "Dosyaları Yeniden Yükle" #: lib/Padre/Wx/ActionLibrary.pm:390 msgid "Reload all files currently open" msgstr "Şu an açık olan tüm dosyaları yeniden yükle" #: lib/Padre/Wx/ActionLibrary.pm:2304 msgid "Reload all plug-ins from &disk" msgstr "Tüm eklentileri diskten tekrar yükle" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Reload current file from disk" msgstr "Geçerli dosyayı diskten yeniden yükle" #: lib/Padre/Wx/Main.pm:4630 msgid "Reloading Files" msgstr "Dosyalar Yeniden Yükleniyor" #: lib/Padre/Wx/ActionLibrary.pm:2313 msgid "Reloads (or initially loads) the current plug-in" msgstr "Geçerli eklentiyi yeniden (veya ilk defa) yükler" #: lib/Padre/Wx/ActionLibrary.pm:659 msgid "Remove all the selection marks" msgstr "Bütün seçim işaretlerini kaldır" #: lib/Padre/Wx/ActionLibrary.pm:969 msgid "Remove comment for selected lines or the current line" msgstr "Belgedeki seçili satırlardaki veya sadece geçerli satırdaki yorum haline getirilmiş kısımları koda çevir" #: lib/Padre/Wx/ActionLibrary.pm:674 msgid "Remove the current selection and put it in the clipboard" msgstr "Geçerli seçimi kaldır ve panonun içine yerleştir" #: lib/Padre/Wx/ActionLibrary.pm:533 msgid "Remove the entries from the recent files list" msgstr "Son kullanılan dosyalar listesindeki girdileri sil" #: lib/Padre/Wx/ActionLibrary.pm:1064 msgid "Remove the spaces from the beginning of the selected lines" msgstr "Seçili satırların başındaki boşlukları sil" #: lib/Padre/Wx/ActionLibrary.pm:1074 msgid "Remove the spaces from the end of the selected lines" msgstr "Seçili satırların sonundaki boşlukları sil" #: lib/Padre/Wx/Directory/TreeCtrl.pm:378 #: lib/Padre/Wx/Directory/TreeCtrl.pm:380 msgid "Rename" msgstr "Yeniden adlandır" #: lib/Padre/Wx/Directory/TreeCtrl.pm:277 msgid "Rename Directory" msgstr "Dizini Yeniden Adlandır" #: lib/Padre/Wx/Directory/TreeCtrl.pm:336 msgid "Rename File" msgstr "Dosyayı Yeniden Adlandır" #: lib/Padre/Wx/Directory/TreeCtrl.pm:166 msgid "Rename directory" msgstr "Dizini Yeniden Adlandır" #: lib/Padre/Wx/Directory/TreeCtrl.pm:170 msgid "Rename file" msgstr "Dosyayı Yeniden Adlandır" #: lib/Padre/Document/Perl.pm:806 #: lib/Padre/Document/Perl.pm:816 msgid "Rename variable" msgstr "Değişkeni yeniden adlandır" #: lib/Padre/Wx/VCS.pm:264 msgid "Renamed" msgstr "Yeniden Adlandırıldı" #: lib/Padre/Wx/ActionLibrary.pm:1210 msgid "Repeat the last find to find the next match" msgstr "Son bulunanı tekrarlayarak bir daha bul" #: lib/Padre/Wx/ActionLibrary.pm:1221 msgid "Repeat the last find, but backwards to find the previous match" msgstr "Son bulunanı tekrarla, fakat ters çalışarak önceki eşleşmeyi bul" #: lib/Padre/Wx/FBP/Replace.pm:31 msgid "Replace" msgstr "Değiştir" #: lib/Padre/Wx/FBP/Replace.pm:186 msgid "Replace &All" msgstr "Hepsi&ni Değiştir" #: lib/Padre/Wx/FBP/Replace.pm:88 msgid "Replace &With:" msgstr "Şununla Değiştir:" #: lib/Padre/Wx/FBP/Preferences.pm:500 msgid "Replace In Files" msgstr "Dosyalar İçinde Değiştir" #: lib/Padre/Document/Perl.pm:900 #: lib/Padre/Document/Perl.pm:949 msgid "Replace Operation Canceled" msgstr "Değiştir İşlemi İptal Edildi" #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:66 msgid "Replace With:" msgstr "Şununla Değiştir:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:490 msgid "Replace all occurrences of the pattern" msgstr "Desenin tüm görüldüğü yerleri değiştir" #: lib/Padre/Wx/ReplaceInFiles.pm:248 #, perl-format msgid "Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Değiştirme tamamlandı. '%s' sözcüğü %d kere %d adet dosyada '%s' içinde bulundu." #: lib/Padre/Wx/Dialog/RegexEditor.pm:761 #, perl-format msgid "Replace failure in %s: %s" msgstr "%s içinde değiştirme işlemi başarısız: %s" #: lib/Padre/Wx/ReplaceInFiles.pm:132 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:32 msgid "Replace in Files" msgstr "Dosyalar İçinde Değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "Değiştir..." #: lib/Padre/Wx/Dialog/Replace.pm:129 #, perl-format msgid "Replaced %d match" msgstr "%d eşleşme değiştirildi" #: lib/Padre/Wx/Dialog/Replace.pm:129 #, perl-format msgid "Replaced %d matches" msgstr "%d eşleşme değiştirildi" #: lib/Padre/Wx/ReplaceInFiles.pm:189 #, perl-format msgid "Replacing '%s' in '%s'..." msgstr " '%s' değeri '%s' içinde değiştiriliyor..." #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Report a New &Bug" msgstr "Yeni Bir Hata &Bildir" #: lib/Padre/Wx/ActionLibrary.pm:2288 msgid "Reset My plug-in" msgstr "My eklentisini sıfırla" #: lib/Padre/Wx/ActionLibrary.pm:2282 msgid "Reset the My plug-in to the default" msgstr "My eklentisini varsayılana sıfırla" #: lib/Padre/Wx/ActionLibrary.pm:1649 msgid "Reset the size of the letters to the default in the editor window" msgstr "Düzenleyici penceresindeki yazıların boyutunu varsayılan değere sıfırlar" #: lib/Padre/Wx/FBP/Preferences.pm:1237 msgid "Reset to default shortcut" msgstr "Varsayılan kısayola sıfırla" #: lib/Padre/Wx/Main.pm:3233 msgid "Restore focus..." msgstr "Odağı eski haline getir" #: lib/Padre/Wx/FBP/VCS.pm:123 msgid "Restore pristine working copy file (undo most local edits)" msgstr "Önceki bozulmamış dosya durumuna geri dön (çoğu yerel düzenlemeler geri alınacaktır)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:142 msgid "Return" msgstr "Geri dön" #: lib/Padre/Wx/VCS.pm:565 msgid "Revert changes?" msgstr "Değişiklikleri geri al?" #: lib/Padre/Wx/Dialog/Diff.pm:39 msgid "Revert this change" msgstr "Bu değişikliği geri al" #: lib/Padre/Wx/VCS.pm:56 msgid "Revision" msgstr "Tashih" #: lib/Padre/Wx/Dialog/Preferences.pm:34 msgid "Right" msgstr "Sağ" #: lib/Padre/Config.pm:59 msgid "Right Panel" msgstr "Sağ Pano" #: lib/Padre/Wx/FBP/Diff.pm:83 msgid "Right side" msgstr "Sağ taraf" #: lib/Padre/Wx/Main.pm:4407 msgid "Ruby Files" msgstr "Ruby Dosyaları" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:369 msgid "Run" msgstr "Yürüt" #: lib/Padre/Wx/ActionLibrary.pm:1981 msgid "Run &Build and Tests" msgstr "İnşa Etmeye Başla ve Testleri Yürüt" #: lib/Padre/Wx/ActionLibrary.pm:1970 msgid "Run &Command" msgstr "Komut Çalıştır" #: lib/Padre/Plugin/Devel.pm:84 msgid "Run &Document inside Padre" msgstr "Belgeyi Padre içinde yürüt" #: lib/Padre/Plugin/Devel.pm:85 msgid "Run &Selection inside Padre" msgstr "Seçimi Padre içinde yürüt" #: lib/Padre/Wx/ActionLibrary.pm:1993 msgid "Run &Tests" msgstr "Testleri Yürüt" #: lib/Padre/Wx/FBP/Debugger.pm:43 msgid "" "Run Debug\n" "BLUE MORPHO CATERPILLAR \n" "cool bug" msgstr "" "Hata Ayıklamayi Çalıştır\n" "MAVİ ŞEKİLLİ TIRTIL\n" "güzel hata" #: lib/Padre/Wx/ActionLibrary.pm:1958 msgid "Run Script (&Debug Info)" msgstr "Betiği Yürüt (hata ayıklama bilgisi)" #: lib/Padre/Wx/ActionLibrary.pm:2012 msgid "Run T&his Test" msgstr "Bu Testi Yürüt" #: lib/Padre/Wx/ActionLibrary.pm:1995 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "Geçerli projeye veya dosyaya ait bütün testeri yürüt ve sonuçları çıktı panelinde göster." #: lib/Padre/Wx/Dialog/PerlFilter.pm:109 msgid "Run filter" msgstr "Süzgeci çalıştır" #: lib/Padre/Wx/Main.pm:2722 msgid "Run setup" msgstr "Kurulumu yürüt" #: lib/Padre/Wx/ActionLibrary.pm:1959 msgid "Run the current document but include debug info in the output." msgstr "Geçerli belgeyi yürüt fakat çıktı içinde hata ayıklama bilgisini de göster" #: lib/Padre/Wx/ActionLibrary.pm:2013 msgid "Run the current test if the current document is a test. (prove -lv)" msgstr "Eğer geçerli belge bir test ise, geçerli testi yürüt. (prove -lv)" #: lib/Padre/Wx/ActionLibrary.pm:1971 msgid "Runs a shell command and shows the output." msgstr "Bir kabuk programını çalıştırır ve çıktısını gösterir." #: lib/Padre/Wx/ActionLibrary.pm:1943 msgid "Runs the current document and shows its output in the output panel." msgstr "Geçerli belgeyi yürütür ve çıktısını çıktı panelinde gösterir." #: lib/Padre/Locale.pm:411 #: lib/Padre/Wx/FBP/About.pm:616 msgid "Russian" msgstr "Rusça" #: lib/Padre/Wx/FBP/About.pm:188 msgid "Ryan Niebur" msgstr "Ryan Niebur" #: lib/Padre/Wx/FBP/Debugger.pm:444 msgid "" "S [[!]regex]\n" "List subroutine names [not] matching the regex." msgstr "" "S [[!]düzenli ifade]\n" "Düzenli ifade ile eşleşmeyen alt rutin adlarını listele." #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "K&aydet" #: lib/Padre/Wx/FBP/Preferences.pm:1194 msgid "S&et" msgstr "Ata" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "SHIFT" #: lib/Padre/Wx/Main.pm:4409 msgid "SQL Files" msgstr "SQL Dosyaları" #: lib/Padre/Wx/Dialog/Patch.pm:572 #, perl-format msgid "SVN Diff successful. You should see a new tab in editor called %s." msgstr "SVN Fark komutu başarılı. Düzenleyicide %s adlı yeni bir sekme göreceksiniz." #: lib/Padre/Wx/Dialog/SessionSave.pm:234 msgid "Save" msgstr "Kaydet" #: lib/Padre/Wx/ActionLibrary.pm:426 msgid "Save &As..." msgstr "&Farklı Kaydet..." #: lib/Padre/Wx/ActionLibrary.pm:439 msgid "Save &Intuition" msgstr "Akıllı Kaydet" #: lib/Padre/Wx/ActionLibrary.pm:450 msgid "Save All" msgstr "Hepsini Kaydet" #: lib/Padre/Wx/ActionLibrary.pm:486 msgid "Save Sess&ion..." msgstr "Oturumu Kaydet..." #: lib/Padre/Document.pm:783 msgid "Save Warning" msgstr "Kaydetme Uyarısı" #: lib/Padre/Wx/ActionLibrary.pm:451 msgid "Save all the files" msgstr "Tüm dosyaları kaydet" #: lib/Padre/Wx/FBP/Preferences.pm:660 msgid "Save and Close" msgstr "Kaydet ve Kapat" #: lib/Padre/Wx/ActionLibrary.pm:414 msgid "Save current document" msgstr "Geçerli dosyayı kaydet" #: lib/Padre/Wx/Main.pm:4773 msgid "Save file as..." msgstr "Dosyayı Farklı Kaydet..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "Oturumu farklı kaydet..." #: lib/Padre/Wx/FBP/SessionManager.pm:70 msgid "Save session automatically" msgstr "Oturumu otomatik kaydet" #: lib/Padre/Wx/FBP/VCS.pm:43 msgid "Schedule the file or directory for addition to the repository" msgstr "Dosya veya dizini, depoya eklenmesi için zamanlayıcı kuyruğuna ekle" #: lib/Padre/Wx/FBP/VCS.pm:63 msgid "Schedule the file or directory for deletion from the repository" msgstr "Dosya veya dizini, depodan silinmesi için zamanlayıcı kuyruğuna ekle" #: lib/Padre/Config.pm:1123 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/FBP/Preferences.pm:1923 msgid "Screen Layout" msgstr "Ekran Düzeni" #: lib/Padre/Wx/FBP/Preferences.pm:1481 msgid "Script Arguments" msgstr "Betik Argümanları" #: lib/Padre/Wx/FBP/Preferences.pm:1436 msgid "Script Execution" msgstr "Betik Yürütmesi" #: lib/Padre/Wx/Main.pm:4415 msgid "Script Files" msgstr "Betik Dosyaları" #: lib/Padre/Wx/Directory.pm:84 #: lib/Padre/Wx/Directory.pm:505 #: lib/Padre/Wx/FBP/CPAN.pm:276 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:365 #: lib/Padre/Wx/Dialog/Find.pm:65 msgid "Search" msgstr "Ara" #: lib/Padre/Wx/FBP/Find.pm:87 msgid "Search &Backwards" msgstr "&Geriye Doğru Ara" #: lib/Padre/Wx/FBP/FindInFiles.pm:48 #: lib/Padre/Wx/FBP/Find.pm:46 #: lib/Padre/Wx/FBP/ReplaceInFiles.pm:41 #: lib/Padre/Wx/FBP/Replace.pm:47 msgid "Search &Term:" msgstr "Aranacak Değer:" #: lib/Padre/Document/Perl.pm:651 msgid "Search Canceled" msgstr "Arama İptal Edildi" #: lib/Padre/Wx/Dialog/Replace.pm:132 #: lib/Padre/Wx/Dialog/Replace.pm:137 #: lib/Padre/Wx/Dialog/Replace.pm:162 msgid "Search and Replace" msgstr "Ara ve Değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1267 msgid "Search and replace text in all files below a given directory" msgstr "Bir metni, belirtilen dizinin altındaki bütün dosyalarda ara ve değiştir" #: lib/Padre/Wx/Panel/FoundInFiles.pm:292 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "Arama tamamlandı. '%s' sözcüğü %d kere %d dosya içinde bulundu. Arama '%s' içinde gerçekleşti" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Search for a text in all files below a given directory" msgstr "Bir metni, belirtilen dizinin altındaki bütün dizinlerde ara" #: lib/Padre/Wx/Browser.pm:92 #: lib/Padre/Wx/Browser.pm:107 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "perldoc için arama - ör: Padre::Task, Net::LDAP" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Search the Perl help pages (perldoc)" msgstr "Perl yardım dosyalarında ara (perldoc)" #: lib/Padre/Wx/Browser.pm:103 msgid "Search:" msgstr "Ara:" #: lib/Padre/Wx/Browser.pm:442 #, perl-format msgid "Searched for '%s' and failed..." msgstr "'%s' araması başarısız oldu..." #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "Kaynak kodu, eşleşmeyen (açılış/kapanış) parantezleri için tarar" #: lib/Padre/Wx/Panel/FoundInFiles.pm:242 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr " '%s' değeri '%s' içinde aranıyor..." #: lib/Padre/Wx/FBP/About.pm:140 #: lib/Padre/Wx/FBP/About.pm:445 msgid "Sebastian Willing" msgstr "Sebastian Willing" #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "İkinci Etiket" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "Güncelleme bilgisi için http://padre.perlide.org/ adresine bakın" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "Seç" #: lib/Padre/Wx/ActionLibrary.pm:621 msgid "Select &All" msgstr "Hepsini Seç" #: lib/Padre/Wx/Dialog/FindInFiles.pm:52 #: lib/Padre/Wx/Dialog/ReplaceInFiles.pm:44 msgid "Select Directory" msgstr "Dizin Seç" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "İşlev Seç" #: lib/Padre/Wx/ActionLibrary.pm:1307 msgid "Select a bookmark created earlier and jump to that position" msgstr "Daha önce oluşturulmuş bir yer imini seç ve o konuma zıpla" #: lib/Padre/Wx/ActionLibrary.pm:907 msgid "Select a date, filename or other value and insert at the current location" msgstr "Bir Tarih, Dosya Adı veya başka bir değeri seç ve geçerli konuma ekle" #: lib/Padre/Wx/FBP/Preferences.pm:1426 msgid "Select a file" msgstr "Bir dosya seç" #: lib/Padre/Wx/ActionLibrary.pm:931 msgid "Select a file and insert its content at the current location" msgstr "Bir dosya seç ve içeriğini geçerli konuma ekle" #: lib/Padre/Wx/FBP/Preferences.pm:610 msgid "Select a folder" msgstr "Bir dizin seç" #: lib/Padre/Wx/ActionLibrary.pm:476 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "Bir oturum seçin. Açık olan tüm dosyaları kapatın ve oturumda listelenenlerin hepsini açın" #: lib/Padre/Wx/ActionLibrary.pm:622 msgid "Select all the text in the current document" msgstr "Geçerli belgedeki bütün metni seç" #: lib/Padre/Wx/ActionLibrary.pm:1002 msgid "Select an encoding and encode the document to that" msgstr "Bir kodlama seçin ve belgenin kodlamasını buna dönüştürün" #: lib/Padre/Wx/ActionLibrary.pm:919 msgid "Select and insert a snippet at the current location" msgstr "Bir ufak kod seçerek gerçerli konuma ekleyin" #: lib/Padre/CPAN.pm:100 msgid "Select distribution to install" msgstr "Kurulacak dağıtımı seç" #: lib/Padre/Wx/Main.pm:5237 msgid "Select files to close:" msgstr "Kapatılacak dosyaları seçin:" #: lib/Padre/Wx/Dialog/OpenResource.pm:238 msgid "Select one or more resources to open" msgstr "Açmak için bir veya daha fazla kaynak seçin" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "Kapatmak için bazı açık dosyaları seçin" #: lib/Padre/Wx/ActionLibrary.pm:400 msgid "Select some open files for reload" msgstr "Kapatmak için bazı açık dosyaları seçin" #: lib/Padre/Wx/Dialog/HelpSearch.pm:131 msgid "Select the help &topic" msgstr "Yardım konusunu se&çin" #: lib/Padre/Wx/ActionLibrary.pm:882 msgid "Select to Matching &Brace" msgstr "Eşleşen Paranteze kadar Seç" #: lib/Padre/Wx/ActionLibrary.pm:883 msgid "Select to the matching opening or closing brace" msgstr "Eşleşen açılış veya kapanış parantezine kadar seç" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "Yeni altrutininizin öncesine yerleştirileceği altrutini seçin" #: lib/Padre/Wx/FBP/Document.pm:129 msgid "Selection" msgstr "Seçim" #: lib/Padre/Document/Perl.pm:943 msgid "Selection not part of a Perl statement?" msgstr "Seçim bir Perl ifadesinin parçası değil mi?" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Send a bug report to the Padre developer team" msgstr "Padre geliştirme takımına bir hata raporu yollayın" #: lib/Padre/Wx/FBP/VCS.pm:103 msgid "Send changes from your working copy to the repository" msgstr "Çalışma kopyanızdaki değişiklikleri depoya gönderin" #: lib/Padre/File/HTTP.pm:52 #, perl-format msgid "Sending HTTP request %s..." msgstr "%s HTTP isteği gönderiliyor..." #: lib/Padre/Wx/FBP/Sync.pm:38 msgid "Server" msgstr "Sunucu" #: lib/Padre/Wx/FBP/SessionManager.pm:29 #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "Oturum Yöneticisi" #: lib/Padre/Wx/Dialog/SessionSave.pm:205 msgid "Session name:" msgstr "Oturum adı:" #: lib/Padre/Wx/ActionLibrary.pm:1295 msgid "Set &Bookmark" msgstr "Yer İmi Ata" #: lib/Padre/Wx/FBP/Bookmarks.pm:38 msgid "Set Bookmark:" msgstr "Yer İmi Ata:" #: lib/Padre/Wx/ActionLibrary.pm:2142 msgid "Set Breakpoint (&b)" msgstr "Kırılma Noktası Ata (&b)" #: lib/Padre/Wx/FBP/Breakpoints.pm:83 msgid "Set Breakpoints (toggle)" msgstr "Kırılma Noktası Ata (değiştir)" #: lib/Padre/Wx/ActionLibrary.pm:1665 msgid "Set Padre in full screen mode" msgstr "Padre' yi tam ekran kipinde çalıştır" #: lib/Padre/Wx/ActionLibrary.pm:2143 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "Bir koşul içindeki imlecin geçerli konumuna bir kırılma noktası ata" #: lib/Padre/Wx/ActionLibrary.pm:2391 msgid "Set the focus to the \"CPAN Explorer\" window" msgstr "Odağı \"CPAN Gezgini\" penceresine ayarla" #: lib/Padre/Wx/ActionLibrary.pm:2447 msgid "Set the focus to the \"Command Line\" window" msgstr "Odağı \"Komut Satırı\" penceresine ayarla" #: lib/Padre/Wx/ActionLibrary.pm:2402 msgid "Set the focus to the \"Functions\" window" msgstr "Odağı \"İşlevler\" penceresine ayarla" #: lib/Padre/Wx/ActionLibrary.pm:2414 msgid "Set the focus to the \"Outline\" window" msgstr "Odağı \"Taslak\" penceresine ayarla" #: lib/Padre/Wx/ActionLibrary.pm:2425 msgid "Set the focus to the \"Output\" window" msgstr "Odağı \"Çıktı\" penceresine ayarla" #: lib/Padre/Wx/ActionLibrary.pm:2436 msgid "Set the focus to the \"Syntax Check\" window" msgstr "Odağı \"Sözdizim Denetimi\" penceresine ayarla" #: lib/Padre/Wx/ActionLibrary.pm:2458 msgid "Set the focus to the main editor window" msgstr "Odağı ana düzenleyici penceresi olarak değiştir" #: lib/Padre/Wx/FBP/Preferences.pm:1199 msgid "Sets the keyboard binding" msgstr "Klavye kısayollarını ayarlar" #: lib/Padre/Config.pm:532 #: lib/Padre/Config.pm:787 msgid "Several placeholders like the filename can be used" msgstr "Dosya adı gibi, çeşitli yer tutucular kullanılabilir" #: lib/Padre/Wx/Syntax.pm:59 msgid "Severe Warning" msgstr "Ciddi Uyarı" #: lib/Padre/Wx/ActionLibrary.pm:2200 msgid "Share your preferences between multiple computers" msgstr "Program seçeneklerinizi diğer bilgisayarlarla paylaşın" #: lib/Padre/MIME.pm:1034 msgid "Shell Script" msgstr "Kabuk Betiği" #: lib/Padre/Wx/FBP/Preferences.pm:1171 msgid "Shift" msgstr "Üst damga" #: lib/Padre/Wx/FBP/About.pm:472 msgid "Shlomi Fish" msgstr "Shlomi Fish" #: lib/Padre/Wx/Dialog/Preferences.pm:169 #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "Kısayol" #: lib/Padre/Wx/FBP/Preferences.pm:1143 msgid "Shortcut:" msgstr "Kısayol:" #: lib/Padre/Wx/FBP/Preferences.pm:136 msgid "Shorten the common path in window list" msgstr "Pencere listesinde ortak yolu kısalt" #: lib/Padre/Wx/FBP/VCS.pm:239 #: lib/Padre/Wx/FBP/Breakpoints.pm:151 #: lib/Padre/Wx/FBP/Debugger.pm:519 msgid "Show" msgstr "Göster" #: lib/Padre/Wx/ActionLibrary.pm:1377 msgid "Show &Command Line" msgstr "Komut Satırı Penceresini Göster" #: lib/Padre/Wx/Dialog/RegexEditor.pm:215 msgid "Show &Description" msgstr "&Tanımı Göster" #: lib/Padre/Wx/ActionLibrary.pm:1367 msgid "Show &Function List" msgstr "İşlev Listesini Göster" #: lib/Padre/Wx/ActionLibrary.pm:1605 msgid "Show &Indentation Guide" msgstr "Girintileme Kılavuzunu Göster" #: lib/Padre/Wx/ActionLibrary.pm:1417 msgid "Show &Outline" msgstr "Özeti Göster" #: lib/Padre/Wx/ActionLibrary.pm:1357 msgid "Show &Output" msgstr "Çıktıyı Göster" #: lib/Padre/Wx/ActionLibrary.pm:1428 msgid "Show &Project Browser" msgstr "Proje Gezginini Göster" #: lib/Padre/Wx/ActionLibrary.pm:1407 msgid "Show &Task List" msgstr "Görev Listesini Göster" #: lib/Padre/Wx/ActionLibrary.pm:1595 msgid "Show &Whitespaces" msgstr "Beyaz Boşlukları Göster" #: lib/Padre/Wx/ActionLibrary.pm:1563 msgid "Show C&urrent Line" msgstr "Geçerli Satırı Göster" #: lib/Padre/Wx/ActionLibrary.pm:1387 msgid "Show CPA&N Explorer" msgstr "CPA&N Gezginini Göster" #: lib/Padre/Wx/ActionLibrary.pm:1549 msgid "Show Ca&ll Tips" msgstr "Çağrı Yardımlarını Göster" #: lib/Padre/Wx/ActionLibrary.pm:1508 msgid "Show Code &Folding" msgstr "Kod Kıvrımlanmasını Göster" #: lib/Padre/Wx/ActionLibrary.pm:2062 msgid "Show Debug Breakpoints" msgstr "Hata Ayıklama Kırılma Noktalarını Göster" #: lib/Padre/Wx/ActionLibrary.pm:2075 msgid "Show Debug Output" msgstr "Hata Ayıklama Çıktısını Göster" #: lib/Padre/Wx/ActionLibrary.pm:2085 msgid "Show Debugger" msgstr "Hata Ayıklayıcıyı Göster" #: lib/Padre/Wx/FBP/Debugger.pm:212 msgid "Show Global Variables" msgstr "Küresel Değişkenleri Göster" #: lib/Padre/Wx/ActionLibrary.pm:1497 msgid "Show Line &Numbers" msgstr "Satır Numaralarını Göster" #: lib/Padre/Wx/FBP/Debugger.pm:193 msgid "Show Local Variables (y 0)" msgstr "Yerel Değişkenleri Göster (y 0)" #: lib/Padre/Wx/ActionLibrary.pm:1585 msgid "Show Ne&wlines" msgstr "Yeni Satırları Göster" #: lib/Padre/Wx/ActionLibrary.pm:1573 msgid "Show Right &Margin" msgstr "Sağ Kenarlığı Göster" #: lib/Padre/Wx/ActionLibrary.pm:1438 msgid "Show S&yntax Check" msgstr "Sözdizimi Denetimini Göster" #: lib/Padre/Wx/ActionLibrary.pm:1459 msgid "Show St&atus Bar" msgstr "Durum Çubuğunu Göster" #: lib/Padre/Wx/FBP/Syntax.pm:63 msgid "Show Standard Error" msgstr "Standart Hatayı Göster" #: lib/Padre/Wx/Dialog/RegexEditor.pm:245 msgid "Show Subs&titution" msgstr "Yerdeğişimini Gös&ter" #: lib/Padre/Wx/ActionLibrary.pm:1469 msgid "Show Tool&bar" msgstr "Araç Çubuğunu Göster" #: lib/Padre/Wx/ActionLibrary.pm:1448 msgid "Show V&ersion Control" msgstr "Sürüm D&enetimini Göster" #: lib/Padre/Wx/ActionLibrary.pm:1574 msgid "Show a vertical line indicating the right margin" msgstr "Sağ kenarlığı belirten dikey bir çizgi göster" #: lib/Padre/Wx/ActionLibrary.pm:1408 msgid "Show a window listing all task items in the current document" msgstr "Geçerli belgedeki bütün görev unsurlarını gösteren bir pencere göster" #: lib/Padre/Wx/ActionLibrary.pm:1368 msgid "Show a window listing all the functions in the current document" msgstr "Geçerli belgedeki bütün işlevleri gösteren bir pencere göster" #: lib/Padre/Wx/ActionLibrary.pm:1418 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "Geçerli dosyanın tüm bölümlerini (işlevler, pragmalar, modüller) listeleyen bir pencere göster" #: lib/Padre/Wx/Menu/Edit.pm:297 msgid "Show as" msgstr "Farklı göster" #: lib/Padre/Wx/ActionLibrary.pm:1154 msgid "Show as &Decimal" msgstr "Onluk olarak Göster" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Show as &Hexadecimal" msgstr "Onaltılık olarak Göster" #: lib/Padre/Plugin/PopularityContest.pm:208 msgid "Show current report" msgstr "Geçerli raporu göster" #: lib/Padre/Wx/ActionLibrary.pm:1397 msgid "Show diff window!" msgstr "Fark penceresini göster!" #: lib/Padre/Wx/ActionLibrary.pm:2593 msgid "Show information about Padre" msgstr "Padre hakkında bilgi ver" #: lib/Padre/Wx/FBP/Preferences.pm:152 msgid "Show low priority info messages on status bar (not in a popup)" msgstr "Düşük öneme sahip bilgi iletilerini durum çubuğunda göster (yeni pencerede değil)" #: lib/Padre/Config.pm:1142 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "Düşük öneme sahip bilgi iletilerini durum çubuğunda göster (yeni pencerede değil)" #: lib/Padre/Config.pm:779 msgid "Show or hide the status bar at the bottom of the window." msgstr "Pencerenin altındaki durum çubuğunu göster/gizle" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "Show previous positions" msgstr "Önceki konumları göster" #: lib/Padre/Wx/FBP/Preferences.pm:742 msgid "Show right margin at column" msgstr "Sütunda sağ kenarlığı göster" #: lib/Padre/Wx/FBP/Preferences.pm:563 msgid "Show splash screen" msgstr "Açılış ekranını göster" #: lib/Padre/Wx/ActionLibrary.pm:1155 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "Onluk olarak seçilmiş metnin ASCII değerlerini çıktı penceresinde göster" #: lib/Padre/Wx/ActionLibrary.pm:1145 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "Onaltılk gösterimdeki seçili metnin ASCII değerlerini çıktı penceresinde göster" #: lib/Padre/Wx/ActionLibrary.pm:2505 msgid "Show the POD (Perldoc) version of the current document" msgstr "Geçerli belgenin POD (Perldoc) sürümünü göster" #: lib/Padre/Wx/ActionLibrary.pm:2471 msgid "Show the Padre help" msgstr "Padre Yardımını Göster" #: lib/Padre/Wx/ActionLibrary.pm:2234 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "Eklentileri açmak veya kapamak için Padre eklenti yöneticisini göster" #: lib/Padre/Wx/ActionLibrary.pm:1378 msgid "Show the command line window" msgstr "Komut satırı penceresini göster" #: lib/Padre/Wx/ActionLibrary.pm:2492 msgid "Show the help article for the current context" msgstr "Geçerli bağlama ait yardım makalesini göster" #: lib/Padre/Wx/ActionLibrary.pm:1358 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "Yürütülen betiklere ait standart çıktı ve standart hata pencerelerini göster" #: lib/Padre/Wx/ActionLibrary.pm:1719 msgid "Show what perl thinks about your code" msgstr "perl' ün kodunuz hakkında ne düşündüğünü göster" #: lib/Padre/Wx/ActionLibrary.pm:1509 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "Satırları kıvrımlamak için pencerenin sol tarafındaki dikey çizgiyi göster/gizle" #: lib/Padre/Wx/ActionLibrary.pm:1498 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "Pencerenin solundaki bütün belgelerin satır numaralarını göster/gizle" #: lib/Padre/Wx/ActionLibrary.pm:1586 msgid "Show/hide the newlines with special character" msgstr "Yeni satırları belirtmek için özel bir damgayı göster/gizle" #: lib/Padre/Wx/ActionLibrary.pm:1460 msgid "Show/hide the status bar at the bottom of the screen" msgstr "Ekranın altındaki durum çubuğubu göster/gizle" #: lib/Padre/Wx/ActionLibrary.pm:1596 msgid "Show/hide the tabs and the spaces with special characters" msgstr "Sekme ve beyaz boşlukları özel damgayla göster/gizle" #: lib/Padre/Wx/ActionLibrary.pm:1470 msgid "Show/hide the toolbar at the top of the editor" msgstr "Ekranın altındaki araç çubuğubu göster/gizle" #: lib/Padre/Wx/ActionLibrary.pm:1606 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "Satırların solundaki girintileme konumunu gösteren dikey çubukları göster/gizle" #: lib/Padre/Config.pm:469 msgid "Showing the splash image during start-up" msgstr "Başlarken açılış ekranı gösteriliyor" #: lib/Padre/Wx/FBP/About.pm:508 msgid "Simone Blandino" msgstr "Simone Blandino" #: lib/Padre/Wx/ActionLibrary.pm:1108 msgid "Simplistic Patch only works on saved files" msgstr "Basit Yama sadece kaydedilmiş dosyalar üzerinde çalışır." #: lib/Padre/Plugin/Devel.pm:92 msgid "Simulate &Background Crash" msgstr "Arkaplan Çökmesini Benzeştir" #: lib/Padre/Plugin/Devel.pm:90 msgid "Simulate &Crash" msgstr "Çökmeyi Benzeştir" #: lib/Padre/Plugin/Devel.pm:91 msgid "Simulate Background &Exception" msgstr "Arkaplan İstisnasını Taklit Et" #: lib/Padre/Wx/ActionLibrary.pm:2377 msgid "Simulate a right mouse button click to open the context menu" msgstr "Bağlam menüsünü açmak için sağ fare tuşu tıklamasını taklit et" #: lib/Padre/Wx/Dialog/RegexEditor.pm:476 msgid "Single-line (&s)" msgstr "Tek-satır (&s)" #: lib/Padre/Wx/Dialog/Special.pm:71 msgid "Size" msgstr "Boyut" #: lib/Padre/Wx/FBP/WhereFrom.pm:66 msgid "Skip question without giving feedback" msgstr "Bir geri bildirimde bulunmadan soruyu atla" #: lib/Padre/Wx/Dialog/OpenResource.pm:270 msgid "Skip using MANIFEST.SKIP" msgstr "MANIFEST.SKIP kullanarak atla" #: lib/Padre/Wx/Dialog/OpenResource.pm:266 msgid "Skip version control system files" msgstr "Sürüm Denetim Dizgesi dosyalarını atla" #: lib/Padre/Document.pm:1415 #: lib/Padre/Document.pm:1416 msgid "Skipped for large files" msgstr "Geniş dosyalar için atlandı" #: lib/Padre/Wx/FBP/Snippet.pm:61 msgid "Snippet:" msgstr "Örnek kod:" #: lib/Padre/Wx/Dialog/SessionManager.pm:112 #, perl-format msgid "" "Something is wrong with your Padre database:\n" "Session %s is listed but there is no data" msgstr "" "Padre veritabanızla ilgili bir sorun var:\n" "%s oturumu listelendi fakat verisi yok" #: lib/Padre/Wx/Dialog/Patch.pm:491 msgid "Sorry Diff Failed, are you sure your choice of files was correct for this action" msgstr "Üzgünüm, Fark başarısız oldu. Seçtiğiniz dosyaların bu eylem için uygun olduğundan emin misiniz?" #: lib/Padre/Wx/Dialog/Patch.pm:588 msgid "Sorry, Diff failed. Are you sure your have access to the repository for this action" msgstr "Üzgünüm, Fark başarısız oldu. Bu eylem için gerekli depoya erişiminiz olduğundan emin misiniz?" #: lib/Padre/Wx/Dialog/Patch.pm:434 msgid "Sorry, patch failed, are you sure your choice of files was correct for this action" msgstr "Üzgünüm, yama başarısız oldu. Seçtiğiniz dosyaların bu eylem için uygun olduğundan emin misiniz?" #: lib/Padre/Wx/FBP/Preferences.pm:73 msgid "Sort Order:" msgstr "Sınıflandırma Sırası" #: lib/Padre/Wx/FBP/Document.pm:228 msgid "Source Lines of Code" msgstr "Kaynak Kod Satır Sayısı" #: lib/Padre/Wx/Dialog/Preferences.pm:30 msgid "Space" msgstr "Boşluk" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "Space and tab" msgstr "Boşluk ve sekme" #: lib/Padre/Wx/Main.pm:6272 msgid "Space to Tab" msgstr "Boşluğu sekmeye çevir" #: lib/Padre/Wx/ActionLibrary.pm:1053 msgid "Spaces to &Tabs..." msgstr "Boşlukları Sekmelere Çevir..." #: lib/Padre/Locale.pm:249 #: lib/Padre/Wx/FBP/About.pm:595 msgid "Spanish" msgstr "İspanyolca" #: lib/Padre/Locale.pm:235 msgid "Spanish (Argentina)" msgstr "İspanyolca (Arjantin)" #: lib/Padre/Wx/ActionLibrary.pm:906 msgid "Special &Value..." msgstr "Özel Değer..." #: lib/Padre/Config.pm:1381 msgid "Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled." msgstr "Devel::EndStats seçeneklerini belirtin. 'feature_devel_endstats' etkin olmalıdır." #: lib/Padre/Config.pm:1400 msgid "Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled." msgstr "Devel::TraceUse seçeneklerini belirtin. 'feature_devel_traceuse' etkin olmalıdır." #: lib/Padre/Wx/FBP/Preferences.pm:523 msgid "Startup" msgstr "Başlangıç" #: lib/Padre/Wx/VCS.pm:53 #: lib/Padre/Wx/FBP/Sync.pm:52 #: lib/Padre/Wx/FBP/DebugOutput.pm:37 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:35 #: lib/Padre/Wx/CPAN/Listview.pm:59 msgid "Status" msgstr "Durum" #: lib/Padre/Wx/FBP/About.pm:152 msgid "Steffen Muller" msgstr "Steffen Muller" #: lib/Padre/Wx/FBP/FoundInFiles.pm:111 msgid "Stop Search" msgstr "Aramayı Durdur" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "Stop a running task." msgstr "Çalışan bir görevi durdur." #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Stops processing of other action queue items for 1 second" msgstr "Diğer eylem kuyruğu elemanlarını 1 saniyeliğine durdurur" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Stops processing of other action queue items for 10 seconds" msgstr "Diğer eylem kuyruğu elemanlarını 10 saniyeliğine durdurur" #: lib/Padre/Wx/ActionLibrary.pm:128 msgid "Stops processing of other action queue items for 30 seconds" msgstr "Diğer eylem kuyruğu elemanlarını 30 saniyeliğine durdurur" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "Dizgi" #: lib/Padre/Plugin/Devel.pm:173 msgid "Sub-tracing started" msgstr "Altrutin izlemesi başladı" #: lib/Padre/Plugin/Devel.pm:155 msgid "Sub-tracing stopped" msgstr "Altrutin izlemesi bitti" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "Padre arayüz dilini %s olarak değiştir" #: lib/Padre/Wx/ActionLibrary.pm:1484 msgid "Switch document type" msgstr "Belge türünü değiştir" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "Dili sistem varsayılanına değiştir" #: lib/Padre/Wx/Syntax.pm:161 #: lib/Padre/Wx/FBP/Preferences.pm:455 msgid "Syntax Check" msgstr "Sözdizim Denetimi" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "Sistem Varsayılanı" #: lib/Padre/Wx/FBP/Debugger.pm:356 msgid "" "T\n" "Produce a stack backtrace." msgstr "" "T\n" "Yığın geri izlemesi üret." #: lib/Padre/Wx/Dialog/Preferences.pm:29 #: lib/Padre/Wx/Dialog/RegexEditor.pm:140 msgid "Tab" msgstr "Sekme" #: lib/Padre/Wx/FBP/Preferences.pm:998 msgid "Tab Spaces:" msgstr "Sekme Boşlukları:" #: lib/Padre/Wx/Main.pm:6273 msgid "Tab to Space" msgstr "Sekmeyi boşluğa çevir" #: lib/Padre/Wx/Menu/Edit.pm:233 msgid "Tabs and S&paces" msgstr "Sekmeler ve Boşluklar" #: lib/Padre/Wx/ActionLibrary.pm:1043 msgid "Tabs to &Spaces..." msgstr "Sekmeleri Boşluğa Çevir..." #: lib/Padre/Wx/TaskList.pm:184 #: lib/Padre/Wx/FBP/Preferences.pm:88 #: lib/Padre/Wx/FBP/Preferences.pm:406 #: lib/Padre/Wx/Panel/TaskList.pm:98 msgid "Task List" msgstr "Görev Listesi" #: lib/Padre/MIME.pm:877 msgid "Text" msgstr "Metin" #: lib/Padre/Wx/Main.pm:4411 #: lib/Padre/Wx/Choice/Files.pm:20 msgid "Text Files" msgstr "Text Dosyaları" #: lib/Padre/Wx/Dialog/Bookmarks.pm:110 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "'%s' yer imi artık yok" #: lib/Padre/Document.pm:254 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "Açmaya çalıştığınız %s dosyasının boyutu %s bayt. Bu değer, Padre'nin belirlediği sınırdan (%s) daha büyük. Bu dosyayı açmak başarımı düşürebilir. Yine de dosyayı açmak istiyor musunuz?" #: lib/Padre/Wx/Dialog/Preferences.pm:485 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "'%s' kısayolu, zaten '%s' eylemi tarafından kullanılıyor\n" #: lib/Padre/Wx/Dialog/Positions.pm:106 msgid "There are no positions saved yet" msgstr "Henüz kaydedilmiş bir konum yok" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "Bu belge herhangi bir POD içermiyor" #: lib/Padre/Wx/ActionLibrary.pm:2273 msgid "This function reloads the My plug-in without restarting Padre" msgstr "Bu işlev Padre' yi yeniden başlatmadan My eklentisini yeniden yükler" #: lib/Padre/Config.pm:1372 msgid "This requires an installed Devel::EndStats and a Padre restart" msgstr "Bu eylem Devel::EndStats eklentisinin kurulu olmasını ve Padre'yi yeniden başlatmayı gerektirir." #: lib/Padre/Config.pm:1391 msgid "This requires an installed Devel::TraceUse and a Padre restart" msgstr "Bu eylem Devel::TraceUse eklentisinin yüklü olmasını ve Padre'yi yeniden başlatmayı gerektirir." #: lib/Padre/Wx/Main.pm:5366 msgid "This type of file (URL) is missing delete support." msgstr "Bu türde (URL) dosya, silme desteğine sahip değildir." #: lib/Padre/Wx/Dialog/About.pm:146 msgid "Threads" msgstr "İş parçacıkları" #: lib/Padre/Wx/FBP/Preferences.pm:1311 #: lib/Padre/Wx/FBP/Preferences.pm:1354 msgid "Timeout (seconds)" msgstr "Zaman aşımı (saniye cinsinden)" #: lib/Padre/Wx/Dialog/Special.pm:67 msgid "Today" msgstr "Bugün" #: lib/Padre/Config.pm:1445 msgid "Toggle Diff window feature that compares two buffers graphically" msgstr "İki veri tamponunu grafiksel karşılaştıran, Fark penceresi özelliğini aç/kapa" #: lib/Padre/Config.pm:1463 msgid "Toggle Perl 6 auto detection in Perl 5 files" msgstr "Perl 5 dosyalarındaki otomatik Perl 6 tanımasını etkinleştir" #: lib/Padre/Wx/FBP/Debugger.pm:316 msgid "" "Toggle running breakpoints (update DB)\n" "b\n" "Sets breakpoint on current line\n" "B line\n" "Delete a breakpoint from the specified line." msgstr "" "Kırılma noktalarının yürütülmesini aç/kapa (Hata Ayıklayıcıyı güncelle)\n" "b\n" "Geçerli satıra kırılma noktası atar\n" "B satır\n" "Belirtilmiş satırdan kırılma noktasını sil." #: lib/Padre/Wx/FBP/About.pm:230 msgid "Tom Eliaz" msgstr "Tom Eliaz" #: lib/Padre/Wx/FBP/Preferences.pm:344 msgid "Tool Positions" msgstr "Araç Konumları" #: lib/Padre/Wx/FBP/Debugger.pm:231 msgid "Trace" msgstr "İz sür" #: lib/Padre/Wx/FBP/About.pm:843 msgid "Translation" msgstr "Çeviri" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "Doğru" #: lib/Padre/Locale.pm:421 #: lib/Padre/Wx/FBP/About.pm:631 msgid "Turkish" msgstr "Türkçe" #: lib/Padre/Wx/ActionLibrary.pm:1388 msgid "Turn on CPAN explorer" msgstr "CPAN Gezginini etkinleştir" #: lib/Padre/Wx/ActionLibrary.pm:1398 msgid "Turn on Diff window" msgstr "Fark penceresini etkinleştir" #: lib/Padre/Wx/ActionLibrary.pm:2063 msgid "Turn on debug breakpoints panel" msgstr "Hata ayıklama kırılma noktaları panosunu etkinleştir" #: lib/Padre/Wx/ActionLibrary.pm:1439 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "Geçerli belgenin sözdizim denetimini aç ve çıktıyı bir pencerede göster" #: lib/Padre/Wx/ActionLibrary.pm:1450 msgid "Turn on version control view of the current project and show version control changes in a window" msgstr "Geçerli projenin sürüm denetim dizgesini aç ve sürüm denetim değişikliklerini bir pencerede göster" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "Tür" #: lib/Padre/Wx/Dialog/HelpSearch.pm:148 msgid "Type a help &keyword to read:" msgstr "Okumak için bir yardım anahtar kelimesi seçin:" #: lib/Padre/MIME.pm:40 msgid "UNKNOWN" msgstr "BİLİNMEYEN" #: lib/Padre/Wx/ActionLibrary.pm:1528 msgid "Un&fold All" msgstr "Tüm Kıvrımlanmayı Kaldır" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "%s ayrıştırılamıyor" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Undo last change in current file" msgstr "Geçerli dosyadaki son değişikliği geri al" #: lib/Padre/Wx/ActionLibrary.pm:1529 #: lib/Padre/Wx/ActionLibrary.pm:1539 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "Kıvrımlanabilen tüm öbeklerin kıvrımlanmasını kaldır (kıvrımlanma açık olmalıdır)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:150 msgid "Unicode character 'name'" msgstr "Unicode damga 'adı'" #: lib/Padre/Locale.pm:143 #: lib/Padre/Wx/Main.pm:4155 msgid "Unknown" msgstr "Bilinmeyen" #: lib/Padre/PluginManager.pm:778 #: lib/Padre/Document/Perl.pm:647 #: lib/Padre/Document/Perl.pm:896 #: lib/Padre/Document/Perl.pm:945 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "Bilinmeyen hata" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "Şuradan bilinmeyen bir hata alındı: " #: lib/Padre/PluginHandle.pm:24 msgid "Unloaded" msgstr "Yüklenmemiş" #: lib/Padre/Wx/VCS.pm:260 msgid "Unmodified" msgstr "Değiştirilmemiş" #: lib/Padre/Document.pm:1063 #, perl-format msgid "Unsaved %d" msgstr "Kaydedilmemiş %d" #: lib/Padre/Wx/Main.pm:5102 msgid "Unsaved File" msgstr "Kaydedilmemiş Dosya" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "Desteklenmeyen İşletim Sistemi: %s" #: lib/Padre/Wx/Browser.pm:340 msgid "Untitled" msgstr "Başlıksız" #: lib/Padre/Wx/VCS.pm:253 #: lib/Padre/Wx/VCS.pm:267 #: lib/Padre/Wx/FBP/VCS.pm:189 msgid "Unversioned" msgstr "Sürüm numarası yok" #: lib/Padre/Wx/Dialog/Preferences.pm:31 msgid "Up" msgstr "Yukarı" #: lib/Padre/Wx/VCS.pm:266 msgid "Updated but unmerged" msgstr "Güncellendi fakat birleştirilmedi" #: lib/Padre/Wx/FBP/Sync.pm:216 msgid "Upload" msgstr "Karşıya yükle" #: lib/Padre/Wx/Menu/Edit.pm:263 msgid "Upper/Lo&wer Case" msgstr "Büyük/Küçük Harf" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Uppercase characters" msgstr "Büyük harf damgalar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:152 msgid "Uppercase next character" msgstr "Sonraki büyük harf" #: lib/Padre/Wx/Dialog/RegexEditor.pm:154 msgid "Uppercase till \\E" msgstr "\\E damgasına kadar hepsini büyük harf yap" #: lib/Padre/Wx/FBP/Preferences.pm:1346 msgid "Use FTP passive mode" msgstr "FTP edilgen kipini kullan" #: lib/Padre/Wx/ActionLibrary.pm:1135 msgid "Use Perl source as filter" msgstr "Perl kaynağını süzgeç olarak kullan" #: lib/Padre/Wx/FBP/Preferences.pm:644 msgid "Use X11 middle button paste style" msgstr "X11 orta düğme yapıştırma tarzını kullan" #: lib/Padre/Wx/ActionLibrary.pm:1321 msgid "Use a filter to select one or more files" msgstr "Bir veya daha fazla dosya seçmek için süzgeç kullanın" #: lib/Padre/Wx/FBP/Preferences.pm:1453 msgid "Use external window for execution" msgstr "Çalıştırma için dış pencere kullan" #: lib/Padre/Wx/FBP/Preferences.pm:972 msgid "Use tabs instead of spaces" msgstr "Boşluk yerine sekme kullan" #: lib/Padre/Wx/Dialog/Advanced.pm:819 msgid "User" msgstr "Kullanıcı" #: lib/Padre/Wx/FBP/Sync.pm:75 #: lib/Padre/Wx/FBP/Sync.pm:120 msgid "Username" msgstr "Kullanıcı Adı" #: lib/Padre/Wx/ActionLibrary.pm:2322 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "Yerel olarak açılmış CPAN türü bir paketi kurmak için CPAN.pm kullanır" #: lib/Padre/Wx/ActionLibrary.pm:2332 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "Bir tar.gz dosyası indirmek ve CPAN.pm ile kurmak için pip kullanılır" #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "Değer" #: lib/Padre/Wx/ActionLibrary.pm:1911 msgid "Variable Name" msgstr "Değişken Adı" #: lib/Padre/Document/Perl.pm:856 msgid "Variable case change" msgstr "Değişken adı harf değişimi" #: lib/Padre/Wx/VCS.pm:126 #: lib/Padre/Wx/FBP/Preferences.pm:438 msgid "Version Control" msgstr "Sürüm Denetimi" #: lib/Padre/Wx/FBP/Preferences.pm:931 msgid "Version Control Tool" msgstr "Sürüm Denetim Aracı" #: lib/Padre/Wx/ActionLibrary.pm:1767 msgid "Vertically &Align Selected" msgstr "Seçilenleri Dikey Hizala" #: lib/Padre/Wx/Syntax.pm:77 msgid "Very Fatal Error" msgstr "Çok Ölümcül Hata" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:366 msgid "View" msgstr "Görüntüle" #: lib/Padre/Wx/ActionLibrary.pm:2572 msgid "View All &Open Bugs" msgstr "Bütün Açık Hataları G&öster" #: lib/Padre/Wx/ActionLibrary.pm:2573 msgid "View all known and currently unsolved bugs in Padre" msgstr "Padre ile ilgili bilinen ve henüz çözülmemiş tüm hataları görüntüle" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Visible characters" msgstr "Görüntülenebilen damgalar" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Visible characters and spaces" msgstr "Görüntülenebilen damgalar ve boşluklar" #: lib/Padre/Wx/ActionLibrary.pm:2175 msgid "Visit Debug &Wiki..." msgstr "Hata Ayıklama &Wikisini ziyaret edin" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Visit Perl Websites..." msgstr "Perl Sitelerini Ziyaret Edin" #: lib/Padre/Document.pm:779 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "Görsel dosya adı %s, iç dosya adı %s ile eşleşmiyor. Kaydetmeyi iptal etmek istiyor musunuz?" #: lib/Padre/Document.pm:260 #: lib/Padre/Wx/Syntax.pm:47 #: lib/Padre/Wx/Main.pm:3118 #: lib/Padre/Wx/Main.pm:3837 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "Uyarı" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "Uyarı! Bu eylem, 'Benim eklentim' içinde yaptığınız bütün değişiklikleri silecek ve Padre kurulumunuzla gelen varsayılan kod ile değiştirecektir." #: lib/Padre/Wx/Dialog/Patch.pm:529 #, perl-format msgid "Warning: found SVN v%s but we require SVN v%s and it is now called \"Apache Subversion\"" msgstr "Uyarı: SVN sürüm %s bulundu fakat bize SVN sürüm %s gerekiyor ve artık adı \"Apache Subversion\"" #: lib/Padre/Wx/FBP/Expression.pm:96 msgid "Watch" msgstr "İzle" #: lib/Padre/PluginManager.pm:383 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "Bazı yeni eklentiler bulduk.\n" "Bunları ayarlamak ve etkinleştirmek için şuraya gidin:\n" "Eklentiler -> Eklenti Yöneticisi\n" "\n" "Yeni eklentilerin listesi:\n" "\n" #: lib/Padre/Wx/ActionLibrary.pm:2076 #: lib/Padre/Wx/ActionLibrary.pm:2086 msgid "We should not need this menu item" msgstr "Bu menü unsuruna ihtiyaç duymamalıyız" #: lib/Padre/Wx/Main.pm:4413 msgid "Web Files" msgstr "Ağ Dosyaları" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "Herneyse" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "When typing in functions allow showing short examples of the function" msgstr "Bir işlev yazarken, ilgili işleve ait kısa örnekler göstermeye izin ver" #: lib/Padre/Wx/FBP/WhereFrom.pm:37 msgid "Where did you hear about Padre?" msgstr "Padre'den nasıl haberiniz oldu?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Whitespace characters" msgstr "Beyaz boşluk damgaları" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:372 msgid "Window" msgstr "Pencere" #: lib/Padre/Wx/Dialog/WindowList.pm:34 msgid "Window list" msgstr "Pencere listesi:" #: lib/Padre/Wx/ActionLibrary.pm:545 msgid "Word count and other statistics of the current document" msgstr "Geçerli belgenin kelime sayısı ve diğer istatistikleri" #: lib/Padre/Wx/FBP/Document.pm:156 msgid "Words" msgstr "Kelimeler" #: lib/Padre/Wx/ActionLibrary.pm:1616 msgid "Wrap long lines" msgstr "Uzun satırları kaydır" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "Dosya FTP sunucusuna yazılıyor..." #: lib/Padre/Wx/Output.pm:165 #: lib/Padre/Wx/Main.pm:2974 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream sürümü %s ve bu sürümün bilinen sorunları var. Şu komutu çalıştırarak, en azından 0.20 sürümünü kurun\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/Special.pm:68 msgid "Year" msgstr "Yıl" #: lib/Padre/File/HTTP.pm:162 msgid "" "You are going to write a file using HTTP PUT.\n" "This is highly experimental and not supported by most servers." msgstr "" "HTTP PUT kullanarak bir dosyaya yazacaksınız.\n" "Bu oldukça deneysel bir özelliktir ve çoğu sunucu tarafından desteklenmez." #: lib/Padre/Wx/Editor.pm:1890 msgid "You must select a range of lines" msgstr "Birden çok satır seçerek bir aralık belirtmelisiniz" #: lib/Padre/Wx/Main.pm:3836 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "Halen yürütülen bir süreciniz mevcut. Süreci sonlandırmak ve çıkmak istiyor musunuz?" #: lib/Padre/MIME.pm:1211 msgid "ZIP Archive" msgstr "ZİP Arşivi" #: lib/Padre/Wx/FBP/About.pm:158 #: lib/Padre/Wx/FBP/About.pm:451 msgid "Zeno Gantner" msgstr "Zeno Gantner" #: lib/Padre/Wx/FBP/Debugger.pm:123 msgid "" "c [line|sub]\n" "Continue, optionally inserting a one-time-only breakpoint at the specified line or subroutine." msgstr "" "c [satır|alt rutin]\n" "Devam et ve isteğe bağlı olarak, belirtilmiş satır veya alt rutinde sadece tek seferlik kırılma noktası ekle." #: lib/Padre/Wx/FBP/About.pm:314 msgid "code4pay" msgstr "code4pay" #: lib/Padre/CPAN.pm:180 msgid "cpanm is unexpectedly not installed" msgstr "cpanm henüz sisteminize kurulmamış" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "ör:" #: lib/Padre/Wx/Dialog/WindowList.pm:349 #: lib/Padre/Wx/Dialog/WindowList.pm:353 msgid "fresh" msgstr "taze" #: lib/Padre/Wx/FBP/Debugger.pm:83 msgid "" "n [expr]\n" "Next. Executes over subroutine calls, until the beginning of the next statement. If an expression is supplied that includes function calls, those functions will be executed with stops before each statement." msgstr "" "n [ifade]\n" "Sonraki. Sonraki ifadenin başlangıcına kadar, alt rutin çağrılarını çalıştırır. Eğer, işlev çağrıları içeren bir ifade verilmişse, bu işlevler, her ifadeden önce durarak, çalıştırılacaktırlar." #: lib/Padre/Wx/FBP/Debugger.pm:396 msgid "" "o\n" "Display all options.\n" "\n" "o booloption ...\n" "Set each listed Boolean option to the value 1.\n" "\n" "o anyoption? ...\n" "Print out the value of one or more options.\n" "\n" "o option=value ...\n" "Set the value of one or more options. If the value has internal whitespace, it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" to call less with those specific options. You may use either single or double quotes, but if you do, you must escape any embedded instances of same sort of quote you began with, as well as any escaping any escapes that immediately precede that quote but which are not meant to escape the quote itself. In other words, you follow single-quoting rules irrespective of the quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?\"\" .\n" "\n" "For historical reasons, the =value is optional, but defaults to 1 only where it is safe to do so--that is, mostly for Boolean options. It is always better to assign a specific value using = . The option can be abbreviated, but for clarity probably should not be. Several options can be set together. See Configurable Options for a list of these." msgstr "" "o\n" "Tüm seçenekleri göster.\n" "\n" "o bool seçenek ...\n" "Her listelenmiş bool seçeneği için değeri 1 olarak ata.\n" "\n" "o herhangi bir seçenek? ...\n" "Bir veya daha fazla seçenek için değerleri ekrana bas.\n" "\n" "o seçenek=değer ...\n" "Bir veya daha fazla seçenek için değeri ata. Eğer değer beyaz boşluk içeriyorsa, tırnaklanmalıdır. Örneğin, o pager=\"less -MQeicsNfr\" atamasıyla less programını bu belirtilen seçeneklerle çağırabilirsiniz. Tek veya çift tırnak kullanabilirsiniz ama kullandığınız tür komut içerisindede yeralıyorsa bunlar üzerinde kaçış işaretini kullanmalı ve bu tırnaktan önceki, tırnağa ait olmayan özel kaçış damgaları üzerindede kaçış işareti kullanılmalıdır. Diğer bir deyişle, tırnaktan bağımsız olarak, tek-tırnaklama kurallarını takip etmelisiniz. Örneğin: o option='fena değil' veya o option=\"Bana dedi ki; \"N'aber?\"\" .\n" "\n" "Tarihsel sebeplerden dolayı, =değer seçime bağlıdır, fakat sadece güvenli olduğu yerlerde varsayılan 1 değerini alır -- çoğunlukla mantıksal seçenekler için. Her zaman için = kullanarak berlirli değerler atamak daha iyidir. Seçenek kısaltılabilir, ancak belirginlik için, bu yapılmamalıdır. Çeşitli seçenekler beraber atanabilir. Bunların bir listesi için Ayarlanabilir Seçeneklere göz atın." #: lib/Padre/Wx/FBP/Debugger.pm:424 msgid "" "p expr \n" "Same as print {$DB::OUT} expr in the current package. In particular, because this is just Perl's own print function.\n" "\n" "x [maxdepth] expr\n" "Evaluates its expression in list context and dumps out the result in a pretty-printed fashion. Nested data structures are printed out recursively," msgstr "" "p ifade \n" "Geçerli paket içinde \"print {$DB::OUT} ifade\" komutuyla aynıdır. Ayrıca bu, Perl'ün kendi \"print\" işlevidir.\n" "\n" "x [en çok derinlik] ifade\n" "Ifadesini liste ortamında değerlendirir ve çıktısını okunaklı bir döküm olarak verir. İç içe geçmiş yapılar özyinelemeli olarak ekrana basılır." #: lib/Padre/Wx/FBP/Breakpoints.pm:105 msgid "project" msgstr "proje" #: lib/Padre/Wx/FBP/Debugger.pm:103 msgid "" "r\n" "Continue until the return from the current subroutine. Dump the return value if the PrintRet option is set (default)." msgstr "" "r\n" "Geçerli alt rutinden çıkana kadar devam et. PrintRet seçengi etkinse (varsayılan) dönüş değerini dökümle." #: lib/Padre/Wx/FBP/Debugger.pm:63 msgid "" "s [expr]\n" "Single step. Executes until the beginning of another statement, descending into subroutine calls. If an expression is supplied that includes function calls, it too will be single-stepped." msgstr "" "s [ifade]\n" "Tek adım. Sonraki ifadenin başına kadar, alt rutinlere inerek, program çalıştırılır. Eğer, işlev çağrıları içeren bir ifade veilmişse, o da tek-adımlanacaktır." #: lib/Padre/Wx/FBP/Breakpoints.pm:110 msgid "show breakpoints in project" msgstr "projedeki kırılma noktalarını göster" #: lib/Padre/Wx/FBP/Debugger.pm:236 msgid "" "t\n" "Toggle trace mode (see also the AutoTrace option)." msgstr "" "t\n" "İz sürme kipini aç/kapa (OtoİzSür seçeneğinide inceleyin)." #: lib/Padre/Wx/FBP/Debugger.pm:276 msgid "v [line] View window around line." msgstr "v [satır] Satır etrafında pencere görüntüle." #: lib/Padre/Wx/FBP/Debugger.pm:464 msgid "" "w expr\n" "Add a global watch-expression. Whenever a watched global changes the debugger will stop and display the old and new values.\n" "\n" "W expr\n" "Delete watch-expression\n" "W *\n" "Delete all watch-expressions." msgstr "" "w ifade\n" "Küresel bir izleme-ifadesi ekler. İzlenen küresel her değiştiğinde, hata ayıklayıcı duracak ve eski ve yeni değerleri ekrana basacaktır.\n" "\n" "W ifade\n" "İzleme-ifadesini sil\n" "W *\n" "Tüm izleme-ifadelerini sil." #: lib/Padre/Wx/FBP/Debugger.pm:217 msgid "" "working now with some gigery pokery to get around\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" msgstr "" "Şu hatanın etrafından dolanmaya çalışacağım:\n" "Intermitent Error, You can't FIRSTKEY with the %~ hash" #: lib/Padre/Wx/Dialog/PerlFilter.pm:76 msgid "wrap in grep { }" msgstr "grep {} ile sarmala" #: lib/Padre/Wx/Dialog/PerlFilter.pm:75 msgid "wrap in map { }" msgstr "map {} ile sarmala" #: lib/Padre/Plugin/Devel.pm:103 msgid "wxPerl &Live Support" msgstr "wxPerl Canlı Destek" #: lib/Padre/Wx/FBP/Debugger.pm:198 msgid "" "y [level [vars]]\n" "Display all (or some) lexical variables (mnemonic: mY variables) in the current scope or level scopes higher. You can limit the variables that you see with vars which works exactly as it does for the V and X commands. Requires the PadWalker module version 0.08 or higher; will warn if this isn't installed. Output is pretty-printed in the same style as for V and the format is controlled by the same options." msgstr "" "y [seviye [değişkenler]]\n" "Geçerli veya seviyeyle belirtilen kapsamdaki tüm (veya bazı) sözcüksel değişkenleri (my değişkenleri) görüntüle. V ve X komutlarında olduğu gibi; \"değişkenler\" parametresi ile görülebilen değişkenleri sınırlandırabilirsiniz. PadWalker sürüm 0.08 veya daha yeni bir sürüm gereklidir. Eğer yüklü değilse bir uyarı verecektir. Üretilen çıktı V ile olduğu gibi okunaklıdir ve aynı seçenekler ile denetlenir." #~ msgid "%s has no constructor" #~ msgstr "%s bir oluşturucuya sahip değil" #~ msgid "&Back" #~ msgstr "&Geri" #~ msgid "&Insert" #~ msgstr "&Arasına Ekle" #~ msgid "&Uncomment Selected Lines" #~ msgstr "Seçilmiş Satırlardan Yorumu Kaldır" #~ msgid "&Update" #~ msgstr "&Güncelle" #~ msgid "About Padre" #~ msgstr "Padre Hakkında" #~ msgid "" #~ "An error has occured while generating '%s':\n" #~ "%s" #~ msgstr "" #~ "'%s' oluşturulurken bir hata meydana geldi:\n" #~ "%s" #~ msgid "Apply Diff to File" #~ msgstr "Farkı Dosyaya Uygula" #~ msgid "Apply Diff to Project" #~ msgstr "Farkı Projeye Uygula" #~ msgid "Apply a patch file to the current document" #~ msgstr "Bir yama dosyasını geçerli belgeye uygula" #~ msgid "Apply a patch file to the current project" #~ msgstr "Geçerli projeye bir yama dosyası uygula" #~ msgid "Artistic License 1.0" #~ msgstr "Sanatsal Lisans 1.0" #~ msgid "Artistic License 2.0" #~ msgstr "Sanatsal Lisans 2.0" #~ msgid "Automatic indentation style detection" #~ msgstr "Otomatik girintileme türü algılaması" #~ msgid "Blue butterfly on a green leaf" #~ msgstr "Yeşil yaprak üzerinde mavi kelebek" #~ msgid "Builder:" #~ msgstr "Oluşturan:" #~ msgid "Cannot diff if file was never saved" #~ msgstr "Dosya kaydedilmemişse, karşılaştırma için kullanılamaz" #~ msgid "Case &insensitive" #~ msgstr "Büyük/küçük harf duyars&ız" #~ msgid "Case &sensitive" #~ msgstr "Büyük/küçük harf du&yarlı" #~ msgid "Category:" #~ msgstr "Kategori" #~ msgid "Characters (including whitespace)" #~ msgstr "Damgalar (beyaz boşluk dahil)" #~ msgid "Check for file updates on disk every (seconds)" #~ msgstr "" #~ "Disk üzerindeki dosya değişimlerini denetleme süresi (saniye cinsinden)" #~ msgid "Class:" #~ msgstr "Sınıf:" #~ msgid "Close Window on &Hit" #~ msgstr "Darbe ile pence&reyi kapat" #~ msgid "Close Window on Hit" #~ msgstr "Darbe ile Pencereyi Kapat" #~ msgid "" #~ "Compare the file in the editor to that on the disk and show the diff in " #~ "the output window" #~ msgstr "" #~ "Düzenleyici içindeki dosyayı diskteki ile karşılaştır ve sonucu çıktı " #~ "penceresinde görüntüle" #~ msgid "Copy &All" #~ msgstr "Hepsini Kopy&ala" #~ msgid "Copy &Selected" #~ msgstr "&Seçilenleri Kopyala" #~ msgid "Could not determine the comment character for %s document type" #~ msgstr "%s belge türü için yorum damgayı saptanamıyor" #~ msgid "Could not set breakpoint on file '%s' row '%s'" #~ msgstr "'%s' dosyasındaki '%s' satırına bir kırılma noktası atanamıyor" #~ msgid "Created by" #~ msgstr "Oluşturan:" #~ msgid "Creates a Padre Plugin" #~ msgstr "Bir Padre Eklentisi oluşturur" #~ msgid "Creates a Padre document" #~ msgstr "Bir Padre belgesi oluşturur" #~ msgid "Creates a Perl 5 module or script" #~ msgstr "Bir Perl 5 modülü veya betiği oluşturur" #~ msgid "Debugger not running" #~ msgstr "Hata ayıklayıcı çalışmıyor" #~ msgid "Delete All" #~ msgstr "Hepsini Sil" #~ msgid "Diff Tools" #~ msgstr "Fark Araçları" #~ msgid "Diff to Saved Version" #~ msgstr "Kaydedilmiş Sürümle Karşılaştır" #~ msgid "" #~ "Display the current value of a variable in the right hand side debugger " #~ "pane" #~ msgstr "" #~ "Sağdaki hata ayıklama gözündeki değişkenin geçerli değerini görüntüle" #~ msgid "Document Tools (Right)" #~ msgstr "Belge Araçları (Sağ)" #~ msgid "Dump" #~ msgstr "Döküm" #~ msgid "Dump %INC and @INC" #~ msgstr "%INC ve @INC Değişkenlerini Dökümle" #~ msgid "Dump Current Document" #~ msgstr "Geçerli Belgeyi Dökümle" #~ msgid "Dump Current PPI Tree" #~ msgstr "Geçerli PPI Ağacını Dökümle" #~ msgid "Dump Display Geometry" #~ msgstr "Görüntüleme Geometrisini Dökümle" #~ msgid "Dump Expression..." #~ msgstr "İfadeyi Dökümle..." #~ msgid "Dump Task Manager" #~ msgstr "Görev Yöneticisinin Dökümünü Al" #~ msgid "Dump Top IDE Object" #~ msgstr "En Üst IDE Nesnesini Dökümle" #~ msgid "Edit/Add Snippets" #~ msgstr "Örnek Kod Değiştir/Ekle" #~ msgid "Email Address:" #~ msgstr "Eposta Adresi:" #~ msgid "Error while loading %s" #~ msgstr "%s yüklenirken bir hata oluştu" #~ msgid "Evening" #~ msgstr "Akşam" #~ msgid "" #~ "Execute the next statement, enter subroutine if needed. (Start debugger " #~ "if it is not yet running)" #~ msgstr "" #~ "Sıradaki ifadeyi çalıştır, eğer gerekliyse altrutine gir. (Hata " #~ "ayıklamayı halen çalışmıyorsa başlat)" #~ msgid "" #~ "Execute the next statement. If it is a subroutine call, stop only after " #~ "it returned. (Start debugger if it is not yet running)" #~ msgstr "" #~ "Sıradaki ifadeyi çalıştır, eğer bir altrutin çağrısı ise, sadece geri " #~ "döndüğünde durdur. (Eğer halen yürütülmüyorsa, hata ayıklamayı başlat)" #~ msgid "Existing bookmarks:" #~ msgstr "Kayıtlı yer imleri" #~ msgid "Expr" #~ msgstr "İfade" #~ msgid "Expression:" #~ msgstr "İfade:" #~ msgid "External Tools" #~ msgstr "Dış Araçlar" #~ msgid "Failed to find template file '%s'" #~ msgstr "Şablon dosyası '%s' bulunamadı" #~ msgid "Fast but might be out of date" #~ msgstr "Hızlı fakat güncellenmemiş olabilir" #~ msgid "Field %s was missing. Module not created." #~ msgstr "%s alanı boş. Modül oluşturulmadı." #~ msgid "File access via FTP" #~ msgstr "FTP ile dosya erişimi" #~ msgid "File access via HTTP" #~ msgstr "HTTP ile dosya erişimi" #~ msgid "Find Previous" #~ msgstr "Öncekini Bul" #~ msgid "Find Results (%s)" #~ msgstr "Sonuçları Bul (%s)" #~ msgid "Find Text:" #~ msgstr "Metin Bul:" #~ msgid "Find and Replace" #~ msgstr "Bul ve Değiştir" #~ msgid "" #~ "Find next matching text using a toolbar-like dialog at the bottom of the " #~ "editor" #~ msgstr "" #~ "Sonraki eşleşen metni düzenleyicinin altındaki araççubuğu-gibi diyalog " #~ "ile bul" #~ msgid "" #~ "Find previous matching text using a toolbar-like dialog at the bottom of " #~ "the editor" #~ msgstr "" #~ "Önceki eşleşen metni düzenleyicinin altındaki araççubuğu-gibi diyalog ile " #~ "bul" #~ msgid "Found %d issue(s)" #~ msgstr "%d sorun bulundu" #~ msgid "GPL 2 or later" #~ msgstr "GPL (GNU Genel Kamu Lisansı) 2 veya daha yeni" #~ msgid "Go to Todo Window" #~ msgstr "Yapılacaklar Penceresine Git" #~ msgid "Goto previous position" #~ msgstr "Önceki konuma git" #~ msgid "Hide Find in Files" #~ msgstr "Dosyalar içinde Bulu gizle" #~ msgid "Hide the list of matches for a Find in Files search" #~ msgstr "Dosyalar içinde arama seçeneği için eşleşme listesini gizle" #~ msgid "" #~ "Hopefully faster than the PPI Traditional. Big file will fall back to " #~ "Scintilla highlighter." #~ msgstr "" #~ "Muhtelemen PPI Geleneksel' den daha hızlı. Büyük dosyalar Scintilla " #~ "renklendiricisini kullanacaktır." #~ msgid "If within a subroutine, run till return is called and then stop." #~ msgstr "" #~ "Eğer bir altrutin içindeyse, geri dönüş çağrılana kadar yürüt ve " #~ "sonrasında dur." #~ msgid "Imitate clicking on the right mouse button" #~ msgstr "Sağ fare düğmesine tıklamayı taklit et" #~ msgid "Indentation width (in columns)" #~ msgstr "Girintileme genişliği (sütun olarak)" #~ msgid "Install CPAN Module" #~ msgstr "CPAN Modülü Kur" #~ msgid "Install a Perl module from CPAN" #~ msgstr "CPAN' dan bir Perl modülü kur" #~ msgid "Interpreter arguments" #~ msgstr "Yorumlayıcı argümanları" #~ msgid "Jump between the two last visited files back and forth" #~ msgstr "Son ziyaret edilen iki dosya arasında ileri-geri geçiş yap" #~ msgid "Jump to Current Execution Line" #~ msgstr "Geçerli Çalıştırma Satırına Zıpla" #~ msgid "Jump to the last position saved in memory" #~ msgstr "Bellekte kaydedilmiş en son konuma atla" #~ msgid "Kibibytes (kiB)" #~ msgstr "Kibibayt (kiB)" #~ msgid "Kilobytes (kB)" #~ msgstr "Kilobayt (kB)" #~ msgid "LGPL 2.1 or later" #~ msgstr "LGPL (GNU Kısıtlı Genel Kamu Lisansı) 2.1 veya daha yeni" #~ msgid "License:" #~ msgstr "Lisans" #~ msgid "Line" #~ msgstr "Satır" #~ msgid "Line break mode" #~ msgstr "Satır sonu kipi" #~ msgid "List all the breakpoints on the console" #~ msgstr "Uçbirimdeki bütün kırılma noktalarını listele" #~ msgid "Local/Remote File Access" #~ msgstr "Yerel/Uzak Dosya Erişimi" #~ msgid "MIT License" #~ msgstr "MIT Lisansı" #~ msgid "Methods order" #~ msgstr "Yöntem sırası" #~ msgid "Mime type already had a class '%s' when %s(%s) was called" #~ msgstr "%s(%s) çağrıldığında Mime türü zaten '%s' sınıfına sahipti" #~ msgid "Mime type did not have a class entry when %s(%s) was called" #~ msgstr "%s(%s) çağrıldığında Mime türü bir sınıf girdisine sahip değildi" #~ msgid "Mime type is not supported when %s(%s) was called" #~ msgstr "%s(%s) çağrıldığında Mime türü desteklenmiyordu" #~ msgid "Mime type was not supported when %s(%s) was called" #~ msgstr "%s(%s) çağrıldığında Mime türü desteklenmiyordu" #~ msgid "Module" #~ msgstr "Modül" #~ msgid "Module Start" #~ msgstr "Modül Başlangıcı" #~ msgid "Move to other panel" #~ msgstr "Diğer panele taşı" #~ msgid "Mozilla Public License" #~ msgstr "Mozilla Kamu Lisansı" #~ msgid "Name:" #~ msgstr "Ad:" #~ msgid "Night" #~ msgstr "Gece" #~ msgid "No Perl 5 file is open" #~ msgstr "Hiç bir Perl 5 dosyası açılmadı" #~ msgid "No errors or warnings found." #~ msgstr "Herhangi bir hata veya uyarı bulunmadı." #~ msgid "No file is open" #~ msgstr "Hiç bir dosya açılmadı" #~ msgid "No module mime_type='%s' filename='%s'" #~ msgstr "mime_türü='%s' dosyaadı='%s' için modül yok" #~ msgid "Non-whitespace characters" #~ msgstr "Beyaz boşluk olmayan damgalar" #~ msgid "Notepad++" #~ msgstr "Notepad++" #~ msgid "Oldest Visited File" #~ msgstr "Kullanılan En Eski Dosya" #~ msgid "Open Source" #~ msgstr "Kaynak Aç" #~ msgid "Open files" #~ msgstr "Açık dosyalar" #~ msgid "Opens the Padre document wizard" #~ msgstr "Padre belge sihirbazını açar" #~ msgid "Opens the Padre plugin wizard" #~ msgstr "Padre eklenti sihirbazını açar" #~ msgid "Opens the Perl 5 module wizard" #~ msgstr "Perl 5 modül sihirbazını açar" #~ msgid "Padre Document Wizard" #~ msgstr "Padre Belge Sihirbazı" #~ msgid "Padre Plugin Wizard" #~ msgstr "Padre Eklenti Sihirbazı" #~ msgid "Parent Directory:" #~ msgstr "Ana Dizin" #~ msgid "Perl 5" #~ msgstr "Perl 5" #~ msgid "Perl 5 Module Wizard" #~ msgstr "Perl 5 Modül Sihirbazı" #~ msgid "Perl interpreter" #~ msgstr "Perl yorumlayıcısı" #~ msgid "Perl licensing terms" #~ msgstr "Perl lisanslama koşulları" #~ msgid "Pick parent directory" #~ msgstr "Ana dizin seçin" #~ msgid "Plug-in Name" #~ msgstr "Eklenti Adı" #~ msgid "Plugin" #~ msgstr "Eklenti" #~ msgid "Project Tools (Left)" #~ msgstr "Proje Araçları (Sol)" #~ msgid "Put focus on tab visited the longest time ago." #~ msgstr "Odağı en eski ziyaret edilmiş sekmeye yerleştir." #~ msgid "RegExp for TODO panel" #~ msgstr "Yapılacaklar listesi için düzenli ifade" #~ msgid "Regular &Expression" #~ msgstr "Düzenli İfad&e" #~ msgid "Related editor has been closed" #~ msgstr "İlgili Düzenleyici Kapatıldı" #~ msgid "Reload all files" #~ msgstr "Tüm dosyaları yeniden yükle" #~ msgid "Reload some" #~ msgstr "Bazılarını Yeniden Yükle" #~ msgid "Reload some files" #~ msgstr "Bazı dosyaları yeniden yükle" #~ msgid "Remove the breakpoint at the current location of the cursor" #~ msgstr "İmlecin geçerli konumundaki kırılma noktasını kaldır" #~ msgid "Revised BSD License" #~ msgstr "Gözden geçirilmiş BSD Lisansı" #~ msgid "Run till Breakpoint (&c)" #~ msgstr "Kırılma Noktasına Kadar Yürüt (&c)" #~ msgid "Run to Cursor" #~ msgstr "İmlece Yürüt" #~ msgid "Search Backwards" #~ msgstr "Geriye Doğru Ara" #~ msgid "Search Directory:" #~ msgstr "Arama Dizini:" #~ msgid "Search in Types:" #~ msgstr "Türlerde Ara:" #~ msgid "Selects and opens a wizard" #~ msgstr "Bir sihirbazı seçip, açar" #~ msgid "Set a breakpoint at the line where to cursor is and run till there" #~ msgstr "İmlecin olduğu satıra kırılma noktası ekle ve oraya kadar yürüt" #~ msgid "" #~ "Set focus to the line where the current statement is in the debugging " #~ "process" #~ msgstr "" #~ "Odağı, geçerli ifadenin hata ayıklama süreci içindeki satırına ayarla" #~ msgid "Setup a skeleton Perl module distribution" #~ msgstr "Bir iskelet Perl dağıtımı hazırla" #~ msgid "Show Stack Trace (&t)" #~ msgstr "Yığın İzini Göster (&t)" #~ msgid "Show Value Now (&x)" #~ msgstr "Değeri Şimdi Göster (&x)" #~ msgid "Show the key bindings dialog to configure Padre shortcuts" #~ msgstr "Padre kısayollarını ayarlamak için tuş atamaları iletişimini göster" #~ msgid "Show the list of positions recently visited" #~ msgstr "Yakın zamanda ziyaret edilmiş konumların listesini göster" #~ msgid "Show the value of a variable now in a pop-up window." #~ msgstr "Bir değişkenin değerini hemen yeni bir pencerede göster." #~ msgid "Slow but accurate and we have full control so bugs can be fixed" #~ msgstr "" #~ "Yavaş fakat kesin ve üzerinde tam denetimimiz var, dolayısıyla hatalar " #~ "düzeltilebilir" #~ msgid "Snippets" #~ msgstr "Ufak kodlar" #~ msgid "Special Value:" #~ msgstr "Özel Değer:" #~ msgid "Start running and/or continue running till next breakpoint or watch" #~ msgstr "" #~ "Yürütmeye başla ve/veya sonraki kırılma noktasına yada izlemeye kadar " #~ "yürütmeye devam et" #~ msgid "Stats" #~ msgstr "Durum" #~ msgid "Step In (&s)" #~ msgstr "İçeri Adımla (&s)" #~ msgid "Step Out (&r)" #~ msgstr "Dışarı Adımla (&r)" #~ msgid "Step Over (&n)" #~ msgstr "Üstüne Adımla (&n)" #~ msgid "Switch highlighting colours" #~ msgstr "Renklendirme renklerini değiştir" #~ msgid "" #~ "Switch to edit the file that was previously edited (can switch back and " #~ "forth)" #~ msgstr "" #~ "Daha önce düzenlenmiş bir dosyayı değiştir (ileri/geri geçiş yapılabilir)" #~ msgid "Syntax Highlighter" #~ msgstr "Sözdizim Renklendiricisi" #~ msgid "System Info" #~ msgstr "Dizge Bilgisi" #~ msgid "Tab display size (in spaces)" #~ msgstr "Sekme görüntülenme boyutu (boşluk olarak)" #~ msgid "The Padre Development Team" #~ msgstr "Padre Geliştirim Takımı" #~ msgid "The Padre Translation Team" #~ msgstr "Padre Çeviri Takımı" #~ msgid "" #~ "The debugger is not running.\n" #~ "You can start the debugger using one of the commands 'Step In', 'Step " #~ "Over', or 'Run till Breakpoint' in the Debug menu." #~ msgstr "" #~ "Hata ayıklayıcı çalışmıyor\n" #~ "Hata ayıklayıcıyı, hata ayıklama menüsündeki 'İçeri Adımla', 'Üstüne " #~ "Adımla' veya 'Kırılma noktasına kadar yürüt' komutlarından birisini " #~ "kullanarak başlatabilirsiniz." #~ msgid "" #~ "The directory browser got an undef object and may stop working now. " #~ "Please save your work and restart Padre." #~ msgstr "" #~ "Dizin gezgini boş bir nesne aldı ve şimdi çalışmayı durdurabilir. Lütfen " #~ "işlerinizi kaydedin ve Padre'yi yeniden başlatın." #~ msgid "There are no differences\n" #~ msgstr "Herhangi bir fark bulunamadı\n" #~ msgid "To-do" #~ msgstr "Gelecekte eklenecek" #~ msgid "Type in any expression and evaluate it in the debugged process" #~ msgstr "" #~ "Herhangi bir ifade yazın ve bunu hata ayıklanan süreçte değerlendirin" #~ msgid "Ultraedit" #~ msgstr "Ultraedit" #~ msgid "Uptime" #~ msgstr "Çalışma Süresi" #~ msgid "Use Tabs" #~ msgstr "Sekme Kullan" #~ msgid "Use panel order for Ctrl-Tab (not usage history)" #~ msgstr "Ctrl-Tab için (kullanım geçmişini değil) panel sıralamasını kullan" #~ msgid "Use rege&x" #~ msgstr "Düzen&li ifade kullan" #~ msgid "Variable" #~ msgstr "Değişken" #~ msgid "Visit the PerlMonks" #~ msgstr "PerlMonks' u Ziyaret Et" #~ msgid "" #~ "When in a subroutine call show all the calls since the main of the program" #~ msgstr "" #~ "Bir altrutin çağrısı içindeyken, programın başından beri oluşan tüm " #~ "çağrıları göster" #~ msgid "Wizard Selector" #~ msgstr "Sihirbaz Seçimi" #~ msgid "Wizard Selector..." #~ msgstr "Sihirbaz Seçimi..." #~ msgid "error" #~ msgstr "hata" #~ msgid "no highlighter for mime-type '%s' using stc" #~ msgstr "Stc kullanarak, mime-türü '%s' için renklendirici yok" #~ msgid "none" #~ msgstr "hiçbiri" #~ msgid "restrictive" #~ msgstr "kısıtlı" #~ msgid "splash image is based on work by" #~ msgstr "açılış resminin yararlanıldığı sanatçı" #~ msgid "Perl Auto Complete" #~ msgstr "Perl Otomatik Tamamlası" #~ msgid "Enable bookmarks" #~ msgstr "Yer imlerini etkinleştir" #~ msgid "Change font size" #~ msgstr "Yazı yüzü boyutunu değiştir" #~ msgid "Enable session manager" #~ msgstr "Oturum yöneticisini etkinleştir" #~ msgid "Browse..." #~ msgstr "Gez..." #~ msgid "Content type:" #~ msgstr "İçerik türü:" #~ msgid "Guess" #~ msgstr "Tahmin" #~ msgid "Choose the default projects directory" #~ msgstr "Varsayılan proje dizinini seçin" #~ msgid "Project name" #~ msgstr "Proje adı" #~ msgid "Padre version" #~ msgstr "Padre sürümü" #~ msgid "Current filename" #~ msgstr "Geçerli dosya adı" #~ msgid "Current file's dirname" #~ msgstr "Geçerli dosyanın dizin adı" #~ msgid "Current file's basename" #~ msgstr "Geçerli dosyanın taban adı" #~ msgid "Current filename relative to project" #~ msgstr "Projeye göreceli olarak geçerli dosya adı" #~ msgid "Window title:" #~ msgstr "Pencere başlığı:" #~ msgid "Settings Demo" #~ msgstr "Ayarlar Gösterisi" #~ msgid "Any changes to these options require a restart:" #~ msgstr "" #~ "Şu seçeneklerde yapılacak değişiklikler yeniden başlatmayı " #~ "gerektirecektir:" #~ msgid "Enable?" #~ msgstr "Etkinleştir?" #~ msgid "Unsaved" #~ msgstr "Kaydedilmemiş" #~ msgid "N/A" #~ msgstr "Kullanılamaz" #~ msgid "No Document" #~ msgstr "Belge Yok" #~ msgid "Document name:" #~ msgstr "Belge adı:" #~ msgid "Current Document: %s" #~ msgstr "Geçerli Belge: %s" #~ msgid "Run Parameters" #~ msgstr "Yürütme Parametreleri" #~ msgid "new" #~ msgstr "yeni" #~ msgid "nothing" #~ msgstr "hiç bir şey" #~ msgid "last" #~ msgstr "en son" #~ msgid "session" #~ msgstr "oturum" #~ msgid "no" #~ msgstr "hayır" #~ msgid "same_level" #~ msgstr "aynı_seviye" #~ msgid "deep" #~ msgstr "derin" #~ msgid "alphabetical" #~ msgstr "abecesel" #~ msgid "original" #~ msgstr "özgün" #~ msgid "alphabetical_private_last" #~ msgstr "abecesel_özel_en_son" #~ msgid "Save settings" #~ msgstr "Ayarları kaydet" #~ msgid "Style" #~ msgstr "Tarz" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "Proje dizini %s (artık) diskte yeralmıyor. Bu onulmaz bir hata ve " #~ "sorunlara yolaçacaktır. Lütfen, ne yaptığınızın farkında değilseniz, bu " #~ "dosyayı kapatın veya farklı kaydedin." #~ msgid "Find &Text:" #~ msgstr "Me&tni Bul" #~ msgid "Not a valid search" #~ msgstr "Geçerli bir arama değil" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "Arkaplan Görevinin Çökmesini Benzeştir" #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "" #~ "%s, Padre'nin dosya boyutu sınırının (%s) üstünde olduğu için açılamıyor" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s çalışan iş parçacığı yürütülüyor.\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "Şu anda hiç bir arkaplan görevi çalıştırılmıyor.\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "Şu anda şu görevler arkaplanda çalıştırılıyor:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s türü '%s':\n" #~ " (%s iş parçacığı içinde)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "Ek olarak, çalıştırılmayı bekleyen %s görev mevcut.\n" #~ msgid "Term:" #~ msgstr "Terim:" #~ msgid "Dir:" #~ msgstr "Dizin:" #~ msgid "Pick &directory" #~ msgstr "&Dizin seç" #~ msgid "In Files/Types:" #~ msgstr "Dosya/Tür içinde:" #~ msgid "Case &Insensitive" #~ msgstr "Büyük-küçük Harf Duyars&ız" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "&Gizlenmiş Altdizinleri Yoksay" #~ msgid "Show only files that don't match" #~ msgstr "Sadece eşleşmeyen dosyaları göster" #~ msgid "Found %d files and %d matches\n" #~ msgstr "%d dosya ve %d eşleşme bulundu\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "'%s', '%s' dosyası içinde bulunamadı\n" #~ msgid "Choose a directory" #~ msgstr "Bir dizin seç" #~ msgid "Errors" #~ msgstr "Hatalar" #~ msgid "No diagnostics available for this error!" #~ msgstr "Bu hata için herhangi bir tanı konulamadı!" #~ msgid "Diagnostics" #~ msgstr "Teşhis" #~ msgid "Line No" #~ msgstr "Satır No" #~ msgid "Please choose a different name." #~ msgstr "Lütfen değişik bir ad seçin." #~ msgid "A file with the same name already exists in this directory" #~ msgstr "Aynı ada sahip bir dosya bu dizinde zaten mevcut" #~ msgid "Move here" #~ msgstr "Buraya taşı" #~ msgid "Copy here" #~ msgstr "Buraya kopyala" #~ msgid "folder" #~ msgstr "klasör" #~ msgid "Rename / Move" #~ msgstr "Yeniden adlandır / Taşı" #~ msgid "Move to trash" #~ msgstr "Çöpe taşı" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "Bu unsuru silmek istediğinize emin misiniz?" #~ msgid "Show hidden files" #~ msgstr "Gizli dosyaları gözter" #~ msgid "Skip hidden files" #~ msgstr "Gizli dosyaları atla" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "CVS/.svn/.git/blib dizinlerini atla" #~ msgid "Tree listing" #~ msgstr "Ağaç listesi" #~ msgid "Change listing mode view" #~ msgstr "Listeleme kipi görümünübü değiştir" #~ msgid "Switch menus to %s" #~ msgstr "Menüleri %s olarak değiştir" #~ msgid "Convert EOL" #~ msgstr "Satır Sonunu Değiştir" #~ msgid "Key binding name" #~ msgstr "Tuş ataması adı" #~ msgid "GoTo Bookmark" #~ msgstr "Yer İmine Git" #~ msgid "Quick Find" #~ msgstr "Hızlı Bul" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "Artan arama pencerenin altında görülebilir" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "Geçerli projenin dizin gözatıcısını içeren bir pencere göster" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "" #~ "Bir betiğin çalıştırılması esnasında alınan hataların listesini göster" #~ msgid "???" #~ msgstr "???" #~ msgid "Automatic Bracket Completion" #~ msgstr "Otomatik Parantez Tamamlama" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "{ yazıldığında } kapanış damgasını otomatik yerleştir" #~ msgid "Info" #~ msgstr "Bilgi" #~ msgid "Finished Searching" #~ msgstr "Arama Bitti" #~ msgid "Open In File Browser" #~ msgstr "Dosyayı Tarayıcıda Aç" #~ msgid "Show the about-Padre information" #~ msgstr "Padre hakkındaki bilgileri göster" #~ msgid "Check the current file" #~ msgstr "Geçerli dosyayı denetle" #~ msgid "" #~ "%s seems to be no executable Perl interpreter, use the system default " #~ "perl instead?" #~ msgstr "" #~ "%s çalıştırılabilir bir Perl yorumlayıcısına benzemiyor. Varsayılan perl " #~ "kullanılsın mı?" #~ msgid "Lexically Rename Variable" #~ msgstr "Değişkeni Sözcüksel Olarak Yeniden Adlandır" #~ msgid "'%s' does not look like a variable" #~ msgstr "'%s' bir değişkene benzemiyor" #~ msgid "Error List" #~ msgstr "Hata Listesi" #~ msgid "" #~ "%s seems to be no executable Perl interpreter, abandon the new value?" #~ msgstr "" #~ "%s çalıştırılabilir bir Perl yorumlayıcısına benzemiyor. Yeni değer yok " #~ "sayılsın mı?" Padre-1.00/share/locale/zh-cn.po0000644000175000017500000044513411537650533015104 0ustar petepete# Chinese translations for Padre package # Padre 简体中文翻译. # Copyright (C) 2009 THE Padre'S COPYRIGHT HOLDER # This file is distributed under the same license as the Padre package. # , 2009 # Chuanren Wu , 2010 msgid "" msgstr "" "Project-Id-Version: Padre 0.34\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-03-09 12:10-0800\n" "PO-Revision-Date: 2011-03-12 15:30+0100\n" "Last-Translator: Jagdwurst\n" "Language-Team: Chinese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: /home/wu/projects/padre/padre/Padre\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:413 msgid "\".\" also matches newline" msgstr "\".\" 亦匹配换行" #: lib/Padre/Config.pm:416 msgid "\"Open session\" will ask which session (set of files) to open when you launch Padre." msgstr "\"打开会话\" 将在您启动 Padre 时询问欲打开哪个会话(文件集合)" #: lib/Padre/Config.pm:418 msgid "\"Previous open files\" will remember the open files when you close Padre and open the same files next time you launch Padre." msgstr "\"先前打开的文件\" 将在您关闭 Padre 时记住所打开的文件,并且当您下次启动 Padre 时重新打开那些相同的文件" #: lib/Padre/Wx/Dialog/RegexEditor.pm:417 msgid "\"^\" and \"$\" match the start and end of any line inside the string" msgstr "\"^\" 与 \"$\" 匹配字符串中的任意行首与行尾" #: lib/Padre/Wx/Dialog/PerlFilter.pm:208 msgid "" "# Input is in $_\n" "$_ = $_;\n" "# Output goes to $_\n" msgstr "" "# 将 $_ 作为输入\n" "$_ = $_;\n" "# 输出到 $_\n" #: lib/Padre/Wx/FindInFiles.pm:155 #, perl-format msgid "%s (%s results)" msgstr "%s (%s 结果)" #: lib/Padre/PluginManager.pm:584 #, perl-format msgid "%s - Crashed while instantiating: %s" msgstr "%s - 初始化时崩溃:%s" #: lib/Padre/PluginManager.pm:544 #, perl-format msgid "%s - Crashed while loading: %s" msgstr "%s - 载入文件时崩溃: %s" #: lib/Padre/PluginManager.pm:594 #, perl-format msgid "%s - Failed to instantiate plug-in" msgstr "%s - 无法初始化插件" #: lib/Padre/PluginManager.pm:556 #, perl-format msgid "%s - Not a Padre::Plugin subclass" msgstr "%s - 非 Padre::Plugin 之类" #: lib/Padre/PluginManager.pm:569 #, perl-format msgid "%s - Not compatible with Padre %s - %s" msgstr "%s — 与 Padre 版本 %s 不兼容 — %s" #: lib/Padre/Wx/Dialog/WizardSelector.pm:174 #, perl-format msgid "%s has no constructor" msgstr "%s 没有构造体" #: lib/Padre/Wx/TodoList.pm:257 #, perl-format msgid "%s in TODO regex, check your config." msgstr "%s 在 TODO 正则表达式中,请检查您的设置." #: lib/Padre/Wx/Dialog/Bookmarks.pm:134 #, perl-format msgid "%s line %s: %s" msgstr "%s 行 %s: %s" #: lib/Padre/Wx/Dialog/Positions.pm:124 #, perl-format msgid "%s. Line: %s File: %s - %s" msgstr "%s. 行: %s 文件: %s - %s" #: lib/Padre/Wx/ActionLibrary.pm:2702 msgid "&About" msgstr "关于(&A)" #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Add" msgstr "添加(&A)" #: lib/Padre/Wx/Dialog/Preferences.pm:934 msgid "&Advanced..." msgstr "高级(&A)..." #: lib/Padre/Wx/ActionLibrary.pm:819 msgid "&Autocomplete" msgstr "自动完成(&A)" #: lib/Padre/Wx/Dialog/WizardSelector.pm:86 msgid "&Back" msgstr "返回(&B)" #: lib/Padre/Wx/ActionLibrary.pm:830 msgid "&Brace Matching" msgstr "括号匹配(&B)" #: lib/Padre/Wx/Dialog/Preferences.pm:947 #: lib/Padre/Wx/Dialog/Advanced.pm:190 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:155 #: lib/Padre/Wx/Dialog/OpenResource.pm:184 #: lib/Padre/Wx/Dialog/WizardSelector.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:100 #: lib/Padre/Wx/Dialog/OpenURL.pm:70 msgid "&Cancel" msgstr "取消(&C)" #: lib/Padre/Wx/ActionLibrary.pm:274 #: lib/Padre/Wx/Browser.pm:110 #: lib/Padre/Wx/About.pm:86 #: lib/Padre/Wx/Dialog/DocStats.pm:58 #: lib/Padre/Wx/Dialog/PluginManager.pm:145 #: lib/Padre/Wx/Dialog/HelpSearch.pm:179 #: lib/Padre/Wx/Dialog/PerlFilter.pm:99 #: lib/Padre/Wx/Dialog/RegexEditor.pm:238 #: lib/Padre/Wx/Dialog/KeyBindings.pm:139 #: lib/Padre/Wx/Dialog/SessionManager.pm:292 #: lib/Padre/Wx/Dialog/Replace.pm:191 msgid "&Close" msgstr "关闭(&C)" #: lib/Padre/Wx/ActionLibrary.pm:915 msgid "&Comment Selected Lines" msgstr "注释所选行(&C)" #: lib/Padre/Wx/ActionLibrary.pm:655 msgid "&Copy" msgstr "复制(&C)" #: lib/Padre/Wx/Menu/Debug.pm:116 msgid "&Debug" msgstr "调试(&D)" #: lib/Padre/Wx/Dialog/KeyBindings.pm:126 #: lib/Padre/Wx/Dialog/SessionManager.pm:291 msgid "&Delete" msgstr "删除(&D)" #: lib/Padre/Wx/Dialog/PluginManager.pm:516 msgid "&Disable" msgstr "禁用(&D)" #: lib/Padre/Wx/Menu/Edit.pm:349 #: lib/Padre/Wx/Dialog/Snippets.pm:26 msgid "&Edit" msgstr "编辑(&E)" #: lib/Padre/Wx/Dialog/PluginManager.pm:117 #: lib/Padre/Wx/Dialog/PluginManager.pm:528 msgid "&Enable" msgstr "启用(&E)" #: lib/Padre/Wx/Dialog/Goto.pm:234 #, perl-format msgid "&Enter a line number between 1 and %s:" msgstr "请输入一个在 1 至 %s 之间 的行号(&E):" #: lib/Padre/Wx/Dialog/Goto.pm:238 #, perl-format msgid "&Enter a position between 1 and %s:" msgstr "输入一个在 1 和 %s 之间的位置(&E):" #: lib/Padre/Wx/Menu/File.pm:293 msgid "&File" msgstr "文件(&F)" #: lib/Padre/Wx/Dialog/Advanced.pm:97 #: lib/Padre/Wx/Dialog/KeyBindings.pm:64 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:26 msgid "&Filter:" msgstr "过滤(&F)" #: lib/Padre/Wx/Dialog/Replace.pm:150 msgid "&Find" msgstr "查找(&F)" #: lib/Padre/Wx/ActionLibrary.pm:1201 msgid "&Find Previous" msgstr "查找上一个(&F)" #: lib/Padre/Wx/ActionLibrary.pm:1143 msgid "&Find..." msgstr "查找(&F)..." #: lib/Padre/Wx/ActionLibrary.pm:1633 msgid "&Full Screen" msgstr "全屏(&F)" #: lib/Padre/Wx/ActionLibrary.pm:742 msgid "&Go To..." msgstr "跳至(&G)..." #: lib/Padre/Wx/Outline.pm:221 msgid "&Go to Element" msgstr "跳至元素(&G)" #: lib/Padre/Wx/Menu/Help.pm:121 msgid "&Help" msgstr "帮助(&H)" #: lib/Padre/Wx/Dialog/Snippets.pm:24 #: lib/Padre/Wx/Dialog/SpecialValues.pm:50 msgid "&Insert" msgstr "插入(&I)" #: lib/Padre/Wx/ActionLibrary.pm:853 msgid "&Join Lines" msgstr "合并行(&J)" #: lib/Padre/Wx/Dialog/HelpSearch.pm:153 msgid "&Matching Help Topics:" msgstr "匹配帮助主题:(&M)" #: lib/Padre/Wx/Dialog/OpenResource.pm:228 msgid "&Matching Items:" msgstr "匹配项目:(&M)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:183 msgid "&Matching Menu Items:" msgstr "匹配菜单选项:(&M)" #: lib/Padre/Wx/ActionLibrary.pm:130 msgid "&New" msgstr "新建(&N)" #: lib/Padre/Wx/Dialog/WizardSelector.pm:87 #: lib/Padre/Wx/Dialog/Search.pm:172 msgid "&Next" msgstr "下一步(&N)" #: lib/Padre/Wx/ActionLibrary.pm:753 msgid "&Next Problem" msgstr "下一个问题(&N)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:151 #: lib/Padre/Wx/Dialog/OpenResource.pm:178 #: lib/Padre/Wx/Dialog/Goto.pm:93 #: lib/Padre/Wx/Dialog/OpenURL.pm:62 msgid "&OK" msgstr "&OK" #: lib/Padre/Wx/ActionLibrary.pm:206 #: lib/Padre/Wx/Dialog/SessionManager.pm:290 msgid "&Open" msgstr "打开(&O)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:211 msgid "&Original text:" msgstr "原文文本(%O):" #: lib/Padre/Wx/Dialog/PerlFilter.pm:81 msgid "&Output text:" msgstr "输出文本(&O):" #: lib/Padre/Wx/Dialog/RegexEditor.pm:82 msgid "&POSIX Character classes" msgstr "POSIX 字符类(&P)" #: lib/Padre/Wx/ActionLibrary.pm:728 msgid "&Paste" msgstr "粘贴(&P)" #: lib/Padre/Wx/Menu/Perl.pm:101 msgid "&Perl" msgstr "&Perl" #: lib/Padre/Wx/Dialog/PerlFilter.pm:67 msgid "&Perl filter source:" msgstr "&Perl 过滤器原码:" #: lib/Padre/Wx/Dialog/PluginManager.pm:131 msgid "&Preferences" msgstr "选项(&P)" #: lib/Padre/Wx/ActionLibrary.pm:480 msgid "&Print..." msgstr "打印(&P)..." #: lib/Padre/Wx/Dialog/RegexEditor.pm:101 msgid "&Quantifiers" msgstr "量词(&Q)" #: lib/Padre/Wx/ActionLibrary.pm:764 msgid "&Quick Fix" msgstr "快速修复(&Q)" #: lib/Padre/Wx/ActionLibrary.pm:534 msgid "&Quit" msgstr "退出(&Q)" #: lib/Padre/Wx/Menu/File.pm:253 msgid "&Recent Files" msgstr "最近的文件(&R)" #: lib/Padre/Wx/ActionLibrary.pm:574 msgid "&Redo" msgstr "重做(&R)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:144 msgid "&Regular expression:" msgstr "正则表达式(&R)" #: lib/Padre/Wx/Main.pm:4113 #: lib/Padre/Wx/Main.pm:6062 msgid "&Reload selected" msgstr "重新载入所选(&R)" #: lib/Padre/Wx/Dialog/Replace.pm:170 msgid "&Replace" msgstr "替换(&R)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:204 msgid "&Replace text with:" msgstr "替换文本(&R):" #: lib/Padre/Wx/Dialog/Advanced.pm:178 #: lib/Padre/Wx/Dialog/KeyBindings.pm:132 msgid "&Reset" msgstr "重置(&R)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:225 msgid "&Result from replace:" msgstr "替换结果(&R):" #: lib/Padre/Wx/Menu/Run.pm:74 msgid "&Run" msgstr "运行(&R)" #: lib/Padre/Wx/ActionLibrary.pm:393 #: lib/Padre/Wx/Dialog/Preferences.pm:925 #: lib/Padre/Wx/Dialog/Snippets.pm:114 msgid "&Save" msgstr "保存(&S)" #: lib/Padre/Wx/Dialog/SessionManager.pm:260 msgid "&Save session automatically" msgstr "自动保存会话(&S)" #: lib/Padre/Wx/Menu/Search.pm:99 msgid "&Search" msgstr "搜索(&S)" #: lib/Padre/Wx/Dialog/OpenResource.pm:206 msgid "&Select an item to open (? = any character, * = any string):" msgstr "选择打开项目(&S) (? 代表任何字符,* 代表任何字符串)" #: lib/Padre/Wx/Main.pm:4112 #: lib/Padre/Wx/Main.pm:6061 msgid "&Select files to reload:" msgstr "选择欲重新载入的文件(&S):" #: lib/Padre/Wx/ActionLibrary.pm:841 msgid "&Select to Matching Brace" msgstr "选择至匹配的括号(&S)" #: lib/Padre/Wx/Dialog/Advanced.pm:172 #: lib/Padre/Wx/Dialog/KeyBindings.pm:120 msgid "&Set" msgstr "设置(&S)" #: lib/Padre/Wx/Dialog/PluginManager.pm:489 #: lib/Padre/Wx/Dialog/PluginManager.pm:501 msgid "&Show error message" msgstr "显示错误消息(&S)" #: lib/Padre/Wx/ActionLibrary.pm:902 msgid "&Toggle Comment" msgstr "切换注释(&T)" #: lib/Padre/Wx/Menu/Tools.pm:198 msgid "&Tools" msgstr "工具(&T)" #: lib/Padre/Wx/ActionLibrary.pm:2690 msgid "&Translate Padre..." msgstr "翻译 Padre(&T)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:176 msgid "&Type a menu item name to access:" msgstr "输入菜单名字:(&T)" #: lib/Padre/Wx/ActionLibrary.pm:927 msgid "&Uncomment Selected Lines" msgstr "删除所选行注释(&U)" #: lib/Padre/Wx/ActionLibrary.pm:554 msgid "&Undo" msgstr "撤销(&U)" #: lib/Padre/Wx/Dialog/DocStats.pm:60 msgid "&Update" msgstr "更新(&U)" #: lib/Padre/Wx/Dialog/Advanced.pm:122 msgid "&Value:" msgstr "值(&V)" #: lib/Padre/Wx/Menu/View.pm:283 msgid "&View" msgstr "视图(&V)" #: lib/Padre/Wx/Menu/Window.pm:110 msgid "&Window" msgstr "窗口(&W)" #: lib/Padre/Wx/Debugger.pm:407 #, perl-format msgid "'%s' does not look like a variable. First select a variable in the code and then try again." msgstr "'%s' 看起来不像一个变量。 首先请在代码中选择一个变量,然后再试一次。" #: lib/Padre/Wx/ActionLibrary.pm:2342 msgid "(Re)load Current Plug-in" msgstr "(重)载入当前插件" #: lib/Padre/Document/Perl/Help.pm:302 #, perl-format msgid "(Since Perl %s)" msgstr "(自从 Perl %s)" #: lib/Padre/PluginManager.pm:856 msgid "(core)" msgstr "(核心)" #: lib/Padre/Wx/Dialog/Shortcut.pm:61 #: lib/Padre/Wx/Dialog/Shortcut.pm:75 #: lib/Padre/Wx/Dialog/Shortcut.pm:89 msgid "+" msgstr "+" #: lib/Padre/Document/Perl/Help.pm:306 msgid "- DEPRECATED!" msgstr "- 不赞成的!" #: lib/Padre/Wx/Dialog/RegexEditor.pm:86 msgid "7-bit US-ASCII character" msgstr "7-bit 美式ASCII字符" #: lib/Padre/Wx/Dialog/Shortcut.pm:32 #: lib/Padre/Wx/Dialog/Form.pm:32 #: lib/Padre/Wx/Dialog/Warning.pm:32 msgid "A Dialog" msgstr "一个对话框" #: lib/Padre/Wx/Dialog/RegexEditor.pm:120 msgid "A comment" msgstr "一条注释" #: lib/Padre/Wx/Dialog/RegexEditor.pm:126 msgid "A group" msgstr "组" #: lib/Padre/Config.pm:412 msgid "A new empty file" msgstr "新的空文件" #: lib/Padre/Plugin/Devel.pm:291 msgid "A set of unrelated tools used by the Padre developers\n" msgstr "Padre 开发者使用工具(其他)\n" #: lib/Padre/Wx/Dialog/RegexEditor.pm:118 msgid "A word boundary" msgstr "词语边界" #: lib/Padre/Wx/Dialog/Shortcut.pm:68 msgid "ALT" msgstr "Alt" #: lib/Padre/Plugin/PopularityContest.pm:201 #: lib/Padre/Plugin/Devel.pm:102 msgid "About" msgstr "关于" #: lib/Padre/Wx/About.pm:25 msgid "About Padre" msgstr "关于 Padre" #: lib/Padre/Wx/Dialog/Shortcut.pm:41 #, perl-format msgid "Action: %s" msgstr "行为: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:368 msgid "Add another closing bracket if there is already one (and the 'Autocomplete brackets' above is enabled)" msgstr "仍然添加另一个右括号,如果已有括号存在(并且'自动括号补全'功能已开启)" #: lib/Padre/Wx/Dialog/Advanced.pm:62 msgid "Advanced Settings" msgstr "高级设置" #: lib/Padre/Wx/Syntax.pm:67 msgid "Alien Error" msgstr "外来错误" #: lib/Padre/Wx/ActionLibrary.pm:1705 msgid "Align a selection of text to the same left column." msgstr "对齐所选文本, 使其拥有相同的左首栏数" #: lib/Padre/Wx/Dialog/Snippets.pm:18 msgid "All" msgstr "所有" #: lib/Padre/Wx/Main.pm:3932 #: lib/Padre/Wx/Main.pm:3933 #: lib/Padre/Wx/Main.pm:4306 #: lib/Padre/Wx/Main.pm:5548 msgid "All Files" msgstr "所有文件" #: lib/Padre/Document/Perl.pm:471 msgid "All braces appear to be matched" msgstr "所有的括号都已匹配" #: lib/Padre/Wx/ActionLibrary.pm:407 msgid "Allow the selection of another name to save the current document" msgstr "允许选择另一个名字来存储当前文档" #: lib/Padre/Wx/Dialog/RegexEditor.pm:84 msgid "Alphabetic characters" msgstr "字母" #: lib/Padre/Config.pm:528 msgid "Alphabetical Order" msgstr "按字母排序" #: lib/Padre/Config.pm:529 msgid "Alphabetical Order (Private Last)" msgstr "按字母排序(私有最后)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:85 msgid "Alphanumeric characters" msgstr "字母和数字字符" #: lib/Padre/Wx/Dialog/RegexEditor.pm:96 msgid "Alphanumeric characters plus \"_\"" msgstr "字母数字与\"_\"" #: lib/Padre/Wx/Dialog/KeyBindings.pm:90 msgid "Alt" msgstr "Alt" #: lib/Padre/Wx/Dialog/RegexEditor.pm:114 msgid "Alternation" msgstr "或" #: lib/Padre/Wx/Dialog/ModuleStart.pm:182 #, perl-format msgid "" "An error has occured while generating '%s':\n" "%s" msgstr "" "生成 '%s' 时发生错误:\n" "%s" #: lib/Padre/Wx/Dialog/Preferences.pm:567 msgid "Any changes to these options require a restart:" msgstr "如下选项的更改需要重启:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:72 msgid "Any character except a newline" msgstr "任意字符, 换行除处" #: lib/Padre/Wx/Dialog/RegexEditor.pm:73 msgid "Any decimal digit" msgstr "任意十进制数字字符" #: lib/Padre/Wx/Dialog/RegexEditor.pm:74 msgid "Any non-digit" msgstr "任意非数字字符" #: lib/Padre/Wx/Dialog/RegexEditor.pm:76 msgid "Any non-whitespace character" msgstr "任意非空白字符" #: lib/Padre/Wx/Dialog/RegexEditor.pm:78 msgid "Any non-word character" msgstr "非构词字符" #: lib/Padre/Wx/Dialog/RegexEditor.pm:75 msgid "Any whitespace character" msgstr "任意空白字符" #: lib/Padre/Wx/Dialog/RegexEditor.pm:77 msgid "Any word character" msgstr "构词字符" #: lib/Padre/Wx/Dialog/ModuleStart.pm:16 #: lib/Padre/Wx/Dialog/ModuleStart.pm:36 msgid "Apache License" msgstr "Apache 许可证" #: lib/Padre/Wx/Dialog/Preferences.pm:865 msgid "Appearance" msgstr "外观" #: lib/Padre/Wx/ActionLibrary.pm:1079 msgid "Apply Diff to File" msgstr "应用 Diff 到文件" #: lib/Padre/Wx/ActionLibrary.pm:1089 msgid "Apply Diff to Project" msgstr "应用 Diff 到工程" #: lib/Padre/Wx/ActionLibrary.pm:1080 msgid "Apply a patch file to the current document" msgstr "在当前文档上应用一个补丁文件" #: lib/Padre/Wx/ActionLibrary.pm:1090 msgid "Apply a patch file to the current project" msgstr "在当前工程上应用一个补丁文件" #: lib/Padre/Wx/ActionLibrary.pm:765 msgid "Apply one of the quick fixes for the current document" msgstr "为当前文档应用一个快速修正" #: lib/Padre/Locale.pm:156 msgid "Arabic" msgstr "阿拉伯语" #: lib/Padre/Wx/Dialog/ModuleStart.pm:17 #: lib/Padre/Wx/Dialog/ModuleStart.pm:37 msgid "Artistic License 1.0" msgstr "艺术家许可证 2.0" #: lib/Padre/Wx/Dialog/ModuleStart.pm:18 #: lib/Padre/Wx/Dialog/ModuleStart.pm:38 msgid "Artistic License 2.0" msgstr "艺术家许可证 2.0" #: lib/Padre/Wx/ActionLibrary.pm:465 msgid "Ask for a session name and save the list of files currently opened" msgstr "询问一个会话各并保存当前已打开文件的列表" #: lib/Padre/Wx/ActionLibrary.pm:535 msgid "Ask if unsaved files should be saved and then exit Padre" msgstr "询问当前未保存文件是否需要保存, 并且退出 Padre" #: lib/Padre/Wx/ActionLibrary.pm:1841 msgid "Assign the selected expression to a newly declared variable" msgstr "赋值所选表达式给一个新定义的变量" #: lib/Padre/Wx/Outline.pm:360 msgid "Attributes" msgstr "属性" #: lib/Padre/Wx/FBP/Sync.pm:283 msgid "Authentication" msgstr "验证" #: lib/Padre/Wx/Dialog/ModuleStart.pm:58 msgid "Author:" msgstr "作者:" #: lib/Padre/Wx/Dialog/Preferences.pm:317 msgid "Auto-fold POD markup when code folding enabled" msgstr "当代码启动开展时自动开展 POD 标志" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:34 msgid "Autocomplete always while typing" msgstr "键入过程中总是自动填充" #: lib/Padre/Wx/Dialog/Preferences.pm:360 msgid "Autocomplete brackets" msgstr "自动补全括号" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:41 msgid "Autocomplete new methods in packages" msgstr "自动填充 package 中的新方法" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:48 msgid "Autocomplete new subroutines in scripts" msgstr "自动填充脚本中的新函数" #: lib/Padre/Wx/Main.pm:3291 msgid "Autocompletion error" msgstr "自动完成错误" #: lib/Padre/Wx/Dialog/Preferences.pm:276 msgid "Autoindent:" msgstr "自动缩进:" #: lib/Padre/Wx/Dialog/Preferences.pm:260 msgid "Automatic indentation style detection" msgstr "自动缩进风格检测" #: lib/Padre/Wx/StatusBar.pm:293 msgid "Background Tasks are running" msgstr "后台任务正在运行" #: lib/Padre/Wx/StatusBar.pm:294 msgid "Background Tasks are running with high load" msgstr "后台任务正在高负载运行" #: lib/Padre/Wx/Dialog/RegexEditor.pm:132 msgid "Backreference to the nth group" msgstr "反向引用第 n 组" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Backspace" msgstr "退格" #: lib/Padre/Wx/Dialog/RegexEditor.pm:116 msgid "Beginning of line" msgstr "行首" #: lib/Padre/Wx/Dialog/Preferences.pm:862 msgid "Behaviour" msgstr "行为" #: lib/Padre/Wx/About.pm:106 msgid "Blue butterfly on a green leaf" msgstr "翠叶栖蓝蝶" #: lib/Padre/Wx/Dialog/Advanced.pm:26 msgid "Boolean" msgstr "布尔值" #: lib/Padre/Wx/FBP/FindInFiles.pm:64 msgid "Browse" msgstr "浏览" #: lib/Padre/Wx/ActionLibrary.pm:207 msgid "Browse directory of the current document to open one or several files" msgstr "浏览当前目录来打开一个或几个文件" #: lib/Padre/Wx/ActionLibrary.pm:263 msgid "Browse the directory of the installed examples to open one file" msgstr "浏览预装样例所在目录来打开一个文件" #: lib/Padre/Wx/Dialog/Preferences.pm:88 #: lib/Padre/Wx/Dialog/Preferences.pm:92 msgid "Browse..." msgstr "浏览..." #: lib/Padre/Wx/Browser.pm:409 #, perl-format msgid "Browser: no viewer for %s" msgstr "浏览器: 没有 %s 的查看工具" #: lib/Padre/Wx/Dialog/ModuleStart.pm:64 msgid "Builder:" msgstr "Builder:" #: lib/Padre/Wx/ActionLibrary.pm:1919 msgid "Builds the current project, then run all tests." msgstr "构建当前工程, 然后执行所有测试." #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:358 msgid "CHANGED" msgstr "己改动" #: lib/Padre/Wx/Dialog/Shortcut.pm:54 msgid "CTRL" msgstr "Ctrl" #: lib/Padre/Wx/FBP/FindInFiles.pm:132 #: lib/Padre/Wx/FBP/Find.pm:119 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:126 msgid "Cancel" msgstr "取消" #: lib/Padre/Wx/Main.pm:4987 msgid "Cannot diff if file was never saved" msgstr "无法对未保存文件进行比较" #: lib/Padre/Wx/Main.pm:3620 #, perl-format msgid "Cannot open a directory: %s" msgstr "不能打开目录: %s" #: lib/Padre/Wx/Dialog/Bookmarks.pm:123 msgid "Cannot set bookmark in unsaved document" msgstr "不能给未保存文档设置书签" #: lib/Padre/Wx/Dialog/Search.pm:180 msgid "Case &insensitive" msgstr "忽略大小写(&i)" #: lib/Padre/Wx/Dialog/Replace.pm:80 msgid "Case &sensitive" msgstr "匹配大小写(&s)" #: lib/Padre/Wx/FBP/FindInFiles.pm:109 #: lib/Padre/Wx/FBP/Find.pm:74 msgid "Case Sensitive" msgstr "匹配大小写(&s)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:409 msgid "Case-insensitive matching" msgstr "大小写敏感匹配" #: lib/Padre/Wx/Dialog/Snippets.pm:111 msgid "Category:" msgstr "种类:" #: lib/Padre/Wx/Dialog/Preferences.pm:40 msgid "Change font size" msgstr "改变文字大小" #: lib/Padre/Wx/ActionLibrary.pm:1059 msgid "Change the current selection to lower case" msgstr "小写当前所选文本" #: lib/Padre/Wx/ActionLibrary.pm:1048 msgid "Change the current selection to upper case" msgstr "大写当前所选文本" #: lib/Padre/Wx/ActionLibrary.pm:941 msgid "Change the encoding of the current document to the default of the operating system" msgstr "将当前文件的编码改为操作系统默认值" #: lib/Padre/Wx/ActionLibrary.pm:952 msgid "Change the encoding of the current document to utf-8" msgstr "转换文档编码为 utf-8" #: lib/Padre/Wx/ActionLibrary.pm:994 msgid "Change the end of line character of the current document to that used on Mac Classic" msgstr "改变当前文件的行尾符到 Mac 经典风格" #: lib/Padre/Wx/ActionLibrary.pm:984 msgid "Change the end of line character of the current document to that used on Unix, Linux, Mac OSX" msgstr "改变当前文件的行尾符到 Unix, Linux, Mac OSX 风格" #: lib/Padre/Wx/ActionLibrary.pm:974 msgid "Change the end of line character of the current document to those used in files on MS Windows" msgstr "改变当前文件的行尾符到 MS Windows 风格" #: lib/Padre/Wx/Menu/Refactor.pm:49 #: lib/Padre/Document/Perl.pm:1696 msgid "Change variable style" msgstr "更改变量风格" #: lib/Padre/Wx/ActionLibrary.pm:1800 msgid "Change variable style from camelCase to Camel_Case" msgstr "变量风格从 camelCase 更改为 Camel_Case" #: lib/Padre/Wx/ActionLibrary.pm:1786 msgid "Change variable style from camelCase to camel_case" msgstr "变量风格从 camelCase 更改为 camel_case" #: lib/Padre/Wx/ActionLibrary.pm:1772 msgid "Change variable style from camel_case to CamelCase" msgstr "变量风格从 camel_case 更改为 CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1758 msgid "Change variable style from camel_case to camelCase" msgstr "变量风格从 camel_case 更改为 camelCase" #: lib/Padre/Wx/ActionLibrary.pm:1799 msgid "Change variable style to Using_Underscores" msgstr "变量风格更改为 Using_Underscores" #: lib/Padre/Wx/ActionLibrary.pm:1785 msgid "Change variable style to using_underscores" msgstr "变量风格更改为 using_underscores" #: lib/Padre/Wx/ActionLibrary.pm:1771 msgid "Change variable to CamelCase" msgstr "更改变量为 CamelCase" #: lib/Padre/Wx/ActionLibrary.pm:1757 msgid "Change variable to camelCase" msgstr "更改变量为 camelCase" #: lib/Padre/Wx/Dialog/RegexEditor.pm:70 msgid "Character classes" msgstr "字符类" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:236 msgid "Character position" msgstr "字符位置" #: lib/Padre/Wx/Dialog/RegexEditor.pm:115 msgid "Character set" msgstr "字符集合" #: lib/Padre/Wx/Dialog/DocStats.pm:106 msgid "Characters (including whitespace)" msgstr "字符 (包括空格)" #: lib/Padre/Document/Perl.pm:472 msgid "Check Complete" msgstr "检查结束" #: lib/Padre/Document/Perl.pm:542 #: lib/Padre/Document/Perl.pm:596 #: lib/Padre/Document/Perl.pm:631 msgid "Check cancelled" msgstr "检查已取消" #: lib/Padre/Wx/ActionLibrary.pm:1655 msgid "Check for Common (Beginner) Errors" msgstr "检查常见(初学者)错误" #: lib/Padre/Wx/Dialog/Preferences.pm:348 msgid "Check for file updates on disk every (seconds):" msgstr "检查磁盘文件更新频率(秒):" #: lib/Padre/Wx/ActionLibrary.pm:1656 msgid "Check the current file for common beginner errors" msgstr "检查当前文件的初学者常犯错误" #: lib/Padre/Locale.pm:430 msgid "Chinese" msgstr "中文" #: lib/Padre/Locale.pm:440 msgid "Chinese (Simplified)" msgstr "简体中文" #: lib/Padre/Locale.pm:450 msgid "Chinese (Traditional)" msgstr "繁体中文" #: lib/Padre/Wx/Main.pm:3806 #: lib/Padre/Wx/Dialog/Positions.pm:120 msgid "Choose File" msgstr "选择文件" #: lib/Padre/Wx/Dialog/Preferences.pm:331 msgid "Choose the default projects directory" msgstr "选择工程的默认目录" #: lib/Padre/Wx/Dialog/Snippets.pm:22 #: lib/Padre/Wx/Dialog/SpecialValues.pm:46 msgid "Class:" msgstr "类:" #: lib/Padre/Wx/ActionLibrary.pm:509 msgid "Clean Recent Files List" msgstr "清空最近文件列表" # 尚未实现? #: lib/Padre/Wx/Dialog/Preferences.pm:312 msgid "Clean up file content on saving (for supported document types)" msgstr "存储时清理文件内容 (对于支持的文档类型)" #: lib/Padre/Wx/ActionLibrary.pm:625 msgid "Clear Selection Marks" msgstr "清除选区标记" #: lib/Padre/Wx/Dialog/OpenResource.pm:222 msgid "Click on the arrow for filter settings" msgstr "点击此键头设置过滤器" #: lib/Padre/Wx/FBP/Sync.pm:248 #: lib/Padre/Wx/Menu/File.pm:139 #: lib/Padre/Wx/Dialog/FilterTool.pm:152 #: lib/Padre/Wx/Dialog/WindowList.pm:280 #: lib/Padre/Wx/Dialog/SessionSave.pm:230 msgid "Close" msgstr "关闭" #: lib/Padre/Wx/ActionLibrary.pm:349 msgid "Close Files..." msgstr "关闭文件... " #: lib/Padre/Wx/Dialog/Replace.pm:108 msgid "Close Window on &Hit" msgstr "点击时退出该窗口(&H)" #: lib/Padre/Wx/FBP/Find.pm:82 msgid "Close Window on Hit" msgstr "点击时关闭窗口" #: lib/Padre/Wx/Main.pm:4768 msgid "Close all" msgstr "关闭所有" #: lib/Padre/Wx/ActionLibrary.pm:329 msgid "Close all Files" msgstr "关闭所有文件" #: lib/Padre/Wx/ActionLibrary.pm:339 msgid "Close all other Files" msgstr "关闭其他所有文件" #: lib/Padre/Wx/ActionLibrary.pm:289 msgid "Close all the files belonging to the current project" msgstr "关闭所有属于当前工程的文件" #: lib/Padre/Wx/ActionLibrary.pm:340 msgid "Close all the files except the current one" msgstr "关闭除当前文件外的所有文件" #: lib/Padre/Wx/ActionLibrary.pm:330 msgid "Close all the files open in the editor" msgstr "关闭在其它编辑窗打开的文件" #: lib/Padre/Wx/ActionLibrary.pm:310 msgid "Close all the files that do not belong to the current project" msgstr "关闭所有不属于当前工程的文件" #: lib/Padre/Wx/ActionLibrary.pm:275 msgid "Close current document" msgstr "关闭当前文档" #: lib/Padre/Wx/ActionLibrary.pm:309 msgid "Close other Projects" msgstr "关闭其他工程" #: lib/Padre/Wx/Main.pm:4824 msgid "Close some" msgstr "关闭一些" #: lib/Padre/Wx/Main.pm:4808 msgid "Close some files" msgstr "关闭一些文件" #: lib/Padre/Wx/ActionLibrary.pm:288 msgid "Close this Project" msgstr "关闭该工程" #: lib/Padre/Config.pm:527 msgid "Code Order" msgstr "代码排序" #: lib/Padre/Wx/Dialog/Preferences.pm:478 msgid "Colored text in output window (ANSI)" msgstr "输出加色的文字 (ANSI)" #: lib/Padre/Wx/ActionLibrary.pm:1864 msgid "Combine scattered POD at the end of the document" msgstr "在文件尾将分散的 POD 合并" #: lib/Padre/Wx/Command.pm:262 msgid "Command" msgstr "命令" #: lib/Padre/Wx/Main.pm:2414 msgid "Command line" msgstr "命令行" #: lib/Padre/Wx/ActionLibrary.pm:903 msgid "Comment out or remove comment out of selected lines in the document" msgstr "将选定的行注释或移除注释" #: lib/Padre/Wx/ActionLibrary.pm:916 msgid "Comment out selected lines in the document" msgstr "注释所选行" #: lib/Padre/Wx/ActionLibrary.pm:1070 msgid "Compare the file in the editor to that on the disk and show the diff in the output window" msgstr "比较编辑窗中的文件和磁盘上的文件, 并把不同点显示在输出窗口" #: lib/Padre/Wx/About.pm:318 msgid "Config:" msgstr "配置:" #: lib/Padre/Wx/FBP/Sync.pm:139 #: lib/Padre/Wx/FBP/Sync.pm:167 msgid "Confirm" msgstr "确认" #: lib/Padre/File/FTP.pm:113 #, perl-format msgid "Connecting to FTP server %s..." msgstr "正在连接 FTP 服务器 %s..." #: lib/Padre/File/FTP.pm:156 msgid "Connection to FTP server successful." msgstr "成功连接到 FTP 服务器。" #: lib/Padre/Wx/FindResult.pm:178 msgid "Content" msgstr "内容" #: lib/Padre/Wx/Dialog/Preferences.pm:168 msgid "Content type:" msgstr "文档类型:" #: lib/Padre/Config.pm:461 msgid "Contents of the status bar" msgstr "状态栏的内容" #: lib/Padre/Config.pm:449 msgid "Contents of the window title" msgstr "窗口标题的内容" #: lib/Padre/Wx/ActionLibrary.pm:2599 msgid "Context Help" msgstr "上下文帮助" #: lib/Padre/Wx/Dialog/RegexEditor.pm:88 msgid "Control characters" msgstr "控制字符" #: lib/Padre/Wx/Menu/Edit.pm:200 msgid "Convert Encoding" msgstr "转换编码" #: lib/Padre/Wx/Menu/Edit.pm:222 msgid "Convert Line Endings" msgstr "转换行尾" #: lib/Padre/Wx/ActionLibrary.pm:1006 msgid "Convert all tabs to spaces in the current document" msgstr "把当前文件中所有制表符换为空格" #: lib/Padre/Wx/ActionLibrary.pm:1016 msgid "Convert all the spaces to tabs in the current document" msgstr "把当前文件中所有空格换为制表符" #: lib/Padre/Wx/Dialog/Advanced.pm:117 msgid "Copy" msgstr "复制(&C)" #: lib/Padre/Wx/FindResult.pm:249 msgid "Copy &All" msgstr "关闭所有(&A)" #: lib/Padre/Wx/FindResult.pm:226 msgid "Copy &Selected" msgstr "复制所选(&S)" #: lib/Padre/Wx/ActionLibrary.pm:699 msgid "Copy Directory Name" msgstr "复制目录名" #: lib/Padre/Wx/ActionLibrary.pm:712 msgid "Copy Editor Content" msgstr "复制编辑窗中的内容" #: lib/Padre/Wx/ActionLibrary.pm:685 msgid "Copy Filename" msgstr "复制文件名" #: lib/Padre/Wx/ActionLibrary.pm:671 msgid "Copy Full Filename" msgstr "复制完整文件名" #: lib/Padre/Wx/Dialog/Advanced.pm:118 msgid "Copy Name" msgstr "复制名字" #: lib/Padre/Wx/Menu/Edit.pm:90 msgid "Copy Specials" msgstr "复制特殊项" #: lib/Padre/Wx/Dialog/Advanced.pm:119 msgid "Copy Value" msgstr "复制值" #: lib/Padre/Wx/Dialog/OpenResource.pm:262 msgid "Copy filename to clipboard" msgstr "复制文件名到剪贴板" #: lib/Padre/Wx/Directory/TreeCtrl.pm:163 #, perl-format msgid "Could not create: '%s': %s" msgstr "不能建立: '%s': %s" #: lib/Padre/Wx/Directory/TreeCtrl.pm:182 #, perl-format msgid "Could not delete: '%s': %s" msgstr "无法删除: '%s': %s" #: lib/Padre/Wx/Main.pm:3242 #, perl-format msgid "Could not determine the comment character for %s document type" msgstr "不能判断 %s 文件类型的注释符" #: lib/Padre/Wx/Debugger.pm:389 #, perl-format msgid "Could not evaluate '%s'" msgstr "不能执行 '%s'" #: lib/Padre/Util/FileBrowser.pm:216 msgid "Could not find KDE or GNOME" msgstr "无法找到 KDE 或 GNOME" #: lib/Padre/Wx/Dialog/HelpSearch.pm:311 msgid "Could not find a help provider for " msgstr "找不到相应的帮助提供者:" #: lib/Padre/Wx/Main.pm:2480 msgid "Could not find perl executable" msgstr "无法找到 perl 可执行文件" #: lib/Padre/Wx/Main.pm:2450 #: lib/Padre/Wx/Main.pm:2511 #: lib/Padre/Wx/Main.pm:2566 msgid "Could not find project root" msgstr "无法找到工程主目录" #: lib/Padre/Wx/ActionLibrary.pm:2292 msgid "Could not find the Padre::Plugin::My plug-in" msgstr "未找到 Padre::Plugin::My 插件" #: lib/Padre/PluginManager.pm:982 msgid "Could not locate project directory." msgstr "无法定位工程目录" #: lib/Padre/Wx/Main.pm:4190 #, perl-format msgid "Could not reload file: %s" msgstr "无法重载文件: %s" #: lib/Padre/Wx/Main.pm:4598 msgid "Could not save file: " msgstr "无法保存文件:" #: lib/Padre/Wx/Debugger.pm:226 #, perl-format msgid "Could not set breakpoint on file '%s' row '%s'" msgstr "无法在文件 '%s' 的第 '%s' 行设置断点" #: lib/Padre/Wx/Dialog/Preferences.pm:693 msgid "Crashed" msgstr "已崩溃" #: lib/Padre/Wx/Directory/TreeCtrl.pm:237 msgid "Create Directory" msgstr "创建目录" #: lib/Padre/Wx/ActionLibrary.pm:1730 msgid "Create Project Tagsfile" msgstr "创建工程标记文件 (tagsfile)" #: lib/Padre/Wx/ActionLibrary.pm:1574 msgid "Create a bookmark in the current file current row" msgstr "在当前文件的当前行建立一个书签" #: lib/Padre/Wx/About.pm:102 msgid "Created by" msgstr "创建者" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:15 msgid "Creates a Padre Plugin" msgstr "创建一个 Padre 插件" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:15 msgid "Creates a Padre document" msgstr "生成一个 Padre 文档" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:17 msgid "Creates a Perl 5 module or script" msgstr "创建一个 Perl 5 模块或脚本" #: lib/Padre/Wx/ActionLibrary.pm:1731 msgid "Creates a perltags - file for the current project supporting find_method and autocomplete." msgstr "为当前工程创建一个 perltags 文件, 以支持方法(函数)查找与自动补全." #: lib/Padre/Wx/Dialog/KeyBindings.pm:89 msgid "Ctrl" msgstr "Ctrl" #: lib/Padre/Wx/ActionLibrary.pm:640 msgid "Cu&t" msgstr "剪切(&t)" #: lib/Padre/Document/Perl.pm:630 #, perl-format msgid "Current '%s' not found" msgstr "当前 '%s' 未找到" #: lib/Padre/Wx/Dialog/OpenResource.pm:245 msgid "Current Directory: " msgstr "当前目录:" #: lib/Padre/Wx/ActionLibrary.pm:2612 msgid "Current Document" msgstr "当前文档" #: lib/Padre/Wx/Dialog/Preferences.pm:819 #, perl-format msgid "Current Document: %s" msgstr "当前文档: %s" #: lib/Padre/Document/Perl.pm:595 msgid "Current cursor does not seem to point at a method" msgstr "当前指针不像指在一个方法上" #: lib/Padre/Document/Perl.pm:541 #: lib/Padre/Document/Perl.pm:575 msgid "Current cursor does not seem to point at a variable" msgstr "当前光标不像指在一个变量上" #: lib/Padre/Document/Perl.pm:819 #: lib/Padre/Document/Perl.pm:869 #: lib/Padre/Document/Perl.pm:907 msgid "Current cursor does not seem to point at a variable." msgstr "当前光标不像指在一个变量上。" #: lib/Padre/Wx/Main.pm:2505 #: lib/Padre/Wx/Main.pm:2557 msgid "Current document has no filename" msgstr "当前文档没有文件名" #: lib/Padre/Wx/Main.pm:2560 msgid "Current document is not a .t file" msgstr "当前文档不是一个 .t 文件" #: lib/Padre/Wx/Dialog/Preferences.pm:441 msgid "Current file's basename" msgstr "当前文件的基础名" #: lib/Padre/Wx/Dialog/Preferences.pm:440 msgid "Current file's dirname" msgstr "当前文件目录名" #: lib/Padre/Wx/Dialog/Preferences.pm:439 msgid "Current filename" msgstr "当前文件名" #: lib/Padre/Wx/Dialog/Preferences.pm:442 msgid "Current filename relative to project" msgstr "当前文档在工程中的相对文件名" #: lib/Padre/Wx/Dialog/Goto.pm:235 #, perl-format msgid "Current line number: %s" msgstr "当前行号: %s" #: lib/Padre/Wx/Dialog/Goto.pm:239 #, perl-format msgid "Current position: %s" msgstr "当前位置: %s" #: lib/Padre/Wx/Dialog/Preferences.pm:351 msgid "Cursor Blink Rate (milliseconds - 0 = blink off; 500 = default):" msgstr "光标闪烁速率 ( 毫秒 —— 0 = 关闭闪烁; 500 = 默认 ) :" #: lib/Padre/Wx/ActionLibrary.pm:1815 msgid "Cut the current selection and create a new sub from it. A call to this sub is added in the place where the selection was." msgstr "剪切当前所选, 并根据它创建一个新的子程序. 在所选处将会调用该子程序." #: lib/Padre/Locale.pm:166 msgid "Czech" msgstr "捷克语" #: lib/Padre/Wx/Dialog/WindowList.pm:356 msgid "DELETED" msgstr "已删除" #: lib/Padre/Locale.pm:176 msgid "Danish" msgstr "丹麦语" #: lib/Padre/Wx/Dialog/SpecialValues.pm:15 msgid "Date/Time" msgstr "日期/时间" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:395 msgid "Debug" msgstr "调试" #: lib/Padre/Wx/Debug.pm:113 msgid "Debugger" msgstr "调试器" #: lib/Padre/Wx/Debugger.pm:78 msgid "Debugger is already running" msgstr "调试器已在运行" #: lib/Padre/Wx/Debugger.pm:193 #: lib/Padre/Wx/Debugger.pm:275 #: lib/Padre/Wx/Debugger.pm:299 #: lib/Padre/Wx/Debugger.pm:333 #: lib/Padre/Wx/Debugger.pm:353 msgid "Debugger not running" msgstr "调试器未运行" #: lib/Padre/Wx/Debugger.pm:137 msgid "Debugging failed. Did you check your program for syntax errors?" msgstr "调试失败。您曾检查过程序中的语法错误吗?‮" #: lib/Padre/Wx/ActionLibrary.pm:1550 msgid "Decrease Font Size" msgstr "缩小字号" #: lib/Padre/Wx/Dialog/Preferences.pm:813 #: lib/Padre/Wx/Dialog/Advanced.pm:430 msgid "Default" msgstr "默认" #: lib/Padre/Wx/Dialog/Preferences.pm:345 msgid "Default line ending:" msgstr "默认行尾:" #: lib/Padre/Wx/Dialog/Preferences.pm:329 msgid "Default projects directory:" msgstr "默认工程目录:" #: lib/Padre/Wx/Dialog/Advanced.pm:135 msgid "Default value:" msgstr "默认值:" #: lib/Padre/Wx/Dialog/Preferences.pm:300 msgid "Default word wrap on for each file" msgstr "默认对所有文件开启换行" #: lib/Padre/Wx/ActionLibrary.pm:110 msgid "Delay the action queue for 10 seconds" msgstr "延迟动作队列 10 秒" #: lib/Padre/Wx/ActionLibrary.pm:119 msgid "Delay the action queue for 30 seconds" msgstr "延迟动作队列 30 秒" #: lib/Padre/Wx/FBP/Sync.pm:233 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Delete" msgstr "删除" #: lib/Padre/Wx/Dialog/Bookmarks.pm:43 msgid "Delete &All" msgstr "删除所有(&A)" #: lib/Padre/Wx/Directory/TreeCtrl.pm:226 msgid "Delete File" msgstr "删除文件" #: lib/Padre/Wx/ActionLibrary.pm:1035 msgid "Delete Leading Spaces" msgstr "删除首部空格" #: lib/Padre/Wx/ActionLibrary.pm:1025 msgid "Delete Trailing Spaces" msgstr "删除尾部空格" #: lib/Padre/Wx/Syntax.pm:37 msgid "Deprecation" msgstr "不赞成" #: lib/Padre/Wx/Dialog/SessionManager.pm:227 msgid "Description" msgstr "描述" #: lib/Padre/Wx/Dialog/Preferences.pm:165 #: lib/Padre/Wx/Dialog/Advanced.pm:158 #: lib/Padre/Wx/Dialog/SessionSave.pm:209 msgid "Description:" msgstr "描述:" #: lib/Padre/Wx/About.pm:64 msgid "Development" msgstr "开发" #: lib/Padre/CPAN.pm:118 #: lib/Padre/CPAN.pm:142 msgid "Did not provide a distribution" msgstr "没有提供包" #: lib/Padre/Wx/Menu/Edit.pm:295 msgid "Diff Tools" msgstr "Diff 工具" #: lib/Padre/Wx/ActionLibrary.pm:1069 msgid "Diff to Saved Version" msgstr "Diff 到已保存版本" #: lib/Padre/Wx/Dialog/Preferences.pm:86 msgid "Diff tool:" msgstr "Diff 工具:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:89 msgid "Digits" msgstr "单个数字" #: lib/Padre/Config.pm:556 msgid "Directories First" msgstr "目录优先" #: lib/Padre/Config.pm:557 msgid "Directories Mixed" msgstr "目录混合" #: lib/Padre/Wx/Directory/TreeCtrl.pm:83 msgid "Directory" msgstr "目录" #: lib/Padre/Wx/Dialog/WindowList.pm:226 msgid "Disk" msgstr "磁盘" #: lib/Padre/Wx/ActionLibrary.pm:2147 msgid "Display Value" msgstr "显示值" #: lib/Padre/Wx/ActionLibrary.pm:2148 msgid "Display the current value of a variable in the right hand side debugger pane" msgstr "在右手边调试面板,显示变量的当前值" #: lib/Padre/Wx/Dialog/Warning.pm:49 msgid "Do not show this again" msgstr "不再显示" #: lib/Padre/Wx/Main.pm:2797 msgid "Do you want to continue?" msgstr "您希望继续吗?" #: lib/Padre/Wx/Dialog/KeyBindings.pm:391 msgid "Do you want to override it with the selected action?" msgstr "是否以所选动作覆盖?" #: lib/Padre/Wx/WizardLibrary.pm:36 #: lib/Padre/Wx/Dialog/DocStats.pm:95 msgid "Document" msgstr "文档" #: lib/Padre/Wx/ActionLibrary.pm:521 #: lib/Padre/Wx/Dialog/DocStats.pm:31 msgid "Document Statistics" msgstr "文档统计" #: lib/Padre/Wx/Right.pm:52 msgid "Document Tools" msgstr "文档工具" #: lib/Padre/Config.pm:567 msgid "Document Tools (Right)" msgstr "文档工具(右)" #: lib/Padre/Wx/Dialog/Preferences.pm:786 msgid "Document location:" msgstr "文档位置:" #: lib/Padre/Wx/Dialog/Preferences.pm:783 msgid "Document name:" msgstr "文档名字:" #: lib/Padre/Wx/Dialog/DocStats.pm:133 msgid "Document type" msgstr "文档类型" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Down" msgstr "下" #: lib/Padre/Wx/FBP/Sync.pm:218 msgid "Download" msgstr "下载" #: lib/Padre/Plugin/Devel.pm:71 msgid "Dump" msgstr "转储 (Dump)" #: lib/Padre/Plugin/Devel.pm:77 msgid "Dump %INC and @INC" msgstr "转储 %INC 和 @INC" #: lib/Padre/Plugin/Devel.pm:73 msgid "Dump Current Document" msgstr "转储当前文档" #: lib/Padre/Plugin/Devel.pm:76 msgid "Dump Current PPI Tree" msgstr "转储当前PPI树" #: lib/Padre/Plugin/Devel.pm:78 msgid "Dump Display Geometry" msgstr "转储窗口的几何参数" #: lib/Padre/Plugin/Devel.pm:72 msgid "Dump Expression..." msgstr "转储表达式..." #: lib/Padre/Plugin/Devel.pm:74 msgid "Dump Task Manager" msgstr "转储任务管理器" #: lib/Padre/Plugin/Devel.pm:75 msgid "Dump Top IDE Object" msgstr "转储顶层 IDE 对象" #: lib/Padre/Wx/ActionLibrary.pm:89 msgid "Dump the Padre object to STDOUT" msgstr "导出 Padre 对象到标准输出(STDOUT)" #: lib/Padre/Wx/ActionLibrary.pm:90 msgid "Dumps the complete Padre object to STDOUT for testing/debugging." msgstr "导出全部的 Padre 对象到标准输出(STDOUT)" #: lib/Padre/Locale.pm:350 msgid "Dutch" msgstr "荷兰语" #: lib/Padre/Locale.pm:360 msgid "Dutch (Belgium)" msgstr "荷兰语 (比利时)" #: lib/Padre/Wx/ActionLibrary.pm:993 msgid "EOL to Mac Classic" msgstr "EOL 转为 Mac 经典风格" #: lib/Padre/Wx/ActionLibrary.pm:983 msgid "EOL to Unix" msgstr "EOL 转为 Windows 风格" #: lib/Padre/Wx/ActionLibrary.pm:973 msgid "EOL to Windows" msgstr "EOL 转为 Windows 风格" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:389 msgid "Edit" msgstr "编辑(&E)" #: lib/Padre/Wx/ActionLibrary.pm:2285 msgid "Edit My Plug-in" msgstr "编辑我的插件" #: lib/Padre/Wx/ActionLibrary.pm:2210 msgid "Edit the user preferences" msgstr "更改使用偏好" #: lib/Padre/Wx/ActionLibrary.pm:2247 msgid "Edit with Regex Editor" msgstr "用正则表达式编辑器编辑" #: lib/Padre/Wx/Dialog/Snippets.pm:125 msgid "Edit/Add Snippets" msgstr "编辑/新增 片断" #: lib/Padre/Wx/Dialog/WindowList.pm:225 msgid "Editor" msgstr "编辑器" #: lib/Padre/Wx/Dialog/Preferences.pm:495 msgid "Editor Current Line Background Colour:" msgstr "当前编辑窗的行背景色:" #: lib/Padre/Wx/Dialog/Preferences.pm:492 msgid "Editor Font:" msgstr "编辑窗字体:" #: lib/Padre/Wx/FBP/Sync.pm:153 msgid "Email" msgstr "电子邮件" #: lib/Padre/Wx/Dialog/ModuleStart.pm:61 msgid "Email Address:" msgstr "电子邮件:" #: lib/Padre/Wx/Dialog/Sync2.pm:152 #: lib/Padre/Wx/Dialog/Sync.pm:537 msgid "Email and confirmation do not match." msgstr "电子邮箱与确认值不匹配" #: lib/Padre/Wx/Dialog/Preferences.pm:376 msgid "Enable Smart highlighting while typing" msgstr "开启输入过程中的智能加亮" #: lib/Padre/Wx/Dialog/Preferences.pm:39 msgid "Enable bookmarks" msgstr "启用书签" #: lib/Padre/Wx/Dialog/Preferences.pm:41 msgid "Enable session manager" msgstr "启用会话管理" #: lib/Padre/Wx/Dialog/Preferences.pm:678 msgid "Enable?" msgstr "启用?" #: lib/Padre/Wx/ActionLibrary.pm:940 msgid "Encode Document to System Default" msgstr "转码文档为系统默认编码" #: lib/Padre/Wx/ActionLibrary.pm:951 msgid "Encode Document to utf-8" msgstr "转换文档编码为 utf-8" #: lib/Padre/Wx/ActionLibrary.pm:962 msgid "Encode Document to..." msgstr "转换文档编码为..." #: lib/Padre/Wx/Dialog/Encode.pm:63 msgid "Encode document to..." msgstr "转换文档编码为..." #: lib/Padre/Wx/Dialog/Encode.pm:53 msgid "Encode to:" msgstr "转换编码为:" #: lib/Padre/Wx/Dialog/DocStats.pm:131 msgid "Encoding" msgstr "编码" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "End" msgstr "End" #: lib/Padre/Wx/Dialog/RegexEditor.pm:117 msgid "End of line" msgstr "行尾" #: lib/Padre/Locale.pm:196 msgid "English" msgstr "英语" #: lib/Padre/Locale.pm:124 msgid "English (Australia)" msgstr "英语 (澳大利亚)" #: lib/Padre/Locale.pm:205 msgid "English (Canada)" msgstr "英语 (加拿大)" #: lib/Padre/Locale.pm:214 msgid "English (New Zealand)" msgstr "英语 (新西兰)" #: lib/Padre/Locale.pm:85 msgid "English (United Kingdom)" msgstr "英语 (英国)" #: lib/Padre/Locale.pm:225 msgid "English (United States)" msgstr "英语 (美国)" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Enter" msgstr "回车" #: lib/Padre/CPAN.pm:132 msgid "" "Enter URL to install\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" msgstr "" "输入 URL 来安装\\n" "e.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz" #: lib/Padre/Wx/Dialog/OpenResource.pm:215 msgid "Enter parts of the resource name to find it" msgstr "输入资源名称的一部分来找到它" #: lib/Padre/Wx/Dialog/SpecialValues.pm:19 msgid "Epoch" msgstr "时间帧" #: lib/Padre/Document.pm:440 #: lib/Padre/Wx/Editor.pm:215 #: lib/Padre/Wx/Main.pm:4599 #: lib/Padre/Wx/Role/Dialog.pm:95 #: lib/Padre/Wx/Dialog/ModuleStart.pm:185 #: lib/Padre/Wx/Dialog/PluginManager.pm:356 #: lib/Padre/Wx/Dialog/Sync2.pm:67 #: lib/Padre/Wx/Dialog/Sync2.pm:75 #: lib/Padre/Wx/Dialog/Sync2.pm:89 #: lib/Padre/Wx/Dialog/Sync2.pm:108 #: lib/Padre/Wx/Dialog/Sync2.pm:132 #: lib/Padre/Wx/Dialog/Sync2.pm:143 #: lib/Padre/Wx/Dialog/Sync2.pm:153 #: lib/Padre/Wx/Dialog/Sync2.pm:171 #: lib/Padre/Wx/Dialog/Sync2.pm:182 #: lib/Padre/Wx/Dialog/Sync2.pm:193 #: lib/Padre/Wx/Dialog/Sync2.pm:204 #: lib/Padre/Wx/Dialog/PerlFilter.pm:274 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:90 #: lib/Padre/Wx/Dialog/Sync.pm:447 #: lib/Padre/Wx/Dialog/Sync.pm:455 #: lib/Padre/Wx/Dialog/Sync.pm:469 #: lib/Padre/Wx/Dialog/Sync.pm:493 #: lib/Padre/Wx/Dialog/Sync.pm:517 #: lib/Padre/Wx/Dialog/Sync.pm:528 #: lib/Padre/Wx/Dialog/Sync.pm:538 #: lib/Padre/Wx/Dialog/Sync.pm:556 #: lib/Padre/Wx/Dialog/Sync.pm:567 #: lib/Padre/Wx/Dialog/Sync.pm:578 #: lib/Padre/Wx/Dialog/Sync.pm:589 #: lib/Padre/Wx/Dialog/OpenResource.pm:118 msgid "Error" msgstr "错误" #: lib/Padre/File/FTP.pm:124 #, perl-format msgid "Error connecting to %s:%s: %s" msgstr "连接到 %s:%s 时错误: %s" #: lib/Padre/Wx/Main.pm:5136 msgid "Error loading perl filter dialog." msgstr "载入 perl 过滤器对话框时出错" #: lib/Padre/Wx/Dialog/PluginManager.pm:245 #, perl-format msgid "Error loading pod for class '%s': %s" msgstr "为类 '%s' 载入 pod 时错误: %s" #: lib/Padre/Wx/Main.pm:5107 msgid "Error loading regex editor." msgstr "载入正则表达式编辑器时出错。" #: lib/Padre/File/FTP.pm:144 #, perl-format msgid "Error logging in on %s:%s: %s" msgstr "登录 %s:%s 时错误: %s" #: lib/Padre/Wx/Main.pm:6559 #, perl-format msgid "" "Error returned by filter tool:\n" "%s" msgstr "" "过滤工具返回错误:\n" "%s" #: lib/Padre/Wx/Main.pm:6544 #, perl-format msgid "" "Error running filter tool:\n" "%s" msgstr "" "运行过滤工具错误:\n" "%s" #: lib/Padre/PluginManager.pm:943 msgid "Error when calling menu for plug-in " msgstr "为插件调出菜单出错" #: lib/Padre/Wx/Dialog/HelpSearch.pm:81 #: lib/Padre/Wx/Dialog/HelpSearch.pm:307 #: lib/Padre/Wx/Dialog/HelpSearch.pm:325 #, perl-format msgid "Error while calling %s %s" msgstr "调用 %s 时错误: %s" #: lib/Padre/Document.pm:281 msgid "" "Error while determining MIME type.\n" "This is possibly an encoding problem.\n" "Are you trying to load a binary file?" msgstr "" "判断 MIME 类型时错误。\n" "这可能是一个编码问题。\n" "您正在试图加载一个二进制文件吗?" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:126 #, perl-format msgid "Error while loading %s" msgstr "载入 %s 时错误" #: lib/Padre/Plugin/Devel.pm:248 msgid "Error while loading Aspect, is it installed?" msgstr "加载 Aspect 失败, 它被安装了吗?" #: lib/Padre/Document.pm:231 msgid "Error while opening file: no file object" msgstr "文件打开错误: 不存在文件对象" #: lib/Padre/PPI/EndifyPod.pm:38 msgid "Error while searching for POD" msgstr "查找 POD 时出错" #: lib/Padre/Wx/Dialog/OpenResource.pm:117 msgid "Error while trying to perform Padre action" msgstr "试图运行 Padre 动作时出错" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:89 #, perl-format msgid "Error while trying to perform Padre action: %s" msgstr "试图运行 Padre 动作时出错: %s" #: lib/Padre/Document/Perl.pm:430 msgid "Error: " msgstr "错误: " #: lib/Padre/Wx/Main.pm:5665 #: lib/Padre/Plugin/Devel.pm:334 #, perl-format msgid "Error: %s" msgstr "错误: %s" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "Escape" msgstr "Escape" #: lib/Padre/Wx/ActionLibrary.pm:2177 msgid "Evaluate Expression..." msgstr "执行表达式..." #: lib/Padre/Config/Style.pm:35 msgid "Evening" msgstr "Evening" #: lib/Padre/Wx/ActionLibrary.pm:1991 msgid "Execute the next statement, enter subroutine if needed. (Start debugger if it is not yet running)" msgstr "执行下一条语句, 在必要时进入子程序。 (若调试器未运行则启动它)" #: lib/Padre/Wx/ActionLibrary.pm:2008 msgid "Execute the next statement. If it is a subroutine call, stop only after it returned. (Start debugger if it is not yet running)" msgstr "执行下一条语句, 如果它调用一个子程序, 只在它返回后停止。 (若调试器未运行则启动它)" #: lib/Padre/Wx/Main.pm:4380 msgid "Exist" msgstr "存在" #: lib/Padre/Wx/Dialog/Bookmarks.pm:31 msgid "Existing bookmarks:" msgstr "已有书签:" #: lib/Padre/Wx/Command.pm:81 msgid "" "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n" "\n" msgstr "" "试验特性. 在该页底部输入 '?' 将得到命令列表. 如果它不工作, 请抱怨 szabgab.\n" "\n" #: lib/Padre/Wx/Debugger.pm:440 msgid "Expr" msgstr "表达式" #: lib/Padre/Plugin/Devel.pm:120 #: lib/Padre/Plugin/Devel.pm:121 msgid "Expression" msgstr "表达式" #: lib/Padre/Wx/Debugger.pm:439 msgid "Expression:" msgstr "表达式:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:420 msgid "Extended (&x)" msgstr "稀疏(&x)" #: lib/Padre/Wx/Dialog/RegexEditor.pm:422 msgid "Extended regular expressions allow free formatting (whitespace is ignored) and comments" msgstr "括展正则表达式,允许自由的格式 (忽略空格) 与注释" #: lib/Padre/Wx/Dialog/Preferences.pm:879 msgid "External Tools" msgstr "外部工具" #: lib/Padre/Wx/ActionLibrary.pm:1826 msgid "Extract Subroutine" msgstr "提取子程序" #: lib/Padre/Wx/ActionLibrary.pm:1813 msgid "Extract Subroutine..." msgstr "提取子程序..." #: lib/Padre/File/FTP.pm:135 msgid "FTP Password" msgstr "FTP 密码" #: lib/Padre/Wx/Main.pm:4497 #, perl-format msgid "Failed to create path '%s'" msgstr "创建路径 '%s' 失败" #: lib/Padre/Wx/Main.pm:969 msgid "Failed to create server" msgstr "创建服务器失败" #: lib/Padre/PPI/EndifyPod.pm:60 msgid "Failed to delete POD fragment" msgstr "册除 POD 片段失败" #: lib/Padre/PluginHandle.pm:290 #, perl-format msgid "Failed to disable plug-in '%s': %s" msgstr "禁用插件 '%s' 失败: %s" #: lib/Padre/PluginHandle.pm:210 #, perl-format msgid "Failed to enable plug-in '%s': %s" msgstr "启用插件 '%s' 失败: %s" #: lib/Padre/Util/FileBrowser.pm:193 msgid "Failed to execute process\n" msgstr "启动进程失败\n" #: lib/Padre/Wx/ActionLibrary.pm:1193 msgid "Failed to find any matches" msgstr "无法找到任何匹配" #: lib/Padre/Wx/Main.pm:6173 #, perl-format msgid "Failed to find template file '%s'" msgstr "查找模板文件 '%s' 失败" #: lib/Padre/CPAN.pm:88 msgid "Failed to find your CPAN configuration" msgstr "查找您的 CPAN 配置文件错误" #: lib/Padre/PluginManager.pm:1004 #: lib/Padre/PluginManager.pm:1100 #, perl-format msgid "" "Failed to load the plug-in '%s'\n" "%s" msgstr "" "载入插件 '%s' 失败\n" "%s" #: lib/Padre/PPI/EndifyPod.pm:53 msgid "Failed to merge the POD fragments" msgstr "合并 POD 片段失败" #: lib/Padre/Wx/Main.pm:2729 #, perl-format msgid "Failed to start '%s' command" msgstr "启动 '%s' 命令失败" #: lib/Padre/Wx/Dialog/Advanced.pm:130 #: lib/Padre/Wx/Dialog/Advanced.pm:599 msgid "False" msgstr "假" #: lib/Padre/MimeTypes.pm:365 #: lib/Padre/MimeTypes.pm:375 msgid "Fast but might be out of date" msgstr "快速但是可能已过期" #: lib/Padre/Wx/Syntax.pm:49 msgid "Fatal Error" msgstr "致命错误" #: lib/Padre/Wx/Dialog/ModuleStart.pm:147 #, perl-format msgid "Field %s was missing. Module not created." msgstr "栏目 %s 缺失, 模块未建立" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:388 #: lib/Padre/Wx/Dialog/WindowList.pm:224 #: lib/Padre/Wx/Dialog/SpecialValues.pm:21 msgid "File" msgstr "文件(&F)" #: lib/Padre/Wx/Menu/File.pm:390 #, perl-format msgid "File %s not found." msgstr "文件 %s 找不到。" #: lib/Padre/Wx/Dialog/Preferences/File.pm:44 msgid "File access via FTP" msgstr "通过FTP访问文件" #: lib/Padre/Wx/Dialog/Preferences/File.pm:36 msgid "File access via HTTP" msgstr "通过 HTTP 访问文件" #: lib/Padre/Wx/Main.pm:4483 msgid "File already exists" msgstr "文件已存在" #: lib/Padre/Wx/Main.pm:4379 msgid "File already exists. Overwrite it?" msgstr "文件已存在。是否覆盖?" #: lib/Padre/Wx/Main.pm:4588 msgid "File changed on disk since last saved. Do you want to overwrite it?" msgstr "文件在上次保存后有更新。是否覆盖?" #: lib/Padre/Wx/Main.pm:4684 msgid "File changed. Do you want to save it?" msgstr "文件已更改。是否保存?" #: lib/Padre/Wx/ActionLibrary.pm:295 #: lib/Padre/Wx/ActionLibrary.pm:315 msgid "File is not in a project" msgstr "文件不在工程中" #: lib/Padre/Wx/Main.pm:3972 #, perl-format msgid "File name %s contains * or ? which are special chars on most computers. Skip?" msgstr "文件名 %s 里包含 * 或 ? (对于大多数电脑来说是特殊字符)。跳过?" #: lib/Padre/Wx/Main.pm:3992 #, perl-format msgid "File name %s does not exist on disk. Skip?" msgstr "文件名 %s 在磁盘中不存在. 跳过?" #: lib/Padre/Wx/Main.pm:4589 msgid "File not in sync" msgstr "文件未同步" #: lib/Padre/Wx/Dialog/Preferences.pm:159 msgid "File type:" msgstr "文件类型:" #: lib/Padre/Wx/ActionLibrary.pm:889 msgid "File..." msgstr "文件..." #: lib/Padre/Wx/Dialog/Advanced.pm:30 msgid "File/Directory" msgstr "文件或目录" #: lib/Padre/Wx/Dialog/DocStats.pm:39 msgid "Filename" msgstr "文件名" #: lib/Padre/Wx/Notebook.pm:55 msgid "Files" msgstr "文件" #: lib/Padre/Wx/Dialog/Preferences.pm:873 msgid "Files and Colors" msgstr "文件和颜色" #: lib/Padre/Wx/Dialog/FilterTool.pm:130 msgid "Filter command:" msgstr "过滤命令:" #: lib/Padre/Wx/ActionLibrary.pm:1101 msgid "Filter through External Tool..." msgstr "使用外部工具过滤..." #: lib/Padre/Wx/ActionLibrary.pm:1110 msgid "Filter through Perl..." msgstr "通过 Perl 过滤..." #: lib/Padre/Wx/Dialog/FilterTool.pm:30 msgid "Filter through tool" msgstr "通过工具过滤" #: lib/Padre/Wx/ActionLibrary.pm:1102 msgid "Filters the selection (or the whole document) through any external command." msgstr "通过外部过滤命令来过滤所选文本(或整个文档)" #: lib/Padre/Wx/FBP/FindInFiles.pm:125 #: lib/Padre/Wx/FBP/Find.pm:27 #: lib/Padre/Wx/Dialog/Replace.pm:218 msgid "Find" msgstr "查找" #: lib/Padre/Wx/FBP/Find.pm:113 msgid "Find All" msgstr "查找所有" #: lib/Padre/Wx/ActionLibrary.pm:1691 msgid "Find Method Declaration" msgstr "查找方法申明" #: lib/Padre/Wx/ActionLibrary.pm:1158 #: lib/Padre/Wx/ActionLibrary.pm:1214 #: lib/Padre/Wx/FBP/Find.pm:98 msgid "Find Next" msgstr "查找下一个" #: lib/Padre/Wx/ActionLibrary.pm:1225 msgid "Find Previous" msgstr "查找上一个" #: lib/Padre/Wx/FindResult.pm:88 #, perl-format msgid "Find Results (%s)" msgstr "查找结果 (%s)" #: lib/Padre/Wx/Dialog/Replace.pm:226 msgid "Find Text:" msgstr "查找文本:" #: lib/Padre/Wx/ActionLibrary.pm:1667 msgid "Find Unmatched Brace" msgstr "查找未匹配括号" #: lib/Padre/Wx/ActionLibrary.pm:1679 msgid "Find Variable Declaration" msgstr "查找变量申明" #: lib/Padre/Wx/ActionLibrary.pm:1239 msgid "Find a text and replace it" msgstr "查找并且替换" #: lib/Padre/Wx/Dialog/Replace.pm:50 msgid "Find and Replace" msgstr "查找并且替换" #: lib/Padre/Wx/ActionLibrary.pm:1251 msgid "Find in Fi&les..." msgstr "从文件中查找(&l)..." #: lib/Padre/Wx/FindInFiles.pm:320 #: lib/Padre/Wx/FBP/FindInFiles.pm:27 msgid "Find in Files" msgstr "在文件中查找" #: lib/Padre/Wx/ActionLibrary.pm:1215 msgid "Find next matching text using a toolbar-like dialog at the bottom of the editor" msgstr "使用编辑器㡳部类似工具栏的对话框, 找到下一个匹配文本" #: lib/Padre/Wx/ActionLibrary.pm:1226 msgid "Find previous matching text using a toolbar-like dialog at the bottom of the editor" msgstr "使用编辑器㡳部类似工具栏的对话框, 找到前一个匹配文本" #: lib/Padre/Wx/ActionLibrary.pm:1144 msgid "Find text or regular expressions using a traditional dialog" msgstr "使用传统对话框查找文本或正则表达式" #: lib/Padre/Wx/ActionLibrary.pm:1692 msgid "Find where the selected function was defined and put the focus there." msgstr "找出所选函数是在哪儿定义的, 并把焦点放在那儿" #: lib/Padre/Wx/ActionLibrary.pm:1680 msgid "Find where the selected variable was declared using \"my\" and put the focus there." msgstr "找出所选变量是在哪儿用 \"my\" 定义的, 并把焦点放在那儿" #: lib/Padre/Wx/Dialog/Search.pm:135 msgid "Find:" msgstr "查找:" #: lib/Padre/Document/Perl.pm:956 msgid "First character of selection does not seem to point at a token." msgstr "所选区域的首字符不是一个 token" #: lib/Padre/Wx/Editor.pm:1628 msgid "First character of selection must be a non-word character to align" msgstr "所选区域的首字符必须为非词组字符" #: lib/Padre/Wx/ActionLibrary.pm:1442 msgid "Fold all" msgstr "展开所有" #: lib/Padre/Wx/ActionLibrary.pm:1443 msgid "Fold all the blocks that can be folded (need folding to be enabled)" msgstr "折叠所有能折的代码块 (需要开启折叠功能)" #: lib/Padre/Wx/Menu/View.pm:174 msgid "Font Size" msgstr "文字大小" #: lib/Padre/Wx/ActionLibrary.pm:420 msgid "For new document try to guess the filename based on the file content and offer to save it." msgstr "对于新的文档, 根据文件内容尝试猜测文件名, 并试图保存。" #: lib/Padre/Wx/Syntax.pm:405 #, perl-format msgid "Found %d issue(s)" msgstr "发现 %d 个方案" #: lib/Padre/Wx/Syntax.pm:404 #, perl-format msgid "Found %d issue(s) in %s" msgstr "发现 %d 个方案于 %s" #: lib/Padre/Wx/Dialog/HelpSearch.pm:395 #, perl-format msgid "Found %s help topic(s)\n" msgstr "发现 %s 帮助主题\n" #: lib/Padre/Plugin/Devel.pm:311 #, perl-format msgid "Found %s unloaded modules" msgstr "发现 %s 个未载入的莫块" #: lib/Padre/Locale.pm:282 msgid "French" msgstr "法语" #: lib/Padre/Locale.pm:268 msgid "French (Canada)" msgstr "法语 (加拿大)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:28 msgid "Friend" msgstr "朋有" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:104 msgid "Function" msgstr "函数" #: lib/Padre/Wx/FunctionList.pm:234 msgid "Functions" msgstr "函数" #: lib/Padre/Wx/Dialog/ModuleStart.pm:20 #: lib/Padre/Wx/Dialog/ModuleStart.pm:40 msgid "GPL 2 or later" msgstr "GPL 2 或更高" #: lib/Padre/Locale.pm:186 msgid "German" msgstr "德语" #: lib/Padre/Wx/Dialog/RegexEditor.pm:425 msgid "Global (&g)" msgstr "全局(&g)" #: lib/Padre/Wx/ActionLibrary.pm:1584 #: lib/Padre/Wx/Dialog/Bookmarks.pm:57 msgid "Go to Bookmark" msgstr "跳转至书签" #: lib/Padre/Wx/ActionLibrary.pm:2553 msgid "Go to Command Line Window" msgstr "跳至命令行窗口" #: lib/Padre/Wx/ActionLibrary.pm:2494 msgid "Go to Functions Window" msgstr "跳至函数窗口" #: lib/Padre/Wx/ActionLibrary.pm:2564 msgid "Go to Main Window" msgstr "跳至主窗口" #: lib/Padre/Wx/ActionLibrary.pm:2520 msgid "Go to Outline Window" msgstr "跳至提纲窗口" #: lib/Padre/Wx/ActionLibrary.pm:2531 msgid "Go to Output Window" msgstr "跳至输出窗口" #: lib/Padre/Wx/ActionLibrary.pm:2542 msgid "Go to Syntax Check Window" msgstr "跳至语法检查窗口" #: lib/Padre/Wx/ActionLibrary.pm:2508 msgid "Go to Todo Window" msgstr "跳至待办(Todo)窗口" #: lib/Padre/Wx/Dialog/Goto.pm:39 msgid "Goto" msgstr "跳至" #: lib/Padre/Wx/ActionLibrary.pm:2453 msgid "Goto previous position" msgstr "跳转到之前的位置" #: lib/Padre/Wx/Dialog/RegexEditor.pm:124 msgid "Grouping constructs" msgstr "编组" #: lib/Padre/Wx/Dialog/Preferences.pm:274 msgid "Guess" msgstr "猜测" #: lib/Padre/Wx/Dialog/Preferences.pm:273 msgid "Guess from current document:" msgstr "从当前文档猜测:" #: lib/Padre/Locale.pm:292 msgid "Hebrew" msgstr "希伯来语" #: lib/Padre/Wx/ActionLibrary.pm:2578 #: lib/Padre/Wx/Browser.pm:64 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:398 msgid "Help" msgstr "帮助" #: lib/Padre/Wx/Dialog/HelpSearch.pm:39 #: lib/Padre/Wx/Dialog/HelpSearch.pm:96 msgid "Help Search" msgstr "帮助搜索" #: lib/Padre/Wx/ActionLibrary.pm:2691 msgid "Help by translating Padre to your local language" msgstr "帮助我们翻译 Padre 到您的本地语言" #: lib/Padre/Wx/Browser.pm:444 msgid "Help not found." msgstr "找不到帮助." #: lib/Padre/Wx/Dialog/RegexEditor.pm:97 msgid "Hexadecimal digits" msgstr "十六进制数字" #: lib/Padre/Wx/ActionLibrary.pm:1374 msgid "Hide Find in Files" msgstr "隐藏文件中的查找" #: lib/Padre/Wx/ActionLibrary.pm:1375 msgid "Hide the list of matches for a Find in Files search" msgstr "对文件中的查找隐藏匹配列表" #: lib/Padre/Wx/ActionLibrary.pm:1477 msgid "Highlight the line where the cursor is" msgstr "高亮显示光标所在行" #: lib/Padre/Wx/Dialog/Preferences.pm:162 msgid "Highlighter:" msgstr "加亮器:" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Home" msgstr "Home" #: lib/Padre/MimeTypes.pm:389 msgid "Hopefully faster than the PPI Traditional. Big file will fall back to Scintilla highlighter." msgstr "比原来的 PPI 要快一点。大文件将返回到原始的 Scintilla 加亮。" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "Host" msgstr "主机" #: lib/Padre/Wx/Main.pm:5893 msgid "How many spaces for each tab:" msgstr "一个制表符转为多个个空格:" #: lib/Padre/Locale.pm:302 msgid "Hungarian" msgstr "匈牙利语" #: lib/Padre/Wx/ActionLibrary.pm:1293 msgid "If activated, do not allow moving around some of the windows" msgstr "若激活,将不允许移动一些窗口" #: lib/Padre/Wx/ActionLibrary.pm:2025 msgid "If within a subroutine, run till return is called and then stop." msgstr "如果在一个子程序内, 运行到它返回然后停止。" # do not want to see too many brackets.. :( #: lib/Padre/Wx/Dialog/RegexEditor.pm:408 msgid "Ignore case (&i)" msgstr "忽略大小写(&i)" #: lib/Padre/Wx/ActionLibrary.pm:2481 msgid "Imitate clicking on the right mouse button" msgstr "模仿鼠标右键点击" #: lib/Padre/Wx/ActionLibrary.pm:1540 msgid "Increase Font Size" msgstr "增大字号" #: lib/Padre/Config.pm:741 msgid "Indent Deeply" msgstr "深度缩进" #: lib/Padre/Config.pm:740 msgid "Indent to Same Depth" msgstr "缩进到相同深度" #: lib/Padre/Wx/Dialog/Preferences.pm:876 msgid "Indentation" msgstr "缩进" #: lib/Padre/Wx/Dialog/Preferences.pm:270 msgid "Indentation width (in columns):" msgstr "缩进宽度 (以列算):" #: lib/Padre/Wx/Dialog/Preferences.pm:446 msgid "Indication if current file was modified" msgstr "若当前文件被修改则提示" #: lib/Padre/Wx/Menu/Edit.pm:121 #: lib/Padre/Wx/Dialog/PerlFilter.pm:94 #: lib/Padre/Wx/Dialog/RegexEditor.pm:233 #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Insert" msgstr "插入" #: lib/Padre/Wx/Dialog/SpecialValues.pm:63 msgid "Insert Special Values" msgstr "插入特殊值" #: lib/Padre/Wx/ActionLibrary.pm:2351 msgid "Install CPAN Module" msgstr "安装 CPAN 模块" #: lib/Padre/CPAN.pm:133 #: lib/Padre/Wx/ActionLibrary.pm:2364 msgid "Install Local Distribution" msgstr "安装本地包" #: lib/Padre/Wx/ActionLibrary.pm:2374 msgid "Install Remote Distribution" msgstr "安装远程包" #: lib/Padre/Wx/ActionLibrary.pm:2352 msgid "Install a Perl module from CPAN" msgstr "安装 CPAN 模块" #: lib/Padre/Wx/Dialog/Advanced.pm:28 msgid "Integer" msgstr "整数" #: lib/Padre/Wx/Syntax.pm:55 msgid "Internal Error" msgstr "内部错误" #: lib/Padre/Wx/Main.pm:5666 msgid "Internal error" msgstr "内部错误" #: lib/Padre/Wx/Dialog/Preferences.pm:739 #: lib/Padre/Wx/Dialog/Preferences.pm:789 msgid "Interpreter arguments:" msgstr "解释器参数" #: lib/Padre/Wx/ActionLibrary.pm:1849 msgid "Introduce Temporary Variable" msgstr "引入临时变量" #: lib/Padre/Wx/ActionLibrary.pm:1840 msgid "Introduce Temporary Variable..." msgstr "引入临时变量..." #: lib/Padre/Locale.pm:316 msgid "Italian" msgstr "意大利语" #: lib/Padre/Locale.pm:326 msgid "Japanese" msgstr "日语" #: lib/Padre/Wx/Main.pm:3911 msgid "JavaScript Files" msgstr "JavaScript 文件" #: lib/Padre/Wx/ActionLibrary.pm:854 msgid "Join the next line to the end of the current line." msgstr "合并下一行至当前行尾." #: lib/Padre/Wx/ActionLibrary.pm:2443 msgid "Jump between the two last visited files back and forth" msgstr "在两个最后访问过的文件间来回跳转" #: lib/Padre/Wx/ActionLibrary.pm:2055 msgid "Jump to Current Execution Line" msgstr "跳至当前执行的语句" #: lib/Padre/Wx/ActionLibrary.pm:743 msgid "Jump to a specific line number or character position" msgstr "跳至指定的行号或字符位置" #: lib/Padre/Wx/ActionLibrary.pm:754 msgid "Jump to the code that triggered the next error" msgstr "跳到触发了下一条错误的代码" #: lib/Padre/Wx/ActionLibrary.pm:2454 msgid "Jump to the last position saved in memory" msgstr "跳至保存在内存中的最后位置" #: lib/Padre/Wx/ActionLibrary.pm:831 msgid "Jump to the matching opening or closing brace: { }, ( ), [ ], < >" msgstr "跳到匹配的左/右括号: { }, ( ), [ ], < >" #: lib/Padre/Wx/ActionLibrary.pm:2228 #: lib/Padre/Wx/Dialog/KeyBindings.pm:29 msgid "Key Bindings" msgstr "按键组合" #: lib/Padre/Wx/Dialog/DocStats.pm:118 msgid "Kibibytes (kiB)" msgstr "Kibibytes (kiB)" #: lib/Padre/Wx/Dialog/DocStats.pm:114 msgid "Kilobytes (kB)" msgstr "Kilobytes (kB)" #: lib/Padre/Locale.pm:464 msgid "Klingon" msgstr "克林贡语" #: lib/Padre/Locale.pm:336 msgid "Korean" msgstr "韩语" #: lib/Padre/Wx/Dialog/ModuleStart.pm:21 #: lib/Padre/Wx/Dialog/ModuleStart.pm:41 msgid "LGPL 2.1 or later" msgstr "LGPL 2.1 或更高" #: lib/Padre/Wx/Dialog/Form.pm:41 msgid "Label One" msgstr "标签一" #: lib/Padre/Wx/Menu/View.pm:245 msgid "Language" msgstr "语言" #: lib/Padre/Wx/ActionLibrary.pm:2396 #: lib/Padre/Wx/ActionLibrary.pm:2442 msgid "Last Visited File" msgstr "最近访问的文件" #: lib/Padre/Wx/Dialog/SessionManager.pm:228 msgid "Last update" msgstr "最后更新" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Left" msgstr "下" #: lib/Padre/Wx/Dialog/ModuleStart.pm:67 msgid "License:" msgstr "许可证:" #: lib/Padre/Wx/ActionLibrary.pm:1718 msgid "Like pressing ENTER somewhere on a line, but use the current position as ident for the new line." msgstr "就像在一行中某个位置按下回车, 但使用当前位置作为下一行的缩进" #: lib/Padre/Wx/FindResult.pm:177 msgid "Line" msgstr "行" #: lib/Padre/Wx/Syntax.pm:426 #, perl-format msgid "Line %d: (%s) %s" msgstr "行 %d: (%s) %s" #: lib/Padre/Wx/Dialog/DocStats.pm:129 msgid "Line break mode" msgstr "断行模式" #: lib/Padre/Wx/Dialog/Goto.pm:88 #: lib/Padre/Wx/Dialog/Goto.pm:193 #: lib/Padre/Wx/Dialog/Goto.pm:232 #: lib/Padre/Wx/Dialog/Goto.pm:251 msgid "Line number" msgstr "行号" #: lib/Padre/Wx/Dialog/DocStats.pm:98 msgid "Lines" msgstr "行" #: lib/Padre/Wx/ActionLibrary.pm:2101 msgid "List All Breakpoints" msgstr "列出所有断点" #: lib/Padre/Wx/ActionLibrary.pm:2102 msgid "List all the breakpoints on the console" msgstr "在控制台列出所有断点" #: lib/Padre/Wx/Dialog/WindowList.pm:211 msgid "List of open files" msgstr "列出打开的文件" #: lib/Padre/Wx/Dialog/SessionManager.pm:214 msgid "List of sessions" msgstr "会话列表" #: lib/Padre/Wx/ActionLibrary.pm:444 msgid "List the files that match the current selection and let the user pick one to open" msgstr "列出符合当前选择的文件, 然后让用户选择某个以打开" #: lib/Padre/Wx/Menu/Help.pm:60 msgid "Live Support" msgstr "在线支持" #: lib/Padre/Plugin/Devel.pm:83 msgid "Load All Padre Modules" msgstr "载入所有 Padre 模块" #: lib/Padre/Plugin/Devel.pm:323 #, perl-format msgid "Loaded %s modules" msgstr "载入了 %s 个模块" #: lib/Padre/Wx/Dialog/Preferences.pm:18 msgid "Local/Remote File Access" msgstr "本地/远程文件访问" #: lib/Padre/Wx/ActionLibrary.pm:1292 msgid "Lock User Interface" msgstr "锁定用户界面" #: lib/Padre/Wx/FBP/Sync.pm:54 msgid "Logged out" msgstr "己登出" #: lib/Padre/File/FTP.pm:141 #, perl-format msgid "Logging into FTP server as %s..." msgstr "正在作为 %s 登录 FTP 服务器..." #: lib/Padre/Wx/FBP/Sync.pm:97 msgid "Login" msgstr "登录" #: lib/Padre/File/FTP.pm:43 msgid "Looking for Net::FTP..." msgstr "正在查找 Net::FTP..." #: lib/Padre/Wx/ActionLibrary.pm:1058 msgid "Lower All" msgstr "全部小写" #: lib/Padre/Wx/Dialog/RegexEditor.pm:91 msgid "Lowercase characters" msgstr "小写字符" #: lib/Padre/Wx/Dialog/ModuleStart.pm:22 #: lib/Padre/Wx/Dialog/ModuleStart.pm:42 msgid "MIT License" msgstr "MIT 许可证" #: lib/Padre/Wx/ActionLibrary.pm:1541 msgid "Make the letters bigger in the editor window" msgstr "增大编辑窗中的字符" #: lib/Padre/Wx/ActionLibrary.pm:1551 msgid "Make the letters smaller in the editor window" msgstr "缩小编辑窗中的字符" #: lib/Padre/Wx/ActionLibrary.pm:613 msgid "Mark Selection End" msgstr "标记选区结束" #: lib/Padre/Wx/ActionLibrary.pm:601 msgid "Mark Selection Start" msgstr "标记选区开始" #: lib/Padre/Wx/ActionLibrary.pm:614 msgid "Mark the place where the selection should end" msgstr "标记选择区的终止位置" #: lib/Padre/Wx/ActionLibrary.pm:602 msgid "Mark the place where the selection should start" msgstr "标记选择区的起始位置" #: lib/Padre/Wx/Dialog/RegexEditor.pm:103 msgid "Match 0 or more times" msgstr "匹配 0 次或更多" #: lib/Padre/Wx/Dialog/RegexEditor.pm:105 msgid "Match 1 or 0 times" msgstr "匹配 1 次或 0 次" #: lib/Padre/Wx/Dialog/RegexEditor.pm:104 msgid "Match 1 or more times" msgstr "匹配 1 次或更多" #: lib/Padre/Wx/Dialog/RegexEditor.pm:108 msgid "Match at least m but not more than n times" msgstr "匹配至少 m 次, 但不多于 n 次" #: lib/Padre/Wx/Dialog/RegexEditor.pm:107 msgid "Match at least n times" msgstr "匹配至少 m 次" #: lib/Padre/Wx/Dialog/RegexEditor.pm:106 msgid "Match exactly m times" msgstr "匹配 m 次" #: lib/Padre/Wx/Dialog/RegexEditor.pm:617 #, perl-format msgid "Match failure in %s: %s" msgstr "在 %s 中匹配失败: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:624 #, perl-format msgid "Match warning in %s: %s" msgstr "在 %s 中匹配警告: %s" #: lib/Padre/Wx/Dialog/RegexEditor.pm:218 msgid "Matched text:" msgstr "匹配的文本:" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:57 msgid "Max. number of suggestions:" msgstr "提示的最大数量:" #: lib/Padre/Wx/Role/Dialog.pm:69 #: lib/Padre/Wx/Role/Dialog.pm:141 msgid "Message" msgstr "提示" #: lib/Padre/Wx/Outline.pm:359 msgid "Methods" msgstr "方法" #: lib/Padre/Wx/Dialog/Preferences.pm:339 msgid "Methods order:" msgstr "函数顺序" #: lib/Padre/MimeTypes.pm:425 #, perl-format msgid "Mime type already had a class '%s' when %s(%s) was called" msgstr "类'%s'已拥有mime类型, 当 %s(%s) 被调用" #: lib/Padre/MimeTypes.pm:451 #, perl-format msgid "Mime type did not have a class entry when %s(%s) was called" msgstr "Mime类型没有一类入口,当 %s(%s) 被调用" #: lib/Padre/MimeTypes.pm:441 #: lib/Padre/MimeTypes.pm:467 #, perl-format msgid "Mime type is not supported when %s(%s) was called" msgstr "mime类型不被支持, 当 %s(%s) 被调用" #: lib/Padre/MimeTypes.pm:415 #, perl-format msgid "Mime type was not supported when %s(%s) was called" msgstr "mime类型未被支持, 当 %s(%s) 被调用" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:60 msgid "Min. chars for autocompletion:" msgstr "自动填充的最小字符数" #: lib/Padre/Wx/Dialog/Preferences/PerlAutoComplete.pm:52 msgid "Min. length of suggestions:" msgstr "提示的最小长度:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:112 msgid "Miscellaneous" msgstr "杂项" #: lib/Padre/Wx/WizardLibrary.pm:20 msgid "Module" msgstr "模块" #: lib/Padre/Wx/Dialog/ModuleStart.pm:55 msgid "Module Name:" msgstr "模块名:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:97 msgid "Module Start" msgstr "模块开始" #: lib/Padre/Wx/Menu/Tools.pm:65 msgid "Module Tools" msgstr "模块工具" #: lib/Padre/Util/Template.pm:53 msgid "Module name:" msgstr "模块名:" #: lib/Padre/Wx/Outline.pm:358 msgid "Modules" msgstr "模块" #: lib/Padre/Wx/ActionLibrary.pm:1863 msgid "Move POD to __END__" msgstr "移动 POD 至 __END__" #: lib/Padre/Wx/Directory.pm:114 msgid "Move to other panel" msgstr "移动到其他面板" #: lib/Padre/Wx/Dialog/ModuleStart.pm:23 #: lib/Padre/Wx/Dialog/ModuleStart.pm:43 msgid "Mozilla Public License" msgstr "Mozilla 公共许可证" #: lib/Padre/Wx/Dialog/RegexEditor.pm:416 msgid "Multi-line (&m)" msgstr "多行(&m)" #: lib/Padre/Wx/ActionLibrary.pm:2286 msgid "My Plug-in is a plug-in where developers could extend their Padre installation" msgstr "\"My Plug-in\" 是一个插件, 开发者能用它括展 Padre 的安装" #: lib/Padre/Wx/Dialog/Preferences.pm:759 msgid "N/A" msgstr "N/A" #: lib/Padre/Wx/Browser.pm:465 msgid "NAME" msgstr "名字" #: lib/Padre/Wx/Dialog/PluginManager.pm:66 #: lib/Padre/Wx/Dialog/SpecialValues.pm:25 #: lib/Padre/Wx/Dialog/SessionManager.pm:226 msgid "Name" msgstr "名字:" #: lib/Padre/Wx/ActionLibrary.pm:1825 msgid "Name for the new subroutine" msgstr "新子程序的名称" #: lib/Padre/Wx/Dialog/Preferences.pm:447 msgid "Name of the current subroutine" msgstr "当前的子程序名称" #: lib/Padre/Wx/Dialog/Snippets.pm:112 msgid "Name:" msgstr "名字:" #: lib/Padre/Wx/Main.pm:6401 msgid "Need to select text in order to translate to hex" msgstr "请选择文本来显示为十六进制" #: lib/Padre/Wx/Dialog/RegexEditor.pm:129 msgid "Negative lookahead assertion" msgstr "前(右)视否定断言" #: lib/Padre/Wx/Dialog/RegexEditor.pm:131 msgid "Negative lookbehind assertion" msgstr "后(左)视否定断言" #: lib/Padre/Wx/Menu/File.pm:43 msgid "New" msgstr "新建" #: lib/Padre/Util/Template.pm:53 msgid "New Module" msgstr "新模块" #: lib/Padre/Document/Perl.pm:829 msgid "New name" msgstr "新名称" #: lib/Padre/PluginManager.pm:412 msgid "New plug-ins detected" msgstr "发现新插件" #: lib/Padre/Wx/ActionLibrary.pm:1716 msgid "Newline Same Column" msgstr "相同列上插入一行" #: lib/Padre/Wx/ActionLibrary.pm:2418 msgid "Next File" msgstr "下一个文件" #: lib/Padre/Config/Style.pm:36 msgid "Night" msgstr "Night" #: lib/Padre/Config.pm:739 msgid "No Autoindent" msgstr "无自动缩进" #: lib/Padre/Wx/Main.pm:2477 msgid "No Build.PL nor Makefile.PL nor dist.ini found" msgstr "既没有发现 Build.PL 也没有 Makefile.PL 或 dist.ini" #: lib/Padre/Wx/Dialog/Preferences.pm:778 msgid "No Document" msgstr "没有文档" #: lib/Padre/Wx/Dialog/HelpSearch.pm:93 msgid "No Help found" msgstr "找不到任何帮助" #: lib/Padre/Plugin/Devel.pm:170 msgid "No Perl 5 file is open" msgstr "没有 Perl 5 打开文件" # !!!!! not sure, thx for daxim to point out #: lib/Padre/Document/Perl.pm:577 msgid "No declaration could be found for the specified (lexical?) variable" msgstr "未能发现此变量的声明" # !!!!! not sure, thx for daxim to point out #: lib/Padre/Document/Perl.pm:909 msgid "No declaration could be found for the specified (lexical?) variable." msgstr "未能找到此变量的声明" #: lib/Padre/Wx/Main.pm:2444 #: lib/Padre/Wx/Main.pm:2499 #: lib/Padre/Wx/Main.pm:2551 msgid "No document open" msgstr "没有打开文档" #: lib/Padre/Document/Perl.pm:432 msgid "No errors found." msgstr "找不到任何错误" #: lib/Padre/Wx/Syntax.pm:392 #, perl-format msgid "No errors or warnings found in %s." msgstr "在 %s 中未发现错误或警告 " #: lib/Padre/Wx/Syntax.pm:395 msgid "No errors or warnings found." msgstr "找不到任何错误或警告" #: lib/Padre/Wx/Main.pm:2772 msgid "No execution mode was defined for this document type" msgstr "未定义该文件的执行模式" #: lib/Padre/Wx/Main.pm:5859 #: lib/Padre/Plugin/Devel.pm:149 msgid "No file is open" msgstr "没有打开文件" #: lib/Padre/PluginManager.pm:979 #: lib/Padre/Util/FileBrowser.pm:47 #: lib/Padre/Util/FileBrowser.pm:87 #: lib/Padre/Util/FileBrowser.pm:135 msgid "No filename" msgstr "没有文件名" #: lib/Padre/Wx/Dialog/RegexEditor.pm:645 msgid "No match" msgstr "无任何匹配" #: lib/Padre/Wx/Dialog/Find.pm:75 #: lib/Padre/Wx/Dialog/Replace.pm:537 #: lib/Padre/Wx/Dialog/Replace.pm:586 #, perl-format msgid "No matches found for \"%s\"." msgstr "找不到 \"%s\" 的匹配。" #: lib/Padre/Document.pm:325 #, perl-format msgid "No module mime_type='%s' filename='%s'" msgstr "没有模块 mime类型='%s' 文件名='%s'" #: lib/Padre/Wx/Main.pm:2754 msgid "No open document" msgstr "没有打开文档" #: lib/Padre/Config.pm:413 msgid "No open files" msgstr "没有打开文件" #: lib/Padre/Wx/FindInFiles.pm:223 #, perl-format msgid "No results found for '%s' inside '%s'" msgstr "没有找到 '%s' 位于 '%s'" #: lib/Padre/Wx/Main.pm:770 #, perl-format msgid "No such session %s" msgstr "没有该会话 %s" #: lib/Padre/Wx/ActionLibrary.pm:790 msgid "No suggestions" msgstr "没有建议" #: lib/Padre/Wx/Dialog/RegexEditor.pm:127 msgid "Non-capturing group" msgstr "非捕获组" #: lib/Padre/Wx/Dialog/DocStats.pm:110 msgid "Non-whitespace characters" msgstr "非空白字符" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "None" msgstr "None" #: lib/Padre/Locale.pm:370 msgid "Norwegian" msgstr "挪威语" #: lib/Padre/Wx/Debugger.pm:82 msgid "Not a Perl document" msgstr "不是一个 Perl 文档" #: lib/Padre/Wx/Dialog/Goto.pm:200 #: lib/Padre/Wx/Dialog/Goto.pm:263 msgid "Not a positive number!" msgstr "不是个正数!" #: lib/Padre/Wx/Dialog/RegexEditor.pm:119 msgid "Not a word boundary" msgstr "非词语边界" #: lib/Padre/Config/Style.pm:38 msgid "Notepad++" msgstr "Notepad++" #: lib/Padre/Wx/Main.pm:3747 msgid "Nothing selected. Enter what should be opened:" msgstr "无选区。请输入需要打开的:" #: lib/Padre/Wx/Dialog/SpecialValues.pm:16 msgid "Now" msgstr "现在" #: lib/Padre/Wx/Dialog/SpecialValues.pm:30 msgid "Number of lines" msgstr "行数" #: lib/Padre/Wx/FBP/WhereFrom.pm:54 msgid "OK" msgstr "确定" #: lib/Padre/Wx/ActionLibrary.pm:820 msgid "Offer completions to the current string. See Preferences" msgstr "提供对当前字符串的补全. 请看使用偏好" #: lib/Padre/Wx/ActionLibrary.pm:2407 msgid "Oldest Visited File" msgstr "最久前访问的文件" #: lib/Padre/PPI/EndifyPod.pm:46 msgid "Only one POD fragment, will not try to merge" msgstr "只有一个 POD 片段,不尝试合并" #: lib/Padre/Wx/Outline.pm:235 msgid "Open &Documentation" msgstr "打开文档(&D)" #: lib/Padre/Wx/ActionLibrary.pm:217 msgid "Open &URL..." msgstr "打开网址(&U)..." #: lib/Padre/Wx/ActionLibrary.pm:500 msgid "Open All Recent Files" msgstr "打开所有最近文件" #: lib/Padre/Wx/ActionLibrary.pm:2384 msgid "Open CPAN Config File" msgstr "打开 CPAN 配置文件" #: lib/Padre/Wx/ActionLibrary.pm:2385 msgid "Open CPAN::MyConfig.pm for manual editing by experts" msgstr "打开 CPAN::MyConfig.pm 手动编辑" #: lib/Padre/Wx/ActionLibrary.pm:262 msgid "Open Example" msgstr "打开例子" #: lib/Padre/Wx/Main.pm:3935 #: lib/Padre/Wx/Directory/TreeCtrl.pm:210 msgid "Open File" msgstr "打开文件" #: lib/Padre/Wx/Dialog/OpenResource.pm:30 #: lib/Padre/Wx/Dialog/OpenResource.pm:76 msgid "Open Resources" msgstr "打开资源" #: lib/Padre/Wx/ActionLibrary.pm:1265 msgid "Open Resources..." msgstr "打开资源..." #: lib/Padre/Wx/ActionLibrary.pm:443 msgid "Open Selection" msgstr "打开所选" #: lib/Padre/Wx/ActionLibrary.pm:453 msgid "Open Session..." msgstr "打开会话..." #: lib/Padre/Wx/Dialog/ModuleStart.pm:24 #: lib/Padre/Wx/Dialog/ModuleStart.pm:44 msgid "Open Source" msgstr "开源" #: lib/Padre/Wx/Dialog/OpenURL.pm:37 msgid "Open URL" msgstr "打开网址" #: lib/Padre/Wx/Main.pm:3975 #: lib/Padre/Wx/Main.pm:3995 msgid "Open Warning" msgstr "打开警告" #: lib/Padre/Wx/ActionLibrary.pm:151 msgid "Open a document with a skeleton Perl 5 module" msgstr "新建一个具有 Perl 5 模块骨架的文档" #: lib/Padre/Wx/ActionLibrary.pm:142 msgid "Open a document with a skeleton Perl 5 script" msgstr "新建一个具有 Perl 5 脚本骨架的文档" #: lib/Padre/Wx/ActionLibrary.pm:160 msgid "Open a document with a skeleton Perl 5 test script" msgstr "新建一个具有 Perl 5 测试骨架的文档" #: lib/Padre/Wx/ActionLibrary.pm:171 msgid "Open a document with a skeleton Perl 6 script" msgstr "新建一个具有 Perl 6 脚本骨架的文档" #: lib/Padre/Wx/ActionLibrary.pm:218 msgid "Open a file from a remote location" msgstr "打开一个处在远程的文件" #: lib/Padre/Wx/ActionLibrary.pm:131 msgid "Open a new empty document" msgstr "打开一个新的空白文档" #: lib/Padre/Wx/ActionLibrary.pm:501 msgid "Open all the files listed in the recent files list" msgstr "打开所有列在“最近的文件”列表中的文件" #: lib/Padre/Wx/ActionLibrary.pm:2277 msgid "Open browser to a CPAN search showing the Padre::Plugin packages" msgstr "打开浏览器跳至 CPAN 搜索, 显示 Padre::Plugin 包" #: lib/Padre/Wx/Menu/File.pm:391 msgid "Open cancelled" msgstr "打开已取消" #: lib/Padre/PluginManager.pm:1054 #: lib/Padre/Wx/Main.pm:5546 msgid "Open file" msgstr "打开文件" #: lib/Padre/Wx/Dialog/Preferences.pm:335 msgid "Open files in existing Padre" msgstr "在已运行 Padre 中打开文件" #: lib/Padre/Wx/Dialog/Preferences.pm:326 msgid "Open files:" msgstr "打开文件:" #: lib/Padre/Wx/ActionLibrary.pm:252 msgid "Open in Command Line" msgstr "在命令行中打开" #: lib/Padre/Wx/ActionLibrary.pm:228 #: lib/Padre/Wx/Directory/TreeCtrl.pm:218 msgid "Open in File Browser" msgstr "在浏览器中打开文件" #: lib/Padre/Wx/ActionLibrary.pm:2663 msgid "Open perlmonks.org, one of the biggest Perl community sites, in your default web browser" msgstr "在您的默认浏览器中打开 perlmonks.org (最大的 Perl 社区站点之一)" #: lib/Padre/Wx/Main.pm:3748 msgid "Open selection" msgstr "打开所选" #: lib/Padre/Config.pm:414 msgid "Open session" msgstr "打开会话" #: lib/Padre/Wx/ActionLibrary.pm:2625 msgid "Open the Padre live support chat in your web browser and talk to others who may help you with your problem" msgstr "在您的浏览器中打开 Padre 在线支持, 与能帮您处理难题的人交谈" #: lib/Padre/Wx/ActionLibrary.pm:2637 msgid "Open the Perl live support chat in your web browser and talk to others who may help you with your problem" msgstr "在您的浏览器中打开 Perl 在线支持, 与能帮您处理难题的人交谈" #: lib/Padre/Wx/ActionLibrary.pm:2649 msgid "Open the Perl/Win32 live support chat in your web browser and talk to others who may help you with your problem" msgstr "在您的浏览器中打开 Perl/Win32 在线支持, 与能帮您处理难题的人交谈" #: lib/Padre/Wx/ActionLibrary.pm:2238 msgid "Open the regular expression editing window" msgstr "打开正则表达式编辑窗口" #: lib/Padre/Wx/ActionLibrary.pm:2248 msgid "Open the selected text in the Regex Editor" msgstr "在正则表达式编辑器中打开所选文本" #: lib/Padre/Wx/ActionLibrary.pm:238 msgid "Open with Default System Editor" msgstr "用系统默认的编辑器打开" #: lib/Padre/Wx/Menu/File.pm:95 msgid "Open..." msgstr "打开(&O)..." #: lib/Padre/Wx/Main.pm:2883 #, perl-format msgid "Opening session %s..." msgstr "打开会员 %s..." #: lib/Padre/Wx/ActionLibrary.pm:253 msgid "Opens a command line using the current document folder" msgstr "使用当前文档所在的目录打开一个命令行" #: lib/Padre/Wx/WizardLibrary.pm:38 msgid "Opens the Padre document wizard" msgstr "打开 Padre 文档向导" #: lib/Padre/Wx/WizardLibrary.pm:30 msgid "Opens the Padre plugin wizard" msgstr "打开 Padre 插件向导" #: lib/Padre/Wx/WizardLibrary.pm:22 msgid "Opens the Perl 5 module wizard" msgstr "打开 Perl 5 模块向导" #: lib/Padre/Wx/ActionLibrary.pm:229 msgid "Opens the current document using the file browser" msgstr "用文件浏览器打开当前文档" #: lib/Padre/Wx/ActionLibrary.pm:241 msgid "Opens the file with the default system editor" msgstr "用系统默认的编辑器打开该文件" #: lib/Padre/Wx/Dialog/Replace.pm:304 msgid "Options" msgstr "选项" #: lib/Padre/Wx/Dialog/Advanced.pm:147 msgid "Options:" msgstr "选项:" #: lib/Padre/Wx/Dialog/PerlFilter.pm:74 msgid "Or&iginal text:" msgstr "原文本(&i):" #: lib/Padre/Wx/Dialog/WhereFrom.pm:31 msgid "Other (Please fill in here)" msgstr "其它(请在此填写)" #: lib/Padre/Wx/Dialog/WhereFrom.pm:27 msgid "Other event" msgstr "其它事件" #: lib/Padre/Wx/Dialog/WhereFrom.pm:24 msgid "Other search engine" msgstr "其它搜索引擎" #: lib/Padre/Wx/Dialog/Goto.pm:272 msgid "Out of range!" msgstr "超出范围!" #: lib/Padre/Wx/Outline.pm:110 #: lib/Padre/Wx/Outline.pm:312 msgid "Outline" msgstr "提纲" #: lib/Padre/Wx/Output.pm:196 msgid "Output" msgstr "输出" #: lib/Padre/Wx/Bottom.pm:52 msgid "Output View" msgstr "输出视图" #: lib/Padre/Wx/Dialog/KeyBindings.pm:392 msgid "Override Shortcut" msgstr "覆盖快捷键" #: lib/Padre/Wx/Main.pm:3915 msgid "PHP Files" msgstr "PHP 文件" #: lib/Padre/MimeTypes.pm:383 msgid "PPI Experimental" msgstr "实验性 PPI" #: lib/Padre/MimeTypes.pm:388 msgid "PPI Standard" msgstr "标准 PPI" #: lib/Padre/Wx/About.pm:59 #: lib/Padre/Wx/WizardLibrary.pm:29 #: lib/Padre/Wx/WizardLibrary.pm:37 #: lib/Padre/Wx/Dialog/Form.pm:98 #: lib/Padre/Config/Style.pm:34 msgid "Padre" msgstr "Padre" #: lib/Padre/Wx/Dialog/WhereFrom.pm:30 msgid "Padre Developer" msgstr "Padre 开发者" #: lib/Padre/Plugin/Devel.pm:30 msgid "Padre Developer Tools" msgstr "Padre 开发者工具" #: lib/Padre/Wx/Dialog/Wizard/Padre/Document.pm:16 msgid "Padre Document Wizard" msgstr "Padre 文档向导" #: lib/Padre/Wx/Dialog/Wizard/Padre/Plugin.pm:16 msgid "Padre Plugin Wizard" msgstr "Padre 插件向导" #: lib/Padre/Wx/ActionLibrary.pm:2623 msgid "Padre Support (English)" msgstr "Padre 支持 (英文)" #: lib/Padre/Wx/FBP/Sync.pm:25 #: lib/Padre/Wx/Dialog/Sync.pm:43 msgid "Padre Sync" msgstr "Padre 同步" #: lib/Padre/Wx/About.pm:105 msgid "Padre is free software; you can redistribute it and/or modify it under the same terms as Perl 5." msgstr "Padre 是一个自由软件; 您可以在与 Perl 5 相同的条款下再发布并且/或者俢改它。" #: lib/Padre/Wx/Dialog/Preferences.pm:438 msgid "Padre version" msgstr "Padre 版本" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageDown" msgstr "PageDown" #: lib/Padre/Wx/Dialog/KeyBindings.pm:101 msgid "PageUp" msgstr "PageUp" #: lib/Padre/Wx/Dialog/ModuleStart.pm:70 msgid "Parent Directory:" msgstr "父目录:" #: lib/Padre/Wx/FBP/Sync.pm:82 #: lib/Padre/Wx/FBP/Sync.pm:125 msgid "Password" msgstr "密码" #: lib/Padre/Wx/Dialog/Sync2.pm:142 #: lib/Padre/Wx/Dialog/Sync.pm:527 msgid "Password and confirmation do not match." msgstr "密码与确认值不匹配" #: lib/Padre/File/FTP.pm:131 #, perl-format msgid "Password for user '%s' at %s:" msgstr "用户 '%s' 在 '%s' 上的密码:" #: lib/Padre/Wx/ActionLibrary.pm:729 msgid "Paste the clipboard to the current location" msgstr "将剪贴板粘贴到目前位置" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:392 msgid "Perl" msgstr "&Perl" #: lib/Padre/Wx/WizardLibrary.pm:21 msgid "Perl 5" msgstr "Perl 5" #: lib/Padre/Wx/ActionLibrary.pm:150 msgid "Perl 5 Module" msgstr "Perl5 模块" #: lib/Padre/Wx/Dialog/Wizard/Perl/Module.pm:18 msgid "Perl 5 Module Wizard" msgstr "Perl5 模块向导" #: lib/Padre/Wx/ActionLibrary.pm:141 msgid "Perl 5 Script" msgstr "Perl5 脚本" #: lib/Padre/Wx/ActionLibrary.pm:159 msgid "Perl 5 Test" msgstr "Perl5 测试" #: lib/Padre/Wx/ActionLibrary.pm:170 msgid "Perl 6 Script" msgstr "Perl6 脚本" #: lib/Padre/Wx/Dialog/Preferences.pm:19 msgid "Perl Auto Complete" msgstr "Perl 自动完成" #: lib/Padre/Wx/ActionLibrary.pm:181 msgid "Perl Distribution..." msgstr "Perl 发行包..." #: lib/Padre/Wx/Main.pm:3913 msgid "Perl Files" msgstr "Perl 文件" #: lib/Padre/Wx/Dialog/PerlFilter.pm:33 msgid "Perl Filter" msgstr "Perl 过滤器" #: lib/Padre/Wx/ActionLibrary.pm:2635 msgid "Perl Help" msgstr "Perl 帮助" #: lib/Padre/Wx/Dialog/Preferences.pm:322 msgid "Perl beginner mode" msgstr "Perl 初学者模式" #: lib/Padre/Wx/Dialog/Preferences.pm:90 msgid "Perl ctags file:" msgstr "Perl ctags 文件:" #: lib/Padre/Wx/Dialog/Preferences.pm:736 msgid "Perl interpreter:" msgstr "Perl 解释器:" #: lib/Padre/Wx/Dialog/ModuleStart.pm:25 #: lib/Padre/Wx/Dialog/ModuleStart.pm:45 #: lib/Padre/Wx/Dialog/ModuleStart.pm:113 msgid "Perl licensing terms" msgstr "Perl 许可证条款" #: lib/Padre/Locale.pm:258 msgid "Persian (Iran)" msgstr "波斯语 (伊朗)" #: lib/Padre/Wx/Dialog/ModuleStart.pm:71 msgid "Pick parent directory" msgstr "选择父目录" #: lib/Padre/Wx/Dialog/Sync2.pm:131 #: lib/Padre/Wx/Dialog/Sync.pm:516 msgid "Please ensure all inputs have appropriate values." msgstr "请确保所有输入都有合理的值" #: lib/Padre/Wx/Dialog/Sync2.pm:88 #: lib/Padre/Wx/Dialog/Sync.pm:468 msgid "Please input a valid value for both username and password" msgstr "请输入有效的用户名与密码" #: lib/Padre/Wx/Progress.pm:76 msgid "Please wait..." msgstr "请等待..." #: lib/Padre/Wx/ActionLibrary.pm:2276 msgid "Plug-in List (CPAN)" msgstr "插件列表 (CPAN)" #: lib/Padre/Wx/ActionLibrary.pm:2260 #: lib/Padre/Wx/Dialog/PluginManager.pm:35 msgid "Plug-in Manager" msgstr "插件管理器" #: lib/Padre/Wx/Dialog/PluginManager.pm:102 msgid "Plug-in Name" msgstr "插件名称" #: lib/Padre/Wx/Menu/Tools.pm:103 msgid "Plug-in Tools" msgstr "插件工具" #: lib/Padre/PluginManager.pm:1074 #, perl-format msgid "Plug-in must have '%s' as base directory" msgstr "插件必须以 '%s' 为基础目录" #: lib/Padre/Wx/WizardLibrary.pm:28 msgid "Plugin" msgstr "插件" #: lib/Padre/PluginManager.pm:867 #, perl-format msgid "Plugin %s" msgstr "插件 %s" #: lib/Padre/PluginManager.pm:846 #, perl-format msgid "Plugin error on event %s: %s" msgstr "插件错误, 事件 %s: %s" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:396 msgid "Plugins" msgstr "插件(&u)" #: lib/Padre/Locale.pm:380 msgid "Polish" msgstr "波兰语" #: lib/Padre/Plugin/PopularityContest.pm:305 msgid "Popularity Contest Report" msgstr "流行度报告" #: lib/Padre/Locale.pm:390 msgid "Portuguese (Brazil)" msgstr "葡萄牙语 (巴西)" #: lib/Padre/Locale.pm:400 msgid "Portuguese (Portugal)" msgstr "葡萄牙语 (葡萄牙)" #: lib/Padre/Wx/Dialog/Goto.pm:86 msgid "Position type" msgstr "位置类型" #: lib/Padre/Wx/Dialog/Advanced.pm:27 msgid "Positive Integer" msgstr "正整数" #: lib/Padre/Wx/Dialog/RegexEditor.pm:128 msgid "Positive lookahead assertion" msgstr "前(右)视断言" #: lib/Padre/Wx/Dialog/RegexEditor.pm:130 msgid "Positive lookbehind assertion" msgstr "后(左)视断言" #: lib/Padre/Wx/Outline.pm:357 msgid "Pragmata" msgstr "编译选项" #: lib/Padre/Wx/Dialog/Advanced.pm:110 msgid "Preference Name" msgstr "选项名字" #: lib/Padre/Wx/ActionLibrary.pm:2209 #: lib/Padre/Wx/Dialog/Preferences.pm:836 msgid "Preferences" msgstr "选项" #: lib/Padre/Wx/ActionLibrary.pm:2218 msgid "Preferences Sync" msgstr "偏好同步" #: lib/Padre/Wx/Dialog/Preferences.pm:342 msgid "Preferred language for error diagnostics:" msgstr "错误诊断的首选语言:" #: lib/Padre/Wx/Dialog/Search.pm:154 msgid "Previ&ous" msgstr "上一个(&o)" #: lib/Padre/Wx/ActionLibrary.pm:2429 msgid "Previous File" msgstr "上一个文件" #: lib/Padre/Config.pm:411 msgid "Previous open files" msgstr "以前的打开文件" #: lib/Padre/Wx/ActionLibrary.pm:481 msgid "Print the current document" msgstr "打印当前文件" #: lib/Padre/Wx/Directory.pm:274 #: lib/Padre/Wx/Dialog/WindowList.pm:223 msgid "Project" msgstr "工程" #: lib/Padre/Wx/ActionLibrary.pm:1355 msgid "Project Browser - Was known as the Directory Tree." msgstr "工程浏览器 - 又被称作目录树" #: lib/Padre/Wx/Left.pm:52 msgid "Project Tools" msgstr "工程工具" #: lib/Padre/Config.pm:566 msgid "Project Tools (Left)" msgstr "工程工具(左)" #: lib/Padre/Wx/Dialog/Preferences.pm:437 msgid "Project name" msgstr "工程名" #: lib/Padre/Wx/ActionLibrary.pm:1745 msgid "Prompt for a replacement variable name and replace all occurrences of this variable" msgstr "输入一个替换后的变量名, 替换一切出现这个变量的地方" #: lib/Padre/Wx/Dialog/RegexEditor.pm:93 msgid "Punctuation characters" msgstr "标点符号" #: lib/Padre/Wx/ActionLibrary.pm:2408 msgid "Put focus on tab visited the longest time ago." msgstr "把焦点放到最久以前访问的标签页." #: lib/Padre/Wx/ActionLibrary.pm:2419 msgid "Put focus on the next tab to the right" msgstr "把焦点放到下一个(右边)标签页" #: lib/Padre/Wx/ActionLibrary.pm:2430 msgid "Put focus on the previous tab to the left" msgstr "把焦点放到下一个(左边)标签页" #: lib/Padre/Wx/ActionLibrary.pm:713 msgid "Put the content of the current document in the clipboard" msgstr "编辑器中当前文件的内容放入剪贴板" #: lib/Padre/Wx/ActionLibrary.pm:656 msgid "Put the current selection in the clipboard" msgstr "当前选择的区域放入剪贴板" #: lib/Padre/Wx/ActionLibrary.pm:672 msgid "Put the full path of the current file in the clipboard" msgstr "当前文件的完整路径与文件名放入剪贴板" #: lib/Padre/Wx/ActionLibrary.pm:700 msgid "Put the full path of the directory of the current file in the clipboard" msgstr "文件所在目录的完整路径放入剪贴板" #: lib/Padre/Wx/ActionLibrary.pm:686 msgid "Put the name of the current file in the clipboard" msgstr "当前文件名放入剪贴板" #: lib/Padre/Wx/Main.pm:3917 msgid "Python Files" msgstr "Python 文件" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:40 msgid "Quick Menu Access" msgstr "菜单快捷通道" #: lib/Padre/Wx/ActionLibrary.pm:1276 msgid "Quick Menu Access..." msgstr "菜单快捷通道..." #: lib/Padre/Wx/ActionLibrary.pm:1277 msgid "Quick access to all menu functions" msgstr "快速调用菜单中的所有功能" #: lib/Padre/Wx/ActionLibrary.pm:2193 msgid "Quit Debugger (&q)" msgstr "退出调试器(&q)" #: lib/Padre/Wx/ActionLibrary.pm:2194 msgid "Quit the process being debugged" msgstr "退出调试中的进程" #: lib/Padre/Wx/StatusBar.pm:435 msgid "R/W" msgstr "读/写" #: lib/Padre/Wx/StatusBar.pm:435 msgid "Read Only" msgstr "只读" #: lib/Padre/File/FTP.pm:289 msgid "Reading file from FTP server..." msgstr "从 FTP 服务器读取文件..." #: lib/Padre/Wx/Dialog/HelpSearch.pm:273 msgid "Reading items. Please wait" msgstr "读取条目。请等待..." #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:352 msgid "Reading items. Please wait..." msgstr "读取选项。请等待..." #: lib/Padre/Wx/Directory/TreeCtrl.pm:174 #, perl-format msgid "Really delete the file \"%s\"?" msgstr "确认删除此文件 \"%s\"?" #: lib/Padre/Wx/ActionLibrary.pm:575 msgid "Redo last undo" msgstr "重做最后一次撤销" #: lib/Padre/Wx/Menu/Refactor.pm:94 msgid "Ref&actor" msgstr "重构(&A)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:393 msgid "Refactor" msgstr "重构" #: lib/Padre/Wx/Directory/TreeCtrl.pm:249 msgid "Refresh" msgstr "刷新" #: lib/Padre/Wx/Dialog/Preferences.pm:394 msgid "RegExp for TODO-panel:" msgstr "待办(TODO)面版所用正则表达式:" #: lib/Padre/Wx/ActionLibrary.pm:2237 #: lib/Padre/Wx/Dialog/RegexEditor.pm:33 msgid "Regex Editor" msgstr "正则表达式编辑器" #: lib/Padre/Wx/FBP/Sync.pm:181 msgid "Register" msgstr "注册" #: lib/Padre/Wx/FBP/Sync.pm:310 msgid "Registration" msgstr "注册" #: lib/Padre/Wx/Dialog/Replace.pm:94 msgid "Regular &Expression" msgstr "正则表达式(&E)" #: lib/Padre/Wx/FBP/FindInFiles.pm:101 #: lib/Padre/Wx/FBP/Find.pm:58 msgid "Regular Expression" msgstr "正则表达式" #: lib/Padre/Wx/Dialog/WhereFrom.pm:29 msgid "Reinstalling/installing on other computer" msgstr "在其它计算机上(再次)安装" #: lib/Padre/Wx/FindResult.pm:125 msgid "Related editor has been closed" msgstr "相关的编辑窗已被关闭" #: lib/Padre/Wx/Menu/File.pm:178 msgid "Reload" msgstr "重新载入" #: lib/Padre/Wx/ActionLibrary.pm:369 msgid "Reload All" msgstr "重新载入所有文件" #: lib/Padre/Wx/ActionLibrary.pm:2333 msgid "Reload All Plug-ins" msgstr "重新载入所有插件" #: lib/Padre/Wx/ActionLibrary.pm:359 msgid "Reload File" msgstr "重新载入文件" #: lib/Padre/Wx/ActionLibrary.pm:2302 msgid "Reload My Plug-in" msgstr "重新载入我的插件" #: lib/Padre/Wx/ActionLibrary.pm:379 msgid "Reload Some..." msgstr "重新载入一些..." #: lib/Padre/Wx/Main.pm:4080 msgid "Reload all files" msgstr "重新载入所有文件" #: lib/Padre/Wx/ActionLibrary.pm:370 msgid "Reload all files currently open" msgstr "重新载入所有当前打开的文件" #: lib/Padre/Wx/ActionLibrary.pm:2334 msgid "Reload all plug-ins from disk" msgstr "从磁盘重新载入所有插件" #: lib/Padre/Wx/ActionLibrary.pm:360 msgid "Reload current file from disk" msgstr "从硬盘重新载入当前文件" #: lib/Padre/Wx/Main.pm:4127 msgid "Reload some" msgstr "重新载入一些" #: lib/Padre/Wx/Main.pm:4111 #: lib/Padre/Wx/Main.pm:6060 msgid "Reload some files" msgstr "重新载入一些文件" #: lib/Padre/Wx/ActionLibrary.pm:2343 msgid "Reloads (or initially loads) the current plug-in" msgstr "重新(或初始)载入当前插件" #: lib/Padre/Wx/ActionLibrary.pm:2086 msgid "Remove Breakpoint" msgstr "移除断点" #: lib/Padre/Wx/ActionLibrary.pm:626 msgid "Remove all the selection marks" msgstr "清除所有选区标记" #: lib/Padre/Wx/ActionLibrary.pm:928 msgid "Remove comment out of selected lines in the document" msgstr "移除所选行的注释" #: lib/Padre/Wx/ActionLibrary.pm:2087 msgid "Remove the breakpoint at the current location of the cursor" msgstr "在当前光标处移除断点" #: lib/Padre/Wx/ActionLibrary.pm:641 msgid "Remove the current selection and put it in the clipboard" msgstr "删除当前选择的区域并将其放入剪贴板" #: lib/Padre/Wx/ActionLibrary.pm:510 msgid "Remove the entries from the recent files list" msgstr "移除“最近的文件”列表中的条目" #: lib/Padre/Wx/ActionLibrary.pm:1036 msgid "Remove the spaces from the beginning of the selected lines" msgstr "移除所选行的行首空格" #: lib/Padre/Wx/ActionLibrary.pm:1026 msgid "Remove the spaces from the end of the selected lines" msgstr "移除所选行的行末空格" #: lib/Padre/Wx/ActionLibrary.pm:1744 msgid "Rename Variable" msgstr "重命名变量" #: lib/Padre/Document/Perl.pm:820 #: lib/Padre/Document/Perl.pm:830 msgid "Rename variable" msgstr "变量重命名" #: lib/Padre/Wx/ActionLibrary.pm:1160 msgid "Repeat the last find to find the next match" msgstr "重复上次的查找, 找到下个匹配" #: lib/Padre/Wx/ActionLibrary.pm:1202 msgid "Repeat the last find, but backwards to find the previous match" msgstr "重复上次的查找, 但是返回前个匹配" #: lib/Padre/Wx/Dialog/Replace.pm:250 msgid "Replace" msgstr "替换" #: lib/Padre/Wx/Dialog/Replace.pm:136 msgid "Replace &All" msgstr "替换所有(&A)" #: lib/Padre/Document/Perl.pm:915 #: lib/Padre/Document/Perl.pm:964 msgid "Replace Operation Canceled" msgstr "替换操作已取消" #: lib/Padre/Wx/Dialog/Replace.pm:258 msgid "Replace Text:" msgstr "替换文本:" #: lib/Padre/Wx/Dialog/RegexEditor.pm:426 msgid "Replace all occurrences of the pattern" msgstr "替换所有与该模板相符者" #: lib/Padre/Wx/Dialog/RegexEditor.pm:656 #, perl-format msgid "Replace failure in %s: %s" msgstr "在 %s 中替换失败: %s" #: lib/Padre/Wx/ActionLibrary.pm:1238 msgid "Replace..." msgstr "替换..." #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d match" msgstr "替换了 %d 处匹配" #: lib/Padre/Wx/Dialog/Replace.pm:577 #, perl-format msgid "Replaced %d matches" msgstr "替换了 %d 处匹配" #: lib/Padre/Wx/ActionLibrary.pm:2673 msgid "Report a New &Bug" msgstr "报告新问题(&B)" #: lib/Padre/Wx/ActionLibrary.pm:1560 msgid "Reset Font Size" msgstr "重置字体大小" #: lib/Padre/Wx/ActionLibrary.pm:2311 #: lib/Padre/Wx/ActionLibrary.pm:2318 msgid "Reset My plug-in" msgstr "重置我的插件" #: lib/Padre/Wx/ActionLibrary.pm:2312 msgid "Reset the My plug-in to the default" msgstr "重置 \"My plug-in\" 回到默认值" #: lib/Padre/Wx/ActionLibrary.pm:1561 msgid "Reset the size of the letters to the default in the editor window" msgstr "重置编辑窗中的字符大小" #: lib/Padre/Wx/Dialog/KeyBindings.pm:134 msgid "Reset to default shortcut" msgstr "重设回默认快捷键" #: lib/Padre/Wx/Main.pm:2912 msgid "Restore focus..." msgstr "恢复焦点..." #: lib/Padre/Wx/Dialog/ModuleStart.pm:19 #: lib/Padre/Wx/Dialog/ModuleStart.pm:39 msgid "Revised BSD License" msgstr "修订的 BSD 许可证" #: lib/Padre/Wx/Dialog/KeyBindings.pm:100 msgid "Right" msgstr "右" #: lib/Padre/Wx/ActionLibrary.pm:2480 msgid "Right Click" msgstr "点击右键" #: lib/Padre/Wx/Main.pm:3919 msgid "Ruby Files" msgstr "Ruby 文件" #: lib/Padre/Wx/Dialog/FilterTool.pm:151 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:394 msgid "Run" msgstr "运行" #: lib/Padre/Wx/ActionLibrary.pm:1918 msgid "Run Build and Tests" msgstr "构建並测试" #: lib/Padre/Wx/ActionLibrary.pm:1907 msgid "Run Command" msgstr "运行命令" #: lib/Padre/Plugin/Devel.pm:67 msgid "Run Document inside Padre" msgstr "在 Padre 里运行" #: lib/Padre/Wx/Dialog/Preferences.pm:869 msgid "Run Parameters" msgstr "运行参数" #: lib/Padre/Wx/ActionLibrary.pm:1879 msgid "Run Script" msgstr "运行脚本" #: lib/Padre/Wx/ActionLibrary.pm:1895 msgid "Run Script (Debug Info)" msgstr "运行脚本(带调式信息)" #: lib/Padre/Plugin/Devel.pm:68 msgid "Run Selection inside Padre" msgstr "在 Padre 中执行所选语句" #: lib/Padre/Wx/ActionLibrary.pm:1930 msgid "Run Tests" msgstr "运行测试" #: lib/Padre/Wx/ActionLibrary.pm:1949 msgid "Run This Test" msgstr "运行该测试" #: lib/Padre/Wx/ActionLibrary.pm:1932 msgid "Run all tests for the current project or document and show the results in the output panel." msgstr "执行当前工程或文件的所有测试, 在输出面板显示结果." #: lib/Padre/Wx/Dialog/PerlFilter.pm:89 msgid "Run filter" msgstr "执行过滤器" #: lib/Padre/Wx/Main.pm:2415 msgid "Run setup" msgstr "运行设置" #: lib/Padre/Wx/ActionLibrary.pm:1896 msgid "Run the current document but include debug info in the output." msgstr "运行当前文件且在输出中包含调试信息." #: lib/Padre/Wx/ActionLibrary.pm:1950 msgid "Run the current test if the current document is a test. (prove -bv)" msgstr "若当前文件是一个测试脚本则运行此测试. (执行 prove -bv)" #: lib/Padre/Wx/ActionLibrary.pm:2040 msgid "Run till Breakpoint (&c)" msgstr "运行到断点(&c)" #: lib/Padre/Wx/ActionLibrary.pm:2116 msgid "Run to Cursor" msgstr "运行到光标" #: lib/Padre/Wx/ActionLibrary.pm:1908 msgid "Runs a shell command and shows the output." msgstr "运行一条 shell 指令并显示其输出." #: lib/Padre/Wx/ActionLibrary.pm:1880 msgid "Runs the current document and shows its output in the output panel." msgstr "运行当前文件并在 \"输出面板\" 显示其输出." #: lib/Padre/Locale.pm:410 msgid "Russian" msgstr "俄语" #: lib/Padre/Wx/Dialog/Advanced.pm:184 msgid "S&ave" msgstr "保存(&A)" #: lib/Padre/Wx/Dialog/Shortcut.pm:82 msgid "SHIFT" msgstr "Shift" #: lib/Padre/Wx/Main.pm:3921 msgid "SQL Files" msgstr "SQL 文件" #: lib/Padre/Plugin/Devel.pm:93 msgid "STC Reference" msgstr "STC 参考" #: lib/Padre/Wx/Dialog/SessionSave.pm:229 msgid "Save" msgstr "保存" #: lib/Padre/Wx/ActionLibrary.pm:406 msgid "Save &As..." msgstr "另存为(&A)..." #: lib/Padre/Wx/ActionLibrary.pm:430 msgid "Save All" msgstr "保存所有" #: lib/Padre/Wx/ActionLibrary.pm:419 msgid "Save Intuition" msgstr "凭直觉保存" #: lib/Padre/Wx/ActionLibrary.pm:464 msgid "Save Session..." msgstr "保存会话..." #: lib/Padre/Document.pm:769 msgid "Save Warning" msgstr "保存警告" #: lib/Padre/Wx/ActionLibrary.pm:431 msgid "Save all the files" msgstr "关闭所有文件" #: lib/Padre/Wx/ActionLibrary.pm:394 msgid "Save current document" msgstr "保存当前文档" #: lib/Padre/Wx/Main.pm:4303 msgid "Save file as..." msgstr "另存为..." #: lib/Padre/Wx/Dialog/SessionSave.pm:31 msgid "Save session as..." msgstr "会话另存为..." #: lib/Padre/Wx/Dialog/Preferences.pm:1163 msgid "Save settings" msgstr "保存设置" #: lib/Padre/MimeTypes.pm:364 #: lib/Padre/MimeTypes.pm:374 msgid "Scintilla" msgstr "Scintilla" #: lib/Padre/Wx/Main.pm:3927 msgid "Script Files" msgstr "脚本文件" #: lib/Padre/Wx/Dialog/Preferences.pm:745 #: lib/Padre/Wx/Dialog/Preferences.pm:795 msgid "Script arguments:" msgstr "程序参数" #: lib/Padre/Wx/Directory.pm:83 #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:390 #: lib/Padre/Wx/Dialog/Find.pm:78 msgid "Search" msgstr "搜索" #: lib/Padre/Wx/Dialog/Replace.pm:122 msgid "Search &Backwards" msgstr "反向搜索(&B)" #: lib/Padre/Wx/FBP/Find.pm:66 msgid "Search Backwards" msgstr "反向搜索" #: lib/Padre/Document/Perl.pm:583 msgid "Search Canceled" msgstr "检查已取消" #: lib/Padre/Wx/FBP/FindInFiles.pm:50 msgid "Search Directory:" msgstr "搜索目录:" #: lib/Padre/Wx/ActionLibrary.pm:2587 msgid "Search Help" msgstr "于帮助中搜索" #: lib/Padre/Wx/FBP/FindInFiles.pm:36 #: lib/Padre/Wx/FBP/Find.pm:36 msgid "Search Term:" msgstr "搜索条目:" #: lib/Padre/Wx/Dialog/Replace.pm:538 #: lib/Padre/Wx/Dialog/Replace.pm:582 #: lib/Padre/Wx/Dialog/Replace.pm:587 msgid "Search and Replace" msgstr "查找和替换" #: lib/Padre/Wx/FindInFiles.pm:212 #, perl-format msgid "Search complete, found '%s' %d time(s) in %d file(s) inside '%s'" msgstr "搜索完成, 找到 '%s' %d次,在 %d 个文件位于'%s'" #: lib/Padre/Wx/ActionLibrary.pm:1252 msgid "Search for a text in all files below a given directory" msgstr "在给出目录下的所有文件中查找一段文本" #: lib/Padre/Wx/Browser.pm:93 #: lib/Padre/Wx/Browser.pm:108 msgid "Search for perldoc - e.g. Padre::Task, Net::LDAP" msgstr "搜索 perldoc, 例如 Padre::Task, Net::LDAP" #: lib/Padre/Wx/FBP/FindInFiles.pm:78 msgid "Search in Types:" msgstr "搜索对象的类型:" #: lib/Padre/Wx/ActionLibrary.pm:2588 msgid "Search the Perl help pages (perldoc)" msgstr "搜索 Perl 帮助页 (perldoc)" #: lib/Padre/Wx/Browser.pm:104 msgid "Search:" msgstr "搜索:" #: lib/Padre/Wx/Browser.pm:443 #, perl-format msgid "Searched for '%s' and failed..." msgstr "查找 '%s' 失败 ..." #: lib/Padre/Wx/ActionLibrary.pm:1668 msgid "Searches the source code for brackets with lack a matching (opening/closing) part." msgstr "搜索源码中缺少匹配的括号" #: lib/Padre/Wx/FindInFiles.pm:129 #, perl-format msgid "Searching for '%s' in '%s'..." msgstr "查找 '%s' 位于 '%s' ..." #: lib/Padre/Wx/Dialog/Form.pm:55 msgid "Second Label" msgstr "第二个标签" #: lib/Padre/Wx/Dialog/Warning.pm:41 msgid "See http://padre.perlide.org/ for update information" msgstr "前往 http://padre.perlide.org/ 查看升级信息" #: lib/Padre/Wx/Menu/Edit.pm:49 #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:125 msgid "Select" msgstr "选择" #: lib/Padre/Wx/ActionLibrary.pm:588 msgid "Select All" msgstr "选择全部" #: lib/Padre/Wx/Dialog/FindInFiles.pm:63 msgid "Select Directory" msgstr "选择目录" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:38 msgid "Select Function" msgstr "选择函数" #: lib/Padre/Wx/Dialog/Wizard/Select.pm:17 msgid "Select a Wizard" msgstr "选择一个向导" #: lib/Padre/Wx/ActionLibrary.pm:1585 msgid "Select a bookmark created earlier and jump to that position" msgstr "选择一个先前建立的书签并跳至那个位置" #: lib/Padre/Wx/ActionLibrary.pm:865 msgid "Select a date, filename or other value and insert at the current location" msgstr "选择一个日期、文件名或其它值,将其插入到当前位置" #: lib/Padre/Wx/ActionLibrary.pm:890 msgid "Select a file and insert its content at the current location" msgstr "选择一个文件, 将其内容插入至当前位置" #: lib/Padre/Wx/ActionLibrary.pm:454 msgid "Select a session. Close all the files currently open and open all the listed in the session" msgstr "选择一个会话。 关闭当前打开的文件, 然后打开所有会话中的文件" #: lib/Padre/Wx/ActionLibrary.pm:589 msgid "Select all the text in the current document" msgstr "选择当前文档中的所有文字" #: lib/Padre/Wx/ActionLibrary.pm:963 msgid "Select an encoding and encode the document to that" msgstr "选择一个编码, 并用来编码该文档" #: lib/Padre/Wx/ActionLibrary.pm:878 msgid "Select and insert a snippet at the current location" msgstr "在当前位置选择并插入一个代码片断" #: lib/Padre/CPAN.pm:105 msgid "Select distribution to install" msgstr "选择安装包" #: lib/Padre/Wx/Main.pm:4809 msgid "Select files to close:" msgstr "选择要关闭的文件:" #: lib/Padre/Wx/Dialog/OpenResource.pm:239 msgid "Select one or more resources to open" msgstr "打开所选的单个或多个资源" #: lib/Padre/Wx/ActionLibrary.pm:350 msgid "Select some open files for closing" msgstr "选择一些文件来关闭" #: lib/Padre/Wx/ActionLibrary.pm:380 msgid "Select some open files for reload" msgstr "选择一些已打开的文件重新载入" #: lib/Padre/Wx/Dialog/HelpSearch.pm:129 msgid "Select the help &topic" msgstr "选择帮助主题(&T)" #: lib/Padre/Wx/ActionLibrary.pm:842 msgid "Select to the matching opening or closing brace" msgstr "选择至匹配的左括号或右括号" #: lib/Padre/Wx/Dialog/RefactorSelectFunction.pm:92 msgid "" "Select which subroutine you want the new subroutine\n" "inserted before." msgstr "在哪个子程序之前安插新子程序" #: lib/Padre/Wx/Dialog/DocStats.pm:40 msgid "Selection" msgstr "选择" #: lib/Padre/Document/Perl.pm:958 msgid "Selection not part of a Perl statement?" msgstr "所选的不是Perl语句的一部分?" #: lib/Padre/Wx/ActionLibrary.pm:193 msgid "Selects and opens a wizard" msgstr "选择并打开一个向导" #: lib/Padre/Wx/ActionLibrary.pm:2674 msgid "Send a bug report to the Padre developer team" msgstr "给Padre开发组发一个BUG报告" #: lib/Padre/File/HTTP.pm:48 #, perl-format msgid "Sending HTTP request %s..." msgstr "正在发送 HTTP 请求 %s..." #: lib/Padre/Wx/FBP/Sync.pm:34 msgid "Server" msgstr "服务器" #: lib/Padre/Wx/Dialog/SessionManager.pm:37 msgid "Session Manager" msgstr "会话管理" #: lib/Padre/Wx/Dialog/SessionSave.pm:200 msgid "Session name:" msgstr "会话名称:" #: lib/Padre/Wx/ActionLibrary.pm:1573 #: lib/Padre/Wx/Dialog/Bookmarks.pm:56 msgid "Set Bookmark" msgstr "设置书签" #: lib/Padre/Wx/ActionLibrary.pm:2071 msgid "Set Breakpoint (&b)" msgstr "设置断点(&b)" #: lib/Padre/Wx/ActionLibrary.pm:1634 msgid "Set Padre in full screen mode" msgstr "设置 Padre 到全屏模式" #: lib/Padre/Wx/ActionLibrary.pm:2117 msgid "Set a breakpoint at the line where to cursor is and run till there" msgstr "在光标处设置断点, 然后运行到此处" # 好像条件断点功能还没被实现 #: lib/Padre/Wx/ActionLibrary.pm:2072 msgid "Set a breakpoint to the current location of the cursor with a condition" msgstr "在当前光标所在位置设置断点" #: lib/Padre/Wx/ActionLibrary.pm:2056 msgid "Set focus to the line where the current statement is in the debugging process" msgstr "在被调试的当前语句所在的行上设置焦点" #: lib/Padre/Wx/ActionLibrary.pm:2554 msgid "Set the focus to the \"Command Line\" window" msgstr "设置焦点到“命令行”窗口" #: lib/Padre/Wx/ActionLibrary.pm:2495 msgid "Set the focus to the \"Functions\" window" msgstr "设置焦点到“函数”窗口" #: lib/Padre/Wx/ActionLibrary.pm:2521 msgid "Set the focus to the \"Outline\" window" msgstr "设置焦点到“提纲”窗口" #: lib/Padre/Wx/ActionLibrary.pm:2532 msgid "Set the focus to the \"Output\" window" msgstr "设置焦点到“输出”窗口" #: lib/Padre/Wx/ActionLibrary.pm:2543 msgid "Set the focus to the \"Syntax Check\" window" msgstr "设置焦点到“语法检查”窗口" #: lib/Padre/Wx/ActionLibrary.pm:2509 msgid "Set the focus to the \"Todo\" window" msgstr "设置焦点到“待办”(Todo)窗口" #: lib/Padre/Wx/ActionLibrary.pm:2565 msgid "Set the focus to the main editor window" msgstr "设置焦点到主编辑器窗口" #: lib/Padre/Wx/Dialog/Preferences.pm:558 msgid "Settings Demo" msgstr "演示" #: lib/Padre/Wx/ActionLibrary.pm:182 msgid "Setup a skeleton Perl module distribution" msgstr "设置一个 Perl 模块的发行包骨架" #: lib/Padre/Config.pm:449 #: lib/Padre/Config.pm:461 msgid "Several placeholders like the filename can be used" msgstr "可以使用一些如文件名之类的占位符" #: lib/Padre/Wx/Syntax.pm:43 msgid "Severe Warning" msgstr "严重警告" #: lib/Padre/Wx/Dialog/KeyBindings.pm:86 msgid "Sh&ortcut:" msgstr "快捷键" #: lib/Padre/Wx/ActionLibrary.pm:2219 msgid "Share your preferences between multiple computers" msgstr "在多台计算机间共享您的使用偏好" #: lib/Padre/MimeTypes.pm:229 msgid "Shell Script" msgstr "Shell 脚本" #: lib/Padre/Wx/Dialog/KeyBindings.pm:91 msgid "Shift" msgstr "Shift" #: lib/Padre/Wx/Dialog/Shortcut.pm:113 msgid "Shortcut" msgstr "快捷键" #: lib/Padre/Wx/Dialog/Preferences.pm:383 msgid "Shorten the common path in window list" msgstr "在窗口列表中缩短路径" #: lib/Padre/Wx/Dialog/RegexEditor.pm:191 msgid "Show &Description" msgstr "显示描述(&D):" #: lib/Padre/Wx/ActionLibrary.pm:1462 msgid "Show Call Tips" msgstr "显示提示" #: lib/Padre/Wx/ActionLibrary.pm:1432 msgid "Show Code Folding" msgstr "显示代码折叠" #: lib/Padre/Wx/ActionLibrary.pm:1324 msgid "Show Command Line window" msgstr "显示命令行窗口" #: lib/Padre/Wx/ActionLibrary.pm:1476 msgid "Show Current Line" msgstr "显示当前行" #: lib/Padre/Wx/ActionLibrary.pm:1314 msgid "Show Functions" msgstr "显示函数列表" #: lib/Padre/Wx/ActionLibrary.pm:1518 msgid "Show Indentation Guide" msgstr "显示缩进指导" #: lib/Padre/Wx/ActionLibrary.pm:1422 msgid "Show Line Numbers" msgstr "显示行号" #: lib/Padre/Wx/ActionLibrary.pm:1498 msgid "Show Newlines" msgstr "显示 EOL" #: lib/Padre/Wx/ActionLibrary.pm:1344 msgid "Show Outline" msgstr "显示提纲" #: lib/Padre/Wx/ActionLibrary.pm:1304 msgid "Show Output" msgstr "显示输出" #: lib/Padre/Wx/ActionLibrary.pm:1354 msgid "Show Project Browser/Tree" msgstr "显示工程浏览器/树" #: lib/Padre/Wx/ActionLibrary.pm:1486 msgid "Show Right Margin" msgstr "显示右间距" #: lib/Padre/Wx/ActionLibrary.pm:2131 msgid "Show Stack Trace (&t)" msgstr "显示堆栈跟踪(&t)" #: lib/Padre/Wx/ActionLibrary.pm:1383 msgid "Show Status Bar" msgstr "显示状态栏" #: lib/Padre/Wx/ActionLibrary.pm:1364 msgid "Show Syntax Check" msgstr "显示语法检查" #: lib/Padre/Wx/ActionLibrary.pm:1334 msgid "Show To-do List" msgstr "显示待办(To-do)列表" #: lib/Padre/Wx/ActionLibrary.pm:1393 msgid "Show Toolbar" msgstr "显示工具栏" #: lib/Padre/Wx/ActionLibrary.pm:2162 msgid "Show Value Now (&x)" msgstr "立即显示值(&x)" #: lib/Padre/Wx/ActionLibrary.pm:1508 msgid "Show Whitespaces" msgstr "显示空格" #: lib/Padre/Wx/ActionLibrary.pm:1487 msgid "Show a vertical line indicating the right margin" msgstr "显示一条铅直的直线来指出右边界" #: lib/Padre/Wx/ActionLibrary.pm:1315 msgid "Show a window listing all the functions in the current document" msgstr "显示一个窗口, 其中列出当前文档的所有函数" #: lib/Padre/Wx/ActionLibrary.pm:1345 msgid "Show a window listing all the parts of the current file (functions, pragmas, modules)" msgstr "显示一个窗口, 其中列出当前文件的所有部分(函数, 编译选项, 模块)" #: lib/Padre/Wx/ActionLibrary.pm:1335 msgid "Show a window listing all todo items in the current document" msgstr "显示一个窗口, 其中列出当前文档的所有待办项目" #: lib/Padre/Wx/Menu/Edit.pm:331 msgid "Show as" msgstr "显示为" #: lib/Padre/Wx/ActionLibrary.pm:1130 msgid "Show as Decimal" msgstr "显示为十进制" #: lib/Padre/Wx/ActionLibrary.pm:1120 msgid "Show as Hexadecimal" msgstr "以十六进制显示" #: lib/Padre/Plugin/PopularityContest.pm:202 msgid "Show current report" msgstr "显示当前报告" #: lib/Padre/Wx/ActionLibrary.pm:2703 msgid "Show information about Padre" msgstr "显示关于 Padre 的信息" #: lib/Padre/Config.pm:971 #: lib/Padre/Wx/Dialog/Preferences.pm:483 msgid "Show low-priority info messages on statusbar (not in a popup)" msgstr "在状态栏上显示低优先级的信息 (而非弹出窗口)" #: lib/Padre/Config.pm:623 msgid "Show or hide the status bar at the bottom of the window." msgstr "显示或隐藏窗口底部的状态栏" #: lib/Padre/Wx/ActionLibrary.pm:2466 #: lib/Padre/Wx/Dialog/Positions.pm:108 msgid "Show previous positions" msgstr "显示上一个位置" #: lib/Padre/Wx/Dialog/Preferences.pm:488 msgid "Show right margin at column:" msgstr "显示右间距(行):" #: lib/Padre/Wx/ActionLibrary.pm:1131 msgid "Show the ASCII values of the selected text in decimal numbers in the output window" msgstr "在输出窗口显示所选文本的 ASCII 十进制值" #: lib/Padre/Wx/ActionLibrary.pm:1121 msgid "Show the ASCII values of the selected text in hexadecimal notation in the output window" msgstr "在输出窗口显示所选文本的 ASCII 十六进制值" #: lib/Padre/Wx/ActionLibrary.pm:2613 msgid "Show the POD (Perldoc) version of the current document" msgstr "显示当前文档的 POD (Perldoc) 版本" #: lib/Padre/Wx/ActionLibrary.pm:2579 msgid "Show the Padre help" msgstr "显示 Padre 帮助" #: lib/Padre/Wx/ActionLibrary.pm:2261 msgid "Show the Padre plug-in manager to enable or disable plug-ins" msgstr "显示 Padre 插件管理器来启用或者禁用若干插件" #: lib/Padre/Wx/ActionLibrary.pm:1325 msgid "Show the command line window" msgstr "显示命令行窗口" #: lib/Padre/Wx/ActionLibrary.pm:2600 msgid "Show the help article for the current context" msgstr "显示针对当前上下文的帮助文章" #: lib/Padre/Wx/ActionLibrary.pm:2229 msgid "Show the key bindings dialog to configure Padre shortcuts" msgstr "显示按键组合对话框来设置快捷键" #: lib/Padre/Wx/ActionLibrary.pm:2467 msgid "Show the list of positions recently visited" msgstr "显示最近访问过的位置" #: lib/Padre/Wx/ActionLibrary.pm:2163 msgid "Show the value of a variable now in a pop-up window." msgstr "立即在一个弹出窗口中显示某变量的值" #: lib/Padre/Wx/ActionLibrary.pm:1305 msgid "Show the window displaying the standard output and standard error of the running scripts" msgstr "显示提供运行中脚本的标准输出和标准错误信息的窗口" #: lib/Padre/Wx/ActionLibrary.pm:1433 msgid "Show/hide a vertical line on the left hand side of the window to allow folding rows" msgstr "显示/隐藏窗口左侧的竖条,以允许折叠" #: lib/Padre/Wx/ActionLibrary.pm:1423 msgid "Show/hide the line numbers of all the documents on the left side of the window" msgstr "显示/隐藏所有文档的窗口左边行号" #: lib/Padre/Wx/ActionLibrary.pm:1499 msgid "Show/hide the newlines with special character" msgstr "显示/隐藏换行时带的特殊字符" #: lib/Padre/Wx/ActionLibrary.pm:1384 msgid "Show/hide the status bar at the bottom of the screen" msgstr "显示/隐藏屏幕底部的状态栏" #: lib/Padre/Wx/ActionLibrary.pm:1509 msgid "Show/hide the tabs and the spaces with special characters" msgstr "显示/隐藏 TAB 和空格为特殊字符" #: lib/Padre/Wx/ActionLibrary.pm:1394 msgid "Show/hide the toolbar at the top of the editor" msgstr "显示/隐藏编辑窗顶部的工具栏" #: lib/Padre/Wx/ActionLibrary.pm:1519 msgid "Show/hide vertical bars at every indentation position on the left of the rows" msgstr "显示/隐藏每个行左端缩进位置的竖条" #: lib/Padre/Config.pm:398 msgid "Showing the splash image during start-up" msgstr "在开起时显示启动画面" #: lib/Padre/Plugin/Devel.pm:86 msgid "Simulate Background Crash" msgstr "模拟后台崩溃" #: lib/Padre/Plugin/Devel.pm:85 msgid "Simulate Background Exception" msgstr "模拟后台异常" #: lib/Padre/Plugin/Devel.pm:84 msgid "Simulate Crash" msgstr "模拟崩溃" #: lib/Padre/Wx/Dialog/RegexEditor.pm:412 msgid "Single-line (&s)" msgstr "单行(&s)" #: lib/Padre/Wx/Dialog/SpecialValues.pm:22 msgid "Size" msgstr "大小" #: lib/Padre/Wx/FBP/WhereFrom.pm:60 msgid "Skip question without giving feedback" msgstr "跳过询问, 不给予反馈" #: lib/Padre/Wx/Dialog/OpenResource.pm:271 msgid "Skip using MANIFEST.SKIP" msgstr "用 MANIFEST.SKIP 跳过文件" #: lib/Padre/Wx/Dialog/OpenResource.pm:267 msgid "Skip version control system files" msgstr "跳过版本控制文件" #: lib/Padre/Document.pm:1363 #: lib/Padre/Document.pm:1364 msgid "Skipped for large files" msgstr "跳过大文件" #: lib/Padre/MimeTypes.pm:384 msgid "Slow but accurate and we have full control so bugs can be fixed" msgstr "慢但是准确,我们有全部的控制权限所以臭虫能被消灭" #: lib/Padre/Wx/Dialog/Snippets.pm:23 #: lib/Padre/Wx/Dialog/Snippets.pm:113 msgid "Snippet:" msgstr "片断:" #: lib/Padre/Wx/Dialog/Snippets.pm:39 msgid "Snippets" msgstr "代码片段" #: lib/Padre/Wx/ActionLibrary.pm:877 msgid "Snippets..." msgstr "代码片段..." #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Space" msgstr "空格" #: lib/Padre/Wx/Dialog/RegexEditor.pm:87 msgid "Space and tab" msgstr "空格与制表符" #: lib/Padre/Wx/Main.pm:5887 msgid "Space to Tab" msgstr "转换空格为制表符" #: lib/Padre/Wx/ActionLibrary.pm:1015 msgid "Spaces to Tabs..." msgstr "转换空格为制表符..." #: lib/Padre/Locale.pm:248 msgid "Spanish" msgstr "西班牙语" #: lib/Padre/Locale.pm:234 msgid "Spanish (Argentina)" msgstr "西班牙语 (阿根廷)" #: lib/Padre/Wx/ActionLibrary.pm:864 msgid "Special Value..." msgstr "特殊值..." #: lib/Padre/Wx/Dialog/SpecialValues.pm:47 msgid "Special Value:" msgstr "特殊值:" #: lib/Padre/Wx/ActionLibrary.pm:2041 msgid "Start running and/or continue running till next breakpoint or watch" msgstr "运行或继续运行直到下个断点" #: lib/Padre/Plugin/Devel.pm:79 msgid "Start/Stop sub trace" msgstr "开启/停止 sub trace" #: lib/Padre/Wx/Main.pm:5859 msgid "Stats" msgstr "状态" #: lib/Padre/Wx/FBP/Sync.pm:48 #: lib/Padre/Wx/Dialog/PluginManager.pm:68 #: lib/Padre/Wx/Dialog/Advanced.pm:111 #: lib/Padre/Wx/CPAN/Listview.pm:32 #: lib/Padre/Wx/CPAN/Listview.pm:64 msgid "Status" msgstr "状态" #: lib/Padre/Wx/Dialog/Preferences.pm:471 msgid "Statusbar:" msgstr "状态栏:" #: lib/Padre/Wx/ActionLibrary.pm:1989 msgid "Step In (&s)" msgstr "跳入(&s)" #: lib/Padre/Wx/ActionLibrary.pm:2024 msgid "Step Out (&r)" msgstr "跳出(&r)" #: lib/Padre/Wx/ActionLibrary.pm:2006 msgid "Step Over (&n)" msgstr "跳过(&n)" #: lib/Padre/Wx/ActionLibrary.pm:1961 msgid "Stop Execution" msgstr "停止运行" #: lib/Padre/Wx/ActionLibrary.pm:1962 msgid "Stop a running task." msgstr "停止一个正在运行的进程" #: lib/Padre/Wx/ActionLibrary.pm:111 msgid "Stops processing of other action queue items for 10 seconds" msgstr "停止处理动作队列中的其它项目 10 秒钟" #: lib/Padre/Wx/ActionLibrary.pm:120 msgid "Stops processing of other action queue items for 30 seconds" msgstr "停止处理动作队列中的其它项目 30 秒钟" #: lib/Padre/Wx/Dialog/Advanced.pm:29 msgid "String" msgstr "字符串" #: lib/Padre/Wx/Menu/View.pm:197 msgid "Style" msgstr "风格" #: lib/Padre/Plugin/Devel.pm:260 msgid "Sub-tracing started" msgstr "Sub-tracing 己开启" #: lib/Padre/Plugin/Devel.pm:242 msgid "Sub-tracing stopped" msgstr "Sub-tracing 己停止" #: lib/Padre/Wx/ActionLibrary.pm:69 #, perl-format msgid "Switch Padre interface language to %s" msgstr "切换 Padre 的语言为 %s" #: lib/Padre/Wx/ActionLibrary.pm:1409 msgid "Switch document type" msgstr "改变文档类型" #: lib/Padre/Wx/ActionLibrary.pm:1602 #: lib/Padre/Wx/ActionLibrary.pm:1618 msgid "Switch highlighting colours" msgstr "改变高亮颜色" #: lib/Padre/Wx/ActionLibrary.pm:40 msgid "Switch language to system default" msgstr "切换至系统默认语言" #: lib/Padre/Wx/ActionLibrary.pm:2397 msgid "Switch to edit the file that was previously edited (can switch back and forth)" msgstr "切换到先前编辑过的文件 (可以来回切换)" #: lib/Padre/Wx/Syntax.pm:301 msgid "Syntax Check" msgstr "语法检查" #: lib/Padre/Wx/ActionLibrary.pm:39 msgid "System Default" msgstr "系统默认" #: lib/Padre/Wx/About.pm:74 #: lib/Padre/Wx/About.pm:317 msgid "System Info" msgstr "系统信息" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Tab" msgstr "制表符" #: lib/Padre/Wx/Dialog/Preferences.pm:267 msgid "Tab display size (in spaces):" msgstr "TAB 显示长度(以空格算):" #: lib/Padre/Wx/Main.pm:5888 msgid "Tab to Space" msgstr "转换制表符为空格" #: lib/Padre/Wx/Menu/Edit.pm:245 msgid "Tabs and Spaces" msgstr "制表符和空格" #: lib/Padre/Wx/ActionLibrary.pm:1005 msgid "Tabs to Spaces..." msgstr "转换制表符为空格..." #: lib/Padre/MimeTypes.pm:333 msgid "Text" msgstr "文本" #: lib/Padre/Wx/Main.pm:3923 msgid "Text Files" msgstr "文本文件" #: lib/Padre/Wx/About.pm:103 #: lib/Padre/Wx/About.pm:135 msgid "The Padre Development Team" msgstr "Padre 开发者团队" #: lib/Padre/Wx/About.pm:227 msgid "The Padre Translation Team" msgstr "Padre 翻译者团队" #: lib/Padre/Wx/Dialog/Bookmarks.pm:170 #, perl-format msgid "The bookmark '%s' no longer exists" msgstr "书签 '%s' 不存在" #: lib/Padre/Wx/Debugger.pm:191 msgid "" "The debugger is not running.\n" "You can start the debugger using one of the commands 'Step In', 'Step Over', or 'Run till Breakpoint' in the Debug menu." msgstr "" "调试器未运行。\n" "您可以使用调试菜单中的“跨入”,“跨过”,或者“运行到断点”命令来启动调试器。" #: lib/Padre/Document.pm:253 #, perl-format msgid "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" msgstr "您正试图打开的文件 %s 占 %s 字节。它超过了Padre的尺过限制%s。打开该文件可能会降低性能。您仍想要打开它吗?" #: lib/Padre/Wx/Dialog/KeyBindings.pm:388 #, perl-format msgid "The shortcut '%s' is already used by the action '%s'.\n" msgstr "快捷键 '%s' 己被用于动作 '%s'.\n" #: lib/Padre/Wx/Main.pm:5011 msgid "There are no differences\n" msgstr "无差异\n" #: lib/Padre/Wx/Dialog/Positions.pm:107 msgid "There are no positions saved yet" msgstr "目前没有保存下的位置" #: lib/Padre/PPI/EndifyPod.pm:42 msgid "This document does not contain any POD" msgstr "该文档不包含任何 POD" #: lib/Padre/Wx/ActionLibrary.pm:2303 msgid "This function reloads the My plug-in without restarting Padre" msgstr "文个功能在不重启 Padre 的情况下重新载入 \"My plug-in\"" #: lib/Padre/Wx/Dialog/Preferences/File.pm:39 #: lib/Padre/Wx/Dialog/Preferences/File.pm:47 msgid "Timeout (in seconds):" msgstr "超时(秒):" #: lib/Padre/Wx/TodoList.pm:209 msgid "To-do" msgstr "待办" #: lib/Padre/Wx/Dialog/SpecialValues.pm:17 msgid "Today" msgstr "今天" #: lib/Padre/Wx/About.pm:69 msgid "Translation" msgstr "翻译" #: lib/Padre/Wx/Dialog/Advanced.pm:129 #: lib/Padre/Wx/Dialog/Advanced.pm:598 msgid "True" msgstr "真" #: lib/Padre/Locale.pm:420 msgid "Turkish" msgstr "土耳其语" #: lib/Padre/Wx/ActionLibrary.pm:1365 msgid "Turn on syntax checking of the current document and show output in a window" msgstr "为当前文档打开语法检查, 并在一个窗口中显示结果" #: lib/Padre/Wx/Dialog/Advanced.pm:112 msgid "Type" msgstr "类型" #: lib/Padre/Wx/Dialog/HelpSearch.pm:146 msgid "Type a help &keyword to read:" msgstr "输入帮助主题来阅读:(&T)" #: lib/Padre/Wx/ActionLibrary.pm:2178 msgid "Type in any expression and evaluate it in the debugged process" msgstr "输入任意一个表达式并在被调试的进程中执行" #: lib/Padre/MimeTypes.pm:619 msgid "UNKNOWN" msgstr "未知" #: lib/Padre/Config/Style.pm:37 msgid "Ultraedit" msgstr "Ultraedit" #: lib/Padre/File/FTP.pm:186 #, perl-format msgid "Unable to parse %s" msgstr "不能解释 %s" #: lib/Padre/Wx/ActionLibrary.pm:555 msgid "Undo last change in current file" msgstr "在当前文件中撤消最后一次改动" #: lib/Padre/Wx/ActionLibrary.pm:1452 msgid "Unfold all" msgstr "收拢所有" #: lib/Padre/Wx/ActionLibrary.pm:1453 msgid "Unfold all the blocks that can be folded (need folding to be enabled)" msgstr "展开所有能折叠的代码块 (需要开启折叠功能)" #: lib/Padre/Locale.pm:142 #: lib/Padre/Wx/Main.pm:3713 msgid "Unknown" msgstr "未知" #: lib/Padre/PluginManager.pm:857 #: lib/Padre/Document/Perl.pm:579 #: lib/Padre/Document/Perl.pm:911 #: lib/Padre/Document/Perl.pm:960 #: lib/Padre/File/FTP.pm:145 msgid "Unknown error" msgstr "未知错误" #: lib/Padre/Wx/Role/Dialog.pm:92 msgid "Unknown error from " msgstr "未知错误出自" #: lib/Padre/Wx/Dialog/Preferences.pm:758 msgid "Unsaved" msgstr "未保存" #: lib/Padre/Document.pm:962 #, perl-format msgid "Unsaved %d" msgstr "未保存 %d" #: lib/Padre/Wx/Main.pm:4685 msgid "Unsaved File" msgstr "未保存文件" #: lib/Padre/Util/FileBrowser.pm:63 #: lib/Padre/Util/FileBrowser.pm:110 #: lib/Padre/Util/FileBrowser.pm:153 #, perl-format msgid "Unsupported OS: %s" msgstr "未支持的操作系统: %s" #: lib/Padre/Wx/Browser.pm:341 msgid "Untitled" msgstr "未命名" #: lib/Padre/Wx/Dialog/KeyBindings.pm:99 msgid "Up" msgstr "上" #: lib/Padre/Wx/FBP/Sync.pm:203 msgid "Upload" msgstr "上传" #: lib/Padre/Wx/ActionLibrary.pm:1047 msgid "Upper All" msgstr "全部大写" #: lib/Padre/Wx/Menu/Edit.pm:275 msgid "Upper/Lower Case" msgstr "大小写转换" #: lib/Padre/Wx/Dialog/RegexEditor.pm:95 msgid "Uppercase characters" msgstr "大写字符" #: lib/Padre/Wx/About.pm:337 msgid "Uptime" msgstr "运行时间" #: lib/Padre/Wx/Dialog/Preferences/File.pm:51 msgid "Use FTP passive mode" msgstr "用 FTP 被动模式" #: lib/Padre/Wx/ActionLibrary.pm:1111 msgid "Use Perl source as filter" msgstr "使用 Perl 代码作为过滤器" #: lib/Padre/Wx/Dialog/Preferences.pm:400 msgid "Use Splash Screen" msgstr "使用启动画面" #: lib/Padre/Wx/Dialog/Preferences.pm:264 msgid "Use Tabs" msgstr "使用标签" #: lib/Padre/Wx/Dialog/Preferences.pm:390 msgid "Use X11 middle button paste style" msgstr "使用 X11 中键粘帖的风格" #: lib/Padre/Wx/ActionLibrary.pm:1266 msgid "Use a filter to select one or more files" msgstr "使用一个过滤器选择单个或多个文件" #: lib/Padre/Wx/Dialog/Preferences.pm:749 msgid "Use external window for execution" msgstr "使用外部窗口来运行" #: lib/Padre/Wx/Dialog/Preferences.pm:305 msgid "Use panel order for Ctrl-Tab (not usage history)" msgstr "为 Ctrl-Tab 使用面板顺序 (而非使用历史)" #: lib/Padre/Wx/Dialog/Search.pm:184 msgid "Use rege&x" msgstr "使用正则表达式(&x)" #: lib/Padre/Wx/Dialog/Advanced.pm:796 msgid "User" msgstr "用户" #: lib/Padre/Wx/FBP/Sync.pm:68 #: lib/Padre/Wx/FBP/Sync.pm:111 msgid "Username" msgstr "用户名" #: lib/Padre/Wx/ActionLibrary.pm:2365 msgid "Using CPAN.pm to install a CPAN like package opened locally" msgstr "使用 CPAN.pm 来安装一个 CPAN 格式的本地的包" #: lib/Padre/Wx/ActionLibrary.pm:2375 msgid "Using pip to download a tar.gz file and install it using CPAN.pm" msgstr "使用 pip 下载一个 tar.gz 文件, 并且用 CPAN.pm 安装它" #: lib/Padre/Wx/Debug.pm:139 #: lib/Padre/Wx/Dialog/Advanced.pm:113 msgid "Value" msgstr "值" #: lib/Padre/Wx/Debug.pm:138 msgid "Variable" msgstr "变量" #: lib/Padre/Wx/ActionLibrary.pm:1848 msgid "Variable Name" msgstr "变量名" #: lib/Padre/Document/Perl.pm:870 msgid "Variable case change" msgstr "改变变量风格" #: lib/Padre/Wx/Dialog/PluginManager.pm:67 msgid "Version" msgstr "版本" #: lib/Padre/Wx/ActionLibrary.pm:1704 msgid "Vertically Align Selected" msgstr "竖向对齐所选" #: lib/Padre/Wx/Syntax.pm:61 msgid "Very Fatal Error" msgstr "相当致命的错误" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:391 msgid "View" msgstr "视图(&V)" #: lib/Padre/Wx/ActionLibrary.pm:2681 msgid "View All &Open Bugs" msgstr "查看所有未解决问题(&O)" #: lib/Padre/Wx/Menu/View.pm:82 msgid "View Document As..." msgstr "查看方式..." #: lib/Padre/Wx/ActionLibrary.pm:2682 msgid "View all known and currently unsolved bugs in Padre" msgstr "查看 Padre 的所有已知而未解决的 Bugs" #: lib/Padre/Wx/Dialog/RegexEditor.pm:90 msgid "Visible characters" msgstr "可见字符" #: lib/Padre/Wx/Dialog/RegexEditor.pm:92 msgid "Visible characters and spaces" msgstr "可视字符和空格" #: lib/Padre/Wx/ActionLibrary.pm:2661 msgid "Visit the PerlMonks" msgstr "访问 PerlMonks" #: lib/Padre/Document.pm:765 #, perl-format msgid "Visual filename %s does not match the internal filename %s, do you want to abort saving?" msgstr "显示的文件名 %s 与内在文件名 %s 不匹配,终止保存?" #: lib/Padre/Document.pm:259 #: lib/Padre/Wx/Syntax.pm:31 #: lib/Padre/Wx/Main.pm:2798 #: lib/Padre/Wx/Main.pm:3405 #: lib/Padre/Wx/Dialog/Warning.pm:64 msgid "Warning" msgstr "警告" #: lib/Padre/Wx/ActionLibrary.pm:2316 msgid "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" msgstr "警告!这会删除所有您对 'My plug-in' 的更改并且用安装完Padre后的默认代码替换它" #: lib/Padre/PluginManager.pm:402 msgid "" "We found several new plug-ins.\n" "In order to configure and enable them go to\n" "Plug-ins -> Plug-in Manager\n" "\n" "List of new plug-ins:\n" "\n" msgstr "" "我们发现了一些新插件。\n" "如果需要配置和启用,请点击\n" "插件 -> 插件管理\n" "\n" "新插件列表:\n" "\n" #: lib/Padre/Wx/Main.pm:3925 msgid "Web Files" msgstr "网页文件" #: lib/Padre/Wx/Dialog/Form.pm:71 msgid "Whatever" msgstr "任何" #: lib/Padre/Wx/ActionLibrary.pm:2132 msgid "When in a subroutine call show all the calls since the main of the program" msgstr "在一个子程序中调用时, 显示所有从主命名空间开始的调用" #: lib/Padre/Wx/ActionLibrary.pm:1463 msgid "When typing in functions allow showing short examples of the function" msgstr "键入函数时允许显示该函数的简短样例" #: lib/Padre/Wx/FBP/WhereFrom.pm:31 msgid "Where did you hear about Padre?" msgstr "您是从哪儿听说 Padre 的?" #: lib/Padre/Wx/Dialog/RegexEditor.pm:94 msgid "Whitespace characters" msgstr "空白的字符" #: lib/Padre/Wx/ActionLibrary.pm:2647 msgid "Win32 Questions (English)" msgstr "Win32 问题 (英文)" #: lib/Padre/Wx/Dialog/QuickMenuAccess.pm:397 msgid "Window" msgstr "窗口(&W)" #: lib/Padre/Wx/Dialog/WindowList.pm:35 msgid "Window list" msgstr "窗口列表" #: lib/Padre/Wx/Dialog/Preferences.pm:468 msgid "Window title:" msgstr "窗口标题:" #: lib/Padre/Wx/Dialog/WizardSelector.pm:47 #: lib/Padre/Wx/Dialog/Wizard/Select.pm:18 msgid "Wizard Selector" msgstr "向导选择器" #: lib/Padre/Wx/ActionLibrary.pm:192 msgid "Wizard Selector..." msgstr "向导选择器" #: lib/Padre/Wx/ActionLibrary.pm:522 msgid "Word count and other statistics of the current document" msgstr "当前文档的单词计数和其它统计" #: lib/Padre/Wx/ActionLibrary.pm:1528 msgid "Word-Wrap" msgstr "单词换行" #: lib/Padre/Wx/Dialog/DocStats.pm:102 msgid "Words" msgstr "单词" #: lib/Padre/Wx/ActionLibrary.pm:1529 msgid "Wrap long lines" msgstr "自动换行" #: lib/Padre/File/FTP.pm:312 msgid "Writing file to FTP server..." msgstr "文件正在写入FTP服务器..." #: lib/Padre/Wx/Output.pm:141 #: lib/Padre/Wx/Main.pm:2654 #, perl-format msgid "" "Wx::Perl::ProcessStream is version %s which is known to cause problems. Get at least 0.20 by typing\n" "cpan Wx::Perl::ProcessStream" msgstr "" "Wx::Perl::ProcessStream 的版本是 %s , 据知会引起一些问题. 获取至少 0.20 版本, 可以输入\n" "cpan Wx::Perl::ProcessStream" #: lib/Padre/Wx/Dialog/SpecialValues.pm:18 msgid "Year" msgstr "年" #: lib/Padre/Wx/Editor.pm:1612 msgid "You must select a range of lines" msgstr "您必须选择多行" #: lib/Padre/Wx/Main.pm:3404 msgid "You still have a running process. Do you want to kill it and exit?" msgstr "当前有一个运行中进程。是否终止退出?" #: lib/Padre/Wx/Dialog/Preferences.pm:989 msgid "alphabetical" msgstr "按字母排序" #: lib/Padre/Wx/Dialog/Preferences.pm:991 msgid "alphabetical_private_last" msgstr "按字母排序(私有最后)" #: lib/Padre/CPAN.pm:185 msgid "cpanm is unexpectedly not installed" msgstr "cpanm 未安装" #: lib/Padre/Wx/Dialog/Preferences.pm:988 msgid "deep" msgstr "深度" #: lib/Padre/PluginHandle.pm:93 #: lib/Padre/Wx/Dialog/PluginManager.pm:530 msgid "disabled" msgstr "禁用" #: lib/Padre/Wx/Dialog/OpenURL.pm:79 msgid "e.g." msgstr "例如" #: lib/Padre/PluginHandle.pm:94 #: lib/Padre/Wx/Dialog/PluginManager.pm:518 msgid "enabled" msgstr "启用" #: lib/Padre/PluginHandle.pm:89 #: lib/Padre/Wx/Dialog/PluginManager.pm:491 msgid "error" msgstr "错误" #: lib/Padre/Wx/Dialog/WindowList.pm:350 #: lib/Padre/Wx/Dialog/WindowList.pm:354 msgid "fresh" msgstr "最新的" #: lib/Padre/Wx/Dialog/Preferences.pm:726 msgid "" "i.e.\n" "\tinclude directory: -I\n" "\tenable tainting checks: -T\n" "\tenable many useful warnings: -w\n" "\tenable all warnings: -W\n" "\tdisable all warnings: -X\n" msgstr "" "i.e.\n" "\tInclude 目录: -I\n" "\t启用 tainting 安全检查: -T\n" "\t启用许多有用的警告: -w\n" "\t启用所有警告: -W\n" "\t禁用所有警告: -X\n" #: lib/Padre/PluginHandle.pm:92 #: lib/Padre/Wx/Dialog/PluginManager.pm:503 msgid "incompatible" msgstr "不兼容" #: lib/Padre/Wx/Dialog/Preferences.pm:984 msgid "last" msgstr "最后" #: lib/Padre/PluginHandle.pm:91 msgid "loaded" msgstr "已载入" #: lib/Padre/Wx/Dialog/ModuleStart.pm:148 msgid "missing field" msgstr "缺失字段" #: lib/Padre/Wx/Dialog/Preferences.pm:982 msgid "new" msgstr "新建" #: lib/Padre/Wx/Dialog/Preferences.pm:986 msgid "no" msgstr "不" #: lib/Padre/Document.pm:942 #, perl-format msgid "no highlighter for mime-type '%s' using stc" msgstr "没有mime类型 '%s' 的高亮,使用 stc" #: lib/Padre/Wx/Dialog/DocStats.pm:179 msgid "none" msgstr "无" #: lib/Padre/Wx/Dialog/Preferences.pm:983 msgid "nothing" msgstr "无" #: lib/Padre/Wx/Dialog/Preferences.pm:990 msgid "original" msgstr "按原始位置排序" #: lib/Padre/Wx/Dialog/ModuleStart.pm:26 #: lib/Padre/Wx/Dialog/ModuleStart.pm:46 msgid "restrictive" msgstr "限制的" #: lib/Padre/Wx/Dialog/Preferences.pm:987 msgid "same_level" msgstr "相同层次" #: lib/Padre/Wx/Dialog/Preferences.pm:985 msgid "session" msgstr "会话" #: lib/Padre/Wx/About.pm:107 msgid "splash image is based on work by" msgstr "闪屏画面的原作者" #: lib/Padre/PluginHandle.pm:90 msgid "unloaded" msgstr "未载入" #: lib/Padre/Wx/Dialog/ModuleStart.pm:27 #: lib/Padre/Wx/Dialog/ModuleStart.pm:47 msgid "unrestricted" msgstr "无限制的" #: lib/Padre/Wx/About.pm:342 msgid "unsupported" msgstr "不支持" #: lib/Padre/Plugin/Devel.pm:96 msgid "wxPerl Live Support" msgstr "wxPerl 在线支持" #: lib/Padre/Plugin/Devel.pm:90 #, perl-format msgid "wxWidgets %s Reference" msgstr "wxWidgets %s 参考" #~ msgid "Could not find file '%s'" #~ msgstr "无法找到文件 '%s'" #~ msgid "Open" #~ msgstr "打开" #~ msgid "" #~ "Project directory %s does not exist (any longer). This is fatal and will " #~ "cause problems, please close or save-as this file unless you know what " #~ "you are doing." #~ msgstr "" #~ "工程目录 %s 不(复)存在. 这是致命的, 並且会导致一些问题. 若您已明确应如何操" #~ "作, 请关闭该文件或者将其另存." #~ msgid "Automatic Bracket Completion" #~ msgstr "括号自动补全" #~ msgid "When typing { insert a closing } automatically" #~ msgstr "当键入 { 时自动添加一个右括号 }" #~ msgid "&Regular Expression" #~ msgstr "正则表达式(&R)" #~ msgid "&Find Next" #~ msgstr "查找下一个(&F)" #~ msgid "Find &Text:" #~ msgstr "查找文本(&T):" #~ msgid "Not a valid search" #~ msgstr "非合法搜索" #~ msgid "Simulate Crashing Bg Task" #~ msgstr "模拟后台任务崩溃" #~ msgid "Pick &directory" #~ msgstr "选择目录(&d)" #~ msgid "Search in Files/Types:" #~ msgstr "执行搜索的文件/类型:" #~ msgid "Case &Insensitive" #~ msgstr "匹配大小写(&I)" #~ msgid "I&gnore hidden Subdirectories" #~ msgstr "忽略隐藏的子目录(&g)" #~ msgid "Show only files that don't match" #~ msgstr "只显示不匹配的文件" #~ msgid "Found %d files and %d matches\n" #~ msgstr "找到 %d 个文件和 %d 个匹配\n" #~ msgid "'%s' missing in file '%s'\n" #~ msgstr "'%s' 缺失, 在文件 '%s'\n" #~ msgid "Quick Find" #~ msgstr "快速查找" #~ msgid "Incremental search seen at the bottom of the window" #~ msgstr "在窗口㡳部显示增量搜索" #~ msgid "Show a window with a directory browser of the current project" #~ msgstr "显示当前工程目录的目录浏览器窗口" #~ msgid "Show Errors" #~ msgstr "显示错误列表" #~ msgid "Show the list of errors received during execution of a script" #~ msgstr "显示脚本执行时所收到的错误列表" #~ msgid "Rename Variable..." #~ msgstr "重命名变量..." #~ msgid "???" #~ msgstr "???" #~ msgid "No diagnostics available for this error." #~ msgstr "没有该错误的诊断信息" #~ msgid "Diagnostics" #~ msgstr "诊断" #~ msgid "Errors" #~ msgstr "错误" #~ msgid "Info" #~ msgstr "信息" #~ msgid "Key binding name" #~ msgstr "组合键名字" #~ msgid "Action" #~ msgstr "行为" #~ msgid "..." #~ msgstr "..." #~ msgid "" #~ "Cannot open %s as it is over the arbitrary file size limit of Padre which " #~ "is currently %s" #~ msgstr "无法打开文件 %s 因为文件大小已超过 Padre 当前设置 %s" #~ msgid "Term:" #~ msgstr "查找什么:" #~ msgid "Dir:" #~ msgstr "目录:" #~ msgid "Line No" #~ msgstr "行" #~ msgid "GoTo Bookmark" #~ msgstr "跳转至书签" #~ msgid "New installation survey" #~ msgstr "新安装以观望" #~ msgid "Switch menus to %s" #~ msgstr "切换菜单到 %s" #~ msgid "Convert EOL" #~ msgstr "转换 EOL" #~ msgid "Replacement" #~ msgstr "Replacement" #~ msgid "%s worker threads are running.\n" #~ msgstr "%s worker threads 正在运行中。\n" #~ msgid "Currently, no background tasks are being executed.\n" #~ msgstr "当前没有任何后台任务在运行。\n" #~ msgid "The following tasks are currently executing in the background:\n" #~ msgstr "以下任务正在后台运行中:\n" #~ msgid "" #~ "- %s of type '%s':\n" #~ " (in thread(s) %s)\n" #~ msgstr "" #~ "- %s 拥有类型 '%s':\n" #~ " (在线程 %s)\n" #~ msgid "" #~ "\n" #~ "Additionally, there are %s tasks pending execution.\n" #~ msgstr "" #~ "\n" #~ "另外, 任务 %s 正在等待运行。\n" #~ msgid "Finished Searching" #~ msgstr "查找完毕" #~ msgid "Choose a directory" #~ msgstr "选择目录" #~ msgid "Please choose a different name." #~ msgstr "请选择另一个名字" #~ msgid "A file with the same name already exists in this directory" #~ msgstr "当前目录中已有相同名字的文件" #~ msgid "Move here" #~ msgstr "移动到这里" #~ msgid "Copy here" #~ msgstr "复制到这里" #~ msgid "folder" #~ msgstr "文件夹" #~ msgid "Rename / Move" #~ msgstr "重命名/移动" #~ msgid "Move to trash" #~ msgstr "移动到回收站" #~ msgid "Are you sure you want to delete this item?" #~ msgstr "您确认要删除该条目吗?" #~ msgid "Show hidden files" #~ msgstr "显示隐藏文件" #~ msgid "Skip hidden files" #~ msgstr "跳过隐藏文件" #~ msgid "Skip CVS/.svn/.git/blib folders" #~ msgstr "跳过 CVS/.svn/.git/blib 目录" #~ msgid "Change project directory" #~ msgstr "选择工程目录" #~ msgid "Tree listing" #~ msgstr "树形列表" #~ msgid "Navigate" #~ msgstr "Navigate" #~ msgid "Change listing mode view" #~ msgstr "改变列表显示视图" #~ msgid "Check the current file" #~ msgstr "检查当前文件" #~ msgid "Open In File Browser" #~ msgstr "在浏览器中打开文件" #~ msgid "Lexically Rename Variable" #~ msgstr "词法重命名变量" #~ msgid "Error List" #~ msgstr "错误列表" #~ msgid "'%s' does not look like a variable" #~ msgstr "'%s' 看起来不像变量" #~ msgid "Show the about-Padre information" #~ msgstr "显示 Padre 的“关于”信息" #~ msgid "" #~ "Ask the user for a line number or a character position and jump there" #~ msgstr "向用户询问一个行号或者一个字符位置然后跳到那儿" #~ msgid "Show as hexa" #~ msgstr "显示为十六进制" #~ msgid "" #~ "Show the ASCII values of the selected text in hexa in the output window" #~ msgstr "在输出窗口显示所选文本的 ASCII 十六进制值" #~ msgid "Ack" #~ msgstr "Ack" #~ msgid "Insert Special Value" #~ msgstr "插入特殊值" #~ msgid "Insert From File..." #~ msgstr "插入文件..." #~ msgid "Close..." #~ msgstr "关闭..." #~ msgid "Reload..." #~ msgstr "重新载入..." #~ msgid "%s apparently created. Do you want to open it now?" #~ msgstr "%s 已创建。现在就打开文件吗?" #~ msgid "Done" #~ msgstr "完成" #~ msgid "Timeout:" #~ msgstr "超时:" #~ msgid "New Subroutine Name" #~ msgstr "新子程序名称" #~ msgid "(Document not on disk)" #~ msgstr "(文档不在磁盘上)" #~ msgid "Lines: %d" #~ msgstr "行号: %d" #~ msgid "Chars without spaces: %s" #~ msgstr "字符(无空格): %s" #~ msgid "Chars with spaces: %d" #~ msgstr "字符(带空格): %d" #~ msgid "Newline type: %s" #~ msgstr "换行类型: %s" #~ msgid "Size on disk: %s" #~ msgstr "磁盘空间: %s" #~ msgid "File is read-only.\n" #~ msgstr "文件只读.\n" #~ msgid "Skip VCS files" #~ msgstr "跳过 VCS 文件" #~ msgid "Skip feedback" #~ msgstr "跳过反馈" #~ msgid "Norwegian (Norway)" #~ msgstr "挪威语 (挪威)" #~ msgid "Ping" #~ msgstr "Ping" #~ msgid "Dump PPI Document" #~ msgstr "导出 PPI 文档" #~ msgid "Enable logging" #~ msgstr "启用日志记录" #~ msgid "Disable logging" #~ msgstr "禁用日志记录" #~ msgid "Enable trace when logging" #~ msgstr "记录日志时启用 trace" #~ msgid "Select all\tCtrl-A" #~ msgstr "全选\tCtrl-A" #~ msgid "&Copy\tCtrl-C" #~ msgstr "复制(&C)\tCtrl-C" #~ msgid "Cu&t\tCtrl-X" #~ msgstr "剪切(&t)\tCtrl-X" #~ msgid "&Paste\tCtrl-V" #~ msgstr "粘贴(&P)\tCtrl-V" #~ msgid "&Toggle Comment\tCtrl-Shift-C" #~ msgstr "切换注释(&T)\tCtrl-Shift-C" #~ msgid "&Comment Selected Lines\tCtrl-M" #~ msgstr "添加注释(&C)\tCtrl-M" #~ msgid "&Uncomment Selected Lines\tCtrl-Shift-M" #~ msgstr "删除注释(&U)\tCtrl-Shift-M" #~ msgid "&Split window" #~ msgstr "分割窗口(&S)" #~ msgid "" #~ "File has been deleted on disk, do you want to CLEAR the editor window?" #~ msgstr "文件在磁盘中被删除,是否清空编辑窗口?" #~ msgid "File changed on disk since last saved. Do you want to reload it?" #~ msgstr "文件在上次保存后有更新。是否重新载入?" #~ msgid "Found %d matching occurrences" #~ msgstr "已找到 %d 处匹配" #~ msgid "" #~ "Error:\n" #~ "%s" #~ msgstr "" #~ "错误:\n" #~ "%s" Padre-1.00/share/ppm/0000755000175000017500000000000012237340741013042 5ustar petepetePadre-1.00/share/ppm/README.txt0000644000175000017500000000010211137755212014532 0ustar petepeteThis directory is used by the ppm client to store temporary files Padre-1.00/share/icons/0000755000175000017500000000000012237340740013360 5ustar petepetePadre-1.00/share/icons/padre/0000755000175000017500000000000012237340741014454 5ustar petepetePadre-1.00/share/icons/padre/README.txt0000644000175000017500000001142011351521654016150 0ustar petepeteNote to Packagers: This directory contains padre-specific icons, all of which have either been created from scratch by members of the Padre team as described below (they fall under the same terms as Perl(!) itself) or have their source individually documented and verified with licensing information below. Note to Developers: Make damn sure it stays that way! Icons: ============================= logo.png ============================= Original source http://commons.wikimedia.org/wiki/File:Blue_morpho_butterfly.jpg Transform by http://commons.wikimedia.org/wiki/User:Lycaon as transparent image as http://commons.wikimedia.org/wiki/File:Morpho_menelaus.png Colour-enhanced and modified for transparent icon use by Adam Kennedy. According to http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#How_to_comply_with_the_licenses files with several licenses can be used under either one of them. Consequently, the logoimage can be used under the terms of either of the following: GFDL-1.2: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". http://en.wikipedia.org/wiki/GNU_Free_Documentation_License CC-SA-3.0: This file is licensed under the Creative Commons Attribution ShareAlike 3.0 License. In short: you are free to share and make derivative works of the file under the conditions that you appropriately attribute it, and that you distribute it only under a license identical to this one. http://creativecommons.org/licenses/by-sa/3.0/ ============================= actions/x-document-close.png ============================= Taken from the KDE4 Oxygen theme actions/application-exit. Downloaded from: http://websvn.kde.org/*checkout*/trunk/KDE/kdebase/runtime/pics/oxygen/16x16/actions/application-exit.png The copyright information of the Oxygen Icon Theme reads as follows: --- The Oxygen Icon Theme Copyright (C) 2007 David Vignoni Copyright (C) 2007 Johann Ollivier Lapeyre Copyright (C) 2007 Kenneth Wimer Copyright (C) 2007 Nuno Fernades Pinheiro Copyright (C) 2007 Riccardo Iaconelli Copyright (C) 2007 David Miller and others This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library. If not, see . Clarification: The GNU Lesser General Public License or LGPL is written for software libraries in the first place. We expressly want the LGPL to be valid for this artwork library too. KDE Oxygen theme icons is a special kind of software library, it is an artwork library, it's elements can be used in a Graphical User Interface, or GUI. Source code, for this library means: - where they exist, SVG; - otherwise, if applicable, the multi-layered formats xcf or psd, or otherwise png. The LGPL in some sections obliges you to make the files carry notices. With images this is in some cases impossible or hardly useful. With this library a notice is placed at a prominent place in the directory containing the elements. You may follow this practice. The exception in section 5 of the GNU Lesser General Public License covers the use of elements of this art library in a GUI. kde-artists [at] kde.org --- =============================== status/padre-tasks-idly.png status/padre-tasks-running.png status/padre-tasks-load.png status/padre-fallback-icon.png =============================== Made specifically for use in Padre. Copyright 2008 Steffen Mueller. You can redistribute and/or modify the icons under the same terms as Perl itself. =============================== actions/toggle-comments.png =============================== Made specifically for use in Padre. Copyright 2009 Breno G. de Oliveira. You can redistribute and/or modify the icons under the same terms as Perl itself. Padre-1.00/share/icons/padre/all/0000755000175000017500000000000012237340741015224 5ustar petepetePadre-1.00/share/icons/padre/all/padre.ico0000644000175000017500000005372611621725211017023 0ustar petepete00f h00 %  B hnS(0`  $+% - 5*;?3 ; *20$;$?*>*>76B O C K[ W X DHED H X _gto` i u }owO(F J" V$\,\# Z3G$B'O*K4c" k' f) l, t$ }& t, }(t<d*q4B-#K3#V8&C62U<6|CNA?]F0kI,vJ&J$uB-uI+bL<tM9lU;wV<_HBdNBkNBfQBmRCnWOn[HsVAvWIz]Ik\Ys_RxgXvnm  * 9 :!$:2?%'75-52;;49J G VI W Z DNdklj o~b[.e#u8]MF[VRZ\LCJMXYh l v u u | y ne{bckmflbdmjvvcKqLpR~Xtdqj|e~l{vpyx~{Ȉҁԏׂ ܄ ݛ   ۨ   Յ2՗1ث8ײ9  Jco|uws˯NժIʹYѧyX];: .2(M1׾-ZP?ȩx*[Aҭ?6e  ʦzfXa&qt{ n̖ysccIrfdJRÙyf,gINlscs݅^_otws+*q (usfg3'yglcpf(pq߆5sptqcfddj*ΜwjGnytddfgfOBFtqtgqs':iOjízttzq8 ̯zvvzzg+0B;Ȫqddqttpd,#Ăưzgdggttqp rי'Űyqqzzvf#'hɨvqpbm{|ל 'ǧspb"O8<ϋ9h([[h};ÏjHÍ"̭٥"RԤí~#Ȱ⯩4E}פĬr>̰̰` ̭ims~CG}̘)mlޝ .ǩ(Akxuz;Y1ΰw"!kgftџiEX1Пuow%gqzx@E)$cd%/Pf0 Dqd+k> Q?tbU "l8K`` W`K\TV????????( @   #), 5 ?%,; ?#;%W [ NA\ UZ cmg m up tx {C ]-[+ [0F C-V Q4c" f, l+ p& v+ b4k<q4z=k/z+^4!Q<#WB)N@3ZA0ZF;^G=^I<nC%xK<kR6kTCaUJnTKp[IqcJugX~igrkkvpo .4 8 3/!-2!"$+#%*(59,/509268:B L TW_\J_ Mc h W;c8CGGDNDM@QQRS[KCKJNOS\[XU[bk u p| hx~ckoeekjsr|r{]AxDiTo_mZr^uh}n{kzdwtv}yz͆ܓݔ     ڤ۬    owpy}}r3(q ?5uE=wΐ7`'B<ƍ~SoPPKa^s\hd*JlU ) _QTM,|ԇ{GpkNTQY0:oc[Wxz¾mcppU0 ɔmMTchUKVƫkkpb@v.XȞjR!.Wy  +۾ԼYV ӬX᧒)9Ȩ԰YƦ-%վHZ־;DI6&ֽӪgI_S41gf#ep2B$OM A f.>/n"  ]t)ICF8???(  : *U ui$ r* r?}6 u=v3A6-C:4e?,jEaI/iB>bQCy]E|i\)(!&-5'3:X FRE]Rl e g j sM&^%N;^=e0k?{)AGDNEP[bq ~ a} ghmWF[Jr]tmzo}w҄ ҅ Ο      Ry BZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq5?*IL(hO><Gcj 8$q)U^heD97H.bTlm\# M_kn,-R:!"r+N[ Q%/o@gil]&YaXW6*FS[ZKd`PE3;Vf14AC=2 BR'0$ pJ (0`         $KX'e?e  !0 0=H  7  2;&lU m- e)8>;'  $A<5\$k Ko3J/^$?![*hҁO(84Y   &,q7'~( g9|Q&) !)\ OԏB+" g   *7# W u kH^|& ]11h@J  ~&$(t $ 4 Kd:XZC 9o(.  N-2V  "8 _+1 ?2 / ~  "(5 k߮ $;7!>  4$=C$.f Y3Lkz$   "D^! ١,6:ڬ l! ! 24 ;}d,9o4o,@7u Wi 47ݮܭܞZ3 ;!} I'_ C 6F[ $O  Xh `H!)ث j  258+' 5hU />(  A   u>}l n7ܬ< P' 1-1b=3-m X](!5 k* Zl ܄ nޣݭ  +D)v/ mr]@F.%(&Rm0_  Ic" o ݜ <  `. : qV\mG9)/<FA+DLb" | ٧٫  p,  ' 3 } tH5.3;:5m"U  V$ߤ߫  p/ m.  oC' &-, u/9)[  [^     NV uH7-/#\ <KF|3a ۤߛڤި UT \ ixedM5!%59/X V K"v a fz  { _ ' ߥ q\FC1( . -p k?VBK ܅    o <[ u  pT@0"Y U$)Y  /$2vId1_! v"t!Dh dQ u$ h q=wC <#p=2!O,!F(9   G1:z^ɞȌkedl zzxtO1h l T M I ^ ̈́ ˓ОәnjpMG,\ ! Plp   hu'   w+   S  Mp& x  - p I$ zK$,D  X`4k'  FN5' $bY4%g' |C ] ܭڪ Y Q  Z y ~ru ߜeMq{T E(X.W^=Fܖ{oݡޝiktO <p! f _z xff yd R ; bS"4\8X |٫ hbj z? f# n( b~{veiy  H>_-H8@ ޞn^[_b2 d$ 3 6wWQn| J &%YH $ 80 ΛVڨڣOObgv `%4 !AbWTw r =C%1$  H1CȂ  fmsnNj a'd$ 75>Ui,1& 2\/ٚ Wo ycK@<Y a(  F-Wv = AO! "@_,ޥu 3?v bLRY>F V7}*$h:c,x)9=et<..n#C"L=?k rDwa  tB F-(! Y:3BGdt ׂ V$-*s$ ;K2G__J, r^ < ,j*%Ed"O  u* .$# /FQ }& VU+\ X #2+':' 4T (N{\i M"/h  V4O$ * &#fJ3(*-!7"C 3[-(3 r P-" @$ J" #:O8xT.7/ 8[8 : D AD* 9O+,? > ???( @   $S@$\ &% !C\y>͔L q44+X $-n=B tZ) '` _9   ,/ J NDK$ K$ [06 $+m OQC`  %p O I) N/mp7j$ <u+!T  N'[,|-LGm*O O9٬ *, +.7 WS"@ c" e+XP h ,/Ns:0b3; jv'  ߐ N$5W ~\]H8%@L!+ 3 ڦ _  c ^2$;9[ *t-   / $ X2 &)W z@ cڤڤ.{sF./9#uSwAs[|   n, 9 xK3w A  Q>DyJ k* Z 6 p M(^ G\ )H*zPXChU?T! m7` U p ݒ/b4 .4 2:", Q c- 8  qYh.MH9! xܣss Y$ 2} jff, 6>'-h]- ޭdo y+!* oXe u 7E ,5͆ۤOSP"v$ E]U V P&  W& tqh9%@"K z=+!)Vb4ٗ7k uJJ59) :V {(<Rk<<#N%C sDg +#,#G'6yj+ 0# @ p& [6 f#*( C-?2WTP* R+I2"s #B2d9%( 7I E '}# 5` ??(   0 6v@@#4LJظQ`) 2EΟ , :bPE h" (jE  i$ G:, T  -gD!Aa! j  u=r?3&&? u9 ҄  e g N-y  @W:Zl ҅ r* }6 X hvC+e q s. r}?  fRm 6&1h5 'E |G*  tE~ } [n# A"HU a IG ,)w6 ;u @#:K% 9 = #   D E  ?ϬAAAAAAAAAAAAAAAAPadre-1.00/share/icons/padre/16x16/0000755000175000017500000000000012237340740015240 5ustar petepetePadre-1.00/share/icons/padre/16x16/logo.png0000644000175000017500000000200711351521654016706 0ustar petepetePNG  IHDRagAMA a pHYs  d_tEXtSoftwarePaint.NET v3.36%IDAT8O}S}Lu~8#.&rgq!DsBdaP6^`$-yIZYX k ݐ2z pC~~d|y,ԯ`jFZ6혘qH&ʕlNGFq YF_ [BR'"R?qi^{#Du7Gx qulyiyPd99eu;V:!uBN>6G$w@\; 8 Դge#}Lkh SwnP%HR&Q4ywy"[osBg4́@yc#s%ۨ8].`OAPo4ۺ)c|rܸLjzPTm";{E2T S ɘo0ǡ聢 u(- YisFzBr x rWYB: $o6a zV$B\7G?!&ȧ,] 0 ص΂R} z PVw`c4̀Fi>f(!,Rրy{@/FCCYyj' xS>{zU?G'@.PfEG=P:Q_>8 iv0(4hٍ# A ?7@QghYZ4NQ!!rE[-AO5/؃c `rշ, vm' 潃0g ;|V s2?Tc'EV^u~k|m+;tK/!IENDB`Padre-1.00/share/icons/padre/16x16/actions/0000755000175000017500000000000012237340741016701 5ustar petepetePadre-1.00/share/icons/padre/16x16/actions/breakpoints.png0000644000175000017500000000045211653263021021725 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME )BIDAT8͓0 ?k3_yw\ f(,wSIVDF43DR2 Pg*]M0*{,/BN(bq-_nAVQ/O.}M\|IR۶BiCK3fHnQK멅=k7L 79ҫIENDB`Padre-1.00/share/icons/padre/16x16/actions/pux.png0000644000175000017500000000072611663507375020242 0ustar petepetePNG  IHDR tsRGBbKGD pHYs  tIME 'NL,VIDAT81KQ߫AdT4JKm-mAh-hlAiAhqo M."4UKK*z5G|:ǎmd<8!Ni&"*WJ7\Y"3 Y&6ϐm, NB4ʺG%'μ4oZw %C5yhz?#?HoiY#JnAzE[ \hִ+0hf~G=[6i<ps%Wild,ړzSsS!{g̓Gf+k ͯ0CjFJ{}|>5/<IENDB`Padre-1.00/share/icons/padre/16x16/actions/metared.png0000644000175000017500000000316611745263105021037 0ustar petepetePNG  IHDRatEXtSoftwareAdobe ImageReadyqe<diTXtXML:com.adobe.xmp ~IDATxڬR[Ha>eg/u@P+#EE2MJ6e)} "I)#"M@膐fQ/f)^Zπ=ysib6~ڊre`@!JLmߛqtNat5; UvlI,A[fw HNC;Uھ[6]KbxpqC,(s+'(X@tM01 +0Z߽4JTY17#P)ٰ5>$+۬?AQ(w 4I3,rNB2SAU{ASm=q}{*B?̚`wEdߏ+XV_Be+גa*.V Rb]>{5y֚_AlVRե6 6nvo֕LuaAQ_ tY4c$1x.xnJ-|Y $Ұ`9*}o~QQYuPd]EɼJB8e>;(X4AimGdu-+I%0Yr")YB ܶ!u:>3rB@5L0pg 1rNW KVVc0@ѵ i,BpIENDB`Padre-1.00/share/icons/padre/16x16/actions/step_out.png0000644000175000017500000000043211653263021021244 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME  1m IDAT8˭S :W} ːa!Kp^ #.hgxIB%Ԝq€2䐒Kjz[ljv]f? 1m`)J03~Mε0d+W !LS_.Ε4jhY> =?1.NIENDB`Padre-1.00/share/icons/padre/16x16/actions/4d-m.png0000644000175000017500000000050311657733764020166 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME  }IDAT8бJBaߑC m]@K H]Ew+]B` -.Kv&m4sД>1#DwU n ~XFirAb F8#:[9Z [su#6.<8M/[ʫwb`L" 6Ǽ Oddh8P3.<IENDB`Padre-1.00/share/icons/padre/16x16/actions/70-p.png0000644000175000017500000000051511661262611020072 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME ]wIDAT8ҿ.DA]( (WB:Qxz#h^@Ԣ'+67w7#Z}s7աso{rMvܽ:.CltpLBXEF䴤o]l4&) xMՒy,2^pWzV=8'~16_:M|2^<+daVv׏ I> |IENDB`Padre-1.00/share/icons/padre/16x16/actions/run_till.png0000644000175000017500000000041711653263021021235 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME /OcZIDAT8˵ DwK;? n2\=uf֜dy n=}K0|ܭ+16'魖FJbL,Zpm}-B , = \ ^V8rJ@yp|q/v6*ɵIENDB`Padre-1.00/share/icons/padre/16x16/actions/74-t.png0000644000175000017500000000036511657733764020126 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME .XvuIDAT8! BQᏋA]Y܄h b6hSԇp *2X'DdW}8`M] #2p -ɜL]5'9kVr%=IENDB`Padre-1.00/share/icons/padre/16x16/actions/4c-l.png0000644000175000017500000000031411657733764020164 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME  SLIDAT8c`d5 Wa``f``#n u>200&sǁ0 Jv~IENDB`Padre-1.00/share/icons/padre/16x16/actions/morpho3.png0000644000175000017500000000177311656556273021023 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME ~T{IDAT8ke5|f٤PhzRPJA* ^ /D/{CAQB"5BLSSf&3=σ{y  OWxx4OJG=&uK?ltbgE,]%f`orfQ$f+adڷIl]U+?h Zv˽.$ v|Lv=1ӜEJ\Rh,GHՈ2D4DYXYq+Zw ,5+9\*0 (Y8 ʫF6 #,VIPŐZx^mU6KE uWXXːqTn[- r뜃ujI[V܆0S,<Ȥhm5sD%n, }SɈbm]O!!\yc#m28诖{͑nm􌟜/_cfHxP'ITHs{)%hgS޸Mz]>Ƭnm%{,t>kWʦLIENDB`Padre-1.00/share/icons/padre/16x16/actions/57-w.png0000644000175000017500000000061711664743065020123 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME  bIDAT8=JDA=#]s T@ܧFC?&PQXX ;k5]]U b8' qF~K3ˈu"AP`=bHLxbM< 5Uţ.Jv{+ Snbu.i vfp;"f̈́'+hsf[^qP 3q,}Xי> lOHMEpBsC|"mMo =PE]'YU_a}Nu\wIENDB`Padre-1.00/share/icons/padre/16x16/actions/65-e.png0000644000175000017500000000050111657733764020077 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME  ~IDAT8=JgJҨ !`kkfy痥KsrKH4M CrGN!d ,ю=gRh3徭lmT Moc>8UՌ`%6UGXk1+‘RYmjndAhyޓ_E,XJcoD)k* гSf|3'NvXUϘ[Pf*"b1^+B{ypG#@-5Ð+@] Ԟ?A{g۫T7fDL2XW9_/׌?UnND4" >byPx[[7O[ߔz5TY_U^j; "Kx 17f-IENDB`Padre-1.00/share/icons/padre/16x16/actions/x-document-close.png0000644000175000017500000000151211351521654022574 0ustar petepetePNG  IHDRabKGD pHYsvv}ՂtIME  )xoIDATxڍkTW?7o^f2$'u\4?Ԫ *Em.ڕJv]A6]tbn\ؒt!313̼_yxt!҅spUk~hݛ}[ `w{je匪_t/5E ʹTΝcX$􌷶F$:@'E|6aD\I߀"[JT6Cd1:Fg0Zby_wV p~r+s( Ey_Q[¼ m a)s [782ٯ.&m2dȴ P7VjrNr*ji?1^.i;ju-_7ATV=buwp"@Al [YB$CZV;[_MxPZ#*jR!:yIENDB`Padre-1.00/share/icons/padre/16x16/actions/toggle-comments.png0000644000175000017500000000076511351521654022523 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME1q uIDAT8͒Ja!THx[EtT"<@4/$K^DzAX/ŏ"6Q&FQq&6$Ny8g3P [D8yjt&|n] XIvS'wr5S/"{Mox iv,`zw"T*2L #>FF[GJIt;@/$%/KŰY)ehS\/K\-Gxo@ [x}C",V@vLqv @l'v?ıD{a;i@`d59ue* lG!?wlʚ,XbE3a@3%"eOIENDB`Padre-1.00/share/icons/padre/16x16/actions/6f-o.png0000644000175000017500000000047611663472537020200 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME +IDAT81JCa/ (Rx;K/a#'H0v"&Ťo΅mawv]UdDdFHt,  D`L>IvNB%來5+{5!xX#[V;[ ְvmUE$OtJ_y]a''h]NQIENDB`Padre-1.00/share/icons/padre/16x16/actions/62-b.png0000644000175000017500000000050211657733764020072 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME  .V IDAT8˵=JCQ(&q b!iҹ Rp n!]AJccXh?p.1S|y[v*kZjdܒy"Mx.2,bŒV)4[eV 5mJִ>>Ra->#W; N9#7Ek]:4IENDB`Padre-1.00/share/icons/padre/16x16/actions/morpho.png0000644000175000017500000000065611653263021020716 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME  ;cN.IDAT8}M1 E_V+AT@4g.ɉ# p\*J@sw@Үa$`)rK_ÃvsJ'0D( ip*ج\Vlq>DȊ܊4c4"bk7"sM.+'wI45'HBfp۱=qrրaیA"r8`c-sv84CG߉/^Uu;?a-`fVAun=|s`qp>]UoCvIENDB`Padre-1.00/share/icons/padre/16x16/actions/76-v.png0000644000175000017500000000043511657733764020130 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME 7*U^IDAT8푱 AEFbb%v`-y ؂Mv`b`"\L8a!Eo: )SllWE)Q|cRN!5xwq8k ]p]Arf+=FO\/ qI7y#IENDB`Padre-1.00/share/icons/padre/16x16/actions/step_over.png0000644000175000017500000000046711653263021021420 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME '3%ݡIDAT8˭A@ EGcpqL@6!@~;ѱ3c1ZjEZRJhbsN2J!ZnYD$8,4Mީz;K%$`$>'[0땟ܸ GFE˖gf9kK\p@jIENDB`Padre-1.00/share/icons/padre/16x16/actions/54-t.png0000644000175000017500000000030611657733764020117 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME PQFIDAT8c`h````XBG E0?h؛M/ |*( QF Ʃ6ޓIENDB`Padre-1.00/share/icons/padre/16x16/actions/dot.png0000644000175000017500000000024111656556273020207 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME 8M!IDAT8c`` a`߈Kx:UIENDB`Padre-1.00/share/icons/padre/16x16/actions/morpho2.png0000644000175000017500000002236211653263021020776 0ustar petepetePNG  IHDR:0@ iNsRGBbKGD pHYs  tIME s IDAThޭwxT>mfdI/BB"RT@x{ov^]ņ H"R{$3~럽>{휽7 ɚQ#ߎȉs&Tӯ8v4GJ̘ڏYKfNlHƼ>a Zjt͇ .[aV.΍;~{/E$UB[#ﴄ09==i w @**o@?LDIΜ~MW yPipO.\81:>xmv.%!R|jh8ZTBGyl.k3[XћEbE7@mC7 xt/ON7<*p߁b@hpjW Lm%0^R,}[C݇#.:,O{5t T,&yb,"h__R}g P0Ira-UH%"e1p#bB  O?⑨fk[w1C^2^ fshGP&DbϮ).]ˏϹ㆙E=(h:9; +_ȣȻGKlT{o:- Qs٣_MW߼?qM`^{v5譣̬gUWSY#1HM;X*jk?ҩv`.2/IY>m?޸U؃9n 67dE`;{IIuwfTp;*rŚөq?FV&W_6Ϡ#QYY)Lwq@bK`NM$߰UWO\<;P?Yk˫GuLh䅵 Nˬܒ3 -YcX_!ikuknc}W-\y}$ޝ!{Ϩ+gP$ 'L'|ZQZ)c>|Z(,poTM-~go1UuBGQ2XV%>ůeY ZI~1ük.1W̠:cK`g{Ȃcܸ`$4?gA1 yx3v>3+\^',f|螘WuxLɲB}r{CnUGjɴf_ q.l3-پޠGJ% y5ErbTɕvםl=Zz|),|%bg^xyUo[7.ϻiVWu˜j7~{_4 IITMP9> {a7P ~ܤ׾=YTW]׌#EՖY?򻯲[L].@/@4U܋ gZk*dβJ5xۖKGΘ]Y!|6_p{Rz7hQb,>a ŦZܾ|J \=ʹ<F?tto<)}%P. vW#q8A*:r0ukR747Éȡm^3GBw7<2ԚoԼ'%*CH"ܚ'CQC?#( pUI x֗~u}K.ڕNJn?:&M.X~ ?=R<|.|&Zzh3o1HeV TP(22ڌ(2/Wyg<3f:#?-;zcgW^> EHN- #Ei> &lvX2l/Hz$ۦOΣ? Fާ㩘iuٷU g-Zz5}£j5Đ7ݴtʸ믪:h7>jZQ)}%l2NCL˺H"B *a953j*?fvLa g04iU%‹e{(ݐ荭z#+ۦV*0Tw pe6涵+RW/} ? kv` a`+Ҩz+_|kw75G!NL;O<ąw"Jlk<)I`4]ݏbZ 2B Z 9xokkpu}tUͷ$BNI bWcIn5s]C'_Oݤ=_ yWT#xF )~Յ+1n|bn*%XSW-0j<359VP5m;[^Ƈ\8e󩋫k[˭r Zp*^ZuqxrT3oTԣ`!Ϫ4j1.)s w ,j^mk[J,K=b\,pjU^~aGE +Є"ĵ Q81,8:==>H9MH+3B De"-()w2td枆fJ`d -"Bm44tb58_ܴoiwlMx2ǾkØhqz@-aq2Ŧsp`:( uybT{$Dm,Nv?3fkfB~Awg/:UEPJߟ8 $2 n (TTdNC,ceO4!_t4^w#%54ꇎ{BDMQ G^h hԂMt?3c̢ 䌉|G@,jJNF E#'GQAE?!CX>  3 FŜ# dՠ?eE$#iDN@ Jk*-"$D5­Pj~ggGL9nS?na/Jʜ3C^mUf 79a,ǟ~=,S^ G}\]~1:gƳ"ʫ`? }eJ_Wg<~lHZBDڢQ.m8dӇb?dfl:v;L+=XjBXNPM52V"0.[dZ'UBr+:?4'RC=\Y-pxU+Q^-RD\м8٠c/|;{h m0# E|(W+`/ϬX9V홶g7.Z~>զk 37~.4.ϥa [PV0n%uơޤt)%QVt41_u{~hfR ]Rf JBnn+]^Tђ6 $ Q:;()5$Dr8MY֎ӭ:^Pjgζ}Itߑ eCJϏ={õs,:p:o`ۮ@Κ@6P[;CGYZ\'E.5)Xp>cTfC?zajz[x$vSi}VT&Ba]&Ez **&ǗUċﴚ#R/Fud2ˬմCёڙ#ngYը^אa?J\K;t]*ܻ|~͇sslI+c 8nX>|m.z`r7P%$JiԦ9*LK8 G+F2[-:mΟ}ۖ:o.jGEgKx#e[8Kt NMMA;HBYu.v@B6e =IYQeMg; "#Uwt֔:˫JZ>eKn[YϲUY*=gom1ޙ7͙_Zg%V1@ A2SDE2`|mJ͜,34]XHI9833!q<ᛀ0HeEH a2RtHjTJ@ :027'';׽Ӑ[D%yb-[Rࣺ# ӁF3D;m$"4hH|Q541>f_<1Ye, 0~, IubP̤ď ynveVg9ÁpNIId V'g/ {Tj2+xpį9q~hy8Y&9 H̿Ќ'C>C7Vis\v~@%5)!RQ*e0 dS8̦e% d0SHC,!0ޡB,hQYL,& gA$,'ӜQV#PLkZxaHS\'[FGarϞ=)yml| 2H4'ڱ*|yey45z-tEozpƥcol|{F'ț#QN8SG LsDBD"CMr|'*!pXVPC5UAHVW#+#B[Y \8J=ƌb:_~ߞ>zDen>[ï`~G0ipU8αƨɕ@C:8qVdv;拄S$  GtjIqI&'hxk4&װ(모@I2H"*:E< +) : "?B[{Nå#L(SJ"+jaY`̮GL&"p8Ojsj޲cV"FSR"HJɒB\XfA7n|NiY NN8\}WILNP`["sPĆS$cN-`ˠW٠0V̒-UFJ񴌸 m$ h#&56z҄xZ2 =nY7 I uK%7?Ռ]|s >OFy"fn ĵJē+(-q>zH&c"əUFOB2j2rY8+CF 1+ p0Thղ@C BWxzɤQOџSJť3l\6T-d,γH\/*N%GsIjy뜃dfN eg=O,]vdU%pp, |?|A-Z0,ST  `aD VID &06FFZ!#,+s!(*jTbsj$@m"iАזjgGY6q9,u,#}lzqv:n4 |LZ<giJiSgc_Ptֺ<~"H烠%7u"F!, I#Z T4n t ӄ zs R&%1$aC(XՄ1٩Gy^QB}j;(!7CwI)drMoy7P##[P2R[_suҴ=奩H"~R2荧2G`ĒR )MjL%qA2PM$DQ2qg3|,R x9l3! IQOǎ5.J?*i-}&϶Cc/R>#:֍/=T&BU5Պj׃*cBxiISU&#o;otfG?gR+1H,!F<_HVQI<"@ GO_H1vDS:7o_<ߐ]{:\N,;ZۑgQT\=1`%rB2]YhE, *e#rWE)5rhp'gdܩ=F EBR b x5 ũtJhPN-"͹1).6(ƌ)I9.sŋyk-`~%Wy9}$XBY茴;9?]+q j"?#eדXo_4fIDATI_~=s:)Jy4vnqi 4|z%+s(IT.U}PnTknNݲ#M%"_0Q6EiP}OC"hIH**\A(D2D@bXk(yOO{ŖG-Zqmy9Hm( Gqsoc>&brȳM b2pbZ6A, ^wsgik~qaQ)'t|7Hпln7}w8D`ӣ|4Ag{&(8ѠUN.0K^i( |ua͆ /!V˻[2;+Gkn]m u7WK'#f(K&#)pL /~~xvNUyfD;W5 /]>9{LΧGH#4|~MM[ukշf)ofO5]8ˮٿE_aտj Elc\WXXߟWK-M? UIENDB`Padre-1.00/share/icons/padre/16x16/actions/red_cross.png0000644000175000017500000000046311653263021021371 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME ;ݝAIDAT8͒1 EALH!8DbSHPZ&Ӑp-C†(=rYuw乊&,'DzOHk{sjBbcݶRz9w0Mѿs&4DRLځ1FAUglA9kX s89wB>N\I} H/m3zg 'Z .7ܽ =&;*AIENDB`Padre-1.00/share/icons/padre/16x16/actions/42-b.png0000644000175000017500000000051111657733764020070 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME !\IDAT8ҽ.Q砐L;FfRJ%H4 w@h\Q[P4H,͑Lߗa%YgZ峕ul/%n{61Q9-9nTH„JFsXn.vIW/3?L]W̢!(Mp_a#Kylq-!k<`e@1 VI2c IӏQodHI߿;0?K>[AIENDB`Padre-1.00/share/icons/padre/16x16/actions/77-w.png0000644000175000017500000000054411664743065020124 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME 4h\IDAT8ҿ+an&,eĢ F?AvnEup3 ``VWJcv] g{ޝt) Rz 6) Od;952/%K.EH3JB3/=7d=a8 f+z(Z2<]m2O8 g䞬6K^1iv[FJ #· &Ky?,|otchpPIENDB`Padre-1.00/share/icons/padre/16x16/actions/53-s.png0000644000175000017500000000051211657733764020114 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME : IDAT8!NCa5pŐ  7@BBZtk@$$E@P`*Oӕ;]4'|2$[󕭆Cbgֱ]2ܓk(gYsMdsvȘH9&%rWM΢j;/sCYR֐k yG 7]tpP{m&{v?1Q$=IENDB`Padre-1.00/share/icons/padre/16x16/actions/wuw.png0000644000175000017500000000107511664743065020245 0ustar petepetePNG  IHDR$~#sRGBbKGD pHYs  tIME (MNZIDATH=kTAB*PDE* ,lmT+)X(ILb APbAr,r\gwׅ$`i w9Ϲg1H\#Aۉ "UYw+ ?|ٰ c~.g*͘C 6Lx1xƷfl>YaA,W-xH,bGݙ| L(UcQnLm+YxF=,@L\ /𾅥.u4|Z&E ɓSDVQORQsǻU?mc;<5>B,u4O:{r>+q򆸟"M' bA%|NΟG=1S{7?2L\=HTݽ1N&aSv dݔ1|u:Vk}u:~b3IENDB`Padre-1.00/share/icons/padre/16x16/actions/bub.png0000644000175000017500000000101111663507375020162 0ustar petepetePNG  IHDR:sRGBbKGD pHYs  tIME '3rO~IDAT81HWQo(R 9$ FSK %(5TPACX44\F F Biixx>{|#ݰ\Q^ec!j;FI/r>Pczz?Wr>;/F<$-ּ8/{b/yNona\O5Ng 5!f1}8IZiDIAL"4~,#Fc)$uR~3d߃S^| aX&{W/`܆N 8^#m\݆gmB[O7FWbFܔ(PGnqؿWo/`i w? `X tsmIENDB`Padre-1.00/share/icons/padre/16x16/actions/45-e.png0000644000175000017500000000040211657733764020075 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME (bBIDAT8c`hCwXtA&4 C0'4a`^`4 (6000&k<WhbHq"C;` K0 :(drdIENDB`Padre-1.00/share/icons/padre/16x16/status/0000755000175000017500000000000012237340741016564 5ustar petepetePadre-1.00/share/icons/padre/16x16/status/padre-syntax-ok.png0000644000175000017500000000042311674030042022311 0ustar petepetePNG  IHDRagAMA a pHYs ?@"tIME+4 wtEXtCommentCreated with GIMPWtEXtSoftwarePaint.NET v3.5.100rWIDAT8Oc?Ed%t>^ P `O FFb4J]0 8&X ؒ*(9p=e$pN$'Թ@A/=IENDB`Padre-1.00/share/icons/padre/16x16/status/padre-syntax-error.png0000644000175000017500000000043611674030042023035 0ustar petepetePNG  IHDRagAMA a pHYs ,tIME+4 wtEXtCommentCreated with GIMPWtEXtSoftwarePaint.NET v3.5.100rbIDAT8Oc?Ed%"` & @\b0= Yd~d0rn5/@aP0(alP*D EAim1ŪIENDB`Padre-1.00/share/icons/padre/16x16/status/padre-tasks-running.png0000644000175000017500000000135011351521654023165 0ustar petepetePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<zIDAT8ˍOSa;28ĕ8 J1&FxO" P(- ZiK G^h^i)(^jb|>| GEM$m$!a]w`_«ˬ3q<d[M`` h;Y x1Ė"t'Ʋ W@ l> iiU00,lup l2bC:WZk0:YŒ=9nWBy(o a"`=ZM?v1DYNcyڑY~3A*7k><`?ʥd`g!G Xa6 P+j(4SEtYk][/TSOZ/Q7Qr-:xŵ:Qjޝv\E,<)hˍkTͻحe|cElAǘn%ly#p2Ya4 ?}pl! zyzх2ׅÀDa()̻@f )$BIENDB`Padre-1.00/share/icons/padre/16x16/status/padre-plugin.png0000644000175000017500000000111711163007412021651 0ustar petepetePNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥=Hqf~\?,yoX{KC7PcM54EkS$8V*wJB%{s^1㪋g99IDp8ラ%w%I =@]mvbS?|b~?GժilT70p,@ۙܘ^Y3$ՙOSRJuZNWc#di@% b_s Rۆ^t&:?!DmSQeJWeJÈqMT 'DB:RE_as3ȯC2Vz9W[9ŢwU*B4!B|zPJ fVcdEmZVw!Opřzp!MuS>x9f0Uއx8GHv=}uʡGBy=-Ka J8K+${?`vLЉ37ӿѯLjIENDB`Padre-1.00/share/icons/padre/16x16/status/padre-syntax-warning.png0000644000175000017500000000041511674030042023346 0ustar petepetePNG  IHDRagAMA a pHYs ?@"tIME+4 wtEXtCommentCreated with GIMPWtEXtSoftwarePaint.NET v3.5.100rQIDAT8Oc?Ed%Y3# &@T`$KLDF8` ` HRƇ,b<3&l㒭HU?YIENDB`Padre-1.00/share/icons/padre/16x16/status/padre-plugin-error.png0000644000175000017500000000031111200560420022766 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME 'tEXtCommentCreated with GIMPW$IDAT8c` R@F+IIENDB`Padre-1.00/share/icons/padre/16x16/status/padre-plugin-incompatible.png0000644000175000017500000000031311200560420024305 0ustar petepetePNG  IHDRasRGBbKGD pHYs  tIME $tEXtCommentCreated with GIMPW&IDAT8c` 2'Ks4#.5 *1CWIENDB`Padre-1.00/share/icons/padre/16x16/status/padre-fallback-icon.png0000644000175000017500000000047711351521654023060 0ustar petepetePNG  IHDRsO/sRGBbKGD pHYs  tIME JBIDAT(!Na"D3ǐ`$p $0^МIJv[3~sS^.eRZvC;:5¶`302- .+glܛGAܽ𬣉$b˳ fPBW(~M^بobػp LPR8!:kͲJӱ{4y.H˖VU/:::Y`:Ets;=@޽f427׈J FCTw/QFt~Dk3q4C:O2i'e=u7ks-瘳@+0LcD./ %Y# #d6/ kǬ߾X &JB~Rܦ125JQMwZ.ddU H >V^ ԓ~Oy*a"7rq: + Jme#G yQR5)p"QlLZJ80ae-5f[ b\-ޕGvV*U# H[N0(8m5 T3E76vnxD{}ZJLKM1o>Gyؕ'$ P[/׏S6@p qצպ|.ɞfcF#>K3Avk'@ pZHm7fK*.b'Eѐa F v3N2'\xPxR٫G3 {tƖ 2iaI){ӣwdD NI.Q/MK L7-ZFp 6%Xܡ"3EN#K!KȮPQtWݘD1Jjk ,Fp &SPai/H$Il(0{]Y30P^?ޖM; TOcx8CI̲M@߲.*0IѼ01bsQ)0% c *zOh.h[#CIbLW[a[Cш &ɕ!D uχ0|ulQ?:<`%H${Ɨp{tNw'V]vKꩿ)K=/;`N]G$[ Jg#9h p6JÃ/ `3 LiĀlV eH#'j  diFiҒi@k\7~&nTI^_5 f|IyU-'X[j xa> Q2(k{L28<e@d+-\#|v5.ⷿBc3!BAHP)b`1@褀Db+x0Ex/jIRӈv'坿=*;1 dbDU#CI}DGx2Q r-"l=(zgL←tuHa$9 0thѦ$CJ=ѧ4b0.$`c6hZ{ıG\l%"U: =$)"ؾ@DgD&"a@JD\(J=Aa6s`v Y/uG㟏7nlÏY ;?C&;{Y Puu4)5!F09$zB? @jFBaֈ<?ETE+i5!-3C5/2rM~T|&lu[wL w㬎8cyu pN-!tcA`&QAb!4c쉰ѿ–ƛr&J;Vr10{8IM¡'  h|@`%ZxfOyE(<+$2rAc\6ĝ/BrI7| o]]\-ʽ_N& q܎A{w -lM S!Nk;Z*EdZ!P%蒏̶ 2CD; 5~pƶ=rAmmmo&.~Q۰%E$й,^;*9('F( |]pfc8g*d1TPz"z*<,LIMȑ\ ; T~[*A!9hL(wbK7^$-%7莎AIM}m0-8U-l/6ڗ#TW"ߔi'pG4N@ R&\8Lب]|?{NNk!MIϐn&]+d^ AxY30GWH {!"U Aʧ0{! p[j7$IBuӁb6O($ݡȧdK_Bofum ,FB8NKA{5jZ5<°E acla&@ Su(bvhҙ D cB>څXr ϸg0,yXFgQ~_h]l @X)n#0XuxpQ0lKir\CxQ_Z1Ttr$1'Jw{ąwN / FM!o.& w Rf  W 9b TG%#vY-mD hi8rJ'05w|,P1`| 4VP%V:rY c}EakС(nAG wV  qNQ?}FFJJLɽHjKjNsp@_Fv2Rb9{["j|!y!E֑{4m-x]}T$vQOݔA8.JapHBop~qwDW"Zmd=TSH A4@u<|dSk@%y 5^1v/8wSaOFw ~{T+JPU@e r{!JOV}y*C%52Ak3[Q;#mɇ]V^ Q=iKQ/l@ "m1b<`0-#3j뻋?댟@XcܫmD񙫰u)9c2-R՚r4FSAw<D"+C"0vh`-~w!-F0qs}CFn!1%*y {y"nXDz*o=ޙvڄ{]1F K˘mGaZN<]`a - 7tby"xhY5`0|4 .bhi/B訌Hx{t%-F [?ryL$*{vOw s}Jz8=6"< cBD֐Ix|$#Pb{;y+@-UGxP?=mfeas# F&s]x54pgJ\&rs(ӏâf^=ghw8,ҔWފa"B݇ JZ5Jq&ǀɴ3 3` L5 QI~wkbBIt#}^AŪJE=0/Ni!p2=ae~a;j yoNM1\K @N;í?kgw+// '1ێ@DA7RbwZu ƌO9oE hvkpn_CO )s$νEo9; S ޿8ygHm5C #>_a葋wweg2fZ&,/>t5 Fs֑8Hܫ~@DvI8owhkkGkMY|' {}=ϯwF9*VaIVڸQ{*%&󒌟NȮN`Tv_H\챺|JTfur0/ia,䵹L^dW}P̔w|+o&ew;:<:PIENDB`Padre-1.00/share/icons/padre/64x64/morpho.png0000644000175000017500000002201111653263021017251 0ustar petepetePNG  IHDR90MsRGBbKGD pHYs  tIME ;uI IDAThޭwEOu9ܹwf< 9 APE̘U״Ft]]J$ qLbr޹9u{:}~]s@g={.=]|0n pzpסk9u?kZb"WRp"5{_N//W6^\$5V/lz`ϩz:=ems wXo.@H/:6jHf&PCm}V'4D1\sqB 1QVQ<}ple2& &gotwu{=)ߛ?? Se;,&xo&z*9|Ξ="?@7<Kx:W9Z:{J * 4}X@LdWKe ,)0v-e9@(Pw 1dEr &?*鴉2}pFiSd[lڱ[ fчttyM˜XSq!93id49#+c2Yôު-ϋ8$K&2*0@2A l@7_EBPT*v?H f\aczt_9?&[OKZ]Eq3-([*PIs[cCim DG*r6H\߇PQ C!Nn@Ys@Aɤm*t;[A)4܆F܏k:| ^N\'˵o== p=˧&\v) 6t/+DknB{/!$Bd7})}H7T魿-'Rm=we뉲镯מΰ'VC⸌,6Q=_(EHev7vOJLH,ضu)z=/~р4e[ =fl}ܼ:S0G/DJͺ:hnd=*~C^ox|Fc( w<~D1+>r]!B)EqC9ny~m ߒLJeg"U8D9/ā4syoϢ%g, MƜc7m"eW@0>_Wio op1``Xd_Qlp^A\C{ EdX~H(`sGz:.opIO?S|KSge?oKNO<8񾧯? +UCN>t P_BxR9+ytu܉0鵕hJcWު= ;5HH=7N`OwǗ ݞ9_7Ky`\Qe}׀U҉WT-kh^FH F29/fSS{?ZHtG$i#謆*{mgn&wjׁ2RT6s*@\ryaج;>ϐMk&hhA"_Z0>?q/νkK*(mq삢wNώ\e,wu?3q16|4gi5Mɹy/]:S칧_'B 85ؼ1^7%NNڸl\O+:ۣ܏w&<>>z `#b讃?$Ur]TPn z{|G&6kTֻꉔw4R0dUmU;<fL@8e֦gf_)!; E]bkCB5mͭF-T][ew+jZ MٙCS?u\ѡ;w(e7Y7O%w_~ ՟:ow޽ H+RZaI,Yu]bb6 eSJUקaᧀ7URHP;Y54{F4"~4K D N{VI7߬+JNtt8CD%)Y(!f?~{w|sS8wnY5nūpMn{jC[I:Yӄ^͹ȑ}-fqCrmB̘_N`8 Z G T(FU=7$sV׍=ݾ4R/ȱq);Ցh%əH dFA]&.U ftjÐ?$Eц %iv3.e# &4gԞ,^xp+\z@Ci0z'lDjm袡ΨUk4tԚcxIƱ_:z̫L{7(Uyhy|UN-6$dUXXac9 j4]qNTi5.Wd]Z# G3L\ف`ᡫ~\4ukf=}. FED q ¤;^Ŭ-}`i(\5 B%="&X TVmv/j9Rrv2Foyw鐠Dž?\jxa1fkYvՑSeqzTL4J/vETlH%q{"MN^#٤69),"Ij6d r`ҋEcd"/IW5D{e{GTy QbJƲ'E(kZ/PQJTix M]iK:b" /kw^/*)yɩEcqqQj&Se lh\.O{mqAjzz# ^r&Dl1U1@}XI3@CWd<*VH">DPP# 9JN_4G/:ihqp }V<TxhA)6ڝ\@YM)ty85Nj;~=x=c$٩'O˹I.]6}PL /N!RW\ mP̐S"D9 f۴'ɔ# IU(_Οh 8D4y V"6Ê,gYu/91 J$dwjP2b`?Ei+2MIQ d:z}u y w/L:nKWm6C䕟ynM]/Ǿ:8=A6QB huWH:ŕSFYohxKeQsSrK KXE#B$<|Ka>JZ@u$ORR = * ĭ 8F1X3bjzbvT RURrqXx'O5:/>?zʵ ܩhAaw %[L#8$БpBQ]Rcb1&^pt~ Iz6±ѼKtC>YiPaxj2`Q :aK-NS}fZD%A8$fc̔ϚŠkl"()F5%Ҵ!{޴_*ѧn_fZYNR-m'Cg{۵b`yH6;}jP5@EbB+hLM-5?I _ ,+ȼ0SH @%QTC@;% 'JE0` ˈPDB^/f;0z@@466k :;ʚ+%~q*+#ƹFTʁ@{&֞ě̶:xB!`WJ0ELtb))4 TG&@%аr,, Ov=BÄ06uxpZ<&Y,Տݳ֮ R{}_FYzጏE}TH1a1 %:{WI"bGB'!Gm >RǐzJ2$q B&58SD c aDP2ODbhY0 CWCu^ QOY;doZ r`wO%"-w˧m;(hd#11KQvzbatWAU*;[R_f7zb;0. gvIMgP4AwK3edD(@%@d0 td@rRdLÐA((T JDrCzk  4ceOշvK٠$r7w,8זbÎ$-^)X7,e%F"VQ^wVf4AZKsOsF)bP\  RTHs(@QX ?L!uIp14˲BDE :6xR32nt1i^-~I~A^Le (Uj18!BvRK>xS!L֯oZZ,$@Lܒ`d,+%1É4ꅅ&sXLk2`JI3(@c0QScLy<B"CVEKJ (   q AuQzL }T~קytt5^uh%]8r=yf쒌K'&O)-ܽa&H1V.wg}BB^,IfT_L|ӍobɹvkWzFlJy)BbmIt$I @h :@D"xn0x'D Vb֣H"`:QT (QAPެv4FHf-}ѲO\m.`6*^h[G67)u^}GxVZ/FUp aA3lC$9yFD! D tZLD4isa*,I2XWB;P}196Ԣ~Z~㳟xV[tі]WǥQvA>vxw_aL*cNhyA<[LU~96;s\9`feɁjHP w%VS *&(0FD"2eҐ@6L7!~`ŘǶ{eEgNûһaKJr1f{'9T8͞:UuJCç*K<:9l45$u?;Y6$ǃ7t&U<Q*F/ <(؊80)+otB2QE0 @zVN33MѸrk+<3'(OntVʠ?b>>ex ,X,Si7UV^X'_7ao G· ϯhӤW_8BWPyJG Z]%*H׶\PR!*#&le[-$K 'Qc21/ !I˵$lӵB`En(AkpG!:9QL2cgy=M_4tw7^uJ<Wۼ/hj$ك7GxpT˖rp@wJ;oog8I{wXP"TMt /ԅΛ|r}(6<5}IDATcH|E!P  D ᙐSu&ȳ* m ɒyDF=V0߄!'yyF=ݺf1>G(ҿɱ> :jڬi+ڏ^zx-C yޑkvC0X,&d&x\l]`#-WB^ơ̋_]0*jhi1^F@;l\QoÁh|I}ljŸOXџƫl&U(*LP3fU 0uBܬ\ma&n c')5E!t@wfh4J^lcﲏX4超/D#>IIENDB`Padre-1.00/share/icons/gnome218/0000755000175000017500000000000012237340740014720 5ustar petepetePadre-1.00/share/icons/gnome218/README.txt0000644000175000017500000000226211351521654016421 0ustar petepeteThe icons in the gnome218 directory are taken from the gnome-icon-theme project, version 2.18. ftp://ftp.gnome.org/pub/gnome/sources/gnome-icon-theme/2.18/gnome-icon-theme-2.18.0.tar.bz2 The date of the above file is in 2007, so the copyright should be from about that time. Authors: Lapo Calamandrei Rodney Dawes Luca Ferretti Tuomas Kuosmanen Andreas Nilsson Jakub Steiner License: This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 dated June, 1991. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Padre-1.00/share/icons/gnome218/16x16/0000755000175000017500000000000012237340740015505 5ustar petepetePadre-1.00/share/icons/gnome218/16x16/places/0000755000175000017500000000000012237340741016755 5ustar petepetePadre-1.00/share/icons/gnome218/16x16/places/folder-saved-search.png0000644000175000017500000000110711351521654023300 0ustar petepetePNG  IHDRabKGD pHYs B(xtIME `6IDAT8˥OHQ?;Զvu iI0(0^:HlPҵA`,t[,:vҋDr)aY%Aݝu\v7z0IS`(Udf`w4k:I=|Y2#E7+y/@Q[۰{F Ƴ1 u=K:bK @ͪ`2`3M1]CFW{-IENDB`Padre-1.00/share/icons/gnome218/16x16/places/stock_folder.png0000644000175000017500000000073711351521654022150 0ustar petepetePNG  IHDRabKGD pHYs  tIME /O)tEXtCommentCreated with The GIMPd%nCIDAT8˭JA)]M`Z_"bQR yc#`21d;a쎅a`j8sw0W+\.wwtx22=˗[躑=Yb1da@DJ,kE9qqeo$Y-.!B4a膁Bz]q+adY5•[*;v˚"Iq$\U:P6jWi4n)%(_8H>O e$EB,+3bZzJ=!Kg:]?8/Lq74]IENDB`Padre-1.00/share/icons/gnome218/16x16/stock/0000755000175000017500000000000012237340740016630 5ustar petepetePadre-1.00/share/icons/gnome218/16x16/stock/generic/0000755000175000017500000000000012237340740020244 5ustar petepetePadre-1.00/share/icons/gnome218/16x16/stock/generic/stock_example.png0000644000175000017500000000137111351521654023613 0ustar petepetePNG  IHDRabKGDC pHYs  tIME tX[qIDATxڍMHa;SaPB)1]Z  }AVOR:Z]t @/4͝wgvgw ~dR=? ǹ]. qbeefW 4ZZZu5;AkRl6! bJ)<ׇy0}l>$0 B@" 癘 1::c'bIFPQ:MGG1`llyJA@w,7oX78!# RDQ,ˢF`xxZ[[FApXRZRyzzzv:J/_r !Muɹ.4 hMM}߻mvRxgO200@*bCr1{ U"8 NrWq[[d)Kj!GWWBh4!|OzFӝ݋eYALUXOH)j i+J߀1]VSX0l$ե|.H[^tعBR ?9nyܒo1Mq.z'Xa_ִ7 zۥ奕ߗsgz⧚0:L?M/w&*IENDB`Padre-1.00/share/icons/gnome218/16x16/stock/code/0000755000175000017500000000000012237340741017543 5ustar petepetePadre-1.00/share/icons/gnome218/16x16/stock/code/stock_macro-watch-variable.png0000644000175000017500000000027211351521654025445 0ustar petepetePNG  IHDRabKGDoIDATxc`T bTgMPJrPyAduH, OVf;.;.G28o^>gG( `O7ED7MBi4IENDB`Padre-1.00/share/icons/gnome218/16x16/stock/code/stock_tools-macro.png0000644000175000017500000000047611351521654023722 0ustar petepetePNG  IHDRabKGDIDATxڥ1n0E_l4t9FR&ؒ .mzR`(,:,h˲$kidk4{i͇9K`z̅4M sZom "DQ "*0A!AMӠEv *u]㜣*TJ`.@e ,"c ik̖,x]gGx1,7})$I ـ홅ǧ5Sx[IENDB`Padre-1.00/share/icons/gnome218/16x16/stock/code/stock_macro-stop-after-command.png0000644000175000017500000000056111351521654026255 0ustar petepetePNG  IHDRabKGD&IDATxڥ?K1{"Y}ڤ؜iҋ!JE9WkqKPadfμZP٢-+I-Q F5~]΁60 +悸~A)A'j M\Ac&vH`/2ʗL8]A{ok%p|A܇N#h8_49ƏimrJp8L' {ۊqeNx:Wř\5$րkGeO %SK9 YzIENDB`Padre-1.00/share/icons/gnome218/16x16/stock/code/stock_macro-insert-breakpoint.png0000644000175000017500000000124311351521654026213 0ustar petepetePNG  IHDRabKGDXIDATxuKa?Ӷ֚y( 1P.MEtUAAAP!AfeT +-cXM9;}Xܽ}>V')@j>u=mPY7MID[n$`m|ey5,jer 癛ri-v3خ`& X%DZ56h8#ˉ;|ɩ+)]m{PŒGx4@ZPZZ⩨j :9},p1‘o;?:{`y ә̥@E3,G_c~q9Qaq 5M< w^wȏB.BhnB׻2i,99|rⱋa~qVjRKvZ>x/t7ujlK":fRGKManվYdS?1]$@SQk{U ( 2= bTǞU42Sg70M &g@!?%{^485= @*@"lGkc=>_wW.5 `?x7:: wn]Q4{g>06iFvj-"jH_;zZEi;pu'0i4˲(VXHv3_L@EL$)Jض $ "CU`essmk , cnɃSIENDB`Padre-1.00/share/icons/gnome218/16x16/actions/edit-find.png0000644000175000017500000000112411351521654021515 0ustar petepetePNG  IHDRabKGDC pHYs  ~tIME$0tEXtCommentCreated with The GIMPd%nIDAT8˕OkA@ɈJ@$~C-[BaӃ,aDE 襦ɥ C^zgKd7d ,T-2~ys,/s櫟۲Vu]8t]W,k;G{gOlƲ,Euاkvy pp$ H)xR"=IZ~O|pp'$UX[͒^sqLMة`mE[oaZdWcqד[wh-:JD*M&! 1Xth4:=aTUEbśR H$Ri +(TL &&((ɺZ ̺Z`{섓a>mh]Y|cv$|zɓǏ'L"ߨ}qS$̻+fIENDB`Padre-1.00/share/icons/gnome218/16x16/actions/edit-find-replace.png0000644000175000017500000000127611351521654023136 0ustar petepetePNG  IHDRabKGDC pHYs  ~tIME%*mOtEXtCommentCreated with The GIMPd%n"IDAT8ˍ_HSQ?A`:4Tb`Ewi1H PIJZ{UH$KK/_\9s6>\xS4ͪa!a$ ],q~Q.#͒dd29xHz;ͭQxIR%DALd |q;4j_?@f bnPg?S(;'>ɦ eSEٛӜcߺ"}g8NN'@+ojV666fG#utхf``@{<ܫYYYAz]e~!Ƴis>j[28j HMb}u|[!¦ ;hȶW&\.4li\yp(v4IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/edit-select-all.png0000644000175000017500000000075411351521654022632 0ustar petepetePNG  IHDRabKGD pHYs  ~tIME   wtEXtCommentCreated with The GIMPd%nPIDAT8˕KaB5"-M!dHC /7D qA-M5EK&Aq ZBۢwi||!jZ+eԴ qsRN#J)1-CL͸.`p nXp>,gsxdLŲ@jqdҴj̇i~6<D8 DZ7XL#ʇH%}'n^G$W窯DBGӴ` Ʉ>`"Zh4j  ܏6ז8}։ p),۶=q2Av1mDh4:;3R*:ӣ `S[<IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/edit-paste.png0000644000175000017500000000077611351521654021725 0ustar petepetePNG  IHDRabKGD pHYs  d_tIME36IDAT8ˍka?kIj (8_tuTB! &tA*tkEhBc$-?P01_M~{y5Гk}`!|VIӴmݻݫ?kLwcGBP&_(<݁!vQGÜt7 jY*Rz'`Wl5}WTn;{rnP>a))cmnxlꗳ/njOw!9L z58 ZI 0cc"(L#2u'$TU$af:SG'h dz3!Q%IB K(_ R'U~Y`co72 CI.qc7`WOIENDB`Padre-1.00/share/icons/gnome218/16x16/actions/document-new.png0000644000175000017500000000115311351521654022261 0ustar petepetePNG  IHDRabKGDC pHYs  ~tIME 68LJtEXtCommentCreated with The GIMPd%nIDAT8˥MkQޙ im 2i v'](OP_e]V7q!MBf4Ŵc.yW-2rLW)NDT+yO_iYYVzͬ}1?'Q=b˻~PC{MQ 1U]Q> Tn>*T.w2UEn:4A@PfÂ^4S:@αDdN΁A'WX$nAPJ!#/g|A|fAJ=0_$0r3 E n7ʖ\T@PK=Kr Plw0?sX4A*!wq=]Kf)[_'iʈ6N W[u @N4eД(> R-2rQQˆӒ AlSRccCGLdܸIpqL? R,SIENDB`Padre-1.00/share/icons/gnome218/16x16/actions/list-add.png0000644000175000017500000000062011642334220021345 0ustar petepetePNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<"IDAT8S;N@Q! R.rQD>P[8t di}QV]!nFGINE˯\ˤ*I$df H2],FdőFn؊<ς%n;~(vEJ#,t뇟|6/ hplA埱mM_U'CUeYsVVC[8vױ@ 6^$q댻4Zx>kf弽АOaoT}YdvVDf%] P@@!fWX(?/7 kM5b=gfs˘+ P*(/Gi[IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/document-save-as.png0000644000175000017500000000113511351521654023027 0ustar petepetePNG  IHDRabKGD pHYs  tIME 30VIDAT8˕?hq?wLH/^4iAZD7 :X ]Fp E'KCk4(S$4jL)?o{+Bq 8pvJv$+ Q=4#&S#>~NVA =3=fXʓٻټѲ,,r]4 ۶Y4Mgޓ į|3q p'*Wtt]w iZ۷$˅E.QZX,v4NMFRJl&"T*Q.xqvc'/ws^DY=~4+N$v\_C9 c,S*.>B<ʙ/m] 0e-ܻSu1Xo6I^Jj޲  Ǩ5^Vr!Z[=˙Kl+qkZ `7a [:p$Ο;]5َk'Q4@03TNOvJJ#~ >ih%O`x:c6cՋ\naAJ%}_J16$hj FGpRc3`mw~\ n ~9 PKԐؓ\$ ٯJy:;˫'ؐi@:!k:*]q=}.(u={s G2 )zEp]-P8v~wa.Rc7+u @Qɚ|B4T`Ͷ."TYV@C-֚*Z_CqKqq;XBKkAl #@@nm0z^,]An~u5Ӌie{g^Ţo fGG9{J`m-OT5-L"*C$ΨX<'XʬȜ]SVD >3Jːc!b}`t| IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/go-previous.png0000644000175000017500000000110211351521654022125 0ustar petepetePNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDAT8SjP];IL5d5LN}|P D#~ A*JGEA0Bcq:c %$9^k}3c[[JY\e-Oe9RqMDDS/=,R)iWٕڣ{woKrI̧i׈rqccM%v>^XւvB`v^W;ȲBM(NҦhZGkuq4cD^Oɮ &’a۝bCחg4iwcY\NJp*Bx~? ""Da|B~v zUe~Cw?GY͋ѻβP5UD_|O8)zp"\u`kx0H%I T]spՕtkT/u̷7fTrf$#f$>W-IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/edit-undo.png0000644000175000017500000000106311351521654021544 0ustar petepetePNG  IHDRabKGD pHYs @StIME9=pUIDAT8˥KTQ;(DV6*h"\(܁0bV-!h{!p{6 -"q!-2F(s=i3D|<}8ρ:: A7oIV"Qa_)D~?)}Z)})\ARiukΨ?24 ,e[j4+LA,l-֢'P'AH;K|z٣.VR^v(c=^Ǚhy kA&Sdh!V7%8 0(yi4DYkTTCE'~1P yK {Ss` %0~{:~BLͥMSYf^?<H޽~Y~"/'#аp)A{BdhV# xM8r :<9!:IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/stock_data-save.png0000644000175000017500000000104611351521654022725 0ustar petepetePNG  IHDRaIDATxڝ?hq?wcvm, i@R@ K(:H;98*.*QK- CXbr1G8~մ1!{} 3 V&GړȲL}*L(6k68z B$K\~uMB4ypG{Z\vCǯR]!FmOUU%ˑNfeZꂲ7f(Y}eZIENDB`Padre-1.00/share/icons/gnome218/16x16/actions/stock_update-data.png0000644000175000017500000000120011645656774023263 0ustar petepetePNG  IHDRabKGD5IDATxڝ_HSQ?g6ք뵉#YcA2$衷z行EQOKC"g ݓ{׶4q=Qj~|ϗ;hmm}x<"8Xn7$NfaaB@_@(s||YQU]) N>' e:o #cbZ0 GGL^ONNb[{x Hxe.2::3x^* d{9<~]`eeEQFhF? mc;Jy20[Y+@.C4EԆJi%`gjBac5On纺\SSSl"Xo|8h9wr*f/QHXˢo-93?MuK2RG23C$QnM1EWaڜ}0zt2o洗NIENDB`Padre-1.00/share/icons/gnome218/16x16/actions/document-open.png0000644000175000017500000000111411351521654022426 0ustar petepetePNG  IHDRabKGD pHYs  tIME  VtEXtCommentCreated with The GIMPd%nIDAT8˥KkQw:%  E]/qQ"o#>]EUn]鴝fr; < 9{ērs( __<uRNT*pn$fe !{M0c 7`vl5]~raD)##a5qƧ.^4{~nݱ%޿[yna&{I[l} $IZkWuZ-3T"YE!Nh{DžqK%Vbg#oWWQJe67XX[eRZEܥX,22L:0Za3j=ed=s|l6|0}j.;V[_dbZk|#'Vx/'GZELA@#IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/go-down.png0000644000175000017500000000106611636076127021237 0ustar petepetePNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDAT8nAƿ]-9rP"\h4C4 Wx\ eHQYID9>g(1w`J3oFDMt  6l#'x=b Q=`?EMK<$#o( 89m!J;tZn(kJ+3GqJa5xˆ󷛳Wݩq_ $ЪWaWqhYz( q&C dß'I9>Ѫͳ+FoV 0Wewuê2ƾn6o/--VN= 'AaMd sVp lOn/@F~詰ykd>x)lcnQiD$z s#IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/go-up.png0000644000175000017500000000104211636076127020706 0ustar petepetePNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDAT8kQ?i4khԢ &gyx=""zQE*"Tj/3*iYW]UHDVZ 05xu xT2tZRǭiZ1XעJ&{-,xC%YԊB X, 4;5SȨk쟘i?Y u?d;9{d<>IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/player_play.png0000644000175000017500000000067711351521654022207 0ustar petepetePNG  IHDRabKGD pHYs  tIME#dtEXtCommentMenu-sized icon ========== (c) 2003 Jakub 'jimmac' Steiner, http://jimmac.musichall.cz created with the GIMP, http://www.gimp.orggGIDAT8c` „K"4< 14(CIc^.]H0x!x fc/CeEChxm7////C{Gêkg!!!ֶ PW_S3A'Ռ7)G0b%D(L2"DOT)IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/stop.png0000644000175000017500000000102511351521654020637 0ustar petepetePNG  IHDRabKGDC pHYs  ~tIME%( pIDAT8˥AKAYW*q[4-BCQL{l[A(xRH< Bezls;|\1І8@܄R6O0%1'M@І+W'㘉18>/~A~I\7vv[4EVWyiosQRу("IS" E8!2!{岶:46.gE"bxv]3ajg>S ])l?L~~&;L8EVCg$OX}̣͍#1L*Z~$ s] Gm<"*2%GY R& 6i-֖~ᮀ 8˸G?ӳ_Iʽ`\dܐIENDB`Padre-1.00/share/icons/gnome218/16x16/actions/zoom-in.png0000644000175000017500000000121411640615524021243 0ustar petepetePNG  IHDRabKGDC pHYs  ~tIME4 =%IDAT8˕OHq??m/nS0Kb)7 yPE'ѡXt :;!b]Thb(hIQS{vh'{|x/ (,~`l1H(6iEUU,b#җ:`lhm?@.=+3T n ̽H#Mz RWjƥX5.ў QKr@BP2<.q4BPUU2EQUIqfgg@O-j)p96"Kp㞉Qrj+u`,,,y-U2s6ms$Mܾӷy1l01%Ghg3rv㕹瓹taEZZ:}| @Q{^ k'̥S/KzWn>4aAs =B0KC*hlDI&zTzhřKG~ ->vt}IENDB`Padre-1.00/share/icons/gnome218/16x16/actions/edit-redo.png0000644000175000017500000000103311351521654021525 0ustar petepetePNG  IHDRabKGD pHYs @StIME qIDAT8ˍ?hQ?Cd\BiApQA҂KvhXPpq+(D,)(("9E$С І$F!.>x%}'}gJOo߆O;!5w1jJB<'EyQ4? 3RbI; ^"{kxR+kh)I68 lLEg9W)5sX/ks#ңyt &Ì:Ob&J4#|F n_1ž1BN0sHPE!@\SdGN]'#~ MVKa4' #j0m}`*5]; oChv`\Щ hKO%9p4\~7xfGwA~ik1 ~V/IENDB`Padre-1.00/share/icons/gnome218/16x16/status/0000755000175000017500000000000012237340740017030 5ustar petepetePadre-1.00/share/icons/gnome218/16x16/status/info.png0000644000175000017500000000105411351521654020472 0ustar petepetePNG  IHDRabKGD pHYs  tIME 4' MIDAT8˵KSq?ǝFs?&!RK zWiBB *'Bэy4Wb:ˣo7KƱ$|.<d$]S+Ng5H=8؋,h:`vi &y_.7Z;,Mhi4W:/S`4(YPS*mUڰIl/[OXO\ѠrJhzͨ.o ~ؠZLylHͅQǥY(Ao?X͔!!3b`";%sكI(ս< @ zkf慮k"2L̅bfY9O&rQ?kiܺ7C3%<~D`Ms98]׀ -Y<ߔ1z~IENDB`Padre-1.00/share/doc/0000755000175000017500000000000012237340740013012 5ustar petepetePadre-1.00/share/doc/perlopquick/0000755000175000017500000000000012237340740015350 5ustar petepetePadre-1.00/share/doc/perlopquick/Artistic0000644000175000017500000001373711445346501017071 0ustar petepete The "Artistic License" Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder as specified below. "Copyright Holder" is whoever is named in the copyright or copyrights for the package. "You" is you, if you're thinking about copying or distributing this Package. "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as uunet.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) give non-standard executables non-standard names, and clearly document the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. You may embed this Package's interpreter within an executable of yours (by linking); this shall be construed as a mere form of aggregation, provided that the complete Standard Version of the interpreter is so embedded. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whoever generated them, and may be sold commercially, and may be aggregated with this Package. If such scripts or library files are aggregated with this Package via the so-called "undump" or "unexec" methods of producing a binary executable image, then distribution of such an image shall neither be construed as a distribution of this Package nor shall it fall under the restrictions of Paragraphs 3 and 4, provided that you do not represent such an executable image as a Standard Version of this Package. 7. C subroutines (or comparably compiled subroutines in other languages) supplied by you and linked into this Package in order to emulate subroutines and variables of the language defined by this Package shall not be considered part of this Package, but are the equivalent of input as in Paragraph 6, provided these subroutines do not change the language in any way that would cause it to fail the regression tests for the language. 8. Aggregation of this Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package. 9. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Padre-1.00/share/doc/perlopquick/README0000644000175000017500000000320511445346501016231 0ustar petepeteperlopquick is Copyright (C) 2010 by Chas. Owens and contains some text from the Perl POD documentation which is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others. All rights reserved. ABOUT PERLOPQUICK ========== The perlopquick POD document is a quick reference for the various Perl operators. It is organized by operator, sorted by precedence groups (inside of a precedence group there is no sorting). INSTALLATION ============ Copy the perlopquick.pod file into a place when Perl can find it (i.e. someplace in your @INC). LICENSING ========= This program is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" which comes with this Kit. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the Artistic License for more details. You should have received a copy of the Artistic License with this Kit, in the file named "Artistic". If not, I'll be glad to provide one. You should also have received a copy of the GNU General Public License along with this program in the file named "Copying". If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or visit their web page on the internet at http://www.gnu.org/copyleft/gpl.html. Padre-1.00/share/doc/perlopquick/perlopquick.pod0000644000175000017500000033260511566652357020441 0ustar petepete# Vi: ts=4 sw=4 ht=4 et textwidth=76 : =head1 PRECEDENCE Associativity Precedence left terms and list operators (leftward) left -> nonassoc ++ -- right ** right ! ~ \ and unary + and - left =~ !~ left * / % x left + - . left << >> nonassoc named unary operators, filetest operators nonassoc < > <= >= lt gt le ge nonassoc == != <=> eq ne cmp ~~ left & left | ^ left && left || // nonassoc .. ... right ?: right = += -= *= etc. left , => nonassoc list operators (rightward) right not left and left or xor =head1 OPERATORS =head2 "X" =head3 Class This belongs to L and L. =head3 Description This is the double quote operator (AKA the interpolating string operator). It creates a string literal out of X. If a scalar, array, or an index into an array or hash is in X, then the value of that variable is inserted into the string in place of the variable. Arrays are formatted using C<$">: my $interpolated_value = join $", @array; To place a C<"> character inside the string, you must escape it with C<\>: my $quote = "He said \"I like quotes.\""; There are many special escapes such as C<\t> for tab and C<\n> for newline, as well as a generalized form of escape that uses Unicode ordinal numbers: my $string = "Please provide references with your r\x{e9}sum\x{e9}."; Here C<\x{e9}> creates the character associated with the ordinal number 233 (0xe9 in hexadecimal) in Unicode: LATIN SMALL LETTER E WITH ACUTE. For a full discussion of how strings work, see L. =head3 Example my $name = "World"; my $string = "Hello, $name!\n"; # $string is now "Hello World!\n"; =head3 See also L, L, L, L, and L =head2 qq(X) =head3 Class This belongs to L and L. =head3 Description This is the generalized double quote operator (AKA the generalized interpolating string operator). It creates a string literal out of X. If a scalar, array, or an index into an array or hash is in X, then the value of that variable is inserted into the string in place of the variable. Arrays are formated using C<$"> (which is a space by default): my $interpolated_value = join $", @array; The delimiters C<()> are chosen by the user and may consist of either bracketing characters (C<< qq<> >>, C, C, and C) or matching characters (C, C, etc.). It is generally used to allow the user to avoid having to escape characters: my $quote = qq/He said "I like quotes."/; If the delimiter is not a bracketing pair, or if the brackets are unbalanced, you will need to escape the delimiter with C<\> if you wish to have that character in the string: my $quote = qq{I have too many \} characters}; But it is often better to just choose a delimiter that does not conflict with the string: my $better = qq/I have too many } characters/; There are many special escapes such as C<\t> for tab and C<\n> for newline, as well as a generalized form of escape that uses Unicode ordinal numbers: my $string = qq{provide references with your r\x{e9}sum\x{e9}.}; Here C<\x{e9}> creates the character associated with the ordinal number 233 (0xe9 in hexadecimal) in Unicode: LATIN SMALL LETTER E WITH ACUTE. For a full discussion of how strings work, see L. =head3 Example my $name = "World"; my $string = qq/Hello, $name!\n/; # $string is now "Hello World!\n"; =head3 See also L, L LXE>, L, and L =head2 'X' =head3 Class This belongs to L and L. =head3 Description This is the single quote operator (AKA the non-interpolating string operator). It creates a string literal out of X. To place a C<'> character inside the string, you must escape it with C<\>: my $quote = 'He said \'I like quotes.\''; To place a C<\> character inside the string, you may escape it with another C<\>: my $quote = 'This is a backslash: \\'; but this is only necessary when the C<\> is followed by the closing single quote. Unlike double quoted strings, single quoted strings only recognize those two escape sequences For a full discussion of how strings work, see L. =head3 Example my $name = 'World'; my $string = 'Hello, $name!\n'; # $string is now "Hello \$name!\\n"; =head3 See also LXE>, L, L, L, and L =head2 q(X) =head3 Class This belongs to L and L. =head3 Description This is the generalized single quote operator (AKA the generalized non-interpolating string operator). It creates a string literal out of X The delimiters C<()> are chosen by the user and may consist of either bracketing characters (C<< q<> >>, C, C, and C) or matching characters (C, C, etc.). It is generally used to allow the user to avoid having to escape characters: my $quote = q/He said 'I like quotes.'/; If the delimiter is not a bracketing pair, or if the brackets are unbalanced, you will need to escape the delimiter with C<\> if you wish to have that character in the string: my $okay = q{I have too many \} characters}; But it is often better to just choose a delimiter that does not conflict with the string: my $better = q/I have too many } characters/; To place a C<\> character inside the string, you may escape it with another C<\>: my $quote = q/This, \\, is a backslash./; but this is only necessary when the C<\> is followed by the closing delimiter: my $fine = q/This, \, is a backslash./; my $required = q/This is a backslash:\\/; Unlike double quoted strings, the escaping of the delimiter and C<\> are the only escapes. For a full discussion of how strings work, see L. =head3 Example my $name = "World"; my $string = q/Hello, $name!\n/; # $string is now "Hello \$name!\\n"; =head3 See also LXE>, L, L, L, and L =head2 qw(X) =head3 Class This belongs to L and L. =head3 Description This is the quote word operator. It creates a list of strings. The individual strings are whitespace separated. It does not interpolate. The delimiters C<()> are chosen by the user and may consist of either bracketing characters (C<< qw<> >>, C, C, and C) or matching characters (C, C, etc.). It is generally used to allow the user to avoid having to escape characters: my @list = qw/'a' 'b' 'c'/; # @list is now ("'a'", "'b'", "'c'") If the delimiter is not a bracketing pair, or if the brackets are unbalanced, you will need to escape the delimiter with C<\> if you wish to have that character in the string: my @broken = qw{I have too many } characters}; # broken my @works = qw{I have too many \} characters}; # works my @balanced = qw{this works {} because it is balanced} # works But it is often better to just choose a delimiter that does not conflict with the string: my $better = qw/I have too many } characters/; Unlike double quoted strings, the escaping of the delimiter is the only escape. =head3 Example my @a = qw/ a b c /; # @a is now ("a", "b", "c") my @b = qw/ $foo $bar /; # @b is now ('$foo', '$bar') =head3 See Also L, L, and L =head2 X[Y] =head3 Class This belongs to L and L. =head3 Description This is the array index operator. Indexes are C<0> based (unless C<$[> has been set to a non-zero value). Negative indexes count backwards from the end of the list or array. If X's sigil is C<$>, then the expression Y is placed in scalar context when it is evaluated and then treated as a number; hence it is converted to a number before it is used. If it cannot be converted then it is turned into C<0> (and a warning is thrown if L are turned on). It returns the Yth item from X. If X's sigil is C<@> instead, then an C is created. The expression Y is placed in list context when it is evaluated and each item in the resulting list is then treated as a number; hence they are converted to a number before the list is used. Each item will be turned into C<0> if it cannot be converted (and a warning is thrown if L are turned on). The operator returns a list of items from the array X at the indexes in the list generated by Y. Note: The string contents of elements of Y are not modified by the internal conversion to numerical values. =head3 Example my @a = ("a", "b", "c", "d"); my $x = $a[2]; # $x is now equal to "c" my $y = $a[-3]; # $y is now equal to "b" my @b = @a[1, 2]; # @b is now ("b", "c") $a[2] = 'e'; # @a is now ('a', 'b', 'e', 'd') @b[0, 1] = @b[1, 0]; # swap values @b is now ('c', 'b') =head3 See also L and L[Y]> =head2 (X)[Y] =head3 Class This belongs to L. =head3 Description This is the list index operator. The expression Y is placed in list context when it is evaluated and each item in the resulting list is then treated as a number; hence they are converted to a number before it is used. Each one will be turned into C<0> if it cannot be converted (and a warning is thrown if L are turned on). It returns a list of items from the list X at the indexes in the list generated by Y. =head3 Example my $i = 4; my $x = ("a" .. "z")[$i]; # $x is now "e" my $y = ("a" .. "z")[-$i]; # $y is now "w" my @a = ("a" .. "z")[0 .. $i]; # @a is now ("a", "b", "c", "d", "e") my @b = ("a" .. "z")[1, 0, 3]; # @b is now ("b", "a", "d") =head3 See also L =head2 X{Y} =head3 Class This belongs to L. =head3 Description This is the hash index operator. It retrieves the value associated with the key Y from a hash X. If Y is a list of keys then a slice is returned (see L for information about slices). =head3 Example my %h = (a => 1, b => 2, c => 3); my $x = $h{c}; # $x is now 3 my @a = @h{"a", "b"}; # @a is now (1, 2) $h{d} = 4; # %h is now (a => 1, b => 2, c => 3, d => 4) @h{qw/a d/} = (0, 1); # %h is now (a => 0, b => 2, c => 3, d => 1) =head3 See also L and L{Y}> =head2 X->[Y] =head3 Class This belongs to L. =head3 Description This is the infix array dereferencing operator (AKA the Arrow Operator). It fetches the value at position Y in the array referenced by X. X is a simple scalar variable, an expression (an array element or a hash value), or a function returning a reference to an array. When dealing with multiple levels of dereferencing (such as with a reference to an array of arrays) only the first level requires the arrow operator. If X does not evaluate to an array reference, then a runtime error occurs. =head3 Example my @a = ("a", "b", "c"); my $aref = \@a; my $x = $aref->[1]; # $x is now "b" $aref->[3] = "d"; # @a is now ("a", "b", "c", "d") my $aoa = [ [0, 1, 2 ], ["a", "b", "c"], ]; my $y = $aoa->[1][1]; # $y is now "b" =head3 See also L, L, L, L, and L =head2 X->{Y} =head3 Class This belongs to L. =head3 Description This is the infix hash dereferencing operator (AKA the Arrow Operator). It fetches the value associated with the key Y in a hash referenced by X. X may be a scalar variable, an expression(an array element or a hash value the resolves to a hash-reference), or a subroutine that returns a hash-reference. When dealing with multiple levels of dereferencing (such as with a reference to a hash of hashes) only the first level requires the arrow operator. If X does not evaluate to a hash reference, then a runtime error occurs. =head3 Example my %h = (a => 1, b => 2, c => 3); my $href = \%h; my $x = $href->{b}; # $x is now 2 $href->{d} = 4; # %h is now (a => 1, b => 2, c => 3, d => 4) my $hoh = { a => { a => 1, b => 2, c => 3 }, b => { a => 4, b => 5, c => 6 } }; my $y = $hoh->{a}{b}; # $y is now 2 my $z = $hoh->{b}{b}; # $z is now 5 =head3 See also L, L, L, L, and L =head2 X->(Y) =head3 Class This belongs to L. =head3 Description This is the infix dereferencing function call operator (AKA the Arrow Operator). It calls the function referred to by X with the arguments Y. When dealing with multiple levels of dereferencing (such as with a reference to a hash of functions) only the first level requires the arrow operator; however, it is recommended you do not use this feature as it tends to cause confusion. If X does not evaluate to a code reference, then a runtime error occurs. =head3 Example my $sub = sub { my ($arg1, $arg2, $arg3) = @_; print "$arg1 = $arg2 + $arg3\n"; }; my $href = { func => $sub, }; $sub->("a", "b", "c"); # prints "a = b + c\n" $href->{func}(1, 2, 3); # prints "1 = 2 + 3\n" =head3 See also L, L, L, and L =head2 ${X} =head3 Class This belongs to L. =head3 Description If X is the name of a scalar variable, then this is just another way of saying C<$X>. This form is handy during interpolation when the name of a variable would be ambiguous: my $base = "foo"; my $s = "${base}bar"; # $s is now "foobar" When X is an expression, this is the scalar dereferencing operator. If X evaluates to a scalar reference then the value of the referenced item is returned. If X does not evaluate to a scalar reference a runtime error occurs. If X is a simple scalar variable the braces are unnecessary. If strict is turned off, and it shouldn't be, and X evaluates to a string then C<${X}> returns a scalar variable whose name is the same as the string. =head3 Example my $x = 5; my $sref = \$x; my @a = ($sref); $$sref = 6; # $x is now 6 ${$a[0]} = 7; # $x is now 7 no strict "refs"; our $y = $x; #$y is now 7 my $bad = "y"; $$bad = 8; # $y is now 8 =head3 See also L, L, and L =head2 ${X}[Y] =head3 Class This belongs to L. =head3 Description If X is the name of an array variable, then this is just another way of saying C<$X[Y]>. When X is an expression, this is the indexing array dereferencing operator. If X evaluates to an array reference then it returns the value of the Yth item of the referenced array. If X does not evaluate to an array reference a runtime error occurs. If X is a simple scalar variable the braces are unnecessary. The use of this operator is discouraged, see the L[Y]> operator for a better solution. If strict is turned off, and it shouldn't be, and X evaluates to a string then C<${X}[Y]> returns the Yth item from the array whose name is the same as the string. =head3 Example my @a = qw(a b c); my $aref = \@a; ${$aref}[0] = 1; # @a is now (1, "b", "c") no strict "refs"; our @b = @a; # @b is now (1, "b", "c") my $bad = "b"; ${$bad}[5] = "d"; # @b is now (1, "b", "c", undef, undef, "d") =head3 See also L, L[Y]>, L, and L =head2 ${X}{Y} =head3 Class This belongs to L. =head3 Description If X is the name of a hash variable, then this is just another way of saying C<$X{Y}>. When X is an expression, this is the indexing hash dereferencing operator. If X evaluates to an hash reference then it returns the value associated with the key Y of the referenced hash. If X does not evaluate to an hash reference a runtime error occurs. If X is a simple scalar variable the braces are unnecessary. The use of this operator is discouraged, see the L{Y}> operator for a better solution. If strict is turned off, and it shouldn't be, and X evaluates to a string then C<${X}{Y}> returns the value associated with the key Y from the hash whose name is the same as the string. =head3 Example my %h = (a => 1, b => 2, c => 3); my $href = \%h; ${$href}{a} = 4; # %h is now (a => 4, b => 2, c => 3) no strict "refs"; our %newh = %h; # %newh is now (a => 4, b => 2, c => 3) my $bad = "newh"; ${$bad}{d} = 4; # %newh is now (a => 4, b => 2, c => 3, d => 4) =head3 See also L, L{Y}>, L, and L =head2 @{X} =head3 Class This belongs to L. =head3 Description If X is the name of an array variable then this is just another way of saying @X. This form is handy during interpolation when the name of a variable would be ambiguous: my @a = (1 .. 3); my $x = "@{a}bar"; # $x is now "1 2 3bar" When X is an expression, this is the array dereferencing operator. If X evaluates to an array reference then the value of the referenced item is returned. If X does not evaluate to an array reference a runtime error occurs. If X is a simple scalar variable the braces are unnecessary. If strict is turned off, and it shouldn't be, and X evaluates to a string then @{X} returns an array variable whose name is the same as the string. =head3 Example my @a; my $aref = \@a; my @b = ($aref); @$aref = (1, 2, 3); # @a is now (1, 2, 3) @{$b[0]} = (4, 5, 6); # @a is now (4, 5, 6) no strict "refs"; our @c = @a; # @c is now (4, 5, 6) my $bad = "c"; @{$bad}[0] = 8; # @c is now (8, 5, 6) =head3 See also L, L, and L =head2 %{X} =head3 Class This belongs to L. =head3 Description If X is the name of a hash variable then this is just another way of saying %X. When X is an expression, this is the hash dereferencing operator. If X evaluates to a hash reference then the value of the referenced item is returned. If X does not evaluate to a hash reference a runtime error occurs. If X is a simple scalar variable the braces are unnecessary. If strict is turned off, and it shouldn't be, and X evaluates to a string then @{X} returns an array variable whose name is the same as the string. =head3 Example my %h; my $href = \%h; my @a = ($href); %$href = (a => 1); # %h is now (a => 1) no strict "refs"; our %newh = %h; # %newh is now (a => 1) my $bad = "newh"; @{$bad}{"c", "d"} = (3, 4); #%newh is now (a => 1, c => 3, d => 4) =head3 See also L, L, and L =head2 ++X =head3 Class This belongs to L. =head3 Description This is the prefix auto-increment operator. It is roughly equivalent to C, but there is a bit of extra magic to it. If you increment a variable that is numeric, or that has ever been used in a numeric context, you get a normal increment. If, however, the variable has been used in only string contexts since it was set, and has a value that is not the empty string and matches the pattern C, the increment is done as a string, preserving each character within its range, with carry: print ++($foo = "99"); # prints "100" print ++($foo = "a0"); # prints "a1" print ++($foo = "Az"); # prints "Ba" print ++($foo = "zz"); # prints "aaa" C is always treated as numeric, and in particular is changed to C<0> before incrementing (so that a pre-increment of an undef value will return C<1> rather than C). The incrementing occurs before the use of the value. =head3 Example my $x = 4; my $y = ++$x; # $x and $y are now 5 my $q = "200 Quatloos for the newcomer"; my $r = ++$q; # $q and $r are both now 201 my $s = "a"; my $t = ++$s; # $s and $t are now "b" my $m; my $n = ++$m; # $n is now 1 =head3 See also L =head2 X++ =head3 Class This belongs to L. =head3 Description This is the postfix auto-increment operator. It behaves the same way as the prefix auto-increment operator C<++X>, including the magic, but the value is taken before the incrementing is done. So, the after the following code C<$x> will be C<5> and C<$y> will be 4. Whereas with the prefix auto-increment operator, both values would be C<5>. C is always treated as numeric, and in particular is changed to C<0> before incrementing (so that a post-increment of an undef value will return C<0> rather than C). =head3 Example my $x = 4; my $y = $x++; # $x is now 5 and $y is now 4 my $q = "200 Quatloos for the newcomer"; my $r = $q++; # $q is now 201 and $r is "200 Quatloos for the newcomer" my $s = "a"; my $t = $s++; # $s is now "b" and $t is now "a" my $m; my $n = $m++; # $n is now 0 =head3 See also L =head2 --X =head3 Class This belongs to L. =head3 Description This is the prefix auto-decrement operator. It is equivalent to C. The value returned is reflects the decrementing, so after the following code runs, C<$x> and C<$y> will be C<4>. X will be converted to a number before decrementing, and if it cannot be converted it will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 5; my $y = --$x; # $x and $y are now 4 my $q = "200 Quatloos for the newcomer"; my $r = --$q; # $q and $r are both now 199 my $s = "foo"; my $t = --$s; # $s and $t are now -1 my $m; my $n = --$m; # $n is now -1 =head3 See also L =head2 X-- =head3 Class This belongs to L. =head3 Description This is the postfix auto-decrement operator. It is equivalent to C. The value returned is the value before decrementing, so after the following code runs, C<$x> will be 4 and C<$y> will be C<5>. X will be converted to a number before the operation, and if it cannot be converted it will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 5; my $y = $x--; # $x is now 4 and $y is now 5 my $q = "200 Quatloos for the newcomer"; my $r = $q--; # $q is now 199 and $r is "200 Quatloos for the newcomer" my $s = "foo"; my $t = $s--; # $s is now -1 and $t is "foo" my $m; my $n = $m--; # $n is now 0 =head3 See also L =head2 X ** Y =head3 Class This belongs to L =head3 Description This is the exponentiation operator. It raises X to the Yth power. Warning: it binds more tightly than unary minus, so C<-2**4> is C<-(2**4)>, not C<(-2)**4>. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 2 ** 8; # $x is now 256 my $y = log(2 ** 8)/log(2); # $y is now 8; my $s = 2 ** "foo"; # $s is now 1 (2 ** 0 is 1) my $t = 2 ** "4ever"; # $t is now 16 =head3 See also L and L =head2 !X =head3 Class This belongs to L. =head3 Description This is the high-precedence logical negation operator. It performs logical negation, i.e., "not". If X is a true value it returns the L otherwise it returns L. There is a low-precedence version: C. It is occasionally used in pairs (C) to convert any false value to the L and any true value to the L. =head3 Example my $m = !5; # $m is now the canonical false value my $n = !0; # $n is now the canonical true value my $o = !""; # $o is now the canonical true value my $p = !undef; # $p is now the canonical true value my $q = !!5; # $q is now the canonical true value my $r = !!0; # $r is now the canonical false value my $s = !!""; # $s is now the canonical false value my $t = !!undef; # $t is now the canonical false value =head3 See also L =head2 ~X =head3 Class This belongs to L. =head3 Description This is the bitwise negation operator (AKA C<1>'s complement operator). The width of the result is platform-dependent: C<~0> is C<32> bits wide on a C<32>-bit platform, but C<64> bits wide on a C<64>-bit platform, so if you are expecting a certain bit width, remember to use the C<&> operator to mask off the excess bits. X will be converted to a number before the operation, and if it cannot be converted it will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = ~0x00_00_00_00; # $x is now 0xFF_FF_FF_FF on 32-bit machines =head3 See also L and L =head2 \X =head3 Class This belongs to L. =head3 Description This is the backslash operator (AKA the Reference Operator). If X is a variable, function, or a scalar literal, then it creates a reference to X. If X is a list, then it creates a list of references to the items in the list. =head3 Example my $c = \1024; # $c is now a reference to the literal 1024 my $s = 5; my $sref = \$s; # $sref is now a reference to $s $$sref = 6; # $s is now 6 my @a = (1, 2, 3); my $aref = \@a; # $aref is now a reference to @a $aref->[0] = 5; # @a is now (5, 2, 3) push @$aref, 6; # @a is now (5, 2, 3, 6) my %h = (a => 1, b => 2, c => 3); my $href = \%h; # $href is now a reference to %h $href->{b} = 5; # %h is now (a => 1, b => 5, c => 3) my @keys = sort keys %$href; # @keys is now ("a", "b", "c") sub foo { return join "|", @_; } my $coderef = \&foo; my $x = $coderef->(1, 2, 3); # $x is now "1|2|3"; my $y = &$coderef(4, 5, 6); # $y is now "4|5|6"; # @refs now holds references to $s, @a, and %h my @refs = \($s, @a, %h); =head3 See also L[Y]>, L{Y}>, L(Y)>, L, and L =head2 +X =head3 Class This belongs to L. =head3 Description This is the unary plus operator. It has no effect whatsoever, even on strings. It is useful syntactically for separating a function name from a parenthesized expression that would otherwise be interpreted as the complete list of function arguments. =head3 Example print (split ",", "a,b,c,d")[2], "\n"; # syntax error print +(split ",", "a,b,c,d")[2], "\n"; # prints "c\n" =head3 See also L =head2 -X =head3 Class This belongs to L. =head3 Description The unary minus operator performs arithmetic negation if X is numeric. If X is a bareword it returns a string consisting of C<-> and the bareword. If X is a string that starts with a character that matches /[_a-zA-Z]/ it returns a string consisting of C<-> followed by the original string. If X begins with C<-> or C<+> then the first character is converted to the opposite sign. In all other cases, X will be converted to a number before the operation, and if it cannot be converted it will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 10; $x = -$x; # $x is now -10 $x = -$x; # $x is now 10 again my $y = -option; # $y is now "-option" my $z = -"foo": # $z is now "-foo" $z = -$z; # $z is now "+foo" $z = -$z; # $z is now "-foo" $z = -"*foo"; # $z is now -0 $x = "\x{e9}"; # $x is now e acute $x = -$x; # $x is now -0 because e acute is not in [_a-zA-Z] =head3 See also L =head2 STRING =~ PATTERN =head3 Class This belongs to L. =head3 Description This is the binding operator. It applies a regex match (C), substitution (C), or transliteration (C or C) PATTERN against a string variable. When used in scalar context, the return value generally indicates the success of the operation. Behavior in list context depends on the particular operator. See L for details and L for examples using these operators. If PATTERN is an expression rather than a search pattern, substitution, or transliteration, it is interpreted as a search pattern at run time. Note that this means that its contents will be interpolated twice, so "\\" =~ "\\"; is not ok, as the regex engine will end up trying to compile the pattern C<\>, which it will consider a syntax error. =head3 Example my $x = "foo bar baz"; # This will print "matched\n" if ($x =~ /foo/) { print "matched\n"; } =head3 See also L, L, and L =head2 STRING !~ PATTERN =head3 Class This belongs to L. =head3 Description This is the negative binding operator. It applies a regex match (C), substitution (C), or transliteration (C or C) PATTERN against a string variable. When used in scalar context, the return value is the opposite of what the return value would have been if the C<=~> had been used. Behavior in list context depends on the particular operator. See L for details and L for examples using these operators. If PATTERN is an expression rather than a search pattern, substitution, or transliteration, it is interpreted as a search pattern at run time. Note that this means that its contents will be interpolated twice, so "\\" =~ "\\"; is not ok, as the regex engine will end up trying to compile the pattern C<\>, which it will consider a syntax error. =head3 Example # This will print "matched\n" if ("foo bar baz" !~ /foo/) { print "didn't match\n"; } else { print "matched\n"; } =head3 See also L =head2 X * Y =head3 Class This belongs to L. =head3 Description This is the multiplication operator; it returns the product of X multiplied by Y. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 2 * 21; # $x is now 42 my $y = 2 * "five"; # $y is now 0 (2 * 0) my $z = 2 * "80s"; # $z is now 160 =head3 See also L =head2 X / Y =head3 Class This belongs to L. =head3 Description This is the division operator; it returns the quotient of X divided by Y. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). Warning: If Y is 0 or evaluates to 0 the program will die with a message like C. =head3 Example my $x = 84/2; # $x is now 42 my $y = 84/"2"; # $y is now 42 my $z = "five"/2; # $z is now 0 (0/2) my $d = 2/"five"; # dies (2/0) =head3 See Also L= Y> =head2 X % Y =head3 Class This belongs to L. =head3 Description This is the modulo operator. It computes the remainder of X divided by Y. The remainder is determined differently depending on the whether the numbers are integers or floating point and whether they are positive or negative. Given integer operands X and Y: If Y is positive, then "X % Y" is X minus the largest multiple of Y less than or equal to X. If Y is negative, then "X % Y" is X minus the smallest multiple of Y that is not less than X (i.e. the result will be less than or equal to zero). To illustrate this, here are the results of modding C<-9> through C<9> with C<4>: when X is -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 result is 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 And here is C<-9> through C<9> modded with C<-4>: when X is -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 result is -1 0 -3 -2 -1 0 -3 -2 -1 0 -3 -2 -1 0 -3 -2 -1 0 -3 From this we can see a positive Y constrains X to a range from C<0> to C<(Y - 1)> that wraps around and a negative Y constrains X to a range from C<(Y + 1)> to C<0>. When Y is a floating point number whose absolute value is in the range of C<0> to C<(UV_MAX + 1)> (where UV_MAX is the maximum of the unsigned integer type) X and Y are truncated to integers. If the absolute value of Y is larger than C<(UV_MAX + 1)> then the formula C<(X - I * Y)> (where I is a certain integer that makes the result have the same sign as Y). For example, on 32-bit systems C<4.5 % (2 ** 32 - 1)> is C<4>, but C<4.5 % 2 ** 32> is C<4.5>. Note: when the L pragma is in scope C<%> gives you direct access to the modulo operator as implemented by your C compiler. This operator is not as well defined for negative operands, but it will execute faster. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). Warning: If Y is 0 or evaluates to 0 the program will die with a message like C. =head3 Example my $odd = $x % 2; # $odd is 1 when $x is odd and 0 when $x is even my $hour = ($hour + 1) % 24; # 23 (11pm) plus 1 hour is 0 (12am). my $x = "foo" % 3; # $x is now 0 (0 % 3) my $y = "5" % 4; # $y is now 1 =head3 See also L Y> and L =head2 X x Y =head3 Class This belongs to L. =head3 Description This is the repetition operator. When X is a scalar value it returns a string made up of X repeated Y times. When X is a list it returns a list made up of X repeated Y times. If Y is less than 1 an empty string is returned. Y will be converted to a number before the operation, and if it cannot be converted it will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = "abc" x 3; # $x is now the string "abcabcabc" my @a = ("abc") x 3; # @a is now ("abc", "abc", "abc") my $s = "abcd" x "a"; # $s is now "" ("abcd" x 0) my $t = "abcd" x "2"; # $t is now "abcdabcd" =head2 X + Y =head3 Class This belongs to L. =head3 Description This is the addition operator. It returns the result of X plus Y. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 40 + 2; # $x is now 42 my $y = 40 + "a"; # $y is now 40 (40 + 0) my $y = 40 + "2"; # $y is now 42 =head3 See also L =head2 X - Y =head3 Class This belongs to L. =head3 Description This is the subtraction operator. It returns the result of X minus Y. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 100 - 58; # $x is now 42 my $y = 100 - "five"; # $y is now 100 (100 - 0) my $z = 100 - "58"; # $z is now 42 =head3 See also L =head2 X . Y =head3 Class This belongs to L. =head3 Description This is the concatenation operator. It coerces its arguments to strings, then returns a new string that begins with X and ends with Y. It forces scalar context on X and Y. =head3 Example my $x = "foo" . "bar"; #$x is now "foobar" my @a = (1 .. 10); my $y = "the number of elements in \@a is " . @a; =head3 See also L =head2 X << Y =head3 Class This belongs to L. =head3 Description This is the left bit-shift operator. It shift bits that make up the integer X Y places to the left. If X is not an integer it will be converted into one before the operation begins. New bits added to the right side are all C<0>. Overflowing the integer type on you platform (i.e. creating a number too large to store in your platform's integer type) results in behavior that is not well defined (i.e. it is platform specific). When Y is negative the results are also not well defined. This is because the left bit-shift operator is implemented by the native C compiler's left bit-shift operator (and those operations are not defined by ISO C). Shifting 1 bit to the left is the same as multiplying the number by 2. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example # On 32-bit machines my $x = 0xFF_00_FF_00 << 8; # $x is now not well defined # On 64-bit machines my $y = 0xFF_00_FF_00 << 8; # $y is now 0xFF_00_FF_00_00 my $z = 6 << 1; # $z is now 12 =head3 See also LE= Y> =head2 X >> Y =head3 Class This belongs to L. =head3 Description This is the right-bit shift operator. It shift bits that make up the integer X Y places to the right. If X is not an integer it will be converted into one before the operation begins. Bits shifted past the rightmost edge are lost. New bits added to the left side are all 0. Shifting to the right one bit is the same as an integer division by 2. When Y is negative the results are not well defined (i.e. platform specific). This is because the right bit-shift operator is implemented by the native C compiler's right bit-shift operator (and that is not defined by ISO C). Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 0x00_FF_00_FF >> 8; # $x is now 0x00_00_FF_00 my $y = 12 >> 1; # $y is now 6 =head3 See also LE= Y> =head2 -r FILE =head3 Class This belongs to L. =head3 Description This is the effective uid/gid readable filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and is readable by the effective uid/gid, C<""> if it exists but if it not readable, or C if the file does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -r "/etc/passwd") { if (-r _) { print "/etc/passwd is readable\n"; } else { print "/etc/passwd is not readable\n"; } } else { print "/etc/passwd doesn't exist\n"; } =head3 See also L>, L, L and L =head2 -w FILE =head3 Class This belongs to L. =head3 Description This is the effective uid/gid writable filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and is writable by the effective uid/gid, C<""> if it exists but if it not writable, or C if the file does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -w "/etc/passwd") { if (-w _) { print "/etc/passwd is writable\n"; } else { print "/etc/passwd is not writable\n"; } } else { print "/etc/passwd doesn't exist\n"; } =head3 See also L>, L, L and L =head2 -x FILE =head3 Class This belongs to L. =head3 Description This is the effective uid/gid executable filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and is executable by the effective uid/gid, C<""> if it exists but if it not executable, or C if the file does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -x $0) { if (-x _) { print "this script is executable\n"; } else { print "this script is not executable\n"; } } else { print "this script doesn't exist on the filesystem\n"; } =head3 See also L>, L, L and L =head2 -o FILE =head3 Class This belongs to L. =head3 Description This is the effective owner filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and is owned by the effective uid, C<""> if it exists but if it not owned by the effective uid, or C if the file does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -o $0) { if (-o _) { print "this script is owned by $>\n"; } else { print "this script is not owned by $>\n"; } } else { print "this script doesn't exist on the filesystem\n"; } =head3 See also L>, L, L and L =head2 -R FILE =head3 Class This belongs to L. =head3 Description This is the real uid/gid readable filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and is readable by the real uid/gid, C<""> if it exists but if it not readable, or C if the file does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -R "/etc/passwd") { if (-R _) { print "/etc/passwd is readable\n"; } else { print "/etc/passwd is not readable\n"; } } else { print "/etc/passwd doesn't exist\n"; } =head3 See also L>, L, L and L =head2 -W FILE =head3 Class This belongs to L. =head3 Description This is the real uid/gid writable filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and is writable by the real uid/gid, C<""> if it exists but if it not writable, or C if the file does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -W "/etc/passwd") { if (-W _) { print "/etc/passwd is writable\n"; } else { print "/etc/passwd is not writable\n"; } } else { print "/etc/passwd doesn't exist\n"; } =head3 See also L>, L, L and L =head2 -X FILE =head3 Class This belongs to L. =head3 Description This is the real uid/gid executable filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and is executable by the real uid/gid, C<""> if it exists but if it not executable, or C if the file does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -X $0) { if (-X _) { print "this script is executable\n"; } else { print "this script is not executable\n"; } } else { print "this script doesn't exist on the filesystem\n"; } =head3 See also L>, L, L and L =head2 -O FILE =head3 Class This belongs to L. =head3 Description This is the real owner filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and is owned by the real uid, C<""> if it exists but if it not owned by the effective uid, or C if the file does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -O $0) { if (-O _) { print "this script is owned by $>\n"; } else { print "this script is not owned by $>\n"; } } else { print "this script doesn't exist on the filesystem\n"; } =head3 See also L>, L, L and L =head2 -e FILE =head3 Class This belongs to L. =head3 Description This is the existence filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists or C if the file or directory does not exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (-e $0) { print "this script exists\n"; } else { print "this script doesn't exist on the filesystem\n"; } =head3 See also L and L =head2 -z FILE =head3 Class This belongs to L. =head3 Description This is the empty filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns C<1> if the file or directory exists and has zero size, C<""> if the file or directory exists, but has zero size, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -z "/tmp/somefile") { if (-z _) { print "somefile is empty\n"; } else { print "somefile has data in it\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -s FILE =head3 Class This belongs to L. =head3 Description This is the size filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the size of the file in bytes if the file or directory exists or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -s "/tmp/somefile") { print "somefile is ", -s _, " byte(s) long\n"; } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -f FILE =head3 Class This belongs to L. =head3 Description This is the regular file filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file exists and is a regular file, the L if the file or directory exists, but isn't a regular file, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -f "/tmp/somefile") { if (-f _) { print "somefile is a regular file\n"; } else { print "somefile is not a regular file\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -d FILE =head3 Class This belongs to L. =head3 Description This is the directory filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the directory exists , the L if the file exists, but isn't a directory file, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -d "/tmp/somefile") { if (-d _) { print "somefile is a directory\n"; } else { print "somefile is not a directory\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -l FILE =head3 Class This belongs to L. =head3 Description This is the symbolic link filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file or directory exists and is a symbolic link, the L if the file or directory exists, but isn't a symbolic link, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -l "/tmp/somefile") { if (-l _) { print "somefile is a symbolic link\n"; } else { print "somefile is not a symbolic link\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -p FILE =head3 Class This belongs to L. =head3 Description This is the pipe filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file exists and is a pipe, the L if the file or directory exists, but isn't a pipe, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -p "/tmp/somefile") { if (-p _) { print "somefile is a pipe\n"; } else { print "somefile is not a pipe\n"; } } else { print "somefile doesn't exist\n"; } if (-p STDOUT) { print "we are piping to another program\n"; } else { print "we are not piping to another program\n"; } =head3 See also L and L =head2 -S FILE =head3 Class This belongs to L. =head3 Description This is the socket filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file exists and is a socket, the L if the file or directory exists, but isn't a socket, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -S "/tmp/somefile") { if (-S _) { print "somefile is a socket\n"; } else { print "somefile is not a socket\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -b FILE =head3 Class This belongs to L. =head3 Description This is the block special filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file exists and is a block special file, the L if the file or directory exists, but isn't a block special file, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -b "/tmp/somefile") { if (-b _) { print "somefile is a block special file\n"; } else { print "somefile is not a block special file\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -c FILE =head3 Class This belongs to L. =head3 Description This is the character special filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file exists and is a character special file, the L if the file or directory exists, but isn't a character special file, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -c "/tmp/somefile") { if (-c _) { print "somefile is a character special file\n"; } else { print "somefile is not a character special file\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -t FILE =head3 Class This belongs to L. =head3 Description This is the socket filetest operator. FILE must be a filehandle or an expression that returns one. It returns the L if the filehandle is opened to a tty or C if it is not. If given no arguments, it will operate on C<$_>. =head3 Example if (-t STDOUT) { print "output is going to a console\n"; } else { print "output is being redirected\n"; } =head3 See also L and L =head2 -u FILE =head3 Class This belongs to L. =head3 Description This is the setuid filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file exists and has its setuid set, the L if the file or directory exists, but its setuid isn't set, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -u "/tmp/somefile") { if (-u _) { print "somefile has setuid set\n"; } else { print "somefile dosn't have setuid set\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -g FILE =head3 Class This belongs to L. =head3 Description This is the setgid filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file exists and has its setgid set, the L if the file or directory exists, but its setgid isn't set, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -g "/tmp/somefile") { if (-g _) { print "somefile has setgid set\n"; } else { print "somefile dosn't have setgid set\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -k FILE =head3 Class This belongs to L. =head3 Description This is the sticky bit filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the L if the file exists and has its sticky bit set, the L if the file or directory exists, but its sticky bit isn't set, or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -k "/tmp/somefile") { if (-k _) { print "somefile has sticky bit set\n"; } else { print "somefile dosn't have sticky bit set\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L and L =head2 -T FILE =head3 Class This belongs to L. =head3 Description This is the ASCII text filetest operator. FILE must be a filename, filehandle, or an expression that returns one of the preceding values. It returns the L if the file exists and appears to be a text file, the L if the file or directory exists, but doesn't appear to be a text file, or C if the file or directory doesn't exist. If X is a filename, it guesses the type of the file by reading the first block from the file. If the first block doesn't contain any nul characters (i.e. C<\0>) and it contains fewer than thirty percent control characters or characters that have their high bits set, then it is considered an ASCII text file. If X is a filehandle it guess the type the same way, but uses the current IO buffer instead of the first block. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -T "/tmp/somefile") { if (-T _) { print "somefile looks like a text file\n"; } else { print "somefile looks like a data file\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L, L and L =head2 -B FILE =head3 Class This belongs to L. =head3 Description This is the binary filetest operator. FILE must be a filename, filehandle, or an expression that returns one of the preceding values. It returns the L if the file exists and appears to be a binary file, the L if the file or directory exists, but doesn't appear to be a binary file, or C if the file or directory doesn't exist. If X is a filename, it guesses the type of the file by reading the first block from the file. If the first block contains any nul characters (i.e. C<\0>) or it contains more than thirty percent control characters or characters that have their high bits set, then it is considered a binary file. If X is a filehandle it guess the type the same way, but uses the current IO buffer instead of the first block. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. =head3 Example if (defined -B "/tmp/somefile") { if (-B _) { print "somefile looks like a data file\n"; } else { print "somefile looks like a text file\n"; } } else { print "somefile doesn't exist\n"; } =head3 See also L, L and L =head2 -M FILE =head3 Class This belongs to L. =head3 Description This is the mtime filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the script start time minus file modification time, in days, if the file or directory exists or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. The script start time is stored in C<$^T>, so modifying this variable will have an affect on the results of calling C<-M> on a file. =head3 Example if (-M "somefile") { print "it has been ", -M _, " days since somefile was modified\n"; } else { print "somefile doesn't exist\n"; } =head3 See also L, L, and L =head2 -A FILE =head3 Class This belongs to L. =head3 Description This is the atime filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the script start time minus file access time, in days, if the file or directory exists or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. The script start time is stored in C<$^T>, so modifying this variable will have an affect on the results of calling C<-A> on a file. Warning: many filesystems now turn off atime updating. =head3 Example if (-A "somefile") { print "it has been ", -A _, " days since somefile was accessed\n"; } else { print "somefile doesn't exist\n"; } =head3 See also L, L, and L =head2 -C FILE =head3 Class This belongs to L. =head3 Description This is the ctime filetest operator. FILE must be a filename, filehandle, dirhandle, or an expression that returns one of the preceding values. It returns the script start time minus the ctime of the file, in days, if the file or directory exists or C if the file or directory doesn't exist. If given no arguments, it will operate on C<$_>. If given the C<_> special filehandle as an argument, it will use cached information from the previous call to C or a filetest operator. The script start time is stored in C<$^T>, so modifying this variable will have an affect on the results of calling C<-A> on a file. Warning, different filesystems have different ideas about what the ctime is. In Unix, the ctime is the inode change time. The ctime is updated when a change occurs to the file's inode (permissions change, ownership change, etc.). =head3 Example if (-C "somefile") { print "it has been ", -C _, " days since somefile was accessed\n"; } else { print "somefile doesn't exist\n"; } =head3 See also L, L, and L =head2 X < Y =head3 Class This belongs to L =head3 Description This is the numeric less than operator. It returns the L if X is numerically less than Y or the L if X is greater than or equal to Y. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example if (4 < 5) { print "this is true unless Perl is broken\n"; } if (5 < 4) { print "this should never be true\n"; } else { print "it should always be false\n"; } =head3 See also L= Y>, L, and L =head2 X > Y =head3 Class This belongs to L =head3 Description This is the numeric greater than operator. It returns the L if X is numerically greater than Y or the L if X is less than or equal to Y. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example if (5 > 4) { print "this is true unless Perl is broken\n"; } if (4 > 5) { print "this should never be true\n"; } else { print "it should always be false\n"; } =head3 See also L= Y> L, and L =head2 X <= Y =head3 Class This belongs to L =head3 Description This is the numeric less than or equal to operator. It returns the L if X is numerically less than or equal to Y or the L if X is greater than to Y. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example if (4 <= 4) { print "this is true unless Perl is broken\n"; } if (5 <= 4) { print "this should never be true\n"; } else { print "it should always be false\n"; } =head3 See also L Y>, L, and L =head2 X >= Y =head3 Class This belongs to L =head3 Description This is the numeric greater than or equal to operator. It returns the L if X is numerically greater than or equal to Y or the L if X is less than Y. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example if (4 >= 4) { print "this is true unless Perl is broken\n"; } if (4 >= 5) { print "this should never be true\n"; } else { print "it should always be false\n"; } =head3 See also L Y>, L, and L =head2 X lt Y =head3 Class This belongs to L =head3 Description This is the lexical less than operator (also known as the string less than operator or the stringwise less than operator). It returns the L if X is less than Y and the L if X is greater than or equal to Y. The order of various characters is locale dependent. The default order is determined by the Unicode ordinal value (since Unicode contains the ASCII set as its first C<127> characters, this order is the same as the ASCII order). =head3 Example if ("a" lt "b") { print "this is true unless the locale is really weird\n"; } if ("z" lt "a") { print "this should never be true (unless the locale is weird)\n"; } else { print "it should always be false (unless the locale is weird)\n"; } =head3 See also L Y>, L= Y>, and L L =head2 X gt Y =head3 Class This belongs to L =head3 Description This is the lexical greater than operator (also known as the string greater than operator or the stringwise greater than operator). It returns the L if X is greater than Y and the L if X is less than or equal to Y. The order of various characters is locale dependent. The default order is determined by the Unicode ordinal value (since Unicode contains the ASCII set as its first C<127> characters, this order is the same as the ASCII order). =head3 Example if ("b" gt "a") { print "this is true unless the locale is really weird\n"; } if ("a" gt "z") { print "this should never be true (unless the locale is weird)\n"; } else { print "it should always be false (unless the locale is weird)\n"; } =head3 See also L Y>, L= Y>, and L =head2 X le Y =head3 Class This belongs to L =head3 Description This is the lexical less than or equal to operator (also known as the string less than or equal to operator or the stringwise less than or equal to operator). It returns the L if X is less than or equal to Y and the L if X is greater than Y. The order of various characters is locale dependent. The default order is determined by the Unicode ordinal value (since Unicode contains the ASCII set as its first C<127> characters, this order is the same as the ASCII order). =head3 Example if ("a" le "a") { print "this is true unless Perl is broken\n"; } if ("z" le "a") { print "this should never be true (unless the locale is weird)\n"; } else { print "it should always be false (unless the locale is weird)\n"; } =head3 See also L Y>, L= Y>, and L =head2 X ge Y =head3 Class This belongs to L =head3 Description This is the lexical greater than or equal to operator (also known as the string greater than or equal to operator or the stringwise greater than or equal to operator). It returns the L if X is greater than Y and the L if X is less than or equal to Y. The order of various characters is locale dependent. The default order is determined by the Unicode ordinal value (since Unicode contains the ASCII set as its first C<127> characters, this order is the same as the ASCII order). =head3 Example if ("a" ge "a") { print "this is true unless Perl is broken\n"; } if ("a" ge "z") { print "this should never be true (unless the locale is weird)\n"; } else { print "it should always be false (unless the locale is weird)\n"; } =head3 See also L Y>, L= Y>, L, and L =head2 X == Y =head3 Class This belongs to L. =head3 Description This is the numeric equality operator. It returns the L if X and Y evaluate as the same number and the L if they don't. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). Important note: the numeric equality operator should not be used with floating point numbers as the error introduced by rounding may cause the number to not be exactly what you are comparing against. Always use the less than and greater than operators with a small delta: my $x = 0; for (1 .. 10) { $x += .1; } if ($x == 1) { print "$x is one\n"; } else { print "oops, darn floating point numbers\n"; } my $delta = 1e-15; # 0.000000000000001 if ( $x < 1 + $delta and $x > 1 - $delta ) { print "this time it worked\n"; } =head3 Example if (5 == 5) { print "this will be true unless Perl is broken\n" } =head3 See also L, L, and L =head2 X != Y =head3 Class This belongs to L. =head3 Description This is the numeric not equals operator. It returns the L if X does not evaluate to the same numeric value as Y, and the L if it doesn't. Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). Important note: the numeric equality operator should not be used with floating point numbers as the error introduced by rounding may cause the number to not be exactly what you are comparing against. Always use the less than and greater than operators with a small delta: my $x = 0; for (1 .. 10) { $x += .1; } if ($x != 1) { print "oops, darn floating point numbers\n"; } my $delta = 1e-15; # 0.000000000000001 if ( $x > 1 + $delta and $x < 1 - $delta ) { print "wow, your floating point representation is really good\n"; } else { print "this time it worked\n"; } =head3 Example if (5 != 4) { print "this will be true unless Perl is broken\n" } =head3 See also L, L, and L =head2 X <=> Y =head3 Class This belongs to L. =head3 Description This is the numeric comparison operator. It returns less than C<0> if X is numerically less than Y, C<0> is if X and Y are the same numerically, or more than C<0> if X is numerically greater than Y. It is most often seen combined with the C function: my @sorted = sort { $a <=> $b } @unsorted; Both X and Y will be converted to numbers before the operation; if they cannot be converted they will turned into C<0> (and a warning is thrown if L are turned on). =head3 Example my $x = 4 <=> 5; # x is now negative my $y = 5 <=> 5; # y is now 0 my $z = 6 <=> 5; # z is now positive =head3 See also L =head2 X eq Y =head3 Class This belongs to L. =head3 Description This is the lexical equality operator (AKA the string equality operator or the stringwise equality operator). It returns true if X and Y evaluate as the same string. =head3 Example if ("foo" eq "foo") { print "this is true, unless Perl is broken\n"; } if ("foo" eq "bar") { print "this is should always be false, unless Perl is broken\n"; } else { print "this is false, unless Perl is broken\n"; } =head3 See also L, L, and L =head2 X ne Y =head3 Class This belongs to L. =head3 Description This is the lexical not equals operator (AKA the string not equals operator or the stringwise not equals operator). It returns the L if X and Y evaluate as the same string, and the L if they don't. =head3 Example if ("foo" ne "bar") { print "this is true, unless Perl is broken\n"; } if ("foo" ne "foo") { print "this is should always be false, unless Perl is broken\n"; } else { print "this is false, unless Perl is broken\n"; } =head3 See also L, L, and L =head2 X cmp Y =head3 Class This belongs to L. =head3 Description This is the lexical comparison operator (also known as the string comparison operator or the stringwise comparison operator). It returns a negative value if X is lexically less than Y, C<0> is X and Y are lexically the same, or a positive value if X is lexically larger than Y. This comparison is affected by the current locale and the default order is determined by the Unicode ordinal value (since Unicode contains the ASCII set as its first C<127> characters, this order is the same as the ASCII order). It is most commonly seen used with the C function: my @sorted = sort { $a cmp $b } @unsorted; =head3 Example my $x = "a" cmp "b"; #$x is now negative my $y = "b" cmp "b"; #$x is now 0 my $z = "c" cmp "b"; #$x is now positive =head3 See also L=E Y> =head2 X ~~ Y =head3 Class This belongs to L. =head3 Description This is the smartmatch operator. In 5.10 and 5.10.1 it has different behavior. See L for more detail. Prior to 5.10, it was sometimes used to mean C<~(~X)> which has the affect of forcing scalar context on X. You should use the C function for that purpose instead. =head3 Example See L for examples. =head3 See also L, L, and L =head2 X & Y =head3 Class This belongs to L. =head3 Description This is the bitwise and operator. It ands together the individual bits of X and Y. The truth table for and is: X Y R -----+--- 0 0 | 0 0 1 | 0 1 0 | 0 1 1 | 1 That is, it sets the result bit to 1 if both the X and Y bits are 1, otherwise it sets the result bit to 0. This operation is done for every bit in X and Y. If both operands are strings, they are considered character by character. The result is determined by anding the ordinal value of the characters, so C<"a" & "b"> is equivalent to C. If X and Y are different sizes, then the longer string is truncated to the length of the shorter string. =head3 Example # 0x4545 is 0b0000_0100_0000_0101_0000_0100_0000_0101 # 0x00FF is 0b0000_0000_0000_0000_1111_1111_1111_1111 # 0x4545 & 0x00FF is 0b0000_0000_0000_0000_0000_0100_0000_0101 or 0x0045 my $z = 0x4545 & 0x00FF; # $z is now 0x0045 # In ASCII (and UTF-8) # "a" is 0b0110_0001 # "b" is 0b0110_0010 # "a" & "b" is 0b0110_0000 or "`" my $x = "a" & "b"; # $x is now "`" =head3 See also L, L, L and L. =head2 X | Y =head3 Class This belongs to L. =head3 Description This is the bitwise or operator. It ors together the individual bits of X and Y. The truth table for or is: X Y R -----+--- 0 0 | 0 0 1 | 1 1 0 | 1 1 1 | 1 That is, it sets the result bit to 0 if both the X and Y bits are 0, otherwise it sets the result bit to 1. This operation is done for every bit in X and Y. If both operands are strings, they are considered character by character. The result is determined by oring the ordinal value of the characters, so C<"a" | "b"> is equivalent to C. If X and Y are different sizes, then the shorter item is treated as if it had additional bits that are set to 0. =head3 Example # 0x4545 is 0b0000_0100_0000_0101_0000_0100_0000_0101 # 0x00FF is 0b0000_0000_0000_0000_1111_1111_1111_1111 # 0x4545 | 0x00FF is 0b0000_0100_0000_0101_1111_1111_1111_1111 or 0x45FF my $y = 0x4545 | 0x00FF; # $y is now 0x45FF # In ASCII (and UTF-8) # "a" is 0b0110_0001 # "b" is 0b0110_0010 # "a" | "b" is 0b0110_0011 or "c" my $x = "a" | "b"; # $x is now "c" =head3 See also L, L, LE Y>, LE Y>, L, L, and L. =head2 X ^ Y =head3 Class This belongs to L. =head3 Description This is the bitwise exclusive-or operator. It exclusive-ors together the individual bits of X and Y. The truth table for exclusive-or is: X Y R -----+--- 0 0 | 0 0 1 | 1 1 0 | 1 1 1 | 0 That is, it sets the result bit to 1 if X or Y is set, or 0 if both or neither is set. This operation is done for every bit in X and Y. If both operands are strings, they are considered character by character. The result is determined by exclusive-oring the ordinal value of the characters, so C<"a" ^ "b"> is equivalent to C. If X and Y are different sizes, then the shorter item is treated as if it had additional bits that are set to 0. =head3 Example # 0x4545 is 0b0000_0100_0000_0101_0000_0100_0000_0101 # 0x00FF is 0b0000_0000_0000_0000_1111_1111_1111_1111 # 0x4545 ^ 0x00FF is 0b0000_0100_0000_0101_1111_1111_1111_1010 or 0x45BA my $y = 0x4545 ^ 0x00FF; # $y is now 0x45BA # In ASCII (and UTF-8) # "a" is 0b0110_0001 # "b" is 0b0110_0010 # "a" ^ "b" is 0b0000_0011 or "\x{03}" my $x = "a" ^ "b"; # $x is now "\x{03}" =head3 See also L, L, LE Y>, LE Y>, L Y>, L and L. =head2 X && Y =head3 Class This belongs to L. =head3 Description This is the high-precedence logical and operator. It returns X if X evaluates to false, otherwise it returns Y. It binds more tightly than the low-precedence logical and operator: my $x = 5 && 4; # is equivalent to my $x = (5 && 4); whereas: my $y = 5 and 4; # is equivalent to (my $y = 5) and 4; It is most commonly used in conditional statements such as C, C, C. =head3 Example my $w = ""; my $x = 0; my $y = 1; my $z = "foo"; print $w && $y, "\n"; # prints "\n" print $x && $y, "\n"; # prints "0\n" print $y && $z, "\n"; # prints "foo\n" print $z && $y, "\n"; # prints "1\n" =head3 See also L, L =head2 X || Y =head3 Class This belongs to L. =head3 Description This is the high-precedence logical or operator. It returns the X if X evaluates to true, otherwise it returns Y. It binds more tightly than the low-precedence logical or operator: my $x = 5 || 4; # is equivalent to my $x = (5 || 4); whereas: my $y = 5 or 4; # is equivalent to (my $y = 5) or 4; It is most commonly used in conditional statements such as C, C, C. It was used in the recent past to create default values: my %config = get_config(); # Set $x to $config{x} unless it is false, in which case set it to 5 my $x = $config{x} || 5; but this use has the drawback of not respecting a value of 0 or 0.0, since they both evaluate to false. The // operator is now recommend for this purpose since it tests if X is defined, not if it is true. =head3 Example my $w = ""; my $x = 0; my $y = 1; my $z = "foo"; print $w || $x, "\n"; # prints "0\n"; print $x || $w, "\n"; # prints "\n"; print $w || $y, "\n"; # prints "1\n" print $x || $y, "\n"; # prints "1\n" print $y || $z, "\n"; # prints "1\n" print $z || $y, "\n"; # prints "foo\n" =head3 See also L, L, L Y>, LE Y>, and L =head2 X // Y =head3 Class This belongs to L. =head3 Description This is the high-precedence logical defined-or. It returns X if X is defined, otherwise it returns Y. This operator is only available if you have enabled 5.10 features (using the L pragma or C). It is most commonly used to create default values: my %config = get_config(); # Set $x to $config{x} if it is defined, otherwise set it to 5 my $x = $config{x} // 5; =head3 Example my $x; my $y = 0; my $z = 5; print $x // $y, "\n"; # prints 0 print $y // $z, "\n"; # prints 0 print $z // $y, "\n"; # prints 5 =head3 See also L, L, LE Y>, L Y>, and L =head2 X .. Y =head3 Class This belongs to L. =head3 Description Depending on context, this is either the range operator (if it is list context) or the flip-flop operator (if it is in scalar context). The range operator creates a list starting with X and ending with Y (i.e. it is inclusive). If Y is less than X then an empty list is returned. If both X and Y are strings, then the auto-magical behavior of L is used to generate the list. The flip-flop operator returns false as long as X is false, once X returns true the flip-flop returns true until I Y is true, at which time it returns false. Each flip-flop operator keeps track of its own state separately from the other flip-flop operators. Note: it is possible for both the X and Y tests to be true at the same time, in which case it will return true and then false on the next test. =head3 Example my @list = 0 .. 5; # @list is now (0, 1, 2, 3, 4, 5) my @az = "a" .. "z"; # @az is now the lowercase ASCII alphabet #prints "4\n", "5\n", "6\n", "7\n", and "8\n" for my $i (0 .. 10) { # Start printing when $i is 4 and stop after $i is 8 if ($i == 4 .. $i == 8) { print "$i\n"; } } # Prints "4\n" for my $i (0 .. 10) { # Start printing when $i is 4 and stop after $i is 4 if ($i == 4 .. $i == 4) { print "$i\n"; } } =head3 See also L =head2 X ... Y =head3 Class This belongs to L. =head3 Description This is another form of the range/flip flop operator (L). Its meaning is context dependent. In list context it creates a list starting with X and ending with Y (i.e. it is inclusive). If Y is less than X then an empty list is returned. If both X and Y are strings, then the auto-magical behavior of L is used to generate the list. In scalar context it returns false as long as X is false, once X becomes true it returns true until I Y is true, at which time it returns false. Each flip-flop operator keeps track of its own state separately from the other flip-flop operators. It only evaluates X or Y each time it called, unlike L which evaluates both X and Y each time it is called. =head3 Example my @list = 0 ... 5; # @list is now (0, 1, 2, 3, 4, 5) my @az = "a" ... "z"; # @az is now the lowercase ASCII alphabet #prints "4\n", "5\n", "6\n", "7\n", and "8\n" for my $i (0 ... 10) { # Start printing when $i is 4 and stop after $i is 8 if ($i == 4 ... $i == 8) { print "$i\n"; } } # Prints "4\n", "5\n", "6\n", "7\n", "8\n", "9\n", and "10\n" for my $i (0 ... 10) { # Start printing when $i is 4 and stop after $i is 4 a second time if ($i == 4 ... $i == 4) { print "$i\n"; } } =head3 See also L =head2 X ? Y : Z =head3 Class This belongs to L. =head3 Description This is the conditional operator. It works much like an if-then-else. If the X is true then Y is evaluated and returned otherwise Z is evaluated and returned. The context it is called in propagates to Y and Z, so if the operator is called in scalar context and X is true then Y will be evaluated in scalar context. The result of the operator is a valid lvalue (i.e. it can be assigned to). Note, normal rules about lvalues (e.g. you can't assign to constants) still apply. =head3 Example # Simple implementation of max sub max { my ($m, $n) = @_; return $m >= $n ? $m : $n; } my $x = max 5, 4; # $x is now 5 my $y = max 4, 5; # $y is now 5 my @a = $x == $y ? (1, 2, 3) : (4, 5, 6); # @a is now (1, 2, 3) my @b = $x != $y ? (1, 2, 3) : (4, 5, 6); # @b is now (4, 5, 6) ($x == $y ? $x : $y) = 15; # $x is now 15 ($x == $y ? $x : $y) = 15; # $y is now 15 =head3 See also L =head2 X = Y =head3 Class This belongs to L. =head3 Description If X is a scalar, then this is the assignment operator. It assigns Y to X. The act of assigning creates an lvalue, that is the result of an assignment can be used in places where you would normally use a plain variable: my $str = "foobar"; (my $modified = $str) =~ s/foo/bar/; # $modified is now "barbar" # $str is still "foobar" If X is a list, then this is the list assignment operator and it provides list context to Y. The first item in the list Y is assigned to the first item in list X, the second to the second, and so on. If placed in scalar context, the return value of list assignment is the number of items in the second list. If placed in list context it returns the list X (after the assignment has taken place). =head3 Example my $x = 5; # $x is now 5 my $y = 6; # $y is now 6 ($x, $y) = ($y, $x); # $x is now 6 and $y is now 5 my $i = my $j = my $k = 10; # $i, $j, and $k are now all 10 my $m = my ($n, $o) = ("a", "b", "c"); # $m is now 3 =head2 X **= Y =head3 Class This belongs to L. =head3 Description This is the exponentiation assignment operator. It is equivalent to X = X ** Y That is it raises the value X to the Yth power and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; $x **= $y; # $x is now 2 ** 8 or 256 =head3 See also L and L =head2 X += Y =head3 Class This belongs to L. =head3 Description This is the addition assignment operator. It is equivalent to X = X + Y That is it adds X and Y together and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; $x += $y; # $x is now 2 + 8 or 10 =head3 See also L and L =head2 X -= Y =head3 Class This belongs to L. =head3 Description This is the subtraction assignment operator. It is equivalent to X = X - Y That is it subtracts Y from X and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; $x -= $y; # $x is now 2 - 8 or -6 =head3 See also L and L =head2 X .= Y =head3 Class This belongs to L. =head3 Description This is the concatenation assignment operator. It is equivalent to X = X . Y That is it joins the strings X and Y and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = "foo"; my $y = "bar"; $x .= $y; #$x is now "foobar" my $x = 2; my $y = 8; $x .= $y; # $x is now 2 . 8 or "28" =head3 See also L and L =head2 X *= Y =head3 Class This belongs to L. =head3 Description This is the multiplication assignment operator. It is equivalent to X = X * Y That is it multiplies X by Y and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; $x *= $y; # $x is now 2 * 8 or 16 =head3 See also L and L =head2 X /= Y =head3 Class This belongs to L. =head3 Description This is the division assignment operator. It is equivalent to X = X / Y That is it divides X by Y and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). Warning: If Y is 0 or evaluates to 0 the program will die with a message like C. =head3 Example my $x = 2; my $y = 8; $x /= $y; # $x is now 2 / 8 or 0.25 =head3 See also L and L =head2 X %= Y =head3 Class This belongs to L. =head3 Description This is the modulo assignment operator. It is equivalent to X = X % Y That is it computes the remainder of X divided by Y and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). Warning: If Y is 0 or evaluates to 0 the program will die with a message like C. =head3 Example my $x = 2; my $y = 8; $x %= $y; # $x is now 2 % 8 or 2 =head3 See also L and L =head2 X x= Y =head3 Class This belongs to L. =head3 Description This is the scalar repetition assignment operator. It is equivalent to X = X x Y That is it creates a string made up of X repeated Y times and assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). Note: this only works for the scalar repetition operator; the list repetition operator (L) will not work in this context. =head3 Example my $x = 2; my $y = 8; $x x= $y; # $x is now 2 x 8 or "22222222" =head3 See also L and L =head2 X &= Y =head3 Class This belongs to L. =head3 Description This is the bitwise and assignment operator. It is equivalent to X = X & Y That is it ands together X and Y and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; $x &= $y; # $x is now 2 & 8 or 0 =head3 See also L and L =head2 X |= Y =head3 Class This belongs to L. =head3 Description This is the bitwise or assignment operator. It is equivalent to X = X | Y That is it ors together X and Y and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; $x |= $y; #$x is now 2 | 8 or 10 =head3 See also L and L Y> =head2 X ^= Y =head3 Class This belongs to L. =head3 Description This is the bitwise xor assignment operator. It is equivalent to X = X ^ Y That is it xors together X and Y and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; my $z = 7; $x ^= $y; # $x is now 0b0010 ^ 0b1000 or 0b1010 or 10 $x ^= $z; # $x is now 0b1010 ^ 0b0111 or 0b1101 or 13 =head3 See also L and L =head2 X <<= Y =head3 Class This belongs to L. =head3 Description This is the left bit-shift assignment operator. It is equivalent to X = X << Y That is it bit-shifts X Y places to the left and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; $x <<= $y; # $x is now 2 << 8 or 512 =head3 See also L and LE Y> =head2 X >>= Y =head3 Class This belongs to L. =head3 Description This is the right bit-shift assignment operator. It is equivalent to X = X >> Y That is it bit-shifts X Y places to the right and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 8; my $y = 2; $x >>= $y; # $x is now 8 >> 2 or 2 =head3 See also L and LE Y> =head2 X &&= Y =head3 Class This belongs to L. =head3 Description This is the logical and assignment operator. It is equivalent to X = X && Y That is it assigns X to itself if X evaluates to false, otherwise it assigns Y to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). =head3 Example my $x = 2; my $y = 8; $x &&= $y; # $x is now 2 && 8 or 8 $x &&= 0; # $x is now 8 && 0 or 0 $x &&= 8; # $x is now 0 && 8 or 0 =head3 See also L and L =head2 X ||= Y =head3 Class This belongs to L. =head3 Description This is the logical or assignment operator. It is equivalent to X = X || Y That is it logically ors together X and Y and then assigns the result to X. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). It was often used in the past to assign a value if the variable did not already have a value: my $x; # Intervening code that might set $x or might leave it undefined $x ||= 10; # make sure $x gets set to a default value This has a problem though: if C<$x> is C<0> or C<""> then it will get overwritten with C<10>. The defined-or assignment operator (L) does not have this problem and should, generally, be used for this purpose instead. Of course, if you desire any false value be overwritten, then this is the right operator to use. =head3 Example my $x = 2; my $y = 8; my $z; $x ||= $y; # $x is now 2 || 8 or 2 $y ||= $x; # $y is now 8 || 2 or 8 $z ||= $x + $y; # $z is now undef || (2 + 8) or 10 =head3 See also L, LE Y>, and LE= Y> =head2 X //= Y =head3 Class This belongs to L. =head3 Description This is the defined-or assignment operator. It is equivalent to X = X // Y It assigns Y to X if X is not already defined. This means that X must be a valid lvalue (i.e. it must be something that can be assigned to). It is commonly used to ensure that a variable has a value: my $x; # Intervening code that might set $x or might leave it undefined $x //= 10; # make sure $x gets set to a default value =head3 Example my $x = 2; my $y = 8; my $z; $x //= $y; # $x is now 2 // 8 or 2 $z //= $x; # $z is now undef // 2 or 2 =head3 See also L, LE Y>, LE Y> =head2 X, Y =head3 Class This belongs to L. =head3 Description This is the comma operator. In list context it builds a list. In scalar context it evaluates each item but the last in void context, and then evaluates the last in scalar context and returns it. Due to the fact that the assignment operator has higher precedence, you must surround the list with parentheses. For example, my @list = 1, 2, 3; says the same thing as (my @list = 1), 2, 3 To get the desired behaviour you must say my @list = (1, 2, 3); Function calls, on the other hand, have a lower precedence, so you can say print 1, 2, 3, "\n"; A trailing comma does not add a new element to a list, to the lists C<(1,2,3)> and C<(1,2,3,)>) are identical. =head3 Example my @a = (1, 2, 3); # @a is now (1, 2, 3) my $x = ("a", "b", "c"); # $x is now "c" my $y = (++$x, ++$x, ++$x); # $y is now "f" =head3 See also L Y> =head2 X => Y =head3 Class This belongs to L. =head3 Description This is the fat comma operator. It behaves much in the same way as the comma operator (creates lists in list context, returns the last value in scalar context), but it has a special property: it stringifies X if X is a bareword (i.e. it matches C). It is most often used when creating hashes because the arrow like appearance makes it easy to identify the key versus the value and the auto-stringifing property makes the keys look cleaner: my %hash = ( key1 => "value1", key2 => "value2", key3 => "value3", ); That statement is functionally identical to my %hash = ( "key1", "value1", "key2", "value2", "key3", "value3", ); =head3 Example # %x will contain the list ("a", 1, "b", 2, "c", 3) my %x = ( a => 1, b => 2, c => 3, ); # %y will contain the list ("key with spaces", 1, "b", 1, "c", 1) my %y = ( "key with spaces" => 1, b => 1, c => 1, ); =head3 See also L =head2 not X =head3 Class This belongs to L. =head3 Description This is the low-precedence logical negation operator. It performs logical negation, i.e., "not". It returns the L if X is true, otherwise it returns the L. There is a high-precedence version: C. =head3 Example my $m = not 5; # $m is now the empty string ("") my $n = not 0; # $n is now 1 my $o = not ""; # $o is now 1 my $p = not undef; # $p is now 1 =head3 See also L =head2 X and Y =head3 Class This belongs to L. =head3 Description This is the low-precedence logical and operator. It evaluates X, and if it is false it returns the value of X. If X evaluates to true it evaluates Y and returns its value. It binds less tightly than the high-precedence logical and operator: my $x = 5 and 4; # is equivalent to (my $x = 5) and 4; whereas: my $y = 5 && 4; # is equivalent to my $y = (5 && 4); It is most commonly used in conditional statements such as C, C, C. But it is also occasionally used for its short-circuiting affect: do_this() and do_that() and do_last(); is functionally the same as if (do_this()) { if (do_that()) { do_last(); } } =head3 Example my $w = ""; my $x = 0; my $y = 1; my $z = "foo"; # Not the use of parentheses vs this example in && print(($w and $y), "\n"); # prints "\n" print(($x and $y), "\n"); # prints "0\n" print(($y and $z), "\n"); # prints "foo\n" print(($z and $y), "\n"); # prints "1\n" =head3 See also L and L =head2 X or Y =head3 Class This belongs to L. =head3 Description This is the low-precedence logical or operator. It evaluates X, and if it is true it returns the value of X. If X evaluates to false it evaluates Y and returns its value. It binds less tightly than the high-precedence logical or operator: my $x = 5 or 4; # is equivalent to (my $x = 5) or 4; whereas: my $y = 5 || 4; # is equivalent to my $y = (5 || 4); It is most commonly used in conditional statements such as C, C, C. It is also often used for its short-circuiting behavior: open my $fh, "<", $filename or die "could not open $filename: $!"; That code will not run the C unless the C fails (returns a false value). =head3 Example my $w = ""; my $x = 0; my $y = 1; my $z = "foo"; # Note the use of parentheses vs this example in || print(($w or $x), "\n"); #prints "0\n"; print(($x or $w), "\n"); #prints "\n"; print(($w or $y), "\n"); #prints "1\n" print(($x or $y), "\n"); #prints "1\n" print(($y or $z), "\n"); #prints "1\n" print(($z or $y), "\n"); #prints "foo\n" =head3 See also L, LE Y>, LE Y>, L Y>, and L =head2 X xor Y =head3 Class This belongs to L. =head3 Description This is the low-precedence logical exclusive-or operator (there is no high-precedence exclusive-or operator). It returns X if only X is true, It returns Y is only Y is true, otherwise (both true or both false) it returns an empty string. =head3 Example my $m = (0 xor 0); # $m is now "" my $n = (1 xor 0); # $n is now 1 my $o = (0 xor 1); # $o is now 1 my $p = (1 xor 1); # $p is now "" =head3 See also L, LE Y>, LE Y>, L Y>, and L =head1 Secret Operators There are idioms in Perl 5 that appear to be operators, but are really a combination of several operators or pieces of syntax. These Secret Operators have the precedence of the constituent parts. N.B. There are often better ways of doing all of these things and those ways will be easier to understand for the people who will maintain your code after you. =head2 !!X =head3 Description This secret operator is the boolean conversion operator. It is made up of two logical negation operators. It returns C<1> if X evaluates to a true value or C<""> if X evaluates to a false value. It is useful when you want to convert a value to specific true or false values rather than one of the numerous true and false values in Perl. =head3 Example my $x = !!"this is a true value"; # $x is now true my $y = !!0; # $y is now "" =head3 See also L =head2 ()= X =head3 Description This secret operator is the list assignment operator (AKA the countof operator). It is made up of two items C<()>, and C<=>. In scalar context it returns the number of items in the list X. In list context it returns an empty list. It is useful when you have something that returns a list and you want to know the number of items in that list and don't care about the list's contents. It is needed because the comma operator returns the last item in the sequence rather than the number of items in the sequence when it is placed in scalar context. It works because the assignment operator returns the number of items available to be assigned when its left hand side has list context. In the following example there are five values in the list being assigned to the list C<($x, $y, $z)>, so C<$count> is assigned C<5>. my $count = my ($x, $y, $z) = qw/a b c d e/; The empty list (the C<()> part of the secret operator) triggers this behavior. =head3 Example sub f { return qw/a b c d e/ } my $count = ()= f(); # $count is now 5 my $string = "cat cat dog cat"; my $cats = ()= $string =~ /cat/g; # $cats is now 3 print scalar( ()= f() ), "\n"; # prints "5\n" =head3 See also L =head2 ~~X =head3 Description This secret operator is named the scalar context operator. It is made up of two bitwise negation operators. It provides scalar context to the expression X. It works because the first bitwise negation operator provides scalar context to X and performs a bitwise negation of the result; since the result of two bitwise negations is the original item, the value of the original expression is preserved. With the addition of the Smart match operator, this secret operator is even more confusing. The C function is much easier to understand and you are encouraged to use it instead. =head3 Example my @a = qw/a b c d/; print ~~@a, "\n"; # prints 4 =head3 See also L, L, and L =head2 X }{ Y =head3 Description This secret operator is called the Eskimo-kiss operator because it looks like two faces touching noses. It is made up of an closing brace and an opening brace. It is used when using C as a command-line program with the C<-n> or C<-p> options. It has the effect of running X inside of the loop created by C<-n> or C<-p> and running Y at the end of the program. It works because the closing brace closes the loop created by C<-n> or C<-p> and the opening brace creates a new bare block that is closed by the loop's original ending. You can see this behavior by using the L module. Here is the command C deparsed: LINE: while (defined($_ = )) { print $_; } Notice how the original code was wrapped with the C loop. Here is the deparsing of C: LINE: while (defined($_ = )) { ++$count if /foo/; } { print "$count\n"; } Notice how the C loop is closed by the closing brace we added and the opening brace starts a new bare block that is closed by the closing brace that was originally intended to close the C loop. =head3 Example # Count unique lines in the file FOO perl -nle '$seen{$_}++ }{ print "$_ => $seen{$_}" for keys %seen' FOO # Sum all of the lines until the user types control-d perl -nle '$sum += $_ }{ print $sum' =head3 See also L and L =head1 NOTES =head2 Canonical True Value The canonical true value is a tri-value, that is it contains a floating point number (C<1.0>), integer (C<1>), and string (C<"1">). It is possible, but inadvisable, to change its value. Which of the three value gets used in an expression depends on how the value is used (e.g. if the expression expects a string then the string value will be used). =head2 Canonical False Value The canonical false value is a tri-value, that is it contains a floating point number (C<0.0>), integer (C<0>), and string (C<"">). It is possible, but inadvisable, to change its value. Which of the three value gets used in an expression depends on how the value is used (e.g. if the expression expects a string then the string value will be used). =cut Padre-1.00/share/doc/perlopquick/Copying0000644000175000017500000003034311445346501016707 0ustar petepete GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! Padre-1.00/share/padre-splash-ccnc.png0000644000175000017500000057426511642023717016266 0ustar petepetePNG  IHDRņ|IDATx4ٯ?[zNk{޿}z8vc;2  $$ 7!!p׈+ X08vb{p>~NUz.v.KU]$PjdᩤHv0 9 Dn9‰Y\UFV{oVM?o}qZ8myI)nX կxVrD,fbaD<߾^J?ۜIJr>$@R/,?~+me{y5 X*_?O9RRWSWLALrNڪd1u3Kc^rK}nw/riHe֬k4_4 b}RӲi4 R.o~"xFWB$tJ^˦w $`j"Wt Ĵɂ &9$Yϫ*y@'u9(ZD t\]]ݿ_ 3{xrNy]HKk٫I2`F"T֕="$WO<3! tҬ03iw@& fΐƬ|I\U-wWf:8y !"{oܡ-]8a0G fvN c}uE(Kƌ\/f8l9g?ZW_ח,G2 " GKJ9gZ)"Dfֺ̜0D03Sb!̹`v7WXۺouVN(Asy hrYRn>e,b6=ܝR┓Y^j<%qZ:n^YSIf[g&ȹd!$`__!s.uOn޼|ںMu``RNLEM0l0^Η) 4dڕ=^eϛzg7,ÀIuY7Z۲J2eժ]{u@N_ov9THU& ֹP]\2Ӏ]KwtLAaI |„YRW{~n|c8̧K)eKmmٞN'e?/i*!Ví~>:F޼p<8b"`!EV,HC :NCuOXMU! 9R"@DA[ӒR|0>:ݟ0!1 v33!AT|A,^]zkF, rZr}|v)3##x`IZmHRR,஦jޛi8t]*0[_ ;"{@bfa֭#yN9:_g"G!i՛$Fd+o~ǿ}y%kƫ-o݅!"*B1G`oH"Y"$%7edbR .K-_2s`oraBeY܃Y9"RI,"6’Rhf_nSI"Glq*%63iKUP\ZatɛωXMH hS3GD'0nN@$7GLFROǔx]r Wo0`HR@BZa,xuwyO&w ה9胈u>Mﵵ>i]γZk-O[xкwc$ SVefWKil{$JDLmy|v|?ک'AɥRRY㰙O[_p)p6c5Q5Pj[wWø157\3[D{͖rI?Ip;#qd$MS@o"`1m{ii2w$q]͗ yXb"қgI%EbʃZY9$VBSaw[Z> ӷ_ϧ#1HJ)ѴjUJ .]X4ʄ0/KTh^.du5pfЃ D9075]dIEBjf-glȜj]TݚD-  6+!zƾa0Ʉ)绛zrk}ŗwϮQЅ7"@<,YEN%ܗuei ƄȌ\W__:8 b)E[Ӯ fa" fӸ+\#,&<v9_??7y-ihu!D ؖjnʹX*\-@璁`0gW$R`Bw'0qe͸=‰%Y@)Ĝ#L sFx̛Qa)gʥ__?nk/e䒳dwdN؛ km\q~) ։]Rs}{9?io& A"(0|'D7c[ko%ū~j+R/K:o6SK |8쯿۝,՜TT042IK`@PSw whJ{7|uq0 $ pD"f./KE^=fRW;`6p%' Sw@s8/_6fCvUDdaI%3jDw=Ƃw@V@,^ zp<6Z4]ѱZ9qJH ƌ- "q?zzSbdl!vUl/ȔBJrZ/fwg2$1iS@,yiU(1RFo Yb%@Wmhۚˊ.˥[OO_W_puwO\R"KnK-0MRw[]aXkk$!"@8@KlTjfsDhE%"v7՞r23"Ɉfipl"iP6uw\m+KT^|2Jb$Ne]25"t3w!rP<{VR:Oۻ;fѮAbrF޺<[oRvuYiL%u]ymZdCKUn?Ϲ$"I8n·8xռ I*i sp*C"`iu(z"#~tI!u3da/@e álimڛv\(&qۧ7='daάk_.+?z NDHn)qT5 0wDiYVW׮1nFhY>ͫ/?O[ހxߣ#PX j+! i>!z<}Ux8k[0 9`0W`"1#"0PUSNzժ[oz>ޓPW+CvDhfX2P23)dIJbf@&nuf1u9pF[n$ D AR FB5y,=},=@FKBX%;'N8FoUљ 4`]Uoi_Oݓvp|9ܾun{WϾܖBvɀBLwinf$0N)'mkkJ)#LDmU"N&IJ) N ]5LjOzD vu801UW/= e{om5|Uu]=D)1's"uO@a,f)%IJBBn<Ʊ,keɌ,,HhDU[㜇{\͜SfzYPZO8fIǑ[I2)@`9RtD$[H?q?u?ڷ9g4\m/^߽|ֳtv~sp(0n6^mrXٽ5}{}7mlUH0hFwI) 0dk)@,nh$}7Oޗ `6RJƜ0RPw6fb&PBdnlPx6M\n˺ PGZx+@0s@TL0HgH/x֭޼~6P[ED!dcr7PbAPulnkk>nϾpǔ(%0, Xw}iѺJJM5!,zi;vef ̀]5]6Ô1B@$bny{o?iv//nޗ>O~wyrלG'-"ցC 0>g0@ub`R,Dצ꒒N8C]WNIDA{GBb䜴D=}^Ge<rTUR$D$D>' w (Oyw\ {,»qP K9G#S#$xނxxXz)%J=y5$ RjH[S AcSk]}(s"A 6yA`ysR˿{ hj sI׹9mhHeI%\rΦ22ibڇ_:Oۭ]#Trn۫FX;8·sŅ3z8`PDY0sP:~``!WGwFՋR\k[k̂e;2Q@t:*8 ՉHnrz^DRod譥4朣U#,1d'kNp44 Dؚcxʩ/5"֚R&DY;Q/CV8#SڪPryܜd0n20I'(1x0QD0'c o}YeHzvڴgf&,<@[uY>9w% sbDexRQagq(ڟЍDL̫2Hiؤ~?s_a;Ks$ a'?(9% ]"@ƨubb9eUO Zs<;WƉXҸD$ !z);ںv"ӁQzkrmyOih/0QUmmrNv>!08rT~x}PhD ( B|Y,:c1v_ 1ɴݻ#VxoZfwwGOGYlq~3|O_}[`ݐ)‰(Zi#C R) .xX\ ARL΋$$:#fI{n' ծn)A'%2!w7eiݪYoH9[2/{ 0w3/y'Ds:l>^}:xdSk+0M[7w7yʛFxrXWo}뗯p]kɉfq3]'e{[v^?}?BptpkΫ.$jJ"A(Y; pW75\<}v>BAI01KqpddkF0 7\ݟW_|A%I$JִaXRp#Gh2 ";ڛ/_e\J]H!?JZkT|9_6tx} `$"fjjj.--qߝ^f; Izubbwu]XlYkmnn_i]EYs]Qq> v3m6/O4m ٳ*_ɟz"&(]?}|[Jl~/%Xǜ7u͇7o^=Xx$0kW2prsךS"bU DnN u5vw@[=DR]Ddֻ!8 `D@" cډyY %`P2#Z%%yIJ\612"|/|ێd3f >N׵i<>PgRRwuU3ĨuVPRJֻY$w pmk" d4[}cHYQ%'Ӟ{iwnjs%ܽuw\rqf e'Ư˗oè[$N.i뺚i@ [hOz>E$@LR{'f eL5Χ3z̤-$%#X˴]=պ33 3u˂vCԚU {zY.# BS)ԛYzkH]Æ%o=~__Iџ|gO #3s;O riMӦ춗]~_7_uv$0̇%C/|#-q:fȉZRHJa"dfY1:[fH"$.-3I*֖r08/Mr>9A]l8ưImie# v+nay4D4LHaFm~{w|SJUe9e^~Paɽ)C GHq]mZEIX{\Ur^jkUܖSZ1IrG&r3B62LxFp$l֙Ѽ8 hN"YD26/ːIUKp{9'6S2BZ}'V̼.+107M$lզ y949%W4,Y̐0b.e^f7,Edm{][h:3 1F3T8C ^o̻I3)ZE 0ƭjWm)'譵2q5!ٻLʻO/l֚rcAz_dJ7o]Gҵ]·zpƮDz000_jAO?x'F8Z3# `* @bj]%Җ5Zil9yꝯp.&|{յye&s@,)E}Y'.D4cju%y]<}8l4F!u9EZh.u5!j]`e^=L_uȴа)"X[{pP3ɥ 5,\Mo|g~qaYʥYE+rrR{i6U]ZzDn&2@z`T6<:Ӊv:l7[mA:rND if;nr2 \Ηz92N/O[0/ĎՐ!z.HR͜0:01C8 *L@E[]A8KJL;/BinU51!!ȴ_S8ZW3eẶnJIu%Kuia,s]GPz(1:{Ba"y=WנTʀÙ58'$H?-aնWE^הsCa]UMeapB_9y/ bNezkʬ<@24%LHu^U r J]]u-SQܗZ^["fgKyۯyymeE$oox|] {v#)!Bؽew1כ'o]~LA D[ qyu^Dz ym.%].kWMCY/8]Եwnz>˔.5)bpv}^@2-"K.dff:ތD:1r9/ɸMu>aR^{Z(d{9Mv^f$fе>5\!G3ӎ F`e 1"e ޵?=8B8yL@l7SDﷻ͍-6voA3~?e-1VS`$C2T au/_Wn{u}v\ΕT ݓ8XSw83ME"͵ǙW[=~z[E yw1`V @ZufLʔOYZ-eѮ0lFdY6͒4dnۿ|T{x1sð3p?KPוk~8y!$64HZ/=Jxe3!CGX1'@3_yV`KInmv/?"$*$nӒRϗs*h=T!ؖN9ˆ ԡ@r޵ 1jI)Iee)W7ן#)s^(!<<tmeɡc D.I[AsMۣO7N9bB`D8" oΛ–W{AbꥎW{ыE ,D6L7~Wm]u +D0Ziܸp֛ GzVPpR`)1Η% ЬI$ҭS2LY-k7W CMW~9SлjՑZ*a$˥ֺn Jd!Ve D,LĀH=c{I="R"TsL)u sֽ#0""EJiYt+/ր0p횘'R_g9Χ_;?^WWVjFpʩpN)25C]Wq%O6q~P{ӭ7m5TPJIunNgG<<HA1X8cјRZgO13'@M9qHj a3{rB|9qbUʈ,*UJ.™U pZߺ~ QAQ%&G%0vdAEQQX۶"Fs4i.,֛EU3H[,cEqXs*9LwgzXmTnT;;;O<صk_ey'~_~cW~hRf[ !r/zU.8 qT%k˳<|߃;މv>󱇾pcO_yOkb\PV82Ĵw|oí6Gפ`Xn٭`M}WPQGk)L]m UmEybS< %FCݶj`x$/%c) i'¥6UE?O~̩3/~CkW]y;`7??o7#%ЇE4z9gfcLvbvݪnkμm*6v3qeA UeHd YPP,hsa:(}큻}I,yp~~s:t[>칋R55-dn#:qTm(%ek*ֹa!ͧcPU)c`G$srkֿO}o47M1${5oz!s2֌cժ6IhVU(YYI1.PrU%ER[grb/}(mUw~EwytYsΜc@XCdB@g!E,Lnu%ơ(7MʔYs\8汮*$uӔWKNw̨w_es?}!ǭ|4YkMc9\|h,V#8ڶ9Y[{,_;Cͤ99:!T()8%ݸvwOO/z㟨hLy gr.Ϟ۬Vdp6mw澪6Ǫ ol O%JUMɛ,(+13 r.RP$X ӖOBu[h 9"ןeaR]~)$:(d0~$ͤ)qܖV%gV,x7k}QrJs`Ί^N8 Z(J U"ւ`|j)IIA,l8P8u Ĥ4HXRTU8. \Tamk^9 Ľ]ah'ͫGnR-և 7|S|wNڝ֭uUY,vOAQD)(TuB;?YPK܅V>Gu3Z6'prx^ hַ j@$qXNDWXG2vSVȠmEWH6֢դ.Xc8ZDq!kzc- 18D"кs"e Ts)X4.]ߋ1dP#JJdwctmBU%L%`s, HΌ" FEmꩇ0JP5sRWU"A8+(q9kb7@g}w`֖]\U^. i\blEH{o 1Fa4h 8DF¬)Ϝ>{cD&E)K59f Je RDDEȥ/Mmb 8 ! 炯vvKISj&-\9]ի4|oG'?{|}za a:;wtw;N'c}浯{;O?uܙ+<:8Y!'Wn-nP+J2Ã[%G@b(ΆG޶QǾ cssRUyMq.,y"ֺGV4D Zr1Uef.XJ.Q !4a]붙ű_nVht6i7]Lf)'._euS:oBTPw.q݂PTsɟUr\yRp^JG c"U4ǫc,d:ieTV!TcDEq\)%fuJoh)o۩nm@E (jcH'桩~r.RR6nWfI%~a٩uaΌhurʊ(\q6-Is)U]~ɩ$ZXc"fA4cTI :kqV_m@I9Zo!XuFϝܼ 춋,\16uvCHEaE,jۦn2Vm1C "Zm!l(%!#OD<چ ܥEYsl]{㎮.E؇]~6.9lߜޛM8,iT_~&f^۟|`qE_WݭO}__8'AU3黍05-M[oo3?:T g,8:ImѤzg1*4  \rU=I\U7)E,*/R|TDYڦι!$(BƊ",ZoUYE[!8rfVU]Xy,F/ĐT77oNaQcd}D%Mב19e zFMT$giz*Pf U(9++Yio@,\m 9BU! 9x/Y_QAdqΕb< !m . "2Ό%@4,  *1aۂ(l ~og}p(9VRήR# 3.6&@aq^QJݕ,MhXȇ|ޭ{4)Z쁵ݽkO=yRdL+nv}.)e0Do*)סbf0lf3✎4eT&inJ)4oMsi(VLDͤ)e"89Z{c.iRfa2`iX,ŸZYTd)j8VmsKcYo~0HpzSqΪ8(~~"dzƩђ>q`uSHGj%Tp9i ;sCq7s{wN.ܕ&_근,{[k_~W{zϷnxo8zX4ƓWQN휺گw?͛N=3˓ÃD1Le\hUeAAcWԍ%[ xo5D;2Ag @,91!H)c*Tc}UY" pv|TWK*Dȹ XpѭG#XWڣck s)@d2\ko圷V.0UMz !XG)iI) J-i1 XTP,Ϣ5un{(ۈ'm侟V+ @Nu亮K`;Dn UC}W59GЏ}]5@>9ccөkݕ'&jADsV0q V ZVd>^;ky9:<  HtyDED)n^;tjBR0`|O})ِiBM-v ၗhsLRh;O9ƔԤ -ʦa(Y!n*h黨f71eaӸV+a(qD"dc(R9V"YoΞ;w۟yraaRr¦EyJ[-Zr)YDE*WgQDvp4QM]t}_ քozr{(bH7n{85/}Y:}9sKpU G !ʛs)tK:<8-ib.E^SP^F@M^Ɣ%c;)J;m; \&c#uz@zg̭g/d/E z4V;tzs}m1d+4}í;׫ZC9_u]D]+_W1g_Wֺ3(tM=nkf'na;mw2CcWh:X5!7+ɩn8y%&ޱB>yIOG Reb +!qz]a\bf21d 纮^fޒ3)8u6%et4 UIG ;w|pj?և7g~5SfgϞ~SϚ89TPB.%+R,CV$E8RIjj}mm6)B(+|]/~j;с;#AƮi}\ן|-Keox7;n}]ջ]]yTu)͎: Ե~~ gQKVKqCBDQD۪J m%.Ql|.xfhZL&Wg;3ЋcB"kJ o6}6; 9a }sGP JJWKْq1%T<#@hTU0GvSS?/v&;GhbInY+%k\^AEJ)䦩.՚XC` %@Vmm)P!Bg83inPW[ϛTowƩZTҔuؿxsϐC- tSdfݸp\잙nK!}p։bl #bJ\!vu(4и\r)|ӐtY &cBjg247gJ*fvTjaMET~ͯv>VoYOIڌ M30%B)1`N'X" kə9j>KW9kP28c*PMB1zP)Y:>ޣaU7ٕמ n1MB[c7Zܧ[>yl+'vqՍߖ*}Ppkzb}\rIPMkȸ@Esxk(:h&edc#WSS|k|+^qO=|[=oP L&{7n íܹӯy˽/_ `HPG(Mvk˔I ,g~~W}cf&QCK) XD> ֒!kiچ6,*W8 4Ѡ]zYy2(w[5uMI32g`Os :kXPKB/!\8xZ/lqDy ͤ1Ɣ_XCafLIEXDƜ@5J* %QQ8BK 8("j .DhL)Jާ8-uw5DNF @Z,UmR@hr QUX0ڽXUU uŹ0Vmk-F Agqd.>"o=xxtpp5S¦2,Ztu2Ms98w3ϴIcU`3)%K^G~U_N-CӬMS"<"P=c붪릤\bRQ2$Eҥ{9SX 2)mxL6jdpgO_9PfmJqzU֧Tl嬡anZDaFCff9N]8mr5igz 6q0C"XTj3+9O&Ӷ)főmn?xgHEoc-3=j}󸺫Y-o//3 ${R:Whjw?G޷n]>\|OH]XvcM9Y68-ʏcJ%RI[2!o%"/6XWvvݤz3?.tj&iʵ _7/ūywܳ39Y?gao (7rL~׾u~xϩ=":Y.nc_T'f0Fwf֑fu6T1F_sɑ1f.uJJ2ΡDn[g8['&hɘ 3FC]..^tu 9"sVsN? *?]NNT΍i(\F"`-v=g%;wpjw'дhnݰəsvZu|9q!sڌos'WcM'PWնrD "d}U9$cUv6NUCD"';E9M^Ɗn]" jR!qMkHPRw[otݏGGomMh 8]7M\Їvu]L'0 lKbhja!)lkbXf};UM[ (kJ_}d6}]W E@d9 4o.814 AsmrchZ hI ??pE_RPTW iG?+k}O(*\8{|b6S=~j,kp)@L(*$cܩs??׽sG|_Ϸ~H SoxuJLh c}{ ?w~ 4Eo╛WO ;鼛᛿?w~& ?rTPbh ;:޽pz^Rd2)33 @%<8>\XkDRJ? >8f>Tm%(B` c6֤aL%[[蕯x9s.i2.NNeUc-DcP1' @9Y✫:7WӋ88[B2!(P89IHC7G]{7lC0dAL㼷:Ū3-0??mH+2LEDU{aypk3FBc}S1:C=EA P!SUOnoծ67;7ٙ|՛G|A"c)x[¬o{X]I~~O~+O;szm8w}Ct/ 3sJ9X{۲>|ι7A c@v00Ylc ^XH0bB$B,pZRO~p=WdK5#[g}Nծğ<1 5T*YH,1 %p]787nέ}L!$!T׵J$t^G<4bF,YjMD70NXȒY(JUPR#imZ5uxbPݟ3aoWeZ4Y-woǘHٝərWjr3VeF23ӹ$KRCմ UB 5D_kVxYKYR Өk! X<jkΝܜsH@ֲi"$bDad*EbdTMcDi*r( *( 8gZa9_K)9״k^Y` AJ1MW.G9]/6?\惝0,eonpmR ˳!CWo%Շx_~ӗֿ=_gsx͍\V[̭k}?\B1w~B:>wv373+@ _o?SoVTr,%1շ67~sD6MNq>LVmBB7\s)}J7} *)ɉZR!@LJy))r$4f;$prX ]dε+#31Zk)4 lTUHH*,B)r-efB4L͜n4 a 9P*Ԑ|fPm= %RΙ iN9ȯz/=xO׽zpڍbg9x7O__oFDL]88SN7C HJNz\^Q^vݹ],~:=|%%rL4ݾwՋi99Su:6Z]bR[TZҗw;srbqu~+]ctͬcSRBIpiJ*%5mJ%L ާ!*䬐Hl-LJ ȹVVRPВ$2j\R6R*sB׶HA: (昤Ƙ3;gs.3eԹ/K,4 }NrdR TfdʱpW|S_)JTj=}$~}6 V(J TJ__pv_P2C5h9ؗ)GND$sͽ{w~Yq ƚ!Ct r^//7|z??c?OT4 G>_!rxoʂG oo~HkM_u}ٯmRƚ8$-&EjެׅʚQyg;iI ?NRh/Ԙ?>:HTs+c 1 n>H H\d%k)P"aBYWj!ԜuRʌsɧmf^̙1N$df?Ƶζ)$6*hg%`Ѻï}c X ')cٙ`DYݘTNlSqu" R^v]s7?nui2ڟ7{ sѱ#(vs]0Lv8;9w9qخW'gMN?xx}4Nԇ%k-1{ewiH]rc4MS&!b2Vk=ۙVg T \h;8DkX\"B"ØBR)Djh-bB)} !qLRJ)Z9 ̂P ur)z?bF$ P$o^O !^VR-Lihwv{U_W7{Z ÀXk}ϼ6>/|QjZ#3sh]o?=̏;gT w]:;7g}g^}yǜYäFC]wvxX)4|7ݭ\aO 8y+ȧOi(l ~şoy/=ާu0;sM!;yg}t(Ob.jbFĐkjDmN!pJmqKJЇkWD-Ͼͼ9rQ J)McdDhEDS%IZ! -JPktM;is4VDߏ,%E"$ ,EHPB[`s8mZXk]ۧk{i[4NW;z_=)ֻjrw&nWdlmАLה 9HevM[Jvj͵B ݝaS LZ < \GߧjU)p=A Z;4Q?n11RR4XKTٻYo@؉_o9d (j\HZ* 1J-BhM9I[uvG 䜡iBZ:gGDg8Y"09/˔kD2qS1\JBJ-QJKFf((k\:RKB"SNa B⹮@Z,c_7}xs_ŜTR5L+7^>+FR0۰w>5sVJOzU___3Ev~.7__%RIbȅD&F~~?pER*ӿ!o}wuʃ_>Wx(!_s䬝/Mr6k7J)>C0No]פZQ#vY)$Bטbt3cX!-T,)I!K)a5gFΩ(mv_JIjwц0(-`6)nC;_%WU.4MʅLk$H^:1hnjm#2jI4V~ ;cۓ^T}k7|Frk?;f36l7W}>Ɓnu)wO /vw.\jE+m?tmB𛳳PJ;KaZÐ6Gۓ0lqBx:::[c-06 4j[$hZmڙVi"!T;osDJ jnyӦ_߽3%綱5vϧ_)TJ)BUKHQZksR N  @ty4ZvBHyȑ1ŔS̈sqF$J"QKBI$!E9&ABJ9Emu6LK)u% P 9BEDwǙmګWzVUp܏/3&> a-V6^4{MJJ(e\޿s@昂Ԅ)7~⧽lͲ ; 0Z\ڟ.@R @Tj>/v?LOϖ!~Sӯ_ޮW~"oۋ{YqX7mǵlg#?c?(\"`ʅk ~٢#@@2]yftחoi9"d)6)s1'mfr]KMP3Ӈ>wKSEfϤ+WF\m&AJ[eRI.".J(mӳf%u줙74H!vJ)lH ̃||wSjYq}|2[.+B9G9?awj޺~_yԓb7/n|/g_R)-DQs&)cmj^Z }[%@Y~B4>ZO?~i6RRA`. !~օ\j'"bP3 ~N J!B@b脐Y*ԟLk8i켱Fa:?Y5rMMIBEUJ58m8KN?W*9g)幹dI %)%q+V3Q!z+{.}WkATZ( "~_W{_y+ 4A]fFx]/K9|gbBZE)D+兛tquZ #oo [BIl6VJ5YZ0 _tӹCJF~}6MqTa|v:[0T~ݿOrEJa9st#^zE۳Vt4N^kkN(f96K!jqnuO]*PNēS ~L\106)粏43y3i\%D<{WPVג Yh)Jew`c%*!#" WJ*Sm7ZsYY峟/ 裗I`42±e1vwRa;fJΙ6,_[j=߼ʃ;*4"Q;ݬN8Ǯ>j'OjOv\]3Z]ca!ՈRHƒz|UJʮo|w>9D9`EDkL%L!ak3}SH^ZUVTMՅKSM u~A^sJ1ə\,wͥݡ6$lcOG%j,IQR10s XTk`Vk *+ԹdAt>I UjRʕsÄ 6k@U±6yYJ) 2ZkZ eE !.+UXC?琳C10L{~޽|'9)~-fDB!S%}˛?yޝ$)1 - nwyf*u.Lp5Fկo?kI!b85mSR1`EJ$2]0ꅗn/vw"164l9%*{k^u큗]'k6RfD6ħnGsY];J S>ORXpkm zw^KDq{ug fɹ  Cͬ-uٞHXWP 0b\!# `Ē9/fwof,WRr֙KښyN0[C?7BoqʹRӍT3IrBR{jkgTmdLvj8_ȣbOIܻt*IH1~yp |vxDIڹrܕxe2zb&6+BZG<^JYs1a PyYiBXHrm?!O%dZw5e^r! *km1h$QJj9KZ0"O6Z $յ"⋦V7m$qS.\KvJiD ($EV 5 (1P+kp :RJdJ-u_kvLDZJ)cP*ZQ-31wS-s97Vz ?Ycs\VPR)vT< 5O 5y#x__tҵӣ~o/ٙ2r&#"\B;h3Z+frF= w)elAHYJ /3;R Bh3=d[HaĚ4\"}u5m9[18h$,%nK'09t5lL5x$4 b=J**ci  _+ Kȟ~ư0Y?cFK'wY/I8#& *b 6}LQh1* VTZs>u6<iz/4`LRڈtsSkBz:=E3'5ll9R5F"sεNw.  {0yrURyWr 1j!3b55#3Nu^Vg'Ym]6sW! TAHX bfq-xI;KVi %Z*I Ri)ǒH)PFq.VDcv}ZϡH%Cn6P)@Bl];B($b@<phk)VR6bN) oz|k>aگ d.&LQYw٭nכr}0]X+)f)TQ3ojB@!7p}0Ǭ1Y :YY1JRNyg`s@ :ݬac&V}XPi^!nsݫ'/>]s#j׻?>׽ֿ+C?w+e|JqU 17z_M;Ni;sY)KB0J-h\m-*"$Ad;!rvP0v.gR"%;;NȌ's9c7O)m6kSD":7 rD8[K Lba!@"`ɶ HSt֔a !i ;{tB}\\jJGTCLTV2RRs?3; o_o΋~AZxNT4ksNTyArdRo=i-O!iŐ++ XBP]WkXB*8{x_}\ȷ|k>s$5&)vK̕r߄8BXu,vo'd+ѵ@)0_n3m~V'+lVv6ns#q=Kr u'XdzRJiI:>aMc."r>c} ƳcK-9PGwO5>xeXl3kۅVy{W'G{ * PZoώV>Nʸ>=]쑐 vuz h|c?X|}{'WW/."H]R|1!L0/ON⽕mn, "䇑D%Ue +0Zj0TZ-B)&m@Az6k0]FqX3B&u((-~'-^MB51$!EڮsJB@ӺR+kcZ6M ?o_}aRvwWmUwP84D]rLm7dum*b qqsg5n0 = h!!!B’Fc#S !)H3Շx}͏ݠƸ H!HI1lHR ӴacJ)M%s*}X~{XKIP 7>Ǩ$| ݥ@/wwabrJ8ښgwBB!dO E\s%vSE[xf;).fП@&c̴ƸlǙFum "-./1#Y+JM./41%c#^g],=-'2c78lOlM段1Nisvv/ QC|j+tJttGv;1ejAYFF*J 3I(d-"\٭8n{ j)J+5Bdb\8hZʹuVVi6LkWkb-KF꘢2P*BuX,wC):Mf˅l}\mJsKyF%ItEPZjeCavFcZ6.HmL,PA%2$)9BF%BmtJɇ7ֵC5s2JDę?W}7׼?r0}Ƿ9j&'D2w,ĵ pߏQHX% R@/@!cJow{#R JT_q)8Yc 6&\qB a–kh\a6a笍?kއ~o~ǘ8lۜ.r) T>9;xhjsTNSv ~;|>8hV ۳ZKr朅Ij)c,>+avY_k7b iΎ\KJ V)۸KH(5%)!Is)q;WG'YEA*!qj-9v~rT0)Y(9.>-w.=O+bT)q. Nb)H1"B$cwv|Hb`lͺ[/]w:>F`t%ULʍnQgκ"lV\R7k3p,ɚ )fD\c5RJŹAAKgTA oBjuZZҰ !P ոfbƤEW.#[/ 0ݻՇvr<}{X׳ٲZ$">@mSpMBl&̂/_:9E9֢vCu!6tjVX֊ZrL1Rp8W!sM^R&JDh XRJ츜@QJo.atObY*$b3oF>H!RJHcJ1kB:fZιmJT5)SD\kH9-aYȵVAC}pu")Iv2eRSLh-HKƷ|7|8Gj*jeM\rR"Cv9:yo7C7a2+`akT3 7pZScH.Cn֯JƵ*(S!+ou_/޺hn>dJ1"lwJHLJ1PE!4@U<GG֪\J 6\1PbRY綫3"$ ֒7$ Wŏ1`1eD`RRXg0)ƨ{Z4.拝ŴK͋% e]PqN['xu|:'ڏ>"T{׮nNN+G$WSjI䜄q Pr16mdA5.9[K Xc89$ UM#}e}0R̎VүA $J-cdyckjsū59S O=?z{% ү{댳rJRיI]n$Ν9\{QiѸY-WhԘZVHx1\-%JTŹ'*-Y \\H+rID䜈麪r.x6mLum|͚O~:EO66I.Ґb2UJkh=gG)r̹Wً7%СkCeh:ZDsVUK0-C!AQ5r1䨍6+kT)cn9g?@akA00Q;Jⴞ.V}Vs][TNQ[he{$dVݳg.]=sf~|<+?ž[(r)Q e")%DC  ,7Np~I#Oʅi&wU.>h ΞC.Y2Cqu; sJ4!D5KR( CXc1hfUa;W}TI甋Dٯk:rU%0`n2@u?{`VRJ)$YY#> '#l}\꺹t%fd70BP)bjit?_>їLX{%$XW2|ZtMCJg IYkK!UsEr%db"kxVڍҿ_2aW+k)DAΡdR2xiھ=_|pz)$J@tb? ]J*dVr:#omL@I[;[ Ƥ8C=jbL;gx^(1I,=:شM}hͰgﹻiG9+Ll;Aq0rm* 0 N)c*du o'vWZvL&cb闋cJ)8(J,A8z`9 B3 r6+7S$02'ٵuaʉVNB)#REA<oLGd"头 L"RW|擟O7xǹ=zX @qSu]85QJqnq4(VM k/QmnMW}Wv@"NRWZc KY;PZejDC]`)ʔJ  #v@\JbF@%($I̠FUՕB(@ X,+)j)e͕LKbSLTqQm_E }/do[_6+/[m컪m2'b } J(ﰄYb$\\;jy}%Ke+w[_ǞxH JI)c?l{tCRJ|wa ww߭g/,Q tC*P\Sfd*Lj]Gh)'c=wp2ƹBC\mר¥nLOm_lmSI v27w7Ǣ޺Gqq;Zu[)(0O1q is4eHjgk<̗Fjɸ+q퍲NB[{řJ0e8*7?: )lR1B;qӶghy0+EPb2I%(WոWKBgAQ=nZv1 A~: R۪>LbR\/VeIc梔,^kY%D9LU%q^ g@cJRZTAGm;rMQ]BJ u Rɾtw'(_ L)D ^DV.=|ȏ|[?(8Jk/F)gfJ͸g~~KlX՘[孝y|I}鿚-cBQaBю+ Z)x&R?1N}} ?{erqԦ܋zv|_;Og{G-_P\^6E vxxkgR0viGR8-U i'kmǕB9taXu">p5z֍G7S <O1GCeXN)8J)~X:\\3C>j#@ \[ga5  hq^t2_P.$q2isʫtk#DEr*ƚ]/RI?L;:qR8:>@tR\rNI)L^G^ڨbs2=Ϟ򼭚ƨG|7>]}N*OGx承e_gdw׳k|xnڜdc y9o}nh1:Rdz|{%` ybNd_yn>wH!ijO~{2P;hxs)@BP~'K*?]/re:{J RɹQ*}竦f``%oomS)Rk5ޜ=\EPh*qzsXuãS*R*Q}篼큷ru}w> ^N/Z!F_FM H(a BFTDD)7;:*jΟ=J\ݻgutɧ\w *y0B;0mB.LCV08}F pF;9-$ Dtu\r*(ԸRH%. -հǶvާ( dպ €bRDeXP8>\h9BR McPLJqRRjBk\8KBf!PR]׍ﺔ" E8ڞ)(!sTn*TVW*);L Iwa~Զ5k\W~F-UJ#e2tḀ|[+$<JbvΟK~upzVx(n@B)i˺UrU~_͏^8{mݾLy?Wn-G7n{㟽m>vO9c\n>u}F*(5r(Z[eL?O~ɯ|p}[/_s=W+:A_,Xol^UG[Q֍7|)Z7xD|tk}{~ W}v4j@Ru Z]j'#tsY`w٭?gxFVF-qӑ.O=S~qudk#wsj';ݝӗ}mx5wKV1dz Xr'ajAc@t||k9ҨuHMB !Q*1h)䃃Ü iPVJU*gY\3ij\(0"[k{QR `Z\ B͑P[K nܸ|I[isG!?q&["$BZ[\ 1Viཔҵu=jGM昆 2q@*s8:8Cе˙ zB+)I*㸰OOxֹ [wH yAvVcbr6Q)(K╤Xc %etkTVhR^)bUWJ)?xU/y/`xouqꏟoo}oy)cKw^/ڇg'8?}۽uI[_}o|}{66_G-/xyWG&xgJ*xc}KOj0u'(zkW{7(`%͉Jٻ~5ۺt7?3?˿ĥ\>u`RЭ3{F) X/BB87cMvvμKuWf7ng$x Qnkg{s{S "Xw6ǟz{u|?ͭSx$:TwvOXr95؇y jSS*,o2jӸ-|^ ` JբrZe\O)b)Ua et=j2i=ʇȈ~3U`J(\0fD w];Vů{2~^UREJSk lu03 2SaVƔ0|k^?uYb׽s{:RSLXf2VJLSD'S9)3]RR=jbc4E0H> (Bd.u嘹z|{ޢ4. c묔X@M=lo\ k"C2 Ŀދ{=/zϕ+OFSO~Դdk=?\G#(-kW|)m=vnz>O~FJoo/z>;bd[LqT?7~ ?m+>C|O? ˎ 1N7}>x㕃n\fyǫ.]gǷmT 4t<>~#/]wc77Mu$̓$C,)I2(#H[Cꅐy|j{f?ZV cBbU5nZsK=}3Wϼ/i>[^>ǞX%+Nuv+\XTvscs|{֭[ZZ9fGAP%笌V6 0MP6 'yZ1"gBiHA,u=?8T n~X{c,ioػQf!HL~=k3zBB!Sa3H'l`*wRR0@=Gx>F&u+cC4xWG7fJtwjf{[s R+ 0jM%*lEJATJɀKBHZ!aa Kb9f`QOjYBUU/K,YH"@cqA ոӺV!$k2ZicsJxsW!,H@VF"|wM5?}pӑwBF QJN^?y]~)A@֏8^@2JBϻ&?vw޵Q=u*Ōo~KֆbJǿ]w?%?C?us/< ?'G bÃy)蝧akw3N9!edr*Dy\۾zg?{Ӡd@v_|Y%1ęZ-ֶ1cd{3H%)lY'\JUOvo/7_R6TUB, ɢ66V[ׄe5qƯy͛o9u٧??^-r2ܹ097J)cJRH1$TP:/Pk %aD8UJMHkF (ϏVx\R)S& F[ *1J`alN$t:-tW8SJsB)D+:pX\DՋ|< *}[mYE^k Ϝm|jCǣ\s1%0h*kV Pk-SJՊ Q A a9kr.TNkxk Fˍk\MJQYRȮmXIq±ZKDh& nӈcL1~ѝҬR*L̙f ӝiD *S) 8"*DaԎMej+#u %84dQ )"3J)6B}/$ ̶rvHC'Y˅ J#P V=n\Ýמ%@)O @\Pj{g{yx;a֒Bԍ6: IN6!!J1eTs@ܸzzfD73D:#֡Zd?tRi5"EZOg/^L1_m5EHF 38qqp~XӶշ`BKSU3j)fd@Bim?WߺO]JQ)dRJ4)04%~XUӔTr,1 L!4Idg7Ƨ$2HPRa.Vq89rLK6јRr=n(&ԡSUvND)x(PeNBf(0`\ť@jsE0r2jƵU5nG/WBX,Vt$mR B)JI*^WFbb&a4i)Ѩ=yjʬZHCIv_UP*PJ*b(DCFJ/92n5M[5/\|ղhݤB9,VIRJ13:ܶ-Xe R2QFD!41)[k|+C9ETBm%D13sv)Rzsscvx( "X)sU3*9uwjZzvx'n4%R !BxT c D)u"P!6H!rɈ\r!.Jɢj쐡s AB00MK&JdZ!=|:8NsL1gUZ@`(!SAmg@Dj8?R8|h#YNI(iN1LD9%@ ~ڠR!x.TKΩPѨQҗKozõO<@cmu9P(f =@L_3DٸJ)ݯ~0NOa\[;BыRJl6&90-u3jsL,XNw]zuuݴM[Rrr&>{rE\f3*c -;f@Ttl #I_w}?\{~{|{n?E[.rg??\Ц_/C>ܿ:Orn咸RR5.2)R)朒B(dEY2A=%BM.)3` yZi<2 TJ(*gDBP%g?xgtY;SjBcn!^|y]*cpJfTHXe)% `.DYkc˅ Du'׽Z朄USڡBDB9ta-.$@H%K3薳[ ʨXMDD CHCF̹HCo)DBK|ȅR\NSm zU2Jb۶E΅0!Q@X~ݷS /gj(3 !=GG1QL%Әիt"RH %P#K-CTIQ[+'a&%NnT Q(9&pQ&D U]% 2 9%Tj LJ1D4!F b@1& É7nq! ĂUU!E&1/6=̀8ؘfk9"N@ 4Ɩ¡KZTN6 6r$1᭛ 'r코w~=cXVvD$ۭ3׫MЃ_|ޝ;c҆0>$˩C ƶJt#[5N `j2B@f*! љ`]bJYI|$k)kk!$ʔRfF!O^ID)RH$F!LrVͨ}>cb쩻^u18jcNy\R!%L&VcJI"a0R7h !\P !$"#+1J 1UuuNY0F*Rt.ܴ @ jRNjR(٨^%k+WNIYRa&-V`$!P` = IbHR(k*)KRJR!D7v6RkkJ1 !3dR22Ic\1b<FĂs:f眔)RH4R: fAG{!kSiD!J9?uJ) 4*š$Q6%PB+'i23K-TG@Dv2Y-QJ 2wJi#hi `!nj^K!K.B:c+*lOB mV1faM]b1g YB%:kPg1[3pʙ2W6S)"2IE҉CU9BPأ#H%+qJre9\yj瓏}Xk)\PmGXHuU|ke@̈́/;n:b9qSRɡmmN_r$@ C.!rЅmL!fLѵ J8~/<_pvg{/b7?ңt/@,+cXry\:C1G)/1(-sRԇB` b`? B :ک|NHJI!@)¢Am4Z B Q!a0ڄJFRQ QRv+3]%[6\SF}Y\Vy '44vTU5`(CU]pML(cUǵFT,Um+B'ٌ1h!u_|bΌ[Cue_93Wuvgkw9{/Ƌ9E.xW+9rЍHv%QSU\hkQT*XU_ $Q$.Zh3Y[S9SY̬"iKe.Ȇ #Đ2"3fJǒ(0 $J9 0-)} $3aThZ.*X)@ڶ9#Ҳ %P B`z)O K.9e4R1RQ3"ZrH'Q? z]/Ahe>R!&AQ(nmjGn|u]G YH-dsC[ۦVF~H9ں12h4&`FFaLcdf[9WՓIqӟf(T>U'D天T:{zuX!U'H_Z)yy!^|1N 3)c%5+Ra(4F49{/AJ/쇔ITN*1u 攁]ajd!k5U}j;g{snjؾx3̻wƧ߿wʧ?c70N߶{ۅ1Z50[wd_x9:qB9)m$?D@ Q.4C_zuԏ&uEܽ{% `J`kkz)9 Tc 7U6S]Ni0Uʚ );cKt2ٲUPbqzZgB(%l:>)l*CF I3 RFW+[D [=VJ̎9!h1ʒO1(dE-ZJ(G#ᭃ׍UTUujl&G~HCU;N%悂sֵ @qcΘDM[GVpaQPh|KMm9WuzOzz,M1Mb;M"W*HI\@BM`` ۀHFظ,YYzzkoݬvpeէ;qg; D!SNgc;g>|J9("(obo(QRL1&&_jFv]L)EfR含f>/Ef2,Y@QI ̜RJ昊¢T*ʪf+ލ'cJ  {C$2CR ^jRRȃ{X#^ǫ+1L cRڨ1Bec"JRI%L>T%2W׏8z_fhRyG+f)UJIILEYvruu {;)%dND@ҵO, )EhӧUaWUb껮Z[UeQ֧FcDy(9l-T ,Sa[fMgFҊҵ@.MlӪ@TJ*f"2cf!epǓI 92_yܳ?Լ_+7ݴvꆕMDrP@C9}Jdq옑:6>0cQ+mB[bZe}2qvH SP@(6Z[,Rtɇ~0Eaɔ}0 RҚRI–!` {[[=b4NŲiI1)&c,"ʲN9*ThԈ!fN1-W7W)emآ(,g"`uTR(jÙ!A;5z #$ 亪N)f}zvg5/*ؙ)e iZ%$e2 2""s&Ns Y)YE&,AH!RBDUR+Z!)(WA4*$P ^j4Z -J*}H$`{\CcWUvMbRR}\L3bP$)eIC>=ukn2``0BI|R䙹(Ճ?u}R1'kkYh]\$3DG{ -9:oJ}E]7c7me2g3OVƋŜQ)ticmY!2 )g 1h)cJɊ/WArʣ(BhԮw1Fc H9ޭ9”]d R>qYl!;ws2Fhm1U/ұ'ށFY1!E˃y0Őۑ lauXvPF [蚎2)iVWPHB e5XY[c;i68BZ|bF!Qe#bԵBӝDAI]䕔RIUlyi3?_MYo.wI0Z"̤J!9ghmCeɇY(sDabN`LĶSs;oBɔ0F(  S 9/YHrP.*mz1 Yi=q\&co]eTQ(Q>$N(yN˪`%%04] T1DkefcG]α:2۶8P(\㊁qӥc!@pNBBJJ^R*%zoFk.>L .,lQm2We}!Ǭm'!(&&9ښwJB6JXC09~DY}Vb1 1žs"!` dA9,)gJ1a&Α.\N#vJjc4>!˲J!i@ cd3DdH {F2Z&q9̉Qs4}bquWϟ@R TwEYs۶)'c֪m[F[@FYOhX)) z8iJ 1FJH.wݲDBI$zrƚػryKn[<'maV۪jfe=Ym]?u#7}'0]ܹp\>?;?vVwrA(a n(HEUǜ2 cxe*= R*m\3*:;. Ev6zYz[W.b9#]p)ı SJZJbk˗Ŭln4# bq QE]հN>I!0Eb@e+Jk)E4 ȹ>ƘR WʘpD9RN˺TZ/ Z0Pje WJJ)A )DtN* Jr8cs2@I I( )8JU%ع`MkY M#2Δ( B Q5((tZ[@ GM1.1$3]b |G+kZ*.o%cKtze0 O5.YRDb*M-1(@TR!@Y `f)1B/831ᏄXKZK@b(%DĎmӄLj#$0"7dmS x!e )L3#1JMQAJJAptN,lA1mgJ(p0RU^jjC(5%FRÈZ ȐrM\\`:O^:?1I)J(cLYH9!IGwm[`@f)i%uaD3 5N XJKD.8O>Ĕ2dQJREa9%BHI!I%Q ]SXdu}+Jɲ(F YBk }(,cJ}H b222fQl!rۮDc40JsQ&]۷(9D}JkuPeF]hl^O=dh;i Ey3(vQn7L)e}PsW.\ETAJ=I(`,2V>)ec*hBNֆHND>~.̍'OϷ}72KSRq+W?tx LyҥCdJ9VViBK-VSfDijsmwr2 DLYH9__zu$EGmYU;x/'؀R X,1(ő#o|6~~s5J7s=@EY&vلS?y܅ Zs^,<~g=u7m]oy+}ElRLP#g.zPr~鳟ϫk2v~4vrŭô28ܥ'Oĭ7aWNTsOde5fvs7\;Xd-UʁuDb<A#v bLdb/$(Į팱JJ~H@+la+6M]Cr _(Te9'j<ʘm!4v +Tmk_xꆓɊ;7m$șFH(S {S|^N<}P· \f> 1Z0u5vwSNZnwKﻴuol'_z߅3>Y75z}>7|nw24rwPkꒈrRI!](]M雲*/^?}?^v?'|\|{-׼<~uV:C@lLNBu DLE]"aAqew)#{JKC Iʝ.\ش}{7{n?}G~sO^ٽ{彯;O cG\92]bT+x˛Uؑ@a-!c]\\ Sbmd}.N>E`0@`%3d$3y XkbZb>%ȩS epCiNYi(1Di JADR)Rkc)L@b1 t,>{v8WGƱ@wS@H%іE YiRZQ π#@!|h)&[jPu͙A r9! `(4>(VSVeιڮi~=(`8 &k͢mMw'T\D)aNI%Dm @(˪R뺎Rk9 1@Пox }(F+G֗өQ ֖,ȤMAD#3a窐Z)vtsŐ(Ǽ%k*MN@go{/?|?SE򎗟T>vc.6s9-Y.*P1A`La0LY Ɣ4 Z@ 2 䜕kUiQm)mQ,p2ٺpY,gu'NxhM᜛,b%e QYE"IH4(9cY|&d.lr6ƈzSB(R \ ZCVFC"f!,2]׳F_<7͡Thqwq@2bP `9a`(J\ĜP]kkfRQ۵{cUJ9z_ Ƙ|Rփ*xI)D0{Y+=^snR}_UҲZ#DU%3:nn(uյۮWu9Xܐ)n8qb2o}v*F`M̈B* ̀Ph!Fd+K!E@Zr YI]0e9;WSLPţg~(#1;W~#vB+!W7r8Y;_ KmQbY'ӽ-9%JYjI i]zzҥHq0XD5ꟿow8$(2~9=0R0Jf AJI%…:o,+4(*ϙTBFM?ػ,ooSb8ks)#W>tmwF¹g/7}[.}50)} A#c_hb: )"hcJ))>B6n47MS@ VtZKueU)-ՕD䝇#/^=r:ٜrӶ* Q"%)!< SRie%f*#0R\HPj2s.r>f~=+$rȉkŰ6KU(]Yf>vr ˥B?WLF娤H!=D.'0&ص6,:IaI!8!g>F͵s],њcX[e⃝) j)L(%~eP\ADr NkyІʨq5>rں$HQx'}K@U^ ERB(x苟[>"'γj-Aٶ=qNM eLQg2J+ˀRh\#$>RՅdk) !Ƽ?pZ<*Glw}}ՠDhl"Ϗi_(5R9gFis-2Ų9̯cWf{~cyyePa?w{n;s?>~tƵ^qon+7|Ksg>ԫ޾xnc\_'???QMժeilۍc%odY P>|R;ϔٹG4sJGQvI9 4?(McZkb޿C .(+1dͬQW& D&|,*q&LY P@d @ϏÓJphyKo\?-r[H,}ZhR Q|օ6VYvmR>A]9FQ:BpyA+r^XS̲wՠN!UY F)Eʑ9WF9')jm5ݢJ"΅X*ܸhRXN@}šf(βuP# 1x.g(I6vhG;KD}P`2 դ@ĐB2j'&.@hU(yK 1F[RЈZmV :y,bH5Ry)-pHW~٧Ν<,2쉔B "BDd2L)JČ BBQѨB QuC8H)K )ۦUZB={O9眿:To{]/SJ>~w&:Qh}oWkQZ}/۟'b (xu{+ F!Jq9Hs̾ċ~r~4}}u{o{ %SJ ݅-~7> z.hm)d !x> Fcr+Oqy*;ݝ̫ٕ/ex?eܽgN<[Om||\پHKi /MvbRC12KBM#@BmkfQEY.rN0GVIjR|H, )c9BABJH&Ѕ$0Pze8TF2CGue}CcWhp{(rJD9s $#brb"ȉx<ʓlYV˪*kb/XPə(mI4MR`m 1ƍյ͵[OrdOʿD8qC?7]=O?sop}a>Bˁݲe?LV~>| 7O{}?˿_ʹ~<?K?#_|X FO֎mVv؛kݎL]kS2Ԇ-Cmlpܥs/z/,b8W/(~OO%w.luS]=@Nԝ7oX~;::y)mȾ,vs}rKg=w35zxǏ;3)!}$L,jkcLLZ\G)BPh)]w5]P&b%1q lB2],RWFDa`\D{oJRdKsg (m%)J+)E i&TVFrm7^$KA+['n>Cr>d`Y)iefE&Z\R -Tʜo[mMEN4TU])vvsfV6Ɛʪ}4ƺm%HB %>cM=fX/ahvŠH)U Nf Cܻϫ:^ejIDLd(fg #rL!VUIJCӧAUվ尐(֧p0'c, sG&\5C1Ĕq1Eh?R ^ kKD!|dLc|d`{kǐ F99 ✁IC9gAU+4p}uoj7W2 DR(C, eZ3QVHř̏~Ϟ9vͯ\wD/oL5O\8y=z;!e }FDDx >w'?p 7/Ń}>7}׻?ؙ/ԣ/}ݷcSxe1Gԅ%@DЦ =!-1mY5[B;hu2Z]ھ­͕S=֕R/^q}o7:~(ܹP`mfXX[ݼaukggo/ox]y]oM.nəPe*%i?R B]vBaAιPT )li0TINja٢Y8Q(QR+-r]ڲڂHm)BZKD @B✈'q8H1ѰڞDQC!rN*V'YVrp|~Fa=Nn3'wzcbO6\Q4oH1]-4LZiS-h;}.wgƪknփ % %ӆS1+# LPRpzsFQY~~zpmhvP;4L9TR˽%(ʇ8Z|oqOse%#k+ČV >gP2}_QR"{qrdM]f@${NHi ۠e DLhybN]{yͫ'OaXtzbjoo;GE=(0Y)e (PĐdF  ɹлr8@$dN)js9Ő"x"s^kj 6߷a}mJbx0~%0;{K-3]b& xMgvYW@\(rtG?? ol<¸ֻ>5Wg\$>au5 V6#Ab#-tZWiT9&׎wE7]YbDD؃'}?kz!p8":uO>w3:ٯ[ٙ{-a\xuʮѓ'Fevq8Sw$$dT9$QRmʵ#뷯nOb<>nME$fB+B)EM#O5md}b+Κf:FIr1,J7EY͂eYosҧÚ KĜbcia G1& B ZDR&"G1, a-u3e49AzPt(2IFOۗThTɹvR ,0.YPRԮi)j{$欌 _ԓa;_UPRF^ i-2_z 0ʩ[NǮA)綛CzP,g dfmuGל{9C=P`Um}XVJ2˥JHC1cMU=:F_z≳}ĉ~y'&k{a$\TA( 爌!'"J*KCTR3rw,DYU0(R k/@ 콓j@TB_Pydᯥ^~K N֜s*[Nʨ]rݸ'|?Z/…A^qO}s9e!Ա7ܼF-ܴr(mt]{ .aYJJ6oy]W9cjݫۻB+`% \ ov”fb4J.f>^VG HRc SõڱվR鼨*Sh8Q!0-P:D]ǘPTym[v5Ƙjާzޫa98$wŽLlpB$P&& E4("Aa#.vU\*?6{nV71zwO֖ko|LUڤ1/-b(mn6Mi+VR+0_~S/9.P_նQ]gQT;ᓿ̗.xgkhubv_^?R _zkf iVk(6]SyHI~&W0/E9XUʀ:iΌ!lEi__<99鏷~Oióiv}\}nV9HCf:VRX90B4qn~RR$Msivhk1,G1d˒/ćCDuREAa2zidvl{͈tI\r@TDgfgm.9\HWmJC]gG\<?}?TI_/sʶrF锊ZHs!fjU-39__{у{O?W_bk~~wͿ7Շ "@ ü$~RpZR6U]_=—|]Ѹ~sͭ3!X^nK͟w'S4\>|J5@AڵT]C?;N;y{w}th9vŃ W.eHں7WO5bPݬ YAq.yg0?($"ιg1HmYbe!>^^֯}}%% o~K4UbcU]UC׵e+"güdtM`p}VBq .a&ĩ[y?LTםBU}2BD\fä5JkPdm"9emgIZ)B"b\T;j86'Gk/l/n]F;]dJiF ; D`RXr볓.HhermEA;OSY)@*FNcHVq\rEk=HwmB󢴪+3"eGǧ1E1aRytƻ/>d#H_9m _R vN*K.Evte4WUo[ǦmS6شcjd0xzO?y2id\"3AG萀Dd b;) HC\rΫf>XAr.̀Z)e4h^s\!\ oSUAir1_˿K~w~zgSWRP5]wGK)Q"Q?k?_}ߏ+cs3l-_zk>>c׷N 2Yf헮_|xH1 _opssKAh-O?a# par_yxۃmںnW?ѳ'۷ROvie^>ۿVMdS `H77Hf(&>|0B>le)d+PIq:bv oNOk!px2mv{rZ y;-id}[ʮ[UGĎ  bk6ey 4i}m?8N)-@X; 0\H AiSN(i@X-Ot73Njw I> xo/ovMD.Y}TBٸ q뾵2/H!i(:NA%lgT&5-Ҝ3po&. "fa (e4B޼yUS߬]SJV0n]Uͪd\%SJ"no5I)Ț2{7 Ye:jsrOz9zW 療 J5U Y"Sb ӮsENNNᰭ5 1H*k'~_o}/ = UпC?ܪ{_;oO|?<}OϯW__˟O㈕IИ??c<;/WF\)"%+~?A7??7~^>' ˜˟}?% =7}p!__;/?C_i|vYmv~cbTG_я({/%糓{pUpdk,b}*!-Kȹ },9u]U@K! 'Vڜ\K=_QX%p}K# _Q/N_|#KKU]ﴮ6q>f$$~ 43 hRNG!P96. ҇gےm WM.>je_ ̇9Sme]Ie)%eL)1 ]NEKkU Ӳ,L HkI"Aڠ:>>>)@l*Q3@Z3R*sX9 DIiMӴ)gK~?PI7[>F/|G潧o}G);܄"iVph&3k[UVI)_bD@!%9=>~t9۟8~7MMQ֤TJE$ߝꦶ!0S1:HH 8|dmSW2jHΐB)jsJkカVYJ21SQJQ)RتY)ʩ @Jhͦ5oO߻[Tlm:x߯0 |l]oVѧo>\ma!ƪHж= ,аQ4O5d΃w/ղL9'[]S-œef~WJQJ j[ݳ- 6;i&bamuH8u;y"sYo9 /s*+Ca_R4s ziw8, {\~ѰMmm۶vubJ)"QPy]S֨(儅֠tsU 0LL5UN)}wG)\ ĒjWYc aN9) fFy !{/rda))唘EJE)C}Fk]b(mף{r<n7'+gBwԄ9\Kasղ,%2z 4}=ƃcNVewUWľK)Ȑ)+MF̐SPRjô3&ܥISW,8/jKT6vՊu? s!*E֐mgX g)iQ⒤0*H4y qZ "lD嵪QRs!-fb  ""XIHteY[W.ŧ sf",h3Rn}t  I((Y$1!m>sR4^|ɣwihV%PݷƘi8gK%TjZ圇l5/hD,oӫvg%ʕajqk]S2Z+5Sr|t}O{o&GBSU[Sk9RJBD?xxS/aM!A<5) k6a"(aIkD !"u|^r4RPa TQKQX9hR @Yo6g/>x{GcRJ^Y"pTVp $" @]UwS^ ̅A A!EUU\[@am4H.ֺ03(}crL:S8#+M\X T2#n{vYu\B 6*"A"%d)$0LD?xyQ59f$"0k݁MBm[MPݭN͑UE˧2"\_ɹk9@$6~g)Ek/_|~{ᄅ]$NNOΌq]j9L1"cs(8S͚-)sʚpE2j(cUm YTumWmӴ%fk#ukҊ!T4B䋗kH.P H H4%%rtqRM`܎ާ0sNѢqafEESU;ܴL~ Ga},E_H֏aM},Y[DҤX2 iʱ@Am(q>®뻮;>;%a;#(ҍwVJ*E i?⒔51&ZmV}ӷuӀ¸)i\*"MSKaS9.(\Pa6n$P@6UE"\Ui[[n:IUFNil/iw]I7^A81+Zk+2>I@V+KG GViR6ZBpǗDbkWH)d\EravΉp )&B@5jO,ЬVv83f)]UUg`E*șK/sA +A0,HMߖYkCV]){ߴ{@( Uqǰx Ay?j5%[lzzQZY]@jBey*><n%kq )NKpJ ǔRag̙Er{f~rdi#\V(Fr)dTryz9n6 g><%.%lj׽K*a^UbpUp=q^_9nm60{z K[7!1 &߈a;U9yGgfSq|JqVu6n}-3C䔓_n;تqMqeߓ gi6&(%9,&\ PQ2*hJ>c*1Z9]^] !xm /q58WRYQTեo%Ma90IWӓPeyNk*z}ڕ("D @Rd܎)' ctcbRH)nUFD&cVm9]_?>YgW^!?HC3k&.2Z3HN @rɕsZ"ԠҒIicѥHY7]j q,0G)XrHG}[ G]A8Uqu|*))9qnqVƢ5vݺ;WuZD)G>@IfYJ qJhLWInUH ;.`H-$ADCH[F 1N #"Υ ,R8$PrwB/bZia),E&0vژr P@l](.^?aXld I\k`ux>a?Fn.|$Z뜟=GWG@*UUݭېzcGt.XgAibƖ̒ gvFiJbֺ8ӽdjpW># qd$E\rQ)BywipAEu[31{Qpյ0"tv4,aFt 'i+][160`Ht9RAĊzZ0r Uv"YirqԪl]88=\Pnv}Ir{s&om}4uĔAs)hu3mq"JْdBS7J@akR4mL~AP%nX8P8+RrހzY1Vm^R_R) \K~RR3!8B4d J[cKƹe.х v3cۗ.5><{,Li?1%v^e>o]h-"9k z>ϩeTt>Ҫc?ACzn\a}< mK\K%t>riZn -XcIwPJk7žE kcwoo]_3NZ2Yk%ۻ2/mӂ%C+b:l$Zt{V 18xGpkdL >o9pxjYTrE2kN >z᳟|?5?;zkJ.8Dc 3sqEjbh n?VmZ^_zًa]>7_}kejfY0-˂h5XEr.vc$C.iص, XRN qqC1֔b|i.Ǘzc,YB袏ƹPsܸ@AY?ϰ 7RjBk:?zZӌLMבn `lȸU߼tU$݀"7p81c &s6:r// c>F}ضĥtp>mC7|fЮuSaU&\]_մ\ZR1x a2C4~8 5m%R1 08\t;'E]ߕ}C:<,nwuyyp["^= Cg59DVKԴ52LSh8PRHi}Cƾk\[ʭf -Q+Kn(ȣ]ۖ2Pik9v/9.>ohJѐ4fѤ\AA(3{>@x:sZm5gDդ ;?<V&1%XVc \e!’DͰוֹP[VU2*XkAD[f(,*͉8~LJ WoCCgljǻ"y_dq eyC)ӨMҺrVVln:Gm[[i6y }̭5gmu׸Yu)%U!D5h\,Z3;5=>8s}7-?y~xo_JF燇އлМ4$m5;$[VǡT$xz]WPK9!0UAQk yŖ q⠆Kt=e].ƔӴoյgYaZmmYNDzm+ h.` )Z7W_Լ Z@dZ Qѐ:o3 C*"~r]+ÙIIXD}-)[.UsiOb " 8cAY{ILS}1q"?yo]/XrA@$J;.~ufwqMm_gc5tx>: S斫*!zҶ 0Ne^ Z2С WdA֚a[7m, aH :~WK C薼AsҲnO[㫛W6_Lc5XCdh> (5gh۶>hi솠"ͭ3.1Cv#*Ҋ''ЌӘҜBG[d*Z%MQAQXKS=1d#)5N|<%mb 927%q֦u@ݎ31~YwA] o^Vɚn-Z2PD"֤M|pan:L9/ b~V,Y);(`hE)eNm;Jd lҏ=<\_u[wRSv.vu[[޲ʥmBq#$;GX3 e)1 ׼_WDD4qi"BRV71 ;Fg"2yL["\Q-f%P"jml[1peUscܼ (ADk9'5F^\]ü&B[8Z>w߻'Rvq0H;u}oP)e9ϭUksϹbZjhjkn+ DhແOUnRR8k}sCDC!li#Ӛǣu|Hv|rURqYub2v@h}]aYU@* qw=oږ۔׍KUZ;]N EAׇb`d9RùrC@2Da~H Rj[chOck-Κ`lw\x?k-A&Zs7>Cw/afwct)g=dh\J=yQefB|.?"ۣ<~!y;EEfsUFRK F0蝯Xcu SbleMF֝n!~(]o2k\JqVЍSG|zާ\y)lNZ+.8D416\S! \냈ivS5mIcR5!'i;-OJb ";Ξ_|Ռ@5Za][8vY$ i͌JS{==]uѺ6X'Qɣ:C4Z7*K!k/CUUiڮZ[׹崹.\\\ܾy W2PKUF{׾0q0 B캜JN+mu!o| ))(YGtCW.b>vBrϵ圸6<ۺ"bV3fZrI)-Rj--{k 6q˺%gΓqnц՛n Zitή9 2ֳ#h._))ra0 [+>[)u7/L#*RS+N8My!mu9-Ƹ8t]R^jιn PCZdOVꬵqSܺ +\TXpiKj$6ӜkOvx1}_ ;_GZɢJHc_K6dҶ-#ck1(s:\W7a[ה1&-)D/hYZJL+IA1e)ܜ,hkVׄϬH>_ƯVT|ws*$b1vjʩ`V]Xr,i2ukΖ֒B!!sid=/j7x΃8\./ipu;nbkR5Yd禀MEq (\ij h 9&,8DT2*@D8oKHTt]\=/,2A 1d O>9ޑ5%kzJU ;\uiZj?Z[J_?yrqi&^jU@+ykqˠps9Oa]׻S. jrpUo2RYj ֫0%Am0;q<n?Vn)ͧc.9 @!r:oŅ3k j8#ܼu0Xgהjkλ~9qc8M1||/gšXWkm܂ no-Ov>"(lsYOۻȒQ?iFlr?n[.AB$j9E̕JE>pf؃r<sKM贕RײCH|ԭO웻o=w:k(4sBC??̊hK3YBݠmRQ T}徱@6ʍ@cY[ç_ݞN]>6Ы˻WoyCiBUBӖ`*-/ۚW"csiF8,˚@YA c$b(yY4Wr.ǿ[ݎ˫/⮓[֤Oʍi8Ϗ-k1%V+W8Hdl)5$g@r9ָ\K)o\tyPPAEPk*>&SdDlTPAAn\nɅt]dw>;_'95׶7o] iȰ]5q&Rr}АS"Z\.gG&tj~Ұr|gaَۚ{qž]Z$Z3[g4(b.:2`[@ )Aɚݓɸ19)ޑIB"%BZ ))~Σ4Pc!cZ:uafV[YrjqW^A|<眍q.Qkl7uöΥT r`N9vŕQ#L}a.h?)v~|yuq\,BDԠ!C** A jS8\>uƓX4?*C,xwz8 1!DmK۲.q>e6ВZ*Czk<dȠ۷{;ZAKeM&jm*]#bX_|ŗt~㏢sJw77$C룷7LD BȻQƕ5C?þO붜kY3(\=~SPU4h~7<⢧umYj.*p>.Kjoqv&qd[>= q@܄ee|]os-19PaiKGf0 -Йoo^Ehyc}KM !FW\J˥l9=$ox94.hZ37&8uq5TnmqY|^Cr*2_1fKЏ)u]/60 w^A3ιVT.1~ :|q?T xoK:vea>_<%n觋7yΐf9( 똹۹VYTX5$*&5h?/G1Ju9K ׯyvE bIe]x(R֓.9jJ1i@;*/HbovKmA9`zuc3ŀܺVtO>~ӝ:]UQpSNVk,*HcӒt*瘹! h{OQ@s47M%mAx{q,?_E:W)Gk5]oVK7D0v^x$|)YGOa$BGA vq{'j`ʵF%eSTS+bpZYBZ  4P$5ygDEDjt_H'Θ!DDa%i7iM;MM }:XWVD|F~g@q >0дVˏϿwXx4CEbD{HT"cccMvΏ]mÿG>_ɿvO,iZjN"lڄ[NK͵*Z֒p o^z3gϘ 5u5HhIHQDxo;/s-{:_䛯YKnOpuX_},  cDJ*UUKk:\ VVX/E}񪶴Ϋd&!Mj3  Ycbd J5[VJt"A$4ȇT %iS0ty;= `"Ul?Ňo>~[%Qv5Ҋ% }Zq *r!1ےb)AnkcW7~$ S_ @4!z  n*RSu.!BB4[ "ڸqͨț p;MtkP~rMu @||}u{_w~~4vOa7w…ZR*]׫BQQBfy#W9uŋKKM@u)6Z %mll+yKk]6ݰڛu:5I틲ئ<6.s&w/%zjbhlsЙRϕ<Յ9`{w{F (!qZZTFK5D#U?-凇;nu㽗5q//_~r)bUf)kEd[Wrȩ|w;>)ISi(K캮ZbkLudnCxe)޿k1?~~K."yn"LPkU`T0 "[>@-1uMu˩%cTaaВK-APB육Z@@5-97|?qn>]ο7Ⱔ板Ml,ԒӒJq>D0o:MK+ r#Cei] 3qٶn/5X rƻx[J0!8KVLi ZXZ1Zju]0 >8BD2Z܊rc1 5G>e aZ0]^_^<=X a7w7wvr,^^`9X%bІG$RSF=3$Z :l-N_qr{qu)]EEu'eP}gϟ;M.ܞ_ GJo%an(xk1M\qh`nb%:g(sƞ8 >uJ@UeQ0v]NJ`R.޻m]5dHIWayp9\Cm iG0Ëo_|>^]_gUc{<b.IQV b[٠H<>p{h,󼴔w5u݆~[?,缬%P ;rT;sbBm;u Q5@`U0v:/燣wސ5)ߜh- g6*ZEآeC؅r<-zgȾO?'/Bwoޮ:gQDsb&uIjx<>v^KQ@R%ZX;ָs,GWSkTQlҦtvƒuh7VYsa8p{?^qm\Y# yŋ[Rfd>RӼ~d|sj6|:}(.w[e]N9%4dGBFY;8n|>e~(x21t ֱ r]CTn ]dPH T ZkD2q}Y!1j|RY\ Wek4ﺱ_OG`)FXgn箛}E-g?'鴭[ \} PrU5aQYZ8ʶj.ec卄k68!OUx7/n=ӨM[#Z7A yw??jtޟNjrJܵſŏ:!>z{.oŷ7o2w&*Rk2!9oUFG@qkL.|PKS'2ߜ :g*"1Hr.춮\ 2S ZmD8M;֥*6)*!T; +DQ >R b)uXp39<l[*֭9՟GaOy;ϭvޖO>n u@bAw@*hkIi7 Ȯ%k.BCέʪ4|1R4 Amxk s;"7.&"Od(*4$unR GA78)Mwv/]iYߔy\* =?vk񂆞Oo% zYߞ ]SdePKY6%Ɖ벝55{;M yG ``[Kcsѧa~ׯ}Q}tdMD*s]ܒf%},qX+)1Ve.Z-,,Pja>R_BcTfsdr>FT9BW.?eݶMM [Pj)biY˫0rZ~w(55zoqqc J ik\y3Vup?Ӯ{jM 27n&-m[M:U#1'֚TB4 _z>]? }<ͧK{P1Za?qǚ%놊T1uRم\u:[ܽ }?|{X`w=,O/N[LޅQEr. j}3dlgC=2P5o5jRT[ouwϟV]NGW_+|: 3λuq>/Re)%mN[Jsq[ƆuD]/WEg3H읳Zq]?-5)2Or|(^ߒ7ıkov<>Ka.~7&jSӴ;ޝ<{1,Ʒ_ЍUry칰uTU rkaJ FӒB`Bժ" 2r!\Sz4s+fR NABiے"3S[m:crEUmb|~M|َ͖TU{o:! C!y+—_WBrȒH"@ u5e/k?.Q^r<\N)iDCS`E@iH`]:$C=+RKۖs%K0iђ4 #`TX!(rW魧a4uL4 ʹimr;y|"j~7 tK)HB|' ?|Ckҗm! )2[W;Ҕ5q 1̐x Hp3#ܶ 9)gĒ^5qe/eDTkne֪uA mEp[KoÐ'?ޗ֗DRѱ@S1w!ZΥ-#|w뭙iof`%oy <=w.??yy~|/ŀ0_AϞa,i.s@ aRdtsZøvǮ/nO8Wo^i04"ZKiZ|]7E/CLNIf%7Ni~ S`Cq}n8*w̾&bqG3뭖)({@%Ilk=MR;0!B[Yim*\^z<0&Ǹ^o<ŗؚXW[E#Cp!Ɂ֘Yjϵc^ \ʞmiz(M@ s)*=o~݊.|m_R䋯Z~?<>?"{?>wĚsީ(yJ^xِ|H,ռ !QTnsvOϻn7 ۲4ퟟc ۖ 4Ơju-}+ ;ᄎdFڛ׵Z쒋9#*֑Ԑ;yφw1ԭ]gV}q7230r^ϥhg?aFNîݿ:1 C0Oi})!Db GpM@jBaTQ,1U#!3#tѯ˚:/șK!^9p9DD[{?"u{0M!``JWQM1!4q`L䐻_t#[f~oɧ?|bo3tfO4)1t|Qmy'bJ m^>Gqqt\snl]t^k}. (8 tzs-NCܥ-ڴ.=d ?tkoq?NÐr](fȈ[^{k`8ɥHm9_``k Q > 84N4 lKhe3St\ږs\j\B.0[^[{uiU"cю#9^`Ouɏ?|w.%b $XqZ>;0):FA94&v_TOOdhE9mDFi4cb/~wz[aM*^9[V3S50Li%P ɔKDm9qn"=n @C U&wm) q*bm4F".1|^PWiETycjCc2kD[e>~w)L ]kSeNjeu^|KaAxR_ލwvL˲HWM p؍\)[L*jW$RSrZ0t~L]]JݟNe}o.kua j=Q]\4&t;_q@C"k\^71b`! }fDjjR[FF"$DRU4#+KtȵRN4KI)+*#{?}!aJGjh]vy5JnFbH.sUU^n+!=~("&Ong˿W[m|[QW??Ѳ.a~bG)ձ1[EQ'?|ܖ٣cb)C@!trg޵)q܇0XLd86S);wfme[_ǿ?]xi~/iU4?})1;#)rC312S 窪=;$<5ٖ[9sPT0![&]\ ]̠VZK%O.z.Mi܏S)b @b&ֲBH@TD@0b#"?o?ǰm䇁h[emL}W,+A) ֚jۊE Ŕ}ӧ'{ n2OWu?.pXK7Nڊ>w_~vVxp%@qp:|NݮfiJW"U=s~lؑs5 P#y8J8R7?30cZkmmYlLl!11I#vE$+Vd*]:ϐ0Pp {.>|'!Zk/D:$f@D80a/@cBGԊ0Tt&ޫBmNb~HZﵷ\U:z<S+q0P1rr7I>.\Ϸf薯y?/~?mR6bAis~!UX4 Ò3/:$[?s] m#vf! A~_ULTE qx!9~|^Фtc>_y`ܠvq q8Ghn{A F>FbjΙl ^:.;5Aӫ0[}]z-&pu34 #Jrۊla7L-J:c`!mއU޹aj)qV^Wt8Jk"Sy^nmkʴE6EC39fg S)9iаG i6-n{|ct8E>H\UֵNq[s=q~:l BoJOh}Y=1"]B䤚/z\Ru]}LܤtD䘤+;JcBh͗[Yv|H1&Pqܻ0tQ|o,ovSp:i78?a֭M,nwA#3;Ľ|p[&v=_..o޶K" 8чiU|e]uRiڔr)umLDLHL<bH㰬˲nVs%n?v ƀS3٪s壟X)y1Zd[qRH<loӇvtopx)*ZԖ%\k`Ey&FQQlz^wfg@ar!XGqk)"&8Wa۶]6ޅXr>=5:y|}.q[?_]]?D*oe6`(tTf1C]-}؍x?^Ϸ~%oxG?GW ^?3pTJ [|Y`r9ݿz "CLIJ˺lRKmy^NP@ڑhw:j:8y/޳s^Ķm;>].v::;F6f> xfSſh9t*O0?>ɇ=ۥ?ݴë*ziِa'5J7.HU`"Vgzmfφ5eKkq7(i[90 L|9b V:ydi]@c*\=saD>e{+"sfސPA{RW{o۲x4](|jnoC]U"1"0D#lz g]oVZs 0XМgI.S2qi\ku0}I|;P8\ oHQ`䭋r@K4/[Km|n (y8|68~r^:pw^n=4\[ҺsRkCu 1)xxIayɐ"U``Vtp[ d 4Ĝ UtaxxNT;U4_iӡU%ͧ0Hs R$ ,N{GՏ.pƆcg[m2ZZ)Sӷ?>~?|Vֻ/LO]prVM1L!^oFޕmA[q7!NO}RMtνjRj# )!-go*wou &@ 9 @~1"87~[ݞzs|v5I\n6Lk~|w8JR?H[VV/]~["zl!'њz!Bo ZDsDVnm{tws& 4~޼zsYu3dӘ|Yb+[kTC xZ1pn)&lrΈc3d/H9aH1N#*l&]Em3SCaH/dj!W8bJ6i<7VYs- K-%w]t}ame="ȭ.703jJi[Wx{> dr&&f2Ӽ1(=>?OΉ+,"*]EzO*ҁ熀a?6S Ȟ?5O/,D}zzK- "*;H}du]L8lF4 q y{^-CSiV@Ő`*f0H>W?D,9Ϗ7o4c^?ёJ@q;ӫʸIt6{*ȴnعRYR*Z8~<y6&ᘞ~|Mki|x?L. כ p!r<Jo&:e}YJ(<1^.bo@q-W`\Fa[kH}h.fD cc͟3-ץ}[(+keNaؙp<~{4Zk{'t~>i'ܽ}fi7i*RZe-~ p|xEkMTb c1*{FG`?,4$>g26%b"$2#3@tzo`fO~q;w.Z>~xzS1!) 961OCG:Ĉdz'RʺFtKvwL #bngcd"*ڵ4!J>whkw۶ݐ!ϫ>iJxܧ Sa|ݫ!)mveqb q"1ҪKh@ wʀ몵iд;D,*HБtQUD6!D?/L]t:x;0|6￿>^r_oJ+A)$~0q-\Ow|"UBsÇÁbju۞i7^OV@!]i0jHGO@/l7i]3#9EMUL; 1)R8l KJDD`{l{K Gݶ!xS- PMfs&G1zD"S譑s__MK#DLD "F +A65M;)j)]q_>8.W"73sR8qJҬHg]JC}C=C᫟WO>^\÷9SѷY.={Eߥ *)a }+uQftv'4<=Sy]2CChM| 84(u! HwQ;q?bK|QL}w̫L! UQeiu^ni.4my޴(xV5k/~oիr~ {4wGV!vwqۼxv1Ʀ ~*(!X.^.>E"Xpo8Ti(3 !*3YG&33S~k mIWѧ(Ҷz}u91oɮg[Z6lkbMN'`9uk(Y mmiǼzFpQ$ϠR qP+VMགྷJ׺c"f<!6mUimr;;4J"tFν{o2/Ӈ^r%&ȎCai qMm-G"u.D.F^+|e&RոO)9?}De^noޟkk5Dj"9>|eSĶm%BD4F8$k! 6LC̀_09oޜN5&D0@8rL6[CH|JݫtYn+"w.PZ%"&F cCZ=3#u^]&yv/U-eNB "?> ݟZi|` C %gi ە}nK*;|aj0]y-" Vc VKq.8F|dP>~/@.h}[nuu1 R!k[o)Gi_G޷=;ʹOGDqȹ\~x>jOxwF>s[ki6vxcxQ@{c^S-]ϗtbqu;Zm30?/E /@*!O2s.Lo+i?~z/8>*e./6.:#R{]VEBB0kqu-ƭUmTY;⻯ޚsHՂ?ܿ:KYUZ}.臹@w;.pShṈzV![Cj1EitҞ}?ak+! RǰEy^bjjy٦!)-۶;B`[=]LJ9Q e*>C)5HIg$0)H!D蜂. jL{D$4v: 2DCL;Q[ !hˍh`M @gȵmۜ2\GO|`wu]jW3n#Q EfUZmLDTBȹ3B|sj@;NOzȱջWk+^n-@*mۅRZޣᲬ1$3JsڍqJn4MZsޝaS$ D`O]'-!YSE]&$8N, .o;nl9vb,2H{b([~p<yCaG}mK҈HjHael[*00qLO|([!8M[)>a?||q9Vweιi˹hXJi{vh& U ^L޵/g`d!L˹j .sv#9@с޹Q x(%&Rj@$~6D1mc(Up@̡y'r94 t=(@DJi8Ep^ݏM>DUγiF11a"1[=!B`r`@c &2Bq㯪*yiVmڋyL1E CFŘ鐜sg\q[ؖ57&F"&hUuqL}t":;Cdfp$]u{ 2Ot}y?K{OO_r\s>m@TN9V{wMF9zWBDZZCY%$ke.{@;}xBݫןu쥙slK `O1hq7խTZ#:<>FጦM[L .={C>>o_9ûoe+`F}xѫ*Gmo_@,絕2RNFcl!P0E"T1>!"})0z O~i닺4y./py8=<0qYy{e0N`xgDFӽ͎ezy-r>̭{w>|x΁wQڌ|5iij mlC_=#d5u[9@ץrq>" m}||&qJ?/\ZL^jԺvA;Z@etszτ؛lz=C$J>xR3UʲmE,Rإ昣 zq퍸VZm;.1'ˍ(Py H>0Sn~`eQBKiJoVJb !F3!v4CGfM no˶b" nC"W W):BB@ !cs\6.7Ds2rGe~lK' ˶mg1W=,?w_W^/>޼d /]ޟZK}ާ4 cX٪G.׏eR[ݮs'nw(\~:Be>Lm-ǔuQUd B>>>]/W~/ x9ibvui]Mom<#;"CX +[)P"h] M>G}^NOe[,e)ǟ N}wTEjiymjKS@$Ct`tS4 9^(] :zݼ #{ChxzrxC;Zp<)ḜʷJ42*V s^/@::Z ڧdaܐ9x jr0nM{)"2`7PeDd zW<}{`lz_oCOHf[ h>k3n:ծ V csڭ6ju0>`]7meb{bc ].BS1C223)Js0pXJiwyCm lrTzu{E| ņBWGѧi[>ppvws̭u! | c H)<북2+{f@BD3slb>xl͇|0 elq]atʔ|^ki=_|y[/~r*M?m7;A7'vUױlWrDTrOϧ)^-nw~?i^=^_ֲܶlԡ} y*l<#ޚgsaR믜wV-*2߼bĻoRHi;/1%}u5(KDR:9NmȎʲm2㘓Qd>aNH*&W?!. FZw{ijiiAQU,P 1E@44B?/F0ˇo'xF?K)=%o<{.۷ߑ Ml 9yizEv޽hR/lkmuuqTM#]=ܧiWN׾L[Z+'UAzYw]D wAU葠n%iNdmmחC!w=R?R[l-벙3ѭ_C <꘭]yHmb^;:v|^Za:k &#݀HD7 ?˿N Amw>K'p|5z7Fw^HwN[F2 ֶE}|)Kv|*n6gJGawl}߫0M}_~%R6ldCLH`[d0.ĜC9gPGz951zi")"~)?}t4cZʦ& 8v,1k6MJDmiAn?Vq*0oEvzyfp<c!6@"8^7dhj2BtfP벪4Riw])ٶ,ɐ)%8OWPjcDvӼ˗Ƅ&&4 Cw?jf̦p~2ȓ"lbVd`i tffFC\T3B9t `,(EpΉ*#M9iwYz9^Di\}U?_\O?G_ rtgbRGk) 1\r1tJq>6[鷠( my7k+ .sfy[.qw>#\RPOXb 8 TtCQ B@bp@ח3 Tr# BW.ǜ82{˲m~~9}ջVڭ1\1%{Rt> 2!1;B x+@0aO|w|~Ee0n(}x10ΙL@!GUƂ H6hg3q}U)@H[ hĻ#&".uHiOa+[c3U-jc[\ErWnkc"0Ξ ?wOip:G"cH[r9Oϗ˥^]Oג?|Ze)'.!&`ض1cm;gjj<1: yM]ѧd?y23Cy_{/H` g53} uZ'cMr`"c݌jC(F 5鲞&?U7_>a?oHۺ yF$ZbɆ01) :L6hͻS*˺Ϸ]L!$@D 2J;Da[ΗrY ߽U]| R0&o{]-raM.kBF#vDMq] pC3NDLз.[z% Eva?)!:u|xn*mUP:#'n#zJg!S݃WL U]/*H%Q ¼StGsLrV"')]^ΗQqQ ˻7ƶVXt؀^joSawxxkta~~CN.$`yS|ZV<0![TFY"j`!D ۺ5Sa<n|s?\.4#c`GmؔHoAbΓƜٺޗ8bh3a<iLs,o%1mY]ႏ1eZݦzW7޺ ~ 1S 92t qD7E h.׵ҔV@uO1%Po. f@/gBɌso}!Ccn?@t]]:Gm@vZy.-tbލZ.K{y?~?A}'4p9]ٶW_'5 9XM8!4|Z*Uu>7yBGu-j$qLsn3Q5^VSn2Jan}5m<|ڻbQ[2|˹zAh eĭl}~?h!^Ȍ]@67)G4V,R˵ )8dUAFQE@CNoA$@ fH`Q򔲲府O'v[_߿D\$kZ6J3]p=/UagVe3'@ .oꦘfԥӷ.z^3[r~mMG-j_Ϝv*UZӎF9spnvއpBz-1J)jz߻hYc]>|9N{ȧ)k~_k=(*,ƐR2bCFn5v2t:uϾa:ߕi꺕|=Vdv̵V\#O!*]źIk-繖{,T90;p\z89b7MJEsW<Q4jwjiEwC uwڇz-tô])vDt>G\J<2ݤZ*2[w։=6MZ'&%l9^7` im3-b7͇wΧKO~ӫq >}x_[yiNԐ} `[rHHukދ6)aas4n:T^zÁn}\e&zӭ9tFҴJH>MxpӇRX $r,'*CsNm4{L!!{OD,l& ** i7mJFw)m4ʶBH@ ԀU"~'h[.Osus>sJ2F[dJW ܶ2nr_I$a&!1Ctpcx&u!aVl!Xh妻9̌콛QGiW[k&܌nC4R"zu[ A#vV+>ӜLvݭ1ؾ~1z>{xZj1 B@;Bm'a d k_.}7MmiKS2I# "xGh8iPA Zk! +".z9`TU%v<1ZL _1zRH#Qm|d:40[}e裭kYVDj!hjjfe;QYr# kՔb_.14sB庈*3Q|!GF̥T#cg-_o_yyG?|?ѿi}wRsvs&"1k31|S:zܽ.+!}x:6Qʦ&bY2^cSf<3^ nmt}gz"c"BmԵ C 1ܫOT7./!ÛCLi>̽4܍!$Sn}L.1rlfaaYhNBH}֪!32cjȐ:0{ QE |ҨTR|[}&0%0K1r;UtM󔦜|䔒U)=LcJLDc |Zkurʱ:~)P_ⷿe헿O͟,4zsx}y=-Kq̦muI.e%O LR*I ##cZ>s.CuiZEMNMG.Bv?4X˜re19 { "S!-Xvp7D(h·^Ԭ[Аڮ` xQ _DJ-(|^϶ wGʳc4=m˳JuUTi()w*GM2zo: C%`@`S TG`]pJ$g! y/RJj,Қ0U 0.zZiD @ي./W34ɹ":l I+ χԺI_ cz.m "GrlGV;9 a034@d S}@Sjo DC߀*L 朳n"BDЩJȉR9~|*N=mtɻ,e9tnaD"c!4.6> V:'3UnN9vPiv{_1zOeb VK 1m 4`-G;?#m]~z|kjSpc΍*CE@-8/" )V-Lj]pDfz|u+|_Weǿ~ѧ(:χ߾{'d2dwu9_ѓ!S`21))h6jב}H YELGi1FMbLyB@f M_At^.q!y&w*yY4ֵ魜5!yc 6.clm29na:nC0PSB2"*`\/w >RHnJgˉT1K>#Je,p@M3b!l搼^S>4|]|y/䃟mzө֒8޵*Q{{Qmbp;1QCw@=۲:T!@&zx{jҚ'b桚 on1GU ާx~9?}x^+>Gٺ)29@h<9nO$g`z2=Qi}[Vigvd ú=ӍctB50#CrLڭ|Ogr}Yeyވ^O"}#vsT0d "8obZwΙRfZYTÖ:L{m!'t c޻:nSbvf)1Tվ-8>wN/ff`D䃫a>Mypk4U::{]g\N_y͗WsK&$æÌLR.1dC˹H !V,uB-/ 4O;a2z1j[Qs wӴ 0ܶJRk15>a@"@* c`p3*ܨjDhpAGUEo6RVT;CxxUd XxxkYH3`խo1FR[es @dt^KDǐ sg>C͜jCTUs>i>fӜc .j rznu/"_Eڝgѡf7!:@MUkw>8din޹zr [)x;iZ .DL)41Rwʺ^{ff" 4$λZKolXNrR N@y9ޚ!#|>󦚧 )FACFckCy~|Ϧy>tw<_. \ZtܛȨ5t=owλ!8bC4| ؇y{xf]ֺT^8LdRl}80#tYLNRl1.CJӤes.QoҺ#z[1CfTCd@@ p "vf "Z?BܽL)HtYΎi!5 ^zY;Ýr9=$z-fG59 4.]^j&nu#Fy:KmN[rT&:պ[<3 i F !DC@w vUa^nK iGWخey#u8v;@IoM jC5`d!"z|uCOo_P^rnE0Ox!)*ry{?a.xrJ)kE5Et (v+}1w^ڶnbhST'Qת` !$]gf(C-+"PۍpwoH6Dވ]|ǘL| @ 9EQ0``f}t`6 8g#biET1Meyșn[?_}h{ZǏ~}9g_ڧP[-mMeƀSS6<y~~w"ye×ml 3 8CC3DB$$D$F&&$=f&!bO]+w[\N1cJ4O.EsjCw?xGoB)y]붞պ@ zoܴHkoXh Q4{ѧaޭv~:wjv5TC4PAǖ;YLT,dÃe,A<̆G_(VL2o75`_gDַ>vc rƮ;"C:׶8(b`u9#:)0GNjR9Btאܼ\ۇ_ݥi݉4!Vdvcouk-@HhH8tk []?|x9'Gxi7et >Ɠu@CBsp7*#P s cg0] Z`dEH:a! 3/˱%@ޠ*.z7Ӿ:jߥE֦]D?H^AUnN}؉X )7kyky#ռM4J;x[)9P@f1lqå@xL!S``+Fvd@14쭻{oi[&Dq`Ӑiv1Ň㩔7߾ћy{0 bF<Ĕ# -8(1q7.1Haay )Hm5JG$|s{U!kTbjԥR92RNr>MD|@9V+ :"#u CUCv)mi92C,k-. ly.:,ꛅ\em[ ֻGmY82hZEEK`6U3Zzi1i703糋?\&J1){bǡK;9!0gJo>|˿svן~7?׶G[#DBUL"S$;Uz63]uhm >Σ.D<$һ;1cnØӘ4D}~˺-W鲬k[D ]zV@y^۲Ө&"C:.>׾mcw0Քާ!6OSfGsܷ9Qkn&Ɗ] r9F? M*M@AkU#ERe )]G%.6hBnϧYL`|~*8<H]Kt)׵b"0uSc?V7%ZR݋1zY\=fZ6dM[L!v>TzE6#* :1Z1!T<ȉRj&UzS'O9;3G#wQM{RfjG~6ǧǧ~?W!go^=Ksb )Q@!r@sS]kI1EpTW+](poy t?ZnCC. r S5Sq"L)iB CtsU"7 - )E&aNn~?KZ[9/n70dA11k[cɩ]I)(ޭvgdrJ[Wjս6 #Sp*x]{]Vһ!G!eB"z̽׊%4sa4!vUmBCM)=x?OWNa11*.! &S.:p ^[Ֆ(aabW׿" 'G?*hri|z{6?ُӁ/6+D 9 9F1oѴnpS%$$i-(),]M9gb%Ef13WUQ7Ҙ0d+!Ry #U֚s";ju&MA;6ҽw`(3vu37Gwr \щ@@r0(9vsn#P-c]p# y3UqPU*[Oo=id.6D6Um;L73iS7`s@xy?1CnR=?iYk[*L1!f8wo>>o~=p݋9`z]K-Mk%0sDN)aqA ő|WT  * (y89(9nLԴH1E" Ĉ?^?nzٛO?o[hHNز(t+<7/|K#&S)|^OL{Mĥ,c<"!.Rf[BrJRt?1@jk] !annC׿|yәW_3~5QPKÆe] MeF11orLCd#}<> Pեu1}BZC0%lK.ES4 D6 !"AE!9 ӫg/vng_ %.zy?2R!>߹2U[ԫ; 8xf%KmÇ^A׫K?0ZK9O޿Bw;]Bq`pcN9fӆ9zzzv||a~pDUoݘÇr2z-y멮v"*Ua݇1^Ci!"0p ($2' Cʈ8N {1Ptkr.1Fpʹ)}V@H@)vӲ֚wMz]q+U1nA'torr1X/4qwy]L ]DPn?ڲ`"w,EZB0sU4M8f`q9^k*]rPk1†4t"@ @6 8IMФ[quG@bDW@v C~oG`i%b)Vk+DZjh38!01!!{@B(eyZ7s=L1 r$Nf98P @7mݴuG5#B"H@#!#Ik˲ 1Slky9|9_1a{Ѐ!~F~_T$t9O);qiy@H)3nJf[5v#Daډr=8M֕8E`" [R8m^(F}?_?Sw~9.r0}Jk N "{(!IJAzxsq1ʚ] J4S(}=V!Ůu@mE!1n?}yOjbZJw!ХB?j=^1)0ߍc%G98 1ryqQz7;.]R"Nԭfy(n79B#H1f&m\/ :T3ئ9 )"`8q_zy˒B07A/_1&t\ץچaTS%D<λQ(RM3f7צu.G]LTqFHnk3U$H@DHLH1&Gǧ!04ӜR~wiR^JkmK>>[mjfuYK1xUDBDbNfFLDH(LnF059$6* M&=pHiyƁ)%Pkg0r\kwDBڼ-<1qf) H8n!wdva{1Q[Fdޤkw{OC) Uu5R.₉9qqc8@޵&.)$](G04Ck^?"x|oz]r/Ld&>R)Ƹ^w"4ҵ#!vEa낎[8fdRΜDI3wkbndb &u6RӺonhnjd'$rR 90" Cp3!1+"S߼~Ow{Yr\@|-2]ΗSiUu9SY˵ @lgw )E T"[k5!). FZb)ݨnv R 1-˲5V[H1sJݔSNk4bq;:jN9{)eV997/ݧ_`y>>{.71`[ tp*BB%LSJ"*q} B釯?cɟkZvLޥtpLLx5 5U#Wp6Lco08\j+~z˓S)c$iNiFCEP.4#ZT8w;R˵nÔnnnLu]ð7j1kҥ[! n@ 7-([6W.DQN|:s)ǐºk])QR!#KRL>L#H13L;FU(0?)z|:|嗈4A.M: Ӯ.8R`2 0d7 hӮhG*)z9/IXwf͵XvY^jrmzRZ˪˩\׺VEMOBhf``c)D@vS"]DzMTE~$Eh0aH/_{4aM1 ArNV8>'o>}vs߼zO?}.8@WuwijUcC)䀪8s` @Hr\7 TDB1Zjii@NA=fӸ&Jrin)njq[kkLK0rN_6T{hOgY7_|M_T9?ji[ڇ{sH)sʡ+1Z"3Gwp7R߇`is⪁i?)a~S_pIuY9iެ?Ow/03&z ;@Rvs<.G)w]L#{+u] 0KqR_帛r9 r=?r9=Vu8B 1 C5Ep` 11Sro4MHH&[DibF$S``&y16n7/Ab8ވCH#(00A}sJa{7 hSU\]vS{xݻi8G޽Ɓ9xx 8,RSid֍t2wMA^{_z=zmybRsZe9-y-^,kY9 m|G@ cqw⢦[oK5qRCJa߿|}v]y077<07Ϩr.t>O?=JRn?{O^?xySb"kҺlw]<`$HDvun k6F".-C`R182#"λ h]C f8Ӵ\V:s@@`cZ*"[a& DC̽L 814r@t|,ݯ_y/|kG7>9 ޟjU4e ")c$&9 :;mYfLTU8LX?=}[[f߼z˂Lz{W$eD0=&a8|E>rELCL# #QyͳgaRK]wj=Đ,kCGN) ,kk<`4^(Dup K!UնJ14!aDk7Nf2vU5ZŜE{7]${tVtZ6(`)iLC"SۂUx32P`]N3!PL1QI)l 121}wLJG.f|˗/sJxq2TD Z8ߤ޼)uF w¨bcOR[&w.jn~xxa7_ ZNb*fz-ڻnȘ ITϧS0m; y덙h`jbZKAڶBc6sD !Z@DiT,Lq4k9۸s}W._}6=?p|_EΏ'-^v|x/n̚bd @ qf iE ݍZzkduo<?ƯKwTp{g# z|jaxC;u)ﮧ4!OށI`<ODe93!\֦e=~Zf>/´߿|טgfyܯ(FPiHpng+^Yz\%DAk i&"a`c9N8ތ?y)U dľ  TT] =R8xY}"fK)1 r9q 8l{DDFmd !kbyH[W[nUaPdj҅HAE >ftQz_[]Ԏd}c|c1#*"8#0o؏8atw??'}|u qi*9>|yͯ9z׊ :`#=0)1={> =ϢxI 9}0E;1+10H&]Z1U"l]T I{!<.yJP+B2<^YHYDϧ0Da3lL1ti\C0 nszش#Ӈz͡ CRS LdfM:q{_7p7~?˯}w9_j?rr:} J߾n_{.W)1 *P R0G )8 OZiBE[Rov/{<7պRМCO3,kg_ɽ#^K="G iNG21-euDCޱH9BW_'~DwvVtJôKoͷw߾$V$s 0')4 @D)ѐ:aJ Zu hP)Fc01@y󟛫\"7ZV.mj{t0hk][40Ru[K19#1Kւ yzSG)X^xnDQܢ7o|ۧ$g_OOoyӓ 88Ǵ53˩^λ3˿zy.9NOZk}- 7 ݐ7r:iaΜFu>acdӲ[kyw#2Zͯz5i}:߾1QD!a!Ʀ=f}xfzc˲35;fjPAZp0 hÀ_3 5deHtΞZ~8*Y;H r:C<̄ ܺFZ {U zai\U9k #iyt5cp<6E{޲kӲem0a0:yigW$DpFi?_̭zkvB@m7ƹ\ *IRJem֕DH:I`L vZ;8p7oޖ\.̾l=j]{i]7ʷ-'[O)&ͰGH_G|r=mﷷUMzd$x?aS?Bۿ~||}7S~B7n"@;42)8D 轰tSC?OOSumm))=X[-$z$,Û2L 8B}-]tq3f^ksb1ͻKD P7$"^pWC`&\@J:r[nZy-1Ȓ! x|*|=ܹ|f}6Cf^Kn4W?7@ӾVJQb=ń6NsYm9_?tx'?~Y5xӔk/[2L4ozチӛd:Ӂi6N{cK^nIr=i<>>W~S8k.6 CAb )n48~=Kת$ ޳.p:LlrEbVt$4P FB&hc ~/LUkbH)RC@JVBB[>E0i5Z1R $ն޻ubhi/F=w`"% D P*@ӎ"s$@ȌnP:d|9 mDv +}g4sSK!}:7o~/ |J@Q$!G޶ B&Fd7axw&3\ǧڲV·H|&B0*k뒧)圅C3GӆaL j(;#n9 HZbHc4fjCnh4"aAKqK!hDr\Ʊ!OQ[f!r]* >"%9IHS au ) 1i|Yʭ֜1.v^pޏ~͏!A-06gdXn4ffk8^Kqa8 \QzS!ITջ qͺ38BU6[innj%x`'- R":9H`@Pn8 \i@U}<搗ܞO!Bs3q/ :x`~kЁ7v<=G榟]48Xrǟ|xT-f$"v>YkW]ϗe"m͇D ≑cH!1wo+l4vfiU۴wڇi "0+3ykmkk)dD HL$R"RJ]b0qǼa%9Cטb+V%n;3H(ff}^ Ja 怭2opXz@" #2 n ~ٳz]I1`?oo?|)ڙww?Zm<\ΗkYe]eEbY u5C$ぇu(\Z-pͪ(Q\ aĘ){4 DipTGt0p{;uD(Ykp #y]k@ޭUXWPwuUhk1+ZkբM sϭ AmB29 aԜA{2Hb)8 ^jAR6zkKZZL)yA?:oǻ_s :J{#@w0ЭaR}@wλ" 7CVkuso۪ _I՚4Mzh@@Ƅȝ1EyFJycJaau)|k  饹RMӘDHnDHmQmk? ܵ iq*Ryc1skphֵVG еCV2LZϹ[3K Pj)֦4j-km`oѻ; "V׵UkoWo7;xR爑02I!AsXzy C̗p>??-4mU[!)F&C:z3i?|]Uע ![&iUXigZ8ā!B^MMkVZ˧ +cP 6>~< nj靅9Ÿ#DA b j!81ݼސ\ 6hj| $RW[hi\fDߒ`oc!81 B909V| Kø<_Ga$jJ$4@ȑj[/~x8P~w~A Z _;=,@ @A#8q\!y?_SY<yE C[E]v~vy֒?}xp~47 ML`LBLDA |`p͛ۦyo EHi%F5a9cL[Hqe\J n,)tYе3wa>? v[Bj02Y-BkeEf[r/!! lny]̷hF"n]ad!9upmk^ 6>'j;p [pQ;b NÈ@q}=}nVew)?zڴeXz>q)<0?hawW^)MCSm>/X[mV~B NҰ c$A2AB8{bjVrMD 7(Б:YZa^^k˪n~cWaT#ooT!p{;h011ZS`dq489I:)zզh˝d ! b`0 ,< 9z@$=LM\xhk]fx'CHaJ c'S0LΔTZ?ץkc:\x'DoȪfA zGṔrj>@D@vlfۘLAw\J͗۵%BAbLlN0t^\:8$Y ik`k)c/m5Mjm5zLhbpcID La+jOzC =JԮ@Yw1_d"bdFGWD4uzf'#WiHCN*%Hu1׈ J$)=~tЭ oZ)u50;Bp)_.*j]Mx7MӐ"uƲެ AQhNu#b+b tUBtvqfP{4eOiMdPkVNOϽzLs{Wa`b@wn:ƴ! b BaH0a)@լzs]] )773@` jޛE1tAfA !Ӗ&h!dMYB-"f4i7֭eh.Y[i=vVsk-׵y7WGT6CҐnBWz; 0 7u]͝%j8ɠ5v0bqYj`r:D41PZ茗 c5pCǔAEu 䦽5Ul h` 1>LaN,Qx8C a)x~PB$".(! E x>*) ;[=g[CFnn] Wn^Ͱf]7UkM[{wq>ƹ\J޵Uf["vfJ)I"[YeLk.VZÜXy)YCFvR7bk/jihnQe)E_|ɷ !3sU0\)" Ե-If]E_rK:_rEi>|`?_ñt^C>}(Oz9v&voB%0 ⹆Q!1uY8dXV^.Z)"u@G`˰sp|7̻44Whmf=cnvC 4r.Uz˵SC$gٵޚ Lͻ?1^o;0\^kqIysE4FʴwQBD1))EfJufht'%kslZQdpO[-C4eSK3t's,a =8[^.?~z*6,,Da:1 TOV <ԌOH_ 믽[f{Pkַ0vunN)Dj^Q:#!R]戎@Avtk)[":x$" q9CkqSs0mi~m&K$];oRI?`N/Ra|)nP_8S|y_v%ί|($[[Wtڙ:uf4o@Uꊪn<De^\MWHܺA`  "t'qJi/m)K.۪z`.$ЛtGg@#1!ȁ@(ޖ5bbBd ͭ][9׾}Y=k˽^r;-󥬹fU8 !nVܙhq;W[PE Ao|i^?>0R0fP9NqMXkFqJ)Dg!;rv%Wڥ)ryqtY e`0'°\+~j+7U0$[12ED[ 3 D㸛w1 r~:}>}wZ(E bk?P `SRߡY8, 66omf,u s "i)Mڋ7 22VS\DԵVN'u[C3#BifS 1lM6W]1ZAKt~I7v$suP7HMGw۪Nƛ9_yJ<  ՛Pʭ?c?zsބsq+3Yi<d=:ƾi 8+?]FT˂Q[]U j[1sc"ā E Y@Úo[E5 2z[^9ƐXa@5/N^kItC}F&izOmmr9TբHO|fwcn04"!+ODLS9aYKϪEXZsluvӚ{Yj^Jͫ2lμe1 q:ô#4tHvy:ko{V .b!!2SvjY.K)$jfꀠYU-;VZ#AM,5&I^4G%re Qjm<к̛~~?߿zB]9 "rD @E0n?yPPK;}x9@ n )hUMbZeaOq_W`o!iֺfEceVuCIfd@$V d ~yתܽr>_Jmy7## vED&z`Ss%Aaq1 Ӏ200:3#:",ܻ!K:m-)ez`n'GL1U!<ݷrRVxo~7~g_=Kv4CV^'5`Rȵ%!zJ)2[5 CuD TEripr^i99̒$NziG I@Ŝfnݼp]z^=_eRzvyR*޾S|0qvpfH)ErrGUEV; qgs[ֲ4K ^Vny]^n}zA91 4v4G0%AJ[z-OOW5T,ѻED&@ e#)80JӒbpy\?e\I5\k9 ?9N!4휒*|n^[!4cVb}mc ^U; 9v% ,ӽAEN ) 8pݿzu|ߟ>=o~qJkk5%p $8"3v[ #a([ֺu@3wW-{mSZ 9C3H0Li1F ,,.k-Hz0sZ!?_zy ju]nCL Li v"N8"D/h-%a _1?|C.Iyzz/nokvk! J9yςuz:[)逃j- juA'!8шzS )ZЀĔavDqLݬHq?E!/N'7y8zskd]^nVSW>Hf"A'a/Zo$j}>Ks0@f?WWf-UGG+\~^:SBBf}im]*͵w{Qo![_k[Z/.R"D V 鸛!= i7f沜򺮹 䭯%heyVi2U;y??S^A;~G+ C}uv2 % 'fȕץ3rB4NAD-Op(ZO1$>N1D Ca~]gU#8 inH!P00=폻yƴ?NwqNn4ok+7@FB!bcYA* nfS k,%o5Q"qꎠj`E@6XIZW65};[R{Trayf!ŗJsX5"hͻ104O{S^Ku}b"Bu$0 #&MxBl_@#ybW?vLî|=Ӹq=p>F7W(3 |qQL\x˺^>VWB9rl]CNCJ xSU 7AGN`8 "S ^zY҆WwbL,?r^֛ n%ηHft-@`as}%"P.OU,F @s/[\rwJLR7jMBC6vlȝ{֖[rk`S|Ƴ2a844pb٢ҼOgf6@ּ!NG0<}z}7>۵k&0&WۇW; fjy-kiq]Fe#"rզ mt<ι-.Ȥɠy>)5U@@+-0&C޶1D!$SJcLJ| [Gs<^z^s=DHj(Na"Daʥ*DF\8VGs-3_>S]s<0' z[*#/WwJ(mmz0$SvIq wo(B˓ܴ)e-ֵ3GޖJ@S$-u|'OW,e`K.zCB혎L >\{3&Ad@tkK!F;ޗ֗jE[izյ*0TH`H.Be{;~Vڪ.k7tafP+ܽ~]՜aq>2rN4 vk]sf?}}/ѧ$Hە`FiK113Bwd:8'&Ym4G@V°6 }ځ|!CƹR䚯òܺ. z1k݁AaJn/<Re 2$1cbJn2)CwsR|}>{}J"kW_\<෾er!&VTmemfLE7J^"=Kof][Up%\]a"@UYšK/ڪe2 I9ЬM!$ UUO[p!HXDH܌9lNqč" B$ aa&"bf"ߝ>||8~Mˆ\n~5 y1L!-7=4y-'VҸ>9JWovB8<9~Տd>~.ղ^":4J- ]% 84Γ0cw??#u˭\zAbL\?X)GfwsoK1Uͷ}?$8?͝\@}Oj|ڍȃvD5^o|́QSk5r+-߮eYK@!x6Ѕ$zߍg4׼,2ϷCj-Va^shm7{n9>w?ͱ#iץOSkVK_o[b!,QÛc4$[0{~6Aݮ l(!*$ 6#C Z/\VLw)=!$Bȁ- p7GB3aֱv9Je/nj]iY=Eę1kP`/' Z d[$1",YvIAy掽;jrU;xk\fnaV)\3S fm"87UTmjH L IZk:fFb&B"HXJ2OY2{=t]7^Uj K5(YQjCcPBi6mzFcU]TŦiYU 4wT9oK½sS"!?Z#Ʒ/~umT_谶~|9~|7>}LHZar}7ݿOr~]L]ð:Ǹ ލ%[iWcuݐۛ7sj{6Vsf&P)bMT3|RTBn|z)BnI˅Р^`6M"c40sŒ=?k]Y^Xnc'K]鋎ԞjCZ怈c ]WrT(4^.en(VVGҜ@ ,"/cDw}~su=;GbOyg1hS00߼I>͇Q*4SU MBmYȀCߗ[_O~\pw.O^%w<>rQ^ 2^wn_꯹{Η]\%Vf紤^DO}Oa7ǖ\/6ϔBJޥo\Zw/o~=HE&<:O'6PƷ_u/R`x>r!S1EB'-6C/jM' 𜡈s@4DUKG}s0T-i|}mZ]]w,(Jy>t6M)ZUwv5PGjW=02H6mŌCH[C4#w>1qp>8IʅOn1p3yH zBRw4ݿMO`!m֛ZZ.9WPб3i )Bk!&t4R޺?/4mnoV_ׯ^Fy,x.p=<'ER]/^,emTƆ&"=c\CU1Qa"dD$9 LK{;Ḫb<<B2"Gb\mM9$BspҘ9K2_)S:o藿B=RF`H>|Oo{&Fc7lZ%tmmVua[t>wl݀ZΤ޾^] ;;:qA˭t&-Bl`)~w)իwl&| T9stooWoOy>T꼭SVCIc~SwᗿrOeA ~ܭŷM4|/| \xnU^vG&4ͧh cK@FvmSD ~R˄Γ8 RǰE͎ijHK.ŔfjΣ!̈0@<R+[9`d] ;t#Fϵ5)]i<[e:w MHt|z/ܪ"?\ݼ/XPؕoMf/ꃿi18_oj]t 6 _m'0[_rqš[mR+b*%[9l^.8xU֦VyVQ*8#bխG_R Uy1heb -3##D֤DC\K^*,P:p)0*u'n|~J])_ݽAFU#9qSL0@9~sSl7:%hzJn0LKQa`^|F-Vz5gm_7ܯ{SgU"V؅ y2G}ʆ]>cyx'91_~~U;G,UPjJ3`Tŕ83Ҽs]*:h؊=VռtSȧZHQbW\V+vTٻT8]TFy9"  s^j\5`)ẐaR( >9:j-&|V+dBviH>xv,jf09x.MЀn uT *D\E[0?>K)sc$Q0n34"A2g8T/}e.4b(b>4 ]7iN}Z2^dZr< Aj_9a2SSS۟NNg9{+dUT4ˇJ="/MZ]6BZvBU =-SAC"?ϥJ[ !S7ԶYZϝySEFy)X%]9G̀h4 r{4?^j1 ylgNmaGyQ߽e\ueő˪/bS>`J~8|.޽z |w/~|B/8N{=P(\4fk5ݽ?Y_[s΄p9|?}pO4}z7>.Gsbs߽xٽK%-O}TlC(w뿴aEbv{{o7=.)Z=2g*U6CC2 @A߅aSЄ0E4z2*"Iȯu*M #hh@YcZk*.J=|#^ /̞k =c`9O \l֚ O)OҀsd)!~ rs2K!#bt3(W7HϜj[- w]fP'-|x*&4&Rhj[nЊ1HE*)\\ ~ ENs)cpv _?h jD@BFl0nRӚDRi5/FnJ]_[ )b\ {_JR26,1yRK!61@QCŝC1:Jzg oJ{_p.7} 减!ʿ(٤ Y|ɵfjswsͥp.c>?fJ(rkX:}̗s"1%ˇovHdLۻ><\>}3lݰf:m]>=>~/󬇏];qCe:ih>ͫ`r9!1\y?t:F|%6qJП+* ,?Mf甠Rgri)8tlfFk@l"<|ctY gӬVՂXf7xؤǾt &r1ZSYMSv"1u@\3U1'.mc =Ny pp@#cHseo8_򘧢B͕}C4ELj6py"m\i#iLSW@䝏k.p0RWR'|BUhD] ,$Ӕ'=#@#db .c/HX$3blI/g"=ezc=}?1|v5]N'RL`I TFw{ .䚧AQd۰-1#mvاWW;&'""@jF(us.! &-]aX=_is>?2v~w֫?2;<|D.oI[0g eU}%1So[=y4C[i?fwG}JMנr<~jU$8x8 4^|<ߕz|P@(uimZgs ]׭z.b RA|~ MИCsޙJ4!i|.hP[Rٸ)Zf" ˙=K.q]\H7[s}u ynUuTr6{/i\vZsJl|j<'fkHi)bp8VKݼh6М/R\ ŮCRs# &6ݵJC'e؉ uq8 ~#@JM .GM#,uq= z+O21`f̞jx1FB R牬,R|<=?Zjh}DbF$f/{jm&hA4SZEDTt)G0S03n@\}6X&~V}=` wyg Mf<_N{ΣΠj$~,g]&T3} umtcL˯~]j>Mf4})>"w~4y6ii:wC,?/cZԡVjeVqy3|p8gkϸut޷V8si<Y! H?soޱ#.m4oX sQ,T}&'~\ ;8g;#!u3'4O8r4zGشyKj!6\լ:QX"֛7*j- L c. Rt}lnaVtb@.7P(ErVQsʜѬy4Aڭ6x*P^vHߟ?KձD]Myh3XhY,}bx)5j¥֦C. R; %n]γE(g(r r!v4Mr#i( q,taYj.6yӟf~r-@rsPBV9y5.,L2"!:vI&r:C)S)u 1{ԬժfD cRy1G%OU IhIϟ[vWkp:I]ކ+]D,K7ʕv{ʒwSyo%o [̗tn8&2w};z'!F߿t:@DКK=?e)޹~:ȩS8/_ oy]jI$p(BHVN;2 ЪV\˹ȡCYrH)!~??| 0tif{!{'ʎ 3w-gk-;틫s_ܗ=<[-*r"QhQs͚̍Z@SӴ;l2[.MPLI<_֛:UwK{χ%|ޱIk?  "s0gI^ SXG}t|7t~Ov!#ZCfޣ,ژɪUX>-:##&19u86Ә TJU5efUD!"Uvf,-p&j!`@f.Tx'yJ/-śʙa /0}zq{cC&v7tx<7.)؞U^T}T^VOU*rPy8F(Vm kv.~|E|ͦMUv/f=}tkJ;!4iRs1Y{~.ƻOӡ]f ?< ,2CST*sde3ԓs TAٌ@=hV39HDffm@:VqC,P:V΋f@rX1ONlم0WdOёN24֊>?X]@F Myj1zo qDDez|< {L |əz )mUM'd:st/I=~ϟЧb@Av+q]F΍UD~|81v[2<@OCJ?򋫡p+l `  @\/^wD __ -7Jh`@AJ7o/׫.w 켂:$ULw;~N%DvQQ!"i_fU2-1CkjVA6Smf n YL \*Oz*oBq< O]:<@Ic*?t?M8ix>G^و>Q:OLTk%fՂ`taxV:>a?xszNIL*XbCzjiGĊ%rc)Yʄ y2@CUR(~5I}O܃ |`$Q@>Lj4OsL)t UgH1tҘ<+foTXytI>ɜ'+U7LJȸ #Z3+^ sk@6NR@/NV)#C2y:OKÍ2n6 iCiWwdx|#w7,l~z?']nvAsD.Nb2B"bukme>=_1&`i96_.xΗWz#qr7? dNxy:Db_|akCֱ$*eTb5VNT4Sl\5 eN. 4405iӰǢLA$\2~V/@Λb[VxkkUu_(Ә\ZSU NSGAMerSfǔZ,FTANz&IX:=H\"ݫ\̮߀}TͲ4m !&J J2:L5ehTN!jϭJ Llу!%u0P)yVQyij|8LOыw:VRȰC WxOsܜ|+RK>ڴ"T$X=J\&@u1}ۗίB܅x@17R DZuaqǂvN<`6Z(dm<s?Gے~fkM $h"@HS 7S74& CPne{1n"4ؙU"! 2kZ_}ޢ8!j= j9g$5SIa(/)tI~g~V5Cq=U+Jf"ۺVMSlb>ʋL ,_圖ʰ[=?w[!.1Ulô7Fݐc|o"#"{'yB`G>{! b 9-(.?;?(a?~톁X@8` VD#eK߾=O+K$Y $F"uQnj\ftIx.JǁkgOS B\eC~ZL}V!Hn߃*&Hۯ jf%jFO<8A-x,#@mlJ&.QZKB֔HHRR %.$\5.(@TbB$D`" "\J"R2UcEu #PI/*DtDh}~g/ouӪMWzJ[&Y[ziO47_VJKHb?gz~(USZhDm=_g7*iZFiWfxvŕoNwjyU=`If~mAJHƒ4֕VZ4i3'D m*UG3MMw= ?|7d]E22 1crløF+GTZhkWRB(Vsګ=tT;=4 RIhWWh_8|{k߬Wfv82!=Sz6;c(&`i:8㍡ƜC# rtpQq:Z늀wq5:lFRBPFk͐R>L01!( "H.EgLSJ wRsza ]{خ12H1cQGѩy4aCݒd)OA$X!YKv%LݡL[W&TLC[kj_קgf1V͖2IR[5|:Tۇ%$EcƔCȻ}! aAQkǡ+_&H1Z"&a Я7nNt^)-9Eb&T$ 9z2VQ&BGv<*N8y"diś/ϳuܜGq #7 w|ve,^%SO{J"EKW/-y}wa ?'hvy)PZD'%9Mm-rD\U̼i*@ &(.YrFbvCq9>ø~|!M*!nAC2vqڑ֪T2eX\\OWjEUv3QjGEDqh# ųn_"Δ&&񰎌~zvYݮGdnFSJi"yr"Dk[5SW/oO.j56+f2^+V"Q锦YIZIMmY;;yJk BmEcGn*g4!"-H i Btܮ\"2F#)ǩFv>L(T CJk5k꺭DBnQ9;aA8YTS7˅m 8Bʂ[f) vk,}?>G̑IIAA)䴿2XUnaSKiwuwO]e'Ȩ+7ܯo7ݐ`8GA!S?>|y+2'˘2h"n'qխ%c_as=v[<-7c2V᫐˯j?zZm+Ï+"I?qTR "#*xS *ֈ5Do8cZUsR|z@mowOO_2FWЧv($ b?vz*kgsI]bQALA2]< uh 4=C`i{:cr1Zh.Nc, !VdRc Pfm Y]WVR)Cdv5QN)%hg",AmQmη&Cvq@Le9$m fi >;e>TI$@ZsIwaH1FUy&a]+.0< i[bwX xX;k'w1}vSEXc`rKf =)iזU3IL2w섅{6\r̢4@F?r!<;xB/ܛ7_/tviCA'A~:qa hRCJAbaD$"!):kgDRĘrFQkA9y;z(OB,lDM>71:_J.;r|{{69\Fgt,B`YB+_a(a̟tQ=?r·mhL3{+IDY텹dQ^7UC2|{}iٜ,Ϫ6NlI-Oi\gjNu`TuS<ק_#z~6k|w޾8F}evg@]7Ca8`"ˮd=c"e0Ђnk,veGx^oQ!O1,2*%bTS)Ym4vޠlmtKt]l8_\m)øcSϬk$a"!CvY`m/^}P0''91N)+.b糦6}gNlhs'JS0VJimyav>3v Rla(U^lh[a)XzR[\ yC`璧tح YbcNjִw!>a,ɉV" G_o>_ϚΓ]*,ňKI._4WKB/O}#~^"vs(PX|,L_Bc&$U!-  x^C‚Ĥ9Qkef."t;)500cqʣPZz9 ̰󗗧nnۇgo~\[SwkF<[, 4 %GqaxBGSP|W'_; r0OY^^fgUdJYa8\8qLOTDd4`ӈ4#͔LcӐhUjӘSՍ_,R ƛַ9'_~;rU/v]F\B5kkk%kk\>u2 e[c"?ܴMD{kHq'fM4gֳ"rQ PI hkbXUIM3־n]TbTh J[x\f3EN=08jU/>log,.nY7ߜ\h~\If8WZD%Gcy˓lcW5I[6ըYUf5zͽ)qf7ß~8v׭7% #vi"4YelI% vØDoFc׶nv:m~ u Sw~MH1ez~+?e}oEmf1'~Ur[^WrR鉱)Rw[۔"`)KL Fu.#$`="*QZlps1xEqx@^I"eL{?wwt/`<_|txPʇamkRbҶPX2Gr 0PZCByU~!%MӔJq!ȁz c]Ӌ"Sudu2}߳GY-+,YX$U*$)E\gr0BJtBʵ$Xch䛶nKS &"]*q.FY4\è~äԤPb[])wOpNQ,*BGc|qqMZUj~f͇?|zuygdp7lAT~+p1w[~CGN0E aZD q gCY;,A1Ɍٲ椏S8*{*$4ï#( EeE\kQ[Mh(뵩+_Y)33R䜎`=E\Jά Qnl$х!a ~L_|\O^^_8l=׳~݉wm7鲵U_ ĎghcƘKA J0#~s>ifLH7Eiʂu3m(oT_O` Yl;[gb\FfCZRX$"\R)1q)4_ 2*1\J*!eRI!NӨ8'rpJr8CMS5{w?Uʸ Td٬1lV!K6sᮌuJ[0~E3mDXLй?2Dy."a" bۥ>`juEr1djml]n0pL*Dw!nÏ>ofH"#Md|LBD`k"ƒd)pct0%)Lȱ)*r<].Pîe6E.= JbcqІZ)1i!fID#֦U8kRX@$Pa>~Ǫ:要9gm|)˻YJa}>Tgu~1W9v=ȱ:с% ֈ9$"O:G:Ljs6i_VR~լ0Oi3+dW6]?U篕[RJ0fTϾY>zƋdmo}Ұ05iu)a_ݤBZ*yb8?me?G!6>Kwjbf^17jeCy+G zo5y.%i@i_/Ϻ}VU#&r("Zh*sQ9gb!6*嵲VaM P80<[!;e|R1(WJ)vCo3p^)Y.H&Ii$;Rbו5>U'mS\eI)fR +eҘX& X6nj,D Z(\޺ ,5TQ|2,/)a֞궪ۅM5olҤr YOyf,vq2{ggDw P#cn~b^\g/* .;W( 8#'.Zt0}]=bd @D#IXP_\߽yl;Y.޾ۗC*2py x= Wi @i#L^d) )E yqy)̥3"=iOh#"c(EPi~{]|~;;u3M].{kq|yFJEy6WZB>ڜ^i`,;5zAƯv1e?a.bܭ1lgBͨPmIi}v>iwwiw=Cv]=oqMvО]50NOc/^Táwsmнwܗ9=?% ǧɗae24 Y qdΕR Y3kڵMnwiv%qBZ)9WF.q4q)2+R*zKe֮rF"UMcD:G@slR}4H&eдZWLlfg!'2JiJQ[ᘀA jy=hĐb7uz>U'F]  Nm4"WgH*o"2N)R9D 9) m5N1jC{tVZ ӫdCQIz𰏇VTԞzp}IW/ظC9M.ze5!;d2R:? xQ#癕 0Q)`,^<"2BH|eW/Vr,g~HSrXq,(AUDsumfu;y_cH)8:J8*Grfcbt5\eSWk)Vr&?[lZ-OfURUg9Gl}r7u[UM%qwifyz΃ ˔6߁H$6֡JmuU{MVj5oѻT ޅ6?lQY.|WoOiG߉j_-f=a«7o/2٬_ϖT>&BF."O $lz4>ZSDQ). 9(HbClظL=g.ᾞ|fz!; -amX0D) Z,t%blJgҪJ!! 3 iAR@涄0_hlU %owWQn}[nf5b,P($TmU@+ (|R(%xY,b.1j0~6nɹ<\0?pj'Q`Ҹ ]w7!۸9smc JR?{E7ONTt@ RSDBxp1~)m]G'񮘁1 "P昞 X۶_^Tw~zWl=Ek\'SS愄RL@93R R4Zf %J~%6iR+f%*\Ζ's2L-u-Ɨiws_ovw֦9]-^勯pw݇?iT1VӶjL]ۻ~sں=mp{?FD7^֧!m<$QP#" y|f:o^E ~W⌔nqWn 8+YYDΒvچVׄyF;1Eb1(/NZ%],ʄ8YElV6dX_if]XUV^ q4 ۇ  Iw-NgLN!j!lSΡH5 Xjb 7 d jqLX (fUuE*@L"BeMpA0 90%b!Co9qm#ԗ%5"(_-_IًE/fv~Q/SP)B|l:~MCS |;*!(q'K;?IY?vb?fg0oW_?>|vvՙz)Y?;;e^?Va8!ow9B透,@)#y ՜frў䪙_T^CEڡ8(ήUavzɹןUJ.lڐڔrFk!" )R Pu nV~aK)%c%8zrI_ ;,"[z9+M")XQYkN~")1Y+9)l1;-l*GE3_6m p$(3_֧{d\'Uin/}\ i}ix]D<ӫUs*5m?|!pQ'9Q!v{.jV;]`GJqba"~b +@ʓ`14 ?CQ 6fi=ܡŹFҠw ωEXQziv:oWۭnuzR5UNY FCl+GND<"zI:o}w)#}nbSdф ?__2mɦVw9+gy2*Ȭg!%hGT,t`Q2AKєɴ.%8Бds}뇏KS'yU< (i2strMF#BHdː"04,f*@N.!9B~ߟG8Ԏ}]irg !qF8x@ "Rt #"9}Bp>BU (-OO:7v{nc0vzqr6+rI"Ekʅγ0QE$<|ǐFm* R޼}/Tyo:}sss\q EJ)D(YU\gd}0l2a S&MKB`@`2^\;i^IG#}@N$3S'8"Q fM9#dn 1_fpnO(6( OW-DMDB+`$Rc>L\ȐBy"@dCÀcL"1p3n >zR"`B#sbHYYE+BT'>FĘv Ofc5Sݤevw ҈ĔqL\)8* *8)_{xބɿ|ǩl^W77%ʪg??yZ՚d6&Q~*F#Yyk]gg7W{aBBN_!u6+hc=_m X!H™bV/"3B~'kyBgۮۍzcp1J!Ghi2!ٰ"uLQKOHdO7M$tVG']FRY^d2Ad9.z>v׺,>EQޏnoFfWݙy͔7b|& Y^М&֧Gfyս*O{5Izk0U6͎.1ۦҏ ;-Xw,@bFR HtGxw<@p9?: @##`'DāBB4"jUUm*12bEm"q{0]Q̖4^~+ADa7SCm>ner:ko./y}}Xo{?n= 8Yx/NO^,2`g64_m7, 䌮>o~GT߼mHi~(PٓjD]eBFĘo !$`6Y?3HRXmB@ d1CbF4|}(b`I*A(]FkUnQ"BJ9irʔ|Jnr((cѬ,U6D$լU1»H!)I7v!5YtHJUUh)vכaF"ơoY)EvwEUBiH-E<^$ds1;Eġʊ5|uVk\U^-Cp ľoNZ?<۫0MjTQJr@RYTƷl^Nň(d]mߺMQiFp;Kj]Ķ aBJ -K;p l:kB EI춣Znl/ݥ-Ï,Xܡ!x`(gbLerQΊy@/RW(x՚'BTBjA@ENaܞ$8|~DhTv8D/} 0@qW%$0hZi%B]S J?m'7݄`c;\7]{Ig+1?Lr>xjq:~6 գjuo.7!/֏'Ϧ# ?lL6W|ڵ{0yfLx٦q bs ,rS.pm}2EUgOO'hqo~;; Ը3-RMiVR%pr#/z`:+sjEӎW/AgJRlP EJNjC&RgJ&;1pVe&/ b.tF(g y ̧q$C(8G0v7^`i8FAl>MSYV}cg1X!2Yd}&c23%ZJHA`VWkɃ߼sM#ۡu LXeDL>J 2 ( VqBSU!5BsÐAO]qLQ"DPFY=Ԉ$w;pX[L/ݾg/~} P)8" qR& EQֳy}9ٟ?\~<?<{RTE4;m֧v߈8dzuI%b$iug>+";>KKvMv/f~7nӫoV &l%+&q&1K^(=k 2xP&P uv`71D1ɣܷ[!P2(w04YkP2Pʺu$1V`JIc2 S@o&HD=?X,+ 2ALΆ17 DHPH`($ 1LzBUٔjQ!^m?X-.Y CU]QY5{8FM~"7)-$&ZhLo!پvaw{ZR Q'E.2eIRDHKuٟ-|UW^V$P9icxrw1MOp^a0@vLF'Ք6Ðms"8xQ јØHxSy3@8=Ȑ.xo|0t5O=쓿+pHV`b@G:tXJ&9zzOۦqԌL0M&JR"n)bx BUnon[2@a ѣDCRdLg|Uj!3\J{7m؍r4U/i~}fĔKtD0jX/sIOUv/ɣ/(3E0ؙ}hq5OңA٭*/IY|36Xģ#2Mh06jo^77:g_n*8dUF1!E*BN(Y{P$ ,(Kܬ槏' q] Go{-s7al>t!9w(SJ!&?8eȂm!g_~i.MmYǡwC~LEY`bA, R`^(SGbH1oy.]}T:{PTG3?M)T>ONʹF?1tuJ8$/$s)c6xMcnʕ.D=l@@@D 80F<\6q@GK=Wǧv/qǣ2sHΆs`D!غ&"Dg o78RbHsBwwq[!#2~4|[ڋF÷}(xP !)YY/22eL7Ѧ}VmK9&lu@^oG|YT)H$gg*(M\͙/d?oBfϾoWg'mdhH!Qώσgyyi^LK':YKTx}M:Eܼ~-D?}>ǫ/ڋ7w7~х"v[; %p'>”@%>.L<2d %JճfTMS-yatA qUh0!c^B@G9v]c>g΅~7#].$1FƩ bUZ` wS'1$?IlnXhIԴzxYw˲̻ټ'ϿJ]K щ%:{lZKUi'2rI &8 ڭ~|v.nk`- fǓhu蓧}376ptW{=O?eVٸ8 1EON?I핈}eG!8XĨt޷8]qpchRf6"}{Ns $#9̑ ޺xĀ r@B4 =O~gYEѸsD#[ݪ01,<8@Oak]X%$qdR2%%IA'Őη[ !Ǻ6Ihx1Z :>:5U~7#m:J-?ŏVEx(/)qǺ=ԍ3#ٷ=-GǏ40[j, ղug9{TB|Oy`<{m"{Z6Of\Y0a[ݾrv;L,3MݫyUŏdy-핳10tBRPDaܥ`#-'tDTiDCYYg_]gk1Zm`*fCC欜MV`O  `UbL )ihwR HabH'"7eQROʄU]j)i,57B^TY (#p|&-AJR10 f<#3G6:OV. eՒ2R⢁gj5~옐hzfhƣ#׵qDY.ȸ ~$)m`,3F g8L7}Ȋ%Ҟc 0މMI80Dp>X͏9pVx;- 3tZx O<`p&$MƊYhw E&:#e$WG,;/-ntk8d9 >bQ.+vIxaD} gKʊӬZ;ғՉ(r8MC}9zֶS"-]n85O7_|?ۇtm~ĬJ/+~T+~x?|+櫇BkCB"׆#E$R&˕Ft^,Y\?47mR17vNgyVRHL"l3 EYeEQp˜&N ε̪N>l;7Y E4{ CY!T i0\."]ۥk>jtSn 1[4]9[he$aջ?aWgEY.|^i}G*kISlL76?K": ,4&(ݫ,s -P HQhe̍B!ĭӝ&}*N%#z{[]0WH |u1pL̒ $"NU5LN("3CrY!(DzqFjt/\a~緗2Gル?__n?]\a{=pZxxGm)Z~=xc$ B1O|/y9^t͞1,[wJxʹQb9;Ji.W{=$1ՠ|u8P$]4ZR>_謁>Z=K\5bwyv1Ѡ٩B HC8j];''ii/cB7%M\]2 U]mo|$sٹd \H9FIFA(Yb~o Sn)"?:r.ݰXP3~ul1)R'@Gj &/ȴI,]D,)!w&Bvwx !]Ċ|] ȁSh .f3%|رHY%0(VEt bUCזURJcB?d:/R3 ЌF*8qV )U+BuC^CB\y;ao)`$SXflGH)uCI0,DŽ&Nn]Z(8y7L=f1ATC24?ѧG\4Qg4^z_@Z|߾Cfi}X0D}b8ZP@AP Ib5/TŬ\?|Go+%G@EL""`V˶݆9>[8Z!ULݶ,Hc ZH!A>mLYU˥2y`ϳ,~X i*:I 8gR~Ԓz!gzٶ1)e>:󌘄Hb,w(|W.flMvBQ8%LD\Ƙ~_)\l7[#u QHQԟ~UJom߷(\*H0GFdfpsAy겪RT ' 8L)޿B҄z?]C F` $1I%6GpP xBj[vc?\n.7! !? WeY+<@Qhv 詖AG"T$ QJi!xsX4|t"˦hLj%:hƷ׶1qJ#n܇?DRT5mu#8Vem 4{oR9󒢵1~*Pjj=^]|X:5'r%:׿={ŗ?׼}׾ё4q/]#kԟr5I)ݗny%֕5׿/ӷ_< y2)t揟?bǓGGg$U #ܼMMf)$ aJ1>1E<%R:*69et 57Y] SBJaf$x凷ֶEUTE)FK)*ʝ4:&md=BHIa"üΫI!bH(вІ Eb)LwPBl\tRUS\̲rb P0vwE*ydqC`YTrnfbRʏS2dG!F3"T쮮 XO!v'g^.< Mw!~/OCxY#;OӰO5އ8m.̱1y?~.!+W/V79I߷֖iF??|POҘmی}[R 0[+'J-mxZL2H]˫f39<vϿ@!:'XA˷I^81A(![mvcjd~p9rV,sSq͑seXD,cw"KD@R@c7f'#X BG]NXT|?3 >>xv.:΢ 2 J*%(mTw"2"܃A{"r|"6{[T~;C9k g}\pR{T?|@Hx*̩ΧfG4ƭ޼۫r.(]M$<8:)5RSx_'x?3];ldz>]>u?A´n~"I6l~B̓:9<:>Ƕxې7xyBoڮF1f$NA1M. XIam%@!I,[]auDEt-ouC|Du1u;dUh8 qRVZBZBg)SȘ*KʔJ)n'%qv 0#cB4B@L95۵C'<eqrvBo4UQm'H)S X+1tͪ,̏O8"p8Rm۶ڔ SۛˢT|5MױN !:|lnarv0 kmT=Wvq`BטA쬞po[VӚ&:1pQQ,lG7~9{L'˗ڵc46n1~;l>.2 deT_qqqTGa7I!: d)%/Ѿy't;3rg37y]ɘ~x|MϞ ){ׇgʮ<*NcDo^}o񣂹7 >9@7&4Y[^k]݃Ӣa<|BֻEFw}wӭwciK ̊UʪsbCa]Z]@MV32gy4|LS(1f2Q¹rdV:=bos@)CE pM9?Tr8{(A1F!w.'wp8!-bd] {̐2RrsށIbDw, cmJin0 FrΚdD9كA"˭PoOlp#7һ铏dʤ6 ƨrgC iF>p^ʭöqItAVUJX.[ [ Ejup?Sմ:>$ڲj1=̴VZQMMQy֙"Elv|U +:~OJ}湌:~T(M\UQ7//7aqeXu@w=aXjR % 3eH>Y 1seFl*=.f)x[ՃC@>3v#.Lj٣<;L! RrJ3)e}:ԥ5%9F}ƚHm 9b  M-DZkJ8Fad)PX+ɨA@&`y15du[ʢ6(,{&m%ʐ5 )J2#F ۡ䱤Lq۶D8Z۸Ȣ0BN/s?HkYMdz~{%dD5;{m՛^/.U[{rJת%H! MܬmՒ0ɩ=4,KUY򦚖"_Tqi!dѭ?ctz_5u8(1=|^-/>ՍoLĜ\P5M˸*4뢘HҨ8t)FUQO2ч<ǔq@_*}|d Ў۴2lm|;H=-Y)rȿK셷74mP!},kRX+#s~H ,:?̥ $I$5 U4ԺRBɽGr9=&! ,Ϯ |s#c7{ I\%7}0v9LRVwa}ɪ>]=(%2"bY*]$[je΃WэB}$fe?jM#{/T _y~SW^]OGiA\gH'Eǧ5͵~_q($av !RN,U)*QfZKdQ)$t 9NN]lG|_X!HdkNK !sD.JmU19T>僃D!>"2] %ueإsV#+Sek3?-2%f ]?wv}9$̼YgVKC;DYE7.^cRNv y,w5r{s@FznTw2Qz\G0ݫf6F/ꒌ@{b/LO$rׯ $w(|˾/ Bph8v_ *[І,OA`@yP%m`K蛮ᖓ G94(H(PjE PPRYm*c+c "fsO΃w^BzOq/ӻO}1 ~ ?7 SHdAuqtbiN& yc&[L:,jC?@9.~'3܄ìϿnl1HCY'}m׮Yxc^k.IY>"i~f>?xdaӮ(Rm헷f]Lm1dF2JgB`hUa$օjUXE!Ѷچ I}4Eⓓr:-^Jɍ9""j=[绉9DR|H/K[OjPИ鼜)qM׳ssص};!%)  2H2]NgBk- a1>)S4E9%7؍z1t=~eqn}Y=:qioo8ݩln ѓ"<=;ѓy-7_j>s~S$6{ ]8t=*D)y7~xc/$Hk> *'Q)SԈpABNY0Հɳucp  ā{½m߹ST d mU߆N`x2n:U!"CجS1 dRqr(yhj]sRrcv&'a=H;6f\_ `%!^bϱ>@:PGIDa7,,=>N2*M=Y3:)#dQںnrX^Lo?gݵ[uz1?_oę®mRbJ, m.0T=@!ڞZ)PI Z _zH^\dS55fu| b7ƮI .jrnRD55d@iHu!ԗFWazRBip"+vͤ*`PN+H"78fB*C+H)烪:;֊L"nwF̂qB9rt>FSV}7Uy$HھɃlF00~?Ntd]) |O6iyeLEL:%GR^fu9m\Ȃ&待$8x],&fl7y?E r<"{>'o>|t6Z+&:wݫK?'H@$6b9!d:TB@@I@( (QRJJZ(b-=9c(o|{\߽9]B/ΰ0~tz 7em2>I@M5GIbRbUOm% ){-:@{8B`\lv/vۢrv(Uqtb< ^o 1r|2&/}7K fm2BNt2dzޮ&!>m&Y[f5\jpLpO'jGߞ=/=jy)R.._/~WuΠ GnSHI 2sΌR m2Ҟ|CJQIM?ȯ' }M矣ٳ͒C̦IUŷWcwU1D1]Ǒkmu5m{G9Z$5`pc{5r!sBHsn&ƀ9n)(Rb@ $*lU\~{Rau}3?>ű=spd1qǁN)%Zr0YUn[IcsBn%ގ RH*\N8.ܦ7f]GҤA7ד}w0tLW1%*2߾JkA;\-I1Ŕx'r?K Abl?O~xviqr"=RC~EEBrf,j >r5(P+A@2LQPwQ$̜N|B$p ޛ2@oW}4~?ψ,>2[B'>D2%^_ P x}%1Ṙ/_~ s:s`at(Qy~Q$wI5׻ݶ,H$( "uoQB_IR,P>yBIYWC}6E {<šwͥU^kbQMSSDcJ)D8.Sb@,$eF ?WimZmM!$_n"+QZPF710+Ic}9qQuQz]q`גּ m@j-Tɜ )(BH)vńtRA6(ŜA,A-NI6R؂b%(\_ڐnH$1+ǧǦ(ZڶonMvmn 7_?q`iO1Tg` FWjQW>AvvvUݤh뗨ܮ hқƦkH4!;Z۬@fw:^q!. 0#wt)Ӕw+"`dĻ]wjn.Ο|XXCZg[Ӊ ;N>al="Gf94p"'4G=}AR(kr/S@H[YԦmQmr퓒yGlDߝ]O}Ѕ^[Y }_wMKOv T+S]j7..`pkY8fM{7orrc#QDuN1˺jg*&>ԇj2Y|M?looT]S~q\Y3PŃ7ӟ.@.{\z]^}V/DU}7.wo!|Ɔ0J1q6̧A5J* EM]zãݍrtT y7ќr $ [aO'i ҨlÀ*81. E7V"3eNR@YbiH`뚐\׸T$RǾ- 5LB*stwZyjk}RRRG#)oo֣wdڻxJiշ͐LPHꪜ?=8~)UYnp嫪?ſon~\O8.?#fԥWnN?n'fzQ 7 *w]y|n_4Gfʣ!:vkD|[J aED,lwЎH$*DL!gZ{Bd0(=TH @>ztT$%6m7s,on808_~/)m|#N0U.]Iɓ.زh[bQ}/E.'u98 ^@RzlVُJ)R>04=>Bnw0[ժy`Lak'" ̙Ttٯ]=./?Bz#~y|Ҋ?Baqf1Fţ~7/~|T)5-& |f&ZnjnzX_}1m1eRҨXs\ZkT(#9 D. BR-(҃h]AnHIǟ6u&ft˛IuvRTuqNcϐ shJ!2$λ:4$$ 66ȘIY稁#a+J B$6dTu <FPQ|fSDQ%")) 0 -.J~ Uerf.Sb{#jN~ޟ ̦=\M0;nF~v ON/ǁRҔr\|» Curm֪fU %rǮ׎@rC>'"0!CXH ->I>@+30mӾzy3v}ytk~{;,zCsFs\JfH%( %QJ$MHSa F`yOy=VuRR ߑE.]u?'իtGs5! F֥%dETэ. [vǞrmo(x9;,TP)# ;ZɄ,sL(0uB?9D&'6!g1\?OHn^<[oy}| {t&]'B/ ?6rWC)DivSz7'mcjwqXH- A.JPI+X61Br搳wiCZˣ5Xoӧjа]_V_,]*=bLi Ч#QQj#sB)#1)]0]k-ڶJ4HA (@^܊6B[C`*rRW>&lc]`L! 8hlAtϑT0,rd]@4ص89: +2ED!*$F 'IqVMocl)?_zW,RP-JYͲBJ^I/IqtX[qɫ"㸺jA}Bׯ?JO_r,4aӿܵ4z `""Gdxw6oS": x|<)}<صՋ˗_vkscCwWo; ?|ϩ6*gh6(Q(H I @H Tˢ4RJk%HdfF{o`ޏ^p*Ȇ=k-=-„v= ߃qΤa۱ɨČ2)#H IqLy`-E'ax8>Giwfd΁90;}oN\"5AN6U7/~0bI հ]ea1euYKC~//4?fn. 1_DG?GejYm\H1[k120DJac!8h#>WbMO[j֬7a[=vL]9U᫯~W(L! !"IH ڐE9&WZZjA)(Mi|`̤RG5YdD(EfDҘ8msu;[Nb8ZHUQS9}YonqL0(&EU[AY)x@B0+PI^zحW_U.ǘb6(c촄jߥȅ[5ZYE< D>@Nr6Rn(?#U߶} !) 0B|8 ӇA]"Hf201aʑfիfuW/6#`yl%A76 4H[=;F0Rj) iJ Eh69A93ƔgBf_pd;$ۧ}]ù/ng3}tEJ9%hH00NgjzFD~JK/_` B!QbRR``UlcLj548f(HՋn]v&QצmQ U!ntVoͺdo5 :;ÇY/<@Q7qVHh}宾J}C$|1$?>Z)!HIZjH,%i-K-Jֳ֚˳7%,>xzk۵U?osSwUeKdVGy~q߹u7:}')SdiTzz07z"ƜtYG1ĘI]22B"ml3GA/m]dpn6ׅB d$eaSTYLtZӦx$pmLJEaͺi9ʈhCf= c.׶.'5F8lRV9~(wC{5>))>^6SJl)&_`QzP/;ܾpUGr Јd!L@R J(wL$.MK IK2JZ{'31q9șS9CNRJ >k RJ91'μ7 { g޷`wĜrNo4R՗b~U1bLۃgӬ*P ""m2.6gRb1RJ'08U|qx˜FO2 R9Nj8lUEmO _}&gPj1<~RGdoێ M#dl׷z~h&*l_[^0  Rجvc*RZW>c 9F "%&Ul2?v"vVq R?>n{|6_'m!0MU/Ҵ<_fͫn}7yp*YZ Njqw> T (S甴..8CB*٬oYXX!s*Hrp;Ur )BlWy\5=Y^=5IqlqLEaa(_ڻmy׭C@q>G߾>^Ā &Dz) YP:PI cvo6ɓEqv4)xJ̞9}n UU򝇑H=2v&Ue   B(Ph҅z;RF".ksy/V)A^ {(ܕ6;g_؀;|Us )cN1*[ ʹ͈qSĜ8t %C`i&jzNEQH- 5LF߾z%VSuSvTt_)] Q|qYamVѼ\}ʻbayu-9K?􇻫׫gٿo,x#B{7*$B#0Ԛ~׊ qۍ]8PZWB(e02.GN>; m E!OVeEDp!]uώR@}0D("UOdzߔ7^Nc!pH@)5Fb+zoMgcce&uڭRԲaaφ;?~q/ YCJ*eefe&$c; &A\^g- f1I "LR!$st1u5/xQA 꺶6d ) Fwe>(Lde!*F`$up|9u#cVu 9@@,3D&RY z|~-b7?Ppw.g ղLp /.k?sï~|1^ώdZ6$8{k?{_WoHʒf7%b۪@ܭgvL|b&`̀qk1S#=`TpP&>|z 5c?*ihnA" :x0-R eƒJc1rQ"(GJDh#Id1`dbRBi) E:v|-9B{ݙ){o'ڪ-6;(n[>3C1#G"]>|m> 5On7e 2͈lifeZ&=(98&iBP&RHO;GBRqа·}Q*&:9ߍGC;Xm:&99z\]7fE1ԟ}%_t[Ϯ8Yܶŀ(f!Ǯ>$5Y1>=Mm1t1]Umγa8@aoIH31x|'}mO}e$e8ud]]ثWyMAd Rd_\Ԉ@F [$ԚD$D:JL]1{JJsMg1D)ʕ]FbGJ&ஹ9B!=aR);f68ۮRE>nR'YXurtk-r_J^$AWB#Nj34R`uָ }Yޞ[,#Bs}S+'Y a[ayq|3t3"I%7͝9u7wPvw5 xP mLR bPJ̼#~pfBwdDh9+F@&ez4`V[nX!obl{nN@Z&džRR*& (Utbt*e*LA #`q>C Җ8M@Bo2]o@_i>C"DVmpDj~9qG!7]C&ϧR%kcHF;-*Ipyn =g&$"9<7R\Qn__$:ee?ҋ/G~/]/n]-]\`Rg5_]g?>)?Xuҵ팲ȴ]iæ$dB^hJeƶcF5JSp@_ٮADBlP 2-zj%mR% B`B}-JJ^n[C!CYD{s,1l@P el5 R]Y'Ҥ;`2(wIjniH޵r6@ʋuen>t0wcq*xv7s;Ij89jf9<[rjC((mfbyg۶m)x!Zׯ cKj|v,eMa Y-m_w:[4E])%2|==~b`40\~1*fc)6wsЧ{qTSyt9Q^||Mޑhrd `"*NBۿÝg<Ģ,Kr} jCj&pTkT.$3I7fv ytdY,ӃTЮ@Hͳͫb-Ije/snEE(7w/@?9=+Ve:շ/P!67WIh޶t!tv.rt;Y(< M$@H$ 2h]gxfsw=8=-V }qGr$dPݬ]Fg?χoR|HKTg҆٘HJ&<{gct.2$R0Fׯ?ϕH3ajTj9ޞi `ٸ _63]B#j6զkۄ{;]nng,),ol/FEGٞ[ot V6T(Wٱ ӬȘ|l7U^2 fU}o @r2IQ.YMN{z:V 6g*x 4^>3/212r|W/R+ivPE ʳDn"C@ {AfFk䪫ϯWǦnV'YrxXr{[r5mD؁vhl3 H2@+Omĩ"ҨRi"FmM |R.F%%Ĉ8m%@ svq!lV1y=KKܣuIbOdJ 4fZ"܈v5Sd|+v<~iBXe;8ެϿݦjxjX%!IqJ|xPͷ_:[ f#M֭]{(%DD!~,V#_ 㓽/k?t󫮲)L5GRth.\A 9ϑb𶷄J& r%bF08{M>N&4{<o_Hɓd=&_!A}tm5kol׎<{'.韃p{m>::Ę6^HD&OCVCb=_T"֌9O$c\ߣs$t(IH!ڍ кu]m0&0R4K0Q2񴸺}G)NP6Fy;;J"MuRY _|ݬ|8*&gE7~Ȫz)N$f O8)@R4NҔT_gqfL2._ 1Mj6`9gA}gFP9pZʣޢc*2QHdQ/н%w ܪvmc%'!3($IiTTF̨D E$9"=R1[;'aglW, lӹBC8aKkHgf@ W"I$UFE'2˙`B)21OA\w|\_]2 4lt@Uauo T:(uP d1zlO&Z>:)6"-ro㛗ZNf^M sLY\Gy|4#ɄzPa)Y_nd7W]_َZ7M"8Jj)>j `hcٟ]Gȯsp^_}b|rm<{#5$8ARg!yh&(s1 l\]ED3b{y@}]&u[jt6.Ȅ2˼wu TF&iHԅ6<;}HrPoTrR=Fo:}uZ qfDDhIiAD֚]SǶ6(YZmo^\ߴm79>L$Xhq~(ÇO;h_}ǣ"&O/^F&z?9Y|"rh`!o@sH@6ls@ U6E`ڍkY"os=5-z5`A9f0?=oPL#DH$ -dTbPT⭆3Fƭi[{ `jٖoW1歈c؎ t?n;=]@ޛ~@Qa<| Y!OUQ>3"IP)!PZdyt}(jU5 yBW݈II C^I}G -HiC?U"C)S᨞ӟ2O~ $JT?U`y_,?"E]= 2lT@ݲӽI?55yfbb Ψ]߅BVJT:˲>,?Ԍrۇɾn3٬WZg\@f.Vur|Mcz!G NNd1nλoDxy4n.mIuwhjrjմV}r8U@!3G#P&@2snUfd8 }K$9 eLxzH d7.|{Z0E'YRp8{+T$i1(9%G3o֋]YgMD1Uw^oz9V^]kJ<4ח<}!6 `5:#Q#6CݺŬojmlWuA@x@ >tK(*A 1,7:rǧ?8T# C@D,D \TS4&QQKeZJ*/SH/h%v3 )Ľl"Wo8xK練R*{Y zs ,R5D}[M]_~֩i)b^`γr8}̮-)";x1 #)MÕQ]$LtK#3wz\NarW<_(c7Xuti׷s@髊MDdN~6E2:^ A tx6.^9GY띔vsc6Ȟ!B RE}dDJM9Ѡ5gtMlnskF2b<ܼGcj&I8~ifݫ?tUͫ+%e>8TZy -" 1s ɧ/.^ W>DfY9V(D"Q \,Hd9RR,Q|Cr\ݞOC߸vXʲtv}Ypoj{L$2ӹDv_;UKIP󛫋ūk)M]2<6sHS)2%t^l>{Rȩīy{Fu:/%ժ\cNc@ ]:xd`b`(63?rB)BW%%1)DQQbՋ|v!1tB dNGCSO={o_-^ ); RD[{p$%Y+yO5xd%ȨXYh($oJo/?m0>{Φ{j;[ o}񢮫i<ɇzĉI ƻ60$%#e_&I;,s`>0"!z%# $H(g۾RbO뺾oޞK%X;߷|f|8RSY)(T&٣eE[2i^Q /l\C)=>~6:=;{/ߛɰZTl:˲b^- o4&~NGؤaq׭/'pq8.xf7l{W~ mB1lCߢ 0.Ӕ#ȅ|/($Ro߶:-#\U{ęA[W 00-M=H$%HmTD)cq w1  @"v |8n2u$b.:2nmz{${;.)m^Ŷn(~7K뫋Y4aí, CD)ftT/V7IF[_7m2w.jdFGܬb8jvw>\o""{P䨩 UB TDEL] G U[KFlTz17ͦs89sLe)eXa@Wuţ՗~u_!J FZoc=4EM'$Dq *M WYfR9@ ;8q $ E aZmÌ v5'i}_}շ/^uc(}o殣hd]np p r㎩@hDM"%D[`g0"T((d&R9m9$P:IVELMg![b5oo/o!uJ(T(mۥ̴;laFDb" qADq>dgCU._kIro5U=_b8gEغ7^P\&&PweZ/Gn?vqem6Dȼ={{-^~V7Ez0;>woDR޺"4C*Wqrm<ȄccR W`}۵} }f /$C@g i(+"ՙp0<:~7md" B7/^Ѫngw8X]_WR?󘎖_}A#RNeui9}pںi*rj.u[=bǁmOwloնD#BdWӓ11qD֨E"]+f˛ Nc988NNMjLFB$ei]stN 3NouSQm1ѣѧ'bPSMZ $D [VF*&Ot^dhY+; B-xv#@""1nWHDBqoFDwc>>ở3!Cdd""@&[6ex/CE]Z?HVe2ʼ{d{w{-!(kyyAvHE[Y%(ͪF$j淛"d]DjE$ރq&Ԅ4m(y~u~d>PXm¤T0FY,~(r/FtG2SEfr2Lo~B2ue۪wֻ}]#gnm.]d@Pct¤?ɟR8.kl{sw~Q><6&*M'x;h=h_t>-ud$YRmdv[?7$/_6dz$ @$-Rz^mݛVѣwU&-":9\U3R!8tU鬒k]`(M\TR0(^x0BZM5/8vrϦjPi-2]Ho:ۛM 1T&L:ٚc%6&Cr;>G1δqݬW_i  `YD^*k;{p_H3 I$!Jtjt$Iu,b]l֠'޽i[ȶ}ږBy{{wj.b,#[b22;.ev ]ֵoAHk(IJ`WO~/FLFh_BA,Su| hlbD=f/> $&55ʆz[DZw0Wlίj' ͛;ׇlpe-b ./_l|CT(3ޘBKR.nT_VL|  P xam˿V2¦b멷$ ػ^/f:ѣӏ #'ɫts{cm~xtrz*of?ĺd9 pf@ul(!,U3 A[A"tBBImw}+C#$)x5JeyV:1,2^|8f$<"o@J$a1Q2: \$ݮkW-CA쟽;Tk i5|AX2DU}d`YJ]mBGzUʶRͼ``b>6Ws345$#![T1߃!g]c7jW|6+z"K%C1F"G@&!@b/e}pZζȌt/KJ.av]~l]C O_FaGŠq~ G/vkf#7'cqᇲP]YHU!)ۮ#ps/o|@(k9IEh&bhvs{6XoФ]Ӓ4Ess)n0&{p\L?0qQ@!s0f빮XI:}hj~m@E."awf {2DMLG~"hlz7%__ŭ 6DHu:EL`2B'ȈV8i=]n0ȧ>AVf>kvFA"*k!BV1&e`"1zCͺRƇ#bȝ:͋l7L`05{Ŀ^}{M<:842'(AJfDҁN $y2͵ɋIfRL23γRfz(֯/к.ps{mۭgUf}hAyx`Y?6i\/^իU7mX\Z7iϮk\}s#B=o2^E־[uQfh{gRO4hblщ$F v!UxoԌ4Mn?[i92DR!@#}ݟApv #@|\PRh tbPTZH݀o/Ji ((MU$Hln8"G1ưo[;}za[_`kv/4E C /b bzjx[)Y }t'eKl^Y٭:&qa#۶mP'4b;Cfwhu~f!Z9"hQ*QC=(5!E2m~5^.Syw{ut_gQU:Ux\}t/|:UҜ&:UBvoi,Kisy۶0?~>H1Eʂ.U@^1 %ol/عH2͓v|`Əpӊ4ౄ0wTw?4cH+GE ,n1߾W (hVd󿨳> ` :pwYT@Uw7WI,ˠ[+=odd#/F.uLY976}8JXwB 5Mۗj68? uZ-d9og٣ml*'CAuά9{31d"1U]=w6I `/L-$EvWw׌gM/ @,^:>dg޼JNO^تݟ8q//\#vj5pn}S] %mY;gw0Ђ f\#b/\"vIu޽Co0 ?REmƒg"Xz w[C% }VѾ\csƭu8ctV)6c o1w>z!x@oOnY\_Nߣ ǥۯx\_zzq-؟%oCϰ"";kpm /m4qk8r$Iv?,^ 5f_վ་S 4LlIE.bi݋s~4ĂR)]U 5Q5y bR;aHaY˦HApZb^՛yy&]}iˆb]6'eUp5-b@Nw7*N]١w^Yp[dqBx[ܰu28K~ (MӓRwi޽cA!Zit[ Qm]f-nvs#'uFHкGo#Ljk IW뚫L8I"UT;[o&P0ȉ1B8(Jfv꺫1Mcs)!ftØ@º#ޖQHB Pc{9C`2Y/vj|c ?Z$I @s81R).HEJkݶ-g12xX$5ڻq{jlΙVcwEkc{ p}D'oy{W_oOQ:}5a)bz%/jaZw/<'LX2AswM2|AQKg:G::q:>Nj{)z5󹨶OӧOO?|tLxOɐc!Hࣩ::!Hgt~Y|CF ]$/EmxD߿2-whwyAvn(Xx Ym@Ȥ?$tWoa0>DPRT~Gu4Ccnߚ(= I`81b%ΗoIڗ?.;g5u{Ҙ6y8xky@BD2M=G_~#me)l6DN`ĴI\i^8a6¼7hwm>~lvEWB\1WhzFɃ{ݳoѩ9 j|4˾㴞^Ghu!5ca]67YE 2977'l0J '_X %))j^wup6]1ܔ,;wiv7 CB \̤J[u>i|tV.5jt% 9+z8:xP\sf{W4N2*cf:$2;|<_s5ț[,Ӭvo @\[<0 B;O֯k0`l`ukkq8gEVųgIr:qpɪVsovzwfw[Yݢ 6_C{L|mN;8lT2l_*Oba _=^"J'(X5S7E;:#ޛ?>iK&99R>/VzqL i>V6m 'wڬmǓCFIwBI$ vUݪ< <8lBYyhۺe\ \ sBWEvM\ef[\jcNIn.8z)ݫ]n\-mڼ{%h|A. BK. fv7olo/a+כk;W`=`&)}&1g>6ȈKx/Rs='p {O_'n?$b >Z"i~JQSKwRqgf9θʛkDŽKs$!NQ(',gOOk6 ()ƒ7~ECzAmV[h.o_WGj(_~;MɅ\]]ͣ6p'mۭyװ]Bkd[)@ !fgijW}]>6$LwV si!v( ~Qܵq^\]=6@X6Ě$4^ Zd2Bb־z)lݥ\Uw1 [9Hq%[]PXR]!x4YkԇT! IC_jwƉ)Pd57jvؾ[Y3:<&$qۅ`*'EmmnGx4G86M D"M~ਬ*o @8Zʉ4N4J"`N{*͒XqƃIـ`BTnV;$cTZ~HWsBk*oGӟ~5~pO2aJP(ԍ15g‡(fAf쾫k}}Ѵyf =#v4ŊEcZg`7Ã8&ν6f-wv37i}Ga&{@y2o(mxƉ {Dr\$i8(WwiqwZc[xӹH!|ӣw.4gc$Ӈ=iiÇ>@]UevE eɦQ {C:T8HU@Hq kL$Uvy^=۷tdV A0xSɡn"]"Av(Mn:c9 ɸ9ΐtUvã1isMSx$A(bV hE2P^{ .ծhnv ObySupY:e5,nׯewzwr]&nyĽ1]p)j[./iX9Ae&i]a]# 8 HkgmGukmg2 E P n)<1:dTx_t?$jmhLZ@d!} Ĉnjq죨XLXΙ@g!d$R0AQ<r;{`U^nBt!#$!s޻c{ԝI|}qns{Xwrg{~'=w?<ܑp8n Ɏ[grIENDB`Padre-1.00/share/languages/0000755000175000017500000000000012237340740014213 5ustar petepetePadre-1.00/share/languages/perl5/0000755000175000017500000000000012237340740015242 5ustar petepetePadre-1.00/share/languages/perl5/perlapi_current.yml0000644000175000017500000044222611277311035021173 0ustar petepete--- AvFILL: cmd: '' exp: "Same as C. Deprecated, use C instead.\n\n\tint\tAvFILL(AV* av)" CLASS: cmd: '' exp: "Variable which is setup by C to indicate the \nclass name for a C++ XS constructor. This is always a C. See C.\n\n\tchar*\tCLASS" Copy: cmd: '' exp: "The XSUB-writer's interface to the C C function. The C is the\nsource, C is the destination, C is the number of items, and C is\nthe type. May fail on overlapping copies. See also C.\n\n\tvoid\tCopy(void* src, void* dest, int nitems, type)" CopyD: cmd: '' exp: "Like C but returns dest. Useful for encouraging compilers to tail-call\noptimise.\n\n\tvoid *\tCopyD(void* src, void* dest, int nitems, type)" CvSTASH: cmd: '' exp: "Returns the stash of the CV.\n\n\tHV*\tCvSTASH(CV* cv)" ENTER: cmd: '' exp: "Opening bracket on a callback. See C and L.\n\n\t\tENTER;" EXTEND: cmd: '' exp: "Used to extend the argument stack for an XSUB's return values. Once\nused, guarantees that there is room for at least C to be pushed\nonto the stack.\n\n\tvoid\tEXTEND(SP, int nitems)" FREETMPS: cmd: '' exp: "Closing bracket for temporaries on a callback. See C and\nL.\n\n\t\tFREETMPS;" GIMME: cmd: '' exp: "A backward-compatible version of C which can only return\nC or C; in a void context, it returns C.\nDeprecated. Use C instead.\n\n\tU32\tGIMME" GIMME_V: cmd: '' exp: "The XSUB-writer's equivalent to Perl's C. Returns C,\nC or C for void, scalar or list context,\nrespectively.\n\n\tU32\tGIMME_V" G_ARRAY: cmd: '' exp: "Used to indicate list context. See C, C and\nL." G_DISCARD: cmd: '' exp: "Indicates that arguments returned from a callback should be discarded. See\nL." G_EVAL: cmd: '' exp: "Used to force a Perl C wrapper around a callback. See\nL." G_NOARGS: cmd: '' exp: "Indicates that no arguments are being sent to a callback. See\nL." G_SCALAR: cmd: '' exp: "Used to indicate scalar context. See C, C, and\nL." G_VOID: cmd: '' exp: 'Used to indicate void context. See C and L.' GvSV: cmd: '' exp: "Return the SV from the GV.\n\n\tSV*\tGvSV(GV* gv)" HEf_SVKEY: cmd: '' exp: "This flag, used in the length slot of hash entries and magic structures,\nspecifies the structure contains an C pointer where a C pointer\nis to be expected. (For information only--not to be used)." HeHASH: cmd: '' exp: "Returns the computed hash stored in the hash entry.\n\n\tU32\tHeHASH(HE* he)" HeKEY: cmd: '' exp: "Returns the actual pointer stored in the key slot of the hash entry. The\npointer may be either C or C, depending on the value of\nC. Can be assigned to. The C or C macros are\nusually preferable for finding the value of a key.\n\n\tvoid*\tHeKEY(HE* he)" HeKLEN: cmd: '' exp: "If this is negative, and amounts to C, it indicates the entry\nholds an C key. Otherwise, holds the actual length of the key. Can\nbe assigned to. The C macro is usually preferable for finding key\nlengths.\n\n\tSTRLEN\tHeKLEN(HE* he)" HePV: cmd: '' exp: "Returns the key slot of the hash entry as a C value, doing any\nnecessary dereferencing of possibly C keys. The length of the string\nis placed in C (this is a macro, so do I use C<&len>). If you do\nnot care about what the length of the key is, you may use the global\nvariable C, though this is rather less efficient than using a local\nvariable. Remember though, that hash keys in perl are free to contain\nembedded nulls, so using C or similar is not a good way to find\nthe length of hash keys. This is very similar to the C macro\ndescribed elsewhere in this document. See also C.\n\nIf you are using C to get values to pass to C to create a\nnew SV, you should consider using C as it is more\nefficient.\n\n\tchar*\tHePV(HE* he, STRLEN len)" HeSVKEY: cmd: '' exp: "Returns the key as an C, or C if the hash entry does not\ncontain an C key.\n\n\tSV*\tHeSVKEY(HE* he)" HeSVKEY_force: cmd: '' exp: "Returns the key as an C. Will create and return a temporary mortal\nC if the hash entry contains only a C key.\n\n\tSV*\tHeSVKEY_force(HE* he)" HeSVKEY_set: cmd: '' exp: "Sets the key to a given C, taking care to set the appropriate flags to\nindicate the presence of an C key, and returns the same\nC.\n\n\tSV*\tHeSVKEY_set(HE* he, SV* sv)" HeUTF8: cmd: '' exp: "Returns whether the C value returned by C is encoded in UTF-8,\ndoing any necessary dereferencing of possibly C keys. The value returned\nwill be 0 or non-0, not necessarily 1 (or even a value with any low bits set),\nso B blindly assign this to a C variable, as C may be a\ntypedef for C.\n\n\tchar*\tHeUTF8(HE* he, STRLEN len)" HeVAL: cmd: '' exp: "Returns the value slot (type C) stored in the hash entry.\n\n\tSV*\tHeVAL(HE* he)" HvNAME: cmd: '' exp: "Returns the package name of a stash, or NULL if C isn't a stash.\nSee C, C.\n\n\tchar*\tHvNAME(HV* stash)" LEAVE: cmd: '' exp: "Closing bracket on a callback. See C and L.\n\n\t\tLEAVE;" MARK: cmd: '' exp: 'Stack marker variable for the XSUB. See C.' MULTICALL: cmd: '' exp: "Make a lightweight callback. See L.\n\n\t\tMULTICALL;" Move: cmd: '' exp: "The XSUB-writer's interface to the C C function. The C is the\nsource, C is the destination, C is the number of items, and C is\nthe type. Can do overlapping moves. See also C.\n\n\tvoid\tMove(void* src, void* dest, int nitems, type)" MoveD: cmd: '' exp: "Like C but returns dest. Useful for encouraging compilers to tail-call\noptimise.\n\n\tvoid *\tMoveD(void* src, void* dest, int nitems, type)" Newx: cmd: '' exp: "The XSUB-writer's interface to the C C function.\n\nIn 5.9.3, Newx() and friends replace the older New() API, and drops\nthe first parameter, I, a debug aid which allowed callers to identify\nthemselves. This aid has been superseded by a new build option,\nPERL_MEM_LOG (see L). The older API is still\nthere for use in XS modules supporting older perls.\n\n\tvoid\tNewx(void* ptr, int nitems, type)" Newxc: cmd: '' exp: "The XSUB-writer's interface to the C C function, with\ncast. See also C.\n\n\tvoid\tNewxc(void* ptr, int nitems, type, cast)" Newxz: cmd: '' exp: "The XSUB-writer's interface to the C C function. The allocated\nmemory is zeroed with C. See also C.\n\n\tvoid\tNewxz(void* ptr, int nitems, type)" Nullav: cmd: '' exp: 'Null AV pointer.' Nullch: cmd: '' exp: 'Null character pointer.' Nullcv: cmd: '' exp: 'Null CV pointer.' Nullhv: cmd: '' exp: 'Null HV pointer.' Nullsv: cmd: '' exp: 'Null SV pointer.' ORIGMARK: cmd: '' exp: 'The original stack mark for the XSUB. See C.' PERL_SYS_INIT: cmd: '' exp: "Provides system-specific tune up of the C runtime environment necessary to\nrun Perl interpreters. This should be called only once, before creating\nany Perl interpreters.\n\n\tvoid\tPERL_SYS_INIT(int argc, char** argv)" PERL_SYS_INIT3: cmd: '' exp: "Provides system-specific tune up of the C runtime environment necessary to\nrun Perl interpreters. This should be called only once, before creating\nany Perl interpreters.\n\n\tvoid\tPERL_SYS_INIT3(int argc, char** argv, char** env)" PERL_SYS_TERM: cmd: '' exp: "Provides system-specific clean up of the C runtime environment after\nrunning Perl interpreters. This should be called only once, after\nfreeing any remaining Perl interpreters.\n\n\tvoid\tPERL_SYS_TERM()" PL_modglobal: cmd: '' exp: "C is a general purpose, interpreter global HV for use by\nextensions that need to keep information on a per-interpreter basis.\nIn a pinch, it can also be used as a symbol table for extensions\nto share data among each other. It is a good idea to use keys\nprefixed by the package name of the extension that owns the data.\n\n\tHV*\tPL_modglobal" PL_na: cmd: '' exp: "A convenience variable which is typically used with C when one\ndoesn't care about the length of the string. It is usually more efficient\nto either declare a local variable and use that instead or to use the\nC macro.\n\n\tSTRLEN\tPL_na" PL_sv_no: cmd: '' exp: "This is the C SV. See C. Always refer to this as\nC<&PL_sv_no>.\n\n\tSV\tPL_sv_no" PL_sv_undef: cmd: '' exp: "This is the C SV. Always refer to this as C<&PL_sv_undef>.\n\n\tSV\tPL_sv_undef" PL_sv_yes: cmd: '' exp: "This is the C SV. See C. Always refer to this as\nC<&PL_sv_yes>.\n\n\tSV\tPL_sv_yes" POP_MULTICALL: cmd: '' exp: "Closing bracket for a lightweight callback.\nSee L.\n\n\t\tPOP_MULTICALL;" POPi: cmd: '' exp: "Pops an integer off the stack.\n\n\tIV\tPOPi" POPl: cmd: '' exp: "Pops a long off the stack.\n\n\tlong\tPOPl" POPn: cmd: '' exp: "Pops a double off the stack.\n\n\tNV\tPOPn" POPp: cmd: '' exp: "Pops a string off the stack. Deprecated. New code should use POPpx.\n\n\tchar*\tPOPp" POPpbytex: cmd: '' exp: "Pops a string off the stack which must consist of bytes i.e. characters < 256.\n\n\tchar*\tPOPpbytex" POPpx: cmd: '' exp: "Pops a string off the stack.\n\n\tchar*\tPOPpx" POPs: cmd: '' exp: "Pops an SV off the stack.\n\n\tSV*\tPOPs" PUSHMARK: cmd: '' exp: "Opening bracket for arguments on a callback. See C and\nL.\n\n\tvoid\tPUSHMARK(SP)" PUSH_MULTICALL: cmd: '' exp: "Opening bracket for a lightweight callback.\nSee L.\n\n\t\tPUSH_MULTICALL;" PUSHi: cmd: '' exp: "Push an integer onto the stack. The stack must have room for this element.\nHandles 'set' magic. Uses C, so C or C should be\ncalled to declare it. Do not call multiple C-oriented macros to \nreturn lists from XSUB's - see C instead. See also C and\nC.\n\n\tvoid\tPUSHi(IV iv)" PUSHmortal: cmd: '' exp: "Push a new mortal SV onto the stack. The stack must have room for this\nelement. Does not use C. See also C, C and C.\n\n\tvoid\tPUSHmortal()" PUSHn: cmd: '' exp: "Push a double onto the stack. The stack must have room for this element.\nHandles 'set' magic. Uses C, so C or C should be\ncalled to declare it. Do not call multiple C-oriented macros to\nreturn lists from XSUB's - see C instead. See also C and\nC.\n\n\tvoid\tPUSHn(NV nv)" PUSHp: cmd: '' exp: "Push a string onto the stack. The stack must have room for this element.\nThe C indicates the length of the string. Handles 'set' magic. Uses\nC, so C or C should be called to declare it. Do not\ncall multiple C-oriented macros to return lists from XSUB's - see\nC instead. See also C and C.\n\n\tvoid\tPUSHp(char* str, STRLEN len)" PUSHs: cmd: '' exp: "Push an SV onto the stack. The stack must have room for this element.\nDoes not handle 'set' magic. Does not use C. See also C,\nC and C.\n\n\tvoid\tPUSHs(SV* sv)" PUSHu: cmd: '' exp: "Push an unsigned integer onto the stack. The stack must have room for this\nelement. Handles 'set' magic. Uses C, so C or C\nshould be called to declare it. Do not call multiple C-oriented\nmacros to return lists from XSUB's - see C instead. See also\nC and C.\n\n\tvoid\tPUSHu(UV uv)" PUTBACK: cmd: '' exp: "Closing bracket for XSUB arguments. This is usually handled by C.\nSee C and L for other uses.\n\n\t\tPUTBACK;" Perl_signbit: cmd: '' exp: "Return a non-zero integer if the sign bit on an NV is set, and 0 if\nit is not. \n\nIf Configure detects this system has a signbit() that will work with\nour NVs, then we just use it via the #define in perl.h. Otherwise,\nfall back on this implementation. As a first pass, this gets everything\nright except -0.0. Alas, catching -0.0 is the main use for this function,\nso this is not too helpful yet. Still, at least we have the scaffolding\nin place to support other systems, should that prove useful.\n\n\nConfigure notes: This function is called 'Perl_signbit' instead of a\nplain 'signbit' because it is easy to imagine a system having a signbit()\nfunction or macro that doesn't happen to work with our particular choice\nof NVs. We shouldn't just re-#define signbit as Perl_signbit and expect\nthe standard system headers to be happy. Also, this is a no-context\nfunction (no pTHX_) because Perl_signbit() is usually re-#defined in\nperl.h as a simple macro call to the system's signbit().\nUsers should just always call Perl_signbit().\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tint\tPerl_signbit(NV f)" Poison: cmd: '' exp: "PoisonWith(0xEF) for catching access to freed memory.\n\n\tvoid\tPoison(void* dest, int nitems, type)" PoisonFree: cmd: '' exp: "PoisonWith(0xEF) for catching access to freed memory.\n\n\tvoid\tPoisonFree(void* dest, int nitems, type)" PoisonNew: cmd: '' exp: "PoisonWith(0xAB) for catching access to allocated but uninitialized memory.\n\n\tvoid\tPoisonNew(void* dest, int nitems, type)" PoisonWith: cmd: '' exp: "Fill up memory with a byte pattern (a byte repeated over and over\nagain) that hopefully catches attempts to access uninitialized memory.\n\n\tvoid\tPoisonWith(void* dest, int nitems, type, U8 byte)" RETVAL: cmd: '' exp: "Variable which is setup by C to hold the return value for an \nXSUB. This is always the proper type for the XSUB. See \nL.\n\n\t(whatever)\tRETVAL" Renew: cmd: '' exp: "The XSUB-writer's interface to the C C function.\n\n\tvoid\tRenew(void* ptr, int nitems, type)" Renewc: cmd: '' exp: "The XSUB-writer's interface to the C C function, with\ncast.\n\n\tvoid\tRenewc(void* ptr, int nitems, type, cast)" SAVETMPS: cmd: '' exp: "Opening bracket for temporaries on a callback. See C and\nL.\n\n\t\tSAVETMPS;" SP: cmd: '' exp: "Stack pointer. This is usually handled by C. See C and\nC." SPAGAIN: cmd: '' exp: "Refetch the stack pointer. Used after a callback. See L.\n\n\t\tSPAGAIN;" ST: cmd: '' exp: "Used to access elements on the XSUB's stack.\n\n\tSV*\tST(int ix)" SVt_IV: cmd: '' exp: 'Integer type flag for scalars. See C.' SVt_NV: cmd: '' exp: 'Double type flag for scalars. See C.' SVt_PV: cmd: '' exp: 'Pointer type flag for scalars. See C.' SVt_PVAV: cmd: '' exp: 'Type flag for arrays. See C.' SVt_PVCV: cmd: '' exp: 'Type flag for code refs. See C.' SVt_PVHV: cmd: '' exp: 'Type flag for hashes. See C.' SVt_PVMG: cmd: '' exp: 'Type flag for blessed scalars. See C.' Safefree: cmd: '' exp: "The XSUB-writer's interface to the C C function.\n\n\tvoid\tSafefree(void* ptr)" StructCopy: cmd: '' exp: "This is an architecture-independent macro to copy one structure to another.\n\n\tvoid\tStructCopy(type src, type dest, type)" SvCUR: cmd: '' exp: "Returns the length of the string which is in the SV. See C.\n\n\tSTRLEN\tSvCUR(SV* sv)" SvCUR_set: cmd: '' exp: "Set the current length of the string which is in the SV. See C\nand C.\n\n\tvoid\tSvCUR_set(SV* sv, STRLEN len)" SvEND: cmd: '' exp: "Returns a pointer to the last character in the string which is in the SV.\nSee C. Access the character as *(SvEND(sv)).\n\n\tchar*\tSvEND(SV* sv)" SvGAMAGIC: cmd: '' exp: "Returns true if the SV has get magic or overloading. If either is true then\nthe scalar is active data, and has the potential to return a new value every\ntime it is accessed. Hence you must be careful to only read it once per user\nlogical operation and work with that returned value. If neither is true then\nthe scalar's value cannot change unless written to.\n\n\tU32\tSvGAMAGIC(SV* sv)" SvGETMAGIC: cmd: '' exp: "Invokes C on an SV if it has 'get' magic. This macro evaluates its\nargument more than once.\n\n\tvoid\tSvGETMAGIC(SV* sv)" SvGROW: cmd: '' exp: "Expands the character buffer in the SV so that it has room for the\nindicated number of bytes (remember to reserve space for an extra trailing\nNUL character). Calls C to perform the expansion if necessary.\nReturns a pointer to the character buffer.\n\n\tchar *\tSvGROW(SV* sv, STRLEN len)" SvIOK: cmd: '' exp: "Returns a U32 value indicating whether the SV contains an integer.\n\n\tU32\tSvIOK(SV* sv)" SvIOK_UV: cmd: '' exp: "Returns a boolean indicating whether the SV contains an unsigned integer.\n\n\tbool\tSvIOK_UV(SV* sv)" SvIOK_notUV: cmd: '' exp: "Returns a boolean indicating whether the SV contains a signed integer.\n\n\tbool\tSvIOK_notUV(SV* sv)" SvIOK_off: cmd: '' exp: "Unsets the IV status of an SV.\n\n\tvoid\tSvIOK_off(SV* sv)" SvIOK_on: cmd: '' exp: "Tells an SV that it is an integer.\n\n\tvoid\tSvIOK_on(SV* sv)" SvIOK_only: cmd: '' exp: "Tells an SV that it is an integer and disables all other OK bits.\n\n\tvoid\tSvIOK_only(SV* sv)" SvIOK_only_UV: cmd: '' exp: "Tells and SV that it is an unsigned integer and disables all other OK bits.\n\n\tvoid\tSvIOK_only_UV(SV* sv)" SvIOKp: cmd: '' exp: "Returns a U32 value indicating whether the SV contains an integer. Checks\nthe B setting. Use C instead.\n\n\tU32\tSvIOKp(SV* sv)" SvIV: cmd: '' exp: "Coerces the given SV to an integer and returns it. See C for a\nversion which guarantees to evaluate sv only once.\n\n\tIV\tSvIV(SV* sv)" SvIVX: cmd: '' exp: "Returns the raw value in the SV's IV slot, without checks or conversions.\nOnly use when you are sure SvIOK is true. See also C.\n\n\tIV\tSvIVX(SV* sv)" SvIV_nomg: cmd: '' exp: "Like C but doesn't process magic.\n\n\tIV\tSvIV_nomg(SV* sv)" SvIV_set: cmd: '' exp: "Set the value of the IV pointer in sv to val. It is possible to perform\nthe same function of this macro with an lvalue assignment to C.\nWith future Perls, however, it will be more efficient to use \nC instead of the lvalue assignment to C.\n\n\tvoid\tSvIV_set(SV* sv, IV val)" SvIVx: cmd: '' exp: "Coerces the given SV to an integer and returns it. Guarantees to evaluate\nC only once. Only use this if C is an expression with side effects,\notherwise use the more efficient C.\n\n\tIV\tSvIVx(SV* sv)" SvIsCOW: cmd: '' exp: "Returns a boolean indicating whether the SV is Copy-On-Write. (either shared\nhash key scalars, or full Copy On Write scalars if 5.9.0 is configured for\nCOW)\n\n\tbool\tSvIsCOW(SV* sv)" SvIsCOW_shared_hash: cmd: '' exp: "Returns a boolean indicating whether the SV is Copy-On-Write shared hash key\nscalar.\n\n\tbool\tSvIsCOW_shared_hash(SV* sv)" SvLEN: cmd: '' exp: "Returns the size of the string buffer in the SV, not including any part\nattributable to C. See C.\n\n\tSTRLEN\tSvLEN(SV* sv)" SvLEN_set: cmd: '' exp: "Set the actual length of the string which is in the SV. See C.\n\n\tvoid\tSvLEN_set(SV* sv, STRLEN len)" SvLOCK: cmd: '' exp: "Arranges for a mutual exclusion lock to be obtained on sv if a suitable module\nhas been loaded.\n\n\tvoid\tSvLOCK(SV* sv)" SvMAGIC_set: cmd: '' exp: "Set the value of the MAGIC pointer in sv to val. See C.\n\n\tvoid\tSvMAGIC_set(SV* sv, MAGIC* val)" SvNIOK: cmd: '' exp: "Returns a U32 value indicating whether the SV contains a number, integer or\ndouble.\n\n\tU32\tSvNIOK(SV* sv)" SvNIOK_off: cmd: '' exp: "Unsets the NV/IV status of an SV.\n\n\tvoid\tSvNIOK_off(SV* sv)" SvNIOKp: cmd: '' exp: "Returns a U32 value indicating whether the SV contains a number, integer or\ndouble. Checks the B setting. Use C instead.\n\n\tU32\tSvNIOKp(SV* sv)" SvNOK: cmd: '' exp: "Returns a U32 value indicating whether the SV contains a double.\n\n\tU32\tSvNOK(SV* sv)" SvNOK_off: cmd: '' exp: "Unsets the NV status of an SV.\n\n\tvoid\tSvNOK_off(SV* sv)" SvNOK_on: cmd: '' exp: "Tells an SV that it is a double.\n\n\tvoid\tSvNOK_on(SV* sv)" SvNOK_only: cmd: '' exp: "Tells an SV that it is a double and disables all other OK bits.\n\n\tvoid\tSvNOK_only(SV* sv)" SvNOKp: cmd: '' exp: "Returns a U32 value indicating whether the SV contains a double. Checks the\nB setting. Use C instead.\n\n\tU32\tSvNOKp(SV* sv)" SvNV: cmd: '' exp: "Coerce the given SV to a double and return it. See C for a version\nwhich guarantees to evaluate sv only once.\n\n\tNV\tSvNV(SV* sv)" SvNVX: cmd: '' exp: "Returns the raw value in the SV's NV slot, without checks or conversions.\nOnly use when you are sure SvNOK is true. See also C.\n\n\tNV\tSvNVX(SV* sv)" SvNV_set: cmd: '' exp: "Set the value of the NV pointer in sv to val. See C.\n\n\tvoid\tSvNV_set(SV* sv, NV val)" SvNVx: cmd: '' exp: "Coerces the given SV to a double and returns it. Guarantees to evaluate\nC only once. Only use this if C is an expression with side effects,\notherwise use the more efficient C.\n\n\tNV\tSvNVx(SV* sv)" SvOK: cmd: '' exp: "Returns a U32 value indicating whether the value is defined. This is\nonly meaningful for scalars.\n\n\tU32\tSvOK(SV* sv)" SvOOK: cmd: '' exp: "Returns a U32 indicating whether the SvIVX is a valid offset value for\nthe SvPVX. This hack is used internally to speed up removal of characters\nfrom the beginning of a SvPV. When SvOOK is true, then the start of the\nallocated string buffer is really (SvPVX - SvIVX).\n\n\tU32\tSvOOK(SV* sv)" SvPOK: cmd: '' exp: "Returns a U32 value indicating whether the SV contains a character\nstring.\n\n\tU32\tSvPOK(SV* sv)" SvPOK_off: cmd: '' exp: "Unsets the PV status of an SV.\n\n\tvoid\tSvPOK_off(SV* sv)" SvPOK_on: cmd: '' exp: "Tells an SV that it is a string.\n\n\tvoid\tSvPOK_on(SV* sv)" SvPOK_only: cmd: '' exp: "Tells an SV that it is a string and disables all other OK bits.\nWill also turn off the UTF-8 status.\n\n\tvoid\tSvPOK_only(SV* sv)" SvPOK_only_UTF8: cmd: '' exp: "Tells an SV that it is a string and disables all other OK bits,\nand leaves the UTF-8 status as it was.\n\n\tvoid\tSvPOK_only_UTF8(SV* sv)" SvPOKp: cmd: '' exp: "Returns a U32 value indicating whether the SV contains a character string.\nChecks the B setting. Use C instead.\n\n\tU32\tSvPOKp(SV* sv)" SvPV: cmd: '' exp: "Returns a pointer to the string in the SV, or a stringified form of\nthe SV if the SV does not contain a string. The SV may cache the\nstringified version becoming C. Handles 'get' magic. See also\nC for a version which guarantees to evaluate sv only once.\n\n\tchar*\tSvPV(SV* sv, STRLEN len)" SvPVX: cmd: '' exp: "Returns a pointer to the physical string in the SV. The SV must contain a\nstring.\n\n\tchar*\tSvPVX(SV* sv)" SvPV_force: cmd: '' exp: "Like C but will force the SV into containing just a string\n(C). You want force if you are going to update the C\ndirectly.\n\n\tchar*\tSvPV_force(SV* sv, STRLEN len)" SvPV_force_nomg: cmd: '' exp: "Like C but will force the SV into containing just a string\n(C). You want force if you are going to update the C\ndirectly. Doesn't process magic.\n\n\tchar*\tSvPV_force_nomg(SV* sv, STRLEN len)" SvPV_nolen: cmd: '' exp: "Returns a pointer to the string in the SV, or a stringified form of\nthe SV if the SV does not contain a string. The SV may cache the\nstringified form becoming C. Handles 'get' magic.\n\n\tchar*\tSvPV_nolen(SV* sv)" SvPV_nomg: cmd: '' exp: "Like C but doesn't process magic.\n\n\tchar*\tSvPV_nomg(SV* sv, STRLEN len)" SvPV_set: cmd: '' exp: "Set the value of the PV pointer in sv to val. See C.\n\n\tvoid\tSvPV_set(SV* sv, char* val)" SvPVbyte: cmd: '' exp: "Like C, but converts sv to byte representation first if necessary.\n\n\tchar*\tSvPVbyte(SV* sv, STRLEN len)" SvPVbyte_force: cmd: '' exp: "Like C, but converts sv to byte representation first if necessary.\n\n\tchar*\tSvPVbyte_force(SV* sv, STRLEN len)" SvPVbyte_nolen: cmd: '' exp: "Like C, but converts sv to byte representation first if necessary.\n\n\tchar*\tSvPVbyte_nolen(SV* sv)" SvPVbytex: cmd: '' exp: "Like C, but converts sv to byte representation first if necessary.\nGuarantees to evaluate sv only once; use the more efficient C\notherwise.\n\n\tchar*\tSvPVbytex(SV* sv, STRLEN len)" SvPVbytex_force: cmd: '' exp: "Like C, but converts sv to byte representation first if necessary.\nGuarantees to evaluate sv only once; use the more efficient C\notherwise.\n\n\tchar*\tSvPVbytex_force(SV* sv, STRLEN len)" SvPVutf8: cmd: '' exp: "Like C, but converts sv to utf8 first if necessary.\n\n\tchar*\tSvPVutf8(SV* sv, STRLEN len)" SvPVutf8_force: cmd: '' exp: "Like C, but converts sv to utf8 first if necessary.\n\n\tchar*\tSvPVutf8_force(SV* sv, STRLEN len)" SvPVutf8_nolen: cmd: '' exp: "Like C, but converts sv to utf8 first if necessary.\n\n\tchar*\tSvPVutf8_nolen(SV* sv)" SvPVutf8x: cmd: '' exp: "Like C, but converts sv to utf8 first if necessary.\nGuarantees to evaluate sv only once; use the more efficient C\notherwise.\n\n\tchar*\tSvPVutf8x(SV* sv, STRLEN len)" SvPVutf8x_force: cmd: '' exp: "Like C, but converts sv to utf8 first if necessary.\nGuarantees to evaluate sv only once; use the more efficient C\notherwise.\n\n\tchar*\tSvPVutf8x_force(SV* sv, STRLEN len)" SvPVx: cmd: '' exp: "A version of C which guarantees to evaluate C only once.\nOnly use this if C is an expression with side effects, otherwise use the\nmore efficient C.\n\n\tchar*\tSvPVx(SV* sv, STRLEN len)" SvREFCNT: cmd: '' exp: "Returns the value of the object's reference count.\n\n\tU32\tSvREFCNT(SV* sv)" SvREFCNT_dec: cmd: '' exp: "Decrements the reference count of the given SV.\n\n\tvoid\tSvREFCNT_dec(SV* sv)" SvREFCNT_inc: cmd: '' exp: "Increments the reference count of the given SV.\n\nAll of the following SvREFCNT_inc* macros are optimized versions of\nSvREFCNT_inc, and can be replaced with SvREFCNT_inc.\n\n\tSV*\tSvREFCNT_inc(SV* sv)" SvREFCNT_inc_NN: cmd: '' exp: "Same as SvREFCNT_inc, but can only be used if you know I\nis not NULL. Since we don't have to check the NULLness, it's faster\nand smaller.\n\n\tSV*\tSvREFCNT_inc_NN(SV* sv)" SvREFCNT_inc_simple: cmd: '' exp: "Same as SvREFCNT_inc, but can only be used with expressions without side\neffects. Since we don't have to store a temporary value, it's faster.\n\n\tSV*\tSvREFCNT_inc_simple(SV* sv)" SvREFCNT_inc_simple_NN: cmd: '' exp: "Same as SvREFCNT_inc_simple, but can only be used if you know I\nis not NULL. Since we don't have to check the NULLness, it's faster\nand smaller.\n\n\tSV*\tSvREFCNT_inc_simple_NN(SV* sv)" SvREFCNT_inc_simple_void: cmd: '' exp: "Same as SvREFCNT_inc_simple, but can only be used if you don't need the\nreturn value. The macro doesn't need to return a meaningful value.\n\n\tvoid\tSvREFCNT_inc_simple_void(SV* sv)" SvREFCNT_inc_simple_void_NN: cmd: '' exp: "Same as SvREFCNT_inc, but can only be used if you don't need the return\nvalue, and you know that I is not NULL. The macro doesn't need\nto return a meaningful value, or check for NULLness, so it's smaller\nand faster.\n\n\tvoid\tSvREFCNT_inc_simple_void_NN(SV* sv)" SvREFCNT_inc_void: cmd: '' exp: "Same as SvREFCNT_inc, but can only be used if you don't need the\nreturn value. The macro doesn't need to return a meaningful value.\n\n\tvoid\tSvREFCNT_inc_void(SV* sv)" SvREFCNT_inc_void_NN: cmd: '' exp: "Same as SvREFCNT_inc, but can only be used if you don't need the return\nvalue, and you know that I is not NULL. The macro doesn't need\nto return a meaningful value, or check for NULLness, so it's smaller\nand faster.\n\n\tvoid\tSvREFCNT_inc_void_NN(SV* sv)" SvROK: cmd: '' exp: "Tests if the SV is an RV.\n\n\tU32\tSvROK(SV* sv)" SvROK_off: cmd: '' exp: "Unsets the RV status of an SV.\n\n\tvoid\tSvROK_off(SV* sv)" SvROK_on: cmd: '' exp: "Tells an SV that it is an RV.\n\n\tvoid\tSvROK_on(SV* sv)" SvRV: cmd: '' exp: "Dereferences an RV to return the SV.\n\n\tSV*\tSvRV(SV* sv)" SvRV_set: cmd: '' exp: "Set the value of the RV pointer in sv to val. See C.\n\n\tvoid\tSvRV_set(SV* sv, SV* val)" SvRX: cmd: '' exp: "Convenience macro to get the REGEXP from a SV. This is approximately\nequivalent to the following snippet:\n\n if (SvMAGICAL(sv))\n mg_get(sv);\n if (SvROK(sv) &&\n (tmpsv = (SV*)SvRV(sv)) &&\n SvTYPE(tmpsv) == SVt_PVMG &&\n (tmpmg = mg_find(tmpsv, PERL_MAGIC_qr)))\n {\n return (REGEXP *)tmpmg->mg_obj;\n }\n\nNULL will be returned if a REGEXP* is not found.\n\n\tREGEXP *\tSvRX(SV *sv)" SvRXOK: cmd: '' exp: "Returns a boolean indicating whether the SV contains qr magic\n(PERL_MAGIC_qr).\n\nIf you want to do something with the REGEXP* later use SvRX instead\nand check for NULL.\n\n\tbool\tSvRXOK(SV* sv)" SvSETMAGIC: cmd: '' exp: "Invokes C on an SV if it has 'set' magic. This macro evaluates its\nargument more than once.\n\n\tvoid\tSvSETMAGIC(SV* sv)" SvSHARE: cmd: '' exp: "Arranges for sv to be shared between threads if a suitable module\nhas been loaded.\n\n\tvoid\tSvSHARE(SV* sv)" SvSTASH: cmd: '' exp: "Returns the stash of the SV.\n\n\tHV*\tSvSTASH(SV* sv)" SvSTASH_set: cmd: '' exp: "Set the value of the STASH pointer in sv to val. See C.\n\n\tvoid\tSvSTASH_set(SV* sv, HV* val)" SvSetMagicSV: cmd: '' exp: "Like C, but does any set magic required afterwards.\n\n\tvoid\tSvSetMagicSV(SV* dsb, SV* ssv)" SvSetMagicSV_nosteal: cmd: '' exp: "Like C, but does any set magic required afterwards.\n\n\tvoid\tSvSetMagicSV_nosteal(SV* dsv, SV* ssv)" SvSetSV: cmd: '' exp: "Calls C if dsv is not the same as ssv. May evaluate arguments\nmore than once.\n\n\tvoid\tSvSetSV(SV* dsb, SV* ssv)" SvSetSV_nosteal: cmd: '' exp: "Calls a non-destructive version of C if dsv is not the same as\nssv. May evaluate arguments more than once.\n\n\tvoid\tSvSetSV_nosteal(SV* dsv, SV* ssv)" SvTAINT: cmd: '' exp: "Taints an SV if tainting is enabled.\n\n\tvoid\tSvTAINT(SV* sv)" SvTAINTED: cmd: '' exp: "Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if\nnot.\n\n\tbool\tSvTAINTED(SV* sv)" SvTAINTED_off: cmd: '' exp: "Untaints an SV. Be I careful with this routine, as it short-circuits\nsome of Perl's fundamental security features. XS module authors should not\nuse this function unless they fully understand all the implications of\nunconditionally untainting the value. Untainting should be done in the\nstandard perl fashion, via a carefully crafted regexp, rather than directly\nuntainting variables.\n\n\tvoid\tSvTAINTED_off(SV* sv)" SvTAINTED_on: cmd: '' exp: "Marks an SV as tainted if tainting is enabled.\n\n\tvoid\tSvTAINTED_on(SV* sv)" SvTRUE: cmd: '' exp: "Returns a boolean indicating whether Perl would evaluate the SV as true or\nfalse. See SvOK() for a defined/undefined test. Does not handle 'get' magic.\n\n\tbool\tSvTRUE(SV* sv)" SvTYPE: cmd: '' exp: "Returns the type of the SV. See C.\n\n\tsvtype\tSvTYPE(SV* sv)" SvUNLOCK: cmd: '' exp: "Releases a mutual exclusion lock on sv if a suitable module\nhas been loaded.\n\n\tvoid\tSvUNLOCK(SV* sv)" SvUOK: cmd: '' exp: "Returns a boolean indicating whether the SV contains an unsigned integer.\n\n\tbool\tSvUOK(SV* sv)" SvUPGRADE: cmd: '' exp: "Used to upgrade an SV to a more complex form. Uses C to\nperform the upgrade if necessary. See C.\n\n\tvoid\tSvUPGRADE(SV* sv, svtype type)" SvUTF8: cmd: '' exp: "Returns a U32 value indicating whether the SV contains UTF-8 encoded data.\nCall this after SvPV() in case any call to string overloading updates the\ninternal flag.\n\n\tU32\tSvUTF8(SV* sv)" SvUTF8_off: cmd: '' exp: "Unsets the UTF-8 status of an SV.\n\n\tvoid\tSvUTF8_off(SV *sv)" SvUTF8_on: cmd: '' exp: "Turn on the UTF-8 status of an SV (the data is not changed, just the flag).\nDo not use frivolously.\n\n\tvoid\tSvUTF8_on(SV *sv)" SvUV: cmd: '' exp: "Coerces the given SV to an unsigned integer and returns it. See C\nfor a version which guarantees to evaluate sv only once.\n\n\tUV\tSvUV(SV* sv)" SvUVX: cmd: '' exp: "Returns the raw value in the SV's UV slot, without checks or conversions.\nOnly use when you are sure SvIOK is true. See also C.\n\n\tUV\tSvUVX(SV* sv)" SvUV_nomg: cmd: '' exp: "Like C but doesn't process magic.\n\n\tUV\tSvUV_nomg(SV* sv)" SvUV_set: cmd: '' exp: "Set the value of the UV pointer in sv to val. See C.\n\n\tvoid\tSvUV_set(SV* sv, UV val)" SvUVx: cmd: '' exp: "Coerces the given SV to an unsigned integer and returns it. Guarantees to\nC only once. Only use this if C is an expression with side effects,\notherwise use the more efficient C.\n\n\tUV\tSvUVx(SV* sv)" SvVOK: cmd: '' exp: "Returns a boolean indicating whether the SV contains a v-string.\n\n\tbool\tSvVOK(SV* sv)" THIS: cmd: '' exp: "Variable which is setup by C to designate the object in a C++ \nXSUB. This is always the proper type for the C++ object. See C and \nL.\n\n\t(whatever)\tTHIS" UNDERBAR: cmd: '' exp: "The SV* corresponding to the $_ variable. Works even if there\nis a lexical $_ in scope." XCPT_CATCH: cmd: '' exp: "Introduces a catch block. See L." XCPT_RETHROW: cmd: '' exp: "Rethrows a previously caught exception. See L.\n\n\t\tXCPT_RETHROW;" XCPT_TRY_END: cmd: '' exp: "Ends a try block. See L." XCPT_TRY_START: cmd: '' exp: "Starts a try block. See L." XPUSHi: cmd: '' exp: "Push an integer onto the stack, extending the stack if necessary. Handles\n'set' magic. Uses C, so C or C should be called to\ndeclare it. Do not call multiple C-oriented macros to return lists\nfrom XSUB's - see C instead. See also C and C.\n\n\tvoid\tXPUSHi(IV iv)" XPUSHmortal: cmd: '' exp: "Push a new mortal SV onto the stack, extending the stack if necessary.\nDoes not use C. See also C, C and C.\n\n\tvoid\tXPUSHmortal()" XPUSHn: cmd: '' exp: "Push a double onto the stack, extending the stack if necessary. Handles\n'set' magic. Uses C, so C or C should be called to\ndeclare it. Do not call multiple C-oriented macros to return lists\nfrom XSUB's - see C instead. See also C and C.\n\n\tvoid\tXPUSHn(NV nv)" XPUSHp: cmd: '' exp: "Push a string onto the stack, extending the stack if necessary. The C\nindicates the length of the string. Handles 'set' magic. Uses C, so\nC or C should be called to declare it. Do not call\nmultiple C-oriented macros to return lists from XSUB's - see\nC instead. See also C and C.\n\n\tvoid\tXPUSHp(char* str, STRLEN len)" XPUSHs: cmd: '' exp: "Push an SV onto the stack, extending the stack if necessary. Does not\nhandle 'set' magic. Does not use C. See also C,\nC and C.\n\n\tvoid\tXPUSHs(SV* sv)" XPUSHu: cmd: '' exp: "Push an unsigned integer onto the stack, extending the stack if necessary.\nHandles 'set' magic. Uses C, so C or C should be\ncalled to declare it. Do not call multiple C-oriented macros to\nreturn lists from XSUB's - see C instead. See also C and\nC.\n\n\tvoid\tXPUSHu(UV uv)" XS: cmd: '' exp: "Macro to declare an XSUB and its C parameter list. This is handled by\nC." XSRETURN: cmd: '' exp: "Return from XSUB, indicating number of items on the stack. This is usually\nhandled by C.\n\n\tvoid\tXSRETURN(int nitems)" XSRETURN_EMPTY: cmd: '' exp: "Return an empty list from an XSUB immediately.\n\n\t\tXSRETURN_EMPTY;" XSRETURN_IV: cmd: '' exp: "Return an integer from an XSUB immediately. Uses C.\n\n\tvoid\tXSRETURN_IV(IV iv)" XSRETURN_NO: cmd: '' exp: "Return C<&PL_sv_no> from an XSUB immediately. Uses C.\n\n\t\tXSRETURN_NO;" XSRETURN_NV: cmd: '' exp: "Return a double from an XSUB immediately. Uses C.\n\n\tvoid\tXSRETURN_NV(NV nv)" XSRETURN_PV: cmd: '' exp: "Return a copy of a string from an XSUB immediately. Uses C.\n\n\tvoid\tXSRETURN_PV(char* str)" XSRETURN_UNDEF: cmd: '' exp: "Return C<&PL_sv_undef> from an XSUB immediately. Uses C.\n\n\t\tXSRETURN_UNDEF;" XSRETURN_UV: cmd: '' exp: "Return an integer from an XSUB immediately. Uses C.\n\n\tvoid\tXSRETURN_UV(IV uv)" XSRETURN_YES: cmd: '' exp: "Return C<&PL_sv_yes> from an XSUB immediately. Uses C.\n\n\t\tXSRETURN_YES;" XST_mIV: cmd: '' exp: "Place an integer into the specified position C on the stack. The\nvalue is stored in a new mortal SV.\n\n\tvoid\tXST_mIV(int pos, IV iv)" XST_mNO: cmd: '' exp: "Place C<&PL_sv_no> into the specified position C on the\nstack.\n\n\tvoid\tXST_mNO(int pos)" XST_mNV: cmd: '' exp: "Place a double into the specified position C on the stack. The value\nis stored in a new mortal SV.\n\n\tvoid\tXST_mNV(int pos, NV nv)" XST_mPV: cmd: '' exp: "Place a copy of a string into the specified position C on the stack. \nThe value is stored in a new mortal SV.\n\n\tvoid\tXST_mPV(int pos, char* str)" XST_mUNDEF: cmd: '' exp: "Place C<&PL_sv_undef> into the specified position C on the\nstack.\n\n\tvoid\tXST_mUNDEF(int pos)" XST_mYES: cmd: '' exp: "Place C<&PL_sv_yes> into the specified position C on the\nstack.\n\n\tvoid\tXST_mYES(int pos)" XS_VERSION: cmd: '' exp: "The version identifier for an XS module. This is usually\nhandled automatically by C. See C." XS_VERSION_BOOTCHECK: cmd: '' exp: "Macro to verify that a PM module's $VERSION variable matches the XS\nmodule's C variable. This is usually handled automatically by\nC. See L.\n\n\t\tXS_VERSION_BOOTCHECK;" Zero: cmd: '' exp: "The XSUB-writer's interface to the C C function. The C is the\ndestination, C is the number of items, and C is the type.\n\n\tvoid\tZero(void* dest, int nitems, type)" ZeroD: cmd: '' exp: "Like C but returns dest. Useful for encouraging compilers to tail-call\noptimise.\n\n\tvoid *\tZeroD(void* dest, int nitems, type)" av_clear: cmd: '' exp: "Clears an array, making it empty. Does not free the memory used by the\narray itself.\n\n\tvoid\tav_clear(AV *av)" av_create_and_push: cmd: '' exp: "Push an SV onto the end of the array, creating the array if necessary.\nA small internal helper function to remove a commonly duplicated idiom.\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tvoid\tav_create_and_push(AV **const avp, SV *const val)" av_create_and_unshift_one: cmd: '' exp: "Unshifts an SV onto the beginning of the array, creating the array if\nnecessary.\nA small internal helper function to remove a commonly duplicated idiom.\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tSV**\tav_create_and_unshift_one(AV **const avp, SV *const val)" av_delete: cmd: '' exp: "Deletes the element indexed by C from the array. Returns the\ndeleted element. If C equals C, the element is freed\nand null is returned.\n\n\tSV*\tav_delete(AV *av, I32 key, I32 flags)" av_exists: cmd: '' exp: "Returns true if the element indexed by C has been initialized.\n\nThis relies on the fact that uninitialized array elements are set to\nC<&PL_sv_undef>.\n\n\tbool\tav_exists(AV *av, I32 key)" av_extend: cmd: '' exp: "Pre-extend an array. The C is the index to which the array should be\nextended.\n\n\tvoid\tav_extend(AV *av, I32 key)" av_fetch: cmd: '' exp: "Returns the SV at the specified index in the array. The C is the\nindex. If C is set then the fetch will be part of a store. Check\nthat the return value is non-null before dereferencing it to a C.\n\nSee L for\nmore information on how to use this function on tied arrays. \n\n\tSV**\tav_fetch(AV *av, I32 key, I32 lval)" av_fill: cmd: '' exp: "Set the highest index in the array to the given number, equivalent to\nPerl's C<$#array = $fill;>.\n\nThe number of elements in the an array will be C after\nav_fill() returns. If the array was previously shorter then the\nadditional elements appended are set to C. If the array\nwas longer, then the excess elements are freed. C is\nthe same as C.\n\n\tvoid\tav_fill(AV *av, I32 fill)" av_len: cmd: '' exp: "Returns the highest index in the array. The number of elements in the\narray is C. Returns -1 if the array is empty.\n\n\tI32\tav_len(const AV *av)" av_make: cmd: '' exp: "Creates a new AV and populates it with a list of SVs. The SVs are copied\ninto the array, so they may be freed after the call to av_make. The new AV\nwill have a reference count of 1.\n\n\tAV*\tav_make(I32 size, SV **strp)" av_pop: cmd: '' exp: "Pops an SV off the end of the array. Returns C<&PL_sv_undef> if the array\nis empty.\n\n\tSV*\tav_pop(AV *av)" av_push: cmd: '' exp: "Pushes an SV onto the end of the array. The array will grow automatically\nto accommodate the addition. Like C, this takes ownership of one\nreference count.\n\n\tvoid\tav_push(AV *av, SV *val)" av_shift: cmd: '' exp: "Shifts an SV off the beginning of the array. Returns C<&PL_sv_undef> if the \narray is empty.\n\n\tSV*\tav_shift(AV *av)" av_store: cmd: '' exp: "Stores an SV in an array. The array index is specified as C. The\nreturn value will be NULL if the operation failed or if the value did not\nneed to be actually stored within the array (as in the case of tied\narrays). Otherwise it can be dereferenced to get the original C. Note\nthat the caller is responsible for suitably incrementing the reference\ncount of C before the call, and decrementing it if the function\nreturned NULL.\n\nSee L for\nmore information on how to use this function on tied arrays.\n\n\tSV**\tav_store(AV *av, I32 key, SV *val)" av_undef: cmd: '' exp: "Undefines the array. Frees the memory used by the array itself.\n\n\tvoid\tav_undef(AV *av)" av_unshift: cmd: '' exp: "Unshift the given number of C values onto the beginning of the\narray. The array will grow automatically to accommodate the addition. You\nmust then use C to assign values to these new elements.\n\n\tvoid\tav_unshift(AV *av, I32 num)" ax: cmd: '' exp: "Variable which is setup by C to indicate the stack base offset,\nused by the C, C and C macros. The C macro\nmust be called prior to setup the C variable.\n\n\tI32\tax" bytes_from_utf8: cmd: '' exp: "Converts a string C of length C from UTF-8 into native byte encoding.\nUnlike C but like C, returns a pointer to\nthe newly-created string, and updates C to contain the new\nlength. Returns the original string if no conversion occurs, C\nis unchanged. Do nothing if C points to 0. Sets C to\n0 if C is converted or consisted entirely of characters that are invariant\nin utf8 (i.e., US-ASCII on non-EBCDIC machines).\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tU8*\tbytes_from_utf8(const U8 *s, STRLEN *len, bool *is_utf8)" bytes_to_utf8: cmd: '' exp: "Converts a string C of length C from the native encoding into UTF-8.\nReturns a pointer to the newly-created string, and sets C to\nreflect the new length.\n\nA NUL character will be written after the end of the string.\n\nIf you want to convert to UTF-8 from encodings other than\nthe native (Latin1 or EBCDIC),\nsee sv_recode_to_utf8().\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tU8*\tbytes_to_utf8(const U8 *s, STRLEN *len)" call_argv: cmd: '' exp: "Performs a callback to the specified Perl sub. See L.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tI32\tcall_argv(const char* sub_name, I32 flags, char** argv)" call_method: cmd: '' exp: "Performs a callback to the specified Perl method. The blessed object must\nbe on the stack. See L.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tI32\tcall_method(const char* methname, I32 flags)" call_pv: cmd: '' exp: "Performs a callback to the specified Perl sub. See L.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tI32\tcall_pv(const char* sub_name, I32 flags)" call_sv: cmd: '' exp: "Performs a callback to the Perl sub whose name is in the SV. See\nL.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tI32\tcall_sv(SV* sv, VOL I32 flags)" croak: cmd: '' exp: "This is the XSUB-writer's interface to Perl's C function.\nNormally call this function the same way you call the C C\nfunction. Calling C returns control directly to Perl,\nsidestepping the normal C order of execution. See C.\n\nIf you want to throw an exception object, assign the object to\nC<$@> and then pass C to croak():\n\n errsv = get_sv(\"@\", GV_ADD);\n sv_setsv(errsv, exception_object);\n croak(NULL);\n\n\tvoid\tcroak(const char* pat, ...)" croak_xs_usage: cmd: '' exp: "A specialised variant of C for emitting the usage message for xsubs\n\n croak_xs_usage(cv, \"eee_yow\");\n\nworks out the package name and subroutine name from C, and then calls\nC. Hence if C is C<&ouch::awk>, it would call C as:\n\n Perl_croak(aTHX_ \"Usage %s::%s(%s)\", \"ouch\" \"awk\", \"eee_yow\");\n\n\tvoid\tcroak_xs_usage(const CV *const cv, const char *const params)" cv_const_sv: cmd: '' exp: "If C is a constant sub eligible for inlining. returns the constant\nvalue returned by the sub. Otherwise, returns NULL.\n\nConstant subs can be created with C or as described in\nL.\n\n\tSV*\tcv_const_sv(CV* cv)" cv_undef: cmd: '' exp: "Clear out all the active components of a CV. This can happen either\nby an explicit C, or by the reference count going to zero.\nIn the former case, we keep the CvOUTSIDE pointer, so that any anonymous\nchildren can still follow the full lexical scope chain.\n\n\tvoid\tcv_undef(CV* cv)" dAX: cmd: '' exp: "Sets up the C variable.\nThis is usually handled automatically by C by calling C.\n\n\t\tdAX;" dAXMARK: cmd: '' exp: "Sets up the C variable and stack marker variable C.\nThis is usually handled automatically by C by calling C.\n\n\t\tdAXMARK;" dITEMS: cmd: '' exp: "Sets up the C variable.\nThis is usually handled automatically by C by calling C.\n\n\t\tdITEMS;" dMARK: cmd: '' exp: "Declare a stack marker variable, C, for the XSUB. See C and\nC.\n\n\t\tdMARK;" dMULTICALL: cmd: '' exp: "Declare local variables for a multicall. See L.\n\n\t\tdMULTICALL;" dORIGMARK: cmd: '' exp: "Saves the original stack mark for the XSUB. See C.\n\n\t\tdORIGMARK;" dSP: cmd: '' exp: "Declares a local copy of perl's stack pointer for the XSUB, available via\nthe C macro. See C.\n\n\t\tdSP;" dUNDERBAR: cmd: '' exp: "Sets up the C variable for an XSUB that wishes to use\nC.\n\n\t\tdUNDERBAR;" dXCPT: cmd: '' exp: "Set up necessary local variables for exception handling.\nSee L.\n\n\t\tdXCPT;" dXSARGS: cmd: '' exp: "Sets up stack and mark pointers for an XSUB, calling dSP and dMARK.\nSets up the C and C variables by calling C and C.\nThis is usually handled automatically by C.\n\n\t\tdXSARGS;" dXSI32: cmd: '' exp: "Sets up the C variable for an XSUB which has aliases. This is usually\nhandled automatically by C.\n\n\t\tdXSI32;" eval_pv: cmd: '' exp: "Tells Perl to C the given string and return an SV* result.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tSV*\teval_pv(const char* p, I32 croak_on_error)" eval_sv: cmd: '' exp: "Tells Perl to C the string in the SV.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tI32\teval_sv(SV* sv, I32 flags)" fbm_compile: cmd: '' exp: "Analyses the string in order to make fast searches on it using fbm_instr()\n-- the Boyer-Moore algorithm.\n\n\tvoid\tfbm_compile(SV* sv, U32 flags)" fbm_instr: cmd: '' exp: "Returns the location of the SV in the string delimited by C and\nC. It returns C if the string can't be found. The C\ndoes not have to be fbm_compiled, but the search will not be as fast\nthen.\n\n\tchar*\tfbm_instr(unsigned char* big, unsigned char* bigend, SV* littlestr, U32 flags)" find_runcv: cmd: '' exp: "Locate the CV corresponding to the currently executing sub or eval.\nIf db_seqp is non_null, skip CVs that are in the DB package and populate\n*db_seqp with the cop sequence number at the point that the DB:: code was\nentered. (allows debuggers to eval in the scope of the breakpoint rather\nthan in the scope of the debugger itself).\n\n\tCV*\tfind_runcv(U32 *db_seqp)" form: cmd: '' exp: "Takes a sprintf-style format pattern and conventional\n(non-SV) arguments and returns the formatted string.\n\n (char *) Perl_form(pTHX_ const char* pat, ...)\n\ncan be used any place a string (char *) is required:\n\n char * s = Perl_form(\"%d.%d\",major,minor);\n\nUses a single private buffer so if you want to format several strings you\nmust explicitly copy the earlier strings away (and free the copies when you\nare done).\n\n\tchar*\tform(const char* pat, ...)" get_av: cmd: '' exp: "Returns the AV of the specified Perl array. C are passed to\nC. If C is set and the\nPerl variable does not exist then it will be created. If C is zero\nand the variable does not exist then NULL is returned.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tAV*\tget_av(const char *name, I32 flags)" get_cv: cmd: '' exp: "Uses C to get the length of C, then calls C.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tCV*\tget_cv(const char* name, I32 flags)" get_cvn_flags: cmd: '' exp: "Returns the CV of the specified Perl subroutine. C are passed to\nC. If C is set and the Perl subroutine does not\nexist then it will be declared (which has the same effect as saying\nC). If C is not set and the subroutine does not exist\nthen NULL is returned.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tCV*\tget_cvn_flags(const char* name, STRLEN len, I32 flags)" get_hv: cmd: '' exp: "Returns the HV of the specified Perl hash. C are passed to\nC. If C is set and the\nPerl variable does not exist then it will be created. If C is zero\nand the variable does not exist then NULL is returned.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tHV*\tget_hv(const char *name, I32 flags)" get_sv: cmd: '' exp: "Returns the SV of the specified Perl scalar. C are passed to\nC. If C is set and the\nPerl variable does not exist then it will be created. If C is zero\nand the variable does not exist then NULL is returned.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tSV*\tget_sv(const char *name, I32 flags)" getcwd_sv: cmd: '' exp: "Fill the sv with current working directory\n\n\tint\tgetcwd_sv(SV* sv)" grok_bin: cmd: '' exp: "converts a string representing a binary number to numeric form.\n\nOn entry I and I<*len> give the string to scan, I<*flags> gives\nconversion flags, and I should be NULL or a pointer to an NV.\nThe scan stops at the end of the string, or the first invalid character.\nUnless C is set in I<*flags>, encountering an\ninvalid character will also trigger a warning.\nOn return I<*len> is set to the length of the scanned string,\nand I<*flags> gives output flags.\n\nIf the value is <= C it is returned as a UV, the output flags are clear,\nand nothing is written to I<*result>. If the value is > UV_MAX C\nreturns UV_MAX, sets C in the output flags,\nand writes the value to I<*result> (or the value is discarded if I\nis NULL).\n\nThe binary number may optionally be prefixed with \"0b\" or \"b\" unless\nC is set in I<*flags> on entry. If\nC is set in I<*flags> then the binary\nnumber may use '_' characters to separate digits.\n\n\tUV\tgrok_bin(const char* start, STRLEN* len_p, I32* flags, NV *result)" grok_hex: cmd: '' exp: "converts a string representing a hex number to numeric form.\n\nOn entry I and I<*len> give the string to scan, I<*flags> gives\nconversion flags, and I should be NULL or a pointer to an NV.\nThe scan stops at the end of the string, or the first invalid character.\nUnless C is set in I<*flags>, encountering an\ninvalid character will also trigger a warning.\nOn return I<*len> is set to the length of the scanned string,\nand I<*flags> gives output flags.\n\nIf the value is <= UV_MAX it is returned as a UV, the output flags are clear,\nand nothing is written to I<*result>. If the value is > UV_MAX C\nreturns UV_MAX, sets C in the output flags,\nand writes the value to I<*result> (or the value is discarded if I\nis NULL).\n\nThe hex number may optionally be prefixed with \"0x\" or \"x\" unless\nC is set in I<*flags> on entry. If\nC is set in I<*flags> then the hex\nnumber may use '_' characters to separate digits.\n\n\tUV\tgrok_hex(const char* start, STRLEN* len_p, I32* flags, NV *result)" grok_number: cmd: '' exp: "Recognise (or not) a number. The type of the number is returned\n(0 if unrecognised), otherwise it is a bit-ORed combination of\nIS_NUMBER_IN_UV, IS_NUMBER_GREATER_THAN_UV_MAX, IS_NUMBER_NOT_INT,\nIS_NUMBER_NEG, IS_NUMBER_INFINITY, IS_NUMBER_NAN (defined in perl.h).\n\nIf the value of the number can fit an in UV, it is returned in the *valuep\nIS_NUMBER_IN_UV will be set to indicate that *valuep is valid, IS_NUMBER_IN_UV\nwill never be set unless *valuep is valid, but *valuep may have been assigned\nto during processing even though IS_NUMBER_IN_UV is not set on return.\nIf valuep is NULL, IS_NUMBER_IN_UV will be set for the same cases as when\nvaluep is non-NULL, but no actual assignment (or SEGV) will occur.\n\nIS_NUMBER_NOT_INT will be set with IS_NUMBER_IN_UV if trailing decimals were\nseen (in which case *valuep gives the true value truncated to an integer), and\nIS_NUMBER_NEG if the number is negative (in which case *valuep holds the\nabsolute value). IS_NUMBER_IN_UV is not set if e notation was used or the\nnumber is larger than a UV.\n\n\tint\tgrok_number(const char *pv, STRLEN len, UV *valuep)" grok_numeric_radix: cmd: '' exp: "Scan and skip for a numeric decimal separator (radix).\n\n\tbool\tgrok_numeric_radix(const char **sp, const char *send)" grok_oct: cmd: '' exp: "converts a string representing an octal number to numeric form.\n\nOn entry I and I<*len> give the string to scan, I<*flags> gives\nconversion flags, and I should be NULL or a pointer to an NV.\nThe scan stops at the end of the string, or the first invalid character.\nUnless C is set in I<*flags>, encountering an\ninvalid character will also trigger a warning.\nOn return I<*len> is set to the length of the scanned string,\nand I<*flags> gives output flags.\n\nIf the value is <= UV_MAX it is returned as a UV, the output flags are clear,\nand nothing is written to I<*result>. If the value is > UV_MAX C\nreturns UV_MAX, sets C in the output flags,\nand writes the value to I<*result> (or the value is discarded if I\nis NULL).\n\nIf C is set in I<*flags> then the octal\nnumber may use '_' characters to separate digits.\n\n\tUV\tgrok_oct(const char* start, STRLEN* len_p, I32* flags, NV *result)" gv_const_sv: cmd: '' exp: "If C is a typeglob whose subroutine entry is a constant sub eligible for\ninlining, or C is a placeholder reference that would be promoted to such\na typeglob, then returns the value returned by the sub. Otherwise, returns\nNULL.\n\n\tSV*\tgv_const_sv(GV* gv)" gv_fetchmeth: cmd: '' exp: "Returns the glob with the given C and a defined subroutine or\nC. The glob lives in the given C, or in the stashes\naccessible via @ISA and UNIVERSAL::.\n\nThe argument C should be either 0 or -1. If C, as a\nside-effect creates a glob with the given C in the given C\nwhich in the case of success contains an alias for the subroutine, and sets\nup caching info for this glob.\n\nThis function grants C<\"SUPER\"> token as a postfix of the stash name. The\nGV returned from C may be a method cache entry, which is not\nvisible to Perl code. So when calling C, you should not use\nthe GV directly; instead, you should use the method's CV, which can be\nobtained from the GV with the C macro.\n\n\tGV*\tgv_fetchmeth(HV* stash, const char* name, STRLEN len, I32 level)" gv_fetchmeth_autoload: cmd: '' exp: "Same as gv_fetchmeth(), but looks for autoloaded subroutines too.\nReturns a glob for the subroutine.\n\nFor an autoloaded subroutine without a GV, will create a GV even\nif C. For an autoloaded subroutine without a stub, GvCV()\nof the result may be zero.\n\n\tGV*\tgv_fetchmeth_autoload(HV* stash, const char* name, STRLEN len, I32 level)" gv_fetchmethod: cmd: '' exp: "See L.\n\n\tGV*\tgv_fetchmethod(HV* stash, const char* name)" gv_fetchmethod_autoload: cmd: '' exp: "Returns the glob which contains the subroutine to call to invoke the method\non the C. In fact in the presence of autoloading this may be the\nglob for \"AUTOLOAD\". In this case the corresponding variable $AUTOLOAD is\nalready setup.\n\nThe third parameter of C determines whether\nAUTOLOAD lookup is performed if the given method is not present: non-zero\nmeans yes, look for AUTOLOAD; zero means no, don't look for AUTOLOAD.\nCalling C is equivalent to calling C\nwith a non-zero C parameter.\n\nThese functions grant C<\"SUPER\"> token as a prefix of the method name. Note\nthat if you want to keep the returned glob for a long time, you need to\ncheck for it being \"AUTOLOAD\", since at the later time the call may load a\ndifferent subroutine due to $AUTOLOAD changing its value. Use the glob\ncreated via a side effect to do this.\n\nThese functions have the same side-effects and as C with\nC. C should be writable if contains C<':'> or C<'\n''>. The warning against passing the GV returned by C to\nC apply equally to these functions.\n\n\tGV*\tgv_fetchmethod_autoload(HV* stash, const char* name, I32 autoload)" gv_stashpv: cmd: '' exp: "Returns a pointer to the stash for a specified package. Uses C to\ndetermine the length of C, then calls C.\n\n\tHV*\tgv_stashpv(const char* name, I32 flags)" gv_stashpvn: cmd: '' exp: "Returns a pointer to the stash for a specified package. The C\nparameter indicates the length of the C, in bytes. C is passed\nto C, so if set to C then the package will be\ncreated if it does not already exist. If the package does not exist and\nC is 0 (or any other setting that does not create packages) then NULL\nis returned.\n\n\n\tHV*\tgv_stashpvn(const char* name, U32 namelen, I32 flags)" gv_stashpvs: cmd: '' exp: "Like C, but takes a literal string instead of a string/length pair.\n\n\tHV*\tgv_stashpvs(const char* name, I32 create)" gv_stashsv: cmd: '' exp: "Returns a pointer to the stash for a specified package. See C.\n\n\tHV*\tgv_stashsv(SV* sv, I32 flags)" hv_assert: cmd: '' exp: "Check that a hash is in an internally consistent state.\n\n\tvoid\thv_assert(HV *hv)" hv_clear: cmd: '' exp: "Clears a hash, making it empty.\n\n\tvoid\thv_clear(HV* hv)" hv_clear_placeholders: cmd: '' exp: "Clears any placeholders from a hash. If a restricted hash has any of its keys\nmarked as readonly and the key is subsequently deleted, the key is not actually\ndeleted but is marked by assigning it a value of &PL_sv_placeholder. This tags\nit so it will be ignored by future operations such as iterating over the hash,\nbut will still allow the hash to have a value reassigned to the key at some\nfuture point. This function clears any such placeholder keys from the hash.\nSee Hash::Util::lock_keys() for an example of its use.\n\n\tvoid\thv_clear_placeholders(HV *hv)" hv_delete: cmd: '' exp: "Deletes a key/value pair in the hash. The value SV is removed from the\nhash and returned to the caller. The C is the length of the key.\nThe C value will normally be zero; if set to G_DISCARD then NULL\nwill be returned.\n\n\tSV*\thv_delete(HV *hv, const char *key, I32 klen, I32 flags)" hv_delete_ent: cmd: '' exp: "Deletes a key/value pair in the hash. The value SV is removed from the\nhash and returned to the caller. The C value will normally be zero;\nif set to G_DISCARD then NULL will be returned. C can be a valid\nprecomputed hash value, or 0 to ask for it to be computed.\n\n\tSV*\thv_delete_ent(HV *hv, SV *keysv, I32 flags, U32 hash)" hv_exists: cmd: '' exp: "Returns a boolean indicating whether the specified hash key exists. The\nC is the length of the key.\n\n\tbool\thv_exists(HV *hv, const char *key, I32 klen)" hv_exists_ent: cmd: '' exp: "Returns a boolean indicating whether the specified hash key exists. C\ncan be a valid precomputed hash value, or 0 to ask for it to be\ncomputed.\n\n\tbool\thv_exists_ent(HV *hv, SV *keysv, U32 hash)" hv_fetch: cmd: '' exp: "Returns the SV which corresponds to the specified key in the hash. The\nC is the length of the key. If C is set then the fetch will be\npart of a store. Check that the return value is non-null before\ndereferencing it to an C.\n\nSee L for more\ninformation on how to use this function on tied hashes.\n\n\tSV**\thv_fetch(HV *hv, const char *key, I32 klen, I32 lval)" hv_fetch_ent: cmd: '' exp: "Returns the hash entry which corresponds to the specified key in the hash.\nC must be a valid precomputed hash number for the given C, or 0\nif you want the function to compute it. IF C is set then the fetch\nwill be part of a store. Make sure the return value is non-null before\naccessing it. The return value when C is a tied hash is a pointer to a\nstatic location, so be sure to make a copy of the structure if you need to\nstore it somewhere.\n\nSee L for more\ninformation on how to use this function on tied hashes.\n\n\tHE*\thv_fetch_ent(HV *hv, SV *keysv, I32 lval, U32 hash)" hv_fetchs: cmd: '' exp: "Like C, but takes a literal string instead of a string/length pair.\n\n\tSV**\thv_fetchs(HV* tb, const char* key, I32 lval)" hv_iterinit: cmd: '' exp: "Prepares a starting point to traverse a hash table. Returns the number of\nkeys in the hash (i.e. the same as C). The return value is\ncurrently only meaningful for hashes without tie magic.\n\nNOTE: Before version 5.004_65, C used to return the number of\nhash buckets that happen to be in use. If you still need that esoteric\nvalue, you can get it through the macro C.\n\n\n\tI32\thv_iterinit(HV *hv)" hv_iterkey: cmd: '' exp: "Returns the key from the current position of the hash iterator. See\nC.\n\n\tchar*\thv_iterkey(HE* entry, I32* retlen)" hv_iterkeysv: cmd: '' exp: "Returns the key as an C from the current position of the hash\niterator. The return value will always be a mortal copy of the key. Also\nsee C.\n\n\tSV*\thv_iterkeysv(HE* entry)" hv_iternext: cmd: '' exp: "Returns entries from a hash iterator. See C.\n\nYou may call C or C on the hash entry that the\niterator currently points to, without losing your place or invalidating your\niterator. Note that in this case the current entry is deleted from the hash\nwith your iterator holding the last reference to it. Your iterator is flagged\nto free the entry on the next call to C, so you must not discard\nyour iterator immediately else the entry will leak - call C to\ntrigger the resource deallocation.\n\n\tHE*\thv_iternext(HV *hv)" hv_iternext_flags: cmd: '' exp: "Returns entries from a hash iterator. See C and C.\nThe C value will normally be zero; if HV_ITERNEXT_WANTPLACEHOLDERS is\nset the placeholders keys (for restricted hashes) will be returned in addition\nto normal keys. By default placeholders are automatically skipped over.\nCurrently a placeholder is implemented with a value that is\nC<&Perl_sv_placeholder>. Note that the implementation of placeholders and\nrestricted hashes may change, and the implementation currently is\ninsufficiently abstracted for any change to be tidy.\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tHE*\thv_iternext_flags(HV *hv, I32 flags)" hv_iternextsv: cmd: '' exp: "Performs an C, C, and C in one\noperation.\n\n\tSV*\thv_iternextsv(HV *hv, char **key, I32 *retlen)" hv_iterval: cmd: '' exp: "Returns the value from the current position of the hash iterator. See\nC.\n\n\tSV*\thv_iterval(HV *hv, HE *entry)" hv_magic: cmd: '' exp: "Adds magic to a hash. See C.\n\n\tvoid\thv_magic(HV *hv, GV *gv, int how)" hv_scalar: cmd: '' exp: "Evaluates the hash in scalar context and returns the result. Handles magic when the hash is tied.\n\n\tSV*\thv_scalar(HV *hv)" hv_store: cmd: '' exp: "Stores an SV in a hash. The hash key is specified as C and C is\nthe length of the key. The C parameter is the precomputed hash\nvalue; if it is zero then Perl will compute it. The return value will be\nNULL if the operation failed or if the value did not need to be actually\nstored within the hash (as in the case of tied hashes). Otherwise it can\nbe dereferenced to get the original C. Note that the caller is\nresponsible for suitably incrementing the reference count of C before\nthe call, and decrementing it if the function returned NULL. Effectively\na successful hv_store takes ownership of one reference to C. This is\nusually what you want; a newly created SV has a reference count of one, so\nif all your code does is create SVs then store them in a hash, hv_store\nwill own the only reference to the new SV, and your code doesn't need to do\nanything further to tidy up. hv_store is not implemented as a call to\nhv_store_ent, and does not create a temporary SV for the key, so if your\nkey data is not already in SV form then use hv_store in preference to\nhv_store_ent.\n\nSee L for more\ninformation on how to use this function on tied hashes.\n\n\tSV**\thv_store(HV *hv, const char *key, I32 klen, SV *val, U32 hash)" hv_store_ent: cmd: '' exp: "Stores C in a hash. The hash key is specified as C. The C\nparameter is the precomputed hash value; if it is zero then Perl will\ncompute it. The return value is the new hash entry so created. It will be\nNULL if the operation failed or if the value did not need to be actually\nstored within the hash (as in the case of tied hashes). Otherwise the\ncontents of the return value can be accessed using the C macros\ndescribed here. Note that the caller is responsible for suitably\nincrementing the reference count of C before the call, and\ndecrementing it if the function returned NULL. Effectively a successful\nhv_store_ent takes ownership of one reference to C. This is\nusually what you want; a newly created SV has a reference count of one, so\nif all your code does is create SVs then store them in a hash, hv_store\nwill own the only reference to the new SV, and your code doesn't need to do\nanything further to tidy up. Note that hv_store_ent only reads the C;\nunlike C it does not take ownership of it, so maintaining the correct\nreference count on C is entirely the caller's responsibility. hv_store\nis not implemented as a call to hv_store_ent, and does not create a temporary\nSV for the key, so if your key data is not already in SV form then use\nhv_store in preference to hv_store_ent.\n\nSee L for more\ninformation on how to use this function on tied hashes.\n\n\tHE*\thv_store_ent(HV *hv, SV *key, SV *val, U32 hash)" hv_stores: cmd: '' exp: "Like C, but takes a literal string instead of a string/length pair\nand omits the hash parameter.\n\n\tSV**\thv_stores(HV* tb, const char* key, NULLOK SV* val)" hv_undef: cmd: '' exp: "Undefines the hash.\n\n\tvoid\thv_undef(HV *hv)" ibcmp_utf8: cmd: '' exp: "Return true if the strings s1 and s2 differ case-insensitively, false\nif not (if they are equal case-insensitively). If u1 is true, the\nstring s1 is assumed to be in UTF-8-encoded Unicode. If u2 is true,\nthe string s2 is assumed to be in UTF-8-encoded Unicode. If u1 or u2\nare false, the respective string is assumed to be in native 8-bit\nencoding.\n\nIf the pe1 and pe2 are non-NULL, the scanning pointers will be copied\nin there (they will point at the beginning of the I character).\nIf the pointers behind pe1 or pe2 are non-NULL, they are the end\npointers beyond which scanning will not continue under any\ncircumstances. If the byte lengths l1 and l2 are non-zero, s1+l1 and\ns2+l2 will be used as goal end pointers that will also stop the scan,\nand which qualify towards defining a successful match: all the scans\nthat define an explicit length must reach their goal pointers for\na match to succeed).\n\nFor case-insensitiveness, the \"casefolding\" of Unicode is used\ninstead of upper/lowercasing both the characters, see\nhttp://www.unicode.org/unicode/reports/tr21/ (Case Mappings).\n\n\tI32\tibcmp_utf8(const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2)" isALNUM: cmd: '' exp: "Returns a boolean indicating whether the C C is a US-ASCII (Basic Latin)\nalphanumeric character (including underscore) or digit.\n\n\tbool\tisALNUM(char ch)" isALPHA: cmd: '' exp: "Returns a boolean indicating whether the C C is a US-ASCII (Basic Latin) \nalphabetic character.\n\n\tbool\tisALPHA(char ch)" isDIGIT: cmd: '' exp: "Returns a boolean indicating whether the C C is a US-ASCII (Basic Latin)\ndigit.\n\n\tbool\tisDIGIT(char ch)" isLOWER: cmd: '' exp: "Returns a boolean indicating whether the C C is a US-ASCII (Basic Latin)\nlowercase character.\n\n\tbool\tisLOWER(char ch)" isSPACE: cmd: '' exp: "Returns a boolean indicating whether the C C is a US-ASCII (Basic Latin)\nwhitespace.\n\n\tbool\tisSPACE(char ch)" isUPPER: cmd: '' exp: "Returns a boolean indicating whether the C C is a US-ASCII (Basic Latin)\nuppercase character.\n\n\tbool\tisUPPER(char ch)" is_utf8_char: cmd: '' exp: "Tests if some arbitrary number of bytes begins in a valid UTF-8\ncharacter. Note that an INVARIANT (i.e. ASCII on non-EBCDIC machines)\ncharacter is a valid UTF-8 character. The actual number of bytes in the UTF-8\ncharacter will be returned if it is valid, otherwise 0.\n\n\tSTRLEN\tis_utf8_char(const U8 *s)" is_utf8_string: cmd: '' exp: "Returns true if first C bytes of the given string form a valid\nUTF-8 string, false otherwise. Note that 'a valid UTF-8 string' does\nnot mean 'a string that contains code points above 0x7F encoded in UTF-8'\nbecause a valid ASCII string is a valid UTF-8 string.\n\nSee also is_utf8_string_loclen() and is_utf8_string_loc().\n\n\tbool\tis_utf8_string(const U8 *s, STRLEN len)" is_utf8_string_loc: cmd: '' exp: "Like is_utf8_string() but stores the location of the failure (in the\ncase of \"utf8ness failure\") or the location s+len (in the case of\n\"utf8ness success\") in the C.\n\nSee also is_utf8_string_loclen() and is_utf8_string().\n\n\tbool\tis_utf8_string_loc(const U8 *s, STRLEN len, const U8 **p)" is_utf8_string_loclen: cmd: '' exp: "Like is_utf8_string() but stores the location of the failure (in the\ncase of \"utf8ness failure\") or the location s+len (in the case of\n\"utf8ness success\") in the C, and the number of UTF-8\nencoded characters in the C.\n\nSee also is_utf8_string_loc() and is_utf8_string().\n\n\tbool\tis_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el)" items: cmd: '' exp: "Variable which is setup by C to indicate the number of \nitems on the stack. See L.\n\n\tI32\titems" ix: cmd: '' exp: "Variable which is setup by C to indicate which of an \nXSUB's aliases was used to invoke it. See L.\n\n\tI32\tix" load_module: cmd: '' exp: "Loads the module whose name is pointed to by the string part of name.\nNote that the actual module name, not its filename, should be given.\nEg, \"Foo::Bar\" instead of \"Foo/Bar.pm\". flags can be any of\nPERL_LOADMOD_DENY, PERL_LOADMOD_NOIMPORT, or PERL_LOADMOD_IMPORT_OPS\n(or 0 for no flags). ver, if specified, provides version semantics\nsimilar to C. The optional trailing SV*\narguments can be used to specify arguments to the module's import()\nmethod, similar to C. They must be\nterminated with a final NULL pointer. Note that this list can only\nbe omitted when the PERL_LOADMOD_NOIMPORT flag has been used.\nOtherwise at least a single NULL pointer to designate the default\nimport list is required.\n\n\tvoid\tload_module(U32 flags, SV* name, SV* ver, ...)" looks_like_number: cmd: '' exp: "Test if the content of an SV looks like a number (or is a number).\nC and C are treated as numbers (so will not issue a\nnon-numeric warning), even if your atof() doesn't grok them.\n\n\tI32\tlooks_like_number(SV* sv)" mPUSHi: cmd: '' exp: "Push an integer onto the stack. The stack must have room for this element.\nDoes not use C. See also C, C and C.\n\n\tvoid\tmPUSHi(IV iv)" mPUSHn: cmd: '' exp: "Push a double onto the stack. The stack must have room for this element.\nDoes not use C. See also C, C and C.\n\n\tvoid\tmPUSHn(NV nv)" mPUSHp: cmd: '' exp: "Push a string onto the stack. The stack must have room for this element.\nThe C indicates the length of the string. Does not use C.\nSee also C, C and C.\n\n\tvoid\tmPUSHp(char* str, STRLEN len)" mPUSHs: cmd: '' exp: "Push an SV onto the stack and mortalizes the SV. The stack must have room\nfor this element. Does not use C. See also C and C.\n\n\tvoid\tmPUSHs(SV* sv)" mPUSHu: cmd: '' exp: "Push an unsigned integer onto the stack. The stack must have room for this\nelement. Does not use C. See also C, C and C.\n\n\tvoid\tmPUSHu(UV uv)" mXPUSHi: cmd: '' exp: "Push an integer onto the stack, extending the stack if necessary.\nDoes not use C. See also C, C and C.\n\n\tvoid\tmXPUSHi(IV iv)" mXPUSHn: cmd: '' exp: "Push a double onto the stack, extending the stack if necessary.\nDoes not use C. See also C, C and C.\n\n\tvoid\tmXPUSHn(NV nv)" mXPUSHp: cmd: '' exp: "Push a string onto the stack, extending the stack if necessary. The C\nindicates the length of the string. Does not use C. See also C,\nC and C.\n\n\tvoid\tmXPUSHp(char* str, STRLEN len)" mXPUSHs: cmd: '' exp: "Push an SV onto the stack, extending the stack if necessary and mortalizes\nthe SV. Does not use C. See also C and C.\n\n\tvoid\tmXPUSHs(SV* sv)" mXPUSHu: cmd: '' exp: "Push an unsigned integer onto the stack, extending the stack if necessary.\nDoes not use C. See also C, C and C.\n\n\tvoid\tmXPUSHu(UV uv)" mg_clear: cmd: '' exp: "Clear something magical that the SV represents. See C.\n\n\tint\tmg_clear(SV* sv)" mg_copy: cmd: '' exp: "Copies the magic from one SV to another. See C.\n\n\tint\tmg_copy(SV *sv, SV *nsv, const char *key, I32 klen)" mg_find: cmd: '' exp: "Finds the magic pointer for type matching the SV. See C.\n\n\tMAGIC*\tmg_find(const SV* sv, int type)" mg_free: cmd: '' exp: "Free any magic storage used by the SV. See C.\n\n\tint\tmg_free(SV* sv)" mg_get: cmd: '' exp: "Do magic after a value is retrieved from the SV. See C.\n\n\tint\tmg_get(SV* sv)" mg_length: cmd: '' exp: "Report on the SV's length. See C.\n\n\tU32\tmg_length(SV* sv)" mg_magical: cmd: '' exp: "Turns on the magical status of an SV. See C.\n\n\tvoid\tmg_magical(SV* sv)" mg_set: cmd: '' exp: "Do magic after a value is assigned to the SV. See C.\n\n\tint\tmg_set(SV* sv)" mro_get_linear_isa: cmd: '' exp: "Returns either C or\nC for the given stash,\ndependant upon which MRO is in effect\nfor that stash. The return value is a\nread-only AV*.\n\nYou are responsible for C on the\nreturn value if you plan to store it anywhere\nsemi-permanently (otherwise it might be deleted\nout from under you the next time the cache is\ninvalidated).\n\n\tAV*\tmro_get_linear_isa(HV* stash)" mro_method_changed_in: cmd: '' exp: "Invalidates method caching on any child classes\nof the given stash, so that they might notice\nthe changes in this one.\n\nIdeally, all instances of C in\nperl source outside of C should be\nreplaced by calls to this.\n\nPerl automatically handles most of the common\nways a method might be redefined. However, there\nare a few ways you could change a method in a stash\nwithout the cache code noticing, in which case you\nneed to call this method afterwards:\n\n1) Directly manipulating the stash HV entries from\nXS code.\n\n2) Assigning a reference to a readonly scalar\nconstant into a stash entry in order to create\na constant subroutine (like constant.pm\ndoes).\n\nThis same method is available from pure perl\nvia, C.\n\n\tvoid\tmro_method_changed_in(HV* stash)" my_snprintf: cmd: '' exp: "The C library C functionality, if available and\nstandards-compliant (uses C, actually). However, if the\nC is not available, will unfortunately use the unsafe\nC which can overrun the buffer (there is an overrun check,\nbut that may be too late). Consider using C instead, or\ngetting C.\n\n\tint\tmy_snprintf(char *buffer, const Size_t len, const char *format, ...)" my_sprintf: cmd: '' exp: "The C library C, wrapped if necessary, to ensure that it will return\nthe length of the string written to the buffer. Only rare pre-ANSI systems\nneed the wrapper function - usually this is a direct call to C.\n\n\tint\tmy_sprintf(char *buffer, const char *pat, ...)" my_vsnprintf: cmd: '' exp: "The C library C if available and standards-compliant.\nHowever, if if the C is not available, will unfortunately\nuse the unsafe C which can overrun the buffer (there is an\noverrun check, but that may be too late). Consider using\nC instead, or getting C.\n\n\tint\tmy_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap)" newAV: cmd: '' exp: "Creates a new AV. The reference count is set to 1.\n\n\tAV*\tnewAV()" newCONSTSUB: cmd: '' exp: "Creates a constant sub equivalent to Perl C which is\neligible for inlining at compile-time.\n\n\tCV*\tnewCONSTSUB(HV* stash, const char* name, SV* sv)" newHV: cmd: '' exp: "Creates a new HV. The reference count is set to 1.\n\n\tHV*\tnewHV()" newRV_inc: cmd: '' exp: "Creates an RV wrapper for an SV. The reference count for the original SV is\nincremented.\n\n\tSV*\tnewRV_inc(SV* sv)" newRV_noinc: cmd: '' exp: "Creates an RV wrapper for an SV. The reference count for the original\nSV is B incremented.\n\n\tSV*\tnewRV_noinc(SV* sv)" newSV: cmd: '' exp: "Creates a new SV. A non-zero C parameter indicates the number of\nbytes of preallocated string space the SV should have. An extra byte for a\ntrailing NUL is also reserved. (SvPOK is not set for the SV even if string\nspace is allocated.) The reference count for the new SV is set to 1.\n\nIn 5.9.3, newSV() replaces the older NEWSV() API, and drops the first\nparameter, I, a debug aid which allowed callers to identify themselves.\nThis aid has been superseded by a new build option, PERL_MEM_LOG (see\nL). The older API is still there for use in XS\nmodules supporting older perls.\n\n\tSV*\tnewSV(STRLEN len)" newSV_type: cmd: '' exp: "Creates a new SV, of the type specified. The reference count for the new SV\nis set to 1.\n\n\tSV*\tnewSV_type(svtype type)" newSVhek: cmd: '' exp: "Creates a new SV from the hash key structure. It will generate scalars that\npoint to the shared string table where possible. Returns a new (undefined)\nSV if the hek is NULL.\n\n\tSV*\tnewSVhek(const HEK *hek)" newSViv: cmd: '' exp: "Creates a new SV and copies an integer into it. The reference count for the\nSV is set to 1.\n\n\tSV*\tnewSViv(IV i)" newSVnv: cmd: '' exp: "Creates a new SV and copies a floating point value into it.\nThe reference count for the SV is set to 1.\n\n\tSV*\tnewSVnv(NV n)" newSVpv: cmd: '' exp: "Creates a new SV and copies a string into it. The reference count for the\nSV is set to 1. If C is zero, Perl will compute the length using\nstrlen(). For efficiency, consider using C instead.\n\n\tSV*\tnewSVpv(const char* s, STRLEN len)" newSVpvf: cmd: '' exp: "Creates a new SV and initializes it with the string formatted like\nC.\n\n\tSV*\tnewSVpvf(const char* pat, ...)" newSVpvn: cmd: '' exp: "Creates a new SV and copies a string into it. The reference count for the\nSV is set to 1. Note that if C is zero, Perl will create a zero length\nstring. You are responsible for ensuring that the source string is at least\nC bytes long. If the C argument is NULL the new SV will be undefined.\n\n\tSV*\tnewSVpvn(const char* s, STRLEN len)" newSVpvn_flags: cmd: '' exp: "Creates a new SV and copies a string into it. The reference count for the\nSV is set to 1. Note that if C is zero, Perl will create a zero length\nstring. You are responsible for ensuring that the source string is at least\nC bytes long. If the C argument is NULL the new SV will be undefined.\nCurrently the only flag bits accepted are C and C.\nIf C is set, then C is called on the result before\nreturning. If C is set, then it will be set on the new SV.\nC is a convenience wrapper for this function, defined as\n\n #define newSVpvn_utf8(s, len, u)\t\t\t\\\n\tnewSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)\n\n\tSV*\tnewSVpvn_flags(const char* s, STRLEN len, U32 flags)" newSVpvn_share: cmd: '' exp: "Creates a new SV with its SvPVX_const pointing to a shared string in the string\ntable. If the string does not already exist in the table, it is created\nfirst. Turns on READONLY and FAKE. If the C parameter is non-zero, that\nvalue is used; otherwise the hash is computed. The string's hash can be later\nbe retrieved from the SV with the C macro. The idea here is\nthat as the string table is used for shared hash keys these strings will have\nSvPVX_const == HeKEY and hash lookup will avoid string compare.\n\n\tSV*\tnewSVpvn_share(const char* s, I32 len, U32 hash)" newSVpvn_utf8: cmd: '' exp: "Creates a new SV and copies a string into it. If utf8 is true, calls\nC on the new SV. Implemented as a wrapper around C.\n\n\tSV*\tnewSVpvn_utf8(NULLOK const char* s, STRLEN len, U32 utf8)" newSVpvs: cmd: '' exp: "Like C, but takes a literal string instead of a string/length pair.\n\n\tSV*\tnewSVpvs(const char* s)" newSVpvs_flags: cmd: '' exp: "Like C, but takes a literal string instead of a string/length\npair.\n\n\tSV*\tnewSVpvs_flags(const char* s, U32 flags)" newSVpvs_share: cmd: '' exp: "Like C, but takes a literal string instead of a string/length\npair and omits the hash parameter.\n\n\tSV*\tnewSVpvs_share(const char* s)" newSVrv: cmd: '' exp: "Creates a new SV for the RV, C, to point to. If C is not an RV then\nit will be upgraded to one. If C is non-null then the new SV will\nbe blessed in the specified package. The new SV is returned and its\nreference count is 1.\n\n\tSV*\tnewSVrv(SV* rv, const char* classname)" newSVsv: cmd: '' exp: "Creates a new SV which is an exact duplicate of the original SV.\n(Uses C).\n\n\tSV*\tnewSVsv(SV* old)" newSVuv: cmd: '' exp: "Creates a new SV and copies an unsigned integer into it.\nThe reference count for the SV is set to 1.\n\n\tSV*\tnewSVuv(UV u)" newXS: cmd: '' exp: "Used by C to hook up XSUBs as Perl subs. I needs to be\nstatic storage, as it is used directly as CvFILE(), without a copy being made." newXSproto: cmd: '' exp: "Used by C to hook up XSUBs as Perl subs. Adds Perl prototypes to\nthe subs." new_version: cmd: '' exp: "Returns a new version object based on the passed in SV:\n\n SV *sv = new_version(SV *ver);\n\nDoes not alter the passed in ver SV. See \"upg_version\" if you\nwant to upgrade the SV.\n\n\tSV*\tnew_version(SV *ver)" nothreadhook: cmd: '' exp: "Stub that provides thread hook for perl_destruct when there are\nno threads.\n\n\tint\tnothreadhook()" pack_cat: cmd: '' exp: "The engine implementing pack() Perl function. Note: parameters next_in_list and\nflags are not used. This call should not be used; use packlist instead.\n\n\tvoid\tpack_cat(SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)" packlist: cmd: '' exp: "The engine implementing pack() Perl function.\n\n\tvoid\tpacklist(SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist)" pad_sv: cmd: '' exp: "Get the value at offset po in the current pad.\nUse macro PAD_SV instead of calling this function directly.\n\n\tSV*\tpad_sv(PADOFFSET po)" perl_alloc: cmd: '' exp: "Allocates a new Perl interpreter. See L.\n\n\tPerlInterpreter*\tperl_alloc()" perl_clone: cmd: '' exp: "Create and return a new interpreter by cloning the current one.\n\nperl_clone takes these flags as parameters:\n\nCLONEf_COPY_STACKS - is used to, well, copy the stacks also,\nwithout it we only clone the data and zero the stacks,\nwith it we copy the stacks and the new perl interpreter is\nready to run at the exact same point as the previous one.\nThe pseudo-fork code uses COPY_STACKS while the\nthreads->create doesn't.\n\nCLONEf_KEEP_PTR_TABLE\nperl_clone keeps a ptr_table with the pointer of the old\nvariable as a key and the new variable as a value,\nthis allows it to check if something has been cloned and not\nclone it again but rather just use the value and increase the\nrefcount. If KEEP_PTR_TABLE is not set then perl_clone will kill\nthe ptr_table using the function\nC,\nreason to keep it around is if you want to dup some of your own\nvariable who are outside the graph perl scans, example of this\ncode is in threads.xs create\n\nCLONEf_CLONE_HOST\nThis is a win32 thing, it is ignored on unix, it tells perls\nwin32host code (which is c++) to clone itself, this is needed on\nwin32 if you want to run two threads at the same time,\nif you just want to do some stuff in a separate perl interpreter\nand then throw it away and return to the original one,\nyou don't need to do anything.\n\n\tPerlInterpreter*\tperl_clone(PerlInterpreter *proto_perl, UV flags)" perl_construct: cmd: '' exp: "Initializes a new Perl interpreter. See L.\n\n\tvoid\tperl_construct(PerlInterpreter *my_perl)" perl_destruct: cmd: '' exp: "Shuts down a Perl interpreter. See L.\n\n\tint\tperl_destruct(PerlInterpreter *my_perl)" perl_free: cmd: '' exp: "Releases a Perl interpreter. See L.\n\n\tvoid\tperl_free(PerlInterpreter *my_perl)" perl_parse: cmd: '' exp: "Tells a Perl interpreter to parse a Perl script. See L.\n\n\tint\tperl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char** argv, char** env)" perl_run: cmd: '' exp: "Tells a Perl interpreter to run. See L.\n\n\tint\tperl_run(PerlInterpreter *my_perl)" pv_display: cmd: '' exp: "Similar to\n\n pv_escape(dsv,pv,cur,pvlim,PERL_PV_ESCAPE_QUOTE);\n\nexcept that an additional \"\\0\" will be appended to the string when\nlen > cur and pv[cur] is \"\\0\".\n\nNote that the final string may be up to 7 chars longer than pvlim.\n\n\tchar*\tpv_display(SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)" pv_escape: cmd: '' exp: "Escapes at most the first \"count\" chars of pv and puts the results into\ndsv such that the size of the escaped string will not exceed \"max\" chars\nand will not contain any incomplete escape sequences.\n\nIf flags contains PERL_PV_ESCAPE_QUOTE then any double quotes in the string\nwill also be escaped.\n\nNormally the SV will be cleared before the escaped string is prepared,\nbut when PERL_PV_ESCAPE_NOCLEAR is set this will not occur.\n\nIf PERL_PV_ESCAPE_UNI is set then the input string is treated as Unicode,\nif PERL_PV_ESCAPE_UNI_DETECT is set then the input string is scanned\nusing C to determine if it is Unicode.\n\nIf PERL_PV_ESCAPE_ALL is set then all input chars will be output\nusing C<\\x01F1> style escapes, otherwise only chars above 255 will be\nescaped using this style, other non printable chars will use octal or\ncommon escaped patterns like C<\\n>. If PERL_PV_ESCAPE_NOBACKSLASH\nthen all chars below 255 will be treated as printable and \nwill be output as literals.\n\nIf PERL_PV_ESCAPE_FIRSTCHAR is set then only the first char of the\nstring will be escaped, regardles of max. If the string is utf8 and \nthe chars value is >255 then it will be returned as a plain hex \nsequence. Thus the output will either be a single char, \nan octal escape sequence, a special escape like C<\\n> or a 3 or \nmore digit hex value. \n\nIf PERL_PV_ESCAPE_RE is set then the escape char used will be a '%' and\nnot a '\\\\'. This is because regexes very often contain backslashed\nsequences, whereas '%' is not a particularly common character in patterns.\n\nReturns a pointer to the escaped text as held by dsv.\n\n\tchar*\tpv_escape(SV *dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags)" pv_pretty: cmd: '' exp: "Converts a string into something presentable, handling escaping via\npv_escape() and supporting quoting and ellipses.\n\nIf the PERL_PV_PRETTY_QUOTE flag is set then the result will be \ndouble quoted with any double quotes in the string escaped. Otherwise\nif the PERL_PV_PRETTY_LTGT flag is set then the result be wrapped in\nangle brackets. \n \nIf the PERL_PV_PRETTY_ELLIPSES flag is set and not all characters in\nstring were output then an ellipsis C<...> will be appended to the\nstring. Note that this happens AFTER it has been quoted.\n \nIf start_color is non-null then it will be inserted after the opening\nquote (if there is one) but before the escaped text. If end_color\nis non-null then it will be inserted after the escaped text but before\nany quotes or ellipses.\n\nReturns a pointer to the prettified text as held by dsv.\n \n\tchar*\tpv_pretty(SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags)" pv_uni_display: cmd: '' exp: "Build to the scalar dsv a displayable version of the string spv,\nlength len, the displayable version being at most pvlim bytes long\n(if longer, the rest is truncated and \"...\" will be appended).\n\nThe flags argument can have UNI_DISPLAY_ISPRINT set to display\nisPRINT()able characters as themselves, UNI_DISPLAY_BACKSLASH\nto display the \\\\[nrfta\\\\] as the backslashed versions (like '\\n')\n(UNI_DISPLAY_BACKSLASH is preferred over UNI_DISPLAY_ISPRINT for \\\\).\nUNI_DISPLAY_QQ (and its alias UNI_DISPLAY_REGEX) have both\nUNI_DISPLAY_BACKSLASH and UNI_DISPLAY_ISPRINT turned on.\n\nThe pointer to the PV of the dsv is returned.\n\n\tchar*\tpv_uni_display(SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags)" require_pv: cmd: '' exp: "Tells Perl to C the file named by the string argument. It is\nanalogous to the Perl code C. It's even\nimplemented that way; consider using load_module instead.\n\nNOTE: the perl_ form of this function is deprecated.\n\n\tvoid\trequire_pv(const char* pv)" savepv: cmd: '' exp: "Perl's version of C. Returns a pointer to a newly allocated\nstring which is a duplicate of C. The size of the string is\ndetermined by C. The memory allocated for the new string can\nbe freed with the C function.\n\n\tchar*\tsavepv(const char* pv)" savepvn: cmd: '' exp: "Perl's version of what C would be if it existed. Returns a\npointer to a newly allocated string which is a duplicate of the first\nC bytes from C, plus a trailing NUL byte. The memory allocated for\nthe new string can be freed with the C function.\n\n\tchar*\tsavepvn(const char* pv, I32 len)" savepvs: cmd: '' exp: "Like C, but takes a literal string instead of a string/length pair.\n\n\tchar*\tsavepvs(const char* s)" savesharedpv: cmd: '' exp: "A version of C which allocates the duplicate string in memory\nwhich is shared between threads.\n\n\tchar*\tsavesharedpv(const char* pv)" savesharedpvn: cmd: '' exp: "A version of C which allocates the duplicate string in memory\nwhich is shared between threads. (With the specific difference that a NULL\npointer is not acceptable)\n\n\tchar*\tsavesharedpvn(const char *const pv, const STRLEN len)" savesvpv: cmd: '' exp: "A version of C/C which gets the string to duplicate from\nthe passed in SV using C\n\n\tchar*\tsavesvpv(SV* sv)" scan_bin: cmd: '' exp: "For backwards compatibility. Use C instead.\n\n\tNV\tscan_bin(const char* start, STRLEN len, STRLEN* retlen)" scan_hex: cmd: '' exp: "For backwards compatibility. Use C instead.\n\n\tNV\tscan_hex(const char* start, STRLEN len, STRLEN* retlen)" scan_oct: cmd: '' exp: "For backwards compatibility. Use C instead.\n\n\tNV\tscan_oct(const char* start, STRLEN len, STRLEN* retlen)" scan_version: cmd: '' exp: "Returns a pointer to the next character after the parsed\nversion string, as well as upgrading the passed in SV to\nan RV.\n\nFunction must be called with an already existing SV like\n\n sv = newSV(0);\n s = scan_version(s, SV *sv, bool qv);\n\nPerforms some preprocessing to the string to ensure that\nit has the correct characteristics of a version. Flags the\nobject if it contains an underscore (which denotes this\nis an alpha version). The boolean qv denotes that the version\nshould be interpreted as if it had multiple decimals, even if\nit doesn't.\n\n\tconst char*\tscan_version(const char *s, SV *rv, bool qv)" sortsv: cmd: '' exp: "Sort an array. Here is an example:\n\n sortsv(AvARRAY(av), av_len(av)+1, Perl_sv_cmp_locale);\n\nCurrently this always uses mergesort. See sortsv_flags for a more\nflexible routine.\n\n\tvoid\tsortsv(SV** array, size_t num_elts, SVCOMPARE_t cmp)" sortsv_flags: cmd: '' exp: "Sort an array, with various options.\n\n\tvoid\tsortsv_flags(SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)" strEQ: cmd: '' exp: "Test two strings to see if they are equal. Returns true or false.\n\n\tbool\tstrEQ(char* s1, char* s2)" strGE: cmd: '' exp: "Test two strings to see if the first, C, is greater than or equal to\nthe second, C. Returns true or false.\n\n\tbool\tstrGE(char* s1, char* s2)" strGT: cmd: '' exp: "Test two strings to see if the first, C, is greater than the second,\nC. Returns true or false.\n\n\tbool\tstrGT(char* s1, char* s2)" strLE: cmd: '' exp: "Test two strings to see if the first, C, is less than or equal to the\nsecond, C. Returns true or false.\n\n\tbool\tstrLE(char* s1, char* s2)" strLT: cmd: '' exp: "Test two strings to see if the first, C, is less than the second,\nC. Returns true or false.\n\n\tbool\tstrLT(char* s1, char* s2)" strNE: cmd: '' exp: "Test two strings to see if they are different. Returns true or\nfalse.\n\n\tbool\tstrNE(char* s1, char* s2)" strnEQ: cmd: '' exp: "Test two strings to see if they are equal. The C parameter indicates\nthe number of bytes to compare. Returns true or false. (A wrapper for\nC).\n\n\tbool\tstrnEQ(char* s1, char* s2, STRLEN len)" strnNE: cmd: '' exp: "Test two strings to see if they are different. The C parameter\nindicates the number of bytes to compare. Returns true or false. (A\nwrapper for C).\n\n\tbool\tstrnNE(char* s1, char* s2, STRLEN len)" sv_2bool: cmd: '' exp: "This function is only called on magical items, and is only used by\nsv_true() or its macro equivalent.\n\n\tbool\tsv_2bool(SV* sv)" sv_2cv: cmd: '' exp: "Using various gambits, try to get a CV from an SV; in addition, try if\npossible to set C<*st> and C<*gvp> to the stash and GV associated with it.\nThe flags in C are passed to sv_fetchsv.\n\n\tCV*\tsv_2cv(SV* sv, HV** st, GV** gvp, I32 lref)" sv_2io: cmd: '' exp: "Using various gambits, try to get an IO from an SV: the IO slot if its a\nGV; or the recursive result if we're an RV; or the IO slot of the symbol\nnamed after the PV if we're a string.\n\n\tIO*\tsv_2io(SV* sv)" sv_2iv_flags: cmd: '' exp: "Return the integer value of an SV, doing any necessary string\nconversion. If flags includes SV_GMAGIC, does an mg_get() first.\nNormally used via the C and C macros.\n\n\tIV\tsv_2iv_flags(SV* sv, I32 flags)" sv_2mortal: cmd: '' exp: "Marks an existing SV as mortal. The SV will be destroyed \"soon\", either\nby an explicit call to FREETMPS, or by an implicit call at places such as\nstatement boundaries. SvTEMP() is turned on which means that the SV's\nstring buffer can be \"stolen\" if this SV is copied. See also C\nand C.\n\n\tSV*\tsv_2mortal(SV* sv)" sv_2nv: cmd: '' exp: "Return the num value of an SV, doing any necessary string or integer\nconversion, magic etc. Normally used via the C and C\nmacros.\n\n\tNV\tsv_2nv(SV* sv)" sv_2pv_flags: cmd: '' exp: "Returns a pointer to the string value of an SV, and sets *lp to its length.\nIf flags includes SV_GMAGIC, does an mg_get() first. Coerces sv to a string\nif necessary.\nNormally invoked via the C macro. C and C\nusually end up here too.\n\n\tchar*\tsv_2pv_flags(SV* sv, STRLEN* lp, I32 flags)" sv_2pv_nolen: cmd: '' exp: "Like C, but doesn't return the length too. You should usually\nuse the macro wrapper C instead.\n\tchar*\tsv_2pv_nolen(SV* sv)" sv_2pvbyte: cmd: '' exp: "Return a pointer to the byte-encoded representation of the SV, and set *lp\nto its length. May cause the SV to be downgraded from UTF-8 as a\nside-effect.\n\nUsually accessed via the C macro.\n\n\tchar*\tsv_2pvbyte(SV* sv, STRLEN* lp)" sv_2pvbyte_nolen: cmd: '' exp: "Return a pointer to the byte-encoded representation of the SV.\nMay cause the SV to be downgraded from UTF-8 as a side-effect.\n\nUsually accessed via the C macro.\n\n\tchar*\tsv_2pvbyte_nolen(SV* sv)" sv_2pvutf8: cmd: '' exp: "Return a pointer to the UTF-8-encoded representation of the SV, and set *lp\nto its length. May cause the SV to be upgraded to UTF-8 as a side-effect.\n\nUsually accessed via the C macro.\n\n\tchar*\tsv_2pvutf8(SV* sv, STRLEN* lp)" sv_2pvutf8_nolen: cmd: '' exp: "Return a pointer to the UTF-8-encoded representation of the SV.\nMay cause the SV to be upgraded to UTF-8 as a side-effect.\n\nUsually accessed via the C macro.\n\n\tchar*\tsv_2pvutf8_nolen(SV* sv)" sv_2uv_flags: cmd: '' exp: "Return the unsigned integer value of an SV, doing any necessary string\nconversion. If flags includes SV_GMAGIC, does an mg_get() first.\nNormally used via the C and C macros.\n\n\tUV\tsv_2uv_flags(SV* sv, I32 flags)" sv_backoff: cmd: '' exp: "Remove any string offset. You should normally use the C macro\nwrapper instead.\n\n\tint\tsv_backoff(SV* sv)" sv_bless: cmd: '' exp: "Blesses an SV into a specified package. The SV must be an RV. The package\nmust be designated by its stash (see C). The reference count\nof the SV is unaffected.\n\n\tSV*\tsv_bless(SV* sv, HV* stash)" sv_cat_decode: cmd: '' exp: "The encoding is assumed to be an Encode object, the PV of the ssv is\nassumed to be octets in that encoding and decoding the input starts\nfrom the position which (PV + *offset) pointed to. The dsv will be\nconcatenated the decoded UTF-8 string from ssv. Decoding will terminate\nwhen the string tstr appears in decoding output or the input ends on\nthe PV of the ssv. The value which the offset points will be modified\nto the last input position on the ssv.\n\nReturns TRUE if the terminator was found, else returns FALSE.\n\n\tbool\tsv_cat_decode(SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen)" sv_catpv: cmd: '' exp: "Concatenates the string onto the end of the string which is in the SV.\nIf the SV has the UTF-8 status set, then the bytes appended should be\nvalid UTF-8. Handles 'get' magic, but not 'set' magic. See C.\n\n\tvoid\tsv_catpv(SV* sv, const char* ptr)" sv_catpv_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_catpv_mg(SV *sv, const char *ptr)" sv_catpvf: cmd: '' exp: "Processes its arguments like C and appends the formatted\noutput to an SV. If the appended data contains \"wide\" characters\n(including, but not limited to, SVs with a UTF-8 PV formatted with %s,\nand characters >255 formatted with %c), the original SV might get\nupgraded to UTF-8. Handles 'get' magic, but not 'set' magic. See\nC. If the original SV was UTF-8, the pattern should be\nvalid UTF-8; if the original SV was bytes, the pattern should be too.\n\n\tvoid\tsv_catpvf(SV* sv, const char* pat, ...)" sv_catpvf_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_catpvf_mg(SV *sv, const char* pat, ...)" sv_catpvn: cmd: '' exp: "Concatenates the string onto the end of the string which is in the SV. The\nC indicates number of bytes to copy. If the SV has the UTF-8\nstatus set, then the bytes appended should be valid UTF-8.\nHandles 'get' magic, but not 'set' magic. See C.\n\n\tvoid\tsv_catpvn(SV *dsv, const char *sstr, STRLEN len)" sv_catpvn_flags: cmd: '' exp: "Concatenates the string onto the end of the string which is in the SV. The\nC indicates number of bytes to copy. If the SV has the UTF-8\nstatus set, then the bytes appended should be valid UTF-8.\nIf C has C bit set, will C on C if\nappropriate, else not. C and C are implemented\nin terms of this function.\n\n\tvoid\tsv_catpvn_flags(SV *dstr, const char *sstr, STRLEN len, I32 flags)" sv_catpvn_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_catpvn_mg(SV *sv, const char *ptr, STRLEN len)" sv_catpvn_nomg: cmd: '' exp: "Like C but doesn't process magic.\n\n\tvoid\tsv_catpvn_nomg(SV* sv, const char* ptr, STRLEN len)" sv_catpvs: cmd: '' exp: "Like C, but takes a literal string instead of a string/length pair.\n\n\tvoid\tsv_catpvs(SV* sv, const char* s)" sv_catsv: cmd: '' exp: "Concatenates the string from SV C onto the end of the string in\nSV C. Modifies C but not C. Handles 'get' magic, but\nnot 'set' magic. See C.\n\n\tvoid\tsv_catsv(SV *dstr, SV *sstr)" sv_catsv_flags: cmd: '' exp: "Concatenates the string from SV C onto the end of the string in\nSV C. Modifies C but not C. If C has C\nbit set, will C on the SVs if appropriate, else not. C\nand C are implemented in terms of this function.\n\n\tvoid\tsv_catsv_flags(SV* dsv, SV* ssv, I32 flags)" sv_catsv_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_catsv_mg(SV *dsv, SV *ssv)" sv_catsv_nomg: cmd: '' exp: "Like C but doesn't process magic.\n\n\tvoid\tsv_catsv_nomg(SV* dsv, SV* ssv)" sv_chop: cmd: '' exp: "Efficient removal of characters from the beginning of the string buffer.\nSvPOK(sv) must be true and the C must be a pointer to somewhere inside\nthe string buffer. The C becomes the first character of the adjusted\nstring. Uses the \"OOK hack\".\nBeware: after this function returns, C and SvPVX_const(sv) may no longer\nrefer to the same chunk of data.\n\n\tvoid\tsv_chop(SV* sv, const char* ptr)" sv_clear: cmd: '' exp: "Clear an SV: call any destructors, free up any memory used by the body,\nand free the body itself. The SV's head is I freed, although\nits type is set to all 1's so that it won't inadvertently be assumed\nto be live during global destruction etc.\nThis function should only be called when REFCNT is zero. Most of the time\nyou'll want to call C (or its macro wrapper C)\ninstead.\n\n\tvoid\tsv_clear(SV* sv)" sv_cmp: cmd: '' exp: "Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the\nstring in C is less than, equal to, or greater than the string in\nC. Is UTF-8 and 'use bytes' aware, handles get magic, and will\ncoerce its args to strings if necessary. See also C.\n\n\tI32\tsv_cmp(SV* sv1, SV* sv2)" sv_cmp_locale: cmd: '' exp: "Compares the strings in two SVs in a locale-aware manner. Is UTF-8 and\n'use bytes' aware, handles get magic, and will coerce its args to strings\nif necessary. See also C.\n\n\tI32\tsv_cmp_locale(SV* sv1, SV* sv2)" sv_collxfrm: cmd: '' exp: "Add Collate Transform magic to an SV if it doesn't already have it.\n\nAny scalar variable may carry PERL_MAGIC_collxfrm magic that contains the\nscalar data of the variable, but transformed to such a format that a normal\nmemory comparison can be used to compare the data according to the locale\nsettings.\n\n\tchar*\tsv_collxfrm(SV* sv, STRLEN* nxp)" sv_copypv: cmd: '' exp: "Copies a stringified representation of the source SV into the\ndestination SV. Automatically performs any necessary mg_get and\ncoercion of numeric values into strings. Guaranteed to preserve\nUTF8 flag even from overloaded objects. Similar in nature to\nsv_2pv[_flags] but operates directly on an SV instead of just the\nstring. Mostly uses sv_2pv_flags to do its work, except when that\nwould lose the UTF-8'ness of the PV.\n\n\tvoid\tsv_copypv(SV* dsv, SV* ssv)" sv_dec: cmd: '' exp: "Auto-decrement of the value in the SV, doing string to numeric conversion\nif necessary. Handles 'get' magic.\n\n\tvoid\tsv_dec(SV* sv)" sv_derived_from: cmd: '' exp: "Returns a boolean indicating whether the SV is derived from the specified class\nI. To check derivation at the Perl level, call C as a\nnormal Perl method.\n\n\tbool\tsv_derived_from(SV* sv, const char* name)" sv_destroyable: cmd: '' exp: "Dummy routine which reports that object can be destroyed when there is no\nsharing module present. It ignores its single SV argument, and returns\n'true'. Exists to avoid test for a NULL function pointer and because it\ncould potentially warn under some level of strict-ness.\n\n\tbool\tsv_destroyable(SV *sv)" sv_does: cmd: '' exp: "Returns a boolean indicating whether the SV performs a specific, named role.\nThe SV can be a Perl object or the name of a Perl class.\n\n\tbool\tsv_does(SV* sv, const char* name)" sv_eq: cmd: '' exp: "Returns a boolean indicating whether the strings in the two SVs are\nidentical. Is UTF-8 and 'use bytes' aware, handles get magic, and will\ncoerce its args to strings if necessary.\n\n\tI32\tsv_eq(SV* sv1, SV* sv2)" sv_force_normal: cmd: '' exp: "Undo various types of fakery on an SV: if the PV is a shared string, make\na private copy; if we're a ref, stop refing; if we're a glob, downgrade to\nan xpvmg. See also C.\n\n\tvoid\tsv_force_normal(SV *sv)" sv_force_normal_flags: cmd: '' exp: "Undo various types of fakery on an SV: if the PV is a shared string, make\na private copy; if we're a ref, stop refing; if we're a glob, downgrade to\nan xpvmg; if we're a copy-on-write scalar, this is the on-write time when\nwe do the copy, and is also used locally. If C is set\nthen a copy-on-write scalar drops its PV buffer (if any) and becomes\nSvPOK_off rather than making a copy. (Used where this scalar is about to be\nset to some other value.) In addition, the C parameter gets passed to\nC when unrefing. C calls this function\nwith flags set to 0.\n\n\tvoid\tsv_force_normal_flags(SV *sv, U32 flags)" sv_free: cmd: '' exp: "Decrement an SV's reference count, and if it drops to zero, call\nC to invoke destructors and free up any memory used by\nthe body; finally, deallocate the SV's head itself.\nNormally called via a wrapper macro C.\n\n\tvoid\tsv_free(SV* sv)" sv_gets: cmd: '' exp: "Get a line from the filehandle and store it into the SV, optionally\nappending to the currently-stored string.\n\n\tchar*\tsv_gets(SV* sv, PerlIO* fp, I32 append)" sv_grow: cmd: '' exp: "Expands the character buffer in the SV. If necessary, uses C and\nupgrades the SV to C. Returns a pointer to the character buffer.\nUse the C wrapper instead.\n\n\tchar*\tsv_grow(SV* sv, STRLEN newlen)" sv_inc: cmd: '' exp: "Auto-increment of the value in the SV, doing string to numeric conversion\nif necessary. Handles 'get' magic.\n\n\tvoid\tsv_inc(SV* sv)" sv_insert: cmd: '' exp: "Inserts a string at the specified offset/length within the SV. Similar to\nthe Perl substr() function. Handles get magic.\n\n\tvoid\tsv_insert(SV *bigstr, STRLEN offset, STRLEN len, const char *little, STRLEN littlelen)" sv_insert_flags: cmd: '' exp: "Same as C, but the extra C are passed the C that applies to C.\n\n\tvoid\tsv_insert_flags(SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen, const U32 flags)" sv_isa: cmd: '' exp: "Returns a boolean indicating whether the SV is blessed into the specified\nclass. This does not check for subtypes; use C to verify\nan inheritance relationship.\n\n\tint\tsv_isa(SV* sv, const char* name)" sv_isobject: cmd: '' exp: "Returns a boolean indicating whether the SV is an RV pointing to a blessed\nobject. If the SV is not an RV, or if the object is not blessed, then this\nwill return false.\n\n\tint\tsv_isobject(SV* sv)" sv_iv: cmd: '' exp: "A private implementation of the C macro for compilers which can't\ncope with complex macro expressions. Always use the macro instead.\n\n\tIV\tsv_iv(SV* sv)" sv_len: cmd: '' exp: "Returns the length of the string in the SV. Handles magic and type\ncoercion. See also C, which gives raw access to the xpv_cur slot.\n\n\tSTRLEN\tsv_len(SV* sv)" sv_len_utf8: cmd: '' exp: "Returns the number of characters in the string in an SV, counting wide\nUTF-8 bytes as a single character. Handles magic and type coercion.\n\n\tSTRLEN\tsv_len_utf8(SV* sv)" sv_magic: cmd: '' exp: "Adds magic to an SV. First upgrades C to type C if necessary,\nthen adds a new magic item of type C to the head of the magic list.\n\nSee C (which C now calls) for a description of the\nhandling of the C and C arguments.\n\nYou need to use C to add magic to SvREADONLY SVs and also\nto add more than one instance of the same 'how'.\n\n\tvoid\tsv_magic(SV* sv, SV* obj, int how, const char* name, I32 namlen)" sv_magicext: cmd: '' exp: "Adds magic to an SV, upgrading it if necessary. Applies the\nsupplied vtable and returns a pointer to the magic added.\n\nNote that C will allow things that C will not.\nIn particular, you can add magic to SvREADONLY SVs, and add more than\none instance of the same 'how'.\n\nIf C is greater than zero then a C I of C is\nstored, if C is zero then C is stored as-is and - as another\nspecial case - if C<(name && namlen == HEf_SVKEY)> then C is assumed\nto contain an C and is stored as-is with its REFCNT incremented.\n\n(This is now used as a subroutine by C.)\n\n\tMAGIC *\tsv_magicext(SV* sv, SV* obj, int how, const MGVTBL *vtbl, const char* name, I32 namlen)" sv_mortalcopy: cmd: '' exp: "Creates a new SV which is a copy of the original SV (using C).\nThe new SV is marked as mortal. It will be destroyed \"soon\", either by an\nexplicit call to FREETMPS, or by an implicit call at places such as\nstatement boundaries. See also C and C.\n\n\tSV*\tsv_mortalcopy(SV* oldsv)" sv_newmortal: cmd: '' exp: "Creates a new null SV which is mortal. The reference count of the SV is\nset to 1. It will be destroyed \"soon\", either by an explicit call to\nFREETMPS, or by an implicit call at places such as statement boundaries.\nSee also C and C.\n\n\tSV*\tsv_newmortal()" sv_newref: cmd: '' exp: "Increment an SV's reference count. Use the C wrapper\ninstead.\n\n\tSV*\tsv_newref(SV* sv)" sv_nolocking: cmd: '' exp: "Dummy routine which \"locks\" an SV when there is no locking module present.\nExists to avoid test for a NULL function pointer and because it could\npotentially warn under some level of strict-ness.\n\n\"Superseded\" by sv_nosharing().\n\n\tvoid\tsv_nolocking(SV *sv)" sv_nosharing: cmd: '' exp: "Dummy routine which \"shares\" an SV when there is no sharing module present.\nOr \"locks\" it. Or \"unlocks\" it. In other words, ignores its single SV argument.\nExists to avoid test for a NULL function pointer and because it could\npotentially warn under some level of strict-ness.\n\n\tvoid\tsv_nosharing(SV *sv)" sv_nounlocking: cmd: '' exp: "Dummy routine which \"unlocks\" an SV when there is no locking module present.\nExists to avoid test for a NULL function pointer and because it could\npotentially warn under some level of strict-ness.\n\n\"Superseded\" by sv_nosharing().\n\n\tvoid\tsv_nounlocking(SV *sv)" sv_nv: cmd: '' exp: "A private implementation of the C macro for compilers which can't\ncope with complex macro expressions. Always use the macro instead.\n\n\tNV\tsv_nv(SV* sv)" sv_pos_b2u: cmd: '' exp: "Converts the value pointed to by offsetp from a count of bytes from the\nstart of the string, to a count of the equivalent number of UTF-8 chars.\nHandles magic and type coercion.\n\n\tvoid\tsv_pos_b2u(SV* sv, I32* offsetp)" sv_pos_u2b: cmd: '' exp: "Converts the value pointed to by offsetp from a count of UTF-8 chars from\nthe start of the string, to a count of the equivalent number of bytes; if\nlenp is non-zero, it does the same to lenp, but this time starting from\nthe offset, rather than from the start of the string. Handles magic and\ntype coercion.\n\n\tvoid\tsv_pos_u2b(SV* sv, I32* offsetp, I32* lenp)" sv_pv: cmd: '' exp: "Use the C macro instead\n\n\tchar*\tsv_pv(SV *sv)" sv_pvbyte: cmd: '' exp: "Use C instead.\n\n\tchar*\tsv_pvbyte(SV *sv)" sv_pvbyten: cmd: '' exp: "A private implementation of the C macro for compilers\nwhich can't cope with complex macro expressions. Always use the macro\ninstead.\n\n\tchar*\tsv_pvbyten(SV *sv, STRLEN *lp)" sv_pvbyten_force: cmd: '' exp: "The backend for the C macro. Always use the macro instead.\n\n\tchar*\tsv_pvbyten_force(SV* sv, STRLEN* lp)" sv_pvn: cmd: '' exp: "A private implementation of the C macro for compilers which can't\ncope with complex macro expressions. Always use the macro instead.\n\n\tchar*\tsv_pvn(SV *sv, STRLEN *lp)" sv_pvn_force: cmd: '' exp: "Get a sensible string out of the SV somehow.\nA private implementation of the C macro for compilers which\ncan't cope with complex macro expressions. Always use the macro instead.\n\n\tchar*\tsv_pvn_force(SV* sv, STRLEN* lp)" sv_pvn_force_flags: cmd: '' exp: "Get a sensible string out of the SV somehow.\nIf C has C bit set, will C on C if\nappropriate, else not. C and C are\nimplemented in terms of this function.\nYou normally want to use the various wrapper macros instead: see\nC and C\n\n\tchar*\tsv_pvn_force_flags(SV* sv, STRLEN* lp, I32 flags)" sv_pvutf8: cmd: '' exp: "Use the C macro instead\n\n\tchar*\tsv_pvutf8(SV *sv)" sv_pvutf8n: cmd: '' exp: "A private implementation of the C macro for compilers\nwhich can't cope with complex macro expressions. Always use the macro\ninstead.\n\n\tchar*\tsv_pvutf8n(SV *sv, STRLEN *lp)" sv_pvutf8n_force: cmd: '' exp: "The backend for the C macro. Always use the macro instead.\n\n\tchar*\tsv_pvutf8n_force(SV* sv, STRLEN* lp)" sv_recode_to_utf8: cmd: '' exp: "The encoding is assumed to be an Encode object, on entry the PV\nof the sv is assumed to be octets in that encoding, and the sv\nwill be converted into Unicode (and UTF-8).\n\nIf the sv already is UTF-8 (or if it is not POK), or if the encoding\nis not a reference, nothing is done to the sv. If the encoding is not\nan C Encoding object, bad things will happen.\n(See F and L).\n\nThe PV of the sv is returned.\n\n\tchar*\tsv_recode_to_utf8(SV* sv, SV *encoding)" sv_reftype: cmd: '' exp: "Returns a string describing what the SV is a reference to.\n\n\tconst char*\tsv_reftype(const SV* sv, int ob)" sv_replace: cmd: '' exp: "Make the first argument a copy of the second, then delete the original.\nThe target SV physically takes over ownership of the body of the source SV\nand inherits its flags; however, the target keeps any magic it owns,\nand any magic in the source is discarded.\nNote that this is a rather specialist SV copying operation; most of the\ntime you'll want to use C or one of its many macro front-ends.\n\n\tvoid\tsv_replace(SV* sv, SV* nsv)" sv_report_used: cmd: '' exp: "Dump the contents of all SVs not yet freed. (Debugging aid).\n\n\tvoid\tsv_report_used()" sv_reset: cmd: '' exp: "Underlying implementation for the C Perl function.\nNote that the perl-level function is vaguely deprecated.\n\n\tvoid\tsv_reset(const char* s, HV* stash)" sv_rvweaken: cmd: '' exp: "Weaken a reference: set the C flag on this RV; give the\nreferred-to SV C magic if it hasn't already; and\npush a back-reference to this RV onto the array of backreferences\nassociated with that magic. If the RV is magical, set magic will be\ncalled after the RV is cleared.\n\n\tSV*\tsv_rvweaken(SV *sv)" sv_setiv: cmd: '' exp: "Copies an integer into the given SV, upgrading first if necessary.\nDoes not handle 'set' magic. See also C.\n\n\tvoid\tsv_setiv(SV* sv, IV num)" sv_setiv_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_setiv_mg(SV *sv, IV i)" sv_setnv: cmd: '' exp: "Copies a double into the given SV, upgrading first if necessary.\nDoes not handle 'set' magic. See also C.\n\n\tvoid\tsv_setnv(SV* sv, NV num)" sv_setnv_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_setnv_mg(SV *sv, NV num)" sv_setpv: cmd: '' exp: "Copies a string into an SV. The string must be null-terminated. Does not\nhandle 'set' magic. See C.\n\n\tvoid\tsv_setpv(SV* sv, const char* ptr)" sv_setpv_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_setpv_mg(SV *sv, const char *ptr)" sv_setpvf: cmd: '' exp: "Works like C but copies the text into the SV instead of\nappending it. Does not handle 'set' magic. See C.\n\n\tvoid\tsv_setpvf(SV* sv, const char* pat, ...)" sv_setpvf_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_setpvf_mg(SV *sv, const char* pat, ...)" sv_setpviv: cmd: '' exp: "Copies an integer into the given SV, also updating its string value.\nDoes not handle 'set' magic. See C.\n\n\tvoid\tsv_setpviv(SV* sv, IV num)" sv_setpviv_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_setpviv_mg(SV *sv, IV iv)" sv_setpvn: cmd: '' exp: "Copies a string into an SV. The C parameter indicates the number of\nbytes to be copied. If the C argument is NULL the SV will become\nundefined. Does not handle 'set' magic. See C.\n\n\tvoid\tsv_setpvn(SV* sv, const char* ptr, STRLEN len)" sv_setpvn_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_setpvn_mg(SV *sv, const char *ptr, STRLEN len)" sv_setpvs: cmd: '' exp: "Like C, but takes a literal string instead of a string/length pair.\n\n\tvoid\tsv_setpvs(SV* sv, const char* s)" sv_setref_iv: cmd: '' exp: "Copies an integer into a new SV, optionally blessing the SV. The C\nargument will be upgraded to an RV. That RV will be modified to point to\nthe new SV. The C argument indicates the package for the\nblessing. Set C to C to avoid the blessing. The new SV\nwill have a reference count of 1, and the RV will be returned.\n\n\tSV*\tsv_setref_iv(SV* rv, const char* classname, IV iv)" sv_setref_nv: cmd: '' exp: "Copies a double into a new SV, optionally blessing the SV. The C\nargument will be upgraded to an RV. That RV will be modified to point to\nthe new SV. The C argument indicates the package for the\nblessing. Set C to C to avoid the blessing. The new SV\nwill have a reference count of 1, and the RV will be returned.\n\n\tSV*\tsv_setref_nv(SV* rv, const char* classname, NV nv)" sv_setref_pv: cmd: '' exp: "Copies a pointer into a new SV, optionally blessing the SV. The C\nargument will be upgraded to an RV. That RV will be modified to point to\nthe new SV. If the C argument is NULL then C will be placed\ninto the SV. The C argument indicates the package for the\nblessing. Set C to C to avoid the blessing. The new SV\nwill have a reference count of 1, and the RV will be returned.\n\nDo not use with other Perl types such as HV, AV, SV, CV, because those\nobjects will become corrupted by the pointer copy process.\n\nNote that C copies the string while this copies the pointer.\n\n\tSV*\tsv_setref_pv(SV* rv, const char* classname, void* pv)" sv_setref_pvn: cmd: '' exp: "Copies a string into a new SV, optionally blessing the SV. The length of the\nstring must be specified with C. The C argument will be upgraded to\nan RV. That RV will be modified to point to the new SV. The C\nargument indicates the package for the blessing. Set C to\nC to avoid the blessing. The new SV will have a reference count\nof 1, and the RV will be returned.\n\nNote that C copies the pointer while this copies the string.\n\n\tSV*\tsv_setref_pvn(SV* rv, const char* classname, const char* pv, STRLEN n)" sv_setref_uv: cmd: '' exp: "Copies an unsigned integer into a new SV, optionally blessing the SV. The C\nargument will be upgraded to an RV. That RV will be modified to point to\nthe new SV. The C argument indicates the package for the\nblessing. Set C to C to avoid the blessing. The new SV\nwill have a reference count of 1, and the RV will be returned.\n\n\tSV*\tsv_setref_uv(SV* rv, const char* classname, UV uv)" sv_setsv: cmd: '' exp: "Copies the contents of the source SV C into the destination SV\nC. The source SV may be destroyed if it is mortal, so don't use this\nfunction if the source SV needs to be reused. Does not handle 'set' magic.\nLoosely speaking, it performs a copy-by-value, obliterating any previous\ncontent of the destination.\n\nYou probably want to use one of the assortment of wrappers, such as\nC, C, C and\nC.\n\n\tvoid\tsv_setsv(SV *dstr, SV *sstr)" sv_setsv_flags: cmd: '' exp: "Copies the contents of the source SV C into the destination SV\nC. The source SV may be destroyed if it is mortal, so don't use this\nfunction if the source SV needs to be reused. Does not handle 'set' magic.\nLoosely speaking, it performs a copy-by-value, obliterating any previous\ncontent of the destination.\nIf the C parameter has the C bit set, will C on\nC if appropriate, else not. If the C parameter has the\nC bit set then the buffers of temps will not be stolen. \nand C are implemented in terms of this function.\n\nYou probably want to use one of the assortment of wrappers, such as\nC, C, C and\nC.\n\nThis is the primary function for copying scalars, and most other\ncopy-ish functions and macros use this underneath.\n\n\tvoid\tsv_setsv_flags(SV *dstr, SV *sstr, I32 flags)" sv_setsv_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_setsv_mg(SV *dstr, SV *sstr)" sv_setsv_nomg: cmd: '' exp: "Like C but doesn't process magic.\n\n\tvoid\tsv_setsv_nomg(SV* dsv, SV* ssv)" sv_setuv: cmd: '' exp: "Copies an unsigned integer into the given SV, upgrading first if necessary.\nDoes not handle 'set' magic. See also C.\n\n\tvoid\tsv_setuv(SV* sv, UV num)" sv_setuv_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_setuv_mg(SV *sv, UV u)" sv_taint: cmd: '' exp: "Taint an SV. Use C instead.\n\tvoid\tsv_taint(SV* sv)" sv_tainted: cmd: '' exp: "Test an SV for taintedness. Use C instead.\n\tbool\tsv_tainted(SV* sv)" sv_true: cmd: '' exp: "Returns true if the SV has a true value by Perl's rules.\nUse the C macro instead, which may call C or may\ninstead use an in-line version.\n\n\tI32\tsv_true(SV *sv)" sv_uni_display: cmd: '' exp: "Build to the scalar dsv a displayable version of the scalar sv,\nthe displayable version being at most pvlim bytes long\n(if longer, the rest is truncated and \"...\" will be appended).\n\nThe flags argument is as in pv_uni_display().\n\nThe pointer to the PV of the dsv is returned.\n\n\tchar*\tsv_uni_display(SV *dsv, SV *ssv, STRLEN pvlim, UV flags)" sv_unmagic: cmd: '' exp: "Removes all magic of type C from an SV.\n\n\tint\tsv_unmagic(SV* sv, int type)" sv_unref: cmd: '' exp: "Unsets the RV status of the SV, and decrements the reference count of\nwhatever was being referenced by the RV. This can almost be thought of\nas a reversal of C. This is C with the C\nbeing zero. See C.\n\n\tvoid\tsv_unref(SV* sv)" sv_unref_flags: cmd: '' exp: "Unsets the RV status of the SV, and decrements the reference count of\nwhatever was being referenced by the RV. This can almost be thought of\nas a reversal of C. The C argument can contain\nC to force the reference count to be decremented\n(otherwise the decrementing is conditional on the reference count being\ndifferent from one or the reference being a readonly SV).\nSee C.\n\n\tvoid\tsv_unref_flags(SV *ref, U32 flags)" sv_untaint: cmd: '' exp: "Untaint an SV. Use C instead.\n\tvoid\tsv_untaint(SV* sv)" sv_upgrade: cmd: '' exp: "Upgrade an SV to a more complex form. Generally adds a new body type to the\nSV, then copies across as much information as possible from the old body.\nYou generally want to use the C macro wrapper. See also C.\n\n\tvoid\tsv_upgrade(SV* sv, svtype new_type)" sv_usepvn: cmd: '' exp: "Tells an SV to use C to find its string value. Implemented by\ncalling C with C of 0, hence does not handle 'set'\nmagic. See C.\n\n\tvoid\tsv_usepvn(SV* sv, char* ptr, STRLEN len)" sv_usepvn_flags: cmd: '' exp: "Tells an SV to use C to find its string value. Normally the\nstring is stored inside the SV but sv_usepvn allows the SV to use an\noutside string. The C should point to memory that was allocated\nby C. The string length, C, must be supplied. By default\nthis function will realloc (i.e. move) the memory pointed to by C,\nso that pointer should not be freed or used by the programmer after\ngiving it to sv_usepvn, and neither should any pointers from \"behind\"\nthat pointer (e.g. ptr + 1) be used.\n\nIf C & SV_SMAGIC is true, will call SvSETMAGIC. If C &\nSV_HAS_TRAILING_NUL is true, then C must be NUL, and the realloc\nwill be skipped. (i.e. the buffer is actually at least 1 byte longer than\nC, and already meets the requirements for storing in C)\n\n\tvoid\tsv_usepvn_flags(SV* sv, char* ptr, STRLEN len, U32 flags)" sv_usepvn_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\n\tvoid\tsv_usepvn_mg(SV *sv, char *ptr, STRLEN len)" sv_utf8_decode: cmd: '' exp: "If the PV of the SV is an octet sequence in UTF-8\nand contains a multiple-byte character, the C flag is turned on\nso that it looks like a character. If the PV contains only single-byte\ncharacters, the C flag stays being off.\nScans PV for validity and returns false if the PV is invalid UTF-8.\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tbool\tsv_utf8_decode(SV *sv)" sv_utf8_downgrade: cmd: '' exp: "Attempts to convert the PV of an SV from characters to bytes.\nIf the PV contains a character that cannot fit\nin a byte, this conversion will fail;\nin this case, either returns false or, if C is not\ntrue, croaks.\n\nThis is not as a general purpose Unicode to byte encoding interface:\nuse the Encode extension for that.\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tbool\tsv_utf8_downgrade(SV *sv, bool fail_ok)" sv_utf8_encode: cmd: '' exp: "Converts the PV of an SV to UTF-8, but then turns the C\nflag off so that it looks like octets again.\n\n\tvoid\tsv_utf8_encode(SV *sv)" sv_utf8_upgrade: cmd: '' exp: "Converts the PV of an SV to its UTF-8-encoded form.\nForces the SV to string form if it is not already.\nWill C on C if appropriate.\nAlways sets the SvUTF8 flag to avoid future validity checks even\nif the whole string is the same in UTF-8 as not.\nReturns the number of bytes in the converted string\n\nThis is not as a general purpose byte encoding to Unicode interface:\nuse the Encode extension for that.\n\n\tSTRLEN\tsv_utf8_upgrade(SV *sv)" sv_utf8_upgrade_flags: cmd: '' exp: "Converts the PV of an SV to its UTF-8-encoded form.\nForces the SV to string form if it is not already.\nAlways sets the SvUTF8 flag to avoid future validity checks even\nif all the bytes are invariant in UTF-8. If C has C bit set,\nwill C on C if appropriate, else not.\nReturns the number of bytes in the converted string\nC and\nC are implemented in terms of this function.\n\nThis is not as a general purpose byte encoding to Unicode interface:\nuse the Encode extension for that.\n\n\tSTRLEN\tsv_utf8_upgrade_flags(SV *sv, I32 flags)" sv_utf8_upgrade_nomg: cmd: '' exp: "Like sv_utf8_upgrade, but doesn't do magic on C\n\n\tSTRLEN\tsv_utf8_upgrade_nomg(SV *sv)" sv_uv: cmd: '' exp: "A private implementation of the C macro for compilers which can't\ncope with complex macro expressions. Always use the macro instead.\n\n\tUV\tsv_uv(SV* sv)" sv_vcatpvf: cmd: '' exp: "Processes its arguments like C and appends the formatted output\nto an SV. Does not handle 'set' magic. See C.\n\nUsually used via its frontend C.\n\n\tvoid\tsv_vcatpvf(SV* sv, const char* pat, va_list* args)" sv_vcatpvf_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\nUsually used via its frontend C.\n\n\tvoid\tsv_vcatpvf_mg(SV* sv, const char* pat, va_list* args)" sv_vcatpvfn: cmd: '' exp: "Processes its arguments like C and appends the formatted output\nto an SV. Uses an array of SVs if the C style variable argument list is\nmissing (NULL). When running with taint checks enabled, indicates via\nC if results are untrustworthy (often due to the use of\nlocales).\n\nUsually used via one of its frontends C and C.\n\n\tvoid\tsv_vcatpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)" sv_vsetpvf: cmd: '' exp: "Works like C but copies the text into the SV instead of\nappending it. Does not handle 'set' magic. See C.\n\nUsually used via its frontend C.\n\n\tvoid\tsv_vsetpvf(SV* sv, const char* pat, va_list* args)" sv_vsetpvf_mg: cmd: '' exp: "Like C, but also handles 'set' magic.\n\nUsually used via its frontend C.\n\n\tvoid\tsv_vsetpvf_mg(SV* sv, const char* pat, va_list* args)" sv_vsetpvfn: cmd: '' exp: "Works like C but copies the text into the SV instead of\nappending it.\n\nUsually used via one of its frontends C and C.\n\n\tvoid\tsv_vsetpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)" svtype: cmd: '' exp: "An enum of flags for Perl types. These are found in the file B\nin the C enum. Test these flags with the C macro." toLOWER: cmd: '' exp: "Converts the specified character to lowercase. Characters outside the\nUS-ASCII (Basic Latin) range are viewed as not having any case.\n\n\tchar\ttoLOWER(char ch)" toUPPER: cmd: '' exp: "Converts the specified character to uppercase. Characters outside the\nUS-ASCII (Basic Latin) range are viewed as not having any case.\n\n\tchar\ttoUPPER(char ch)" to_utf8_case: cmd: '' exp: "The \"p\" contains the pointer to the UTF-8 string encoding\nthe character that is being converted.\n\nThe \"ustrp\" is a pointer to the character buffer to put the\nconversion result to. The \"lenp\" is a pointer to the length\nof the result.\n\nThe \"swashp\" is a pointer to the swash to use.\n\nBoth the special and normal mappings are stored lib/unicore/To/Foo.pl,\nand loaded by SWASHNEW, using lib/utf8_heavy.pl. The special (usually,\nbut not always, a multicharacter mapping), is tried first.\n\nThe \"special\" is a string like \"utf8::ToSpecLower\", which means the\nhash %utf8::ToSpecLower. The access to the hash is through\nPerl_to_utf8_case().\n\nThe \"normal\" is a string like \"ToLower\" which means the swash\n%utf8::ToLower.\n\n\tUV\tto_utf8_case(const U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, const char *normal, const char *special)" to_utf8_fold: cmd: '' exp: "Convert the UTF-8 encoded character at p to its foldcase version and\nstore that in UTF-8 in ustrp and its length in bytes in lenp. Note\nthat the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the\nfoldcase version may be longer than the original character (up to\nthree characters).\n\nThe first character of the foldcased version is returned\n(but note, as explained above, that there may be more.)\n\n\tUV\tto_utf8_fold(const U8 *p, U8* ustrp, STRLEN *lenp)" to_utf8_lower: cmd: '' exp: "Convert the UTF-8 encoded character at p to its lowercase version and\nstore that in UTF-8 in ustrp and its length in bytes in lenp. Note\nthat the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the\nlowercase version may be longer than the original character.\n\nThe first character of the lowercased version is returned\n(but note, as explained above, that there may be more.)\n\n\tUV\tto_utf8_lower(const U8 *p, U8* ustrp, STRLEN *lenp)" to_utf8_title: cmd: '' exp: "Convert the UTF-8 encoded character at p to its titlecase version and\nstore that in UTF-8 in ustrp and its length in bytes in lenp. Note\nthat the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the\ntitlecase version may be longer than the original character.\n\nThe first character of the titlecased version is returned\n(but note, as explained above, that there may be more.)\n\n\tUV\tto_utf8_title(const U8 *p, U8* ustrp, STRLEN *lenp)" to_utf8_upper: cmd: '' exp: "Convert the UTF-8 encoded character at p to its uppercase version and\nstore that in UTF-8 in ustrp and its length in bytes in lenp. Note\nthat the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since\nthe uppercase version may be longer than the original character.\n\nThe first character of the uppercased version is returned\n(but note, as explained above, that there may be more.)\n\n\tUV\tto_utf8_upper(const U8 *p, U8* ustrp, STRLEN *lenp)" unpack_str: cmd: '' exp: "The engine implementing unpack() Perl function. Note: parameters strbeg, new_s\nand ocnt are not used. This call should not be used, use unpackstring instead.\n\n\tI32\tunpack_str(const char *pat, const char *patend, const char *s, const char *strbeg, const char *strend, char **new_s, I32 ocnt, U32 flags)" unpackstring: cmd: '' exp: "The engine implementing unpack() Perl function. C puts the\nextracted list items on the stack and returns the number of elements.\nIssue C before and C after the call to this function.\n\n\tI32\tunpackstring(const char *pat, const char *patend, const char *s, const char *strend, U32 flags)" upg_version: cmd: '' exp: "In-place upgrade of the supplied SV to a version object.\n\n SV *sv = upg_version(SV *sv, bool qv);\n\nReturns a pointer to the upgraded SV. Set the boolean qv if you want\nto force this SV to be interpreted as an \"extended\" version.\n\n\tSV*\tupg_version(SV *ver, bool qv)" utf8_distance: cmd: '' exp: "Returns the number of UTF-8 characters between the UTF-8 pointers C\nand C.\n\nWARNING: use only if you *know* that the pointers point inside the\nsame UTF-8 buffer.\n\n\tIV\tutf8_distance(const U8 *a, const U8 *b)" utf8_hop: cmd: '' exp: "Return the UTF-8 pointer C displaced by C characters, either\nforward or backward.\n\nWARNING: do not use the following unless you *know* C is within\nthe UTF-8 data pointed to by C *and* that on entry C is aligned\non the first byte of character or just after the last byte of a character.\n\n\tU8*\tutf8_hop(const U8 *s, I32 off)" utf8_length: cmd: '' exp: "Return the length of the UTF-8 char encoded string C in characters.\nStops at C (inclusive). If C s> or if the scan would end\nup past C, croaks.\n\n\tSTRLEN\tutf8_length(const U8* s, const U8 *e)" utf8_to_bytes: cmd: '' exp: "Converts a string C of length C from UTF-8 into native byte encoding.\nUnlike C, this over-writes the original string, and\nupdates len to contain the new length.\nReturns zero on failure, setting C to -1.\n\nIf you need a copy of the string, see C.\n\nNOTE: this function is experimental and may change or be\nremoved without notice.\n\n\tU8*\tutf8_to_bytes(U8 *s, STRLEN *len)" utf8_to_uvchr: cmd: '' exp: "Returns the native character value of the first character in the string C\nwhich is assumed to be in UTF-8 encoding; C will be set to the\nlength, in bytes, of that character.\n\nIf C does not point to a well-formed UTF-8 character, zero is\nreturned and retlen is set, if possible, to -1.\n\n\tUV\tutf8_to_uvchr(const U8 *s, STRLEN *retlen)" utf8_to_uvuni: cmd: '' exp: "Returns the Unicode code point of the first character in the string C\nwhich is assumed to be in UTF-8 encoding; C will be set to the\nlength, in bytes, of that character.\n\nThis function should only be used when the returned UV is considered\nan index into the Unicode semantic tables (e.g. swashes).\n\nIf C does not point to a well-formed UTF-8 character, zero is\nreturned and retlen is set, if possible, to -1.\n\n\tUV\tutf8_to_uvuni(const U8 *s, STRLEN *retlen)" utf8n_to_uvchr: cmd: '' exp: "flags\n\nReturns the native character value of the first character in the string \nC\nwhich is assumed to be in UTF-8 encoding; C will be set to the\nlength, in bytes, of that character.\n\nAllows length and flags to be passed to low level routine.\n\n\tUV\tutf8n_to_uvchr(const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)" utf8n_to_uvuni: cmd: '' exp: "Bottom level UTF-8 decode routine.\nReturns the Unicode code point value of the first character in the string C\nwhich is assumed to be in UTF-8 encoding and no longer than C;\nC will be set to the length, in bytes, of that character.\n\nIf C does not point to a well-formed UTF-8 character, the behaviour\nis dependent on the value of C: if it contains UTF8_CHECK_ONLY,\nit is assumed that the caller will raise a warning, and this function\nwill silently just set C to C<-1> and return zero. If the\nC does not contain UTF8_CHECK_ONLY, warnings about\nmalformations will be given, C will be set to the expected\nlength of the UTF-8 character in bytes, and zero will be returned.\n\nThe C can also contain various flags to allow deviations from\nthe strict UTF-8 encoding (see F).\n\nMost code should use utf8_to_uvchr() rather than call this directly.\n\n\tUV\tutf8n_to_uvuni(const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)" uvchr_to_utf8: cmd: '' exp: "Adds the UTF-8 representation of the Native codepoint C to the end\nof the string C; C should be have at least C free\nbytes available. The return value is the pointer to the byte after the\nend of the new character. In other words,\n\n d = uvchr_to_utf8(d, uv);\n\nis the recommended wide native character-aware way of saying\n\n *(d++) = uv;\n\n\tU8*\tuvchr_to_utf8(U8 *d, UV uv)" uvuni_to_utf8_flags: cmd: '' exp: "Adds the UTF-8 representation of the Unicode codepoint C to the end\nof the string C; C should be have at least C free\nbytes available. The return value is the pointer to the byte after the\nend of the new character. In other words,\n\n d = uvuni_to_utf8_flags(d, uv, flags);\n\nor, in most cases,\n\n d = uvuni_to_utf8(d, uv);\n\n(which is equivalent to)\n\n d = uvuni_to_utf8_flags(d, uv, 0);\n\nis the recommended Unicode-aware way of saying\n\n *(d++) = uv;\n\n\tU8*\tuvuni_to_utf8_flags(U8 *d, UV uv, UV flags)" vcmp: cmd: '' exp: "Version object aware cmp. Both operands must already have been \nconverted into version objects.\n\n\tint\tvcmp(SV *lhv, SV *rhv)" vnormal: cmd: '' exp: "Accepts a version object and returns the normalized string\nrepresentation. Call like:\n\n sv = vnormal(rv);\n\nNOTE: you can pass either the object directly or the SV\ncontained within the RV.\n\n\tSV*\tvnormal(SV *vs)" vnumify: cmd: '' exp: "Accepts a version object and returns the normalized floating\npoint representation. Call like:\n\n sv = vnumify(rv);\n\nNOTE: you can pass either the object directly or the SV\ncontained within the RV.\n\n\tSV*\tvnumify(SV *vs)" vstringify: cmd: '' exp: "In order to maintain maximum compatibility with earlier versions\nof Perl, this function will return either the floating point\nnotation or the multiple dotted notation, depending on whether\nthe original version contained 1 or more dots, respectively\n\n\tSV*\tvstringify(SV *vs)" vverify: cmd: '' exp: "Validates that the SV contains a valid version object.\n\n bool vverify(SV *vobj);\n\nNote that it only confirms the bare minimum structure (so as not to get\nconfused by derived classes which may contain additional hash entries):\n\n\tbool\tvverify(SV *vs)" warn: cmd: '' exp: "This is the XSUB-writer's interface to Perl's C function. Call this\nfunction the same way you call the C C function. See C.\n\n\tvoid\twarn(const char* pat, ...)" Padre-1.00/share/languages/perl5/perl5.yml0000644000175000017500000004135112074315403017015 0ustar petepete--- # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. abs: cmd: (NUMBER) exp: The absolute value of NUMBER. accept: cmd: (NEWSOCKET, GENERICSOCKET) exp: Accept an incoming socket. alarm: cmd: (NUMBER) exp: Asks the operating system to send an alarm sign after NUMBER seconds. atan2: cmd: (Y, X) exp: Returns the arctangent of Y/X in the range -PI to PI. bind: cmd: (SOCKET, NAME) exp: Binds a network address to a socket. binmode: cmd: (FILEHANDLE) or (FILEHANDLE, LAYER) exp: Arranges for FILEHANDLE to be read or written in "binary" format. bless: cmd: (REFERENCE, CLASSNAME) exp: Connects a REFERENCE (usually of a hash) to a CLASS to arrange for OOP dispatching. caller: cmd: (NUMBER) exp: Returns information regarding the caller of the current function NUMBER frames earlier in the call stack. chdir: cmd: (PATH) exp: Change the current working directory to PATH. chmod: cmd: (LIST) exp: Changes the permissions of a LIST of files. chomp: cmd: (STRING) or (ARRAY) exp: Remove the newline from the end of the STRING or from the end of every string in the ARRAY. chomp: cmd: (STRING) exp: Remove last character from STRING. (Usually better to use chomp than chop.) chown: cmd: (LIST) exp: Changes the owner (and group) of a LIST of files. chr: cmd: (NUMBER) exp: Returns the character represented by that NUMBER in the character set. chroot: cmd: (FILENAME) exp: (Superuser only.) close: cmd: (FILEHANDLE) exp: Flushes all the data and closes a FILEHANDLE opened by open(). closedir: cmd: (DIRECTORY_HANDLE) exp: Close a DIRECTORY_HANDLE opened by opendir(). connect: cmd: (SOCKET, NAME) exp: Attempts to connect to a remote socket. continue: cmd: BLOCK exp: Flow control statement. cos: cmd: (NUMBER) exp: Returns the cosine of NUMBER. crypt: cmd: (PLAINTEXT, SALT) exp: Returns the encrypted PLAINTEXT string using the SALT. dbmclose: cmd: (HASH) exp: See untie() instead. dbmopen: cmd: (HASH, DBNAME, MASK) exp: See tie() instead. defined: cmd: SCALAR exp: Returns false if SCALAR is undef. Otherwise returns true. delete: cmd: (HASH_ELEMENT) exp: Remove the HASH_ELEMENT from the HASH and return the value it had. die: cmd: (STRING) exp: Throw an exception that can be caught by an eval block. do: cmd: BLOCK or (PATH) exp: do PATH executes the file in the PATH. dump: cmd: () exp: Immediate core dump (crashing perl) not really useful for humans. each: cmd: (HASH) exp: Loop through a hash by returning the (key, value) pair on every call. eof: cmd: (FILEHANDLE) exp: Returns 1 if the next read on FILEHANDLE will return end of file, or if FILEHANDLE is not open. eval: cmd: BLOCK or (STRING) exp: Compile and execute the given STRING as if was a Perl script. Catching exceptions generated by perl or by calling die(). exec: cmd: (PROGRAM) exp: Execute the given external PROGRAM and quit once that is done. exists: cmd: (HASH_ELEMENT) exp: Returns true if the key of the HASH_ELEMENT exists in the HASH. exit: cmd: (NUMBER) exp: Exit the perl script giving NUMBER as the exit code. exp: cmd: (NUMBER) exp: Returns e (the natural logarithm base) to the power of EXPR. fcntl: cmd: (FILEHANDLE, FUNCTION, SCALAR) exp: Implements the fcntl(2) function. fileno: cmd: (FILEHANDLE) exp: Returns the file descriptor for a filehandle. flock: cmd: (FILEHANDLE, OPERATION) exp: Advisory locking of FILEHANDLE. fork: cmd: () exp: Forks a new process. In the parent returns the process ID of the child. In the child returns 0. for: cmd: (INITIALIZE; CHECK; STEP) { } exp: C-style for loop foreach: cmd: ITERATOR_SCALAR (LIST) { } exp: Iterate over a list of values. The iterator is usually look like "my $var". format: cmd: (?) exp: Declare a picture format for use by the "write" function formline: cmd: (PICTURE, LIST) exp: An internal function used by "format"s. getc: cmd: (FILEHANDLE) exp: Returns the next character from the input file attached to FILEHANDLE. getlogin: cmd: () exp: Return the current login. getpeername: cmd: (SOCKET) exp: Returns the packed sockaddr address of other end of the SOCKET connection. getpgrp: cmd: (PID) exp: Returns the current process group for the specified PID. getppid: cmd: () exp: Returns the process id of the parent process. getpriority: cmd: (WHICH,WHO) exp: Returns the current priority for a process, a process group, or a user. getsockname: cmd: (SOCKET) exp: Returns the packed sockaddr address of this end of the SOCKET connection. getsockopt: cmd: (SOCKET,LEVEL,OPTNAME) exp: Queries the option named OPTNAME associated with SOCKET at a given LEVEL. glob: cmd: (STRING) exp: Returns the list of files matching the STRING wildcard(s). gmtime: cmd: (TIMESTAMP) exp: Return a TIMESTAMP received from time() in human readable format. goto: cmd: (EXPR) exp: What can we say? Perl has a goto() function. grep: cmd: (BLOCK, LIST) exp: Returns a sublist of LIST consisting of every elements that renders the BLOCK to evaluate to true when $_ is set to the specific value. hex: cmd: (STRING) exp: Return the decimal value of the hex STRING. import: cmd: (LIST) exp: No built-in import function. It can be inherited from modules. index: cmd: '(STR, SUBSTR, INDEX)' exp: Return the offset of the next occurrence of SUBSTR in STR starting from INDEX. int: cmd: (NUMBER) exp: Returns the integer portion of NUMBER. ioctl: cmd: (FILEHANDLE, FUNCTION, SCALAR) exp: Implements the ioctl(2) function. join: cmd: '(STRING, LIST)' exp: Join the elements of LIST using the STRING as connector between every two element. keys: cmd: (HASH) exp: Returns a list consisting of all the keys of the named hash. kill: cmd: (SIGNAL, LIST) exp: Send the SIGNAL to every process given in the LIST. last: cmd: () or (LABEL) exp: Like the break() in other languages, quits a inner-most loop or the one marked with LABEL. lc: cmd: (STRING) exp: Return the lower case version of STRING lcfirst: cmd: (STRING) exp: Return the STRING with its first character turned to lowercase. length: cmd: (STRING) exp: Returns the length in characters of the STRING. link: cmd: (OLDFILE, NEWFILE) exp: Create a hard-link from OLDFILE to NEWFILE. (Unixism) listen: cmd: (SOCKET, QUESIZE) exp: Does the same thing that the listen system call does. local: cmd: (VARIABLEs) exp: Localizes a variable. In most cases you'll want to use my(). localtime: cmd: (TIMESTAMP) exp: Return a TIMESTAMP received from time() in human readable format. lock: cmd: (VARIABLE) exp: This function places an advisory lock on a shared variable. log: cmd: (NUMBER) exp: Returns the natural logarithm (base e) of NUMBER. lstat: cmd: (FILENAME) exp: Like stat() just on the symbolic link. (Unixism) map: cmd: (BLOCK, LIST) exp: Return a list generated by BLOCK as it was executed after each element of LIST is placed in $_. mkdir: cmd: (DIRNAME) exp: Create the directory DIRNAME. msgctl: cmd: (ID, CMD, ARG) exp: Calls the System V IPC function msgctl(2). msgget: cmd: (KEY, FLAGS) exp: Calls the System V IPC function msgget(2). msgrcv: cmd: (ID,VAR,SIZE,TYPE,FLAGS) exp: Calls the System V IPC function msgrcv. msgsnd: cmd: (ID,MSG,FLAGS) exp: Calls the System V IPC function msgsnd. my: cmd: (VARIABLEs) exp: Declare a SCALAR, ARRAY or HASH variable in the current scope (BLOCK). next: cmd: () or (LABEL) exp: Like the "continue" in other languages, skip to the next iteration of the current loop. no: cmd: (MODULE) exp: The opposite of use(). oct: cmd: (STRING) exp: Interprets STRING as an octal and returns the corresponding decimal value. open: cmd: (FILEHANDLE, MODE, FILE) exp: Opens the give FILE in MODE (< for read , > for write, >> for append) and assigns the filehandle to FILEHANDLE. opendir: cmd: (DIRHANDLE, DIRECTORY) exp: Open a DIRECTORY for reading and assign the handle to DIRHANDLE. ord: cmd: (STRING) exp: Return the numeric value of the first character in STRING. our: cmd: (VARIABLEs) exp: Declare a package variable. pack: cmd: (TEMPLATE, LIST) exp: Takes a LIST of values and converts it into a string using the rules given by the TEMPLATE. package: cmd: NAMESPACE exp: Declares a NAMESPACE. pipe: cmd: (READHANDLE,WRITEHANDLE) exp: Opens a pair of connected pipes like the corresponding system call. pop: cmd: (@ARRAY) exp: Return the last element of the array. pos: cmd: (SCALAR_VARIABLE) exp: Returns the offset of where the last "m//g" search left off for the SCALAR_VARIABLE in question. print: cmd: (LIST) or (FILEHANDLE LIST) exp: Print to the screen or to the file that was open()-ed for writing. printf: cmd: (STRING, LIST) or (FILEHANDLE, STRING, LIST) exp: See sprintf. prototype: cmd: (FUNCTION) exp: Returns the prototype of a function. push: cmd: '(@ARRAY, VALUE) or (@ARRAY, LIST)' exp: Add one or more elements to the end of the array. quotemeta: cmd: (STRING) exp: Returns the value of STRING with all non-"word" characters backslashed. rand: cmd: () or (NUMBER) exp: Returns a random number between 0 and 1 or between 0 and NUMBER. read: cmd: (FILEHANDLE, SCALAR_VARIABLE, LENGTH, OFFSET) exp: Read LENGTH bytes from FILEHANDLE and put them in SCALAR_VARIABLE starting from OFFSET. readdir: cmd: (DIRHANDLE) exp: Returns the next directory entry for a directory opened by "opendir". readline: cmd: (FILEHANDLE) exp: Reads from the filehandle whose typeglob is contained in EXPR. readlink: cmd: (EXPR) exp: Returns the value of a symbolic link. readpipe: cmd: EXPR exp: EXPR is executed as a system command. recv: cmd: (SOCKET,SCALAR,LENGTH,FLAGS) exp: Receives a message on a socket. redo: cmd: () or (LABEL) exp: Execute again the current iteration of a loop. ref: cmd: SCALAR_VARIABLE exp: Returns the name of the reference type of SCALAR_VARIABLE or false if it is not a reference. rename: cmd: (OLDNAME, NEWNAME) exp: Rename a file of directory on the same filesystem. require: cmd: MODULE exp: Load the given MODULE to the memory. reset: cmd: (EXPR) exp: Generally used in a "continue" block at the end of a loop to clear variables. return: cmd: (LIST) exp: Returns from a subroutine. reverse: cmd: (LIST) exp: Return the LIST in reverse order. rewinddir: cmd: DIRHANDLE exp: Sets the current position to the beginning of the directory for the "readdir" routine on DIRHANDLE. rindex: cmd: (STR,SUBSTR,POSITION) or (STR,SUBSTR) exp: Works just like index(). rmdir: cmd: (FILENAME) exp: Try to remove a directory. (Only works if directory is empty.) scalar: cmd: (EXP) exp: Forces EXPR to be interpreted in scalar context and returns the value of EXPR. seek: cmd: (FILEHANDLE, POSITION, WHENCE) exp: Sets FILEHANDLE's position, just like the "fseek" call of "stdio". seekdir: cmd: (DIRHANDLE,POS) exp: Sets the current position for the "readdir" routine on DIRHANDLE. select: cmd: (FILEHANDLE) or (RBITS,WBITS,EBITS,TIMEOUT) exp: Sets the current default filehandle for output. The 4 param version calls the select(2) system call with the bit masks specified. semctl: cmd: (ID,SEMNUM,CMD,ARG) exp: Calls the System V IPC function "semctl". semget: cmd: (KEY,NSEMS,FLAGS) exp: Calls the System V IPC function semget. semop: cmd: (KEY,OPSTRING) exp: Calls the System V IPC function semop. send: cmd: (SOCKET,MSG,FLAGS) exp: Sends a message on a socket. setpgrp: cmd: (PID,PGRP) exp: Sets the current process group for the specified PID. setpriority: cmd: (WHICH,WHO,PRIORITY) exp: Sets the current priority for a process, a process group, or a user. setsockopt: cmd: (SOCKET,LEVEL,OPTNAME,OPTVAL) exp: Sets the socket option requested. shift: cmd: (ARRAY) exp: Shifts the first value of the array off and returns it, shortening the array by 1 and moving everything down. shmctl: cmd: ID,CMD,ARG exp: Calls the System V IPC function shmctl. shmget: cmd: KEY,SIZE,FLAGS exp: Calls the System V IPC function shmget. shmread: cmd: ID,VAR,POS,SIZE exp: Reads the System V shared memory segment ID. shmwrite: cmd: ID,STRING,POS,SIZE exp: Writes the System V shared memory segment ID. shutdown: cmd: SOCKET,HOW exp: Shuts down a socket connection in the manner indicated by HOW. sin: cmd: EXPR exp: Returns the sine of EXPR (expressed in radians). sleep: cmd: EXPR exp: Causes the script to sleep for EXPR seconds, or forever if no EXPR. socket: cmd: SOCKET,DOMAIN,TYPE,PROTOCOL exp: Opens a socket of the specified kind and attaches it to filehandle SOCKET. socketpair: cmd: SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL exp: Creates an unnamed pair of sockets in the specified domain, of the specified type. sort: cmd: BLOCK LIST exp: Sort a LIST of values according to the condition implemented in BLOCK. splice: cmd: ARRAY,OFFSET,LENGTH,LIST exp: Removes the elements designated by OFFSET and LENGTH from an array, and replaces them with the elements of LIST, if any. split: cmd: '(/PATTERN/, STRING , LIMIT) or (/PATTERN/, STRING , LIMIT)' exp: Split up the STRING at every match of the PATTERN. sprintf: cmd: (FORMAT, LIST) exp: Returns a string formatted by the usual "printf" conventions of the C library function "sprintf". sqrt: cmd: (NUMBER) exp: Return the square root of NUMBER. srand: cmd: (NUMBER) exp: Sets the random number seed for the "rand" operator. stat: cmd: FILENAME exp: Returns a 13-element list giving the status info for a file. study: cmd: STRING exp: Takes extra time to study STRING in anticipation of doing many pattern matches on it. sub: cmd: NAME BLOCK exp: This is subroutine definition, not a real function per se. substr: cmd: '(STRING, OFFSET, LENGTH)' exp: Return LENGTH number of character of the STRING starting from OFFSET character. symlink: cmd: OLDFILE,NEWFILE exp: Creates a new filename symbolically linked to the old filename. syscall: cmd: NUMBER, LIST exp: Calls the system call specified as the first element of the list, passing the remaining elements as arguments to the system call. sysopen: cmd: FILEHANDLE,FILENAME,MODE,PERMS exp: Opens the file whose filename is given by FILENAME, and associates it with FILEHANDLE. sysread: cmd: FILEHANDLE,SCALAR,LENGTH exp: Attempts to read LENGTH bytes of data into variable SCALAR from the specified FILEHANDLE, using the system call read(2). sysseek: cmd: FILEHANDLE,POSITION,WHENCE exp: Sets FILEHANDLE's system position in bytes using the system call lseek(2). system: cmd: PROGRAM LIST exp: Does exactly the same thing as "exec LIST", except that a fork is done first, syswrite: cmd: FILEHANDLE,SCALAR,LENGTH,OFFSET exp: Attempts to write LENGTH bytes of data from variable SCALAR to the specified FILEHANDLE, using the system call write(2). tell: cmd: FILEHANDLE exp: Returns the current position in bytes for FILEHANDLE, or -1 on error. telldir: cmd: DIRHANDLE exp: Returns the current position of the "readdir" routines on DIRHANDLE. tie: cmd: VARIABLE,CLASSNAME,LIST exp: This function binds a variable to a package class that will provide the implementation for the variable. tied: cmd: VARIABLE exp: Returns a reference to the object underlying VARIABLE. time: cmd: () exp: Returns the number of non-leap seconds since whatever time the system considers to be the epoch. times: cmd: () exp: Returns a four-element list giving the user and system times, in seconds, for this process and the children of this process. truncate: cmd: FILEHANDLE, LENGTH exp: Truncates the file opened on FILEHANDLE to the specified length. uc: cmd: STRING exp: Returns an uppercase version of STRING. ucfirst: cmd: STRING exp: Return the string with its first character turned to uppercase. umask: cmd: NUMBER exp: Sets the umask for the process to NUMBER and returns the previous value. (Unixism) undef: cmd: VARIABLE exp: Undefines the value of VARIABLE unlink: cmd: LIST exp: Deletes a list of files. unpack: cmd: TEMPLATE,EXPR exp: Does the reverse of pack. untie: cmd: VARIABLE exp: Breaks the binding between a variable and a package. unshift: cmd: (ARRAY, LIST) exp: Does the opposite of a shift. use: cmd: MODULE exp: Load a module into memory. utime: cmd: LIST exp: Changes the access and modification times on each file of a list of files. values: cmd: HASH exp: Returns a list consisting of all the values of the named hash. vec: cmd: EXPR,OFFSET,BITS exp: Treats the string in EXPR as a bit vector made up of elements of width BITS, and returns the value of the element specified by OFFSET as an unsigned integer. wait: cmd: () exp: Behaves like the wait(2) system call on your system. waitpid: cmd: PID,FLAGS exp: Waits for a particular child process to terminate. wantarray: cmd: () no parameters exp: Returns true if the current call of the function expects more than one results. warn: cmd: (STRING) exp: Produces a message on STDERR just like die, but does not exit or throw an exception. write: cmd: EXPR exp: Writes a formatted record (possibly multi-line) to the specified FILEHANDLE. Padre-1.00/share/padre-splash.png0000644000175000017500000017005611642011363015342 0ustar petepetePNG  IHDRyvsRGBgAMA aPLTE        #&! ""  ("*#' $, &.+2-9+7)10<4? 29"''++/""!"&'&+*/,47>08045>"$"!%'%'$')& *+%)+%//+,*(,.!/4+/1.0. 59&49)44/35*8=1305743790;;8:78<> 6B 8D ?P;F>I;C#C?A> BMBREUHWFP K[@L@GCSKVO_EQO[ Uj\pQa[jXmScWh`t`odxg{j"DL.CG+EM!JV'IQ(O\!T_.PW6DI3HL8CD=AC4MV:MQ8X_'Xc![k&^o/^j0Wd et'kz-eu4dp>nzFHEDIKESWkx|orwu~#p/q*u&~1z9z #1 ).&(15)"!)08?119<(:3:FOCIOJVYR]Xdbjcimiqpx|=|X pHYs  ~tEXtSoftwarePaint.NET v3.5.87;]IDATx^g@W C "*E)RXkI;IJY,htŘ5gkI4cʾu)o)3)׹z :3}tό`s}A7A7d+WgnX++nro';&t]'uvt?'y0{?d+cNvt=rwY,-ttx3:݄g &nvoaΑcY[7vloOKjlYg9ͱyN6Xɟ5 w_͙sԍYэ,}t={O;cqiqoA)S߀ R7#߇8918:\!GV:q<[?:cHy( UWWXe`f穏nu(C>is[Wg>/ :鏙En(/0[ɳ]RZ%gu`,I=Ti73>j)z-:_"@PkPԳWV 4*W"kz?'hocF_s{xK 43Y](O4:JR>G <<&C c#ގʓEm\ &Oap頟0Qo2ǐjVO%'|P^G_no_8+h)vIm0qc|(ןxFS&P~|wopb; v9B8\W= !q~yFy@7+^/3Hgϯ{qYi:+pZ h'm~p^kwЏ;lxkouGy;_#'V}dMa6}Y~z#ӌqS6S#vSzLNM)ƩaAg(u}6@G] 3g#X$wi{7;w̯saUiR?vފ[<}~\5?5<99W016 ggr` 8GcwkЏowRONf sGXNS[PWHs[$R?OU;9 qM1NԻbTwؿ'/e~vr (w'd8-yȎ-z>F2le8 P|!!ȰTYoΡ4.B(iOz@‰H>c "Yx 4=B_lcwF0:N̂y\:vl~{زz quߨd;;2.S#N1qխ5w<,ODv*i^\>V1mF yv5`L>4gлb}<~jD*gKg"ϙhaD4\Li-FbL;ټdg̵Ϋ&*!0yr|qs6.qrj't;8qܹzW )jgd@1t`ƉB>5^i^s. \}mVyBDn :Mq 2r/#JF'헼w]hV,JN<}wNROQeKl?Bdv-T 'PѼYz:8|#CNIȎoipԖ!Vry0!e<=h}={qp#on.XZz::[1MX1†u!6}Ƨ}2P!,J6xڛY淶`9Cl6Z7Lrȩ~b3 ˸>q6#ްd{O }mw_ Ǹ/pwm[İp Y(6"KX2M?b&|TY!Mqnqn1tU"lGfmFzH?E? ͟ac?~ !"1n C^[>ƸEs h=F68j$$yFݔKy*z ]FڪЅ p}}U{h >p`!S9y-99"bFA&w>far:`᫜{\@a/E<DN}κO;iD}dGOK?} c ^=mpkLnnn^^^>>ޡ~Z  =4m.ZX!D'6pɞwO݁^k 7ٷ/(@${/ Y8'`ZB E&T8brڃe<={BٙwjM//Pwoo77qa< eoa>>1>>X 2pf-lDz*,KtȖr,2ZQO pwsg~| X2 WFOh^L{$Apq,b?^r|!"bh"%<HƅsT+̲?~k ԗuci$}Z6F 'VO ss<0V= 8]$Bݠ C'HcȬz}V]6oJ?؀X`~#` uS[6MvYLP!&{EYC!/n.-XVPtIף׽`T>ar%q܈ic1ip1 }׮ݰ.8u_Z >W{yii[DQz7b^f؇,`y?(05:00(PF kZ2?v_,j5@ZG 4!xxXi19i~/I#<4540-Uo+}W5l-U=-֤?؀ॾG狳lCzXfr 5Ϛk[$5p6 a~k]8h ly.VKh%d;`7xƖՈI]Ɉ3zo׭BoX=z[P0Zd:Bl &7w.`12&h9xWRD 쇖 Y>lU& E/dAK`51A<>@tɥmS] Ԡ- =%U=8=dR/3MC6޾~`*Yp 9X?ߥ짚< r]a-\㻒-L^飢  cҊ "_.&pͺkw0SDPOH[SCa>a{E)i ^4G{lN6e!CǭtחE$mݲ1;!aƄ#^FQIQ1\hqC쁉琇^^h]dbZLTMR6ܘ3!aքM[rf&OZ--(5hJصa_}Mpa"9Z\eI II 8M)I FŬO^Pt[mc.' PyE*T ,lY|NJٙ))˷̤ۤ蠘51n!CjVV 0j183%!>eqԢȠ^HbK.6 kQذWj26,eؘ|yf̔SRX&S!e,E|(RnA˲3yF(dt~dlBBQ0– 6 78v 8;>!;)icJy - f}$ B;b8\4U Z_LJ [-)+2sҳ2*s2r22+rLOO]eMRfE Q!!=_J1ʁmޔNPO~bbp]½[.rQvJΔJKgy|ɫOofe䧧ʼnK"XRXpPQE ZwhAltQd +Vdf.+wTnͯٞ+g9r+y[  . -D3C _T($)egz`-d]|C-7C-j:̄Ŭ6\$vn==!C^AR8Ⲳ |-ῒ򲲲ʼʼtP1p>?0ŭ@pB| 8i̬ʜܼZV82$lL  ,<BY\ \-bGEyiCyYIY1ֹ\xVS UvCsJ+إΜ9Z_vq_㋶AW/\az従&Ye?p6.IۚcΜjMNi={1N>v^.nx8'lpX:;4'vPQڢM[ꎟ9Ol={'yV;zknih[2S/ .8)19Yͩ 90{c)=^Bj~Wׯ_GwW$$ q3 ׆XpߚHc˛;tɊnݺ+?uіږ\( qa*h33ʻ=T{6 o޼~s(2R⣒!YĭMGmڿUׯ_G*"c6K2cR"_Ĩ^սᄏ}wWj4eoޚVX<` 6ѡ\ygNMySyݯ_9\fFЅOGGF-k8/u7W{wo߼yZyJdM˲DoK/iZPtZ|BF~ә^U}|Y?/~љ%eY1H+{SVqq}')uׯ\W4Oϳ5 r/X-;mY~xxTn^[\[Z^ܸX*biJ-D9UVtCoV6s6ܙ= ;6a(vS^F[:yW?lٕ-mIJ=f-&"JPFfZXby.HO8=ǟ~u9ݻն5Vf m.OĚ:&&~cJz~ٞ3\nὛW>j_bӲܘpr`sQqܕ~wE,I୛W/sOַ@mL\&tK ,Ṋ8Uyoͻvkyi!x_-1O^ȯl:՛>,W?j.HHĚI P8u0nYX P )+]ݏ/?ӏY_\x8*2hA`AAҵ~vgf|{??}OԗflN@zq3xx{ ?(5>sgUűWzțY/ڒ~A;됮s576V|KƭiEi1E닒P0w;{U ![[DZxq|̔ ?אָ}GZoU=hC?+=4])3s׎c7^‚~c嗟w\[3YhP+ " }yVNc c@n]98'?)>1uZ_ULěm ِSYz_=dA?ΊX2'ܓ벪9"o!tDoyμ>{&|{orh fnDXHQV}#Q>{W.Ӷ aÞ yi ӵ3A4أĮY_}'ٜL_~z_ݼr\.FMjbE&Z&:]qiˇ ??߽ZP$d-VH%"|(rKg ̚~{E[ݓ{P߫ۃȁ ;MeQ1q9eE}tL s+vʲSl@*r~>=1FLĕOsЁ>~GFe@_4h+ws[U[R!O۴ssN^nyМvyTKI~Ud}Ǡ %"o%A) oVW_rOwڕsG! ;3vN9{_yK?~))h sTUR{J= @P#LxBKnJo7hVE/ޙk]Gٽ'(UXaf%Kbc&Ϊ,.?{߃t v\ *7mM\z svĖb:$5dI$:~=~nvViEn Bыss|织 !O߻vd{F@ >8d]P$D/Da{~rDKCyyY9l ]-|$Z!DH%apw<\s5JgFezF~ǜ]%'?ɣ~)xiFR &Xx-$KjEľFkf4Ծw fo^U8"㵥9I 35!eKFNCC퉋WWr[;jq=޺r!7k&u0A$tML=٩ Q Q$'woߞ_yK6Ꜫ#m T 6$!Ʀ0cVFfƓ˃_;֐j't@۩DLy=b3x<ĕ[)7t`vE~or߽.G8-_[^Zs ܣ2Ьk"A_͍P kw@]~ G;.7W/{h$uqteuC'=+swixL:Pz[✌L <>^*&lddTRJV. 3~CT0# $;~^YYuK:E|?>[7n\^v{s2IkMiqP ﻎ-& xWy8#AYb1pK\qX蒽ة/ ,JXSݢaBewo^cn޹"N_ >+vޔxJnq}LpW@\O[|r'J}XLAL~AiQ /d} jKpAzl[ۥCDVp3pl/Wqɞo~ۡpkEB^<$?'+ecTdo{*/`,.NPz|5`]O?իW]R.IhUX1By-<G;X^%9uIpx $)زGA&w@q f۱ì0v.]ݮ.$/'+gtfx@Jkz~;s96|)^]ile 29ڋ?,9g o 9}i>ϞxO^{hjsmq~^^ޮ=-f( ?pօw>x|,'/\)d"E_[3Ia}`PMɓ'O2o#S,1-|!X H7k+"VpuG>vU8sX #g)i)ĕtby̭}u555-u{{jjv6kil>|EE%sѺ|pK#^| TJ<uT.d_]}.+حDzpmiYE1/ʛc}Rh_Bv r hfdFxW W>>c1[n-i>CK=P\Xm>2_uiФ?WWa6Y|F-KJ}Ol/.aNT^*m=x;@D(:PWwh=8r;)h:RT^Q_\RR^RAc}@QBQjkjG*ļ̤[, \+ुp!7f3Tϕ@R|F! WGR??{@}3ԡpzɏ頮\;DJwHSۉ=p-Dtgß}vbR'rVL뱄hWUI]:nȑ55x9)(mr @TEK)z{j{>,0 ?bkJHbd &,fO DF\ߗkXL$@H~D'.Nz!ĤC0v'd!jr!0ƚB_9X=WP-.o# -/^3MD| Q>iTk16 b }2>DJ#wS\VqquEySuu]>4ܔc¨Z.mxV6{ C.aI* >~|tN yx5hhصհƺ.GbGْ 0fo@$ӂ$UgNajOȢ˫p?!@œPDpyn~~yfzuӎ]oڱ%^Gw%hCY4UeTH(J"x%Eɉ[oWVtP AbUQEOU%*h1ī٫D .v귉_]\s oCj$h>%"vXƮ u?dzU"ͬ읛F0<"j)J' zkSI[#&G&|"R}FQMEi()k9p+z(4pWƽpVM4.!*僝$K{ɥ"_zَ9tŻ|!(<+B2WH s+M (6Q ,LTGڽ-Ẃ04Jb5aP@4z{Ь7+gbUH ,,Nފ>rvNb*)%]"e3d:$dVehbZFk@rutQIC CP}5͇јzpeaL.=0v4ºzlnwјY޷N(.ü]kq>"q ZKKvel%caύ yyԚmpԎ!uw4dVU)!ZB ZdH]&P[.AwT)ɁщD)23sk!A 4xJZND_8 mX$4{ bӇ3zsWPZ1kbwܵ&p!aG7:5N,~9t9#Z~;n Z(!++IW}W:T1 |"$AE9h!$Ϥ!/OIivzZE )0N-v!!= LUm;@nozb#z{ v9&&?\(!^d; LY*d]dNLGT"r,OTi@Br圖QsdT奍/b1[Zö t.zwvkI xl;| ӳH+VQ'Y)QG((sg"HO]} wTDȥ뛁Fs#zCT})wڍߺh(b3ߴ,OςU5Iߨ@_ 'ţcֺZek=FrӻR6.m9@ߣ+ICe둸,~ P&alㆉΡ'$wfu ͪV52QN&I0x1Ttb6PTPP0sO. *CNDTlllV.*ܘELz7*<%OnQ]˥IDg5ȝ[*  *;$DfTM9€(shcS3dif 5vG"'C|C͍(O+; EGNRN) S\$!L-~2j, 'v[r E^v5A1ެ,×"$CJA3hEҀŧXTRݼq"{Xre$eGJ* a|lؕ'K˹+k7+vfF^21^c -NɃWdbɃEMפ,3@ձn!x'۸gTce T„Lx/d/ SrNtS$|KC-˳3L]9[D<_KuM7رyWYJYө haKun,RkRRVl!G)́H0DIi(JՀ@ɒ$Ň$b&ϩ@,3,0o ?;!|DE`qd./ؼ0-0xASMF/uYHYSSL=,eqsn~sX\%y*횽)@!uOv5|3X{KCC :]1\L)ˆ!p']yv W /xPsw),n"tV%WQI#'x+rYJA]zș,[$r#56h࠘e)4ԈҖKR=eH_LSuKML+ifq^56WQ"YU':xsEB⶘@,YP2v*/we:iʸxk8Lu{ߟ(L^69+m%㶪zlENN66Q[28 hASVqwp_a|=aW=?Hb;Ix82˥Z>)=)6'eVqio[{%[c'hҜe1"dyTD+Ék;lh;HYO`IªVSJ+/i ԿzGm} HKArWq@?29kɆ. /w2=0C I Z>2pc bJc9⭑|(kD₉V V(fZ$:(E]ݣqZʙ9}#p-y+Wc!cz>g" H^S%F%l&^s*);CW $<buԭPս;X>7ܹw@=Q,V*JvKQ)Bz:[J́  ]sӋxjw`Z`W<(sX MꪜDtcwCF$%iVcnۚTa);h*!M eUU])Uxq"c)]t,NDB (A"?GݜicTtS xoT7 jKwT(&i͇O?|;]!"jKllh*+ޞ!T ;f_dǽCݾf̘Iϊ| RgpMڕpwS߹i@֐vO q_HER{" /)Se0Z Ugp@Aw-\aNW6= ?|O!L 2Hw%ѨOHn/UE-Du&۩T!Q@-޽Qδ{ hnt>j7K1r9.,TǞRVP XԠԂ^1%,K~O[G 6,啕1| 7$gvEEdvu)j%\LђIVUsM @~T\ӏ xl޷KoY LGsZĨ .TX9KuDYҢrΞ8L)a$Pl ao^y V ȧVյXJ)̑߯-`CJ.$5HBvA#f*뗿f8.(;$z,a賿"; |bk lmTr)I[wm-=]$CD!cCLFGHnJu XvDdm|e)7m&lCfIwuszV$?!Y%="0NŴAٮⲆGq%kAA|BoTR?M\)HՀzq[lERpYZ[f BSQxO-2c~3?+̤MQ+4b!c!8ϳŸ680&o=(pڎ6J~4tv) o(Й?1jBƤqT &E42M!H*p)mD]b˨Ĉ8(&Vz$ hShWdaˢ걙du-$G@#;~dSmKBBV[e{%B+<cڢv(CIiv[QQ C A(+~LupBUn"'x()f(ٱiђ"{%d!ZɜъTU@RF2IZE4mP"ZRTKuGMdcgmZ5H3%Q' [K e4􉊉N%g (uj$GCz] FO6e#RQcߚcVzKԢj*ݽ3lP> .Uۈ5~3@P뾄Q0j^N?cЮ%F ﯭo&l ٗo[@N"<("Y$r@)V3!~} ĽуQs20>%Q'-ydIuةh쒛uR 65FiA"I^[Y-:Thr2FkC_K+F]! u2[*PfvC8cE #ZEVGM;unlEvǵMI)سX ɸ8au"ZgOi RVvQ^Qc-ТP4ȫ| rv4Fi,e5|Ejh$wH̊2v$HFM!,05-yք3KJj) {[A0 ]TG}~JWpw4/F_%фY %X $#Eۮ~yL,=J ,(==FE¢W(݁(D[wZ$^jt0#)\jfHv*,N"M’b^d,'23*Pe55}HiAE3V>ZH͹G&g|3/$,[^DQjH 49LNCR5L( E1~6/OY >"V+^'(`TЂ<'"'X6Vg&i!c1_`uh5cIH}K\bqאlE4T0:+V^$촛߱PB ; "rѯ{PObgɲ3._NNEK{VC$$-377ݛfK%&'67I˯4ݭOQcH#!)*UMNk%:ޠh!* lc\R 7Ŷ6 ]Gzе( "Cui12Щ+6}$hV`ڄ!cbF4I Ge%Q ̆'OJal^;OQS2?fm6ϘY-FNhXd== O>ݿJIil6tjPvޒSШhuM-,MKI&W\.VjY;yr6Te.[ 0,`t8d~e((@@]H\|2 b#7TUf6ܽy۱M. +lzY-ARӔR*[[4tr$-xݙ&'2lU*iI7j. ׻+Q0Pj3#WH=R?!K_ >'̟1uf \Gjb\_ T]4y$Y1'\v__!rZU]2_H6La9R f* C ƏJ˒sKiGbMaF#+ V|5ah h؅P&]ETUc"b20p2eR?rnWWTLh RWkﴰNx?pL+1?"*#VGT %1tQϬڝ]3MYiS|2 PauSuG|yIKx3|Y%C2)EJ@Au1POp/iGCCKv,0W><ސQeWK+!we˞]աt!MBg Oݼz<$t .Ϗ1ȠͩWov7CQ F 6}|hVMICU}i(GOgs,0.LRMDu]E)Xd*7QOAo@eVYя艭m}ehJIE!x1+ZJߖ[m$طɋWTK'sfM?ZNOu `9CYmќItP/3?lix+GzxFO'5oGنgöh\QTXfD[%b^%mLo r~uhodJCCfBO$fn,fWːVEKJc^SRjW %7yI`$];8p ȥlh9aee͡ -4<ѕWY,Pk,J\\`7+V{6'J+eRH6*%a"gu;ߴ}ܶ.psc?I4aD0 s.F-G}x~tA,u_5GUq>WI.ښyg~G/_>tB %UIf~M3fkMGt97-1%fd' I}) _uw{mu0vjT?C̙6s[jڵakRf'x3lS~E4U ~ t/h_)Ѳ͉,ҪYΝo4c0R~hol3Bsc AoHƓB8Ac%VCݼQ܊&GWju1076)EYz]UdK1HzLMyYzWP N:E-#GNOƩ{ԉ2U= \eWETY&㍤PId ^񍍡8#l.=;TU+ iFRk8unZL$5FZk}sjeOXG9Ή6DZΎ*eI2]I x8b %lͥA"XI%sjBSvtAOxL_5wYyRBq-5˩LM`6bQfڎeatb"P{QrxQ=hs_T r4D1"V2x˞jZFU ӱ lٴ,j}dP:nˁnn,]v[("*``lol RP%IA+8@޽ V^L&F,T2FVSy{w @)ݕA1D9H=~[-TqvE4%aZ_mŹFDeggCD1fPqSA2dowQE1*TJJ=IKAB%3{I_pmGM6M5}P\8#6h7nߞ[YUU]RBBe:{x⮷ zQ[Ҋ ~p6RQ=nu|v&[2YJcDU&S Bһ0iL*}* <9fI`Ք.Zad[r(Gt1Cd(q:0k;zb_EQ]2~ >.˜u>d6p2EG#Y@BsԲ((إM/W}W..LLۚ075)ڲ%(2u?"N(3jц@֦P+%G.*LHi?0\A+RokyLj=$DRޘP*e'&`1 \R>j]:Oރ\Ѐ7RŒ|Y|q], 00zL^!%:)-~VJ e ےҢ`hNF&e)CHJ$IblL\/B 6dP&nr[2hMr2mLZ.7kAܞw UKrrb!&. !+`%'qH6f[5!>3* |S }9ʿ[L<-lmڕCva 9#$54}"Xx2miˌ=F 1 peYE$먘%WN^XX(Fሰ%dBlptbdH'r jds1_F#ژͤqU7VbCLx 4ۛXD-uI`J 3.߂e} X\Ldy囲'@@Lr"/pMG[ a/R2L21KH3WZUg X{sL=} mʵ[$hMjڂ؂PUBzag1I,esB1E @;ᰕk(-(&u%I+સaÙ}00 YAy/, L}=(pA$Q ֤ŬY D'09hYTa2<٭O c ӀuS_ \2 tB/hiF{!`e7-Ja:䢘{"Ùjk?dqG^.ILK)\"9HM`iadD&G&mKLٸ,(*j#+**Lr ) u'FPI=l:9=u`(iXj@׺kh47gBw8Ƨ; VEZ &ikaKcEV69"1C:`9 4NtF/_ K֬{}̿$?80f WuAiڴ!j #14 Zbm(NhH}_[U n-\<>Ҩ+"ExƐgxYeKL9Aα zRk[)VXaajo1BoAJ9&$˵hDdv 9ZP#ڞ@PlDD6Rp r7, ބ#RHo/ckpQȌ}j@7  4q[z@q 4VSB?s_Y,~4 d|C#̹TKY*aof6<[q._ղ@Jh>K \aJ:~mpAct#ozI~*9Х~̉Ӝ,F} SlX=:`y؂lXv\Wdk [68/8x^Ľ L'~zgN[Voʘ9!E7:$4=bXP7!TnC9L=A0MzX{JrQ1nn"mؠA|k{/Hq~8,]MĈfa=6dԠ"_Z>zB&q qxz^:`yxc҆h/):Ɨ;>t`nd1.agPOaab25*=A`/N b=i!; 9cMLZWZЅ,=g4(=:,TŅ ~/Gn r_h0Щ!&͘l3,gӥM3k*۔DDiӆ!1Xָ~-pjC'n^f1xsmHXiS 0@z7VtRׂ$@K͈VʌO j أ4jxar_ $hv!!8U+6ϯ pKyye")=%S%h=MH]™)Y|<7WQ- 73/mSn\vDrp>N GlHϞq/ШB0;`6}z[]Q`z{ڱ$T{bEBpiĊsGepB9o!!C=qr2?cа/qW 5# .IAnkt`~AӽF[@ y 'm/]b2c!P[='YbCo̧ID5|/NiBȬ ܷ]7E YKq,.1``܀,?ܴjbk;^o,9GEI ȽΖzOG 8*(/O2(BVv T;"iLPe:06#@88)VYtֳgv#C{E>"hJ =>׳'m v\Dtpbfpu`~>982@Vko MR>,e.N*s8ѩIF.{{|9-S,4gϐY={b6H}Je;\YȻ}d9bpJο4uPDs]U?Xa4!)5ޠoyqa\0A Yg}hexꝄxS@Y%DOhBuTC (mvn:P%%W ijH,!ϙzؙ_ xAa65%o&܄ jCx'a"$>J'݂MY) fu=KhEv-10O@,6eBF˼SIqh:9'-' -='2IOb #{95v`5剴4ruxjS0m8FX >f^-.$N;z=l@hg78n䔧r :6}=)Zdb={zPenr'4}rv'ׇEě'Y8͛wH#A6Ù4?e.; 72e7OLc23!ÍZȼ!yCY[ 1>=*Wto1E{ %-ZsvNz˙@:spp^]i%v2-㽘T9Fj .`RUEE%CNGGAwK9h3D+r Uw\+T ^*]%--Ǝw58؂,  - P{W8yL;0ΥĉmjSBd֙zG`Xq[C#֝~!>b~\b7@}GZ(+y$Qr,0UA jB!s-McO;G*3R.~byob3s QѪ0@09M A7t8q #:#懘@6N6\Cz0QI]d.+3? o#?j65ܛgǛ~å vn(rj'xB1j9$ 'V0 iÙ!+Gg佼mŵ AiPp.𯀡a5BqTRˈ`-r%Ǝe j3]ś#Qs3Dl߿ǩcJ5C ِ9:Pޑ[5K7, iz;: Efy'vhuc@)Ζs]ӸV<9Bdn: -u̯byi_ӻXA؏˔ҵIow]-?S':S7U VVs-3=v_oA?yK3dLoޖ_ 5~vQI0`Q3̷ҿ2}~;xR6K*g頕zWW%,Ԕ! z@c t@9@:p }|)@s 48RL-JޒCE5 T s%vD%;=6?S,0j+3vq#4ngWcJM>h' \ן5n ho>ygv9f;8px/yg'PGEw}7 G#ʨdBE8Mg\5_xR:'L h34CZ_eBR=ߙ6sΟ_Yn|&l`N.+w<~a~%x+3pN;8R/W?o9^wX]&=ەw`rTc/@l5ހ>?Rdq4PZg}hoؾv1ފ;?o<Ͽ8$AiYWLJWufO: @*y!raHr `xNprH<]kw۹'y~ ڂA ,Wb.w\v3ɤ-Q /T=`V83udC+3U sy*ǢsB3E׋k2^.LY/,ϱfAg̏ÙamcwH}jU6,_xcu?8 YGH埵k E"G$bTgL9cg,uz;٠suI50~h07I[6%e~$̯,517w̏gOpD/ckw~IbtN.g1g فFEJRʌ|C| I,nOr4N6ȹ)ĐsB [:ٺ'̯މm~/gV&?k "-tPA .5 Dvd%<\lV~jS%˜7$2ؿ:%`PKiBSh`#L5F:agp?(90ehwuA3zkӃk=:pN~{~G>P$c N.7MNQߧ" Hl@ABNA/ߠwt6U5h1?b_7(d`Roϖґ4?󳺗cy\gW1;uKkcfOhcp)Pvu,Ep3{!iWd~9h9̨,=7cS(s5UY$9>[<0 Xg?iQۿ%g7n%;V?3 =@pge[P:"V*){fd+;kѡCk6G! ~rױVm~Ma(8 u6fze#Gѩ2IګG1)Ѳ=>88vйKF3Y Ee j됻3Aoa& 2v,iDWF1q )O)W NܰQ|=nej~5❘K5dޞy~~BC9= ;zNtn9Olxxqڭ¼dJX86e.jß9E/)0lNzϙXJ?qn-)زM+0W$uWǜɎly_bMq7،1EaJ=(H;<=#\xl?eH]ArlHlή 9U;s/@WSSsXYX\Q`T IO72n8#&ڌx \|OggC8o 7Dڐ-C3yF`1n"D)g{(QQ"th @.5D;Ÿ8 1;-|Hg櫊, ]f6?/V9:fUɞOMGY,c~v4- Lnn9[LkIڼ $?( #voݓo>I&pNlH*CW-jqK'1 &pi>^"C3Éd#ZKA+ВCWEO而0ajsTE]=3-cJ/_kn=J3a4H!. c=TqxuZ54惗矤p*OPr 2r ?$OLz+@K>n!33<^X}v9dN͝bێ^} [x֣W!oX63iF-Szܻ'3Ә㳈2?AY\}4#M5oFÍ=&b^/I )0 6߹niqsuOMrE4#g.n7,,_уp,Lqqp3K H69i$Of !H ?8X .[ Bvc{bR_ ,j~ٱ#W cASڳV$톰tÉ)F+?[N@#vM@p, BRyW'P#Nr,l&9&~Y_DJO7sKfdo Gqȋɠ:~! PxZGΟ*.<}%zy'$eD~(e=ũ!/ 'sU/+݆ 2$p $7BDx .F|M|LvFqt #X>iuȋ j)/ 3O%ws/f)qAME .xZ b'I39L 4zsVǐQv,7 hϓm=GsUa/J86;E c~µC:5 ";./OK4Ndg'?z q +WJjSBCkf!xw/!9&zc[-LȺw#޶'9uʂ* F{kdr{T𭢬%z)Fma?]bS#q x2@5Ce-0=wOI-kr#RND»=E qkG@e7$dSÆ&2]x0gL΀Z1E`I<&zT-b0WhnA:ϾfZ,BybǬ&DǎY[t肕dG^I*_ioz9DH^.&L.(J54hȬ#Tum*D1ߎ;͝h1Xi3]^e~n3 pC hR"$Y GO>LOQ,gF@hꨏQ Ceߋ<ЅD܇[Ҡ_{~`Ġ<ƸMzN.Gt]8z( uN7[! !eM"LlkaIU~A@2dx&>H [?LXoRJ^(ɺ &Yr]FXNKD:=\$1M/!{؆2 [E߅+}V X::$+©LQ8x7~h䉘FL? X]WY&thik= _EJI>Kc} ݊ XwJ߀a$UHrip\I!v++n| (A*YB4L%#c8]vBĚWvvEPu3E$kJ"LrH H;ieJ]OZ3d uNKDc≚di;-TF1P5Z(QL$#-f`2ݤr ^M`6$W b՚#i0nEi-6K-zA]W w(IҔ"\Eƽ7Y&RG3œYu]D'7L,ЏT \e/CcAas)HM&I_1A+IOe/N& (n>(IL*1$贘Ts) 9h~Iqu9j{x Vj(qBFC()o!E+M} 527QC*g9{ F,*ZTj +\I sXc"܁MHJ翦VQ5M]BDRxu=S}ciƌ#Qf"Gi$@/|'BzђdJo88a{{oIXQRA.U>e_Rse9e#ϲŋrѓ-),J[uY<]"p;,Oں>_TaKxY/S,YabRA018}YqWGF,_5)i_2sӥMVV(DK1P$*:u /mLb 8t}d@l豘ljg76pa1A coNr н|3hv&-Nh*ZP@Ӭ1n`QP48dR; >rEpAgQvduKBR?ZcRn 22lɡP|zz%(o)ϝ%[.c\ 6r ,')IdDf5"99Xіs\{u |]a ;567,PMS^R#IzURjڵ `K˪*iE!RF3D.5C{$EФ <:Kh:Πj|%(0F-T?}nиACI[% 2W$QB!ސ j6(E3H: یf 9HDPc#)hM!)E!s=&ZPaR-=7os&RvRpeS榭@H*=؜^z:hdM-fjTM&>U YH8(u#M#U' , Iң2/lGYI*VW9ͬiJƷ6=~~uUr=1y}lʅ _B9RĨUء 4Pa`Z'>{u&).W@ѰR o@xJHP/TЈq XeUm`8ʆp° m޺9͒fOu~eJBbadHԎd1H-wύWhlZuAYe,&E9-)W$m\eg Ҿj[URY*+ظuI9Xj=B.laϟPtHBsPdK/"#۱zwC M3e'_,iC=B-̠hGk,6YOQYu9.׆&Y&%H %BBԨT8sKZ$U1)eH˼,d[!D=cXMA/451QCձj%BrʚZ8s:7]JQ)Oć||1%*~g}-E8-RRc`MhP&3rR[LK9I[ԻWTg6PQXG=`VZaCDQ#3*7Ulq[oIP*~xt'穏KYVzyoc/_BGޢwmSmX ;fh> jF,X MJϧ@,N*}(aŋsz';Ν袔 N 66xڀ K2 `uE(OpG?ǕַK$DW*s-*1@FfyA-kSsĉVn Vr<>HyJdǧO8-Q](}KNi.ݟT pC7/28s%~ڮ50DYJ P "rޮ>'Z[Uan*sߒW#)}w?wʹ-;)dMY’Ohbm(XB _Hό UJR+ZI3܁~xtOI <곛7mZeEBQz . LS.mq<_HbneyU3Jrm},P"?6%s]>䐵ZUku¹sǛh*)i=zRj}x973ŅyASi'v[e7ad76b(ė%&cR 攮n?z!ׯ?RG]94i+u 0o$'+RlcY>j[\\(bvE[*ˏdB=mݖsD&P֝0TE@{ꀨ%R9T_vS0r>Ervyy;S(,{[SR)FZFz! ݻNj;XK^j9r2K6~{ݕMѵcVG<5uVvbo;zS sR9m]HP!C}bҒrޯ0_VzxҢ["ڨ}y ܼvf]D_!ܗRTdD%EEї#%sY|QBĈ9U%K Q@*+Q_ߖ}m!~h4Foa#^kĆŃүR5&};B_^:S4Э0C֭Iд ?O ZpնG9py_"KB+۳[}^o% Wںt NYڧ{E[!#Ha8w`2Bۯ^Ul}mkxujP]Qjbl"~*1c$+SäcBd"[^12!@7o߽=]>^RK{rɛEo‘ܒB5l!= QrrRTԏ>~ RZTvfznYOA'px햶/R﾿G347~^I?ڴ??} 9cuB%\c_E=XN5iJ2) JNմ_Ĩ75._Z4{lO?mt \4vs)X#[d[2v+m!{hǎޘ7f7-Ԯ]<}DZWKPKbQ:-Ǚvn~!aX԰s'ﯠFi#3'{GIkJDB] wn~yW?Lݛx`i2npy-^نtzXMy[8,1EgI4#IJ?[VJ0Աek?{4KɫnhFxܹe҇ȉ4 OҬbt.ؠ':\WR;;U6Fb;F0ˤN~tݭ]pBu]ݼzFS,3 Tt^1wK(w]}&hdl mkWc*m>u ΂ꮵݼ- {pҧW C DZ NpNTڒ.p8 TW',ƘI]:DiVc= aBjCx) >Z4ilФ6c7N:LyrBܗn)ܽF_f /'/8z=%Q++b3ӳJv}w~|]:n~ZY?˕fo75t5Ny)).Žc쨦4t޽i^$|u{ʵnIn⎂! ܦ#  a4 ?|đC v8A^)K>}䐼vGEqFxib-x:5@atXq+Ө*g;a \7ﯮi>| iB{_^طF{7ζ#O9n?=@haO[&:#K} #mV1~uONڹ&HOјM; @}w On>047@(ֿ- IMeJpgNp*jaa3;酿ҽ1ϝN>:5rB=@BvVt;}Bh#g|z}09/l^Sz@ß3'@V#~Hc%0 ۉ ~$b\FAMeYIuW{XAZ˨߇{F@mp 1T+sg`v9s7S5IIUWgQzN ]qwOi_"PNp⣕.v{v`t[u 0[O>j+u@CVH²[ܺPHg>+f?!}ꗷ6y PDjCKy1}БcbFo4R l.L#w?gE'4ј=Va:&1)Fb:8 ܻ@@"kAokk%T^%X9SϷI@rly^> rT,|0o9};BN8}wiֆq#?Zw7:J罓b~e ^,ZÐjK*7'1[lj~\,r4;,ȡGs33@n}73X!+W#o") n/1s,%X+Wp{<'W&=׆JM;2vUiL.,@9Srk7}O}K]5mNp@")OuW>*wrZaj̒miZWEżqwYͺßsӒ;yn$A{j8{M,K.]*v[Eڏ s ٘*5. 8!O;@x}N@u]_jj(ҳyhZ䭎EAЙs%őlYrVģ:IVnikӪpwof:cҼ^[2z"`HQrޭ:ݹݷQg/I WSKr-Z>P^enEm QQL!&tBۥky<AS@-kmk4y饋g[vԖқ&iS2zYi)ŗN @h:bR@!Z|_߼Q=tw?Cr+h=NʜLZb#Iʸ`<~X qV)4R_%(vx-qe[Z ѠS3ffַO u_>ųiwًO@B7gӏ)gS2K׈@:}:H yoVj}Wqԥ5ju!5;q /vK䳫vb߫zN YR2H,K<ͿP[8?7?E}ueV޹t}D/Zx *!A1ޡxDYHdEIk uv$q޺g< 4L4Lq y--c+K׷iN"爠D'RQmOaD~ꂴO_h[(7Q޺&8RsyҶhl^if`ͮ3\7 Kǽ;%T4n\xA$Pl9a{7A3hǐ/Zk8K >r}JK(@P HS6ȁm|PKލK𱽥%Vd/# bx&WEH4edn)F1l0]_W @)g.ܾ^sҀ <_\.tʇZrF$b\)8QK">?ݑxK`w<)oݺ:wǏ< -H&Hh ٠!^H25vDȸq郮`Q_jp$Nz&,^FyP[t?0,_T,jS\KBIK\0U_^6]rµ/1ݼɩR("81-i90 3Ǎ;>> 3{wمµ0[\͓)MUޮڪ}m"e)H={{H#$@3E:H_)RȁCDB2V5֓.;RR dx eyЏc٭ۂ"З9MIM'/8u+7U7hk2sެ*xDfr >{s~pI >⌔}#6'<{ 8W+$eĶWT7w*7!wYhJ@\ߟ~9ц]I^d=Փ>w\2~e`̹5GILXV6I39)" &Lv`-xC'@e = _n;Z\+'ihz Q<03G aWK8G@lWy$wU^g  FP 8 bMPD!"BD)AEj`I 昴{{g}{osrsϟdַֻֻϓ=Y!#:,?$m_g?8|#d-Sn_{wo^;͏wo\%4dE͞!`E# 1_7.v?npX? 5F盿}s5>3Wγ9c8A-bsm=6h_SxjBw,8,ki?rdtjoTkeގҘ k7u}Z4|'Uo.e8"zGbFrgm[!M /TWW79$S$ܹiR;[WX1uo[^|3g,Ofa@8VY/9`qzڵ|~Z֙@mn9dWq:'CYYno꬐ԑC 19bXu˛ Xw:FEP~ʓ (*/̍в- ER%}v0*jN! Q~@^ ߽ cv˽rA 5g(k =d׿!uz1G+Gïyi~_WV+ǘo|I@5@׷/H *KC@,w: ײ,u o8s"΃qÕ dDEDp0| 0g"}㟘қ`a}]O&\u^ݧB#BM s2sVX\_{֮n]on:E.+SY>W4WTh5] _aSqRPK J&[nQ_YġVm|g?i|]oC oXg\Nm[wsQ?_rMe}8" -G^2Y7K~͉$=3]E1),r`/el;CC>)YdUrOP(m3KN9Yx˙.g-GkCs7?|eޞ,OŻk/^.By{`ߟ> v-caKH6u PW0 XY/x!^QY(-4sMW[ w,S 'O5%麸z[AٖJ "7 쬎Tj@e{ŖDJiMp3ft~ %[qo[^}ܾ0.'bgeTZ!$1En~Ks?D5e.=38nقs27RMc- [EG+>VYOqܭ`n}Eo>ḋCF b 'q*>|چW4UBۡ/]SXQ3\&OY*$(ܩf\710s, GChijݳx߾E9~c@HPo&-7M-悭b#dW\Ŀ/$bDr5[r00o`(~Y" ,(Jp 7w:+{Ū=߽;~GfWTVc[Ӏ2e IJi4QXtA9(J8Ő($ PU{^V[i@g|"RƤ^=Li@_A"+Qe'DԠtR: ~LwXGC묞$kȧG**=O, V6m`=5YXTLQ=QSj ^,}1; 6hRI&fv(..Z_v]%^G!_p?+;hGRV/Hbo:,=G2鞃͖WnVwGVYk(_if|7ʥ̉ψO~ݗddmmR4_iU)0/\hm{ RdBb!{4(afu5e@Q1e,|G'=T"?PEdQM)G tA]4L,QxKT]ỢĜov ۂ|SKZH!/`eV@?q /UVRRsmͱU5Th:{zO..,%(!;+pgb/GP8KTwDB_n|:%/_=z oAGR'?c{aVawK sLT%ٔM M`% 6tܫ)_`Ƴ~B'ݺJiʹWyG^#@rnUy+dӝ>s O*Q"[ƺJ7YK)ސe+Z/~`ٖ*PO>$Vok6}[Up="d ;T"|e;HzugѶ첂 _7tYu!73%B?*;RCeJP:5t(WpX+T]h!O럋2fVE47߽ܳxxQ6;Fڎz#G(Q`rZ]51i,0-U3hًٖ kTZ_ʧ+c_EmCp뚎U?Vsܥ?Ob4!^ Ѱ )3g,h:5 6/*|jr(!QБ# -͗Rk1Bv;Ȧ^Qi+ظ8s^:ֹ~rIRAɘoFedO(Sew/]l9Z,>E[UIM$:|*ѿ}؁E:E_ ֞WqTuAy7=I}trni!IiIӦy¿{ĸqS2rII_,wX)n9Q!"eƪhwSً%n8Tgؖ>}ٖ:STפ>U:bwWyy@BmxrQ.M566"S . PLٍ0W]J5W_~MURH%j+Xb_)^EHU8@`Vw+G@)w/Zu`E+ ZEaJ8.n+Q)Y_SHoGe]DgXl& IBeRe_t| 6BUsfTB/U RHu Gq`zD`cXؤl $aUсl16lR [RŪu/Z{X=e;5Պ T! dElٞWM17?gaLL)@'r]z&+ʙ87CUUܧGWT*D$_YrE*\;8ꩦQ*.޷mQٖ%Gz6&,OGwG Xd >TkǮwтeR*qvdΓhԍ"jLY>ÐPT\}qb!XQ{S:rsƮq^l%mY ΙEʆK 1-*F?(PtE{X^7 _fm/ʟ^ePV>"X3 z EFEEj(t9ST7j*L!nɝP^NS]59CGw5̝IMίk(*% aKD'BҊ}P3 煳Hؘ]qizƌ[- ˔kRˁ6TbR&gL}L4 fg |% %T_: m۶9eA^UgNOQ7-~p zϟ4gƍ.,U-{l˛c˼"G`@vR6>UBgC@hBs֤]dlOJ\ɜ2ֿ"P,H]# 3g[8>'Uh,$܀ WlR05q)|PBЮ7ZJQ⋙^$2i*GHȻK|GH0h&.0(Dni yq H9syNҍl}xZh\N)V@#GտO> !(qb7YnVf99sаdfɀQĆYlgc^XP2}ױic1W@$C7*k}Gt3CIKڵc^v}fܘ WS2286!HcAh1M-Trju> Ro2Z_x, _V^zC cChx#HHZF_߬G1nHuS>k Ac}<ύtP<S0T8沖'SLv cI,N0Ca=G_Hp 1c7 41^ Sxs҈v7&#a&'MM7Q ɻ@=xvb a XF'E" z5S?hht8F-q>>{4 :4^DPƿXHW?V "{)WvQᡣf;kj 5t'/!#]SS0t$+(t3J(s=xaT^k(>p @DRx{{(Vn~ׯLЁ ca#:{G ytH3@ٷ[jn@n[HK*+R?i $^Bv׷`xCdDiTfv"CYqP~ʢ!p(XtY=b2VYiWtDQ(k ypG?>xxL5/SAiv|i`tgbw=A$͐?$BOd#؉ |Vȫyd5{w{Я]  [pB?k`)OgO\NȻO)cS|=q`9< eM2"ݭMy:+{ޏ{=)^Wnp=&<ǽ6;#Y ذcXdl8]5DYm?jkp]'Mt dS BMK1@ʬr l .I! rî3ɰaD><$7]/4P1 :C:=xŦ<Р2` 6XOs|6yLs&n;C9)ݴsFkjk2 .vzv5wfULa PgNP9s~`='Y{cIzŷasi_P >INǩL{ǿMY˶vvCkf>cj>B1=AfciW >=ٍy+FK2ֳvHєyhC[ψfWק}a ޢgGT\҃w H'YmIt1|_؁hf#3kg|@O꿽}~Sç&%5NϽ~wnkoڧ g6_҈n{5%2\C1<*+ iI~~I?gg3i%>8iiG]N$/ChL㌨z1쁁:9!aXPfN 8~ظv8Z?"T wpIv)SD%)xZf/wseډè1CA1)>!tVZZQ\ k~Y@JLA^,zM7yU#R^AT P@#~l|q/e $M_|֍')6`5BV6nH5ƚMi>{tlE7Oj3!IܘV|y 2.-,Ԛ4;?2m{<(E+k7rE5A3!-g>]֔Y!V/'O@ pM0!3k>k{n'Kq;+x >|K[6~>Rx1}a~}jҞ fVlj_|]% Zo4-vӾ<긥mnnrKVV^T"Jl/Vō sRHmkNrgZMsM236slqOjDA(r^qJ^I&X٘q!S}WϼEi/fq@Vq쨨g=L?~PdjLO}N+4iiMM-:Ɇt2>Ӭ'4}e.ppt;hX2K(9fZiIɞ68ZÒ PV<elsRe?5E7BBHNr Irs{x|0w$)M٦}i='%2Ѿiߵ]ի}h+朡eh98X5Tվ>zqlS>۾35g%ay XYi.@A!.hGxVW]svCXOˤϼ\m8h0d!!ޮ&O/0zc->} BY>Ai *āULF4,S.B!ۑkpy7:gD& 0O`\R)SbO&!'W͎ !^9X_@aweiN`.85{=8aM;Λm`xE֗Y _[y-:0`]XbtS}Ug#,}ӡ}3p}-ڧ~o-v7WѾ&zYR+d5[Uh71FtS<撮({%(hl =Roe.ڞBv5O$+'۷ ?k_tdWع֐n-(tr U|zNJ>VbcAFfYb/;BǛԢKJR$k=_~i~I&qY+KKh8).ɍTb[r!H輛Kd\16!Kwoe~Ц83*{FʄE2’Ғ)5O"dK ld"w~b,inW5(V/?i!SӦMKg#HbAnI(/ڟHd;plYn\i],?O~n0$f ~M>8Q]Rh"8#kl]2;[-XOf7-f ƛ.i,? ,0JgQ;JیA;4[H.Ji4W1E7mO/Xiw,+Kfӗ,H &az@X.IA#h+ *?eikg3cȆѵ.PsUζއ `Cea+&aɠQK_.a ֱNjsաc}k$ @tRv~@R$e[| b-=vYUiIENDB`Padre-1.00/share/themes/0000755000175000017500000000000012237340741013533 5ustar petepetePadre-1.00/share/themes/default.txt0000644000175000017500000002626112074315403015723 0ustar petepetename en-gb Padre # Padre GUI Colours style Padre::Wx::Directory::TreeCtrl SetForegroundColour 990000 SetBackgroundColour ffffee # Padre Internal Editor Colours style padre StyleSetForeground PADRE_BLACK 000000 StyleSetForeground PADRE_BLUE 000099 StyleSetForeground PADRE_RED 990000 StyleSetForeground PADRE_GREEN 00aa00 StyleSetForeground PADRE_MAGENTA 8b008b StyleSetForeground PADRE_ORANGE ff8228 StyleSetForeground PADRE_CRIMSON dc143c StyleSetForeground PADRE_BROWN a52a2a StyleSetForeground PADRE_DIFF_HEADER 000000 StyleSetBackground PADRE_DIFF_HEADER eeee22 StyleSetForeground PADRE_DIFF_DELETED 000000 StyleSetBackground PADRE_DIFF_DELETED ff8080 StyleSetForeground PADRE_DIFF_ADDED 000000 StyleSetBackground PADRE_DIFF_ADDED 80ff80 StyleSetForeground PADRE_WARNING af8000 StyleSetBackground PADRE_WARNING fffff0 StyleSetForeground PADRE_ERROR af0000 StyleSetBackground PADRE_ERROR fff0f0 # Code folding margin SetFoldMarginColour 1 eeeeee SetFoldMarginHiColour 1 eeeeee MarkerSetForeground SC_MARKNUM_FOLDEREND eeeeee MarkerSetBackground SC_MARKNUM_FOLDEREND 586e75 MarkerSetForeground SC_MARKNUM_FOLDEROPENMID eeeeee MarkerSetBackground SC_MARKNUM_FOLDEROPENMID 586e75 MarkerSetForeground SC_MARKNUM_FOLDERMIDTAIL 586e75 MarkerSetBackground SC_MARKNUM_FOLDERMIDTAIL 586e75 MarkerSetForeground SC_MARKNUM_FOLDERTAIL 586e75 MarkerSetBackground SC_MARKNUM_FOLDERTAIL 586e75 MarkerSetForeground SC_MARKNUM_FOLDERSUB 586e75 MarkerSetBackground SC_MARKNUM_FOLDERSUB 586e75 MarkerSetForeground SC_MARKNUM_FOLDER 586e75 MarkerSetBackground SC_MARKNUM_FOLDER eeeeee MarkerSetForeground SC_MARKNUM_FOLDEROPEN eeeeee MarkerSetBackground SC_MARKNUM_FOLDEROPEN 586e75 style text/plain include padre SetCaretForeground 000000 SetCaretLineBackground ffff04 StyleSetBackground STYLE_DEFAULT ffffff StyleSetForeground STYLE_DEFAULT 000000 StyleSetBackground STYLE_LINENUMBER eeeeee StyleSetForeground STYLE_INDENTGUIDE 0000ff StyleSetForeground STYLE_BRACELIGHT 00ff00 StyleSetForeground STYLE_BRACEBAD ff0000 style text/x-config include text/plain StyleSetForeground SCE_CONF_DEFAULT 000000 StyleSetForeground SCE_CONF_COMMENT 007f00 StyleSetForeground SCE_CONF_NUMBER 007f7f StyleSetForeground SCE_CONF_IDENTIFIER 0000ff StyleSetForeground SCE_CONF_EXTENSION 202020 StyleSetForeground SCE_CONF_PARAMETER 208820 StyleSetForeground SCE_CONF_STRING ff7f00 StyleSetForeground SCE_CONF_OPERATOR 00007f StyleSetForeground SCE_CONF_IP 209999 StyleSetForeground SCE_CONF_DIRECTIVE 202020 style application/x-perl include text/plain StyleSetForeground SCE_PL_DEFAULT 999999 StyleSetForeground SCE_PL_ERROR ff0000 StyleSetForeground SCE_PL_COMMENTLINE 007f00 StyleSetForeground SCE_PL_POD 7f7f7f StyleSetForeground SCE_PL_POD_VERB 7f7f7f StyleSetForeground SCE_PL_NUMBER 007f7f StyleSetForeground SCE_PL_WORD 00007f StyleSetBold SCE_PL_WORD 1 StyleSetForeground SCE_PL_STRING ff7f00 StyleSetForeground SCE_PL_CHARACTER 7f007f StyleSetForeground SCE_PL_PUNCTUATION 00ff00 StyleSetForeground SCE_PL_PREPROCESSOR 7f7f7f StyleSetForeground SCE_PL_OPERATOR 00007f StyleSetForeground SCE_PL_IDENTIFIER 0000ff StyleSetForeground SCE_PL_SCALAR 7f007f StyleSetForeground SCE_PL_ARRAY 4080ff StyleSetForeground SCE_PL_HASH 0080ff StyleSetForeground SCE_PL_SYMBOLTABLE 00ff00 StyleSetForeground SCE_PL_REGEX ff007f StyleSetForeground SCE_PL_REGSUBST 7f7f00 StyleSetForeground SCE_PL_LONGQUOTE ff7f00 StyleSetForeground SCE_PL_BACKTICKS ffaa00 StyleSetForeground SCE_PL_DATASECTION ff7f00 StyleSetForeground SCE_PL_HERE_DELIM ff7f00 StyleSetForeground SCE_PL_HERE_Q 7f007f StyleSetForeground SCE_PL_HERE_QQ ff7f00 StyleSetForeground SCE_PL_HERE_QX ffaa00 StyleSetForeground SCE_PL_STRING_Q 7f007f StyleSetForeground SCE_PL_STRING_QQ ff7f00 StyleSetForeground SCE_PL_STRING_QX ffaa00 StyleSetForeground SCE_PL_STRING_QR ff007f StyleSetForeground SCE_PL_STRING_QW 7f007f # Missing SCE_PL_VARIABLE_INDEXER (16) # Missing SCE_PL_SUB_PROTOTYPE (40) # Missing SCE_PL_FORMAT_IDENT (41) # Missing SCE_PL_FORMAT (42) style text/x-csrc include text/plain StyleSetForeground SCE_C_DEFAULT 000000 StyleSetForeground SCE_C_COMMENT 007f00 StyleSetForeground SCE_C_COMMENTLINE 007f00 StyleSetForeground SCE_C_COMMENTDOC 7f7f7f StyleSetForeground SCE_C_NUMBER 007f7f StyleSetForeground SCE_C_WORD 00007f StyleSetBold SCE_C_WORD 1 StyleSetForeground SCE_C_WORD2 00007f StyleSetBold SCE_C_WORD2 1 StyleSetForeground SCE_C_STRING ff7f00 StyleSetForeground SCE_C_CHARACTER 7f007f StyleSetForeground SCE_C_PREPROCESSOR 7f7f7f StyleSetBold SCE_C_PREPROCESSOR 1 StyleSetForeground SCE_C_OPERATOR 00007f StyleSetForeground SCE_C_IDENTIFIER 0000ff StyleSetForeground SCE_C_STRINGEOL ff0000 StyleSetForeground SCE_C_VERBATIM 7f007f StyleSetForeground SCE_C_REGEX ff007f StyleSetForeground SCE_C_COMMENTLINEDOC 7f7f7f style text/x-perlxs include text/x-csrc StyleSetForeground SCE_C_COMMENTDOC 007f00 StyleSetForeground SCE_C_WORD 7f007f StyleSetForeground SCE_C_UUID 7f007f StyleSetForeground SCE_C_PREPROCESSOR 777777 StyleSetBold SCE_C_PREPROCESSOR 1 StyleSetForeground SCE_C_COMMENTLINEDOC 007f00 StyleSetForeground SCE_C_WORD2 7f007f StyleSetBold SCE_C_WORD2 1 StyleSetForeground SCE_C_COMMENTDOCKEYWORD 000000 StyleSetBackground SCE_C_COMMENTDOCKEYWORD ff0000 StyleSetForeground SCE_C_COMMENTDOCKEYWORDERROR 000000 StyleSetBackground SCE_C_COMMENTDOCKEYWORDERROR ff0000 StyleSetForeground SCE_C_GLOBALCLASS 7f007f style text/x-patch include text/plain StyleSetForeground SCE_DIFF_DEFAULT 000000 StyleSetForeground SCE_DIFF_COMMENT 007f00 StyleSetBackground SCE_DIFF_COMMENT eeeeee StyleSetBold SCE_DIFF_COMMENT 1 StyleSetEOLFilled SCE_DIFF_COMMENT 1 StyleSetForeground SCE_DIFF_COMMAND 808080 StyleSetBold SCE_DIFF_COMMAND 1 StyleSetBackground SCE_DIFF_HEADER ffff80 StyleSetForeground SCE_DIFF_POSITION 7f007f StyleSetBold SCE_DIFF_POSITION 1 StyleSetBackground SCE_DIFF_DELETED ff8080 StyleSetBold SCE_DIFF_DELETED 1 StyleSetBackground SCE_DIFF_ADDED 80ff80 StyleSetBold SCE_DIFF_ADDED 1 style text/x-makefile include text/plain StyleSetForeground SCE_MAKE_DEFAULT 000000 StyleSetForeground SCE_MAKE_COMMENT 007f00 StyleSetForeground SCE_MAKE_PREPROCESSOR aa0000 StyleSetForeground SCE_MAKE_IDENTIFIER 000080 StyleSetForeground SCE_MAKE_OPERATOR 7f007f StyleSetForeground SCE_MAKE_TARGET a00000 StyleSetForeground SCE_MAKE_IDEOL 7f0000 style text/x-yaml include text/plain StyleSetForeground SCE_YAML_DEFAULT 000000 StyleSetForeground SCE_YAML_COMMENT 008800 StyleSetForeground SCE_YAML_IDENTIFIER 000088 StyleSetBold SCE_YAML_IDENTIFIER 1 StyleSetForeground SCE_YAML_KEYWORD 880088 StyleSetForeground SCE_YAML_NUMBER 880000 StyleSetForeground SCE_YAML_REFERENCE 008888 StyleSetForeground SCE_YAML_DOCUMENT ffffff StyleSetBackground SCE_YAML_DOCUMENT 000088 StyleSetBold SCE_YAML_DOCUMENT 1 StyleSetEOLFilled SCE_YAML_DOCUMENT 1 StyleSetForeground SCE_YAML_TEXT 333366 StyleSetForeground SCE_YAML_ERROR ffffff StyleSetBackground SCE_YAML_ERROR 000088 StyleSetBold SCE_YAML_ERROR 1 StyleSetEOLFilled SCE_YAML_ERROR 1 style text/css include text/plain StyleSetForeground SCE_CSS_DEFAULT 000000 StyleSetForeground SCE_CSS_TAG 2020ff StyleSetBold SCE_CSS_TAG 1 StyleSetForeground SCE_CSS_CLASS 3350ff StyleSetBold SCE_CSS_CLASS 1 StyleSetForeground SCE_CSS_PSEUDOCLASS 202020 StyleSetForeground SCE_CSS_UNKNOWN_PSEUDOCLASS 202020 StyleSetBold SCE_CSS_UNKNOWN_PSEUDOCLASS 1 StyleSetForeground SCE_CSS_OPERATOR 3350ff StyleSetBold SCE_CSS_OPERATOR 1 StyleSetForeground SCE_CSS_IDENTIFIER 882020 StyleSetForeground SCE_CSS_UNKNOWN_IDENTIFIER 202020 StyleSetBold SCE_CSS_UNKNOWN_IDENTIFIER 1 StyleSetForeground SCE_CSS_VALUE 209999 StyleSetForeground SCE_CSS_COMMENT 888820 StyleSetForeground SCE_CSS_ID 3030aa StyleSetBold SCE_CSS_ID 1 StyleSetForeground SCE_CSS_IMPORTANT 202020 StyleSetForeground SCE_CSS_DIRECTIVE 202020 StyleSetForeground SCE_CSS_DOUBLESTRING 202020 StyleSetForeground SCE_CSS_SINGLESTRING 202020 StyleSetForeground SCE_CSS_IDENTIFIER2 202020 StyleSetForeground SCE_CSS_ATTRIBUTE 202020 #inspired by gvim with bash/pluigin style application/x-shellscript include text/plain StyleSetForeground SCE_SH_DEFAULT 000000 StyleSetForeground SCE_SH_ERROR ff0000 # red StyleSetForeground SCE_SH_COMMENTLINE 0000ff # blue StyleSetForeground SCE_SH_NUMBER B452CD # StyleSetForeground SCE_SH_WORD A52A2A #red/brown StyleSetBold SCE_SH_WORD 1 StyleSetForeground SCE_SH_STRING ff17ff #"pink-ish" #StyleSetBold SCE_SH_STRING 1 StyleSetForeground SCE_SH_CHARACTER ff17ff #'pink-ish' StyleSetForeground SCE_SH_OPERATOR 000000 # black StyleSetForeground SCE_SH_IDENTIFIER 008B8B # cyan-ish StyleSetForeground SCE_SH_SCALAR A233F6 # magentish ##ff17ff # pink-ish StyleSetForeground SCE_SH_PARAM A233F6 # magentish StyleSetForeground SCE_SH_BACKTICKS ff0000 # red StyleSetForeground SCE_SH_HERE_DELIM 00ff00 StyleSetForeground SCE_SH_HERE_Q 000000 # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/share/themes/ultraedit.txt0000644000175000017500000001075712074315403016277 0ustar petepetename en-gb Ultraedit # Padre Internal Editor Colours style padre StyleSetForeground PADRE_BLACK 000000 StyleSetForeground PADRE_BLUE 000099 StyleSetForeground PADRE_RED 990000 StyleSetForeground PADRE_GREEN 00aa00 StyleSetForeground PADRE_MAGENTA 8b008b StyleSetForeground PADRE_ORANGE ff8228 StyleSetForeground PADRE_CRIMSON dc143c StyleSetForeground PADRE_BROWN a52a2a StyleSetForeground PADRE_DIFF_HEADER 000000 StyleSetBackground PADRE_DIFF_HEADER eeee22 StyleSetForeground PADRE_DIFF_DELETED 000000 StyleSetBackground PADRE_DIFF_DELETED ff8080 StyleSetForeground PADRE_DIFF_ADDED 000000 StyleSetBackground PADRE_DIFF_ADDED 80ff80 StyleSetForeground PADRE_WARNING af8000 StyleSetBackground PADRE_WARNING fffff0 StyleSetForeground PADRE_ERROR af0000 StyleSetBackground PADRE_ERROR fff0f0 # Code folding margin SetFoldMarginColour 1 eeeeee SetFoldMarginHiColour 1 eeeeee MarkerSetForeground SC_MARKNUM_FOLDEREND eeeeee MarkerSetBackground SC_MARKNUM_FOLDEREND 111111 MarkerSetForeground SC_MARKNUM_FOLDEROPENMID eeeeee MarkerSetBackground SC_MARKNUM_FOLDEROPENMID 111111 MarkerSetForeground SC_MARKNUM_FOLDERMIDTAIL 111111 MarkerSetBackground SC_MARKNUM_FOLDERMIDTAIL 111111 MarkerSetForeground SC_MARKNUM_FOLDERTAIL 111111 MarkerSetBackground SC_MARKNUM_FOLDERTAIL 111111 MarkerSetForeground SC_MARKNUM_FOLDERSUB 111111 MarkerSetBackground SC_MARKNUM_FOLDERSUB 111111 MarkerSetForeground SC_MARKNUM_FOLDER 111111 MarkerSetBackground SC_MARKNUM_FOLDER eeeeee MarkerSetForeground SC_MARKNUM_FOLDEROPEN eeeeee MarkerSetBackground SC_MARKNUM_FOLDEROPEN 111111 style text/plain include padre SetCaretForeground 000000 SetCaretLineBackground ffff04 StyleSetBackground STYLE_DEFAULT ffffff StyleSetForeground STYLE_DEFAULT 000000 StyleSetForeground STYLE_LINENUMBER 111111 StyleSetBackground STYLE_LINENUMBER eeeeee StyleSetForeground STYLE_INDENTGUIDE 0000ff StyleSetForeground STYLE_BRACELIGHT ff00ff StyleSetForeground STYLE_BRACEBAD ff0000 style application/x-perl include text/plain StyleSetForeground SCE_PL_DEFAULT 7f7f7f StyleSetForeground SCE_PL_ERROR ff0000 StyleSetForeground SCE_PL_COMMENTLINE 3f7f7f StyleSetForeground SCE_PL_POD 3f7f7f StyleSetForeground SCE_PL_POD_VERB 3f7f7f StyleSetForeground SCE_PL_NUMBER ff0000 StyleSetForeground SCE_PL_WORD 000000 StyleSetForeground SCE_PL_STRING 7f7f7f StyleSetForeground SCE_PL_CHARACTER 7f7f7f StyleSetForeground SCE_PL_PUNCTUATION 7f3f00 StyleSetForeground SCE_PL_PREPROCESSOR 7f7f7f StyleSetForeground SCE_PL_OPERATOR 7f3f00 StyleSetForeground SCE_PL_IDENTIFIER 000000 StyleSetForeground SCE_PL_SCALAR 000000 StyleSetForeground SCE_PL_ARRAY 000000 StyleSetForeground SCE_PL_HASH 000000 StyleSetForeground SCE_PL_SYMBOLTABLE 00ff00 StyleSetForeground SCE_PL_REGEX 7f00ff StyleSetForeground SCE_PL_REGSUBST 7f7f00 StyleSetForeground SCE_PL_LONGQUOTE 7f7f7f StyleSetForeground SCE_PL_BACKTICKS 00bf00 StyleSetForeground SCE_PL_DATASECTION ff7f00 StyleSetForeground SCE_PL_HERE_DELIM ff7f00 StyleSetForeground SCE_PL_HERE_Q 7f7f7f StyleSetForeground SCE_PL_HERE_QQ 7f7f7f StyleSetForeground SCE_PL_HERE_QX 00bf00 StyleSetForeground SCE_PL_STRING_Q 7f7f7f StyleSetForeground SCE_PL_STRING_QQ 7f7f7f StyleSetForeground SCE_PL_STRING_QX 7f7f7f StyleSetForeground SCE_PL_STRING_QR 7f00ff StyleSetForeground SCE_PL_STRING_QW 7f7f7f # Missing SCE_PL_VARIABLE_INDEXER (16) # Missing SCE_PL_SUB_PROTOTYPE (40) # Missing SCE_PL_FORMAT_IDENT (41) # Missing SCE_PL_FORMAT (42) # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/share/themes/notepad.txt0000644000175000017500000001137512074315403015731 0ustar petepetename en-gb Notepad++ # Padre Internal Editor Colours style padre StyleSetForeground PADRE_BLACK 000000 StyleSetForeground PADRE_BLUE 000099 StyleSetForeground PADRE_RED 990000 StyleSetForeground PADRE_GREEN 00aa00 StyleSetForeground PADRE_MAGENTA 8b008b StyleSetForeground PADRE_ORANGE ff8228 StyleSetForeground PADRE_CRIMSON dc143c StyleSetForeground PADRE_BROWN a52a2a StyleSetForeground PADRE_DIFF_HEADER 000000 StyleSetBackground PADRE_DIFF_HEADER eeee22 StyleSetForeground PADRE_DIFF_DELETED 000000 StyleSetBackground PADRE_DIFF_DELETED ff8080 StyleSetForeground PADRE_DIFF_ADDED 000000 StyleSetBackground PADRE_DIFF_ADDED 80ff80 StyleSetForeground PADRE_WARNING af8000 StyleSetBackground PADRE_WARNING fffff0 StyleSetForeground PADRE_ERROR af0000 StyleSetBackground PADRE_ERROR fff0f0 # Code folding margin SetFoldMarginColour 1 eeeeee SetFoldMarginHiColour 1 eeeeee MarkerSetForeground SC_MARKNUM_FOLDEREND ffffff MarkerSetBackground SC_MARKNUM_FOLDEREND 000000 MarkerSetForeground SC_MARKNUM_FOLDEROPENMID ffffff MarkerSetBackground SC_MARKNUM_FOLDEROPENMID 000000 MarkerSetForeground SC_MARKNUM_FOLDERMIDTAIL 000000 MarkerSetBackground SC_MARKNUM_FOLDERMIDTAIL 000000 MarkerSetForeground SC_MARKNUM_FOLDERTAIL 000000 MarkerSetBackground SC_MARKNUM_FOLDERTAIL 000000 MarkerSetForeground SC_MARKNUM_FOLDERSUB 000000 MarkerSetBackground SC_MARKNUM_FOLDERSUB 000000 MarkerSetForeground SC_MARKNUM_FOLDER 000000 MarkerSetBackground SC_MARKNUM_FOLDER ffffff MarkerSetForeground SC_MARKNUM_FOLDEROPEN ffffff MarkerSetBackground SC_MARKNUM_FOLDEROPEN 000000 style text/plain include padre SetCaretForeground 000000 SetCaretLineBackground ffff04 SetSelBackground 1 0080ff StyleAllBackground ffffff StyleSetForeground STYLE_BRACELIGHT 00ff00 StyleSetForeground STYLE_BRACEBAD ff0000 style application/x-perl include text/plain StyleSetForeground STYLE_BRACELIGHT ff0000 StyleSetForeground STYLE_BRACEBAD 880000 StyleSetForeground SCE_PL_DEFAULT ff0000 StyleSetForeground SCE_PL_ERROR ff88c0 StyleSetBold SCE_PL_ERROR 1 StyleSetItalic SCE_PL_ERROR 1 StyleSetForeground SCE_PL_COMMENTLINE 008800 StyleSetForeground SCE_PL_POD 000000 StyleSetForeground SCE_PL_POD_VERB 000000 StyleSetForeground SCE_PL_NUMBER ff0000 StyleSetForeground SCE_PL_WORD 0000ff StyleSetBold SCE_PL_WORD 1 StyleSetForeground SCE_PL_STRING 808080 StyleSetForeground SCE_PL_CHARACTER 808080 StyleSetForeground SCE_PL_PUNCTUATION 804000 StyleSetForeground SCE_PL_PREPROCESSOR 804000 StyleSetForeground SCE_PL_OPERATOR 000080 StyleSetBold SCE_PL_OPERATOR 1 StyleSetForeground SCE_PL_IDENTIFIER 000000 StyleSetForeground SCE_PL_SCALAR ff8000 StyleSetForeground SCE_PL_ARRAY 4080ff StyleSetForeground SCE_PL_HASH 0080ff StyleSetForeground SCE_PL_SYMBOLTABLE ff0000 StyleSetBold SCE_PL_SYMBOLTABLE 1 StyleSetForeground SCE_PL_REGEX 8080ff StyleSetBackground SCE_PL_REGEX ffeeec StyleSetForeground SCE_PL_REGSUBST 8080c0 StyleSetBackground SCE_PL_REGSUBST ffeeec StyleSetForeground SCE_PL_LONGQUOTE ff8000 StyleSetForeground SCE_PL_BACKTICKS ffff00 StyleSetBackground SCE_PL_BACKTICKS 808080 StyleSetBold SCE_PL_BACKTICKS 1 StyleSetForeground SCE_PL_DATASECTION 808080 StyleSetForeground SCE_PL_HERE_DELIM 000000 StyleSetForeground SCE_PL_HERE_Q 000000 StyleSetForeground SCE_PL_HERE_QQ 000000 StyleSetForeground SCE_PL_HERE_QX 000000 StyleSetForeground SCE_PL_STRING_Q 000000 StyleSetForeground SCE_PL_STRING_QQ 000000 StyleSetForeground SCE_PL_STRING_QX 000000 StyleSetForeground SCE_PL_STRING_QR 000000 StyleSetForeground SCE_PL_STRING_QW 000000 # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/share/themes/solarized_dark.txt0000644000175000017500000007424012074315403017274 0ustar petepetename en-gb Solarized Dark ##### # # base03 002b36 # base02 073642 # # base01 586e75 # base00 657b83 # base0 839496 # base1 93a1a1 # base2 eee8d5 # base3 fdf6e6 # # yellow b58900 # orange cb4b16 # red dc322f # magenta d33682 # violet 6c71c4 # blue 268bd2 # cyan 2aa198 # green 859900 # # # Padre GUI Colours style gui SetForegroundColour 93a1a1 SetBackgroundColour 073642 style padre StyleSetBackground STYLE_DEFAULT 002b36 StyleSetForeground STYLE_DEFAULT 93a1a1 StyleSetForeground STYLE_CONTROLCHAR 657b83 StyleSetBackground STYLE_CONTROLCHAR 002b36 StyleSetForeground STYLE_BRACELIGHT cb4b16 StyleSetBackground STYLE_BRACELIGHT 002b36 StyleSetForeground STYLE_BRACEBAD 002b36 StyleSetBackground STYLE_BRACEBAD dc322f StyleSetForeground PADRE_BLACK 93a1a1 StyleSetForeground PADRE_BLUE 268bd2 StyleSetForeground PADRE_RED dc322f StyleSetForeground PADRE_GREEN 859900 StyleSetForeground PADRE_MAGENTA d33682 StyleSetForeground PADRE_ORANGE cb4b16 StyleSetForeground PADRE_CRIMSON 6c71c4 StyleSetForeground PADRE_BROWN b58900 StyleSetForeground PADRE_WARNING af8000 StyleSetBackground PADRE_WARNING fffff0 StyleSetItalic PADRE_WARNING 1 StyleSetForeground PADRE_ERROR af0000 StyleSetBackground PADRE_ERROR fff0f0 StyleSetItalic PADRE_ERROR 1 StyleSetBackground STYLE_CALLTIP 073642 StyleSetForeground STYLE_CALLTIP 657b83 # Code folding margin SetFoldMarginColour 1 073642 SetFoldMarginHiColour 1 073642 MarkerSetForeground SC_MARKNUM_FOLDEREND 073642 MarkerSetBackground SC_MARKNUM_FOLDEREND 586e75 MarkerSetForeground SC_MARKNUM_FOLDEROPENMID 073642 MarkerSetBackground SC_MARKNUM_FOLDEROPENMID 586e75 MarkerSetForeground SC_MARKNUM_FOLDERMIDTAIL 586e75 MarkerSetBackground SC_MARKNUM_FOLDERMIDTAIL 586e75 MarkerSetForeground SC_MARKNUM_FOLDERTAIL 586e75 MarkerSetBackground SC_MARKNUM_FOLDERTAIL 586e75 MarkerSetForeground SC_MARKNUM_FOLDERSUB 586e75 MarkerSetBackground SC_MARKNUM_FOLDERSUB 586e75 MarkerSetForeground SC_MARKNUM_FOLDER 586e75 MarkerSetBackground SC_MARKNUM_FOLDER 073642 MarkerSetForeground SC_MARKNUM_FOLDEROPEN 073642 MarkerSetBackground SC_MARKNUM_FOLDEROPEN 586e75 style text/plain include padre SetCaretForeground 93a1a1 SetCaretLineBackground 073642 SetSelBackground 1 eee8d5 SetWhitespaceForeground 0 657b83 SetWhitespaceBackground 0 ff2b36 StyleSetBackground STYLE_DEFAULT 002b36 # this is cheating - the NULL lexer sets style to 0 what is the constant for that? StyleSetBackground 0 002b36 StyleSetBackground STYLE_LINENUMBER 073642 StyleSetForeground STYLE_LINENUMBER 586e75 StyleSetForeground STYLE_INDENTGUIDE 859900 CallTipSetBackground 073642 # # application/x-perl # style application/x-perl include text/plain StyleSetForeground SCE_PL_DEFAULT 657b83 StyleSetForeground SCE_PL_ERROR ff0000 StyleSetForeground SCE_PL_COMMENTLINE 93a1a1 StyleSetForeground SCE_PL_POD 657b83 StyleSetForeground SCE_PL_POD_VERB 657b83 StyleSetItalic SCE_PL_POD_VERB 1 StyleSetForeground SCE_PL_NUMBER cb4b16 StyleSetForeground SCE_PL_WORD 859900 StyleSetForeground SCE_PL_STRING 2aa198 StyleSetForeground SCE_PL_CHARACTER 6c71c4 StyleSetForeground SCE_PL_PUNCTUATION 000000 StyleSetForeground SCE_PL_PREPROCESSOR 657b83 StyleSetForeground SCE_PL_OPERATOR 268bd2 StyleSetForeground SCE_PL_IDENTIFIER 839496 StyleSetForeground SCE_PL_SCALAR b58900 StyleSetForeground SCE_PL_ARRAY dc322f StyleSetForeground SCE_PL_HASH dc322f StyleSetForeground SCE_PL_SYMBOLTABLE eee8d5 StyleSetForeground SCE_PL_VARIABLE_INDEXER b58900 StyleSetForeground SCE_PL_REGEX d33682 StyleSetForeground SCE_PL_REGSUBST 93a1a1 StyleSetForeground SCE_PL_LONGQUOTE 2aa198 StyleSetForeground SCE_PL_BACKTICKS cb4b16 StyleSetForeground SCE_PL_DATASECTION 2aa198 StyleSetForeground SCE_PL_HERE_DELIM 2aa198 StyleSetForeground SCE_PL_HERE_Q 6c71c4 StyleSetForeground SCE_PL_HERE_QQ 2aa198 StyleSetForeground SCE_PL_HERE_QX cb4b16 StyleSetForeground SCE_PL_STRING_Q 6c71c4 StyleSetForeground SCE_PL_STRING_QQ 2aa198 StyleSetForeground SCE_PL_STRING_QX cb4b16 StyleSetForeground SCE_PL_STRING_QR d33682 StyleSetForeground SCE_PL_STRING_QW 6c71c4 StyleSetForeground SCE_PL_SUB_PROTOTYPE cb4b16 StyleSetForeground SCE_PL_FORMAT_IDENT eee8d5 StyleSetBold SCE_PL_FORMAT_IDENT 1 StyleSetForeground SCE_PL_FORMAT 2aa198 StyleSetForeground SCE_PL_STRING_VAR b58900 StyleSetForeground SCE_PL_XLAT d33682 StyleSetItalic SCE_PL_XLAT 1 StyleSetForeground SCE_PL_REGEX_VAR b58900 StyleSetForeground SCE_PL_REGSUBST_VAR b58900 StyleSetForeground SCE_PL_BACKTICKS_VAR b58900 StyleSetForeground SCE_PL_HERE_QQ_VAR b58900 StyleSetForeground SCE_PL_HERE_QX_VAR b58900 StyleSetForeground SCE_PL_STRING_QQ_VAR b58900 StyleSetForeground SCE_PL_STRING_QX_VAR b58900 StyleSetForeground SCE_PL_STRING_QR_VAR b58900 StyleSetBackground SCE_PL_DEFAULT 002b36 StyleSetBackground SCE_PL_ERROR 002b36 StyleSetBackground SCE_PL_COMMENTLINE 002b36 StyleSetBackground SCE_PL_POD 002b36 StyleSetBackground SCE_PL_NUMBER 002b36 StyleSetBackground SCE_PL_WORD 002b36 StyleSetBackground SCE_PL_STRING 002b36 StyleSetBackground SCE_PL_CHARACTER 002b36 StyleSetBackground SCE_PL_PUNCTUATION 002b36 StyleSetBackground SCE_PL_PREPROCESSOR 002b36 StyleSetBackground SCE_PL_OPERATOR 002b36 StyleSetBackground SCE_PL_IDENTIFIER 002b36 StyleSetBackground SCE_PL_SCALAR 002b36 StyleSetBackground SCE_PL_ARRAY 002b36 StyleSetBackground SCE_PL_HASH 002b36 StyleSetBackground SCE_PL_SYMBOLTABLE 002b36 StyleSetBackground SCE_PL_REGEX 002b36 StyleSetBackground SCE_PL_REGSUBST 002b36 StyleSetBackground SCE_PL_LONGQUOTE 002b36 StyleSetBackground SCE_PL_BACKTICKS 002b36 StyleSetBackground SCE_PL_DATASECTION 002b36 StyleSetBackground SCE_PL_HERE_DELIM 002b36 StyleSetBackground SCE_PL_HERE_Q 002b36 StyleSetBackground SCE_PL_HERE_QQ 002b36 StyleSetBackground SCE_PL_HERE_QX 002b36 StyleSetBackground SCE_PL_STRING_Q 002b36 StyleSetBackground SCE_PL_STRING_QQ 002b36 StyleSetBackground SCE_PL_STRING_QX 002b36 StyleSetBackground SCE_PL_STRING_QR 002b36 StyleSetBackground SCE_PL_STRING_QW 002b36 StyleSetBackground SCE_PL_FORMAT 002b36 StyleSetBackground SCE_PL_FORMAT_IDENT 002b36 StyleSetBackground SCE_PL_SUB_PROTOTYPE 002b36 StyleSetBackground SCE_PL_POD_VERB 002b36 StyleSetBackground SCE_PL_VARIABLE_INDEXER 002b36 StyleSetBackground SCE_PL_STRING_VAR 002b36 StyleSetBackground SCE_PL_XLAT 002b36 StyleSetBackground SCE_PL_REGEX_VAR 002b36 StyleSetBackground SCE_PL_REGSUBST_VAR 002b36 StyleSetBackground SCE_PL_BACKTICKS_VAR 002b36 StyleSetBackground SCE_PL_HERE_QQ_VAR 002b36 StyleSetBackground SCE_PL_HERE_QX_VAR 002b36 StyleSetBackground SCE_PL_STRING_QQ_VAR 002b36 StyleSetBackground SCE_PL_STRING_QX_VAR 002b36 StyleSetBackground SCE_PL_STRING_QR_VAR 002b36 StyleSetBackground SCE_PL_SUB_PROTOTYPE 073642 StyleSetBackground SCE_PL_FORMAT_IDENT 073642 StyleSetBackground SCE_PL_FORMAT 073642 ## conf style text/x-config include text/plain StyleSetForeground SCE_CONF_DEFAULT 657b83 StyleSetForeground SCE_CONF_COMMENT 586e75 StyleSetForeground SCE_CONF_NUMBER 2aa198 StyleSetForeground SCE_CONF_IDENTIFIER b58900 StyleSetForeground SCE_CONF_EXTENSION 839496 StyleSetForeground SCE_CONF_PARAMETER d33682 StyleSetForeground SCE_CONF_STRING cb4b16 StyleSetForeground SCE_CONF_OPERATOR 93a1a1 StyleSetForeground SCE_CONF_IP 859900 StyleSetForeground SCE_CONF_DIRECTIVE 839496 StyleSetBackground SCE_CONF_DEFAULT 002b36 StyleSetBackground SCE_CONF_COMMENT 002b36 StyleSetBackground SCE_CONF_NUMBER 002b36 StyleSetBackground SCE_CONF_IDENTIFIER 002b36 StyleSetBackground SCE_CONF_EXTENSION 002b36 StyleSetBackground SCE_CONF_PARAMETER 002b36 StyleSetBackground SCE_CONF_STRING 002b36 StyleSetBackground SCE_CONF_OPERATOR 002b36 StyleSetBackground SCE_CONF_IP 002b36 StyleSetBackground SCE_CONF_DIRECTIVE 002b36 ## yaml style text/x-yaml include text/plain StyleSetForeground SCE_YAML_DEFAULT 859900 StyleSetForeground SCE_YAML_COMMENT 586e75 StyleSetForeground SCE_YAML_IDENTIFIER 268bd2 StyleSetBold SCE_YAML_IDENTIFIER 1 StyleSetForeground SCE_YAML_KEYWORD 6c71c4 StyleSetForeground SCE_YAML_NUMBER dc322f StyleSetForeground SCE_YAML_REFERENCE 2aa198 StyleSetForeground SCE_YAML_DOCUMENT 859900 StyleSetBackground SCE_YAML_DOCUMENT eee8d5 StyleSetBold SCE_YAML_DOCUMENT 1 StyleSetEOLFilled SCE_YAML_DOCUMENT 1 StyleSetForeground SCE_YAML_TEXT 333366 StyleSetForeground SCE_YAML_ERROR 859900 StyleSetBackground SCE_YAML_ERROR eee8d5 StyleSetBold SCE_YAML_ERROR 1 StyleSetEOLFilled SCE_YAML_ERROR 1 StyleSetBackground SCE_YAML_DEFAULT 002b36 StyleSetBackground SCE_YAML_COMMENT 002b36 StyleSetBackground SCE_YAML_IDENTIFIER 002b36 StyleSetBackground SCE_YAML_KEYWORD 002b36 StyleSetBackground SCE_YAML_NUMBER 002b36 StyleSetBackground SCE_YAML_REFERENCE 002b36 StyleSetBackground SCE_YAML_TEXT 002b36 StyleSetBackground SCE_YAML_OPERATOR 002b36 style text/x-csrc include text/plain StyleSetForeground SCE_C_DEFAULT 657b83 StyleSetBackground SCE_C_DEFAULT 002b36 StyleSetForeground SCE_C_COMMENT 586e75 StyleSetBackground SCE_C_COMMENT 002b36 StyleSetForeground SCE_C_COMMENTLINE 586e75 StyleSetBackground SCE_C_COMMENTLINE 002b36 StyleSetForeground SCE_C_COMMENTDOC 586e75 StyleSetBackground SCE_C_COMMENTDOC 002b36 StyleSetForeground SCE_C_NUMBER 2aa198 StyleSetBackground SCE_C_NUMBER 002b36 StyleSetForeground SCE_C_WORD 6c71c4 StyleSetBackground SCE_C_WORD 002b36 StyleSetBold SCE_C_WORD 1 StyleSetForeground SCE_C_STRING ff7f00 StyleSetBackground SCE_C_STRING 002b36 StyleSetForeground SCE_C_CHARACTER 6c71c4 StyleSetBackground SCE_C_CHARACTER 002b36 StyleSetForeground SCE_C_UUID 6c71c4 StyleSetBackground SCE_C_UUID 002b36 StyleSetForeground SCE_C_PREPROCESSOR 93a1a1 StyleSetBackground SCE_C_PREPROCESSOR 002b36 StyleSetBold SCE_C_PREPROCESSOR 1 StyleSetForeground SCE_C_OPERATOR 268bd2 StyleSetBackground SCE_C_OPERATOR 002b36 StyleSetForeground SCE_C_IDENTIFIER 859900 StyleSetBackground SCE_C_IDENTIFIER 002b36 StyleSetForeground SCE_C_STRINGEOL dc322f StyleSetBackground SCE_C_STRINGEOL 002b36 StyleSetForeground SCE_C_VERBATIM 6c71c4 StyleSetBackground SCE_C_VERBATIM 002b36 StyleSetForeground SCE_C_REGEX ff007f StyleSetBackground SCE_C_REGEX 002b36 StyleSetForeground SCE_C_COMMENTLINEDOC 586e75 StyleSetBackground SCE_C_COMMENTLINEDOC 002b36 StyleSetForeground SCE_C_WORD2 6c71c4 StyleSetBackground SCE_C_WORD2 002b36 StyleSetBold SCE_C_WORD2 1 StyleSetForeground SCE_C_COMMENTDOCKEYWORD 657b83 StyleSetBackground SCE_C_COMMENTDOCKEYWORD 002b36 StyleSetForeground SCE_C_COMMENTDOCKEYWORDERROR 657b83 StyleSetBackground SCE_C_COMMENTDOCKEYWORDERROR 002b36 StyleSetForeground SCE_C_GLOBALCLASS 6c71c4 StyleSetBackground SCE_C_GLOBALCLASS 002b36 # text/x-perlxs # surely this should be rolled up to text/x-csrc and included by cpp and perlxs ? style text/x-perlxs include text/x-csrc style text/x-cpp include text/x-csrc # # text/html style text/html include text/plain StyleSetBackground SCE_H_DEFAULT 002b36 StyleSetBackground SCE_H_TAG 002b36 StyleSetBackground SCE_H_TAGUNKNOWN 002b36 StyleSetBackground SCE_H_ATTRIBUTE 002b36 StyleSetBackground SCE_H_ATTRIBUTEUNKNOWN 002b36 StyleSetBackground SCE_H_NUMBER 002b36 StyleSetBackground SCE_H_DOUBLESTRING 002b36 StyleSetBackground SCE_H_SINGLESTRING 002b36 StyleSetBackground SCE_H_OTHER 002b36 StyleSetBackground SCE_H_COMMENT 002b36 StyleSetBackground SCE_H_ENTITY 002b36 StyleSetForeground SCE_H_DEFAULT 93a1a1 StyleSetForeground SCE_H_TAG 586e75 StyleSetForeground SCE_H_TAGUNKNOWN dc322f StyleSetForeground SCE_H_ATTRIBUTE 268bd2 StyleSetForeground SCE_H_ATTRIBUTEUNKNOWN dc322f StyleSetForeground SCE_H_NUMBER d33682 StyleSetForeground SCE_H_DOUBLESTRING 6c71c4 StyleSetForeground SCE_H_SINGLESTRING 2aa198 StyleSetForeground SCE_H_OTHER b58900 StyleSetForeground SCE_H_COMMENT 657b83 StyleSetItalic SCE_H_COMMENT 1 StyleSetForeground SCE_H_ENTITY 859900 StyleSetBackground SCE_H_TAGEND 002b36 StyleSetBackground SCE_H_XMLSTART 002b36 StyleSetBackground SCE_H_XMLEND 002b36 StyleSetBackground SCE_H_SCRIPT 002b36 StyleSetBackground SCE_H_ASP 002b36 StyleSetBackground SCE_H_ASPAT 002b36 StyleSetBackground SCE_H_CDATA 073642 StyleSetEOLFilled SCE_H_CDATA 1 StyleSetBackground SCE_H_QUESTION 002b36 StyleSetForeground SCE_H_TAGEND 586e75 StyleSetForeground SCE_H_XMLSTART cb4b16 StyleSetForeground SCE_H_XMLEND cb4b16 StyleSetForeground SCE_H_SCRIPT d33682 #StyleSetForeground SCE_H_ASP 15 #StyleSetForeground SCE_H_ASPAT 16 StyleSetForeground SCE_H_CDATA d33682 StyleSetForeground SCE_H_QUESTION 859900 StyleSetBackground SCE_H_VALUE 073642 StyleSetBackground SCE_H_XCCOMMENT 002b36 #// SGML StyleSetBackground SCE_H_SGML_DEFAULT 073642 StyleSetBackground SCE_H_SGML_COMMAND 073642 StyleSetBackground SCE_H_SGML_1ST_PARAM 073642 StyleSetBackground SCE_H_SGML_DOUBLESTRING 073642 StyleSetBackground SCE_H_SGML_SIMPLESTRING 073642 StyleSetBackground SCE_H_SGML_ERROR 073642 StyleSetBackground SCE_H_SGML_SPECIAL 073642 StyleSetBackground SCE_H_SGML_ENTITY 073642 StyleSetBackground SCE_H_SGML_COMMENT 073642 StyleSetBackground SCE_H_SGML_1ST_PARAM_COMMENT 073642 StyleSetBackground SCE_H_SGML_BLOCK_DEFAULT 073642 ## StyleSetForeground SCE_H_SGML_DEFAULT d33682 StyleSetForeground SCE_H_SGML_COMMAND 859900 StyleSetForeground SCE_H_SGML_1ST_PARAM cb4b16 StyleSetForeground SCE_H_SGML_DOUBLESTRING 6c71c4 StyleSetForeground SCE_H_SGML_SIMPLESTRING 002b36 StyleSetForeground SCE_H_SGML_ERROR cb4b16 StyleSetForeground SCE_H_SGML_SPECIAL 859900 StyleSetForeground SCE_H_SGML_ENTITY 859900 StyleSetForeground SCE_H_SGML_COMMENT 657b83 StyleSetItalic SCE_H_SGML_COMMENT 1 StyleSetForeground SCE_H_SGML_1ST_PARAM_COMMENT 93a1a1 StyleSetForeground SCE_H_SGML_BLOCK_DEFAULT d33682 #// Embedded Javascript Backgrounds StyleSetBackground SCE_HJ_START 073642 StyleSetBackground SCE_HJ_DEFAULT 073642 StyleSetBackground SCE_HJ_COMMENT 073642 StyleSetBackground SCE_HJ_COMMENTLINE 073642 StyleSetBackground SCE_HJ_COMMENTDOC 073642 StyleSetBackground SCE_HJ_NUMBER 073642 StyleSetBackground SCE_HJ_WORD 073642 StyleSetBackground SCE_HJ_KEYWORD 073642 StyleSetBackground SCE_HJ_DOUBLESTRING 073642 StyleSetBackground SCE_HJ_SINGLESTRING 073642 StyleSetBackground SCE_HJ_SYMBOLS 073642 StyleSetBackground SCE_HJ_STRINGEOL 073642 StyleSetBackground SCE_HJ_REGEX 073642 StyleSetEOLFilled SCE_HJ_START 1 StyleSetEOLFilled SCE_HJ_DEFAULT 1 StyleSetEOLFilled SCE_HJ_COMMENT 1 StyleSetEOLFilled SCE_HJ_COMMENTLINE 1 StyleSetEOLFilled SCE_HJ_COMMENTDOC 1 StyleSetEOLFilled SCE_HJ_NUMBER 1 StyleSetEOLFilled SCE_HJ_WORD 1 StyleSetEOLFilled SCE_HJ_KEYWORD 1 StyleSetEOLFilled SCE_HJ_DOUBLESTRING 1 StyleSetEOLFilled SCE_HJ_SINGLESTRING 1 StyleSetEOLFilled SCE_HJ_SYMBOLS 1 StyleSetEOLFilled SCE_HJ_STRINGEOL 1 StyleSetEOLFilled SCE_HJ_REGEX 1 #// Embedded Javascript StyleSetForeground SCE_HJ_START 586e75 StyleSetForeground SCE_HJ_DEFAULT 93a1a1 StyleSetForeground SCE_HJ_COMMENT 586e75 StyleSetForeground SCE_HJ_COMMENTLINE 586e75 StyleSetForeground SCE_HJ_COMMENTDOC 657b83 StyleSetForeground SCE_HJ_NUMBER cb4b16 StyleSetForeground SCE_HJ_WORD 859900 StyleSetForeground SCE_HJ_KEYWORD 268bd2 StyleSetForeground SCE_HJ_DOUBLESTRING cb4b16 StyleSetForeground SCE_HJ_SINGLESTRING b58900 StyleSetForeground SCE_HJ_SYMBOLS d33682 StyleSetForeground SCE_HJ_STRINGEOL 6c71c4 StyleSetForeground SCE_HJ_REGEX d33682 # text/x-patch # style text/x-patch include text/plain StyleSetForeground SCE_DIFF_DEFAULT 657b83 StyleSetForeground SCE_DIFF_COMMENT 586e75 StyleSetBold SCE_DIFF_COMMENT 1 StyleSetItalic SCE_DIFF_COMMENT 1 StyleSetEOLFilled SCE_DIFF_COMMENT 1 StyleSetUnderline SCE_DIFF_COMMENT 1 StyleSetForeground SCE_DIFF_COMMAND 93a1a1 StyleSetForeground SCE_DIFF_HEADER 859900 StyleSetForeground SCE_DIFF_POSITION 268bd2 StyleSetForeground SCE_DIFF_DELETED dc322f StyleSetForeground SCE_DIFF_ADDED 2aa198 StyleSetForeground SCE_DIFF_CHANGED 6c71c4 StyleSetBackground SCE_DIFF_DEFAULT 002b36 StyleSetBackground SCE_DIFF_COMMENT 002b36 StyleSetBackground SCE_DIFF_COMMAND 002b36 StyleSetBackground SCE_DIFF_HEADER 002b36 StyleSetBackground SCE_DIFF_POSITION 002b36 StyleSetBackground SCE_DIFF_DELETED 002b36 StyleSetBackground SCE_DIFF_ADDED 002b36 #StyleSetBackground SCE_DIFF_CHANGED 002b36 # text/x-makefile # style text/x-makefile include text/plain StyleSetForeground SCE_MAKE_DEFAULT 657b83 StyleSetForeground SCE_MAKE_COMMENT 586e75 StyleSetForeground SCE_MAKE_PREPROCESSOR 93a1a1 StyleSetForeground SCE_MAKE_IDENTIFIER 859900 StyleSetForeground SCE_MAKE_OPERATOR 268bd2 StyleSetForeground SCE_MAKE_TARGET dc322f StyleSetForeground SCE_MAKE_IDEOL 2aa198 StyleSetBackground SCE_MAKE_DEFAULT 002b36 StyleSetBackground SCE_MAKE_COMMENT 002b36 StyleSetBackground SCE_MAKE_PREPROCESSOR 002b36 StyleSetBackground SCE_MAKE_IDENTIFIER 002b36 StyleSetBackground SCE_MAKE_OPERATOR 002b36 StyleSetBackground SCE_MAKE_TARGET 002b36 StyleSetBackground SCE_MAKE_IDEOL 002b36 # # text/css1 # style text/css include text/plain StyleSetForeground SCE_CSS_DEFAULT 657b83 StyleSetForeground SCE_CSS_TAG 6c71c4 StyleSetBold SCE_CSS_TAG 1 StyleSetForeground SCE_CSS_CLASS 268bd2 StyleSetForeground SCE_CSS_PSEUDOCLASS 839496 StyleSetItalic SCE_CSS_PSEUDOCLASS 1 StyleSetForeground SCE_CSS_UNKNOWN_PSEUDOCLASS 839496 StyleSetBold SCE_CSS_UNKNOWN_PSEUDOCLASS 1 StyleSetForeground SCE_CSS_OPERATOR cb4b16 StyleSetBold SCE_CSS_OPERATOR 1 StyleSetForeground SCE_CSS_IDENTIFIER d33682 StyleSetForeground SCE_CSS_UNKNOWN_IDENTIFIER 839496 StyleSetBold SCE_CSS_UNKNOWN_IDENTIFIER 1 StyleSetForeground SCE_CSS_VALUE 859900 StyleSetForeground SCE_CSS_COMMENT 586e75 StyleSetForeground SCE_CSS_ID 2aa198 StyleSetBold SCE_CSS_ID 1 StyleSetForeground SCE_CSS_IMPORTANT 839496 StyleSetForeground SCE_CSS_DIRECTIVE 839496 StyleSetForeground SCE_CSS_DOUBLESTRING 839496 StyleSetForeground SCE_CSS_SINGLESTRING 839496 StyleSetForeground SCE_CSS_IDENTIFIER2 d33682 StyleSetForeground SCE_CSS_ATTRIBUTE 839496 #StyleSetForeground SCE_CSS_IDENTIFIER3 17 #StyleSetForeground SCE_CSS_PSEUDOELEMENT 18 #StyleSetForeground SCE_CSS_EXTENDED_IDENTIFIER 19 #StyleSetForeground SCE_CSS_EXTENDED_PSEUDOCLASS 20 #StyleSetForeground SCE_CSS_EXTENDED_PSEUDOELEMENT 21 StyleSetBackground SCE_CSS_DEFAULT 002b36 StyleSetBackground SCE_CSS_TAG 002b36 StyleSetBackground SCE_CSS_CLASS 002b36 StyleSetBackground SCE_CSS_PSEUDOCLASS 002b36 StyleSetBackground SCE_CSS_UNKNOWN_PSEUDOCLASS 002b36 StyleSetBackground SCE_CSS_OPERATOR 002b36 StyleSetBackground SCE_CSS_IDENTIFIER 002b36 StyleSetBackground SCE_CSS_UNKNOWN_IDENTIFIER 002b36 StyleSetBackground SCE_CSS_VALUE 002b36 StyleSetBackground SCE_CSS_COMMENT 002b36 StyleSetBackground SCE_CSS_ID 002b36 StyleSetBackground SCE_CSS_IMPORTANT 002b36 StyleSetBackground SCE_CSS_DIRECTIVE 002b36 StyleSetBackground SCE_CSS_DOUBLESTRING 002b36 StyleSetBackground SCE_CSS_SINGLESTRING 002b36 StyleSetBackground SCE_CSS_IDENTIFIER2 002b36 StyleSetBackground SCE_CSS_ATTRIBUTE 002b36 StyleSetBackground SCE_CSS_IDENTIFIER3 002b36 StyleSetBackground SCE_CSS_PSEUDOELEMENT 002b36 StyleSetBackground SCE_CSS_EXTENDED_IDENTIFIER 002b36 StyleSetBackground SCE_CSS_EXTENDED_PSEUDOCLASS 002b36 StyleSetBackground SCE_CSS_EXTENDED_PSEUDOELEMENT 002b36 style text/x-sql include text/plain StyleSetForeground SCE_SQL_DEFAULT 657b83 StyleSetForeground SCE_SQL_COMMENT 586e75 StyleSetForeground SCE_SQL_COMMENTLINE 586e75 StyleSetForeground SCE_SQL_COMMENTDOC 586e75 StyleSetForeground SCE_SQL_NUMBER cb4b16 StyleSetForeground SCE_SQL_WORD 859900 StyleSetForeground SCE_SQL_STRING 2aa198 StyleSetForeground SCE_SQL_CHARACTER 6c71c4 StyleSetForeground SCE_SQL_SQLPLUS 657b83 StyleSetForeground SCE_SQL_SQLPLUS_PROMPT 657b83 StyleSetForeground SCE_SQL_OPERATOR 268bd2 StyleSetForeground 11 839496 # SCE_SQL_IDENTIFIER StyleSetForeground SCE_SQL_SQLPLUS_COMMENT 586e75 StyleSetForeground SCE_SQL_COMMENTLINEDOC 586e75 StyleSetForeground SCE_SQL_WORD2 b58900 # SCE_SQL_WORD2 StyleSetBold SCE_SQL_WORD2 1 StyleSetForeground SCE_SQL_COMMENTDOCKEYWORD 586e75 StyleSetForeground SCE_SQL_COMMENTDOCKEYWORDERROR dc322f StyleSetForeground 19 d33682 # SCE_SQL_USER1 StyleSetItalic 19 1 StyleSetForeground 20 2aa198 # SCE_SQL_USER2 StyleSetForeground 21 cb4b16 # SCE_SQL_USER3 StyleSetItalic 21 1 #StyleSetForeground SCE_SQL_USER4 StyleSetForeground SCE_SQL_QUOTEDIDENTIFIER 2aa198 StyleSetBackground SCE_SQL_DEFAULT 002b36 StyleSetBackground SCE_SQL_COMMENT 002b36 StyleSetBackground SCE_SQL_COMMENTLINE 002b36 StyleSetBackground SCE_SQL_COMMENTDOC 002b36 StyleSetBackground SCE_SQL_NUMBER 002b36 StyleSetBackground SCE_SQL_WORD 002b36 StyleSetBackground SCE_SQL_STRING 002b36 StyleSetBackground SCE_SQL_CHARACTER 002b36 StyleSetBackground SCE_SQL_SQLPLUS 002b36 StyleSetBackground SCE_SQL_SQLPLUS_PROMPT 002b36 StyleSetBackground SCE_SQL_OPERATOR 002b36 StyleSetBackground SCE_SQL_IDENTIFIER 002b36 StyleSetBackground SCE_SQL_SQLPLUS_COMMENT 002b36 StyleSetBackground SCE_SQL_COMMENTLINEDOC 002b36 StyleSetBackground SCE_SQL_WORD2 002b36 StyleSetBackground SCE_SQL_COMMENTDOCKEYWORD 002b36 StyleSetBackground SCE_SQL_COMMENTDOCKEYWORDERROR 002b36 StyleSetBackground SCE_SQL_USER1 002b36 StyleSetBackground SCE_SQL_USER2 002b36 StyleSetBackground SCE_SQL_USER3 002b36 StyleSetBackground SCE_SQL_USER4 002b36 StyleSetBackground SCE_SQL_QUOTEDIDENTIFIER 002b36 # POVRAY Persistence of Vision Raytracer style text/x-povray include text/plain StyleAllBackground 002b36 StyleSetForeground SCE_POV_DEFAULT 657b83 StyleSetForeground SCE_POV_COMMENT 839496 StyleSetForeground SCE_POV_COMMENTLINE 839496 StyleSetForeground SCE_POV_NUMBER cb4b16 StyleSetForeground SCE_POV_OPERATOR 268bd2 StyleSetForeground SCE_POV_IDENTIFIER 6c71c4 StyleSetForeground SCE_POV_STRING 2aa198 StyleSetForeground SCE_POV_STRINGEOL 2aa198 StyleSetForeground SCE_POV_DIRECTIVE 859900 StyleSetBold SCE_POV_DIRECTIVE 1 StyleSetForeground SCE_POV_BADDIRECTIVE dc322f StyleSetForeground SCE_POV_WORD2 859900 # object structure StyleSetForeground SCE_POV_WORD3 6c71c4 # patterns StyleSetForeground SCE_POV_WORD4 859900 # transforms StyleSetItalic SCE_POV_WORD4 1 StyleSetForeground SCE_POV_WORD5 d33682 # modifiers StyleSetForeground SCE_POV_WORD6 b58900 # functions StyleSetBold SCE_POV_WORD6 1 StyleSetForeground SCE_POV_WORD7 d33682 # reserved identifiers StyleSetForeground SCE_POV_WORD8 d33682 # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/share/themes/solarized_light.txt0000644000175000017500000007465112074315403017470 0ustar petepetename en-gb Solarized Light ##### # # base03 002b36 # base02 073642 # # base01 586e75 # base00 657b83 # base0 839496 # base1 93a1a1 # base2 eee8d5 # base3 fdf6e6 # # yellow b58900 # orange cb4b16 # red dc322f # magenta d33682 # violet 6c71c4 # blue 268bd2 # cyan 2aa198 # green 859900 # # # Padre GUI Colours style gui SetForegroundColour 93a1a1 SetBackgroundColour eee8d5 style padre StyleSetBackground STYLE_DEFAULT fdf6e6 StyleSetForeground STYLE_DEFAULT 93a1a1 StyleSetForeground STYLE_CONTROLCHAR 657b83 StyleSetBackground STYLE_CONTROLCHAR fdf6e6 StyleSetForeground STYLE_BRACELIGHT cb4b16 StyleSetBackground STYLE_BRACELIGHT fdf6e6 StyleSetForeground STYLE_BRACEBAD fdf6e6 StyleSetBackground STYLE_BRACEBAD dc322f StyleSetForeground PADRE_BLACK 93a1a1 StyleSetForeground PADRE_BLUE 268bd2 StyleSetForeground PADRE_RED dc322f StyleSetForeground PADRE_GREEN 859900 StyleSetForeground PADRE_MAGENTA d33682 StyleSetForeground PADRE_ORANGE cb4b16 StyleSetForeground PADRE_CRIMSON 6c71c4 StyleSetForeground PADRE_BROWN b58900 StyleSetForeground PADRE_WARNING af8000 StyleSetBackground PADRE_WARNING fffff0 StyleSetItalic PADRE_WARNING 1 StyleSetForeground PADRE_ERROR af0000 StyleSetBackground PADRE_ERROR fff0f0 StyleSetItalic PADRE_ERROR 1 StyleSetBackground STYLE_CALLTIP eee8d5 StyleSetForeground STYLE_CALLTIP 657b83 # Code folding margin SetFoldMarginColour 1 eee8d5 SetFoldMarginHiColour 1 eee8d5 MarkerSetForeground SC_MARKNUM_FOLDEREND eee8d5 MarkerSetBackground SC_MARKNUM_FOLDEREND 586e75 MarkerSetForeground SC_MARKNUM_FOLDEROPENMID eee8d5 MarkerSetBackground SC_MARKNUM_FOLDEROPENMID 586e75 MarkerSetForeground SC_MARKNUM_FOLDERMIDTAIL 586e75 MarkerSetBackground SC_MARKNUM_FOLDERMIDTAIL 586e75 MarkerSetForeground SC_MARKNUM_FOLDERTAIL 586e75 MarkerSetBackground SC_MARKNUM_FOLDERTAIL 586e75 MarkerSetForeground SC_MARKNUM_FOLDERSUB 586e75 MarkerSetBackground SC_MARKNUM_FOLDERSUB 586e75 MarkerSetForeground SC_MARKNUM_FOLDER 586e75 MarkerSetBackground SC_MARKNUM_FOLDER eee8d5 MarkerSetForeground SC_MARKNUM_FOLDEROPEN eee8d5 MarkerSetBackground SC_MARKNUM_FOLDEROPEN 586e75 style text/plain include padre SetCaretForeground 073642 SetCaretLineBackground eee8d5 SetSelBackground 1 002b36 SetWhitespaceForeground 0 657b83 SetWhitespaceBackground 0 ff2b36 StyleSetBackground STYLE_DEFAULT fdf6e6 # this is cheating - the NULL lexer sets style to 0 what is the constant for that? StyleSetBackground 0 fdf6e6 StyleSetBackground STYLE_LINENUMBER eee8d5 StyleSetForeground STYLE_LINENUMBER 586e75 StyleSetForeground STYLE_INDENTGUIDE 859900 CallTipSetBackground eee8d5 # # application/x-perl # style application/x-perl include text/plain StyleSetForeground SCE_PL_DEFAULT 657b83 StyleSetForeground SCE_PL_ERROR ff0000 StyleSetForeground SCE_PL_COMMENTLINE 586e75 StyleSetForeground SCE_PL_POD 657b83 StyleSetForeground SCE_PL_POD_VERB 657b83 StyleSetItalic SCE_PL_POD_VERB 1 StyleSetForeground SCE_PL_NUMBER cb4b16 StyleSetForeground SCE_PL_WORD 859900 StyleSetForeground SCE_PL_STRING 2aa198 StyleSetForeground SCE_PL_CHARACTER 6c71c4 StyleSetForeground SCE_PL_PUNCTUATION 000000 StyleSetForeground SCE_PL_PREPROCESSOR 657b83 StyleSetForeground SCE_PL_OPERATOR 268bd2 StyleSetForeground SCE_PL_IDENTIFIER 839496 StyleSetForeground SCE_PL_SCALAR b58900 StyleSetForeground SCE_PL_ARRAY dc322f StyleSetForeground SCE_PL_HASH dc322f StyleSetForeground SCE_PL_SYMBOLTABLE eee8d5 StyleSetForeground SCE_PL_VARIABLE_INDEXER b58900 StyleSetForeground SCE_PL_REGEX d33682 StyleSetForeground SCE_PL_REGSUBST 93a1a1 StyleSetForeground SCE_PL_LONGQUOTE 2aa198 StyleSetForeground SCE_PL_BACKTICKS cb4b16 StyleSetForeground SCE_PL_DATASECTION 2aa198 StyleSetForeground SCE_PL_HERE_DELIM 2aa198 StyleSetForeground SCE_PL_HERE_Q 6c71c4 StyleSetForeground SCE_PL_HERE_QQ 2aa198 StyleSetForeground SCE_PL_HERE_QX cb4b16 StyleSetForeground SCE_PL_STRING_Q 6c71c4 StyleSetForeground SCE_PL_STRING_QQ 2aa198 StyleSetForeground SCE_PL_STRING_QX cb4b16 StyleSetForeground SCE_PL_STRING_QR d33682 StyleSetForeground SCE_PL_STRING_QW 6c71c4 StyleSetForeground SCE_PL_SUB_PROTOTYPE cb4b16 StyleSetForeground SCE_PL_FORMAT_IDENT eee8d5 StyleSetForeground SCE_PL_FORMAT 2aa198 StyleSetBackground SCE_PL_DEFAULT fdf6e6 StyleSetBackground SCE_PL_ERROR fdf6e6 StyleSetBackground SCE_PL_COMMENTLINE fdf6e6 StyleSetBackground SCE_PL_POD fdf6e6 StyleSetBackground SCE_PL_NUMBER fdf6e6 StyleSetBackground SCE_PL_WORD fdf6e6 StyleSetBackground SCE_PL_STRING fdf6e6 StyleSetBackground SCE_PL_CHARACTER fdf6e6 StyleSetBackground SCE_PL_PUNCTUATION fdf6e6 StyleSetBackground SCE_PL_PREPROCESSOR fdf6e6 StyleSetBackground SCE_PL_OPERATOR fdf6e6 StyleSetBackground SCE_PL_IDENTIFIER fdf6e6 StyleSetBackground SCE_PL_SCALAR fdf6e6 StyleSetBackground SCE_PL_ARRAY fdf6e6 StyleSetBackground SCE_PL_HASH fdf6e6 StyleSetBackground SCE_PL_SYMBOLTABLE fdf6e6 StyleSetBackground SCE_PL_REGEX fdf6e6 StyleSetBackground SCE_PL_REGSUBST fdf6e6 StyleSetBackground SCE_PL_LONGQUOTE fdf6e6 StyleSetBackground SCE_PL_BACKTICKS fdf6e6 StyleSetBackground SCE_PL_DATASECTION fdf6e6 StyleSetBackground SCE_PL_HERE_DELIM fdf6e6 StyleSetBackground SCE_PL_HERE_Q fdf6e6 StyleSetBackground SCE_PL_HERE_QQ fdf6e6 StyleSetBackground SCE_PL_HERE_QX fdf6e6 StyleSetBackground SCE_PL_STRING_Q fdf6e6 StyleSetBackground SCE_PL_STRING_QQ fdf6e6 StyleSetBackground SCE_PL_STRING_QX fdf6e6 StyleSetBackground SCE_PL_STRING_QR fdf6e6 StyleSetBackground SCE_PL_STRING_QW fdf6e6 StyleSetBackground SCE_PL_FORMAT fdf6e6 StyleSetBackground SCE_PL_FORMAT_IDENT fdf6e6 StyleSetBackground SCE_PL_SUB_PROTOTYPE fdf6e6 StyleSetBackground SCE_PL_POD_VERB fdf6e6 StyleSetBackground SCE_PL_VARIABLE_INDEXER fdf6e6 # The 'constant' definition is weird with interplay between # Wx::Scintilla , Wx:: Padre::Wx::Constants/Style #StyleSetBackground SCE_PL_STRING_VAR fdf6e6 #StyleSetBackground SCE_PL_REGEX_VAR fdf6e6 #StyleSetBackground SCE_PL_REGSUBST_VAR fdf6e6 #StyleSetBackground SCE_PL_BACKTICKS_VAR fdf6e6 #StyleSetBackground SCE_PL_HERE_QQ_VAR fdf6e6 #StyleSetBackground SCE_PL_HERE_QX_VAR fdf6e6 #StyleSetBackground SCE_PL_STRING_QQ_VAR fdf6e6 #StyleSetBackground SCE_PL_STRING_QX_VAR fdf6e6 #StyleSetBackground SCE_PL_STRING_QR_VAR fdf6e6 StyleSetForeground SCE_PL_STRING_VAR b58900 StyleSetForeground SCE_PL_XLAT b58900 StyleSetForeground SCE_PL_REGEX_VAR b58900 StyleSetForeground SCE_PL_REGSUBST_VAR b58900 StyleSetForeground SCE_PL_BACKTICKS_VAR b58900 StyleSetForeground SCE_PL_HERE_QQ_VAR b58900 StyleSetForeground SCE_PL_HERE_QX_VAR b58900 StyleSetForeground SCE_PL_STRING_QQ_VAR b58900 StyleSetForeground SCE_PL_STRING_QX_VAR b58900 StyleSetForeground SCE_PL_STRING_QR_VAR b58900 StyleSetBackground SCE_PL_STRING_VAR df6e6 StyleSetBackground SCE_PL_XLAT eee8d5 StyleSetBackground SCE_PL_REGEX_VAR eee8d5 StyleSetBackground SCE_PL_REGSUBST_VAR eee8d5 StyleSetBackground SCE_PL_BACKTICKS_VAR fdf6e6 StyleSetBackground SCE_PL_HERE_QQ_VAR fdf6e6 StyleSetBackground SCE_PL_HERE_QX_VAR fdf6e6 StyleSetBackground SCE_PL_STRING_QQ_VAR fdf6e6 StyleSetBackground SCE_PL_STRING_QX_VAR fdf6e6 StyleSetBackground SCE_PL_STRING_QR_VAR eee8d5 StyleSetBackground SCE_PL_SUB_PROTOTYPE eee8d5 StyleSetBackground SCE_PL_FORMAT_IDENT eee8d5 StyleSetBackground SCE_PL_FORMAT eee8d5 ## conf style text/x-config include text/plain StyleSetForeground SCE_CONF_DEFAULT 657b83 StyleSetForeground SCE_CONF_COMMENT 586e75 StyleSetForeground SCE_CONF_NUMBER 2aa198 StyleSetForeground SCE_CONF_IDENTIFIER b58900 StyleSetForeground SCE_CONF_EXTENSION 839496 StyleSetForeground SCE_CONF_PARAMETER d33682 StyleSetForeground SCE_CONF_STRING cb4b16 StyleSetForeground SCE_CONF_OPERATOR 93a1a1 StyleSetForeground SCE_CONF_IP 859900 StyleSetForeground SCE_CONF_DIRECTIVE 839496 StyleSetBackground SCE_CONF_DEFAULT fdf6e6 StyleSetBackground SCE_CONF_COMMENT fdf6e6 StyleSetBackground SCE_CONF_NUMBER fdf6e6 StyleSetBackground SCE_CONF_IDENTIFIER fdf6e6 StyleSetBackground SCE_CONF_EXTENSION fdf6e6 StyleSetBackground SCE_CONF_PARAMETER fdf6e6 StyleSetBackground SCE_CONF_STRING fdf6e6 StyleSetBackground SCE_CONF_OPERATOR fdf6e6 StyleSetBackground SCE_CONF_IP fdf6e6 StyleSetBackground SCE_CONF_DIRECTIVE fdf6e6 ## yaml style text/x-yaml include text/plain StyleSetForeground SCE_YAML_DEFAULT 859900 StyleSetForeground SCE_YAML_COMMENT 586e75 StyleSetForeground SCE_YAML_IDENTIFIER 268bd2 StyleSetBold SCE_YAML_IDENTIFIER 1 StyleSetForeground SCE_YAML_KEYWORD 6c71c4 StyleSetForeground SCE_YAML_NUMBER dc322f StyleSetForeground SCE_YAML_REFERENCE 2aa198 StyleSetForeground SCE_YAML_DOCUMENT 859900 StyleSetBackground SCE_YAML_DOCUMENT eee8d5 StyleSetBold SCE_YAML_DOCUMENT 1 StyleSetEOLFilled SCE_YAML_DOCUMENT 1 StyleSetForeground SCE_YAML_TEXT 333366 StyleSetForeground SCE_YAML_ERROR 859900 StyleSetBackground SCE_YAML_ERROR eee8d5 StyleSetBold SCE_YAML_ERROR 1 StyleSetEOLFilled SCE_YAML_ERROR 1 StyleSetBackground SCE_YAML_DEFAULT fdf6e6 StyleSetBackground SCE_YAML_COMMENT fdf6e6 StyleSetBackground SCE_YAML_IDENTIFIER fdf6e6 StyleSetBackground SCE_YAML_KEYWORD fdf6e6 StyleSetBackground SCE_YAML_NUMBER fdf6e6 StyleSetBackground SCE_YAML_REFERENCE fdf6e6 StyleSetBackground SCE_YAML_TEXT fdf6e6 StyleSetBackground SCE_YAML_OPERATOR fdf6e6 style text/x-csrc include text/plain StyleSetForeground SCE_C_DEFAULT 657b83 StyleSetBackground SCE_C_DEFAULT fdf6e6 StyleSetForeground SCE_C_COMMENT 586e75 StyleSetBackground SCE_C_COMMENT fdf6e6 StyleSetForeground SCE_C_COMMENTLINE 586e75 StyleSetBackground SCE_C_COMMENTLINE fdf6e6 StyleSetForeground SCE_C_COMMENTDOC 586e75 StyleSetBackground SCE_C_COMMENTDOC fdf6e6 StyleSetForeground SCE_C_NUMBER 2aa198 StyleSetBackground SCE_C_NUMBER fdf6e6 StyleSetForeground SCE_C_WORD 6c71c4 StyleSetBackground SCE_C_WORD fdf6e6 StyleSetBold SCE_C_WORD 1 StyleSetForeground SCE_C_STRING ff7f00 StyleSetBackground SCE_C_STRING fdf6e6 StyleSetForeground SCE_C_CHARACTER 6c71c4 StyleSetBackground SCE_C_CHARACTER fdf6e6 StyleSetForeground SCE_C_UUID 6c71c4 StyleSetBackground SCE_C_UUID fdf6e6 StyleSetForeground SCE_C_PREPROCESSOR 93a1a1 StyleSetBackground SCE_C_PREPROCESSOR fdf6e6 StyleSetBold SCE_C_PREPROCESSOR 1 StyleSetForeground SCE_C_OPERATOR 268bd2 StyleSetBackground SCE_C_OPERATOR fdf6e6 StyleSetForeground SCE_C_IDENTIFIER 859900 StyleSetBackground SCE_C_IDENTIFIER fdf6e6 StyleSetForeground SCE_C_STRINGEOL dc322f StyleSetBackground SCE_C_STRINGEOL fdf6e6 StyleSetForeground SCE_C_VERBATIM 6c71c4 StyleSetBackground SCE_C_VERBATIM fdf6e6 StyleSetForeground SCE_C_REGEX ff007f StyleSetBackground SCE_C_REGEX fdf6e6 StyleSetForeground SCE_C_COMMENTLINEDOC 586e75 StyleSetBackground SCE_C_COMMENTLINEDOC fdf6e6 StyleSetForeground SCE_C_WORD2 6c71c4 StyleSetBackground SCE_C_WORD2 fdf6e6 StyleSetBold SCE_C_WORD2 1 StyleSetForeground SCE_C_COMMENTDOCKEYWORD 657b83 StyleSetBackground SCE_C_COMMENTDOCKEYWORD fdf6e6 StyleSetForeground SCE_C_COMMENTDOCKEYWORDERROR 657b83 StyleSetBackground SCE_C_COMMENTDOCKEYWORDERROR fdf6e6 StyleSetForeground SCE_C_GLOBALCLASS 6c71c4 StyleSetBackground SCE_C_GLOBALCLASS fdf6e6 # text/x-perlxs # surely this should be rolled up to text/x-csrc and included by cpp and perlxs ? style text/x-perlxs include text/x-csrc style text/x-cpp include text/x-csrc # # text/html style text/html include text/plain StyleSetBackground SCE_H_DEFAULT fdf6e6 StyleSetBackground SCE_H_TAG fdf6e6 StyleSetBackground SCE_H_TAGUNKNOWN fdf6e6 StyleSetBackground SCE_H_ATTRIBUTE fdf6e6 StyleSetBackground SCE_H_ATTRIBUTEUNKNOWN fdf6e6 StyleSetBackground SCE_H_NUMBER fdf6e6 StyleSetBackground SCE_H_DOUBLESTRING fdf6e6 StyleSetBackground SCE_H_SINGLESTRING fdf6e6 StyleSetBackground SCE_H_OTHER fdf6e6 StyleSetBackground SCE_H_COMMENT fdf6e6 StyleSetBackground SCE_H_ENTITY fdf6e6 StyleSetForeground SCE_H_DEFAULT 93a1a1 StyleSetForeground SCE_H_TAG 586e75 StyleSetForeground SCE_H_TAGUNKNOWN dc322f StyleSetForeground SCE_H_ATTRIBUTE 268bd2 StyleSetForeground SCE_H_ATTRIBUTEUNKNOWN dc322f StyleSetForeground SCE_H_NUMBER d33682 StyleSetForeground SCE_H_DOUBLESTRING 6c71c4 StyleSetForeground SCE_H_SINGLESTRING 2aa198 StyleSetForeground SCE_H_OTHER b58900 StyleSetForeground SCE_H_COMMENT 657b83 StyleSetItalic SCE_H_COMMENT 1 StyleSetForeground SCE_H_ENTITY 859900 StyleSetBackground SCE_H_TAGEND fdf6e6 StyleSetBackground SCE_H_XMLSTART fdf6e6 StyleSetBackground SCE_H_XMLEND fdf6e6 StyleSetBackground SCE_H_SCRIPT fdf6e6 StyleSetBackground SCE_H_ASP fdf6e6 StyleSetBackground SCE_H_ASPAT fdf6e6 StyleSetBackground SCE_H_CDATA eee8d5 StyleSetEOLFilled SCE_H_CDATA 1 StyleSetBackground SCE_H_QUESTION fdf6e6 StyleSetForeground SCE_H_TAGEND 586e75 StyleSetForeground SCE_H_XMLSTART cb4b16 StyleSetForeground SCE_H_XMLEND cb4b16 StyleSetForeground SCE_H_SCRIPT d33682 #StyleSetForeground SCE_H_ASP 15 #StyleSetForeground SCE_H_ASPAT 16 StyleSetForeground SCE_H_CDATA d33682 StyleSetForeground SCE_H_QUESTION 859900 StyleSetBackground SCE_H_VALUE eee8d5 StyleSetBackground SCE_H_XCCOMMENT fdf6e6 #// SGML StyleSetBackground SCE_H_SGML_DEFAULT eee8d5 StyleSetBackground SCE_H_SGML_COMMAND eee8d5 StyleSetBackground SCE_H_SGML_1ST_PARAM eee8d5 StyleSetBackground SCE_H_SGML_DOUBLESTRING eee8d5 StyleSetBackground SCE_H_SGML_SIMPLESTRING eee8d5 StyleSetBackground SCE_H_SGML_ERROR eee8d5 StyleSetBackground SCE_H_SGML_SPECIAL eee8d5 StyleSetBackground SCE_H_SGML_ENTITY eee8d5 StyleSetBackground SCE_H_SGML_COMMENT eee8d5 StyleSetBackground SCE_H_SGML_1ST_PARAM_COMMENT eee8d5 StyleSetBackground SCE_H_SGML_BLOCK_DEFAULT eee8d5 ## StyleSetForeground SCE_H_SGML_DEFAULT d33682 StyleSetForeground SCE_H_SGML_COMMAND 859900 StyleSetForeground SCE_H_SGML_1ST_PARAM cb4b16 StyleSetForeground SCE_H_SGML_DOUBLESTRING 6c71c4 StyleSetForeground SCE_H_SGML_SIMPLESTRING fdf6e6 StyleSetForeground SCE_H_SGML_ERROR cb4b16 StyleSetForeground SCE_H_SGML_SPECIAL 859900 StyleSetForeground SCE_H_SGML_ENTITY 859900 StyleSetForeground SCE_H_SGML_COMMENT 657b83 StyleSetItalic SCE_H_SGML_COMMENT 1 StyleSetForeground SCE_H_SGML_1ST_PARAM_COMMENT 93a1a1 StyleSetForeground SCE_H_SGML_BLOCK_DEFAULT d33682 #// Embedded Javascript Backgrounds StyleSetBackground SCE_HJ_START eee8d5 StyleSetBackground SCE_HJ_DEFAULT eee8d5 StyleSetBackground SCE_HJ_COMMENT eee8d5 StyleSetBackground SCE_HJ_COMMENTLINE eee8d5 StyleSetBackground SCE_HJ_COMMENTDOC eee8d5 StyleSetBackground SCE_HJ_NUMBER eee8d5 StyleSetBackground SCE_HJ_WORD eee8d5 StyleSetBackground SCE_HJ_KEYWORD eee8d5 StyleSetBackground SCE_HJ_DOUBLESTRING eee8d5 StyleSetBackground SCE_HJ_SINGLESTRING eee8d5 StyleSetBackground SCE_HJ_SYMBOLS eee8d5 StyleSetBackground SCE_HJ_STRINGEOL eee8d5 StyleSetBackground SCE_HJ_REGEX eee8d5 StyleSetEOLFilled SCE_HJ_START 1 StyleSetEOLFilled SCE_HJ_DEFAULT 1 StyleSetEOLFilled SCE_HJ_COMMENT 1 StyleSetEOLFilled SCE_HJ_COMMENTLINE 1 StyleSetEOLFilled SCE_HJ_COMMENTDOC 1 StyleSetEOLFilled SCE_HJ_NUMBER 1 StyleSetEOLFilled SCE_HJ_WORD 1 StyleSetEOLFilled SCE_HJ_KEYWORD 1 StyleSetEOLFilled SCE_HJ_DOUBLESTRING 1 StyleSetEOLFilled SCE_HJ_SINGLESTRING 1 StyleSetEOLFilled SCE_HJ_SYMBOLS 1 StyleSetEOLFilled SCE_HJ_STRINGEOL 1 StyleSetEOLFilled SCE_HJ_REGEX 1 #// Embedded Javascript StyleSetForeground SCE_HJ_START 586e75 StyleSetForeground SCE_HJ_DEFAULT 93a1a1 StyleSetForeground SCE_HJ_COMMENT 586e75 StyleSetForeground SCE_HJ_COMMENTLINE 586e75 StyleSetForeground SCE_HJ_COMMENTDOC 657b83 StyleSetForeground SCE_HJ_NUMBER cb4b16 StyleSetForeground SCE_HJ_WORD 859900 StyleSetForeground SCE_HJ_KEYWORD 268bd2 StyleSetForeground SCE_HJ_DOUBLESTRING cb4b16 StyleSetForeground SCE_HJ_SINGLESTRING b58900 StyleSetForeground SCE_HJ_SYMBOLS d33682 StyleSetForeground SCE_HJ_STRINGEOL 6c71c4 StyleSetForeground SCE_HJ_REGEX d33682 # text/x-patch # style text/x-patch include text/plain StyleSetForeground SCE_DIFF_DEFAULT 657b83 StyleSetForeground SCE_DIFF_COMMENT 586e75 StyleSetBold SCE_DIFF_COMMENT 1 StyleSetItalic SCE_DIFF_COMMENT 1 StyleSetEOLFilled SCE_DIFF_COMMENT 1 StyleSetUnderline SCE_DIFF_COMMENT 1 StyleSetForeground SCE_DIFF_COMMAND 93a1a1 StyleSetForeground SCE_DIFF_HEADER 859900 StyleSetForeground SCE_DIFF_POSITION 268bd2 StyleSetForeground SCE_DIFF_DELETED dc322f StyleSetForeground SCE_DIFF_ADDED 2aa198 #StyleSetForeground SCE_DIFF_CHANGED 6c71c4 StyleSetBackground SCE_DIFF_DEFAULT fdf6e6 StyleSetBackground SCE_DIFF_COMMENT fdf6e6 StyleSetBackground SCE_DIFF_COMMAND fdf6e6 StyleSetBackground SCE_DIFF_HEADER fdf6e6 StyleSetBackground SCE_DIFF_POSITION fdf6e6 StyleSetBackground SCE_DIFF_DELETED fdf6e6 StyleSetBackground SCE_DIFF_ADDED fdf6e6 #StyleSetBackground SCE_DIFF_CHANGED fdf6e6 # text/x-makefile # style text/x-makefile include text/plain StyleSetForeground SCE_MAKE_DEFAULT 657b83 StyleSetForeground SCE_MAKE_COMMENT 586e75 StyleSetForeground SCE_MAKE_PREPROCESSOR 93a1a1 StyleSetForeground SCE_MAKE_IDENTIFIER 859900 StyleSetForeground SCE_MAKE_OPERATOR 268bd2 StyleSetForeground SCE_MAKE_TARGET dc322f StyleSetForeground SCE_MAKE_IDEOL 2aa198 StyleSetBackground SCE_MAKE_DEFAULT fdf6e6 StyleSetBackground SCE_MAKE_COMMENT fdf6e6 StyleSetBackground SCE_MAKE_PREPROCESSOR fdf6e6 StyleSetBackground SCE_MAKE_IDENTIFIER fdf6e6 StyleSetBackground SCE_MAKE_OPERATOR fdf6e6 StyleSetBackground SCE_MAKE_TARGET fdf6e6 StyleSetBackground SCE_MAKE_IDEOL fdf6e6 # # text/css1 # style text/css include text/plain StyleSetForeground SCE_CSS_DEFAULT 657b83 StyleSetForeground SCE_CSS_TAG 6c71c4 StyleSetBold SCE_CSS_TAG 1 StyleSetForeground SCE_CSS_CLASS 268bd2 StyleSetForeground SCE_CSS_PSEUDOCLASS 839496 StyleSetForeground SCE_CSS_UNKNOWN_PSEUDOCLASS 839496 StyleSetBold SCE_CSS_UNKNOWN_PSEUDOCLASS 1 StyleSetForeground SCE_CSS_OPERATOR cb4b16 StyleSetBold SCE_CSS_OPERATOR 1 StyleSetForeground SCE_CSS_IDENTIFIER d33682 StyleSetForeground SCE_CSS_UNKNOWN_IDENTIFIER 839496 StyleSetBold SCE_CSS_UNKNOWN_IDENTIFIER 1 StyleSetForeground SCE_CSS_VALUE 859900 StyleSetForeground SCE_CSS_COMMENT 586e75 StyleSetForeground SCE_CSS_ID 2aa198 StyleSetBold SCE_CSS_ID 1 StyleSetForeground SCE_CSS_IMPORTANT 839496 StyleSetForeground SCE_CSS_DIRECTIVE 839496 StyleSetForeground SCE_CSS_DOUBLESTRING 839496 StyleSetForeground SCE_CSS_SINGLESTRING 839496 StyleSetForeground SCE_CSS_IDENTIFIER2 839496 StyleSetForeground SCE_CSS_ATTRIBUTE 839496 #StyleSetForeground SCE_CSS_IDENTIFIER3 17 #StyleSetForeground SCE_CSS_PSEUDOELEMENT 18 #StyleSetForeground SCE_CSS_EXTENDED_IDENTIFIER 19 #StyleSetForeground SCE_CSS_EXTENDED_PSEUDOCLASS 20 #StyleSetForeground SCE_CSS_EXTENDED_PSEUDOELEMENT 21 StyleSetBackground SCE_CSS_DEFAULT fdf6e6 StyleSetBackground SCE_CSS_TAG fdf6e6 StyleSetBackground SCE_CSS_CLASS fdf6e6 StyleSetBackground SCE_CSS_PSEUDOCLASS fdf6e6 StyleSetBackground SCE_CSS_UNKNOWN_PSEUDOCLASS fdf6e6 StyleSetBackground SCE_CSS_OPERATOR fdf6e6 StyleSetBackground SCE_CSS_IDENTIFIER fdf6e6 StyleSetBackground SCE_CSS_UNKNOWN_IDENTIFIER fdf6e6 StyleSetBackground SCE_CSS_VALUE fdf6e6 StyleSetBackground SCE_CSS_COMMENT fdf6e6 StyleSetBackground SCE_CSS_ID fdf6e6 StyleSetBackground SCE_CSS_IMPORTANT fdf6e6 StyleSetBackground SCE_CSS_DIRECTIVE fdf6e6 StyleSetBackground SCE_CSS_DOUBLESTRING fdf6e6 StyleSetBackground SCE_CSS_SINGLESTRING fdf6e6 StyleSetBackground SCE_CSS_IDENTIFIER2 fdf6e6 StyleSetBackground SCE_CSS_ATTRIBUTE fdf6e6 #StyleSetBackground SCE_CSS_IDENTIFIER3 fdf6e6 #StyleSetBackground SCE_CSS_PSEUDOELEMENT fdf6e6 #StyleSetBackground SCE_CSS_EXTENDED_IDENTIFIER fdf6e6 #StyleSetBackground SCE_CSS_EXTENDED_PSEUDOCLASS fdf6e6 #StyleSetBackground SCE_CSS_EXTENDED_PSEUDOELEMENT fdf6e6 style text/x-sql include text/plain StyleSetForeground SCE_SQL_DEFAULT 657b83 StyleSetForeground SCE_SQL_COMMENT 586e75 StyleSetForeground SCE_SQL_COMMENTLINE 586e75 StyleSetForeground SCE_SQL_COMMENTDOC 586e75 StyleSetForeground SCE_SQL_NUMBER cb4b16 StyleSetForeground SCE_SQL_WORD 859900 StyleSetForeground SCE_SQL_STRING 2aa198 StyleSetForeground SCE_SQL_CHARACTER 6c71c4 StyleSetForeground SCE_SQL_SQLPLUS 657b83 StyleSetForeground SCE_SQL_SQLPLUS_PROMPT 657b83 StyleSetForeground SCE_SQL_OPERATOR 268bd2 StyleSetForeground SCE_SQL_IDENTIFIER 839496 StyleSetForeground SCE_SQL_SQLPLUS_COMMENT 586e75 StyleSetForeground SCE_SQL_COMMENTLINEDOC 586e75 StyleSetForeground SCE_SQL_WORD2 839496 StyleSetForeground SCE_SQL_COMMENTDOCKEYWORD 586e75 StyleSetForeground SCE_SQL_COMMENTDOCKEYWORDERROR dc322f #StyleSetForeground SCE_SQL_USER1 #StyleSetForeground SCE_SQL_USER2 #StyleSetForeground SCE_SQL_USER3 #StyleSetForeground SCE_SQL_USER4 StyleSetForeground SCE_SQL_QUOTEDIDENTIFIER 2aa198 StyleSetBackground SCE_SQL_DEFAULT fdf6e6 StyleSetBackground SCE_SQL_COMMENT fdf6e6 StyleSetBackground SCE_SQL_COMMENTLINE fdf6e6 StyleSetBackground SCE_SQL_COMMENTDOC fdf6e6 StyleSetBackground SCE_SQL_NUMBER fdf6e6 StyleSetBackground SCE_SQL_WORD fdf6e6 StyleSetBackground SCE_SQL_STRING fdf6e6 StyleSetBackground SCE_SQL_CHARACTER fdf6e6 StyleSetBackground SCE_SQL_SQLPLUS fdf6e6 StyleSetBackground SCE_SQL_SQLPLUS_PROMPT fdf6e6 StyleSetBackground SCE_SQL_OPERATOR fdf6e6 StyleSetBackground SCE_SQL_IDENTIFIER fdf6e6 StyleSetBackground SCE_SQL_SQLPLUS_COMMENT fdf6e6 StyleSetBackground SCE_SQL_COMMENTLINEDOC fdf6e6 StyleSetBackground SCE_SQL_WORD2 fdf6e6 StyleSetBackground SCE_SQL_COMMENTDOCKEYWORD fdf6e6 StyleSetBackground SCE_SQL_COMMENTDOCKEYWORDERROR fdf6e6 StyleSetBackground SCE_SQL_USER1 fdf6e6 StyleSetBackground SCE_SQL_USER2 fdf6e6 StyleSetBackground SCE_SQL_USER3 fdf6e6 StyleSetBackground SCE_SQL_USER4 fdf6e6 StyleSetBackground SCE_SQL_QUOTEDIDENTIFIER fdf6e6 # POVRAY Persistence of Vision Raytracer style text/x-povray include text/plain StyleAllBackground fdf6e6 StyleSetForeground SCE_POV_DEFAULT 657b83 StyleSetForeground SCE_POV_COMMENT 839496 StyleSetForeground SCE_POV_COMMENTLINE 839496 StyleSetForeground SCE_POV_NUMBER cb4b16 StyleSetForeground SCE_POV_OPERATOR 268bd2 StyleSetForeground SCE_POV_IDENTIFIER 6c71c4 StyleSetForeground SCE_POV_STRING 2aa198 StyleSetForeground SCE_POV_STRINGEOL 2aa198 StyleSetForeground SCE_POV_DIRECTIVE 859900 StyleSetBold SCE_POV_DIRECTIVE 1 StyleSetForeground SCE_POV_BADDIRECTIVE dc322f StyleSetForeground SCE_POV_WORD2 859900 # object structure StyleSetForeground SCE_POV_WORD3 6c71c4 # patterns StyleSetForeground SCE_POV_WORD4 859900 # transforms StyleSetItalic SCE_POV_WORD4 1 StyleSetForeground SCE_POV_WORD5 d33682 # modifiers StyleSetForeground SCE_POV_WORD6 b58900 # functions StyleSetBold SCE_POV_WORD6 1 StyleSetForeground SCE_POV_WORD7 d33682 # reserved identifiers StyleSetForeground SCE_POV_WORD8 d33682 # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/share/themes/evening.txt0000644000175000017500000001070212074315403015723 0ustar petepetename en-gb Evening # Padre Internal Editor Colours style padre StyleSetForeground PADRE_BLACK 000000 StyleSetForeground PADRE_BLUE 000099 StyleSetForeground PADRE_RED 990000 StyleSetForeground PADRE_GREEN 00aa00 StyleSetForeground PADRE_MAGENTA 8b008b StyleSetForeground PADRE_ORANGE ff8228 StyleSetForeground PADRE_CRIMSON dc143c StyleSetForeground PADRE_BROWN a52a2a StyleSetForeground PADRE_DIFF_HEADER 000000 StyleSetBackground PADRE_DIFF_HEADER eeee22 StyleSetForeground PADRE_DIFF_DELETED 000000 StyleSetBackground PADRE_DIFF_DELETED ff8080 StyleSetForeground PADRE_DIFF_ADDED 000000 StyleSetBackground PADRE_DIFF_ADDED 80ff80 StyleSetForeground PADRE_WARNING af8000 StyleSetBackground PADRE_WARNING fffff0 StyleSetForeground PADRE_ERROR af0000 StyleSetBackground PADRE_ERROR fff0f0 # Code folding margin SetFoldMarginColour 1 111111 SetFoldMarginHiColour 1 111111 MarkerSetForeground SC_MARKNUM_FOLDEREND 111111 MarkerSetBackground SC_MARKNUM_FOLDEREND 7f7f7f MarkerSetForeground SC_MARKNUM_FOLDEROPENMID 111111 MarkerSetBackground SC_MARKNUM_FOLDEROPENMID 7f7f7f MarkerSetForeground SC_MARKNUM_FOLDERMIDTAIL 7f7f7f MarkerSetBackground SC_MARKNUM_FOLDERMIDTAIL 7f7f7f MarkerSetForeground SC_MARKNUM_FOLDERTAIL 7f7f7f MarkerSetBackground SC_MARKNUM_FOLDERTAIL 7f7f7f MarkerSetForeground SC_MARKNUM_FOLDERSUB 7f7f7f MarkerSetBackground SC_MARKNUM_FOLDERSUB 7f7f7f MarkerSetForeground SC_MARKNUM_FOLDER 7f7f7f MarkerSetBackground SC_MARKNUM_FOLDER 111111 MarkerSetForeground SC_MARKNUM_FOLDEROPEN 111111 MarkerSetBackground SC_MARKNUM_FOLDEROPEN 7f7f7f style text/plain include padre SetCaretForeground aaaaaa SetCaretLineBackground 222222 StyleAllBackground 000000 StyleSetForeground 0 00007f StyleSetBackground STYLE_DEFAULT 000000 StyleSetForeground STYLE_DEFAULT 00007f StyleSetBackground STYLE_LINENUMBER 111111 StyleSetForeground STYLE_LINENUMBER 7f7f7f StyleSetForeground STYLE_BRACELIGHT ffff00 StyleSetForeground STYLE_BRACEBAD ff0000 style application/x-perl include text/plain StyleSetForeground SCE_PL_DEFAULT 66cccc StyleSetForeground SCE_PL_ERROR ff0000 StyleSetForeground SCE_PL_COMMENTLINE 66ff99 StyleSetForeground SCE_PL_POD 66ff99 StyleSetForeground SCE_PL_POD_VERB 66ff99 StyleSetForeground SCE_PL_NUMBER ff9966 StyleSetForeground SCE_PL_WORD 00ff00 StyleSetBold SCE_PL_WORD 1 StyleSetForeground SCE_PL_STRING 66cccc StyleSetForeground SCE_PL_CHARACTER 77ccbb StyleSetForeground SCE_PL_PUNCTUATION ffcccc StyleSetForeground SCE_PL_PREPROCESSOR c0c0c0 StyleSetForeground SCE_PL_OPERATOR ffcccc StyleSetForeground SCE_PL_IDENTIFIER ffff00 StyleSetForeground SCE_PL_SCALAR bbbbff StyleSetForeground SCE_PL_ARRAY 33ffff StyleSetForeground SCE_PL_HASH 66cccc StyleSetForeground SCE_PL_SYMBOLTABLE 00ff00 StyleSetForeground SCE_PL_REGEX ffcc99 StyleSetForeground SCE_PL_REGSUBST ffdd99 StyleSetForeground SCE_PL_LONGQUOTE ff7f00 StyleSetForeground SCE_PL_BACKTICKS ffaa00 StyleSetForeground SCE_PL_DATASECTION 00cccc StyleSetForeground SCE_PL_HERE_DELIM ffddaa StyleSetForeground SCE_PL_HERE_Q ffcc99 StyleSetForeground SCE_PL_HERE_QQ ff7f00 StyleSetForeground SCE_PL_HERE_QX ffaa00 StyleSetForeground SCE_PL_STRING_Q 66cccc StyleSetForeground SCE_PL_STRING_QQ ff7f00 StyleSetForeground SCE_PL_STRING_QX ffaa00 StyleSetForeground SCE_PL_STRING_QR ffcc99 StyleSetForeground SCE_PL_STRING_QW 66cccc # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/share/themes/night.txt0000644000175000017500000001115212074315403015401 0ustar petepetename en-gb Night name de Nacht # Padre Internal Editor Colours style padre StyleSetForeground PADRE_BLACK 000000 StyleSetForeground PADRE_BLUE 000099 StyleSetForeground PADRE_RED 990000 StyleSetForeground PADRE_GREEN 00aa00 StyleSetForeground PADRE_MAGENTA 8b008b StyleSetForeground PADRE_ORANGE ff8228 StyleSetForeground PADRE_CRIMSON dc143c StyleSetForeground PADRE_BROWN a52a2a StyleSetForeground PADRE_DIFF_HEADER 000000 StyleSetBackground PADRE_DIFF_HEADER eeee22 StyleSetForeground PADRE_DIFF_DELETED 000000 StyleSetBackground PADRE_DIFF_DELETED ff8080 StyleSetForeground PADRE_DIFF_ADDED 000000 StyleSetBackground PADRE_DIFF_ADDED 80ff80 StyleSetForeground PADRE_WARNING af8000 StyleSetBackground PADRE_WARNING fffff0 StyleSetForeground PADRE_ERROR af0000 StyleSetBackground PADRE_ERROR fff0f0 # Code folding margin SetFoldMarginColour 1 111111 SetFoldMarginHiColour 1 111111 MarkerSetForeground SC_MARKNUM_FOLDEREND 111111 MarkerSetBackground SC_MARKNUM_FOLDEREND fce94f MarkerSetForeground SC_MARKNUM_FOLDEROPENMID 111111 MarkerSetBackground SC_MARKNUM_FOLDEROPENMID fce94f MarkerSetForeground SC_MARKNUM_FOLDERMIDTAIL fce94f MarkerSetBackground SC_MARKNUM_FOLDERMIDTAIL fce94f MarkerSetForeground SC_MARKNUM_FOLDERTAIL fce94f MarkerSetBackground SC_MARKNUM_FOLDERTAIL fce94f MarkerSetForeground SC_MARKNUM_FOLDERSUB fce94f MarkerSetBackground SC_MARKNUM_FOLDERSUB fce94f MarkerSetForeground SC_MARKNUM_FOLDER fce94f MarkerSetBackground SC_MARKNUM_FOLDER 111111 MarkerSetForeground SC_MARKNUM_FOLDEROPEN 111111 MarkerSetBackground SC_MARKNUM_FOLDEROPEN fce94f style text/plain include padre SetCaretForeground aaaaaa SetCaretLineBackground 111111 StyleAllBackground 000000 StyleSetForeground 0 0000ff StyleSetBackground STYLE_DEFAULT 000000 StyleSetForeground STYLE_DEFAULT 00007f StyleSetBackground STYLE_LINENUMBER 111111 StyleSetForeground STYLE_LINENUMBER fce94f StyleSetForeground STYLE_BRACELIGHT 00ff00 StyleSetBackground STYLE_BRACELIGHT 000000 StyleSetForeground STYLE_BRACEBAD ff0000 StyleSetBackground STYLE_BRACEBAD 000000 style application/x-perl include text/plain StyleSetForeground SCE_PL_DEFAULT ffffff StyleSetForeground SCE_PL_ERROR ff0000 StyleSetForeground SCE_PL_COMMENTLINE 007f00 StyleSetForeground SCE_PL_POD 7f7f7f StyleSetForeground SCE_PL_POD_VERB 7f7f7f StyleSetForeground SCE_PL_NUMBER 007f7f StyleSetForeground SCE_PL_WORD 00007f StyleSetBold SCE_PL_WORD 1 StyleSetForeground SCE_PL_STRING ff7f00 StyleSetForeground SCE_PL_CHARACTER 7f007f StyleSetForeground SCE_PL_PUNCTUATION ffffff StyleSetBackground SCE_PL_PUNCTUATION 000000 StyleSetForeground SCE_PL_PREPROCESSOR 7f7f7f StyleSetForeground SCE_PL_OPERATOR 00007f StyleSetForeground SCE_PL_IDENTIFIER 0000ff StyleSetForeground SCE_PL_SCALAR 7f007f StyleSetForeground SCE_PL_ARRAY 4080ff StyleSetForeground SCE_PL_HASH 0080ff StyleSetForeground SCE_PL_SYMBOLTABLE 00ff00 StyleSetForeground SCE_PL_REGEX ff007f StyleSetForeground SCE_PL_REGSUBST 7f7f00 StyleSetForeground SCE_PL_LONGQUOTE ff7f00 StyleSetForeground SCE_PL_BACKTICKS ffaa00 StyleSetForeground SCE_PL_DATASECTION ff7f00 StyleSetForeground SCE_PL_HERE_DELIM ff7f00 StyleSetForeground SCE_PL_HERE_Q 7f007f StyleSetForeground SCE_PL_HERE_QQ ff7f00 StyleSetForeground SCE_PL_HERE_QX ffaa00 StyleSetForeground SCE_PL_STRING_Q 7f007f StyleSetForeground SCE_PL_STRING_QQ ff7f00 StyleSetForeground SCE_PL_STRING_QX ffaa00 StyleSetForeground SCE_PL_STRING_QR ff007f StyleSetForeground SCE_PL_STRING_QW 7f007f # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/share/templates/0000755000175000017500000000000012237340740014243 5ustar petepetePadre-1.00/share/templates/perl5/0000755000175000017500000000000012237340741015273 5ustar petepetePadre-1.00/share/templates/perl5/module_pm.tt0000644000175000017500000000055412030703005017614 0ustar petepetepackage [% module %]; [% IF style.use_perl %] [% style.use_perl %] [% END %] [% IF style.use_strict %] use strict; [% END %] [% IF style.use_warnings %] use warnings; [% END %] [% IF style.version_line %] [% style.version_line %] [% ELSE %] our $VERSION = '0.01'; [% END %] sub new { my $class = shift; my $self = bless { @_ }, $class; return $self; } 1; Padre-1.00/share/templates/perl5/test_t.tt0000644000175000017500000000025712030736255017152 0ustar petepete#![% style.bin_perl %] [% IF style.use_strict %] use strict; [% END %] [% IF style.use_warnings %] use warnings; [% END %] use Test::More tests => 1; ok( 0, 'Dummy Test' ); Padre-1.00/share/templates/perl5/module_install_pl.tt0000644000175000017500000000021111705557200021343 0ustar petepeteuse inc::Module::Install 1.01; all_from '[% path %]'; requires_from '[% path %]'; test_requires 'Test::More' => '0.42'; WriteAll; Padre-1.00/share/templates/perl5/01_compile_t.tt0000644000175000017500000000035312030736255020120 0ustar petepete#![% style.bin_perl %] [% IF style.use_perl %] [% style.use_perl %] [% END %] [% IF style.use_strict %] use strict; [% END %] [% IF style.use_warnings %] use warnings; [% END %] use Test::More tests => 1; require_ok('[% module %]'); Padre-1.00/share/templates/perl5/script_pl.tt0000644000175000017500000000036312030703005017630 0ustar petepete#![% style.bin_perl %] [% IF style.use_perl %] [% style.use_perl %] [% END %] [% IF style.use_strict %] use strict; [% END %] [% IF style.use_warnings %] use warnings; [% END %] [% IF style.version_line %] [% style.version_line %] [% END %] Padre-1.00/share/templates/perl5/module_install_dsl_pl.tt0000644000175000017500000000016511705557200022215 0ustar petepeteuse inc::Module::Install::DSL 1.01; all_from [% path %] requires_from [% path %] test_requires Test::More 0.42 Padre-1.00/share/templates/perl6/0000755000175000017500000000000012237340740015273 5ustar petepetePadre-1.00/share/templates/perl6/script_p6.tt0000644000175000017500000000006211705557200017553 0ustar petepeteuse v6; =begin pod New Perl 6 script =end pod Padre-1.00/eg/0000755000175000017500000000000012237340741011537 5ustar petepetePadre-1.00/eg/hello.html0000644000175000017500000000065111644524675013545 0ustar petepete <?php echo "Hello, World!"; ?>
<% ' Grab current time from Now() function. Dim currentTime currentTime = Now() %> The time, in 24-hour format, is <%=Hour(currentTime)%>:<%=Minute(currentTime)%>:<%=Second(currentTime)%>.
Padre-1.00/eg/ruby/0000755000175000017500000000000012237340741012520 5ustar petepetePadre-1.00/eg/ruby/add.rb0000644000175000017500000000004111231543054013563 0ustar petepete a = 19 b = 23 c = a + b puts c Padre-1.00/eg/ruby/hello_world_rb0000644000175000017500000000004411442511104015424 0ustar petepete#!/usr/bin/ruby puts 'Hello World' Padre-1.00/eg/ruby/hello_world.rb0000644000175000017500000000002411231543054015346 0ustar petepete puts 'Hello World' Padre-1.00/eg/perl5/0000755000175000017500000000000012237340741012566 5ustar petepetePadre-1.00/eg/perl5/sleep.pl0000644000175000017500000000025612137733173014242 0ustar petepete#!/usr/bin/perl use 5.008; use strict; use warnings; $| = 1; my $n = 10; print "First line\n"; print "Going to sleep $n seconds\n"; sleep $n; print "Finished sleeping\n"; Padre-1.00/eg/perl5/shell.pl0000644000175000017500000000735612137733173014251 0ustar petepetepackage main; use 5.008; use strict; use warnings; # use Demo::App; my $app = Demo::App->new; $app->run; package Shell::App; use strict; use warnings; use base 'Wx::App'; $| = 1; our $frame; sub OnInit { my ($self) = @_; $frame = Shell::App::Frame->new($self); $frame->Show( 1 ); } sub new { my $class = shift; my $self = $class->SUPER::new(@_); return $self; } sub run { my ($self) = @_; $self->setup; $self->MainLoop; } sub setup { } sub commands { my ($self, @commands) = @_; $self->{commands}->{$_}++ for @commands; return; } sub args { my ($self) = @_; # wantarray? return $self->{args}; } package Shell::App::Frame; use strict; use warnings; use Wx qw(:everything); use base 'Wx::Frame'; my ($out, $in); sub new { my ($class, $app, $windows) = @_; $windows = 1 if not defined $windows; die if $windows !~ /^[123]$/; my $self = $class->SUPER::new( undef, -1, 'Shell::App', wxDefaultPosition, [600, 600], ); $self->{_app} = $app; $self->{prompt} = '>'; $self->{windows} = $windows; my $main = Wx::SplitterWindow->new( $self, -1, wxDefaultPosition, wxDefaultSize, wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN ); if ($windows == 1) { $out = Wx::TextCtrl->new( $main, -1, '', wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_FULL_REPAINT_ON_RESIZE ); $in = $out; } elsif ($windows == 2) { $out = Wx::TextCtrl->new( $main, -1, '', wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_MULTILINE|wxNO_FULL_REPAINT_ON_RESIZE ); $in = Wx::TextCtrl->new( $main, -1, '', wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER|wxNO_FULL_REPAINT_ON_RESIZE ); Wx::Event::EVT_TEXT_ENTER($self, $in, \&enter); $main->SplitHorizontally( $out, $in, -50 ); } else { die "windows=3 Not implemented yet\n"; } #Wx::Event::EVT_TEXT($in, \&text_changed ); #here is where we can implement command line cleverness? $in->SetFocus; $out->AppendText($self->{prompt}); Wx::Event::EVT_CLOSE( $self, sub { my ( $self, $event ) = @_; $event->Skip; }); return $self; } sub enter { my ($self, $event) = @_; my $output; if ($self->{windows} eq 1) { $output = $self->enter_1($event); } elsif ($self->{windows} eq 2) { $output = $self->enter_2($event); } else { $output = $self->enter_2($event); } return $output; } sub enter_1 { my ($self, $event) = @_; my $cmd_line = $in->GetValue; print $cmd_line; } sub enter_2 { my ($self, $event) = @_; my $cmd_line = $in->GetValue; #process $out->AppendText("$cmd_line\n"); my ($cmd, $args) = split /\s+/, $cmd_line, 2; $self->{_app}->{args} = $args; if ($self->{_app}->{commands}->{$cmd}) { my $output = $self->{_app}->$cmd(); $out->AppendText($output); } else { $out->AppendText("No such command '$cmd'\n"); } $out->AppendText($self->{prompt}); $in->SetValue(''); #$out return; } package Demo::App; use strict; use warnings; use base 'Shell::App'; sub setup { my ($self) = @_; $self->commands(qw( ls )); return; } sub ls { my ($self) = @_; my $dir = $self->args; $dir = '.' if not defined $dir; #return "running ls\n"; my $res = ''; if (opendir my $dh, $dir) { my @items = readdir $dh; foreach my $thing (@items) { $res .= "$thing\n"; } } else { $res = "Could not open '$dir': $!"; } return $res; } Padre-1.00/eg/perl5/perl5.pod0000644000175000017500000000100312137733173014317 0ustar petepete =head1 NAME Some text =head1 VERSION The initial template usually just has: This documentation refers to version 0.0.1 =head1 SYNOPSIS use ; # Brief but working code example(s) here showing the most common usage(s) # This section will be as far as many users bother reading # so make it as educational and exemplary as possible. =head1 DESCRIPTION A full description of the module and its features. May include numerous subsections (i.e. =head2, =head3, etc.) =cut Padre-1.00/eg/perl5/cmd.pl0000644000175000017500000000052312137733173013672 0ustar petepetepackage main; use 5.008; use strict; use warnings; package Module; use strict; use warnings; $| = 1; sub setup { my ($class) = @_; print join ":", caller(); } package main; # use Module; Module->setup; print "Your name please:"; my $name = ; chomp $name; print "Hi $name. How are you?\n"; warn "This is a warning"; Padre-1.00/eg/perl5/stderr.pl0000644000175000017500000000024612137733173014434 0ustar petepete#!/usr/bin/perl use 5.008; use strict; use warnings; $| = 1; print "On STDOUT\n"; print STDERR "On STDERR\n"; print "On STDOUT 2\n"; print STDERR "On STDERR 2\n"; Padre-1.00/eg/perl5/cyrillic_test.pl0000644000175000017500000000037012137733173016000 0ustar petepete#!/usr/bin/perl -w use strict; # This is some cyrillic test, encoded in UTF8 # Това е тестова програма за изпробване на поддръжката # на UTF8 от Падре sub test() { print "Hi!\n"; } test; Padre-1.00/eg/perl5/hello_foo.pl0000644000175000017500000000022612137733173015075 0ustar petepete#!/usr/bin/perl use 5.008; use strict; use warnings; $| = 1; print "What is your name ?"; my $name = ; chomp $name; print "Hello $name!\n"; Padre-1.00/eg/perl5/hello_world.pl0000644000175000017500000000015212137733173015437 0ustar petepete#!/usr/bin/perl use 5.008; use strict; use warnings; $| = 1; print "Hello world\n"; print "More text"; Padre-1.00/eg/syntax_demo.json0000644000175000017500000000030511051645213014755 0ustar petepete{ names : ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"], something_else : 25 }Padre-1.00/eg/hello.pasm0000644000175000017500000000006211102362527013516 0ustar petepete set S0, "Hello PASM world" print S0 end Padre-1.00/eg/README0000644000175000017500000000023611232500724012411 0ustar petepeteThe real examples are in share/examples, they are installed along with the application. Other files, that were mostly used for tests were moved to t/files/ Padre-1.00/eg/python/0000755000175000017500000000000012237340741013060 5ustar petepetePadre-1.00/eg/python/hello_py0000644000175000017500000000006111442511104014601 0ustar petepete#!/usr/bin/env python -c print "Hello, World!" Padre-1.00/eg/ada/0000755000175000017500000000000012237340740012263 5ustar petepetePadre-1.00/eg/ada/helloworld.ada0000644000175000017500000000014311643334625015110 0ustar petepetewith Ada.Text_IO; use Ada.Text_IO; procedure Hello is begin Put_Line("Hello, world!"); end Hello;Padre-1.00/eg/theme/0000755000175000017500000000000012237340740012640 5ustar petepetePadre-1.00/eg/theme/style_perl5.pl0000644000175000017500000000466512074315403015454 0ustar petepete#!/usr/bin/perl use 5.014; use strict; use warnings; # Turn on $OUTPUT_AUTOFLUSH $| = 1; use feature 'unicode_strings'; use diagnostics; use Data::Printer { caller_info => 1, colored => 1, }; use attributes qw(get reftype); # import 'get' and 'reftype' subroutines my $STYLE_DEFAULT = 'text'; my $STYLE_BRACELIGHT; my $STYLE_BRACEBAD; my $SCE_PL_COMMENTLINE; #comment my $SCE_PL_POD; =pod =head1 heading-1 =cut my $SCE_PL_POD_VERB; =pod =over =item * This is a bulleted list. #code is a pod verb my $SCE_PL_POD_VERB; =back =cut my $SCE_PL_NUMBER = 1; my $SCE_PL_WORD; # use my sub for while else print return if chomp shift say 'sample text'; print "sample text\n"; sub function { ... } my $SCE_PL_STRING = "string"; my $SCE_PL_CHARACTER = 'c'; my $SCE_PL_PUNCTUATION; # () [] {} my $SCE_PL_PREPROCESSOR; # not emitted by LexPerl, can we recycle it? my $SCE_PL_OPERATOR; # + - * % ** . =~ x , ++ -- ||= != <= my $SCE_PL_IDENTIFIER; #struct $variable @array %hash my $SCE_PL_SCALAR; my @SCE_PL_ARRAY; $SCE_PL_ARRAY[100] = []; # indexed my %SCE_PL_HASH; $SCE_PL_HASH{keyname} = (); my $SCE_PL_SYMBOLTABLE; *Package::Foo::variable = 'blah'; my $SCE_PL_XLAT = tr/abc/xyz/; my $SCE_PL_REGEX =~ m/ <:name>(pattern) /p; my $SCE_PL_REGSUBST = s/^\s{1}//a; my $SCE_PL_LONGQUOTE; # what? my $SCE_PL_BACKTICKS = `back ticks`; my $SCE_PL_DATASECTION; # see below my $SCE_PL_HERE_DELIM = < * A package for handling partner related activities like * (adding a new partner, updating partner data, removing a * partner) * PLDOC Style */ CREATE OR REPLACE PACKAGE flyingfish IS /** Checking the partner record whether it exists or not. * @param id The ID of the partner we want to check * @return 1 if the partner exists, -1 if it doesn't. * @foo */ FUNCTION check_partner( id IN VARCHAR2 ) RETURN NUMBER; END; / /* comment - multiline more comment and again. */ -- sqlplus-isms? &myvar1=first value &myvar2=second value WHENEVER OSERROR SHUTDOWN; -- double dashed comment -- DML SELECT * FROM mytable WHERE this = :that; SELECT abs(this),HexToRaw('dead') FROM mytable WHERE this = ?; INSERT INTO mytable(that,that) VALUES ( NULL, 10 ); UPDATE mytable SET this = :that; /** PLDOC comments @thing */ REPLACE INTO mytable VALUES (10,"eleven",'singlequoted'); MERGE INTO mytable USING newdata ON mytable.foo = newdata.foo WHEN MATCHED THEN UPDATE SET bar = newdata.bar WHEN NOT MATCHED THEN INSERT newdata ; -- DDL CREATE OR REPLACE TRIGGER xyz_trg BEFORE INSERT ON mytable; CREATE TABLE mytable ( this INTEGER, that VARCHAR2(255), more VARCHAR(2), other BLOB, ); BEGIN COMMIT END; Padre-1.00/eg/php/0000755000175000017500000000000012237340740012325 5ustar petepetePadre-1.00/eg/php/hello.php0000644000175000017500000000004211643045131014131 0ustar petepete Padre-1.00/eg/xml/0000755000175000017500000000000012237340741012337 5ustar petepetePadre-1.00/eg/xml/xml_example0000644000175000017500000000024311442511104014562 0ustar petepete Padre-1.00/eg/perl5_with_perl6_example.pod0000644000175000017500000000104311144024255017141 0ustar petepete =head1 NAME Some text =head1 VERSION The initial template usually just has: This documentation refers to version 0.0.1 =head1 SYNOPSIS use ; # Brief but working code example(s) here showing the most common usage(s) # This section will be as far as many users bother reading # so make it as educational and exemplary as possible. use v6; say "Hello World"; =head1 DESCRIPTION A full description of the module and its features. May include numerous subsections (i.e. =head2, =head3, etc.) =cut Padre-1.00/eg/syntax_demo.css0000644000175000017500000000026011351523261014575 0ustar petepete/* a demo CSS file */ #padre div.padre, { height: 100px; width: 150px; } span > a[href="http://padre.perlide.org/"] { font-weight: bold; } div + a:hover { color: lime; }Padre-1.00/eg/perl6/0000755000175000017500000000000012237340741012567 5ustar petepetePadre-1.00/eg/perl6/Perl6Class.pm0000644000175000017500000000005712137733173015111 0ustar petepeteuse Something; class Mine does Something { } Padre-1.00/eg/perl6/Perl6Grammar.p60000644000175000017500000000036012137733173015340 0ustar petepete use v6; grammar Property { rule key { (\w+) } rule value { (\w+) } rule entry { '=' (';')? } } my $text = "foo=bar;me=self;"; if $text ~~ /^+$/ { "Matched".say; } else { "Not Matched".say; }Padre-1.00/eg/perl6/outline_test.p60000644000175000017500000000322212137733173015557 0ustar petepete# put stuff in GLOBAL package use Foo; require Bar; sub foo-sub { } method foo-method { } submethod foo_submethod { } macro foo_macro { } regex foo_regex { } token foo_token { } rule foo_rule { } #A class example class FooClass { constant $PI = 22/7; my $.foo; our $!foo; has $field1 is rw; has $.public is rw; has $!private is rw; use Bar; sub foo_sub { } method !private_method {} method ^how_method { } method foo_method { } submethod foo_submethod { } macro foo_macro { } regex foo_regex { } token foo_token { } rule foo_rule { } } #A grammar example grammar Person { rule name { Name '=' (\N+) } rule age { Age '=' (\d+) } rule desc { \n \n } # etc. } #A module example module Foo1 { sub foo_sub { } method foo_method { } submethod foo_submethod { } macro foo_macro { } regex foo_regex { } token foo_token { } rule foo_rule { } } #A package example package FooPackage { sub foo_sub { } method foo_method { } submethod foo_submethod { } macro foo_macro { } regex foo_regex { } token foo_token { } rule foo_rule { } } #A role example role Pet { method feed ($food) { $food.open_can; $food.put_in_bowl; self.eat($food); } } #a slang example slang FooSlang { token foo_token { } } #a knowhow example knowhow FooKnowHow { token foo_token { } }Padre-1.00/eg/perl6/hello.p60000644000175000017500000000003512137733173014143 0ustar petepete "Hello ".say; "world".say; Padre-1.00/eg/perl6/perl6.pod0000644000175000017500000000010112137733173014317 0ustar petepete=begin pod =head1 NAME Some Perl6 related text here =end pod Padre-1.00/eg/sql/0000755000175000017500000000000012237340740012335 5ustar petepetePadre-1.00/eg/sql/query.sql0000644000175000017500000000025011643043306014216 0ustar petepete-- Get all employees with a salary of more than 500 -- and sort them by last name ascending SELECT * FROM Employee WHERE salary > 500.00 ORDER BY last_name;Padre-1.00/eg/haskell/0000755000175000017500000000000012237340741013162 5ustar petepetePadre-1.00/eg/haskell/helloworld.hs0000644000175000017500000000006211643334625015673 0ustar petepetemodule Main where main = putStrLn "Hello, World!"Padre-1.00/eg/cobol/0000755000175000017500000000000012237340741012635 5ustar petepetePadre-1.00/eg/cobol/helloworld.cbl0000644000175000017500000000077511643334625015507 0ustar petepete000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. HELLOWORLD. 000300 000400* 000500 ENVIRONMENT DIVISION. 000600 CONFIGURATION SECTION. 000700 SOURCE-COMPUTER. RM-COBOL. 000800 OBJECT-COMPUTER. RM-COBOL. 000900 001000 DATA DIVISION. 001100 FILE SECTION. 001200 100000 PROCEDURE DIVISION. 100100 100200 MAIN-LOGIC SECTION. 100300 BEGIN. 100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS. 100500 DISPLAY "Hello world!" LINE 15 POSITION 10. 100600 STOP RUN. 100700 MAIN-LOGIC-EXIT. 100800 EXIT.Padre-1.00/eg/syntax_demo.js0000644000175000017500000000063011351523261014422 0ustar petepete// The firebugx.js source.. if (!window.console || !console.firebug) { var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; window.console = {}; for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {} } /* ending with a multi- line comment */ Padre-1.00/eg/actionscript/0000755000175000017500000000000012237340741014241 5ustar petepetePadre-1.00/eg/actionscript/helloworld.as0000644000175000017500000000044711643337677016764 0ustar petepetepackage { import flash.display.*; import flash.text.*; public class HelloWorld extends Sprite { private var hello:TextField = new TextField(); public function HelloWorld() { hello.text = "Hello World!"; hello.x = 100; hello.y = 100; addChild(hello); } } }Padre-1.00/eg/pascal/0000755000175000017500000000000012237340740013001 5ustar petepetePadre-1.00/eg/pascal/helloworld.pas0000644000175000017500000000007111643335152015660 0ustar petepeteprogram HelloWorld; begin writeln('Hello World'); end.Padre-1.00/eg/tcl/0000755000175000017500000000000012237340740012320 5ustar petepetePadre-1.00/eg/tcl/portable_tcl0000644000175000017500000000011611442511104014702 0ustar petepete#!/bin/sh #The next line executes wish - wherever it is \ exec wish "$0" "$@" Padre-1.00/eg/tcl/hello_tcl0000644000175000017500000000013711442511104014200 0ustar petepete#!/usr/local/bin/wish #Make a label "Hello World" label .hello -text "Hello World" pack .hello Padre-1.00/eg/java/0000755000175000017500000000000012237340740012457 5ustar petepetePadre-1.00/eg/java/HelloWorld.java0000644000175000017500000000023311643043306015371 0ustar petepete/** * Prints "Hello world" */ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }Padre-1.00/Makefile.PL0000644000175000017500000002575312237323641013132 0ustar petepete# NOTE: inc::Module::Install::PRIVATE::Padre needs Perl 5.8, so make sure # that we force the Perl version check (and fail) early. # Unicode is also considered to finally be "stable" at 5.8.5, so we will # set our dependency on that. use 5.010000; use strict; use lib 'privinc'; use inc::Module::Install 1.06; use POSIX qw(locale_h); # Workaround for the fact that Module::Install loads the modules # into memory and when Test::NoWarnings is loaded it will hide # the warnings generated from that point. # Removed in r2208, added again in r9001 eval { require Test::NoWarnings; $SIG{__WARN__} = 'DEFAULT'; }; BEGIN { if ( author_context and not eval("use Locale::Msgfmt 0.15; 1;") ) { die("Install Locale::Msgfmt version 0.15 or higher to build from SVN"); } } # Configure-time dependencies MUST be done first. # This version ensures that we have a new MakeMaker that # WON'T load modules to determine the version. # This _SHOULD_ theoretically make the "require Test::NoWarnings". # stuff above here no longer needed. configure_requires 'ExtUtils::MakeMaker' => '6.52'; # Force an explicit configure_requires dependency on module that is # SUPPOSED to be in the Perl core but that some Perl vendors seem to # be splitting out into separate modules (spotted first on centos) configure_requires 'ExtUtils::Embed' => '1.250601'; # the above line does not seem to force an upgrade # the below code might work but not tested #eval "use ExtUtils::MakeMaker ()"; # avoid importing prompt() and other subs #if ($@) { # print STDERR "Warning: prerequisite ExtUtils::MakeMaker 6.52 not found.\n"; # exit 0; #} elsif ($ExtUtils::MakeMaker::VERSION <= 6.52) { # print STDERR "Warning: prerequisite ExtUtils::MakeMaker 6.52 not found. We have $ExtUtils::MakeMaker::VERSION.\n"; # exit 0; #} # This makes sure that we didn't compile Alien::wxWidgets with the wrong options. configure_requires 'Alien::wxWidgets' => '0.62'; my $wxw = eval { use Alien::wxWidgets; 1; }; if ( $@ or not $wxw ) { print STDERR "Warning: prerequisite Alien::wxWidgets not found.\n"; exit 0; } if ( '2.009000' eq Alien::wxWidgets->version ) { print STDERR "Warning: Alien::wxWidgets was compiled with the development version of\n"; print STDERR "wxWidgets. This is known to cause Padre to crash.\n"; exit 0; } ##################################################################### # Normal Boring Commands # NOTE: Core modules that aren't dual-life should always have a version of 0 name 'Padre'; license 'perl'; author 'Gabor Szabo'; all_from 'lib/Padre.pm'; requires 'perl' => '5.011000'; # General dependencies requires 'Algorithm::Diff' => '1.19'; requires 'App::cpanminus' => '0.9923'; requires 'B::Deparse' => 0; requires 'Capture::Tiny' => '0.06'; requires 'CGI' => '3.47'; requires 'Class::Adapter' => '1.05'; requires 'Class::Inspector' => '1.22'; requires 'Class::XSAccessor' => '1.13'; requires 'Cwd' => '3.2701'; requires 'Data::Dumper' => '2.101'; requires 'DBD::SQLite' => '1.35'; requires 'DBI' => '1.58'; requires 'Debug::Client' => '0.29'; requires 'Devel::Dumpvar' => '0.04'; requires 'Devel::Refactor' => '0.05'; requires 'Encode' => '2.26'; requires 'ExtUtils::MakeMaker' => '6.56'; requires 'ExtUtils::Manifest' => '1.56'; requires 'File::Basename' => 0; requires 'File::Glob' => 0; requires 'File::Glob::Windows' => '0.1.3' if win32; requires 'File::Copy::Recursive' => '0.37'; requires 'File::Find::Rule' => '0.30'; requires 'File::HomeDir' => (win32) ? '0.98' : '0.91'; requires 'File::Path' => '2.08'; requires 'File::Remove' => (win32) ? '1.49' : '1.40'; requires 'File::ShareDir' => '1.00'; requires 'File::Spec' => '3.2701'; requires 'File::Spec::Functions' => '3.2701'; requires 'File::Temp' => '0.20'; requires 'File::Which' => '1.08'; requires 'File::pushd' => '1.00'; requires 'FindBin' => 0; requires 'Getopt::Long' => 0; requires 'HTML::Entities' => '3.57'; requires 'HTML::Parser' => '3.58'; requires 'IO::Socket' => '1.30'; requires 'IO::String' => '1.08'; requires 'IPC::Run' => '0.83'; requires 'IPC::Open2' => 0; requires 'IPC::Open3' => 0; requires 'JSON::XS' => '2.29'; requires 'List::Util' => '1.18'; requires 'List::MoreUtils' => '0.22'; requires 'LWP' => '5.815'; requires 'LWP::UserAgent' => '5.815'; requires 'Module::Build' => '0.3603'; requires 'Module::CoreList' => '2.22'; requires 'Module::Manifest' => '0.07'; requires 'Module::Starter' => '1.60'; requires 'ORLite' => '1.98'; requires 'ORLite::Migrate' => '1.10'; requires 'Params::Util' => '0.33'; requires 'Parse::ErrorString::Perl' => '0.18'; requires 'Parse::ExuberantCTags' => '1.00'; requires 'Pod::Functions' => 0; requires 'Pod::POM' => '0.17'; requires 'Pod::Simple' => '3.07'; requires 'Pod::Simple::XHTML' => '3.04'; requires 'Pod::Abstract' => '0.16'; requires 'Pod::Perldoc' => '3.15'; requires 'POD2::Base' => '0.043'; requires 'POSIX' => 0; requires 'PPI' => '1.215'; requires 'PPIx::EditorTools' => '0.18'; requires 'PPIx::Regexp' => '0.011'; requires 'Probe::Perl' => '0.01'; requires 'Storable' => '2.16'; requires 'Sort::Versions' => '1.5'; requires 'Template::Tiny' => '0.11'; requires 'Term::ReadLine' => 0; requires 'Text::Balanced' => '2.01'; requires 'Text::Diff' => '1.41'; requires 'Text::FindIndent' => '0.10'; requires 'Time::HiRes' => '1.9718'; requires 'Text::Patch' => '1.8'; requires 'threads' => '1.71'; requires 'threads::shared' => '1.33'; requires 'URI' => '0'; requires 'version' => '0.80'; requires 'Win32' => '0.31' if win32; requires 'Win32::Shortcut' => '0.07' if win32; requires 'Win32::TieRegistry' => '0.26' if win32; requires 'Wx' => '0.9916'; requires 'Wx::Perl::ProcessStream' => '0.32'; requires 'Wx::Scintilla' => '0.39'; requires 'YAML::Tiny' => '1.32'; test_requires 'Test::More' => '0.98'; # Ticket #1419: Padre and the soon to be Perl 5.16 test_requires 'Test::Warn' => '0.24'; test_requires 'Test::MockObject' => '1.09'; test_requires 'Test::Script' => '1.07'; test_requires 'Test::Exception' => '0.27'; test_requires 'Test::NoWarnings' => '1.04'; # Special dependencies # In the Padre.ppd file we need to list IO-stringy instead requires 'IO::Scalar' => '2.110'; # Add later, once we native support portability # requires 'Portable' => '0.12' if win32; # PAR support disabled for now # requires 'File::ShareDir::PAR' => '0.04'; # requires 'PAR' => '0.989'; my $locale = setlocale(LC_CTYPE); print "Found locale $locale\n"; # What tests should we run? my @TESTS = ( 't/*.t', 't/perl/*.t', 't/python/*.t', 't/ruby/*.t', 't/java/*.t', 't/csharp/*.t', ); if ( win32 and $locale =~ /^English/ ) { if ( author_context or $ENV{RELEASE_TESTING} ) { push @TESTS, 't/win32/*.t'; } } if ( author_context or $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { push @TESTS, 'xt/*.t'; } tests join ' ', @TESTS; no_index 'directory' => qw{ t xt eg share inc privinc }; homepage 'http://padre.perlide.org/'; bugtracker 'http://padre.perlide.org/trac/'; repository 'http://svn.perlide.org/padre/trunk/Padre/'; Meta->add_metadata( x_contributors => [ 'Aaron Trevena (TEEJAY)', 'Adam Kennedy (ADAMK) ', 'Ahmad Zawawi أحمد محمد زواوي (AZAWAWI)', 'Andrew Shitov', 'Alexandr Ciornii (CHORNY)', 'Amir E. Aharoni - אמיר א. אהרוני', 'Blake Willmarth (BLAKEW)', 'BlueT - Matthew Lien - 練喆明 (BLUET) ', 'Breno G. de Oliveira (GARU)', 'Brian Cassidy (BRICAS)', 'Burak Gürsoy (BURAK) ', 'Cezary Morga (THEREK) ', 'Chris Dolan (CHRISDOLAN)', 'Claudio Ramirez (NXADM) ', 'Dirk De Nijs (ddn123456)', 'Enrique Nell (ENELL)', 'Fayland Lam (FAYLAND) ', 'Gabriel Vieira (GABRIELMAD)', 'Gábor Szabó - גאבור סבו (SZABGAB) ', 'György Pásztor (GYU)', 'Heiko Jansen (HJANSEN) ', 'Jérôme Quelin (JQUELIN) ', 'Kaare Rasmussen (KAARE) ', 'Keedi Kim - 김도형 (KEEDI)', 'Kenichi Ishigaki - 石垣憲一 (ISHIGAKI) ', 'Kevin Dawson (BOWTIE) ', 'Kjetil Skotheim (KJETIL)', 'Marcela Mašláňová (mmaslano)', 'Marek Roszkowski (EviL) ', 'Mark Grimes ', 'Max Maischein (CORION)', 'Olivier MenguE (DOLMEN)', 'Omer Zak - עומר זק', 'Paco Alguacil (PacoLinux)', 'Patrick Donelan (PDONELAN) ', 'Paweł Murias (PMURIAS)', 'Petar Shangov (PSHANGOV)', 'Peter Lavender (PLAVEN)', 'Ryan Niebur (RSN) ', 'Sebastian Willing (SEWI)', 'Shlomi Fish - שלומי פיש (SHLOMIF)', 'Simone Blandino (SBLANDIN)', 'Steffen Müller (TSEE) ', 'Zeno Gantner (ZENOG)', 'Chuanren Wu', ], ); keywords( "auto-completion", "code", "coding", "completion", "context", "cross-platform", "development", "editor", "environment", "find", "function list", "gui", "help", "highlight", "hightlighting", "ide", "linux", "mac os", "mac os x", "padre", "perl", "portable", "refactoring", "replace", "syntax", "windows", "version control", "patch", "diff", "wx", "wxwidgets", ); install_script 'script/padre'; build_padre_exe if win32; install_share_with_mofiles; auto_provides if -f 'MANIFEST'; ##################################################################### # Padre-Specific Oddities # Padre requires threads # First we should check if the perl is threaded so the users # won't waste time installing modules on a perl without thread support. use Config; unless ( $Config{usethreads} ) { warn("Padre requires a perl built using threads\n"); # Exit 0 without Makefile means "Not Applicable" (NA in CPAN Testers) exit(0); } # The check_wx_version command SHOULD (hopefully) now be able to verify the # wxWidgets version WITHOUT having to have DISPLAY. check_wx_version; # Add the make exe target setup_padre; show_debuginfo; WriteAll; Padre-1.00/win32/0000755000175000017500000000000012237340740012105 5ustar petepetePadre-1.00/win32/README0000644000175000017500000000121011351410657012760 0ustar petepeteREADME for padre.exe This is Padre's win32 launcher. It does the following: * Tries to find the padre script in the same directory as padre.exe If it fails, it exits with a message box. * Tries to find wperl.exe in the executable path. If it succeed, it will set $^X to this path. * Creates a Perl interpreter and run the padre script. Padre.exe is dynamically linked to the perl.dll on which it was built, so it is safer to build it at install time on a user machine. To compile it, simply 'perl Makefile.PL' or 'cpan .' in the parent folder. You'll of course need Strawberry Perl as it has gcc and windres out of the box. Padre-1.00/win32/padre-rc.rc.in0000644000175000017500000000412011472000106014517 0ustar petepete/** # Copyright 2009 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. */ /** * @author Olivier Mengu * @author Ahmad M. Zawawi */ #include "padre-rc.h" IDI_APP ICON DISCARDABLE "padre.ico" // Embed the manifest in the exe // http://msdn.microsoft.com/fr-fr/library/bb773175%28en-us,VS.85%29.aspx CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "padre.exe.manifest" // Languages list: // http://msdn.microsoft.com/en-us/library/dd318693%28VS.85%29.aspx STRINGTABLE DISCARDABLE LANGUAGE LANG_FRENCH, SUBLANG_FRENCH BEGIN IDS_APP_TITLE, "Padre" IDS_ERR_WPERL, "Programme WPerl.exe introuvable !" IDS_ERR_SCRIPT, "Script padre introuvable !" IDS_ERR_RUN, "Echec du lancement du script avec padre avec WPerl.exe !" END STRINGTABLE DISCARDABLE LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL BEGIN IDS_APP_TITLE, "Padre" IDS_ERR_WPERL, "Cannot find 'WPerl.exe'!" IDS_ERR_SCRIPT, "Cannot find the 'padre' script!" IDS_ERR_RUN, "Failed to run 'padre' using 'WPerl.exe'" END VS_VERSION_INFO VERSIONINFO FILEVERSION __PADRE_WIN32_VERSION__ PRODUCTVERSION __PADRE_WIN32_VERSION__ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0L //Final version FILEOS VOS__WINDOWS32 FILETYPE VFT_APP FILESUBTYPE VFT2_UNKNOWN BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" BEGIN VALUE "Comments", "Perl Application Development and Refactoring Environment\0" VALUE "FileDescription", "Perl Application Development and Refactoring Environment\0" VALUE "FileVersion", "__PADRE_VERSION__\0" VALUE "LegalCopyright", "Copyright 2008-2010\0" VALUE "OriginalFilename", "padre.exe\0" VALUE "ProductName", "Padre IDE\0" VALUE "ProductVersion", "__PADRE_VERSION__\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END Padre-1.00/win32/padre.c0000644000175000017500000001176712074315403013355 0ustar petepete/** * Padre Win32 executable Launcher * @author Olivier Mengué */ #define WIN32_LEAN_AND_MEAN #define STRICT #define _WIN32_WINNT 0x0501 #include #include #include /* from the Perl distribution */ #include /* from the Perl distribution */ #include "padre-rc.h" /* perl -MExtUtils::Embed -e xsinit -- -o perlxsi.c */ EXTERN_C void xs_init (pTHX); static void LocalizedMessageBox(LPCTSTR lpMessage, LPCTSTR lpTitle, DWORD dwFlags) { HMODULE hModule; TCHAR szTitle[256]; TCHAR szMessage[256]; hModule = GetModuleHandle(NULL); if (IS_INTRESOURCE(lpMessage)) { LoadString(hModule, (UINT)lpMessage, szMessage, sizeof(szMessage)/sizeof(szMessage[0])); lpMessage = szMessage; } if (IS_INTRESOURCE(lpTitle)) { LoadString(hModule, (UINT)lpTitle, szTitle, sizeof(szTitle)/sizeof(szTitle[0])); lpTitle = szTitle; } MessageBox(NULL, lpMessage, lpTitle, dwFlags); } static BOOL FileExists(LPCTSTR lpFileName) { DWORD att = GetFileAttributes(lpFileName); return (att != INVALID_FILE_ATTRIBUTES); //&& (att & (FILE_ATTRIBUTE_DEVICE|FILE_ATTRIBUTE_DIRECTORY) == 0); } static int GetDirectory(LPTSTR lpDir, LPCTSTR lpFilename, int iBufSize) { int len, len2; LPCTSTR p; LPTSTR q; len = lstrlen(lpFilename); if (len == 0) { lpDir[0] = _T('\0'); return 0; } p = lpFilename + len; while (--p > lpFilename) { if (*p == _T('\\') || *p == _T('/')) break; }; len = p - lpFilename; if (lpDir == lpFilename) { *(LPTSTR)p = _T('\0'); } else { if (len+1 > iBufSize) { lpDir[0] = _T('\0'); return 0; } p = lpFilename; q = lpDir; len2 = len; while (len2--) *q++ = *p++; *q = _T('\0'); } return len; } int main(int argc, char **argv, char **env) { // Padre.exe path TCHAR szExePath[MAX_PATH]; // Padre script path TCHAR szPadre[MAX_PATH]; // wperl.exe path TCHAR szWPerlExePath[MAX_PATH]; HMODULE hModule, hModulePerlDll; DWORD dwLength; HANDLE hHeap; char **new_argv; PerlInterpreter *my_perl; /*** The Perl interpreter ***/ int i; int exitcode; hModule = GetModuleHandle(NULL); // Find the the executable's path dwLength = GetModuleFileName(hModule, szExePath, sizeof(szExePath)/sizeof(szExePath[0])); // Build the 'padre' script path dwLength = GetDirectory(szPadre, szExePath, sizeof(szPadre)/sizeof(szPadre[0])); lstrcpy(szPadre+dwLength, _T("\\padre")); //MessageBox(NULL, szPadre, "Padre", MB_OK|MB_ICONINFORMATION); // At this point we should check if padre script exists or not if (! FileExists(szPadre)) { LocalizedMessageBox(MAKEINTRESOURCE(IDS_ERR_SCRIPT), MAKEINTRESOURCE(IDS_APP_TITLE), MB_OK|MB_ICONERROR); return 1; } // Rewrite the command line to insert the padre script hHeap = GetProcessHeap(); new_argv = HeapAlloc(hHeap, 0, (argc+2)*sizeof(new_argv[0])); new_argv[0] = argv[0]; new_argv[1] = "--"; new_argv[2] = szPadre; for(i=1; i Padre - The Perl IDE Padre-1.00/win32/padre.ico0000644000175000017500000005372611333513310013700 0ustar petepete00f h00 %  B hnS(0`  $+% - 5*;?3 ; *20$;$?*>*>76B O C K[ W X DHED H X _gto` i u }owO(F J" V$\,\# Z3G$B'O*K4c" k' f) l, t$ }& t, }(t<d*q4B-#K3#V8&C62U<6|CNA?]F0kI,vJ&J$uB-uI+bL<tM9lU;wV<_HBdNBkNBfQBmRCnWOn[HsVAvWIz]Ik\Ys_RxgXvnm  * 9 :!$:2?%'75-52;;49J G VI W Z DNdklj o~b[.e#u8]MF[VRZ\LCJMXYh l v u u | y ne{bckmflbdmjvvcKqLpR~Xtdqj|e~l{vpyx~{Ȉҁԏׂ ܄ ݛ   ۨ   Յ2՗1ث8ײ9  Jco|uws˯NժIʹYѧyX];: .2(M1׾-ZP?ȩx*[Aҭ?6e  ʦzfXa&qt{ n̖ysccIrfdJRÙyf,gINlscs݅^_otws+*q (usfg3'yglcpf(pq߆5sptqcfddj*ΜwjGnytddfgfOBFtqtgqs':iOjízttzq8 ̯zvvzzg+0B;Ȫqddqttpd,#Ăưzgdggttqp rי'Űyqqzzvf#'hɨvqpbm{|ל 'ǧspb"O8<ϋ9h([[h};ÏjHÍ"̭٥"RԤí~#Ȱ⯩4E}פĬr>̰̰` ̭ims~CG}̘)mlޝ .ǩ(Akxuz;Y1ΰw"!kgftџiEX1Пuow%gqzx@E)$cd%/Pf0 Dqd+k> Q?tbU "l8K`` W`K\TV????????( @   #), 5 ?%,; ?#;%W [ NA\ UZ cmg m up tx {C ]-[+ [0F C-V Q4c" f, l+ p& v+ b4k<q4z=k/z+^4!Q<#WB)N@3ZA0ZF;^G=^I<nC%xK<kR6kTCaUJnTKp[IqcJugX~igrkkvpo .4 8 3/!-2!"$+#%*(59,/509268:B L TW_\J_ Mc h W;c8CGGDNDM@QQRS[KCKJNOS\[XU[bk u p| hx~ckoeekjsr|r{]AxDiTo_mZr^uh}n{kzdwtv}yz͆ܓݔ     ڤ۬    owpy}}r3(q ?5uE=wΐ7`'B<ƍ~SoPPKa^s\hd*JlU ) _QTM,|ԇ{GpkNTQY0:oc[Wxz¾mcppU0 ɔmMTchUKVƫkkpb@v.XȞjR!.Wy  +۾ԼYV ӬX᧒)9Ȩ԰YƦ-%վHZ־;DI6&ֽӪgI_S41gf#ep2B$OM A f.>/n"  ]t)ICF8???(  : *U ui$ r* r?}6 u=v3A6-C:4e?,jEaI/iB>bQCy]E|i\)(!&-5'3:X FRE]Rl e g j sM&^%N;^=e0k?{)AGDNEP[bq ~ a} ghmWF[Jr]tmzo}w҄ ҅ Ο      Ry BZpt1Qq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq5?*IL(hO><Gcj 8$q)U^heD97H.bTlm\# M_kn,-R:!"r+N[ Q%/o@gil]&YaXW6*FS[ZKd`PE3;Vf14AC=2 BR'0$ pJ (0`         $KX'e?e  !0 0=H  7  2;&lU m- e)8>;'  $A<5\$k Ko3J/^$?![*hҁO(84Y   &,q7'~( g9|Q&) !)\ OԏB+" g   *7# W u kH^|& ]11h@J  ~&$(t $ 4 Kd:XZC 9o(.  N-2V  "8 _+1 ?2 / ~  "(5 k߮ $;7!>  4$=C$.f Y3Lkz$   "D^! ١,6:ڬ l! ! 24 ;}d,9o4o,@7u Wi 47ݮܭܞZ3 ;!} I'_ C 6F[ $O  Xh `H!)ث j  258+' 5hU />(  A   u>}l n7ܬ< P' 1-1b=3-m X](!5 k* Zl ܄ nޣݭ  +D)v/ mr]@F.%(&Rm0_  Ic" o ݜ <  `. : qV\mG9)/<FA+DLb" | ٧٫  p,  ' 3 } tH5.3;:5m"U  V$ߤ߫  p/ m.  oC' &-, u/9)[  [^     NV uH7-/#\ <KF|3a ۤߛڤި UT \ ixedM5!%59/X V K"v a fz  { _ ' ߥ q\FC1( . -p k?VBK ܅    o <[ u  pT@0"Y U$)Y  /$2vId1_! v"t!Dh dQ u$ h q=wC <#p=2!O,!F(9   G1:z^ɞȌkedl zzxtO1h l T M I ^ ̈́ ˓ОәnjpMG,\ ! Plp   hu'   w+   S  Mp& x  - p I$ zK$,D  X`4k'  FN5' $bY4%g' |C ] ܭڪ Y Q  Z y ~ru ߜeMq{T E(X.W^=Fܖ{oݡޝiktO <p! f _z xff yd R ; bS"4\8X |٫ hbj z? f# n( b~{veiy  H>_-H8@ ޞn^[_b2 d$ 3 6wWQn| J &%YH $ 80 ΛVڨڣOObgv `%4 !AbWTw r =C%1$  H1CȂ  fmsnNj a'd$ 75>Ui,1& 2\/ٚ Wo ycK@<Y a(  F-Wv = AO! "@_,ޥu 3?v bLRY>F V7}*$h:c,x)9=et<..n#C"L=?k rDwa  tB F-(! Y:3BGdt ׂ V$-*s$ ;K2G__J, r^ < ,j*%Ed"O  u* .$# /FQ }& VU+\ X #2+':' 4T (N{\i M"/h  V4O$ * &#fJ3(*-!7"C 3[-(3 r P-" @$ J" #:O8xT.7/ 8[8 : D AD* 9O+,? > ???( @   $S@$\ &% !C\y>͔L q44+X $-n=B tZ) '` _9   ,/ J NDK$ K$ [06 $+m OQC`  %p O I) N/mp7j$ <u+!T  N'[,|-LGm*O O9٬ *, +.7 WS"@ c" e+XP h ,/Ns:0b3; jv'  ߐ N$5W ~\]H8%@L!+ 3 ڦ _  c ^2$;9[ *t-   / $ X2 &)W z@ cڤڤ.{sF./9#uSwAs[|   n, 9 xK3w A  Q>DyJ k* Z 6 p M(^ G\ )H*zPXChU?T! m7` U p ݒ/b4 .4 2:", Q c- 8  qYh.MH9! xܣss Y$ 2} jff, 6>'-h]- ޭdo y+!* oXe u 7E ,5͆ۤOSP"v$ E]U V P&  W& tqh9%@"K z=+!)Vb4ٗ7k uJJ59) :V {(<Rk<<#N%C sDg +#,#G'6yj+ 0# @ p& [6 f#*( C-?2WTP* R+I2"s #B2d9%( 7I E '}# 5` ??(   0 6v@@#4LJظQ`) 2EΟ , :bPE h" (jE  i$ G:, T  -gD!Aa! j  u=r?3&&? u9 ҄  e g N-y  @W:Zl ҅ r* }6 X hvC+e q s. r}?  fRm 6&1h5 'E |G*  tE~ } [n# A"HU a IG ,)w6 ;u @#:K% 9 = #   D E  ?ϬAAAAAAAAAAAAAAAAPadre-1.00/win32/padre-rc.h0000644000175000017500000000104011465731744013760 0ustar petepete/** # Copyright 2009-2010 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. */ /** * @author Olivier Mengué * @author Ahmad M. Zawawi */ #include #include #include #define IDI_APP 101 #define IDS_APP_TITLE 110 #define IDS_ERR_WPERL 111 #define IDS_ERR_SCRIPT 112 #define IDS_ERR_RUN 113 Padre-1.00/padre.yml0000644000175000017500000000022611320373260012754 0ustar petepete--- editor_indent_tab: 1 editor_indent_tab_width: 8 editor_indent_width: 8 config_perltidy: ../tools/perltidyrc config_perlcritic: xt/critic-util.ini Padre-1.00/script/0000755000175000017500000000000012237340741012450 5ustar petepetePadre-1.00/script/padre-client0000644000175000017500000001371512237327555014761 0ustar petepete#!/usr/bin/perl =pod =head1 NAME padre-client - Client for Padre =cut use 5.008005; use strict; use warnings; use Getopt::Long (); use Carp (); use Padre::Constant (); use Padre::Startup (); our $VERSION = '1.00'; ##################################################################### # Client Startup Procedure # Runs the (as light as possible) startup process for Padre. # XXX Mostly cut-n-pasted from Padre::Startup, except for the socket command handling sub connect_to_server { my (%options) = @_; # Start with the default settings my %setting = ( main_singleinstance => Padre::Constant::DEFAULT_SINGLEINSTANCE(), main_singleinstance_port => Padre::Constant::DEFAULT_SINGLEINSTANCE_PORT(), startup_splash => 1, ); # Load and overlay the startup.yml file if ( -f Padre::Constant::CONFIG_STARTUP ) { require YAML::Tiny; my $yaml = YAML::Tiny::LoadFile( Padre::Constant::CONFIG_STARTUP ); foreach ( sort keys %setting ) { next unless exists $yaml->{$_}; $setting{$_} = $yaml->{$_}; } } # Attempt to connect to the single instance server if ( $setting{main_singleinstance} ) { # This blocks for about 1 second require IO::Socket; my $socket = IO::Socket::INET->new( PeerAddr => ($options{ host } || '127.0.0.1'), PeerPort => ($options{ port } || $setting{main_singleinstance_port}), Proto => 'tcp', Type => IO::Socket::SOCK_STREAM(), ); if ( $socket ) { my $pid = ''; my $read = $socket->sysread( $pid, 10 ); if ( defined $read and $read == 10 ) { # Got the single instance PID $pid =~ s/\s+\s//; if ( Padre::Constant::WIN32 ) { require Padre::Util::Win32; Padre::Util::Win32::AllowSetForeground($pid); } }; binmode $socket; return $socket } else { # Main Padre instance unreachable or does not exist } } # Show the splash image now we are starting a new instance # Shows Padre's splash screen if this is the first time # It is saved as BMP as it seems (from wxWidgets documentation) # that it is the most portable format (and we don't need to # call Wx::InitAllImageHeaders() or whatever) if ( $setting{startup_splash} ) { # Don't show the splash screen during testing otherwise # it will spoil the flashy surprise when they upgrade. unless ( $ENV{HARNESS_ACTIVE} or $ENV{PADRE_NOSPLASH} ) { require File::Spec; # Find the base share directory my $share = undef; if ( $ENV{PADRE_DEV} ) { require FindBin; $share = File::Spec->catdir( $FindBin::Bin, File::Spec->updir, 'share', ); } else { require File::ShareDir; $share = File::ShareDir::dist_dir('Padre'); } # Locate the splash image without resorting to the use # of any Padre::Util functions whatsoever. my $splash = File::Spec->catfile( $share, 'padre-splash-ccnc.png' ); # Use CCNC-licensed version if it exists and fallback # to the boring splash so that we can bundle it in # Debian without their packaging team needing to apply # any custom patches to the code, just delete the file. unless ( -f $splash ) { $splash = File::Spec->catfile( $share, 'padre-splash.png', ); } # Load just enough modules to get Wx bootstrapped # to the point it can show the splash screen. require Wx; #$SPLASH = Wx::SplashScreen->new( # Wx::Bitmap->new( # $splash, # Wx::wxBITMAP_TYPE_BMP() # ), # Wx::wxSPLASH_CENTRE_ON_SCREEN() | Wx::wxSPLASH_TIMEOUT(), # 3500, undef, -1 # ); } } return 1; } # Destroy the splash screen if it exists #sub destroy_splash { # if ($SPLASH) { # $SPLASH->Destroy; # $SPLASH = 1; # } #} local $| = 1; local $SIG{__DIE__} = $ENV{PADRE_DIE} ? sub { print STDERR Carp::longmess "\nDIE: @_\n" . ( "-" x 80 ) . "\n" } : $SIG{__DIE__}; # Handle special command line cases early, because options like --home # MUST be processed before the Padre.pm library is loaded. my $getopt = Getopt::Long::GetOptions( 'help|usage' => \my $USAGE, 'version' => \my $show_VERSION, 'home=s' => \my $HOME, 'host=s' => \my $host, 'port=s' => \my $port, ); if ( $USAGE or !$getopt ) { my $port = Padre::Constant::DEFAULT_SINGLEINSTANCE_PORT(); print <<"END_USAGE"; Usage: $0 [FILENAMES] --home=dir Forces Padre's "home" directory to a specific location --host=hostname Connect to padre using this host (default is localhost) --port=port Connect to padre using this port number (default is $port) --home=dir Forces Padre's "home" directory to a specific location --help Shows this help message --version Prints Padre version and quits END_USAGE exit(1); } local $ENV{PADRE_HOME} = defined($HOME) ? $HOME : $ENV{PADRE_HOME}; # Special execution modes if ($show_VERSION) { require Padre; my $msg = "Perl Application Development and Refactoring Environment $Padre::VERSION\n"; if ( $^O eq 'MSWin32' and $^X =~ /wperl\.exe/ ) { # Under wperl, there is no console so we will use # a message box require Padre::Wx; Wx::MessageBox( $msg, Wx::gettext("Version"), Wx::OK(), ); } else { print $msg; } exit(0); } my $socket = connect_to_server( host => $host, port => $port ); if (ref $socket) { my %pending; for (@ARGV) { my $full = File::Spec->rel2abs($_); $pending{ $full } = 1; print {$socket} "open-sync $full\r\n" } while (<$socket>) { next unless s/^closed://; s/\s*$//; delete $pending{ $_ }; warn "Closed file $_"; last unless keys %pending; }; exit; }; # XXX Here we should launch Padre in the background, and (re)try connecting # to it. If that fails, we should simply launch ourselves as (another) # Padre instance. require Padre; # Build the application my $app = Padre->new; unless ( $app ) { die "Failed to create Padre instance"; } # Start the application $app->run; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/script/padre0000644000175000017500000001320512237327555013477 0ustar petepete#!/usr/bin/perl use 5.010000; use strict; use warnings; use Carp (); our $VERSION = '1.00'; use constant WIN32 => !!( $^O eq 'MSWin32' and $^X =~ /wperl\.exe/ ); local $| = 1; local $SIG{__DIE__} = $ENV{PADRE_DIE} ? sub { print STDERR Carp::longmess "\nDIE: @_\n" . ( "-" x 80 ) . "\n" } : $SIG{__DIE__}; # Must run using wxPerl on OS X. if ( $^O eq 'darwin' and $^X !~ m{/wxPerl} ) { require File::Which; require File::Basename; require File::Spec; my $this_perl = File::Which::which($^X) || $^X; if ( -l $this_perl ) { my $link = readlink $this_perl; $this_perl = $link if $link; } my $dir = File::Basename::dirname($this_perl); my $wx_perl = File::Spec->catfile( $dir, 'wxPerl' ); my $perl = $wx_perl && -e $wx_perl && -x _ ? $wx_perl : File::Which::which('wxPerl'); chomp($perl); if ( -e $perl ) { warn "spawning 'wxPerl' interpreter for OS X\n"; system( $perl, '-S', $0, @ARGV ); } else { warn "padre cannot find wxPerl executable (which it requires on OS X)\n"; } exit 0; } # Disable overlay scrollbar on Linux. # Done ugly this way to satisfy Perl::Critic (grrr) local $ENV{LIBOVERLAY_SCROLLBAR} = ( $^O eq 'linux' ) ? 0 : $ENV{LIBOVERLAY_SCROLLBAR}; # Handle special command line cases early, because options like --home # MUST be processed before the Padre.pm library is loaded. my $USAGE = ''; my $SHOWVERSION = ''; my $HOME = undef; my $RESET = undef; my $SESSION = undef; my $PRELOAD = undef; my $DESKTOP = undef; my $ACTIONS = undef; my $LOCALE = undef; if ( grep {/^-/} @ARGV ) { # Avoid loading Getopt::Long entirely if we can, # sneakily saving a meg or so of RAM. require Getopt::Long; Getopt::Long::GetOptions( 'help|usage' => \$USAGE, 'version' => \$SHOWVERSION, 'home=s' => \$HOME, 'reset' => \$RESET, 'session=s' => \$SESSION, 'desktop' => \$DESKTOP, 'actionqueue=s' => \$ACTIONS, 'locale=s' => \$LOCALE, # Keep this sekrit for now --ADAMK 'preload' => \$PRELOAD, ) or $USAGE = 1; } ##################################################################### # Special Execution Modules # Padre command line usage if ($USAGE) { print <<"END_USAGE"; Usage: $0 [FILENAMES] --help Shows this help message --home=dir Forces Padre "home" directory to a specific location --reset Flush entire local config directory and reset to defaults --session=name Open given session during Padre startup --version Prints Padre version and quits --desktop Integrate Padre with your desktop --actionqueue=list Run a list of comma-separated actions after Padre startup --locale=name Locale name to use END_USAGE exit(1); } # Lock in the home and constants, which are needed for everything else local $ENV{PADRE_HOME} = defined($HOME) ? $HOME : $ENV{PADRE_HOME}; require Padre::Constant; # Padre version if ($SHOWVERSION) { require Padre; message("Perl Application Development and Refactoring Environment $Padre::VERSION"); exit(0); } # Destroy and reinitialise our config directory if ($RESET) { require File::Remove; File::Remove::remove( \1, Padre::Constant::CONFIG_DIR() ); Padre::Constant::init(); } if ($DESKTOP) { require Padre::Desktop; unless ( Padre::Desktop::desktop() ) { error("--desktop not implemented for $^O"); } exit(1); } # local $ENV{PADRE_PAR_PATH} = $ENV{PAR_TEMP} || ''; # If we have an action queue then we are running for automation reasons. # Avoid the startup logic and continue to the main startup. unless ( defined $ACTIONS ) { # Run the Padre startup sequence before we load the main application require Padre::Startup; unless ( Padre::Startup::startup() ) { # Startup process says to abort the main load and exit now exit(0); } } SCOPE: { local $@; eval { require Padre; # Load the entire application into memory immediately Padre->import(':everything') if $PRELOAD; # use Aspect; # aspect( 'NYTProf', # call qr/^Padre::/ & # call qr/\b(?:refresh|update)\w*\z/ & ! # call qr/^Padre::(?:Locker|Wx::Progress)::/ # ); }; if ($@) { # Major startup failure! # Handle a few specialised cases we understand if ( $@ =~ /Schema user_version mismatch/ ) { error("Padre configuration database schema invalid"); if (WIN32) { require Win32; my $rv = Win32::MsgBox( "Reset your configuration to try and fix it?", 4, "Padre", ); if ( $rv == 6 ) { require File::Remove; File::Remove::remove( \1, Padre::Constant::CONFIG_DIR() ); error("Configuration directory reset"); } } exit(1); } # Handle other generic errors my $message = $@; $message =~ s/ at .*?line.*$//; error("Major Startup Error: '$message'"); exit(1); } } # Build the application my $ide = Padre->new( files => \@ARGV, session => $SESSION, actionqueue => $ACTIONS, startup_locale => $LOCALE, ) or die 'Failed to create Padre instance'; # Start the application $ide->run; ###################################################################### # Support Functions sub message { my $message = shift; if (WIN32) { # No console under wperl, so use native Win32 messaging require Win32; Win32::MsgBox( $message, 0, "Padre" ); } else { print $message . "\n"; } return 1; } sub error { my $message = shift; if (WIN32) { # No console under wperl, so use native Win32 messaging require Win32; Win32::MsgBox( $message, 0, "Padre" ); } else { print STDERR $message . "\n"; } return 1; } # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/Padre.fbp0000644000175000017500001325357412137733173012720 0ustar petepete C++ 1 source_name 0 UTF-8 connect 1000 none 1 Padre . 1 1 0 0 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Bookmarks wxDEFAULT_DIALOG_STYLE Bookmarks wxFILTER_NONE wxDefaultValidator sizer wxHORIZONTAL public 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP 0 1 1 1 wxID_ANY Set Bookmark: set_label public wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 1 wxID_ANY 0 set public wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 1 wxID_ANY set_line public wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 existing wxHORIZONTAL none 5 wxALL 0 1 1 0 wxID_ANY Existing Bookmarks: m_staticText2 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY list public wxLB_NEEDED_SB|wxLB_SINGLE wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_OK OK ok public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 0 1 0 wxID_ANY &Delete delete public wxFILTER_NONE wxDefaultValidator delete_clicked 5 wxALL 0 1 0 1 0 wxID_ANY Delete &All delete_all public wxFILTER_NONE wxDefaultValidator delete_all_clicked 5 wxEXPAND 1 0 none 20 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel none wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Find wxDEFAULT_DIALOG_STYLE Find wxFILTER_NONE wxDefaultValidator on_close hsizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP 0 1 1 0 wxID_ANY Search &Term: m_staticText2 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 "search" 1 1 0 wxID_ANY find_term public Padre::Wx::ComboBox::FindTerm; Padre::Wx::ComboBox::FindTerm wxFILTER_NONE wxDefaultValidator refresh 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline2 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxBOTTOM|wxEXPAND 1 2 wxBOTH 1 10 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALL 1 0 1 1 0 wxID_ANY Regular E&xpression find_regex public wxFILTER_NONE wxDefaultValidator 5 wxALL 1 0 1 1 0 wxID_ANY Search &Backwards find_reverse public wxFILTER_NONE wxDefaultValidator 5 wxALL 1 0 1 1 0 wxID_ANY &Case Sensitive find_case public wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_OK &Find Next find_next public wxFILTER_NONE wxDefaultValidator find_next_clicked 5 wxALL 0 1 0 1 0 wxID_OK Find &All find_all public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 none 30 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel protected wxFILTER_NONE wxDefaultValidator on_close 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::FindFast -1,-1 wxFILTER_NONE wxDefaultValidator wxWS_EX_BLOCK_EVENTS wxNO_BORDER bSizer79 wxHORIZONTAL none 3 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT 0 share/icons/padre/16x16/actions/x-document-close.png; Load From File 1 0 1 0 wxID_CANCEL cancel protected wxFILTER_NONE wxDefaultValidator wxNO_BORDER cancel 3 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY Find: m_staticText154 none wxFILTER_NONE wxDefaultValidator -1 3 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT 1 1 1 0 wxID_ANY 0 find_term public wxTE_NO_VSCROLL|wxTE_PROCESS_ENTER wxFILTER_NONE wxDefaultValidator wxWANTS_CHARS on_char on_text 3 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT 0 1 0 1 0 wxID_ANY &Previous find_previous protected wxFILTER_NONE wxDefaultValidator search_previous 3 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT 0 1 0 1 0 wxID_ANY &Next find_next protected wxFILTER_NONE wxDefaultValidator search_next wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::FindInFiles wxDEFAULT_DIALOG_STYLE Find in Files wxFILTER_NONE wxDefaultValidator on_key_up hsizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 1 0 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Search &Term: m_staticText2 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 "search" 1 1 0 wxID_ANY find_term public Padre::Wx::ComboBox::FindTerm; Padre::Wx::ComboBox::FindTerm wxFILTER_NONE wxDefaultValidator refresh 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Directory: m_staticText3 none wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 bSizer4 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 1 "find_directory" 1 1 0 wxID_ANY find_directory public 250,-1 Padre::Wx::ComboBox::History; Padre::Wx::ComboBox::History wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT 0 1 0 1 0 wxID_ANY &Browse directory protected 50,-1 wxFILTER_NONE wxDefaultValidator directory 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY File Types: m_staticText4 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 1 1 0 wxID_ANY find_types public 0 Padre::Wx::Choice::Files; Padre::Wx::Choice::Files wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline2 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY &Regular Expression find_regex public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY &Case Sensitive find_case public wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_OK &Find find public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 none 20 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel protected wxFILTER_NONE wxDefaultValidator 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::FoundInFiles 500,300 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL main_sizer wxVERTICAL none 0 wxALIGN_RIGHT|wxALL|wxEXPAND 0 top_sizer wxHORIZONTAL none 2 wxALIGN_BOTTOM|wxALL 0 1 1 0 wxID_ANY status protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 0 protected 0 2 wxALIGN_BOTTOM|wxBOTTOM|wxLEFT|wxTOP 0 share/icons/gnome218/16x16/actions/view-refresh.png; Load From File 1 0 1 0 wxID_ANY repeat protected wxBU_AUTODRAW Refresh Search wxFILTER_NONE wxDefaultValidator repeat_clicked 2 wxALIGN_BOTTOM|wxBOTTOM|wxLEFT|wxTOP 0 share/icons/gnome218/16x16/actions/zoom-in.png; Load From File 1 0 1 0 wxID_ANY expand_all protected wxBU_AUTODRAW Expand All wxFILTER_NONE wxDefaultValidator expand_all_clicked 2 wxALIGN_BOTTOM|wxBOTTOM|wxLEFT|wxTOP 0 share/icons/gnome218/16x16/actions/zoom-out.png; Load From File 1 0 1 0 wxID_ANY collapse_all protected wxBU_AUTODRAW Collapse All wxFILTER_NONE wxDefaultValidator collapse_all_clicked 2 wxALIGN_BOTTOM|wxALL 0 share/icons/gnome218/16x16/actions/stop.png; Load From File 1 0 1 0 wxID_ANY stop protected wxBU_AUTODRAW Stop Search wxFILTER_NONE wxDefaultValidator stop_clicked 0 wxEXPAND 1 1 1 0 wxID_ANY tree protected wxTR_FULL_ROW_HIGHLIGHT|wxTR_HAS_BUTTONS|wxTR_HIDE_ROOT|wxTR_SINGLE Padre::Wx::TreeCtrl; Padre::Wx::TreeCtrl wxFILTER_NONE wxDefaultValidator wxNO_BORDER 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Replace wxDEFAULT_DIALOG_STYLE Replace wxFILTER_NONE wxDefaultValidator on_close hsizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxLEFT|wxRIGHT|wxTOP 0 1 1 0 wxID_ANY Search &Term: m_staticText2 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 "search" 1 1 0 wxID_ANY find_term public Padre::Wx::ComboBox::FindTerm; Padre::Wx::ComboBox::FindTerm wxFILTER_NONE wxDefaultValidator refresh refresh 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline2 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxLEFT|wxRIGHT|wxTOP 0 1 1 0 wxID_ANY Replace &With: m_staticText3 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 "replace" 1 1 0 wxID_ANY replace_term public Padre::Wx::ComboBox::History; Padre::Wx::ComboBox::History wxFILTER_NONE wxDefaultValidator refresh 5 wxEXPAND | wxALL 0 1 1 0 wxID_ANY m_staticline3 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxBOTTOM|wxEXPAND 1 2 wxBOTH 1 10 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALL 1 0 1 1 0 wxID_ANY &Case Sensitive find_case public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Regular E&xpression find_regex public wxFILTER_NONE wxDefaultValidator refresh 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 0 1 0 wxID_OK &Find Next find_next public wxFILTER_NONE wxDefaultValidator find_next_clicked 5 wxALL 0 1 1 1 0 wxID_ANY &Replace replace public wxFILTER_NONE wxDefaultValidator replace_clicked 5 wxALL 0 1 0 1 0 wxID_ANY Replace &All replace_all public wxFILTER_NONE wxDefaultValidator replace_all_clicked 5 wxEXPAND 1 0 none 30 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel protected wxFILTER_NONE wxDefaultValidator on_close 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::ReplaceInFiles wxDEFAULT_DIALOG_STYLE Replace in Files wxFILTER_NONE wxDefaultValidator hsizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 1 0 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Search &Term: m_staticText2 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 "search" 1 1 0 wxID_ANY find_term public Padre::Wx::ComboBox::FindTerm; Padre::Wx::ComboBox::FindTerm wxFILTER_NONE wxDefaultValidator refresh 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Replace With: m_staticText21 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 "replace" 1 1 0 wxID_ANY replace_term public Padre::Wx::ComboBox::History; Padre::Wx::ComboBox::History wxFILTER_NONE wxDefaultValidator refresh 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Directory: m_staticText3 none wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 bSizer4 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 1 "find_directory" 1 1 0 wxID_ANY find_directory public 250,-1 Padre::Wx::ComboBox::History; Padre::Wx::ComboBox::History wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT 0 1 0 1 0 wxID_ANY &Browse directory protected 50,-1 wxFILTER_NONE wxDefaultValidator directory 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY File Types: m_staticText4 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 1 1 0 wxID_ANY find_types public 0 Padre::Wx::Choice::Files; Padre::Wx::Choice::Files wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline2 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY &Case Sensitive find_case public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY &Regular Expression find_regex public wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_OK &Replace replace public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 none 20 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel protected wxFILTER_NONE wxDefaultValidator 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Snippet -1,-1 wxDEFAULT_DIALOG_STYLE Insert Snippet wxFILTER_NONE wxDefaultValidator sizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 1 10 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Filter: filter_label none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY filter public 0 wxFILTER_NONE wxDefaultValidator refilter 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Snippet: name_label none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY select public 0 wxFILTER_NONE wxDefaultValidator refresh 5 wxEXPAND | wxALL 0 1 1 0 wxID_ANY m_staticline4 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxLEFT|wxTOP 0 1 1 0 wxID_ANY Preview: m_staticText11 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 wxSYS_COLOUR_MENU 1 1 0 wxID_ANY 0 preview public 300,200 wxTE_MULTILINE|wxTE_READONLY wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_ANY Insert insert public wxFILTER_NONE wxDefaultValidator insert_snippet 5 wxEXPAND 1 0 none 0 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel public wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Preferences -1,-1 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Padre Preferences wxFILTER_NONE wxDefaultValidator hsizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY treebook public Wx::Treebook; wxFILTER_NONE wxDefaultValidator Appearance 1 1 1 0 wxID_ANY m_panel5 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer116 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Function List m_staticText186 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline361 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 5 fgSizer241 wxFLEX_GROWMODE_SPECIFIED none 1 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Sort Order: m_staticText6 none wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY main_functions_order public 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Task List m_staticText190 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline40 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Item Regular Expression: m_staticText11 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY 0 main_tasks_regexp public 400,-1 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Miscellaneous m_staticText187 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline37 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Shorten the common path in window list window_list_shorten_path public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Coloured text in output window (ANSI) main_output_ansi public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Show low priority info messages on status bar (not in a popup) info_on_statusbar public wxFILTER_NONE wxDefaultValidator Autocomplete 0 1 1 0 wxID_ANY m_panel4 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer41 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Content Assist m_staticText36111 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline411 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Autocomplete always while typing autocomplete_always public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Autocomplete new methods in packages autocomplete_method public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Autocomplete new functions in scripts autocomplete_subroutine public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 5 fgSizer411 wxFLEX_GROWMODE_SPECIFIED none 6 5 0 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Minimum length of suggestions m_staticText271 none wxFILTER_NONE wxDefaultValidator -1 0 wxALL 0 1 1 0 wxID_ANY 1 64 1 lang_perl5_autocomplete_min_suggestion_len public wxSP_ARROW_KEYS wxFILTER_NONE wxDefaultValidator 0 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Maximum number of suggestions m_staticText281 none wxFILTER_NONE wxDefaultValidator -1 0 wxALL 0 1 1 0 wxID_ANY 5 256 5 lang_perl5_autocomplete_max_suggestions public wxSP_ARROW_KEYS wxFILTER_NONE wxDefaultValidator 0 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Minimum characters for autocomplete m_staticText291 none wxFILTER_NONE wxDefaultValidator -1 0 wxALL 0 1 1 0 wxID_ANY 1 16 1 lang_perl5_autocomplete_min_chars public wxSP_ARROW_KEYS wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Brace Assist m_staticText3511 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline4111 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Autocomplete brackets autocomplete_brackets public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Add another closing bracket if there already is one autocomplete_multiclosebracket public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY POD m_staticText35111 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline41111 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 0 1 wxBOTH 0 fgSizer413 wxFLEX_GROWMODE_SPECIFIED none 1 0 5 wxEXPAND 1 0 protected 0 5 wxALL 0 0 1 1 0 wxID_ANY Auto-fold POD markup when code folding enabled editor_fold_pod public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 Screen Layout 0 1 1 0 wxID_ANY m_panel10 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer118 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Tool Positions m_staticText1931 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline451 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 20 fgSizer29 wxFLEX_GROWMODE_SPECIFIED none 10 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Project Browser m_staticText195 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY main_directory_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Function List m_staticText194 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY main_functions_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY File Outline m_staticText1961 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY main_outline_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Task List m_staticText1971 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY main_tasks_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 wxID_ANY CPAN Explorer label_cpan protected wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 1 wxID_ANY main_cpan_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 wxID_ANY Version Control label_vcs protected wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 1 wxID_ANY main_vcs_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Syntax Check m_staticText201 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY main_syntax_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Output m_staticText202 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY main_output_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Find in Files m_staticText203 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY main_foundinfiles_panel public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Replace In Files m_staticText204 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY main_replaceinfiles_panel public 0 wxFILTER_NONE wxDefaultValidator Behaviour 0 1 1 0 wxID_ANY m_panel2 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer117 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Startup m_staticText191 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline41 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 5 fgSizer30 wxFLEX_GROWMODE_SPECIFIED none 1 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Open Files: m_staticText41 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND 0 1 1 0 wxID_ANY startup_files public 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Command line files open in existing Padre instance main_singleinstance public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Show splash screen startup_splash public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY New File Creation m_staticText192 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline42 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 1 5 400,-1 fgSizer28 wxFLEX_GROWMODE_SPECIFIED none 2 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Default Newline Format: m_staticText8 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY default_line_ending public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Default Project Directory: m_staticText5 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND 0 1 1 0 wxID_ANY Select a folder -1,-1 default_projects_directory public -1,-1 wxDIRP_DEFAULT_STYLE wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Editor Options m_staticText193 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline43 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 0 wxID_ANY Default word wrap on for each file editor_wordwrap public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Use X11 middle button paste style mid_button_paste public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Enable Smart highlighting while typing editor_smart_highlight_enable public wxFILTER_NONE wxDefaultValidator 5 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Save and Close m_staticText196 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline44 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Clean up file content on saving (for supported document types) save_autoclean public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 Editor Style 0 1 1 0 wxID_ANY m_panel3 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer4 wxVERTICAL none 5 0 2 wxBOTH 0 fgSizer91 wxFLEX_GROWMODE_SPECIFIED none 1 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Editor Style m_staticText341 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY editor_style public 0 Padre::Wx::Choice::Theme; Padre::Wx::Choice::Theme wxFILTER_NONE wxDefaultValidator preview_refresh 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline21 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 0 0 2 wxBOTH 1 20 fgSizer4 wxFLEX_GROWMODE_SPECIFIED none 4 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Cursor blink rate (milliseconds - 0 = off, 500 = default) m_staticText10 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY 4 editor_cursor_blink public -1,-1 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 0 1 1 0 wxID_ANY Show right margin at column editor_right_margin_enable public wxFILTER_NONE wxDefaultValidator preview_refresh 5 wxALL 0 1 1 0 wxID_ANY 3 editor_right_margin_column public wxFILTER_NONE wxDefaultValidator preview_refresh 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Editor Font m_staticText17 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 100 -1,-1 editor_font public 200,-1 wxFNTP_USE_TEXTCTRL wxFILTER_NONE wxDefaultValidator preview_refresh 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Editor Current Line Background Colour m_staticText18 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY editor_currentline_color public wxCLRP_DEFAULT_STYLE wxFILTER_NONE wxDefaultValidator preview_refresh 5 wxEXPAND 0 10 none 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Appearance Preview m_staticText331 none wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 Padre::Wx::Editor 1 1 0 wxID_ANY Padre::Wx::Editor preview public wxFILTER_NONE wxDefaultValidator Features 0 1 1 0 wxID_ANY m_panel11 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer121 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Bloat Reduction m_staticText2041 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline471 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxBOTTOM|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY Optional features can be disabled to simplify the user interface, reduce memory consumption and make Padre run faster. Changes to features are only applied when Padre is restarted. m_staticText205 none wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 10 protected 0 5 wxALL 0 0 1 1 0 wxID_ANY Editor Bookmark Support feature_bookmark public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Editor Code Folding feature_folding public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Editor Cursor Memory feature_cursormemory public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Editor Session Support feature_session public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Editor Syntax Annotations feature_syntax_check_annotations public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Editor Diff Feature feature_document_diffs public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY CPAN Explorer Tool feature_cpan public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Graphical Debugger Tool feature_debugger public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Version Control Tool feature_vcs_support public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Change Font Size (Outside Preferences) feature_fontsize public wxFILTER_NONE wxDefaultValidator Indentation 0 1 1 0 wxID_ANY m_panel1 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer113 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Indent Settings m_staticText183 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline36 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 0 bSizer1131 wxHORIZONTAL none 5 wxEXPAND 1 bSizer114 wxVERTICAL none 5 wxALL 0 0 1 1 0 wxID_ANY Use tabs instead of spaces editor_indent_tab public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 5 fgSizer24 wxFLEX_GROWMODE_SPECIFIED none 2 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Indent Spaces: m_staticText3 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY 8 10 1 editor_indent_width public -1,-1 wxSP_ARROW_KEYS wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Tab Spaces: m_staticText2 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY 8 16 1 editor_indent_tab_width public wxSP_ARROW_KEYS wxFILTER_NONE wxDefaultValidator 5 0 0 protected 20 5 wxALIGN_LEFT|wxALIGN_TOP|wxALL 1 1 0 1 0 wxID_ANY Guess from Current Document editor_indent_guess protected wxFILTER_NONE wxDefaultValidator guess 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Indent Detection m_staticText184 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline34 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Detect indent settings for each file editor_indent_auto public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Autoindent m_staticText185 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline351 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 5 fgSizer23 wxFLEX_GROWMODE_SPECIFIED none 2 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Indent on Newline: m_staticText4 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY editor_autoindent public 0 wxFILTER_NONE wxDefaultValidator Key Bindings 0 1 1 0 wxID_ANY keybindings_panel protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL sizer wxVERTICAL none 5 wxEXPAND 0 filter_sizer wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY &Filter: m_staticText59 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL 1 1 1 0 wxID_ANY 0 filter protected wxFILTER_NONE wxDefaultValidator _update_list 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY list protected wxLC_REPORT|wxLC_SINGLE_SEL Padre::Wx::ListView; Padre::Wx::ListView wxFILTER_NONE wxDefaultValidator _on_list_col_click _on_list_item_selected 0 wxEXPAND 0 bottom_sizer wxHORIZONTAL none 0 wxEXPAND 0 0 protected 15 5 wxALIGN_CENTER 0 1 1 0 wxID_ANY Shortcut: shortcut_label protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 0 protected 0 5 wxEXPAND 1 ctrl_alt_sizer wxVERTICAL none 5 wxALL 0 1 1 1 0 wxID_ANY Ctrl ctrl protected wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Alt alt protected wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY + plus1_label protected wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL 0 0 1 1 0 wxID_ANY Shift shift protected wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER|wxALL 0 1 1 0 wxID_ANY + plus2_label protected wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY key protected 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 0 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 button_sizer wxHORIZONTAL none 5 wxALL 0 1 0 1 0 wxID_ANY S&et button_set protected Sets the keyboard binding wxFILTER_NONE wxDefaultValidator _on_set_button 5 wxALL 0 1 0 1 0 wxID_ANY &Delete button_delete protected Delete the keyboard binding wxFILTER_NONE wxDefaultValidator _on_delete_button 5 wxALL 0 1 0 1 0 wxID_ANY &Reset button_reset protected Reset to default shortcut wxFILTER_NONE wxDefaultValidator _on_reset_button 0 wxEXPAND 0 0 protected 15 File Handling 0 1 1 0 wxID_ANY m_panel8 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer120 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Change Detection m_staticText197 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline45 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 5 fgSizer34 wxFLEX_GROWMODE_SPECIFIED none 1 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Local file update poll interval in seconds (0 to disable) m_staticText9 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxEXPAND 0 1 1 0 wxID_ANY 0 10 0 update_file_from_disk_interval public wxSP_ARROW_KEYS wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Open HTTP Files m_staticText198 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline46 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 5 fgSizer35 wxFLEX_GROWMODE_SPECIFIED none 1 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Timeout (seconds) m_staticText31 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY 10 900 10 file_http_timeout public wxSP_ARROW_KEYS wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Open FTP Files m_staticText199 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline47 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Use FTP passive mode file_ftp_passive public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 5 fgSizer36 wxFLEX_GROWMODE_SPECIFIED none 1 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Timeout (seconds) m_staticText33 none wxFILTER_NONE wxDefaultValidator -1 5 0 1 1 0 wxID_ANY 10 900 10 file_ftp_timeout public wxSP_ARROW_KEYS wxFILTER_NONE wxDefaultValidator Language - Perl 5 0 1 1 0 wxID_ANY m_panel7 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer71 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Language Integration m_staticText39 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline10 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Enable Perl beginner mode lang_perl5_beginner public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 2 wxBOTH 1 5 500,-1 fgSizer25 wxFLEX_GROWMODE_SPECIFIED none 2 5 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Perl Executable: m_staticText34 none wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY 0 run_perl_cmd public wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY Perl Ctags File: m_staticText26 none wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY Select a file lang_perl5_tags_file public wxFLP_DEFAULT_STYLE wxFILTER_NONE wxDefaultValidator *.* 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Script Execution m_staticText189 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline39 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Use external window for execution run_use_external_window public wxFILTER_NONE wxDefaultValidator 5 0 2 wxBOTH 0 fgSizer71 wxFLEX_GROWMODE_ALL none 5 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Perl Arguments m_staticText35 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 run_interpreter_args_default public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 0 wxID_ANY Include directory: -I<dir> Enable tainting checks: -T Enable many useful warnings: -w Enable all warnings: -W Disable all warnings: -X m_staticText36 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Script Arguments m_staticText37 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 run_script_args_default public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 Language - Perl 6 0 1 1 0 wxID_ANY m_panel6 none wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer711 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Language Integration m_staticText391 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 1 1 0 wxID_ANY m_staticline101 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 0 2 wxBOTH 0 fgSizer711 wxFLEX_GROWMODE_ALL none 5 0 5 wxALL 0 0 1 1 0 wxID_ANY Detect Perl 6 files lang_perl6_auto_detection public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 0 protected 0 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALIGN_RIGHT 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_OK &Save save protected wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 0 1 0 wxID_ANY &Advanced... advanced protected wxFILTER_NONE wxDefaultValidator advanced 5 wxALL 0 1 0 1 0 wxID_ANY &Cancel cancel protected wxFILTER_NONE wxDefaultValidator cancel 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Sync -1,-1 wxDEFAULT_DIALOG_STYLE Padre Sync wxFILTER_NONE wxDefaultValidator hsizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxEXPAND 0 2 wxBOTH 1 0 fgSizer3 wxFLEX_GROWMODE_SPECIFIED none 2 0 3 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Server: m_staticText12 none wxFILTER_NONE wxDefaultValidator -1 3 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 txt_remote protected wxFILTER_NONE wxDefaultValidator http://sync.perlide.org/ 3 wxALL 0 1 1 0 wxID_ANY Status: m_staticText13 none wxFILTER_NONE wxDefaultValidator -1 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 1 1 1 ,90,92,-1,70,0 0 wxID_ANY Logged out lbl_status protected wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxTOP 0 1 1 0 wxID_ANY line1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 bSizer7 wxHORIZONTAL none 5 wxEXPAND 1 wxID_ANY Authentication sbSizer1 wxVERTICAL none 5 wxEXPAND 0 2 wxHORIZONTAL 1 0 fgSizer1 wxFLEX_GROWMODE_SPECIFIED none 3 0 3 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Email: m_staticText2 none wxFILTER_NONE wxDefaultValidator -1 3 wxALL|wxEXPAND 1 1 1 0 wxID_ANY 0 login_email protected wxFILTER_NONE wxDefaultValidator 3 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Password: m_staticText3 none wxFILTER_NONE wxDefaultValidator -1 3 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 login_password protected wxTE_PASSWORD wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 none 0 3 wxALIGN_RIGHT|wxALL 0 1 0 1 0 wxID_ANY Login btn_login protected wxFILTER_NONE wxDefaultValidator btn_login 5 wxEXPAND 0 0 none 10 5 wxEXPAND 1 wxID_ANY Registration sbSizer2 wxVERTICAL none 5 wxEXPAND 1 2 wxHORIZONTAL 1 0 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 6 0 3 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Email: m_staticText8 none wxFILTER_NONE wxDefaultValidator -1 3 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 txt_email protected wxFILTER_NONE wxDefaultValidator 3 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Confirm: m_staticText9 none wxFILTER_NONE wxDefaultValidator -1 3 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 txt_email_confirm protected wxFILTER_NONE wxDefaultValidator 3 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Password: m_staticText6 none wxFILTER_NONE wxDefaultValidator -1 3 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 txt_password protected wxTE_PASSWORD wxFILTER_NONE wxDefaultValidator 3 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Confirm: m_staticText7 none wxFILTER_NONE wxDefaultValidator -1 3 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 txt_password_confirm protected wxTE_PASSWORD wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 none 0 3 wxALIGN_RIGHT|wxALL 0 1 0 1 0 wxID_ANY Register btn_register protected wxFILTER_NONE wxDefaultValidator btn_register 5 wxBOTTOM|wxEXPAND|wxTOP 0 1 1 0 wxID_ANY line none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 0 wxALIGN_RIGHT|wxEXPAND 0 buttons wxHORIZONTAL none 3 wxALL 0 1 0 0 0 wxID_ANY Upload btn_local protected wxFILTER_NONE wxDefaultValidator btn_local 3 wxALL 0 1 0 0 0 wxID_ANY Download btn_remote protected wxFILTER_NONE wxDefaultValidator btn_remote 3 wxALL 0 1 0 0 0 wxID_ANY Delete btn_delete protected wxFILTER_NONE wxDefaultValidator btn_delete 3 wxEXPAND 1 0 none 50 3 wxALL 0 1 0 1 0 wxID_OK Close btn_ok protected wxFILTER_NONE wxDefaultValidator btn_ok 1 1 impl_virtual 0 wxID_ANY -1,-1 Padre::Wx::FBP::Text 300,300 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER wxFILTER_NONE wxDefaultValidator hsizer wxHORIZONTAL none 5 wxEXPAND 1 vsizer wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY 0 250,250 text public wxTE_MULTILINE wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxEXPAND 1 0 none 20 5 wxALL 0 1 1 1 0 wxID_CANCEL Close close public wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Special -1,-1 wxDEFAULT_DIALOG_STYLE Insert Special Values wxFILTER_NONE wxDefaultValidator hsizer wxHORIZONTAL none 5 wxEXPAND 1 vsizer wxVERTICAL none 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY select public 0 wxFILTER_NONE wxDefaultValidator refresh 5 wxALL|wxEXPAND 0 wxSYS_COLOUR_MENU 1 1 ,90,92,-1,70,0 0 wxID_ANY 0 preview public 300,50 wxTE_MULTILINE|wxTE_READONLY wxFILTER_NONE wxDefaultValidator 5 wxEXPAND | wxALL 0 1 1 0 wxID_ANY m_staticline221 protected wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_ANY Insert insert public wxFILTER_NONE wxDefaultValidator insert_preview 5 wxEXPAND 1 0 none 0 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel public wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Expression wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Evaluate Expression wxFILTER_NONE wxDefaultValidator bSizer35 wxVERTICAL none 3 wxEXPAND 0 bSizer36 wxHORIZONTAL none 5 wxEXPAND|wxLEFT|wxTOP 1 "Padre::Current->config" "Padre::Current->editor" "Padre::Current->document" "Padre::Current->ide" "Padre::Current->ide->task_manager" "Padre::Wx::Display->dump" "\\@INC, \\%INC" 1 1 0 wxID_ANY code protected wxTE_PROCESS_ENTER wxFILTER_NONE wxDefaultValidator on_combobox on_text on_text_enter 5 wxLEFT|wxTOP 0 1 0 1 0 wxID_ANY Evaluate evaluate protected wxFILTER_NONE wxDefaultValidator evaluate_clicked 5 wxLEFT|wxRIGHT|wxTOP 0 1 1 0 wxID_ANY Watch watch protected wxFILTER_NONE wxDefaultValidator 0 watch_clicked 5 wxALL|wxEXPAND 1 1 1 ,90,90,-1,76,0 0 wxID_ANY 0 500,400 output protected wxTE_MULTILINE|wxTE_READONLY wxFILTER_NONE wxDefaultValidator 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Syntax 500,300 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer37 wxVERTICAL none 0 wxEXPAND 1 bSizer38 wxHORIZONTAL none 0 wxALL|wxEXPAND 3 1 1 0 wxID_ANY tree protected wxTR_FULL_ROW_HIGHLIGHT|wxTR_SINGLE Padre::Wx::TreeCtrl; Padre::Wx::TreeCtrl wxFILTER_NONE wxDefaultValidator wxNO_BORDER on_tree_item_selection_changed 0 wxALL|wxEXPAND 2 1 1 0 wxID_ANY help protected Padre::Wx::HtmlWindow; Padre::Wx::HtmlWindow wxFILTER_NONE wxDefaultValidator wxNO_BORDER 0 wxEXPAND 0 bSizer39 wxHORIZONTAL none 2 wxALL|wxBOTTOM|wxTOP 0 1 0 1 0 wxID_ANY Show Standard Error show_stderr protected wxFILTER_NONE wxDefaultValidator show_stderr wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Patch -1,-1 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Patch wxFILTER_NONE wxDefaultValidator -1,-1 sizer wxHORIZONTAL none 1 wxALL 0 vsizer wxVERTICAL none 5 wxEXPAND 0 wxID_ANY File-1 file_1 wxVERTICAL none 5 wxALL 0 1 1 0 wxID_ANY file1 public 0 200,-1 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 wxID_ANY Options sbSizer2 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALL 0 "Patch" "Diff" 1 1 0 wxID_ANY Action 1 action public 0 wxRA_SPECIFY_COLS wxFILTER_NONE wxDefaultValidator on_action 5 wxEXPAND 1 0 protected 0 5 wxALL 0 "File-2" "SVN" 1 0 0 wxID_ANY Against 2 against public 0 wxRA_SPECIFY_COLS wxFILTER_NONE wxDefaultValidator on_against 5 wxEXPAND 0 wxID_ANY File-2 file_2 wxVERTICAL none 5 wxALL 1 1 1 0 wxID_ANY 200,-1 file2 public 0 wxFILTER_NONE wxDefaultValidator 3 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 0 1 0 wxID_ANY Process process public wxFILTER_NONE wxDefaultValidator process_clicked 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 1 0 wxID_CANCEL Close close_button none wxFILTER_NONE wxDefaultValidator 5 wxEXPAND | wxALL 0 1 1 0 wxID_ANY m_staticline5 protected wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::About -1,-1 wxDEFAULT_DIALOG_STYLE About wxFILTER_NONE wxDefaultValidator bSizer45 wxVERTICAL none 5 wxEXPAND | wxALL 0 1 1 0 wxID_ANY notebook public -1,-1 wxFILTER_NONE wxDefaultValidator Padre 0 1 1 ,90,91,-1,70,0 0 wxID_ANY padre protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer17 wxVERTICAL none 5 wxALIGN_CENTER|wxTOP 0 1 1 0 wxID_ANY splash protected 400,250 wxFILTER_NONE wxDefaultValidator 5 wxLEFT|wxRIGHT|wxTOP 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Perl Application Development and Refactoring Environment m_staticText6511 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Created by Gábor Szabó creator public wxFILTER_NONE wxDefaultValidator -1 0 wxEXPAND | wxALL 0 1 1 0 wxID_ANY m_staticline271 protected wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 -1,-1 bSizer81 wxVERTICAL none 5 wxALL 0 1 1 0 wxID_ANY Copyright 2008–2013 The Padre Development Team Padre is free software; you can redistribute it and/or modify it under the same terms as Perl 5. m_staticText34 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 ,90,90,-1,70,0 0 wxID_ANY Blue butterfly on a green leaf splash image is based on work by Jerry Charlotte (blackbutterfly) m_staticText67 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Padre contains icons from GNOME, you can redistribute it and/or modify then under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 dated June, 1991. m_staticText35 protected wxFILTER_NONE wxDefaultValidator -1 Development 1 1 1 0 wxID_ANY development protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer3 wxVERTICAL none 5 wxEXPAND 0 3 0 gSizer3 none 0 0 5 wxALL 0 1 1 0 wxID_ANY Gabor Szabo m_staticText1 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Adam Kennedy m_staticText2 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Ahmad Zawawi m_staticText3 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Peter Lavender m_staticText4 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Sebastian Willing m_staticText66 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Jerome Quelin m_staticText571 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Steffen Muller m_staticText69 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Zeno Gantner m_staticText70 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Andrew Bramble m_staticText721 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Breno G. de Oliveira m_staticText8 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Fayland Lam m_staticText55 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Kevin Dawson m_staticText73 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Ryan Niebur m_staticText65 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Heiko Jansen m_staticText561 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Alexandr Ciornii m_staticText6 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Cezary Morga m_staticText40 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Brian Cassidy m_staticText39 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Chris Dolan m_staticText411 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Patrick Donelan m_staticText64 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Tom Eliaz m_staticText53 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Burak Gursoy m_staticText711 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Kenichi Ishigaki m_staticText611 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Keedi Kim m_staticText60 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Max Maischein m_staticText621 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Olivier Mengue m_staticText63 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Paweł Murias m_staticText671 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Claudio Ramirez m_staticText42 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Kaare Rasmussen m_staticText58 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Petar Shangov m_staticText68 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Kartik Thakore m_staticText59 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Aaron Trevena m_staticText5 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Gabriel Vieira m_staticText56 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Blake Willmarth m_staticText7 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY code4pay m_staticText54 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Sven Dowideit m_staticText541 protected wxFILTER_NONE wxDefaultValidator -1 Translation 0 1 1 0 wxID_ANY translation protected -1,-1 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer31 wxVERTICAL none 0 wxEXPAND 0 3 0 gSizer311 none 0 0 4 0 bSizer623 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Arabic m_staticText4723 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Ahmad Zawawi ahmad_zawawi public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer621 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Chinese (Simplified) m_staticText4721 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Fayland Lam fayland_lam public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Chuanren Wu chuanren_wu public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer622 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Chinese (Traditional) m_staticText4722 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Matthew Lien matthew_lien public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6221 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Czech m_staticText47221 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Marcela Maslanova marcela_maslanova public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6222 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Dutch m_staticText47222 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Dirk De Nijs dirk_de_nijs public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6223 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY French m_staticText47223 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Jerome Quelin jerome_quelin public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Olivier Mengue olivier_mengue public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6224 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY German m_staticText47224 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Heiko Jansen heiko_jansen public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Sebastian Willing sebastian_willing public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Zeno Gantner zeno_gantner public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6225 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Hebrew m_staticText47225 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Omer Zak omer_zak public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Shlomi Fish shlomi_fish public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Amir E. Aharoni amir_e_aharoni public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6226 wxVERTICAL none 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Hungarian m_staticText47226 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Gyorgy Pasztor gyorgy_pasztor public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6227 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Italian m_staticText47227 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Simone Blandino simone_blandino public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6228 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Japanese m_staticText47228 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Kenichi Ishigaki kenichi_ishigaki public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer6229 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Korean m_staticText47229 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Keedi Kim keedi_kim public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer62210 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Norwegian m_staticText472210 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Kjetil Skotheim kjetil_skotheim public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer62211 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Polish m_staticText472211 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Cezary Morga cezary_morga public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Marek Roszkowski marek_roszkowski public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer62212 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Portuguese (Brazil) m_staticText472212 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Breno G. de Oliveira breno_g_de_oliveira public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Gabriel Vieira gabriel_vieira public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer62213 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Spanish m_staticText472213 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Paco Alguacil paco_alguacil public wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Enrique Nell enrique_nell public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer62214 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Russian m_staticText472214 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Andrew Shitov andrew_shitov public wxFILTER_NONE wxDefaultValidator -1 4 0 bSizer62215 wxVERTICAL none 4 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Turkish m_staticText472215 protected wxFILTER_NONE wxDefaultValidator -1 2 wxALL 0 1 1 0 wxID_ANY Burak Gursoy burak_gursoy public wxFILTER_NONE wxDefaultValidator -1 Information 0 1 1 0 wxID_ANY Information protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer32 wxVERTICAL none 10 wxALIGN_CENTER|wxALL|wxEXPAND 1 1 1 ,90,90,-1,76,0 0 wxID_ANY 0 -1,-1 output public wxTE_MULTILINE|wxTE_NO_VSCROLL|wxTE_READONLY wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 buttons wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 1 0 wxID_CANCEL Close close_button none wxFILTER_NONE wxDefaultValidator 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::VCS 195,530 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL main_sizer wxVERTICAL none 5 wxALL|wxEXPAND 0 button_sizer wxHORIZONTAL none 1 wxALL 0 1 0 1 0 wxID_ANY add protected wxBU_AUTODRAW Schedule the file or directory for addition to the repository wxFILTER_NONE wxDefaultValidator on_add_click 1 wxALL 0 1 0 1 0 wxID_ANY delete protected wxBU_AUTODRAW Schedule the file or directory for deletion from the repository wxFILTER_NONE wxDefaultValidator on_delete_click 1 wxALL 0 1 0 1 0 wxID_ANY update protected wxBU_AUTODRAW Bring changes from the repository into the working copy wxFILTER_NONE wxDefaultValidator on_update_click 1 wxALL 0 1 0 1 0 wxID_ANY commit protected wxBU_AUTODRAW Send changes from your working copy to the repository wxFILTER_NONE wxDefaultValidator on_commit_click 1 wxALL 0 1 0 1 0 wxID_ANY revert protected wxBU_AUTODRAW Restore pristine working copy file (undo most local edits) wxFILTER_NONE wxDefaultValidator on_revert_click 1 wxALL 0 1 0 1 0 wxID_ANY refresh protected wxBU_AUTODRAW Refresh the status of working copy files and directories wxFILTER_NONE wxDefaultValidator on_refresh_click 5 wxEXPAND|wxLEFT|wxRIGHT 1 1 1 0 wxID_ANY list protected wxLC_REPORT|wxLC_SINGLE_SEL wxFILTER_NONE wxDefaultValidator on_list_column_click 5 wxEXPAND|wxLEFT|wxRIGHT 0 wxID_ANY Show checkbox_sizer wxVERTICAL none 2 wxALL 0 0 1 1 0 wxID_ANY Normal show_normal protected wxFILTER_NONE wxDefaultValidator on_show_normal_click 2 wxALL 0 0 1 1 0 wxID_ANY Unversioned show_unversioned protected wxFILTER_NONE wxDefaultValidator on_show_unversioned_click 2 wxALL 0 0 1 1 0 wxID_ANY Ignored show_ignored protected wxFILTER_NONE wxDefaultValidator on_show_ignored_click 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 status protected -1,50 wxTE_MULTILINE|wxTE_READONLY wxFILTER_NONE wxDefaultValidator 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Outline 195,530 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL main_sizer wxVERTICAL none 1 wxEXPAND 0 1 1 0 wxID_ANY 0 search protected wxFILTER_NONE wxDefaultValidator wxSIMPLE_BORDER 1 wxALL|wxEXPAND 1 1 1 0 wxID_ANY tree protected wxTR_HAS_BUTTONS|wxTR_HIDE_ROOT|wxTR_LINES_AT_ROOT|wxTR_SINGLE Padre::Wx::TreeCtrl; Padre::Wx::TreeCtrl wxFILTER_NONE wxDefaultValidator wxNO_BORDER wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Diff 431,345 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Diff wxFILTER_NONE wxDefaultValidator main_sizer wxVERTICAL none 5 wxALIGN_RIGHT 0 navigation_sizer wxHORIZONTAL none 1 wxALL 0 1 0 1 0 wxID_ANY MyButton prev_diff protected wxBU_AUTODRAW wxFILTER_NONE wxDefaultValidator on_prev_diff_click 1 wxALL 0 1 0 1 0 wxID_ANY MyButton next_diff protected wxBU_AUTODRAW wxFILTER_NONE wxDefaultValidator on_next_diff_click 5 wxEXPAND 1 editor_sizer wxHORIZONTAL none 5 wxEXPAND 1 left_sizer wxVERTICAL none 5 wxALIGN_CENTER_HORIZONTAL|wxALL 0 1 1 0 wxID_ANY Left side left_side_label protected wxFILTER_NONE wxDefaultValidator -1 0 wxALL|wxEXPAND 1 Wx::ScintillaTextCtrl 1 1 0 wxID_ANY left_editor protected wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 right_sizer wxVERTICAL none 5 wxALIGN_CENTER|wxALL 0 1 1 0 wxID_ANY Right side right_side_label protected wxFILTER_NONE wxDefaultValidator -1 0 wxALL|wxEXPAND 1 Wx::ScintillaTextCtrl 1 1 0 wxID_ANY right_editor protected wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 button_sizer wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 2 wxALL 0 1 0 1 0 wxID_ANY Close close protected wxFILTER_NONE wxDefaultValidator on_close_click 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::CPAN 235,530 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL on_search_text main_sizer wxVERTICAL none 5 wxEXPAND | wxALL 1 1 1 0 wxID_ANY m_notebook protected wxFILTER_NONE wxDefaultValidator Search 1 1 1 0 wxID_ANY search_panel protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL search_panel_sizer wxVERTICAL none 1 wxALL|wxEXPAND 0 search_sizer wxHORIZONTAL none 0 wxALIGN_CENTER_VERTICAL 1 1 1 0 wxID_ANY 0 search protected wxFILTER_NONE wxDefaultValidator on_search_text 1 wxALL|wxEXPAND 1 1 1 0 wxID_ANY search_list protected wxLC_REPORT|wxLC_SINGLE_SEL wxFILTER_NONE wxDefaultValidator on_search_list_column_click on_list_item_selected Recent 0 1 1 0 wxID_ANY recent_panel protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL recent_panel_sizer wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY recent_list protected wxLC_REPORT|wxLC_SINGLE_SEL wxFILTER_NONE wxDefaultValidator on_recent_list_column_click on_list_item_selected 1 wxALIGN_CENTER|wxALL 0 1 0 1 0 wxID_ANY Refresh refresh_recent protected wxFILTER_NONE wxDefaultValidator on_refresh_recent_click Favorite 0 1 1 0 wxID_ANY favorite_panel protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL favorite_panel_sizer wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY favorite_list protected wxLC_REPORT|wxLC_SINGLE_SEL wxFILTER_NONE wxDefaultValidator on_favorite_list_column_click on_list_item_selected 1 wxALIGN_CENTER|wxALL 0 1 0 1 0 wxID_ANY Refresh refresh_favorite protected wxFILTER_NONE wxDefaultValidator on_refresh_favorite_click 1 wxALL|wxEXPAND 1 253,252,187 1 1 0 wxID_ANY doc protected Padre::Wx::HtmlWindow; Padre::Wx::HtmlWindow wxFILTER_NONE wxDefaultValidator wxSTATIC_BORDER 5 wxEXPAND 0 2 wxBOTH 0 button_sizer wxFLEX_GROWMODE_SPECIFIED none 2 0 2 wxALL|wxEXPAND 0 1 0 1 0 wxID_ANY Insert Synopsis synopsis protected wxFILTER_NONE wxDefaultValidator on_synopsis_click 2 wxALL 0 1 0 1 0 wxID_ANY MetaCPAN... metacpan protected wxFILTER_NONE wxDefaultValidator on_metacpan_click 2 wxALL|wxEXPAND 0 1 0 1 0 wxID_ANY Install install protected wxFILTER_NONE wxDefaultValidator on_install_click 1 1 impl_virtual 0 wxID_ANY -1,-1 Padre::Wx::FBP::Breakpoints 195,530 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer10 wxVERTICAL none 5 wxEXPAND 0 -1,-1 button_sizer wxHORIZONTAL none 5 wxALL 0 1 0 1 0 wxID_ANY delete_not_breakable protected wxBU_AUTODRAW Delete MARKER_NOT_BREAKABLE Current File Only wxFILTER_NONE wxDefaultValidator on_delete_not_breakable_clicked 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 0 1 0 wxID_ANY refresh protected wxBU_AUTODRAW Refresh List wxFILTER_NONE wxDefaultValidator on_refresh_click 5 wxALL 0 1 0 1 0 wxID_ANY MyButton set_breakpoints protected wxBU_AUTODRAW Set Breakpoints (toggle) wxDefaultValidator on_set_breakpoints_clicked 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY -1,-1 list protected -1,-1 wxLC_REPORT|wxLC_SINGLE_SEL wxFILTER_NONE wxDefaultValidator _on_list_item_selected 5 wxEXPAND 0 wxID_ANY Show checkbox_sizer wxHORIZONTAL none 2 wxALL 0 0 1 1 0 wxID_ANY project show_project protected show breakpoints in project wxFILTER_NONE wxDefaultValidator on_show_project_click 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 0 1 0 wxID_ANY MyButton delete_project_bp protected wxBU_AUTODRAW Delete all project Breakpoints wxFILTER_NONE wxDefaultValidator on_delete_project_bp_clicked 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::DebugOutput 500,300 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL main_sizer wxVERTICAL none 2 wxALIGN_RIGHT|wxALL|wxEXPAND 0 top_sizer wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 1 1 0 wxID_ANY Status status public wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 0 wxID_ANY Debug Launch Options: debug_launch_options protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY none dl_options public wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 0 protected 0 0 wxALL|wxEXPAND 1 1 1 0 wxID_ANY 0 output public wxTE_MULTILINE|wxTE_READONLY wxFILTER_NONE wxDefaultValidator wxSIMPLE_BORDER 1 1 impl_virtual 0 wxID_ANY -1,-1 Padre::Wx::FBP::Debugger 235,530 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer10 wxVERTICAL none 5 wxEXPAND 0 -1,-1 button_sizer wxHORIZONTAL none 1 wxALL 0 1 0 1 0 wxID_ANY debug protected wxBU_AUTODRAW Run Debug BLUE MORPHO CATERPILLAR cool bug wxFILTER_NONE wxDefaultValidator on_debug_clicked 5 wxALL 0 1 0 1 0 wxID_ANY MyButton step_in protected wxBU_AUTODRAW s [expr] Single step. Executes until the beginning of another statement, descending into subroutine calls. If an expression is supplied that includes function calls, it too will be single-stepped. wxFILTER_NONE wxDefaultValidator wxNO_BORDER on_step_in_clicked 5 wxALL 0 1 0 1 0 wxID_ANY MyButton step_over protected wxBU_AUTODRAW n [expr] Next. Executes over subroutine calls, until the beginning of the next statement. If an expression is supplied that includes function calls, those functions will be executed with stops before each statement. wxFILTER_NONE wxDefaultValidator wxNO_BORDER on_step_over_clicked 5 wxALL 0 1 0 1 0 wxID_ANY MyButton step_out protected wxBU_AUTODRAW r Continue until the return from the current subroutine. Dump the return value if the PrintRet option is set (default). wxFILTER_NONE wxDefaultValidator wxNO_BORDER on_step_out_clicked 5 wxALL 0 1 0 1 0 wxID_ANY MyButton run_till protected wxBU_AUTODRAW c [line|sub] Continue, optionally inserting a one-time-only breakpoint at the specified line or subroutine. wxFILTER_NONE wxDefaultValidator wxNO_BORDER on_run_till_clicked 5 wxALL 0 1 0 1 0 wxID_ANY MyButton display_value protected wxBU_AUTODRAW Display Value wxFILTER_NONE wxDefaultValidator wxNO_BORDER on_display_value_clicked 5 wxALL 0 1 0 1 0 wxID_ANY MyButton quit_debugger protected wxBU_AUTODRAW Quit Debugger wxFILTER_NONE wxDefaultValidator wxNO_BORDER on_quit_debugger_clicked 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY -1,-1 variables protected -1,-1 wxLC_REPORT|wxLC_SINGLE_SEL wxFILTER_NONE wxDefaultValidator _on_list_item_selected 5 wxEXPAND 0 wxID_ANY Show checkbox_sizer wxVERTICAL none 2 wxALL 0 1 1 1 0 wxID_ANY Show Local Variables show_local_variables public y [level [vars]] Display all (or some) lexical variables (mnemonic: mY variables) in the current scope or level scopes higher. You can limit the variables that you see with vars which works exactly as it does for the V and X commands. Requires the PadWalker module version 0.08 or higher; will warn if this isn't installed. Output is pretty-printed in the same style as for V and the format is controlled by the same options. wxFILTER_NONE wxDefaultValidator on_show_local_variables_checked 5 wxALL 0 0 1 1 0 wxID_ANY Show Global Variables show_global_variables protected working now with some gigery pokery to get around Intermitent Error, You can't FIRSTKEY with the %~ hash wxFILTER_NONE wxDefaultValidator on_show_global_variables_checked 5 wxEXPAND 0 wxID_ANY Debug-Output Options debug_output_options wxVERTICAL none 5 wxEXPAND 0 bSizer11 wxHORIZONTAL none 5 wxALL 0 0 1 1 0 wxID_ANY Trace trace public t Toggle trace mode (see also the AutoTrace option). wxFILTER_NONE wxDefaultValidator on_trace_checked 5 wxALL 0 1 0 1 0 wxID_ANY Dot dot protected wxBU_AUTODRAW . Return to the executed line. wxFILTER_NONE wxDefaultValidator on_dot_clicked 5 wxALL 0 1 0 1 0 wxID_ANY v view_around protected wxBU_AUTODRAW v [line] View window around line. wxFILTER_NONE wxDefaultValidator on_view_around_clicked 5 wxALL 0 1 0 1 0 wxID_ANY L list_action protected wxBU_AUTODRAW L [abw] List (default all) actions, breakpoints and watch expressions wxFILTER_NONE wxDefaultValidator on_list_action_clicked 5 wxEXPAND 0 option_button_sizer wxHORIZONTAL none 5 wxALL 0 1 0 1 0 wxID_ANY b|B running_bp protected wxBU_AUTODRAW Toggle running breakpoints (update DB) b Sets breakpoint on current line B line Delete a breakpoint from the specified line. wxFILTER_NONE wxDefaultValidator on_running_bp_clicked 5 wxALL 0 1 0 1 0 wxID_ANY M module_versions protected wxBU_AUTODRAW M Display all loaded modules and their versions. wxFILTER_NONE wxDefaultValidator on_module_versions_clicked 5 wxALL 0 1 0 1 0 wxID_ANY T stacktrace protected wxBU_AUTODRAW T Produce a stack backtrace. wxFILTER_NONE wxDefaultValidator on_stacktrace_clicked 5 wxALL 0 1 0 1 0 wxID_ANY E all_threads protected wxBU_AUTODRAW E Display all thread ids the current one will be identified: <n>. wxFILTER_NONE wxDefaultValidator on_all_threads_clicked 5 wxALL 0 1 0 1 0 wxID_ANY o display_options protected wxBU_AUTODRAW o Display all options. o booloption ... Set each listed Boolean option to the value 1. o anyoption? ... Print out the value of one or more options. o option=value ... Set the value of one or more options. If the value has internal whitespace, it should be quoted. For example, you could set o pager="less -MQeicsNfr" to call less with those specific options. You may use either single or double quotes, but if you do, you must escape any embedded instances of same sort of quote you began with, as well as any escaping any escapes that immediately precede that quote but which are not meant to escape the quote itself. In other words, you follow single-quoting rules irrespective of the quote; eg: o option='this isn't bad' or o option="She said, "Isn't it?"" . For historical reasons, the =value is optional, but defaults to 1 only where it is safe to do so--that is, mostly for Boolean options. It is always better to assign a specific value using = . The option can be abbreviated, but for clarity probably should not be. Several options can be set together. See Configurable Options for a list of these. wxFILTER_NONE wxDefaultValidator on_display_options_clicked 5 wxEXPAND | wxALL 0 1 1 0 wxID_ANY m_staticline32 protected wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 with_options wxHORIZONTAL none 5 wxALL 0 1 0 1 0 wxID_ANY p|x evaluate_expression protected wxBU_AUTODRAW Evaluate expression $ -> p @ -> x % -> x p expr Same as print {$DB::OUT} expr in the current package. In particular, because this is just Perl's own print function. x [maxdepth] expr Evaluates its expression in list context and dumps out the result in a pretty-printed fashion. Nested data structures are printed out recursively, wxFILTER_NONE wxDefaultValidator on_evaluate_expression_clicked 5 wxALL 0 1 0 1 0 wxID_ANY S sub_names protected wxBU_AUTODRAW S [[!]regex] List subroutine names [not] matching the regex. wxFILTER_NONE wxDefaultValidator on_sub_names_clicked 5 wxALL 0 1 0 1 0 wxID_ANY w|W watchpoints protected wxBU_AUTODRAW w expr Add a global watch-expression. Whenever a watched global changes the debugger will stop and display the old and new values. W expr Delete watch-expression W * Delete all watch-expressions. wxFILTER_NONE wxDefaultValidator on_watchpoints_clicked 5 wxALL 0 1 0 1 0 wxID_ANY Raw raw protected wxBU_AUTODRAW Raw You can enter what ever debug command you want! wxFILTER_NONE wxDefaultValidator on_raw_clicked 5 wxEXPAND 0 expression wxHORIZONTAL none 5 wxALL 1 1 1 0 wxID_ANY 0 expression public 130,-1 Expression To Evaluate wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY 720,460 Padre::Wx::FBP::PluginManager wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Plug-in Manager wxFILTER_NONE wxDefaultValidator bSizer108 wxHORIZONTAL none 5 wxEXPAND 1 1 1 0 wxID_ANY 0 m_splitter2 protected 0.0 190 -1 wxSPLIT_VERTICAL wxSP_3D wxFILTER_NONE wxDefaultValidator 1 1 0 wxID_ANY m_panel5 protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL -1,-1 bSizer109 wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY -1,-1 -1,-1 list protected wxLC_REPORT|wxLC_SINGLE_SEL wxFILTER_NONE wxDefaultValidator _on_list_item_selected 1 1 0 wxID_ANY m_panel4 protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer135 wxVERTICAL none 0 wxEXPAND 1 1 1 0 wxID_ANY details protected wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer110 wxVERTICAL none 5 wxEXPAND 0 labels wxHORIZONTAL protected 5 wxALIGN_BOTTOM|wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY plugin name plugin_name protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 0 protected 5 6 wxALIGN_BOTTOM|wxBOTTOM|wxRIGHT 0 1 1 0 wxID_ANY plugin version plugin_version protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 0 protected 50 5 wxALIGN_BOTTOM|wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY plugin status plugin_status protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND|wxLEFT|wxRIGHT 1 1 1 0 wxID_ANY whtml protected wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 bSizer113 wxHORIZONTAL none 5 wxALL 0 1 0 1 0 wxID_ANY Enable action protected wxFILTER_NONE wxDefaultValidator action_clicked 5 wxBOTTOM|wxRIGHT|wxTOP 0 1 0 1 0 wxID_ANY Preferences preferences protected wxFILTER_NONE wxDefaultValidator preferences_clicked 5 wxEXPAND 1 0 protected 50 5 wxALL 0 1 1 1 0 wxID_CANCEL Close cancel protected wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::Document wxDEFAULT_DIALOG_STYLE Document Information wxFILTER_NONE wxDefaultValidator bSizer109 wxHORIZONTAL none 5 wxEXPAND 1 bSizer110 wxVERTICAL none 5 wxALL|wxEXPAND 0 1 1 ,90,92,-1,70,0 0 wxID_ANY filename protected wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND 0 1 1 0 wxID_ANY m_staticline30 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 2 wxHORIZONTAL 1 10 fgSizer21 wxFLEX_GROWMODE_SPECIFIED none 5 0 5 wxALL 0 1 1 0 wxID_ANY Document Type m_staticText156 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY document_type protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Document Class m_staticText158 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY document_class protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY MIME Type m_staticText160 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY mime_type protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Encoding m_staticText162 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY encoding protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Newline Type m_staticText164 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY newline_type protected wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND|wxTOP 0 1 1 0 wxID_ANY m_staticline31 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 3 wxBOTH 10 fgSizer22 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 0 wxID_ANY Document document_label protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 wxSYS_COLOUR_GRAYTEXT 0 wxID_ANY Selection selection_label protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Lines m_staticText168 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY document_lines protected wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY selection_lines protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Words m_staticText171 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY document_words protected wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY selection_words protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Characters (All) m_staticText174 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY document_characters protected wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY selection_characters protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Characters (Visible) m_staticText177 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY document_visible protected wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY selection_visible protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY File Size (Bytes) m_staticText180 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY document_bytes protected wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY selection_bytes protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL 0 1 1 0 wxID_ANY Source Lines of Code m_staticText206 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY document_sloc protected wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT|wxALL 0 1 1 0 wxID_ANY selection_sloc protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND|wxTOP 0 1 1 0 wxID_ANY m_staticline32 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 bSizer111 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 1 0 wxID_CANCEL Close cancel protected wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::POD 500,300 wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER POD Viewer wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL 1 1 0 gSizer3 none 1 0 5 wxEXPAND 0 1 1 0 wxID_ANY html public wxHW_SCROLLBAR_AUTO Padre::Wx::HtmlWindow; Padre::Wx::HtmlWindow wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::SessionManager 480,300 wxDEFAULT_DIALOG_STYLE Session Manager wxFILTER_NONE wxDefaultValidator bSizer119 wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 0 wxID_ANY list protected wxLC_REPORT|wxLC_SINGLE_SEL wxFILTER_NONE wxDefaultValidator list_col_click list_item_activated list_item_selected 5 wxALL|wxEXPAND 0 0 1 1 0 wxID_ANY Save session automatically autosave protected wxFILTER_NONE wxDefaultValidator 5 wxEXPAND|wxLEFT|wxRIGHT|wxTOP 0 1 1 0 wxID_ANY m_staticline46 protected wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 bSizer120 wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_ANY Open Session open protected wxFILTER_NONE wxDefaultValidator open_clicked 5 wxALL 0 1 0 1 0 wxID_ANY Delete Session delete protected wxFILTER_NONE wxDefaultValidator delete_clicked 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 0 1 0 wxID_CANCEL Close cancel protected wxFILTER_NONE wxDefaultValidator 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::TaskList 500,300 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer122 wxVERTICAL none 5 wxEXPAND 0 0 1 1 0 wxID_ANY search protected 1 wxFILTER_NONE wxDefaultValidator wxSTATIC_BORDER 5 wxEXPAND 1 1 1 0 wxID_ANY tree protected wxTR_DEFAULT_STYLE wxFILTER_NONE wxDefaultValidator wxNO_BORDER wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::SLOC wxDEFAULT_DIALOG_STYLE Project Statistics wxFILTER_NONE wxDefaultValidator bSizer123 wxVERTICAL none 5 wxALL|wxEXPAND 0 1 1 ,90,92,-1,70,0 0 wxID_ANY root protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY m_staticline48 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 2 wxHORIZONTAL 1 20 -1,-1 fgSizer29 wxFLEX_GROWMODE_SPECIFIED none 4 10 5 wxEXPAND 0 1 1 0 wxID_ANY Files: m_staticText210 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT 0 1 1 0 wxID_ANY files protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY Code Lines: m_staticText213 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT 0 1 1 0 wxID_ANY code protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY Comments Lines: m_staticText215 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT 0 1 1 0 wxID_ANY comment protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY Blank Lines: m_staticText217 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT 0 1 1 0 wxID_ANY blank protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 10 protected 0 5 wxALL 0 1 1 ,90,92,-1,70,0 0 wxID_ANY Constructive Cost Model (COCOMO) m_staticText218 none wxFILTER_NONE wxDefaultValidator -1 5 wxBOTTOM|wxEXPAND 0 1 1 0 wxID_ANY m_staticline50 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 1 2 wxHORIZONTAL 1 20 fgSizer30 wxFLEX_GROWMODE_SPECIFIED none 4 10 5 wxEXPAND 0 1 1 0 wxID_ANY Mythical Man Months: m_staticText219 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT 0 1 1 0 wxID_ANY pax_months protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY Estimated Project Years: m_staticText221 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT 0 1 1 0 wxID_ANY cal_years protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY Number of Developers: m_staticText223 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT 0 1 1 0 wxID_ANY dev_count protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY Development Cost (USD): m_staticText225 none wxFILTER_NONE wxDefaultValidator -1 5 wxALIGN_RIGHT 0 1 1 0 wxID_ANY dev_cost protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY m_staticline49 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 150,-1 bSizer124 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 1 0 wxID_CANCEL Close cancel protected wxFILTER_NONE wxDefaultValidator 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::ModuleStarter -1,-1 wxDEFAULT_DIALOG_STYLE Module Starter wxFILTER_NONE wxDefaultValidator sizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 1 10 fgSizer1 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Module Name: m_staticText4 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 280,-1 module public You can now add multiple module names, ie: Foo::Bar, Foo::Bar::Two (csv) wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Author: m_staticText8 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 identity_name public wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Email Address: m_staticText5 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 identity_email public wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Builder: m_staticText6 none wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY module_starter_builder public 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY License: m_staticText7 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY module_starter_license public 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 0 wxID_ANY Parent Directory: m_staticText3 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY Select a folder module_starter_directory public wxDIRP_DEFAULT_STYLE wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_OK OK ok none wxFILTER_NONE wxDefaultValidator ok_clicked 5 wxEXPAND 1 0 none 100 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel none wxFILTER_NONE wxDefaultValidator wxBOTH 1 1 impl_virtual 0 wxID_ANY Padre::Wx::FBP::DebugOptions -1,-1 wxDEFAULT_DIALOG_STYLE Debug Launch Parameters wxFILTER_NONE wxDefaultValidator sizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 vsizer wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 1 10 fgSizer1 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Perl interpreter: m_staticText4 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 280,-1 perl_interpreter public wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Perl Options: m_staticText8 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 perl_args public wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 0 wxID_ANY Perl Script to run: m_staticText5 protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 bSizer4 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 1 "find_script" 1 1 0 wxID_ANY find_script public 250,-1 Padre::Wx::ComboBox::History; Padre::Wx::ComboBox::History wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT 0 1 0 1 0 wxID_ANY &Browse script protected 50,-1 wxFILTER_NONE wxDefaultValidator browse_scripts 5 wxALL 0 1 1 0 wxID_ANY Perl Script options: m_staticText51 protected wxFILTER_NONE wxDefaultValidator -1 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY 0 script_options public wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 0 wxID_ANY Run in Directory: m_staticText241 protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 bSizer41 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 1 "run_directory" 1 1 0 wxID_ANY run_directory public 250,-1 Padre::Wx::ComboBox::History; Padre::Wx::ComboBox::History wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT 0 1 0 1 0 wxID_ANY &Browse browse_run_directory protected 50,-1 wxFILTER_NONE wxDefaultValidator browse_run_directory 5 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_staticline1 none wxLI_HORIZONTAL wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 buttons wxHORIZONTAL none 5 wxALL 0 1 1 1 0 wxID_OK Launch Debugger debug none wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 none 100 5 wxALL 0 1 0 1 0 wxID_CANCEL Cancel cancel none wxFILTER_NONE wxDefaultValidator Padre-1.00/privinc/0000755000175000017500000000000012237340740012615 5ustar petepetePadre-1.00/privinc/Module/0000755000175000017500000000000012237340740014042 5ustar petepetePadre-1.00/privinc/Module/Install/0000755000175000017500000000000012237340740015450 5ustar petepetePadre-1.00/privinc/Module/Install/PRIVATE/0000755000175000017500000000000012237340740016562 5ustar petepetePadre-1.00/privinc/Module/Install/PRIVATE/Padre.pm0000644000175000017500000001714512237327555020174 0ustar petepetepackage Module::Install::PRIVATE::Padre; use 5.008; use strict; use warnings; use Module::Install::Base; use FindBin (); use File::Find (); # For building the Win32 launcher use Config; use ExtUtils::Embed; our $VERSION = '1.00'; use base qw{ Module::Install::Base }; sub setup_padre { my $self = shift; my $inc_class = join( '::', @{ $self->_top }{ qw(prefix name) } ); my $class = __PACKAGE__; $self->postamble(<<"END_MAKEFILE"); # --- Padre section: exe :: all \t\$(NOECHO) \$(PERL) -Iprivinc "-M$inc_class" -e "make_exe()" ppm :: ppd all \t\$(NOECHO) tar czf Padre.tar.gz blib/ END_MAKEFILE } sub check_wx_version { # Check if Alien is installed my $alien_file = _module_file('Alien::wxWidgets'); my $alien_path = _file_path($alien_file); unless ( $alien_path ) { # Alien::wxWidgets.pm is not installed. # Allow EU:MM to do it's thing as normal # but give some extra hints to the user warn "** Could not locate Alien::wxWidgets\n"; warn "** When installing it please make sure wxWidgets is compiled with Unicode enabled\n"; warn "** Please use the latest version from CPAN\n"; return; } # Do we have the alien package eval { require Alien::wxWidgets; Alien::wxWidgets->import; }; if ( $@ ) { # If we don't have the alien package, # we should just pass through to EU:MM warn "** Could not locate Alien::wxWidgets\n"; warn "** When installing it please make sure wxWidgets is compiled with Unicode enabled\n"; warn "** Please use the latest version from CPAN\n"; return; } # Find the wxWidgets version from the alien my $widgets = Alien::wxWidgets->version; unless ( $widgets ) { nono("Alien::wxWidgets was unable to determine the wxWidgets version"); } my $widgets_human = $widgets; $widgets_human =~ s/^(\d\.\d\d\d)(\d\d\d)$/$1.$2/; $widgets_human =~ s/\.0*/./g; print "Found wxWidgets $widgets_human\n"; unless ( $widgets >= 2.008008 or $ENV{SKIP_WXWIDGETS_VERSION_CHECK} ) { nono("Padre needs at least version 2.8.8 of wxWidgets. You have wxWidgets $widgets_human"); } # Can we find Wx.pm my $wx_file = _module_file('Wx'); my $wx_path = _file_path($wx_file); unless ( $wx_path ) { # Wx.pm is not installed. # Allow EU:MM to do it's thing as normal # but give extra hints to the user warn "** Could not locate Wx.pm\n"; warn "** Please install the latest version from CPAN\n"; return; } my $wx_pm = _path_version($wx_path); print "Found Wx.pm $wx_pm\n"; if ($wx_pm < 0.97 && $wx_pm > 0.94) { warn "** Wx.pm version $wx_pm has problems with HTML rendering\n"; warn "** You can use it to run Padre, but the help documents may not be displayed correctly.\n"; warn "** Consider installing the latest version from CPAN\n"; } # this part still needs the DISPLAY # so check only if there is one if ( $ENV{DISPLAY} or $^O =~ /win32/i ) { eval { require Wx; Wx->import; }; if ($@) { # If we don't have the Wx installed, # we should just pass through to EU:MM warn "** Could not locate Wx.pm\n"; warn "** Please install the latest version from CPAN\n"; return; } unless ( Wx::wxUNICODE() ) { nono("Padre needs wxWidgets to be compiled with Unicode support (--enable-unicode)"); } } return; } sub nono { my $msg = shift; print STDERR "$msg\n"; exit(1); } sub make_exe { my $self = shift; # temporary tool to create executable using PAR eval "use Module::ScanDeps 0.93; 1;" or die $@; #eval "use PAR::Packer 0.993; 1;" or die $@; my @libs = get_libs(); my @modules = get_modules(); my $exe = $^O =~ /win32/i ? 'padre.exe' : 'padre'; if ( -e $exe ) { unlink $exe or die "Cannot remove '$exe' $!"; } my @cmd = ( 'pp', '--cachedeps', 'pp_cached_dependencies', '--reusable', '-o', $exe, qw{ -I lib script/padre } ); push @cmd, @modules; push @cmd, @libs; if ( $^O =~ /win32/i ) { push @cmd, '-M', 'Tie::Hash::NamedCapture'; } #TODO Padre::DB::Migrate was moved to ORLite::Migrate. Keep or remove? (AZAWAWI) ## push @cmd, '-M', 'Padre::DB::Migrate::Patch'; print join( ' ', @cmd ) . "\n"; system(@cmd); return; } sub get_libs { # Run-time "use" the Alien module require Alien::wxWidgets; Alien::wxWidgets->import; # Extract the settings we need from the Alient my $prefix = Alien::wxWidgets->prefix; my %libs = map { ($_, 0) } Alien::wxWidgets->shared_libraries( qw(stc xrc html adv core base) ); require File::Find; File::Find::find( sub { if ( exists $libs{$_} ) { $libs{$_} = $File::Find::name; } }, $prefix ); my @missing = grep { ! $libs{$_} } keys %libs; foreach ( @missing ) { warn("Could not find shared library on disk for $_"); } return map { ('-l', $_) } values %libs; } sub get_modules { my @modules; my @files; open(my $fh, '<', 'MANIFEST') or die("Do you need to run 'make manifest'? Could not open MANIFEST for reading: $!"); while ( my $line = <$fh> ) { chomp $line; if ( $line =~ m{^lib/.*\.pm$} ) { $line = substr($line, 4, -3); $line =~ s{/}{::}g; push @modules, $line; } if ( $line =~ m{^lib/.*\.pod$} ) { push @files, $line; } if ( $line =~ m{^share/} ) { (my $newpath = $line) =~ s{^share}{lib/auto/share/dist/Padre}; push @files, "$line;$newpath"; } } my @args; push @args, "-M", $_ for @modules; push @args, "-a", $_ for @files; return @args; } sub _module_file { my $module = shift; $module =~ s/::/\//g; $module .= '.pm'; return $module; } sub _file_path { my $file = shift; my @found = grep { -f $_ } map { "$_/$file" } @INC; return $found[0]; } sub _path_version { require ExtUtils::MM_Unix; ExtUtils::MM_Unix->parse_version($_[0]); } sub show_debuginfo { my $self = shift; $self->postamble(<<"END_MAKEFILE"); # --- Padre section: versioninfo :: \t\$(NOECHO) \$(PERL) -MWx -MWx::Perl::ProcessStream -le 'print "Perl \$\$^V"; print "Wx ".\$\$Wx::VERSION; print Wx::wxVERSION_STRING(); print "ProcessStream ".\$\$Wx::Perl::ProcessStream::VERSION;' END_MAKEFILE } sub _slurp { my $file = shift; open my $fh, '<', $file or die "Could not slurp $file\n"; binmode $fh; local $/ = undef; my $content = <$fh>; close $fh; return $content; } sub _patch_version { my ($self, $file) = @_; # Patch the Padre version and the win32-comma-separated version if(open my $fh, '>', $file) { my $output = _slurp("$file.in"); my $version = $self->version; my $win32_version = $version; $win32_version =~ s/\./,/; $output =~ s/__PADRE_WIN32_VERSION__/$win32_version,0,0/g; $output =~ s/__PADRE_VERSION__/$version/g; print $fh $output; close $fh; } else { die "Could not open $file for writing\n"; } } # # Builds Padre.exe using gcc # sub build_padre_exe { my $self = shift; print "Building padre.exe\n"; # source folder my $src = "win32"; my $bin = "blib/bin"; # Create the blib/bin folder system $^X , qw[-MExtUtils::Command -e mkpath --], $bin; # Step 1: Make sure we do not have old files my @temp_files = map {"$src/$_"} qw[ padre.exe.manifest padre-rc.rc padre-rc.res perlxsi.c ]; map { unlink } (grep { -f } @temp_files); # Step 2: Patch the Padre version number in the win32 executable's manifest # and resource version info $self->_patch_version('win32/padre.exe.manifest'); $self->_patch_version('win32/padre-rc.rc'); # Step 3: Build Padre's win32 resource using windres system qq[cd $src && windres --input padre-rc.rc --output padre-rc.res --output-format=coff]; # Step 4: Generate xs_init() function for static libraries xsinit("$src/perlxsi.c", 0); # Step 5: Build padre.exe using $Config{cc} system "cd $src && $Config{cc} -mwin32 -mwindows -Wl,-s padre.c perlxsi.c padre-rc.res -o ../$bin/padre.exe ".ccopts.ldopts; # Step 6: Remove temporary files map { unlink } (grep { -f } @temp_files); } 1; Padre-1.00/winxs/0000755000175000017500000000000012237340740012313 5ustar petepetePadre-1.00/winxs/Makefile.PL0000644000175000017500000000124711602624055014270 0ustar petepeteuse 5.008005; use strict; use ExtUtils::MakeMaker qw( WriteMakefile WriteEmptyMakefile ); use Config; my %params = ( NAME => 'Padre::Util::Win32', VERSION_FROM => '../lib/Padre/Util/Win32.pm', ABSTRACT => 'Padre Win32 API XS Wrapper', SKIP => [ qw( test ) ], ); if($^O =~ /^mswin/i) { my $libs = ( $Config{cc} =~ /cl/ ) ? 'psapi.lib' : '-lpsapi'; $params{LIBS} = [ $libs ]; $params{DEFINE} = '-DPSAPI_VERSION=1'; WriteMakefile(%params); } else { # WriteEmptyMakefile seems to need params to avoid warnings WriteEmptyMakefile(%params); } sub MY::postamble { return qq(\n) . 'test :' . qq(\n); } 1; Padre-1.00/winxs/Win32.xs0000644000175000017500000000406411607334376013605 0ustar petepete#ifdef WIN32 #define _WIN32_WINNT 0x0500 #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" MODULE = Padre::Util::Win32 PACKAGE = Padre::Util::Win32 #ifdef WIN32 #include #include #include SV* _recycle_file( filename ) char* filename CODE: SHFILEOPSTRUCT op; int result; /* default return is undef - for failuire */ memset(&op,0,sizeof(op)); op.wFunc = FO_DELETE; op.fFlags = FOF_ALLOWUNDO; op.pFrom = filename; result = SHFileOperation( &op ); if(result != 0) { XSRETURN_UNDEF; } else { /* check if any errors */ if(op.fAnyOperationsAborted) { RETVAL = newSViv(0); } else { RETVAL = newSViv(1); } } OUTPUT: RETVAL SV* _allow_set_foreground_window ( processid ) long processid CODE: int result; result = AllowSetForegroundWindow( processid ); RETVAL = newSViv( result ); OUTPUT: RETVAL SV* _execute_process_and_wait ( file, params, directory, show ) char *file char *params char *directory int show CODE: SHELLEXECUTEINFO info; BOOL result; memset(&info,0,sizeof(info)); info.cbSize = sizeof(info); info.lpVerb = "open\0"; info.lpDirectory = directory; info.lpFile = file; info.lpParameters = params; info.nShow = show; info.fMask = SEE_MASK_NOCLOSEPROCESS; result = ShellExecuteEx( &info ); if( !result ) XSRETURN_UNDEF; WaitForSingleObject(info.hProcess , INFINITE ); CloseHandle(info.hProcess); RETVAL = newSViv( 1 ); OUTPUT: RETVAL SV* _get_current_process_memory_size() CODE: PROCESS_MEMORY_COUNTERS stats; memset(&stats,0,sizeof(stats)); stats.cb = sizeof(stats); GetProcessMemoryInfo( GetCurrentProcess(), &stats, stats.cb ); RETVAL = newSViv( stats.PeakWorkingSetSize ); OUTPUT: RETVAL #else SV* _no_win32_noop() CODE: XSRETURN_UNDEF; #endif Padre-1.00/inc/0000755000175000017500000000000012237340740011714 5ustar petepetePadre-1.00/inc/Module/0000755000175000017500000000000012237340740013141 5ustar petepetePadre-1.00/inc/Module/Install/0000755000175000017500000000000012237340741014550 5ustar petepetePadre-1.00/inc/Module/Install/PRIVATE/0000755000175000017500000000000012237340741015662 5ustar petepetePadre-1.00/inc/Module/Install/PRIVATE/Padre.pm0000644000175000017500000001715512237340453017264 0ustar petepete#line 1 package Module::Install::PRIVATE::Padre; use 5.008; use strict; use warnings; use Module::Install::Base; use FindBin (); use File::Find (); # For building the Win32 launcher use Config; use ExtUtils::Embed; our $VERSION = '1.00'; use base qw{ Module::Install::Base }; sub setup_padre { my $self = shift; my $inc_class = join( '::', @{ $self->_top }{ qw(prefix name) } ); my $class = __PACKAGE__; $self->postamble(<<"END_MAKEFILE"); # --- Padre section: exe :: all \t\$(NOECHO) \$(PERL) -Iprivinc "-M$inc_class" -e "make_exe()" ppm :: ppd all \t\$(NOECHO) tar czf Padre.tar.gz blib/ END_MAKEFILE } sub check_wx_version { # Check if Alien is installed my $alien_file = _module_file('Alien::wxWidgets'); my $alien_path = _file_path($alien_file); unless ( $alien_path ) { # Alien::wxWidgets.pm is not installed. # Allow EU:MM to do it's thing as normal # but give some extra hints to the user warn "** Could not locate Alien::wxWidgets\n"; warn "** When installing it please make sure wxWidgets is compiled with Unicode enabled\n"; warn "** Please use the latest version from CPAN\n"; return; } # Do we have the alien package eval { require Alien::wxWidgets; Alien::wxWidgets->import; }; if ( $@ ) { # If we don't have the alien package, # we should just pass through to EU:MM warn "** Could not locate Alien::wxWidgets\n"; warn "** When installing it please make sure wxWidgets is compiled with Unicode enabled\n"; warn "** Please use the latest version from CPAN\n"; return; } # Find the wxWidgets version from the alien my $widgets = Alien::wxWidgets->version; unless ( $widgets ) { nono("Alien::wxWidgets was unable to determine the wxWidgets version"); } my $widgets_human = $widgets; $widgets_human =~ s/^(\d\.\d\d\d)(\d\d\d)$/$1.$2/; $widgets_human =~ s/\.0*/./g; print "Found wxWidgets $widgets_human\n"; unless ( $widgets >= 2.008008 or $ENV{SKIP_WXWIDGETS_VERSION_CHECK} ) { nono("Padre needs at least version 2.8.8 of wxWidgets. You have wxWidgets $widgets_human"); } # Can we find Wx.pm my $wx_file = _module_file('Wx'); my $wx_path = _file_path($wx_file); unless ( $wx_path ) { # Wx.pm is not installed. # Allow EU:MM to do it's thing as normal # but give extra hints to the user warn "** Could not locate Wx.pm\n"; warn "** Please install the latest version from CPAN\n"; return; } my $wx_pm = _path_version($wx_path); print "Found Wx.pm $wx_pm\n"; if ($wx_pm < 0.97 && $wx_pm > 0.94) { warn "** Wx.pm version $wx_pm has problems with HTML rendering\n"; warn "** You can use it to run Padre, but the help documents may not be displayed correctly.\n"; warn "** Consider installing the latest version from CPAN\n"; } # this part still needs the DISPLAY # so check only if there is one if ( $ENV{DISPLAY} or $^O =~ /win32/i ) { eval { require Wx; Wx->import; }; if ($@) { # If we don't have the Wx installed, # we should just pass through to EU:MM warn "** Could not locate Wx.pm\n"; warn "** Please install the latest version from CPAN\n"; return; } unless ( Wx::wxUNICODE() ) { nono("Padre needs wxWidgets to be compiled with Unicode support (--enable-unicode)"); } } return; } sub nono { my $msg = shift; print STDERR "$msg\n"; exit(1); } sub make_exe { my $self = shift; # temporary tool to create executable using PAR eval "use Module::ScanDeps 0.93; 1;" or die $@; #eval "use PAR::Packer 0.993; 1;" or die $@; my @libs = get_libs(); my @modules = get_modules(); my $exe = $^O =~ /win32/i ? 'padre.exe' : 'padre'; if ( -e $exe ) { unlink $exe or die "Cannot remove '$exe' $!"; } my @cmd = ( 'pp', '--cachedeps', 'pp_cached_dependencies', '--reusable', '-o', $exe, qw{ -I lib script/padre } ); push @cmd, @modules; push @cmd, @libs; if ( $^O =~ /win32/i ) { push @cmd, '-M', 'Tie::Hash::NamedCapture'; } #TODO Padre::DB::Migrate was moved to ORLite::Migrate. Keep or remove? (AZAWAWI) ## push @cmd, '-M', 'Padre::DB::Migrate::Patch'; print join( ' ', @cmd ) . "\n"; system(@cmd); return; } sub get_libs { # Run-time "use" the Alien module require Alien::wxWidgets; Alien::wxWidgets->import; # Extract the settings we need from the Alient my $prefix = Alien::wxWidgets->prefix; my %libs = map { ($_, 0) } Alien::wxWidgets->shared_libraries( qw(stc xrc html adv core base) ); require File::Find; File::Find::find( sub { if ( exists $libs{$_} ) { $libs{$_} = $File::Find::name; } }, $prefix ); my @missing = grep { ! $libs{$_} } keys %libs; foreach ( @missing ) { warn("Could not find shared library on disk for $_"); } return map { ('-l', $_) } values %libs; } sub get_modules { my @modules; my @files; open(my $fh, '<', 'MANIFEST') or die("Do you need to run 'make manifest'? Could not open MANIFEST for reading: $!"); while ( my $line = <$fh> ) { chomp $line; if ( $line =~ m{^lib/.*\.pm$} ) { $line = substr($line, 4, -3); $line =~ s{/}{::}g; push @modules, $line; } if ( $line =~ m{^lib/.*\.pod$} ) { push @files, $line; } if ( $line =~ m{^share/} ) { (my $newpath = $line) =~ s{^share}{lib/auto/share/dist/Padre}; push @files, "$line;$newpath"; } } my @args; push @args, "-M", $_ for @modules; push @args, "-a", $_ for @files; return @args; } sub _module_file { my $module = shift; $module =~ s/::/\//g; $module .= '.pm'; return $module; } sub _file_path { my $file = shift; my @found = grep { -f $_ } map { "$_/$file" } @INC; return $found[0]; } sub _path_version { require ExtUtils::MM_Unix; ExtUtils::MM_Unix->parse_version($_[0]); } sub show_debuginfo { my $self = shift; $self->postamble(<<"END_MAKEFILE"); # --- Padre section: versioninfo :: \t\$(NOECHO) \$(PERL) -MWx -MWx::Perl::ProcessStream -le 'print "Perl \$\$^V"; print "Wx ".\$\$Wx::VERSION; print Wx::wxVERSION_STRING(); print "ProcessStream ".\$\$Wx::Perl::ProcessStream::VERSION;' END_MAKEFILE } sub _slurp { my $file = shift; open my $fh, '<', $file or die "Could not slurp $file\n"; binmode $fh; local $/ = undef; my $content = <$fh>; close $fh; return $content; } sub _patch_version { my ($self, $file) = @_; # Patch the Padre version and the win32-comma-separated version if(open my $fh, '>', $file) { my $output = _slurp("$file.in"); my $version = $self->version; my $win32_version = $version; $win32_version =~ s/\./,/; $output =~ s/__PADRE_WIN32_VERSION__/$win32_version,0,0/g; $output =~ s/__PADRE_VERSION__/$version/g; print $fh $output; close $fh; } else { die "Could not open $file for writing\n"; } } # # Builds Padre.exe using gcc # sub build_padre_exe { my $self = shift; print "Building padre.exe\n"; # source folder my $src = "win32"; my $bin = "blib/bin"; # Create the blib/bin folder system $^X , qw[-MExtUtils::Command -e mkpath --], $bin; # Step 1: Make sure we do not have old files my @temp_files = map {"$src/$_"} qw[ padre.exe.manifest padre-rc.rc padre-rc.res perlxsi.c ]; map { unlink } (grep { -f } @temp_files); # Step 2: Patch the Padre version number in the win32 executable's manifest # and resource version info $self->_patch_version('win32/padre.exe.manifest'); $self->_patch_version('win32/padre-rc.rc'); # Step 3: Build Padre's win32 resource using windres system qq[cd $src && windres --input padre-rc.rc --output padre-rc.res --output-format=coff]; # Step 4: Generate xs_init() function for static libraries xsinit("$src/perlxsi.c", 0); # Step 5: Build padre.exe using $Config{cc} system "cd $src && $Config{cc} -mwin32 -mwindows -Wl,-s padre.c perlxsi.c padre-rc.res -o ../$bin/padre.exe ".ccopts.ldopts; # Step 6: Remove temporary files map { unlink } (grep { -f } @temp_files); } 1; Padre-1.00/inc/Module/Install/Scripts.pm0000644000175000017500000000101112237340453016526 0ustar petepete#line 1 package Module::Install::Scripts; use strict 'vars'; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } sub install_script { my $self = shift; my $args = $self->makemaker_args; my $exe = $args->{EXE_FILES} ||= []; foreach ( @_ ) { if ( -f $_ ) { push @$exe, $_; } elsif ( -d 'script' and -f "script/$_" ) { push @$exe, "script/$_"; } else { die("Cannot find script '$_'"); } } } 1; Padre-1.00/inc/Module/Install/Can.pm0000644000175000017500000000615712237340453015620 0ustar petepete#line 1 package Module::Install::Can; use strict; use Config (); use ExtUtils::MakeMaker (); use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } # check if we can load some module ### Upgrade this to not have to load the module if possible sub can_use { my ($self, $mod, $ver) = @_; $mod =~ s{::|\\}{/}g; $mod .= '.pm' unless $mod =~ /\.pm$/i; my $pkg = $mod; $pkg =~ s{/}{::}g; $pkg =~ s{\.pm$}{}i; local $@; eval { require $mod; $pkg->VERSION($ver || 0); 1 }; } # Check if we can run some command sub can_run { my ($self, $cmd) = @_; my $_cmd = $cmd; return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd)); for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') { next if $dir eq ''; require File::Spec; my $abs = File::Spec->catfile($dir, $cmd); return $abs if (-x $abs or $abs = MM->maybe_command($abs)); } return; } # Can our C compiler environment build XS files sub can_xs { my $self = shift; # Ensure we have the CBuilder module $self->configure_requires( 'ExtUtils::CBuilder' => 0.27 ); # Do we have the configure_requires checker? local $@; eval "require ExtUtils::CBuilder;"; if ( $@ ) { # They don't obey configure_requires, so it is # someone old and delicate. Try to avoid hurting # them by falling back to an older simpler test. return $self->can_cc(); } # Do we have a working C compiler my $builder = ExtUtils::CBuilder->new( quiet => 1, ); unless ( $builder->have_compiler ) { # No working C compiler return 0; } # Write a C file representative of what XS becomes require File::Temp; my ( $FH, $tmpfile ) = File::Temp::tempfile( "compilexs-XXXXX", SUFFIX => '.c', ); binmode $FH; print $FH <<'END_C'; #include "EXTERN.h" #include "perl.h" #include "XSUB.h" int main(int argc, char **argv) { return 0; } int boot_sanexs() { return 1; } END_C close $FH; # Can the C compiler access the same headers XS does my @libs = (); my $object = undef; eval { local $^W = 0; $object = $builder->compile( source => $tmpfile, ); @libs = $builder->link( objects => $object, module_name => 'sanexs', ); }; my $result = $@ ? 0 : 1; # Clean up all the build files foreach ( $tmpfile, $object, @libs ) { next unless defined $_; 1 while unlink; } return $result; } # Can we locate a (the) C compiler sub can_cc { my $self = shift; my @chunks = split(/ /, $Config::Config{cc}) or return; # $Config{cc} may contain args; try to find out the program part while (@chunks) { return $self->can_run("@chunks") || (pop(@chunks), next); } return; } # Fix Cygwin bug on maybe_command(); if ( $^O eq 'cygwin' ) { require ExtUtils::MM_Cygwin; require ExtUtils::MM_Win32; if ( ! defined(&ExtUtils::MM_Cygwin::maybe_command) ) { *ExtUtils::MM_Cygwin::maybe_command = sub { my ($self, $file) = @_; if ($file =~ m{^/cygdrive/}i and ExtUtils::MM_Win32->can('maybe_command')) { ExtUtils::MM_Win32->maybe_command($file); } else { ExtUtils::MM_Unix->maybe_command($file); } } } } 1; __END__ #line 236 Padre-1.00/inc/Module/Install/Share.pm0000644000175000017500000000464312237340453016157 0ustar petepete#line 1 package Module::Install::Share; use strict; use Module::Install::Base (); use File::Find (); use ExtUtils::Manifest (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } sub install_share { my $self = shift; my $dir = @_ ? pop : 'share'; my $type = @_ ? shift : 'dist'; unless ( defined $type and $type eq 'module' or $type eq 'dist' ) { die "Illegal or invalid share dir type '$type'"; } unless ( defined $dir and -d $dir ) { require Carp; Carp::croak("Illegal or missing directory install_share param: '$dir'"); } # Split by type my $S = ($^O eq 'MSWin32') ? "\\" : "\/"; my $root; if ( $type eq 'dist' ) { die "Too many parameters to install_share" if @_; # Set up the install $root = "\$(INST_LIB)${S}auto${S}share${S}dist${S}\$(DISTNAME)"; } else { my $module = Module::Install::_CLASS($_[0]); unless ( defined $module ) { die "Missing or invalid module name '$_[0]'"; } $module =~ s/::/-/g; $root = "\$(INST_LIB)${S}auto${S}share${S}module${S}$module"; } my $manifest = -r 'MANIFEST' ? ExtUtils::Manifest::maniread() : undef; my $skip_checker = $ExtUtils::Manifest::VERSION >= 1.54 ? ExtUtils::Manifest::maniskip() : ExtUtils::Manifest::_maniskip(); my $postamble = ''; my $perm_dir = eval($ExtUtils::MakeMaker::VERSION) >= 6.52 ? '$(PERM_DIR)' : 755; File::Find::find({ no_chdir => 1, wanted => sub { my $path = File::Spec->abs2rel($_, $dir); if (-d $_) { return if $skip_checker->($File::Find::name); $postamble .=<<"END"; \t\$(NOECHO) \$(MKPATH) "$root${S}$path" \t\$(NOECHO) \$(CHMOD) $perm_dir "$root${S}$path" END } else { return if ref $manifest && !exists $manifest->{$File::Find::name}; return if $skip_checker->($File::Find::name); $postamble .=<<"END"; \t\$(NOECHO) \$(CP) "$dir${S}$path" "$root${S}$path" END } }, }, $dir); # Set up the install $self->postamble(<<"END_MAKEFILE"); config :: $postamble END_MAKEFILE # The above appears to behave incorrectly when used with old versions # of ExtUtils::Install (known-bad on RHEL 3, with 5.8.0) # So when we need to install a share directory, make sure we add a # dependency on a moderately new version of ExtUtils::MakeMaker. $self->build_requires( 'ExtUtils::MakeMaker' => '6.11' ); # 99% of the time we don't want to index a shared dir $self->no_index( directory => $dir ); } 1; __END__ #line 154 Padre-1.00/inc/Module/Install/With.pm0000644000175000017500000000224612237340453016025 0ustar petepete#line 1 package Module::Install::With; # See POD at end for docs use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } ##################################################################### # Installer Target # Are we targeting ExtUtils::MakeMaker (running as Makefile.PL) sub eumm { !! ($0 =~ /Makefile.PL$/i); } # You should not be using this, but we'll keep the hook anyways sub mb { !! ($0 =~ /Build.PL$/i); } ##################################################################### # Testing and Configuration Contexts #line 49 sub interactive { # Treat things interactively ONLY based on input !! (-t STDIN and ! automated_testing()); } #line 67 sub automated_testing { !! $ENV{AUTOMATED_TESTING}; } #line 86 sub release_testing { !! $ENV{RELEASE_TESTING}; } sub author_context { !! $Module::Install::AUTHOR; } ##################################################################### # Operating System Convenience #line 114 sub win32 { !! ($^O eq 'MSWin32'); } #line 131 sub winlike { !! ($^O eq 'MSWin32' or $^O eq 'cygwin'); } 1; #line 159 Padre-1.00/inc/Module/Install/Fetch.pm0000644000175000017500000000462712237340453016150 0ustar petepete#line 1 package Module::Install::Fetch; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } sub get_file { my ($self, %args) = @_; my ($scheme, $host, $path, $file) = $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return; if ( $scheme eq 'http' and ! eval { require LWP::Simple; 1 } ) { $args{url} = $args{ftp_url} or (warn("LWP support unavailable!\n"), return); ($scheme, $host, $path, $file) = $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return; } $|++; print "Fetching '$file' from $host... "; unless (eval { require Socket; Socket::inet_aton($host) }) { warn "'$host' resolve failed!\n"; return; } return unless $scheme eq 'ftp' or $scheme eq 'http'; require Cwd; my $dir = Cwd::getcwd(); chdir $args{local_dir} or return if exists $args{local_dir}; if (eval { require LWP::Simple; 1 }) { LWP::Simple::mirror($args{url}, $file); } elsif (eval { require Net::FTP; 1 }) { eval { # use Net::FTP to get past firewall my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600); $ftp->login("anonymous", 'anonymous@example.com'); $ftp->cwd($path); $ftp->binary; $ftp->get($file) or (warn("$!\n"), return); $ftp->quit; } } elsif (my $ftp = $self->can_run('ftp')) { eval { # no Net::FTP, fallback to ftp.exe require FileHandle; my $fh = FileHandle->new; local $SIG{CHLD} = 'IGNORE'; unless ($fh->open("|$ftp -n")) { warn "Couldn't open ftp: $!\n"; chdir $dir; return; } my @dialog = split(/\n/, <<"END_FTP"); open $host user anonymous anonymous\@example.com cd $path binary get $file $file quit END_FTP foreach (@dialog) { $fh->print("$_\n") } $fh->close; } } else { warn "No working 'ftp' program available!\n"; chdir $dir; return; } unless (-f $file) { warn "Fetching failed: $@\n"; chdir $dir; return; } return if exists $args{size} and -s $file != $args{size}; system($args{run}) if exists $args{run}; unlink($file) if $args{remove}; print(((!exists $args{check_for} or -e $args{check_for}) ? "done!" : "failed! ($!)"), "\n"); chdir $dir; return !$?; } 1; Padre-1.00/inc/Module/Install/Msgfmt.pm0000644000175000017500000000175312237340453016351 0ustar petepete#line 1 package Module::Install::Msgfmt; use 5.008005; use strict; use warnings; use File::Spec (); use Module::Install::Base (); our $VERSION = '0.15'; our @ISA = 'Module::Install::Base'; sub install_share_with_mofiles { my $self = shift; my @orig = (@_); my $class = ref($self); my $prefix = $self->_top->{prefix}; my $name = $self->_top->{name}; my $dir = @_ ? pop : 'share'; my $type = @_ ? shift : 'dist'; my $module = @_ ? shift : ''; $self->build_requires( 'Locale::Msgfmt' => '0.15' ); $self->install_share(@orig); my $distname = ""; if ( $type eq 'dist' ) { $distname = $self->name; } else { $distname = Module::Install::_CLASS($module); $distname =~ s/::/-/g; } my $path = File::Spec->catfile( 'auto', 'share', $type, $distname ); $self->postamble(<<"END_MAKEFILE"); config :: \t\$(NOECHO) \$(PERL) "-MLocale::Msgfmt" -e "Locale::Msgfmt::do_msgfmt_for_module_install(q(\$(INST_LIB)), q($path))" END_MAKEFILE } 1; Padre-1.00/inc/Module/Install/Metadata.pm0000644000175000017500000004327712237340453016643 0ustar petepete#line 1 package Module::Install::Metadata; use strict 'vars'; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } my @boolean_keys = qw{ sign }; my @scalar_keys = qw{ name module_name abstract version distribution_type tests installdirs }; my @tuple_keys = qw{ configure_requires build_requires requires recommends bundles resources }; my @resource_keys = qw{ homepage bugtracker repository }; my @array_keys = qw{ keywords author }; *authors = \&author; sub Meta { shift } sub Meta_BooleanKeys { @boolean_keys } sub Meta_ScalarKeys { @scalar_keys } sub Meta_TupleKeys { @tuple_keys } sub Meta_ResourceKeys { @resource_keys } sub Meta_ArrayKeys { @array_keys } foreach my $key ( @boolean_keys ) { *$key = sub { my $self = shift; if ( defined wantarray and not @_ ) { return $self->{values}->{$key}; } $self->{values}->{$key} = ( @_ ? $_[0] : 1 ); return $self; }; } foreach my $key ( @scalar_keys ) { *$key = sub { my $self = shift; return $self->{values}->{$key} if defined wantarray and !@_; $self->{values}->{$key} = shift; return $self; }; } foreach my $key ( @array_keys ) { *$key = sub { my $self = shift; return $self->{values}->{$key} if defined wantarray and !@_; $self->{values}->{$key} ||= []; push @{$self->{values}->{$key}}, @_; return $self; }; } foreach my $key ( @resource_keys ) { *$key = sub { my $self = shift; unless ( @_ ) { return () unless $self->{values}->{resources}; return map { $_->[1] } grep { $_->[0] eq $key } @{ $self->{values}->{resources} }; } return $self->{values}->{resources}->{$key} unless @_; my $uri = shift or die( "Did not provide a value to $key()" ); $self->resources( $key => $uri ); return 1; }; } foreach my $key ( grep { $_ ne "resources" } @tuple_keys) { *$key = sub { my $self = shift; return $self->{values}->{$key} unless @_; my @added; while ( @_ ) { my $module = shift or last; my $version = shift || 0; push @added, [ $module, $version ]; } push @{ $self->{values}->{$key} }, @added; return map {@$_} @added; }; } # Resource handling my %lc_resource = map { $_ => 1 } qw{ homepage license bugtracker repository }; sub resources { my $self = shift; while ( @_ ) { my $name = shift or last; my $value = shift or next; if ( $name eq lc $name and ! $lc_resource{$name} ) { die("Unsupported reserved lowercase resource '$name'"); } $self->{values}->{resources} ||= []; push @{ $self->{values}->{resources} }, [ $name, $value ]; } $self->{values}->{resources}; } # Aliases for build_requires that will have alternative # meanings in some future version of META.yml. sub test_requires { shift->build_requires(@_) } sub install_requires { shift->build_requires(@_) } # Aliases for installdirs options sub install_as_core { $_[0]->installdirs('perl') } sub install_as_cpan { $_[0]->installdirs('site') } sub install_as_site { $_[0]->installdirs('site') } sub install_as_vendor { $_[0]->installdirs('vendor') } sub dynamic_config { my $self = shift; my $value = @_ ? shift : 1; if ( $self->{values}->{dynamic_config} ) { # Once dynamic we never change to static, for safety return 0; } $self->{values}->{dynamic_config} = $value ? 1 : 0; return 1; } # Convenience command sub static_config { shift->dynamic_config(0); } sub perl_version { my $self = shift; return $self->{values}->{perl_version} unless @_; my $version = shift or die( "Did not provide a value to perl_version()" ); # Normalize the version $version = $self->_perl_version($version); # We don't support the really old versions unless ( $version >= 5.005 ) { die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n"; } $self->{values}->{perl_version} = $version; } sub all_from { my ( $self, $file ) = @_; unless ( defined($file) ) { my $name = $self->name or die( "all_from called with no args without setting name() first" ); $file = join('/', 'lib', split(/-/, $name)) . '.pm'; $file =~ s{.*/}{} unless -e $file; unless ( -e $file ) { die("all_from cannot find $file from $name"); } } unless ( -f $file ) { die("The path '$file' does not exist, or is not a file"); } $self->{values}{all_from} = $file; # Some methods pull from POD instead of code. # If there is a matching .pod, use that instead my $pod = $file; $pod =~ s/\.pm$/.pod/i; $pod = $file unless -e $pod; # Pull the different values $self->name_from($file) unless $self->name; $self->version_from($file) unless $self->version; $self->perl_version_from($file) unless $self->perl_version; $self->author_from($pod) unless @{$self->author || []}; $self->license_from($pod) unless $self->license; $self->abstract_from($pod) unless $self->abstract; return 1; } sub provides { my $self = shift; my $provides = ( $self->{values}->{provides} ||= {} ); %$provides = (%$provides, @_) if @_; return $provides; } sub auto_provides { my $self = shift; return $self unless $self->is_admin; unless (-e 'MANIFEST') { warn "Cannot deduce auto_provides without a MANIFEST, skipping\n"; return $self; } # Avoid spurious warnings as we are not checking manifest here. local $SIG{__WARN__} = sub {1}; require ExtUtils::Manifest; local *ExtUtils::Manifest::manicheck = sub { return }; require Module::Build; my $build = Module::Build->new( dist_name => $self->name, dist_version => $self->version, license => $self->license, ); $self->provides( %{ $build->find_dist_packages || {} } ); } sub feature { my $self = shift; my $name = shift; my $features = ( $self->{values}->{features} ||= [] ); my $mods; if ( @_ == 1 and ref( $_[0] ) ) { # The user used ->feature like ->features by passing in the second # argument as a reference. Accomodate for that. $mods = $_[0]; } else { $mods = \@_; } my $count = 0; push @$features, ( $name => [ map { ref($_) ? ( ref($_) eq 'HASH' ) ? %$_ : @$_ : $_ } @$mods ] ); return @$features; } sub features { my $self = shift; while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) { $self->feature( $name, @$mods ); } return $self->{values}->{features} ? @{ $self->{values}->{features} } : (); } sub no_index { my $self = shift; my $type = shift; push @{ $self->{values}->{no_index}->{$type} }, @_ if $type; return $self->{values}->{no_index}; } sub read { my $self = shift; $self->include_deps( 'YAML::Tiny', 0 ); require YAML::Tiny; my $data = YAML::Tiny::LoadFile('META.yml'); # Call methods explicitly in case user has already set some values. while ( my ( $key, $value ) = each %$data ) { next unless $self->can($key); if ( ref $value eq 'HASH' ) { while ( my ( $module, $version ) = each %$value ) { $self->can($key)->($self, $module => $version ); } } else { $self->can($key)->($self, $value); } } return $self; } sub write { my $self = shift; return $self unless $self->is_admin; $self->admin->write_meta; return $self; } sub version_from { require ExtUtils::MM_Unix; my ( $self, $file ) = @_; $self->version( ExtUtils::MM_Unix->parse_version($file) ); # for version integrity check $self->makemaker_args( VERSION_FROM => $file ); } sub abstract_from { require ExtUtils::MM_Unix; my ( $self, $file ) = @_; $self->abstract( bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix' )->parse_abstract($file) ); } # Add both distribution and module name sub name_from { my ($self, $file) = @_; if ( Module::Install::_read($file) =~ m/ ^ \s* package \s* ([\w:]+) \s* ; /ixms ) { my ($name, $module_name) = ($1, $1); $name =~ s{::}{-}g; $self->name($name); unless ( $self->module_name ) { $self->module_name($module_name); } } else { die("Cannot determine name from $file\n"); } } sub _extract_perl_version { if ( $_[0] =~ m/ ^\s* (?:use|require) \s* v? ([\d_\.]+) \s* ; /ixms ) { my $perl_version = $1; $perl_version =~ s{_}{}g; return $perl_version; } else { return; } } sub perl_version_from { my $self = shift; my $perl_version=_extract_perl_version(Module::Install::_read($_[0])); if ($perl_version) { $self->perl_version($perl_version); } else { warn "Cannot determine perl version info from $_[0]\n"; return; } } sub author_from { my $self = shift; my $content = Module::Install::_read($_[0]); if ($content =~ m/ =head \d \s+ (?:authors?)\b \s* ([^\n]*) | =head \d \s+ (?:licen[cs]e|licensing|copyright|legal)\b \s* .*? copyright .*? \d\d\d[\d.]+ \s* (?:\bby\b)? \s* ([^\n]*) /ixms) { my $author = $1 || $2; # XXX: ugly but should work anyway... if (eval "require Pod::Escapes; 1") { # Pod::Escapes has a mapping table. # It's in core of perl >= 5.9.3, and should be installed # as one of the Pod::Simple's prereqs, which is a prereq # of Pod::Text 3.x (see also below). $author =~ s{ E<( (\d+) | ([A-Za-z]+) )> } { defined $2 ? chr($2) : defined $Pod::Escapes::Name2character_number{$1} ? chr($Pod::Escapes::Name2character_number{$1}) : do { warn "Unknown escape: E<$1>"; "E<$1>"; }; }gex; } elsif (eval "require Pod::Text; 1" && $Pod::Text::VERSION < 3) { # Pod::Text < 3.0 has yet another mapping table, # though the table name of 2.x and 1.x are different. # (1.x is in core of Perl < 5.6, 2.x is in core of # Perl < 5.9.3) my $mapping = ($Pod::Text::VERSION < 2) ? \%Pod::Text::HTML_Escapes : \%Pod::Text::ESCAPES; $author =~ s{ E<( (\d+) | ([A-Za-z]+) )> } { defined $2 ? chr($2) : defined $mapping->{$1} ? $mapping->{$1} : do { warn "Unknown escape: E<$1>"; "E<$1>"; }; }gex; } else { $author =~ s{E}{<}g; $author =~ s{E}{>}g; } $self->author($author); } else { warn "Cannot determine author info from $_[0]\n"; } } #Stolen from M::B my %license_urls = ( perl => 'http://dev.perl.org/licenses/', apache => 'http://apache.org/licenses/LICENSE-2.0', apache_1_1 => 'http://apache.org/licenses/LICENSE-1.1', artistic => 'http://opensource.org/licenses/artistic-license.php', artistic_2 => 'http://opensource.org/licenses/artistic-license-2.0.php', lgpl => 'http://opensource.org/licenses/lgpl-license.php', lgpl2 => 'http://opensource.org/licenses/lgpl-2.1.php', lgpl3 => 'http://opensource.org/licenses/lgpl-3.0.html', bsd => 'http://opensource.org/licenses/bsd-license.php', gpl => 'http://opensource.org/licenses/gpl-license.php', gpl2 => 'http://opensource.org/licenses/gpl-2.0.php', gpl3 => 'http://opensource.org/licenses/gpl-3.0.html', mit => 'http://opensource.org/licenses/mit-license.php', mozilla => 'http://opensource.org/licenses/mozilla1.1.php', open_source => undef, unrestricted => undef, restrictive => undef, unknown => undef, ); sub license { my $self = shift; return $self->{values}->{license} unless @_; my $license = shift or die( 'Did not provide a value to license()' ); $license = __extract_license($license) || lc $license; $self->{values}->{license} = $license; # Automatically fill in license URLs if ( $license_urls{$license} ) { $self->resources( license => $license_urls{$license} ); } return 1; } sub _extract_license { my $pod = shift; my $matched; return __extract_license( ($matched) = $pod =~ m/ (=head \d \s+ L(?i:ICEN[CS]E|ICENSING)\b.*?) (=head \d.*|=cut.*|)\z /xms ) || __extract_license( ($matched) = $pod =~ m/ (=head \d \s+ (?:C(?i:OPYRIGHTS?)|L(?i:EGAL))\b.*?) (=head \d.*|=cut.*|)\z /xms ); } sub __extract_license { my $license_text = shift or return; my @phrases = ( '(?:under )?the same (?:terms|license) as (?:perl|the perl (?:\d )?programming language)' => 'perl', 1, '(?:under )?the terms of (?:perl|the perl programming language) itself' => 'perl', 1, 'Artistic and GPL' => 'perl', 1, 'GNU general public license' => 'gpl', 1, 'GNU public license' => 'gpl', 1, 'GNU lesser general public license' => 'lgpl', 1, 'GNU lesser public license' => 'lgpl', 1, 'GNU library general public license' => 'lgpl', 1, 'GNU library public license' => 'lgpl', 1, 'GNU Free Documentation license' => 'unrestricted', 1, 'GNU Affero General Public License' => 'open_source', 1, '(?:Free)?BSD license' => 'bsd', 1, 'Artistic license 2\.0' => 'artistic_2', 1, 'Artistic license' => 'artistic', 1, 'Apache (?:Software )?license' => 'apache', 1, 'GPL' => 'gpl', 1, 'LGPL' => 'lgpl', 1, 'BSD' => 'bsd', 1, 'Artistic' => 'artistic', 1, 'MIT' => 'mit', 1, 'Mozilla Public License' => 'mozilla', 1, 'Q Public License' => 'open_source', 1, 'OpenSSL License' => 'unrestricted', 1, 'SSLeay License' => 'unrestricted', 1, 'zlib License' => 'open_source', 1, 'proprietary' => 'proprietary', 0, ); while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) { $pattern =~ s#\s+#\\s+#gs; if ( $license_text =~ /\b$pattern\b/i ) { return $license; } } return ''; } sub license_from { my $self = shift; if (my $license=_extract_license(Module::Install::_read($_[0]))) { $self->license($license); } else { warn "Cannot determine license info from $_[0]\n"; return 'unknown'; } } sub _extract_bugtracker { my @links = $_[0] =~ m#L<( https?\Q://rt.cpan.org/\E[^>]+| https?\Q://github.com/\E[\w_]+/[\w_]+/issues| https?\Q://code.google.com/p/\E[\w_\-]+/issues/list )>#gx; my %links; @links{@links}=(); @links=keys %links; return @links; } sub bugtracker_from { my $self = shift; my $content = Module::Install::_read($_[0]); my @links = _extract_bugtracker($content); unless ( @links ) { warn "Cannot determine bugtracker info from $_[0]\n"; return 0; } if ( @links > 1 ) { warn "Found more than one bugtracker link in $_[0]\n"; return 0; } # Set the bugtracker bugtracker( $links[0] ); return 1; } sub requires_from { my $self = shift; my $content = Module::Install::_readperl($_[0]); my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg; while ( @requires ) { my $module = shift @requires; my $version = shift @requires; $self->requires( $module => $version ); } } sub test_requires_from { my $self = shift; my $content = Module::Install::_readperl($_[0]); my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg; while ( @requires ) { my $module = shift @requires; my $version = shift @requires; $self->test_requires( $module => $version ); } } # Convert triple-part versions (eg, 5.6.1 or 5.8.9) to # numbers (eg, 5.006001 or 5.008009). # Also, convert double-part versions (eg, 5.8) sub _perl_version { my $v = $_[-1]; $v =~ s/^([1-9])\.([1-9]\d?\d?)$/sprintf("%d.%03d",$1,$2)/e; $v =~ s/^([1-9])\.([1-9]\d?\d?)\.(0|[1-9]\d?\d?)$/sprintf("%d.%03d%03d",$1,$2,$3 || 0)/e; $v =~ s/(\.\d\d\d)000$/$1/; $v =~ s/_.+$//; if ( ref($v) ) { # Numify $v = $v + 0; } return $v; } sub add_metadata { my $self = shift; my %hash = @_; for my $key (keys %hash) { warn "add_metadata: $key is not prefixed with 'x_'.\n" . "Use appopriate function to add non-private metadata.\n" unless $key =~ /^x_/; $self->{values}->{$key} = $hash{$key}; } } ###################################################################### # MYMETA Support sub WriteMyMeta { die "WriteMyMeta has been deprecated"; } sub write_mymeta_yaml { my $self = shift; # We need YAML::Tiny to write the MYMETA.yml file unless ( eval { require YAML::Tiny; 1; } ) { return 1; } # Generate the data my $meta = $self->_write_mymeta_data or return 1; # Save as the MYMETA.yml file print "Writing MYMETA.yml\n"; YAML::Tiny::DumpFile('MYMETA.yml', $meta); } sub write_mymeta_json { my $self = shift; # We need JSON to write the MYMETA.json file unless ( eval { require JSON; 1; } ) { return 1; } # Generate the data my $meta = $self->_write_mymeta_data or return 1; # Save as the MYMETA.yml file print "Writing MYMETA.json\n"; Module::Install::_write( 'MYMETA.json', JSON->new->pretty(1)->canonical->encode($meta), ); } sub _write_mymeta_data { my $self = shift; # If there's no existing META.yml there is nothing we can do return undef unless -f 'META.yml'; # We need Parse::CPAN::Meta to load the file unless ( eval { require Parse::CPAN::Meta; 1; } ) { return undef; } # Merge the perl version into the dependencies my $val = $self->Meta->{values}; my $perl = delete $val->{perl_version}; if ( $perl ) { $val->{requires} ||= []; my $requires = $val->{requires}; # Canonize to three-dot version after Perl 5.6 if ( $perl >= 5.006 ) { $perl =~ s{^(\d+)\.(\d\d\d)(\d*)}{join('.', $1, int($2||0), int($3||0))}e } unshift @$requires, [ perl => $perl ]; } # Load the advisory META.yml file my @yaml = Parse::CPAN::Meta::LoadFile('META.yml'); my $meta = $yaml[0]; # Overwrite the non-configure dependency hashs delete $meta->{requires}; delete $meta->{build_requires}; delete $meta->{recommends}; if ( exists $val->{requires} ) { $meta->{requires} = { map { @$_ } @{ $val->{requires} } }; } if ( exists $val->{build_requires} ) { $meta->{build_requires} = { map { @$_ } @{ $val->{build_requires} } }; } return $meta; } 1; Padre-1.00/inc/Module/Install/Base.pm0000644000175000017500000000214712237340453015764 0ustar petepete#line 1 package Module::Install::Base; use strict 'vars'; use vars qw{$VERSION}; BEGIN { $VERSION = '1.06'; } # Suspend handler for "redefined" warnings BEGIN { my $w = $SIG{__WARN__}; $SIG{__WARN__} = sub { $w }; } #line 42 sub new { my $class = shift; unless ( defined &{"${class}::call"} ) { *{"${class}::call"} = sub { shift->_top->call(@_) }; } unless ( defined &{"${class}::load"} ) { *{"${class}::load"} = sub { shift->_top->load(@_) }; } bless { @_ }, $class; } #line 61 sub AUTOLOAD { local $@; my $func = eval { shift->_top->autoload } or return; goto &$func; } #line 75 sub _top { $_[0]->{_top}; } #line 90 sub admin { $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new; } #line 106 sub is_admin { ! $_[0]->admin->isa('Module::Install::Base::FakeAdmin'); } sub DESTROY {} package Module::Install::Base::FakeAdmin; use vars qw{$VERSION}; BEGIN { $VERSION = $Module::Install::Base::VERSION; } my $fake; sub new { $fake ||= bless(\@_, $_[0]); } sub AUTOLOAD {} sub DESTROY {} # Restore warning handler BEGIN { $SIG{__WARN__} = $SIG{__WARN__}->(); } 1; #line 159 Padre-1.00/inc/Module/Install/Makefile.pm0000644000175000017500000002743712237340453016640 0ustar petepete#line 1 package Module::Install::Makefile; use strict 'vars'; use ExtUtils::MakeMaker (); use Module::Install::Base (); use Fcntl qw/:flock :seek/; use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } sub Makefile { $_[0] } my %seen = (); sub prompt { shift; # Infinite loop protection my @c = caller(); if ( ++$seen{"$c[1]|$c[2]|$_[0]"} > 3 ) { die "Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])"; } # In automated testing or non-interactive session, always use defaults if ( ($ENV{AUTOMATED_TESTING} or -! -t STDIN) and ! $ENV{PERL_MM_USE_DEFAULT} ) { local $ENV{PERL_MM_USE_DEFAULT} = 1; goto &ExtUtils::MakeMaker::prompt; } else { goto &ExtUtils::MakeMaker::prompt; } } # Store a cleaned up version of the MakeMaker version, # since we need to behave differently in a variety of # ways based on the MM version. my $makemaker = eval $ExtUtils::MakeMaker::VERSION; # If we are passed a param, do a "newer than" comparison. # Otherwise, just return the MakeMaker version. sub makemaker { ( @_ < 2 or $makemaker >= eval($_[1]) ) ? $makemaker : 0 } # Ripped from ExtUtils::MakeMaker 6.56, and slightly modified # as we only need to know here whether the attribute is an array # or a hash or something else (which may or may not be appendable). my %makemaker_argtype = ( C => 'ARRAY', CONFIG => 'ARRAY', # CONFIGURE => 'CODE', # ignore DIR => 'ARRAY', DL_FUNCS => 'HASH', DL_VARS => 'ARRAY', EXCLUDE_EXT => 'ARRAY', EXE_FILES => 'ARRAY', FUNCLIST => 'ARRAY', H => 'ARRAY', IMPORTS => 'HASH', INCLUDE_EXT => 'ARRAY', LIBS => 'ARRAY', # ignore '' MAN1PODS => 'HASH', MAN3PODS => 'HASH', META_ADD => 'HASH', META_MERGE => 'HASH', PL_FILES => 'HASH', PM => 'HASH', PMLIBDIRS => 'ARRAY', PMLIBPARENTDIRS => 'ARRAY', PREREQ_PM => 'HASH', CONFIGURE_REQUIRES => 'HASH', SKIP => 'ARRAY', TYPEMAPS => 'ARRAY', XS => 'HASH', # VERSION => ['version',''], # ignore # _KEEP_AFTER_FLUSH => '', clean => 'HASH', depend => 'HASH', dist => 'HASH', dynamic_lib=> 'HASH', linkext => 'HASH', macro => 'HASH', postamble => 'HASH', realclean => 'HASH', test => 'HASH', tool_autosplit => 'HASH', # special cases where you can use makemaker_append CCFLAGS => 'APPENDABLE', DEFINE => 'APPENDABLE', INC => 'APPENDABLE', LDDLFLAGS => 'APPENDABLE', LDFROM => 'APPENDABLE', ); sub makemaker_args { my ($self, %new_args) = @_; my $args = ( $self->{makemaker_args} ||= {} ); foreach my $key (keys %new_args) { if ($makemaker_argtype{$key}) { if ($makemaker_argtype{$key} eq 'ARRAY') { $args->{$key} = [] unless defined $args->{$key}; unless (ref $args->{$key} eq 'ARRAY') { $args->{$key} = [$args->{$key}] } push @{$args->{$key}}, ref $new_args{$key} eq 'ARRAY' ? @{$new_args{$key}} : $new_args{$key}; } elsif ($makemaker_argtype{$key} eq 'HASH') { $args->{$key} = {} unless defined $args->{$key}; foreach my $skey (keys %{ $new_args{$key} }) { $args->{$key}{$skey} = $new_args{$key}{$skey}; } } elsif ($makemaker_argtype{$key} eq 'APPENDABLE') { $self->makemaker_append($key => $new_args{$key}); } } else { if (defined $args->{$key}) { warn qq{MakeMaker attribute "$key" is overriden; use "makemaker_append" to append values\n}; } $args->{$key} = $new_args{$key}; } } return $args; } # For mm args that take multiple space-seperated args, # append an argument to the current list. sub makemaker_append { my $self = shift; my $name = shift; my $args = $self->makemaker_args; $args->{$name} = defined $args->{$name} ? join( ' ', $args->{$name}, @_ ) : join( ' ', @_ ); } sub build_subdirs { my $self = shift; my $subdirs = $self->makemaker_args->{DIR} ||= []; for my $subdir (@_) { push @$subdirs, $subdir; } } sub clean_files { my $self = shift; my $clean = $self->makemaker_args->{clean} ||= {}; %$clean = ( %$clean, FILES => join ' ', grep { length $_ } ($clean->{FILES} || (), @_), ); } sub realclean_files { my $self = shift; my $realclean = $self->makemaker_args->{realclean} ||= {}; %$realclean = ( %$realclean, FILES => join ' ', grep { length $_ } ($realclean->{FILES} || (), @_), ); } sub libs { my $self = shift; my $libs = ref $_[0] ? shift : [ shift ]; $self->makemaker_args( LIBS => $libs ); } sub inc { my $self = shift; $self->makemaker_args( INC => shift ); } sub _wanted_t { } sub tests_recursive { my $self = shift; my $dir = shift || 't'; unless ( -d $dir ) { die "tests_recursive dir '$dir' does not exist"; } my %tests = map { $_ => 1 } split / /, ($self->tests || ''); require File::Find; File::Find::find( sub { /\.t$/ and -f $_ and $tests{"$File::Find::dir/*.t"} = 1 }, $dir ); $self->tests( join ' ', sort keys %tests ); } sub write { my $self = shift; die "&Makefile->write() takes no arguments\n" if @_; # Check the current Perl version my $perl_version = $self->perl_version; if ( $perl_version ) { eval "use $perl_version; 1" or die "ERROR: perl: Version $] is installed, " . "but we need version >= $perl_version"; } # Make sure we have a new enough MakeMaker require ExtUtils::MakeMaker; if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) { # This previous attempted to inherit the version of # ExtUtils::MakeMaker in use by the module author, but this # was found to be untenable as some authors build releases # using future dev versions of EU:MM that nobody else has. # Instead, #toolchain suggests we use 6.59 which is the most # stable version on CPAN at time of writing and is, to quote # ribasushi, "not terminally fucked, > and tested enough". # TODO: We will now need to maintain this over time to push # the version up as new versions are released. $self->build_requires( 'ExtUtils::MakeMaker' => 6.59 ); $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 ); } else { # Allow legacy-compatibility with 5.005 by depending on the # most recent EU:MM that supported 5.005. $self->build_requires( 'ExtUtils::MakeMaker' => 6.36 ); $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 ); } # Generate the MakeMaker params my $args = $self->makemaker_args; $args->{DISTNAME} = $self->name; $args->{NAME} = $self->module_name || $self->name; $args->{NAME} =~ s/-/::/g; $args->{VERSION} = $self->version or die <<'EOT'; ERROR: Can't determine distribution version. Please specify it explicitly via 'version' in Makefile.PL, or set a valid $VERSION in a module, and provide its file path via 'version_from' (or 'all_from' if you prefer) in Makefile.PL. EOT if ( $self->tests ) { my @tests = split ' ', $self->tests; my %seen; $args->{test} = { TESTS => (join ' ', grep {!$seen{$_}++} @tests), }; } elsif ( $Module::Install::ExtraTests::use_extratests ) { # Module::Install::ExtraTests doesn't set $self->tests and does its own tests via harness. # So, just ignore our xt tests here. } elsif ( -d 'xt' and ($Module::Install::AUTHOR or $ENV{RELEASE_TESTING}) ) { $args->{test} = { TESTS => join( ' ', map { "$_/*.t" } grep { -d $_ } qw{ t xt } ), }; } if ( $] >= 5.005 ) { $args->{ABSTRACT} = $self->abstract; $args->{AUTHOR} = join ', ', @{$self->author || []}; } if ( $self->makemaker(6.10) ) { $args->{NO_META} = 1; #$args->{NO_MYMETA} = 1; } if ( $self->makemaker(6.17) and $self->sign ) { $args->{SIGN} = 1; } unless ( $self->is_admin ) { delete $args->{SIGN}; } if ( $self->makemaker(6.31) and $self->license ) { $args->{LICENSE} = $self->license; } my $prereq = ($args->{PREREQ_PM} ||= {}); %$prereq = ( %$prereq, map { @$_ } # flatten [module => version] map { @$_ } grep $_, ($self->requires) ); # Remove any reference to perl, PREREQ_PM doesn't support it delete $args->{PREREQ_PM}->{perl}; # Merge both kinds of requires into BUILD_REQUIRES my $build_prereq = ($args->{BUILD_REQUIRES} ||= {}); %$build_prereq = ( %$build_prereq, map { @$_ } # flatten [module => version] map { @$_ } grep $_, ($self->configure_requires, $self->build_requires) ); # Remove any reference to perl, BUILD_REQUIRES doesn't support it delete $args->{BUILD_REQUIRES}->{perl}; # Delete bundled dists from prereq_pm, add it to Makefile DIR my $subdirs = ($args->{DIR} || []); if ($self->bundles) { my %processed; foreach my $bundle (@{ $self->bundles }) { my ($mod_name, $dist_dir) = @$bundle; delete $prereq->{$mod_name}; $dist_dir = File::Basename::basename($dist_dir); # dir for building this module if (not exists $processed{$dist_dir}) { if (-d $dist_dir) { # List as sub-directory to be processed by make push @$subdirs, $dist_dir; } # Else do nothing: the module is already present on the system $processed{$dist_dir} = undef; } } } unless ( $self->makemaker('6.55_03') ) { %$prereq = (%$prereq,%$build_prereq); delete $args->{BUILD_REQUIRES}; } if ( my $perl_version = $self->perl_version ) { eval "use $perl_version; 1" or die "ERROR: perl: Version $] is installed, " . "but we need version >= $perl_version"; if ( $self->makemaker(6.48) ) { $args->{MIN_PERL_VERSION} = $perl_version; } } if ($self->installdirs) { warn qq{old INSTALLDIRS (probably set by makemaker_args) is overriden by installdirs\n} if $args->{INSTALLDIRS}; $args->{INSTALLDIRS} = $self->installdirs; } my %args = map { ( $_ => $args->{$_} ) } grep {defined($args->{$_} ) } keys %$args; my $user_preop = delete $args{dist}->{PREOP}; if ( my $preop = $self->admin->preop($user_preop) ) { foreach my $key ( keys %$preop ) { $args{dist}->{$key} = $preop->{$key}; } } my $mm = ExtUtils::MakeMaker::WriteMakefile(%args); $self->fix_up_makefile($mm->{FIRST_MAKEFILE} || 'Makefile'); } sub fix_up_makefile { my $self = shift; my $makefile_name = shift; my $top_class = ref($self->_top) || ''; my $top_version = $self->_top->VERSION || ''; my $preamble = $self->preamble ? "# Preamble by $top_class $top_version\n" . $self->preamble : ''; my $postamble = "# Postamble by $top_class $top_version\n" . ($self->postamble || ''); local *MAKEFILE; open MAKEFILE, "+< $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!"; eval { flock MAKEFILE, LOCK_EX }; my $makefile = do { local $/; }; $makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /; $makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g; $makefile =~ s/( "-I\$\(INST_LIB\)")/ "-Iinc"$1/g; $makefile =~ s/^(FULLPERL = .*)/$1 "-Iinc"/m; $makefile =~ s/^(PERL = .*)/$1 "-Iinc"/m; # Module::Install will never be used to build the Core Perl # Sometimes PERL_LIB and PERL_ARCHLIB get written anyway, which breaks # PREFIX/PERL5LIB, and thus, install_share. Blank them if they exist $makefile =~ s/^PERL_LIB = .+/PERL_LIB =/m; #$makefile =~ s/^PERL_ARCHLIB = .+/PERL_ARCHLIB =/m; # Perl 5.005 mentions PERL_LIB explicitly, so we have to remove that as well. $makefile =~ s/(\"?)-I\$\(PERL_LIB\)\1//g; # XXX - This is currently unused; not sure if it breaks other MM-users # $makefile =~ s/^pm_to_blib\s+:\s+/pm_to_blib :: /mg; seek MAKEFILE, 0, SEEK_SET; truncate MAKEFILE, 0; print MAKEFILE "$preamble$makefile$postamble" or die $!; close MAKEFILE or die $!; 1; } sub preamble { my ($self, $text) = @_; $self->{preamble} = $text . $self->{preamble} if defined $text; $self->{preamble}; } sub postamble { my ($self, $text) = @_; $self->{postamble} ||= $self->admin->postamble; $self->{postamble} .= $text if defined $text; $self->{postamble} } 1; __END__ #line 544 Padre-1.00/inc/Module/Install/WriteAll.pm0000644000175000017500000000237612237340453016641 0ustar petepete#line 1 package Module::Install::WriteAll; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } sub WriteAll { my $self = shift; my %args = ( meta => 1, sign => 0, inline => 0, check_nmake => 1, @_, ); $self->sign(1) if $args{sign}; $self->admin->WriteAll(%args) if $self->is_admin; $self->check_nmake if $args{check_nmake}; unless ( $self->makemaker_args->{PL_FILES} ) { # XXX: This still may be a bit over-defensive... unless ($self->makemaker(6.25)) { $self->makemaker_args( PL_FILES => {} ) if -f 'Build.PL'; } } # Until ExtUtils::MakeMaker support MYMETA.yml, make sure # we clean it up properly ourself. $self->realclean_files('MYMETA.yml'); if ( $args{inline} ) { $self->Inline->write; } else { $self->Makefile->write; } # The Makefile write process adds a couple of dependencies, # so write the META.yml files after the Makefile. if ( $args{meta} ) { $self->Meta->write; } # Experimental support for MYMETA if ( $ENV{X_MYMETA} ) { if ( $ENV{X_MYMETA} eq 'JSON' ) { $self->Meta->write_mymeta_json; } else { $self->Meta->write_mymeta_yaml; } } return 1; } 1; Padre-1.00/inc/Module/Install/Win32.pm0000644000175000017500000000340312237340453016010 0ustar petepete#line 1 package Module::Install::Win32; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.06'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } # determine if the user needs nmake, and download it if needed sub check_nmake { my $self = shift; $self->load('can_run'); $self->load('get_file'); require Config; return unless ( $^O eq 'MSWin32' and $Config::Config{make} and $Config::Config{make} =~ /^nmake\b/i and ! $self->can_run('nmake') ); print "The required 'nmake' executable not found, fetching it...\n"; require File::Basename; my $rv = $self->get_file( url => 'http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe', ftp_url => 'ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe', local_dir => File::Basename::dirname($^X), size => 51928, run => 'Nmake15.exe /o > nul', check_for => 'Nmake.exe', remove => 1, ); die <<'END_MESSAGE' unless $rv; ------------------------------------------------------------------------------- Since you are using Microsoft Windows, you will need the 'nmake' utility before installation. It's available at: http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe or ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe Please download the file manually, save it to a directory in %PATH% (e.g. C:\WINDOWS\COMMAND\), then launch the MS-DOS command line shell, "cd" to that directory, and run "Nmake15.exe" from there; that will create the 'nmake.exe' file needed by this module. You may then resume the installation process described in README. ------------------------------------------------------------------------------- END_MESSAGE } 1; Padre-1.00/inc/Module/Install.pm0000644000175000017500000003013512237340452015107 0ustar petepete#line 1 package Module::Install; # For any maintainers: # The load order for Module::Install is a bit magic. # It goes something like this... # # IF ( host has Module::Install installed, creating author mode ) { # 1. Makefile.PL calls "use inc::Module::Install" # 2. $INC{inc/Module/Install.pm} set to installed version of inc::Module::Install # 3. The installed version of inc::Module::Install loads # 4. inc::Module::Install calls "require Module::Install" # 5. The ./inc/ version of Module::Install loads # } ELSE { # 1. Makefile.PL calls "use inc::Module::Install" # 2. $INC{inc/Module/Install.pm} set to ./inc/ version of Module::Install # 3. The ./inc/ version of Module::Install loads # } use 5.005; use strict 'vars'; use Cwd (); use File::Find (); use File::Path (); use vars qw{$VERSION $MAIN}; BEGIN { # All Module::Install core packages now require synchronised versions. # This will be used to ensure we don't accidentally load old or # different versions of modules. # This is not enforced yet, but will be some time in the next few # releases once we can make sure it won't clash with custom # Module::Install extensions. $VERSION = '1.06'; # Storage for the pseudo-singleton $MAIN = undef; *inc::Module::Install::VERSION = *VERSION; @inc::Module::Install::ISA = __PACKAGE__; } sub import { my $class = shift; my $self = $class->new(@_); my $who = $self->_caller; #------------------------------------------------------------- # all of the following checks should be included in import(), # to allow "eval 'require Module::Install; 1' to test # installation of Module::Install. (RT #51267) #------------------------------------------------------------- # Whether or not inc::Module::Install is actually loaded, the # $INC{inc/Module/Install.pm} is what will still get set as long as # the caller loaded module this in the documented manner. # If not set, the caller may NOT have loaded the bundled version, and thus # they may not have a MI version that works with the Makefile.PL. This would # result in false errors or unexpected behaviour. And we don't want that. my $file = join( '/', 'inc', split /::/, __PACKAGE__ ) . '.pm'; unless ( $INC{$file} ) { die <<"END_DIE" } Please invoke ${\__PACKAGE__} with: use inc::${\__PACKAGE__}; not: use ${\__PACKAGE__}; END_DIE # This reportedly fixes a rare Win32 UTC file time issue, but # as this is a non-cross-platform XS module not in the core, # we shouldn't really depend on it. See RT #24194 for detail. # (Also, this module only supports Perl 5.6 and above). eval "use Win32::UTCFileTime" if $^O eq 'MSWin32' && $] >= 5.006; # If the script that is loading Module::Install is from the future, # then make will detect this and cause it to re-run over and over # again. This is bad. Rather than taking action to touch it (which # is unreliable on some platforms and requires write permissions) # for now we should catch this and refuse to run. if ( -f $0 ) { my $s = (stat($0))[9]; # If the modification time is only slightly in the future, # sleep briefly to remove the problem. my $a = $s - time; if ( $a > 0 and $a < 5 ) { sleep 5 } # Too far in the future, throw an error. my $t = time; if ( $s > $t ) { die <<"END_DIE" } Your installer $0 has a modification time in the future ($s > $t). This is known to create infinite loops in make. Please correct this, then run $0 again. END_DIE } # Build.PL was formerly supported, but no longer is due to excessive # difficulty in implementing every single feature twice. if ( $0 =~ /Build.PL$/i ) { die <<"END_DIE" } Module::Install no longer supports Build.PL. It was impossible to maintain duel backends, and has been deprecated. Please remove all Build.PL files and only use the Makefile.PL installer. END_DIE #------------------------------------------------------------- # To save some more typing in Module::Install installers, every... # use inc::Module::Install # ...also acts as an implicit use strict. $^H |= strict::bits(qw(refs subs vars)); #------------------------------------------------------------- unless ( -f $self->{file} ) { foreach my $key (keys %INC) { delete $INC{$key} if $key =~ /Module\/Install/; } local $^W; require "$self->{path}/$self->{dispatch}.pm"; File::Path::mkpath("$self->{prefix}/$self->{author}"); $self->{admin} = "$self->{name}::$self->{dispatch}"->new( _top => $self ); $self->{admin}->init; @_ = ($class, _self => $self); goto &{"$self->{name}::import"}; } local $^W; *{"${who}::AUTOLOAD"} = $self->autoload; $self->preload; # Unregister loader and worker packages so subdirs can use them again delete $INC{'inc/Module/Install.pm'}; delete $INC{'Module/Install.pm'}; # Save to the singleton $MAIN = $self; return 1; } sub autoload { my $self = shift; my $who = $self->_caller; my $cwd = Cwd::cwd(); my $sym = "${who}::AUTOLOAD"; $sym->{$cwd} = sub { my $pwd = Cwd::cwd(); if ( my $code = $sym->{$pwd} ) { # Delegate back to parent dirs goto &$code unless $cwd eq $pwd; } unless ($$sym =~ s/([^:]+)$//) { # XXX: it looks like we can't retrieve the missing function # via $$sym (usually $main::AUTOLOAD) in this case. # I'm still wondering if we should slurp Makefile.PL to # get some context or not ... my ($package, $file, $line) = caller; die <<"EOT"; Unknown function is found at $file line $line. Execution of $file aborted due to runtime errors. If you're a contributor to a project, you may need to install some Module::Install extensions from CPAN (or other repository). If you're a user of a module, please contact the author. EOT } my $method = $1; if ( uc($method) eq $method ) { # Do nothing return; } elsif ( $method =~ /^_/ and $self->can($method) ) { # Dispatch to the root M:I class return $self->$method(@_); } # Dispatch to the appropriate plugin unshift @_, ( $self, $1 ); goto &{$self->can('call')}; }; } sub preload { my $self = shift; unless ( $self->{extensions} ) { $self->load_extensions( "$self->{prefix}/$self->{path}", $self ); } my @exts = @{$self->{extensions}}; unless ( @exts ) { @exts = $self->{admin}->load_all_extensions; } my %seen; foreach my $obj ( @exts ) { while (my ($method, $glob) = each %{ref($obj) . '::'}) { next unless $obj->can($method); next if $method =~ /^_/; next if $method eq uc($method); $seen{$method}++; } } my $who = $self->_caller; foreach my $name ( sort keys %seen ) { local $^W; *{"${who}::$name"} = sub { ${"${who}::AUTOLOAD"} = "${who}::$name"; goto &{"${who}::AUTOLOAD"}; }; } } sub new { my ($class, %args) = @_; delete $INC{'FindBin.pm'}; { # to suppress the redefine warning local $SIG{__WARN__} = sub {}; require FindBin; } # ignore the prefix on extension modules built from top level. my $base_path = Cwd::abs_path($FindBin::Bin); unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) { delete $args{prefix}; } return $args{_self} if $args{_self}; $args{dispatch} ||= 'Admin'; $args{prefix} ||= 'inc'; $args{author} ||= ($^O eq 'VMS' ? '_author' : '.author'); $args{bundle} ||= 'inc/BUNDLES'; $args{base} ||= $base_path; $class =~ s/^\Q$args{prefix}\E:://; $args{name} ||= $class; $args{version} ||= $class->VERSION; unless ( $args{path} ) { $args{path} = $args{name}; $args{path} =~ s!::!/!g; } $args{file} ||= "$args{base}/$args{prefix}/$args{path}.pm"; $args{wrote} = 0; bless( \%args, $class ); } sub call { my ($self, $method) = @_; my $obj = $self->load($method) or return; splice(@_, 0, 2, $obj); goto &{$obj->can($method)}; } sub load { my ($self, $method) = @_; $self->load_extensions( "$self->{prefix}/$self->{path}", $self ) unless $self->{extensions}; foreach my $obj (@{$self->{extensions}}) { return $obj if $obj->can($method); } my $admin = $self->{admin} or die <<"END_DIE"; The '$method' method does not exist in the '$self->{prefix}' path! Please remove the '$self->{prefix}' directory and run $0 again to load it. END_DIE my $obj = $admin->load($method, 1); push @{$self->{extensions}}, $obj; $obj; } sub load_extensions { my ($self, $path, $top) = @_; my $should_reload = 0; unless ( grep { ! ref $_ and lc $_ eq lc $self->{prefix} } @INC ) { unshift @INC, $self->{prefix}; $should_reload = 1; } foreach my $rv ( $self->find_extensions($path) ) { my ($file, $pkg) = @{$rv}; next if $self->{pathnames}{$pkg}; local $@; my $new = eval { local $^W; require $file; $pkg->can('new') }; unless ( $new ) { warn $@ if $@; next; } $self->{pathnames}{$pkg} = $should_reload ? delete $INC{$file} : $INC{$file}; push @{$self->{extensions}}, &{$new}($pkg, _top => $top ); } $self->{extensions} ||= []; } sub find_extensions { my ($self, $path) = @_; my @found; File::Find::find( sub { my $file = $File::Find::name; return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is; my $subpath = $1; return if lc($subpath) eq lc($self->{dispatch}); $file = "$self->{path}/$subpath.pm"; my $pkg = "$self->{name}::$subpath"; $pkg =~ s!/!::!g; # If we have a mixed-case package name, assume case has been preserved # correctly. Otherwise, root through the file to locate the case-preserved # version of the package name. if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) { my $content = Module::Install::_read($subpath . '.pm'); my $in_pod = 0; foreach ( split //, $content ) { $in_pod = 1 if /^=\w/; $in_pod = 0 if /^=cut/; next if ($in_pod || /^=cut/); # skip pod text next if /^\s*#/; # and comments if ( m/^\s*package\s+($pkg)\s*;/i ) { $pkg = $1; last; } } } push @found, [ $file, $pkg ]; }, $path ) if -d $path; @found; } ##################################################################### # Common Utility Functions sub _caller { my $depth = 0; my $call = caller($depth); while ( $call eq __PACKAGE__ ) { $depth++; $call = caller($depth); } return $call; } # Done in evals to avoid confusing Perl::MinimumVersion eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; sub _read { local *FH; open( FH, '<', $_[0] ) or die "open($_[0]): $!"; my $string = do { local $/; }; close FH or die "close($_[0]): $!"; return $string; } END_NEW sub _read { local *FH; open( FH, "< $_[0]" ) or die "open($_[0]): $!"; my $string = do { local $/; }; close FH or die "close($_[0]): $!"; return $string; } END_OLD sub _readperl { my $string = Module::Install::_read($_[0]); $string =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; $string =~ s/(\n)\n*__(?:DATA|END)__\b.*\z/$1/s; $string =~ s/\n\n=\w+.+?\n\n=cut\b.+?\n+/\n\n/sg; return $string; } sub _readpod { my $string = Module::Install::_read($_[0]); $string =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; return $string if $_[0] =~ /\.pod\z/; $string =~ s/(^|\n=cut\b.+?\n+)[^=\s].+?\n(\n=\w+|\z)/$1$2/sg; $string =~ s/\n*=pod\b[^\n]*\n+/\n\n/sg; $string =~ s/\n*=cut\b[^\n]*\n+/\n\n/sg; $string =~ s/^\n+//s; return $string; } # Done in evals to avoid confusing Perl::MinimumVersion eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; sub _write { local *FH; open( FH, '>', $_[0] ) or die "open($_[0]): $!"; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } close FH or die "close($_[0]): $!"; } END_NEW sub _write { local *FH; open( FH, "> $_[0]" ) or die "open($_[0]): $!"; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } close FH or die "close($_[0]): $!"; } END_OLD # _version is for processing module versions (eg, 1.03_05) not # Perl versions (eg, 5.8.1). sub _version ($) { my $s = shift || 0; my $d =()= $s =~ /(\.)/g; if ( $d >= 2 ) { # Normalise multipart versions $s =~ s/(\.)(\d{1,3})/sprintf("$1%03d",$2)/eg; } $s =~ s/^(\d+)\.?//; my $l = $1 || 0; my @v = map { $_ . '0' x (3 - length $_) } $s =~ /(\d{1,3})\D?/g; $l = $l . '.' . join '', @v if @v; return $l + 0; } sub _cmp ($$) { _version($_[1]) <=> _version($_[2]); } # Cloned from Params::Util::_CLASS sub _CLASS ($) { ( defined $_[0] and ! ref $_[0] and $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s ) ? $_[0] : undef; } 1; # Copyright 2008 - 2012 Adam Kennedy. Padre-1.00/lib/0000755000175000017500000000000012237340740011711 5ustar petepetePadre-1.00/lib/Padre/0000755000175000017500000000000012237340741012745 5ustar petepetePadre-1.00/lib/Padre/PluginBuilder.pm0000644000175000017500000000467112237327555016070 0ustar petepetepackage Padre::PluginBuilder; =pod =head1 NAME Padre::PluginBuilder - L subclass for building Padre plug-ins =head1 DESCRIPTION This is a L subclass that can be used in place of L for the C of Padre plug-ins. It adds two new build targets for the plug-ins: =head1 ADDITIONAL BUILD TARGETS =head2 C Generates a F<.par> file that contains all the plug-in code. The name of the file will be according to the plug-in class name: C will result in F. Installing the plug-in (for the current architecture) will be as simple as copying the generated F<.par> file into the C directory of the user's Padre configuration directory (which defaults to F<~/.padre> on Unix systems). =cut use 5.008; use strict; use warnings; use Module::Build (); use Padre::Constant (); our $VERSION = '1.00'; our @ISA = 'Module::Build'; sub ACTION_plugin { my ($self) = @_; # Need PAR::Dist # Don't make a dependency in the Padre Makefile.PL for this if ( not eval { require PAR::Dist; PAR::Dist->VERSION(0.17) } ) { $self->log_warn("In order to create .par files, you need to install PAR::Dist first."); return (); } $self->depends_on('build'); my $module = $self->module_name; $module =~ s/^Padre::Plugin:://; $module =~ s/::/-/g; return PAR::Dist::blib_to_par( name => $self->dist_name, version => $self->dist_version, dist => "$module.par", ); } =pod =head2 C Generates the plug-in F<.par> file as the C target, but also installs it into the user's Padre plug-ins directory. =cut sub ACTION_installplugin { my ($self) = @_; $self->depends_on('plugin'); my $module = $self->module_name; $module =~ s/^Padre::Plugin:://; $module =~ s/::/-/g; my $plugin = "$module.par"; require Padre; return $self->copy_if_modified( from => $plugin, to_dir => Padre::Constant::PLUGIN_DIR, ); } 1; __END__ =pod =head1 SEE ALSO L, L L L for more on the plug-in system. =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/CPAN.pm0000644000175000017500000001004412237327555014033 0ustar petepetepackage Padre::CPAN; use 5.008; use strict; use warnings; use File::Spec (); use File::HomeDir (); use Padre::Wx (); our $VERSION = '1.00'; ###################################################################### # Integration with CPAN.pm my $SINGLETON = undef; sub new { my $class = shift; unless ($SINGLETON) { require CPAN; $SINGLETON = bless {}, $class; CPAN::HandleConfig->load( be_silent => 1, ); $SINGLETON->{modules} = [ map { $_->id } CPAN::Shell->expand( 'Module', '/^/' ) ]; } return $SINGLETON; } sub get_modules { my $self = shift; my $regex = shift; $regex ||= '^'; $regex =~ s/ //g; my $MAX_DISPLAY = 100; my $i = 0; my @modules; foreach my $module ( @{ $self->{modules} } ) { next if $module !~ /$regex/i; $i++; last if $i > $MAX_DISPLAY; push @modules, $module; } return \@modules; } sub cpan_config { my $class = shift; my $main = shift; # Locate the CPAN config file(s) my $default_dir = ''; eval { require CPAN; $default_dir = $INC{'CPAN.pm'}; $default_dir =~ s/\.pm$//is; # remove .pm }; # Load the main config first if ( $default_dir ne '' ) { my $core = File::Spec->catfile( $default_dir, 'Config.pm' ); if ( -e $core ) { $main->setup_editors($core); return; } } # Fallback to a personal config my $user = File::Spec->catfile( File::HomeDir->my_home, '.cpan', 'CPAN', 'MyConfig.pm' ); if ( -e $user ) { $main->setup_editors($user); return; } $main->error( Wx::gettext('Failed to find your CPAN configuration') ); } ###################################################################### # Integration with cpanm sub install_file { my $class = shift; my $main = shift; # Ask what we should install my $dialog = Wx::FileDialog->new( $main, Wx::gettext('Select distribution to install'), '', # Default directory '', # Default file 'CPAN Packages (*.tar.gz)|*.tar.gz', # wildcard Wx::FD_OPEN | Wx::FD_FILE_MUST_EXIST ); $dialog->CentreOnParent; if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my $string = $dialog->GetPath; $dialog->Destroy; unless ( defined $string and $string =~ /\S/ ) { $main->error( Wx::gettext('Did not provide a distribution') ); return; } $class->install_cpanm( $main, $string ); } sub install_url { my $class = shift; my $main = shift; # Ask what we should install my $dialog = Wx::TextEntryDialog->new( $main, Wx::gettext("Enter URL to install\ne.g. http://svn.ali.as/cpan/releases/Config-Tiny-2.00.tar.gz"), Wx::gettext('Install Local Distribution'), '', ); if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my $string = $dialog->GetValue; $dialog->Destroy; unless ( defined $string and $string =~ /\S/ ) { $main->error( Wx::gettext('Did not provide a distribution') ); return; } $class->install_cpanm( $main, $string ); } sub install_cpanm { my $class = shift; my $main = shift; my $module = shift; # TODO cpanm might come with Padre but if we are dealing with another perl # not the one that Padre runs on then we will need to look for cpanm # in some other place # Find 'cpanm', used to install modules require Config; my %seen = (); my @where = grep { defined $_ and length $_ and not $seen{$_}++ } map { $Config::Config{$_} } qw{ sitescriptexp sitebinexp vendorscriptexp vendorbinexp scriptdirexp binexp }; push @where, split /$Config::Config{path_sep}/, $ENV{PATH}; my $cpanm = ''; foreach my $dir (@where) { my $path = File::Spec->catfile( $dir, 'cpanm' ); if ( -f $path ) { $cpanm = $path; last; } } unless ($cpanm) { $main->error( Wx::gettext('cpanm is unexpectedly not installed') ); return; } # Create the command require Padre::Perl; my $perl = Padre::Perl::cperl(); my $cmd = qq{"$perl" "$cpanm" "$module"}; $main->run_command($cmd); return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/Project.pm0000644000175000017500000002061012237327555014720 0ustar petepetepackage Padre::Project; # Base project functionality for Padre use 5.010; use strict; use warnings; use File::Spec (); use Padre::Constant (); use Padre::Current (); our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; ###################################################################### # Constructor and Accessors sub new { my $class = shift; my $self = bless {@_}, $class; # Flag to indicate this root is specifically provided by a user # and is not intuited. $self->{explicit} = !!$self->{explicit}; # Check the root directory unless ( defined $self->root ) { Carp::croak("Did not provide a root directory"); } unless ( -d $self->root ) { return undef; } # Check for a padre.yml file my $padre_yml = File::Spec->catfile( $self->root, 'padre.yml', ); if ( -f $padre_yml ) { $self->{padre_yml} = $padre_yml; } return $self; } ### DEPRECATED sub from_file { if ( $VERSION > 0.84 ) { warn "Deprecated Padre::Project::from_file called by " . scalar caller(); } require Padre::Current; Padre::Current->ide->project_manager->from_file( $_[1] ); } sub explicit { $_[0]->{explicit}; } sub root { $_[0]->{root}; } sub padre_yml { $_[0]->{padre_yml}; } ###################################################################### # Navigation Convenience Methods sub documents { my $self = shift; my $root = $self->root; require Padre::Current; return grep { $_->project_dir eq $root } Padre::Current->main->documents; } ###################################################################### # Configuration and Intuition sub config { my $self = shift; # We only need our own config file if we have a padre.yml file unless ( defined $self->{padre_yml} ) { require Padre::Current; return Padre::Current->config; } unless ( $self->{config} ) { # Get the default config object my $config = Padre::Current->config; # If we have a padre.yml file create a custom config object if ( $self->{padre_yml} ) { require Padre::Config; require Padre::Config::Project; $self->{config} = Padre::Config->new( $config->host, $config->human, Padre::Config::Project->read( $self->{padre_yml}, ), ); } else { require Padre::Config; $self->{config} = Padre::Config->new( $config->host, $config->human, ); } } return $self->{config}; } # Locate the "primary" file, if the project has one sub headline { return undef; } # As above but an absolute path sub headline_path { my $self = shift; my $headline = $self->headline; return undef unless defined $headline; File::Spec->catfile( $self->root, $headline ); } # Intuit the distribution version if possible sub version { return undef; } # What is the logical name of the version control system we are using. # Identifying the version control flavour is the only support we provide. # Anything more details needs to be in the version control plugin. # Returns a name or undef if no version control. sub vcs { my $self = shift; unless ( exists $self->{vcs} ) { my $class = ref $self; $self->{vcs} = $class->_vcs( $self->root ); } return $self->{vcs}; } sub _vcs { my $class = shift; my $root = shift; if ( -d File::Spec->catdir( $root, '.svn' ) ) { return Padre::Constant::SUBVERSION; } #Hack for svn 1.7 esp Padre trunk to re-enable VCS feature. elsif ( -d File::Spec->catdir( $root, '..', '.svn' ) ) { return Padre::Constant::SUBVERSION; } if ( -d File::Spec->catdir( $root, '.git' ) ) { return Padre::Constant::GIT; } if ( -d File::Spec->catdir( $root, '.hg' ) ) { return Padre::Constant::MERCURIAL; } if ( -d File::Spec->catdir( $root, '.bzr' ) ) { return Padre::Constant::BAZAAR; } if ( -f File::Spec->catfile( $root, 'CVS', 'Repository' ) ) { return Padre::Constant::CVS; } return undef; } ###################################################################### # Process Execution sub temp { $_[0]->{temp} or $_[0]->{temp} = $_[0]->_temp; } sub _temp { require Padre::Project::Temp; Padre::Project::Temp->new; } # Synchronise all content from unsaved files in a project to the # project-specific temporary directory. sub temp_sync { my $self = shift; # What files do we need to save my @changed = grep { !$_->is_new and $_->is_modified } $self->documents or return 0; # Save the files to the temporary directory my $temp = $self->temp; my $root = $temp->root; my $files = 0; foreach my $document (@changed) { my $relative = $document->filename_relative; my $tempfile = File::Spec->rel2abs( $relative, $root ); require File::Path; require File::Basename; File::Path::mkpath( File::Basename::basedir($tempfile) ); my $file = Padre::File->new($tempfile); $document->write($file) and $files++; } return $files; } sub launch_shell { my $self = shift; my $config = $self->config; my $shell = $config->bin_shell or return; if (Padre::Constant::WIN32) { require Win32; require Padre::Util::Win32; Win32::SetChildShowWindow( Win32::SW_SHOWNORMAL() ); Padre::Util::Win32::ExecuteProcessAndWait( directory => $self->{project}, file => 'cmd.exe', parameters => "/C $shell", ); Win32::SetChildShowWindow( Win32::SW_HIDE() ); } else { require File::pushd; my $pushd = File::pushd::pushd( $self->root ); system $shell; } return 1; } # Run a command and wait sub launch_system { my $self = shift; my $cmd = shift; # Make sure we execute from the correct directory if (Padre::Constant::WIN32) { require Padre::Util::Win32; Padre::Util::Win32::ExecuteProcessAndWait( directory => $self->{project}, file => 'cmd.exe', parameters => "/C $cmd", ); } else { require File::pushd; my $pushd = File::pushd::pushd( $self->root ); system $cmd; } return 1; } ###################################################################### # Directory Tree Integration # A file/directory pattern to support the directory browser. # The function takes three parameters of the full file path, # the directory path, and the file name. # Returns true if the file is visible. # Returns false if the file is ignored. # This method is used to support the functionality of the directory browser. sub ignore_rule { return sub { if ( $_->{name} =~ /^\./ ) { return 0; } if (Padre::Constant::WIN32) { # On Windows only ignore files or directories that # begin or end with a dollar sign as "hidden". This is # mainly relevant if we are opening some project across # a UNC path on more recent versions of Windows. if ( $_->{name} =~ /^\$/ ) { return 0; } if ( $_->{name} =~ /\$$/ ) { return 0; } # Windows thumbnailing, instead of having sensibly # centralised storage of thumbnails, likes to put a # file in every single directory. if ( $_->{name} eq 'Thumbs.db' ) { return 0; } # Likewise, desktop.ini files are stupid files used # by windows to make a folder behave weirdly. # Ignore them too. if ( $_->{name} eq 'desktop.ini' ) { return 0; } } return 1; }; } # Alternate form sub ignore_skip { my $rule = [ '(?:^|\\/)\\.', ]; if (Padre::Constant::WIN32) { # On Windows only ignore files or directories that begin or end # with a dollar sign as "hidden". This is mainly relevant if # we are opening some project across a UNC path on more recent # versions of Windows. push @$rule, "(?:^|\\/)\\\$"; push @$rule, "\\\$\$"; # Windows thumbnailing, instead of having sensibly centralised # storage of thumbnails, likes to put a file in every single directory. push @$rule, "(?:^|\\/)Thumbs.db\$"; # Likewise, desktop.ini files are stupid files used by windows # to make a folder behave weirdly. Ignore them too. push @$rule, "(?:^|\\/)desktop.ini\$"; } return $rule; } sub name { my $self = shift; my $name = ( reverse( File::Spec->splitdir( $self->root ) ) )[0]; if ( !defined $name or $name eq '' ) { # Fallback $name = $self->root; $name =~ s/^.*[\/\\]//; } return $name; } ###################################################################### # Padre::Cache Integration # The detection of VERSION allows us to make this call without having # to load modules at project destruction time if it isn't needed. sub DESTROY { if ( defined $_[0]->{root} and $Padre::Cache::VERSION ) { Padre::Cache->release( $_[0]->{root} ); } } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/Util/0000755000175000017500000000000012237340741013662 5ustar petepetePadre-1.00/lib/Padre/Util/FileBrowser.pm0000644000175000017500000001210012237327555016445 0ustar petepetepackage Padre::Util::FileBrowser; =head1 NAME Padre::Util::FileBrowser - Open in file browser action =head1 DESCRIPTION A collection of single-shot methods to open a file in the platform's file manager or browser while trying to select it if possible. =head1 METHODS =cut use 5.008; use strict; use warnings; # package exports and version our $VERSION = '1.00'; use Padre::Constant (); # -- constructor sub new { my ($class) = @_; return bless {}, $class; } =head2 C Padre::Util::FileBrowser->open_in_file_browser($filename); Single shot method to open the provided C<$filename> in the file browser On win32, selects it in Windows Explorer On UNIX, opens the containing folder for it using either KDE or GNOME =cut sub open_in_file_browser { my ( $class, $filename ) = @_; my $self = $class->new(@_); my $main = Padre::Current->main; unless ($filename) { $main->error( Wx::gettext("No filename") ); return; } my $error; if (Padre::Constant::WIN32) { # In windows, simply execute: explorer.exe /select,"$filename" $filename =~ s/\//\\/g; $error = $self->_execute( 'explorer.exe', "/select,\"$filename\"" ); } elsif (Padre::Constant::UNIX) { my $parent_folder = -d $filename ? $filename : File::Basename::dirname($filename); $error = $self->_execute_unix($parent_folder); } else { # Unsupported $error = sprintf( Wx::gettext("Unsupported OS: %s"), '$^O' ); } if ($error) { $main->error($error); } return; } =head2 C Padre::Util::FileBrowser->open_in_file_browser($filename); Single shot method to open the provided C<$filename> using the default system editor =cut sub open_with_default_system_editor { my ( $class, $filename ) = @_; my $self = $class->new(@_); my $main = Padre::Current->main; unless ($filename) { $main->error( Wx::gettext("No filename") ); return; } my $error; if (Padre::Constant::WIN32) { # Win32 require Padre::Util::Win32; Padre::Util::Win32::ExecuteProcessAndWait( directory => $self->{cwd}, file => $filename, parameters => '', show => 1 ); } elsif (Padre::Constant::UNIX) { # Unix #TODO implement for UNIX $error = $self->_execute_unix($filename); } else { # Unsupported $error = sprintf( Wx::gettext("Unsupported OS: %s"), '$^O' ); } if ($error) { $main->error($error); } return; } =head2 C Padre::Util::FileBrowser->open_in_command_line($filename); Single shot method to open a command line/shell using the working directory of C<$filename> =cut sub open_in_command_line { my ( $class, $filename ) = @_; my $self = $class->new(@_); my $main = Padre::Current->main; unless ($filename) { $main->error( Wx::gettext("No filename") ); return; } my $error; if (Padre::Constant::WIN32) { # Win32 my $parent_folder = File::Basename::dirname($filename); system( 1, 'cmd', '/C', 'start', '/D', qq{"$parent_folder"} ); } elsif (Padre::Constant::UNIX) { # Unix #TODO implement for UNIX } else { # Unsupported $error = sprintf( Wx::gettext("Unsupported OS: %s"), '$^O' ); } if ($error) { $main->error($error); } return; } # # private method for executing a process without waiting # sub _execute { my ( $self, $exe_name, @cmd_args ) = @_; my $result = undef; require File::Which; my $cmd = File::Which::which($exe_name); if ( -e $cmd ) { # On Windows, if we don't have STDIN/STDOUT, avoid IPC::Open3 # because it crashes when launching a non-console app if (Padre::Constant::WIN32) { # There is no actual waiting since cmd.exe starts explorer.exe and quits require Padre::Util::Win32; Padre::Util::Win32::ExecuteProcessAndWait( directory => $self->{project}, file => 'cmd.exe', parameters => "/C $cmd @cmd_args", ); } else { require IPC::Open2; my $ok = eval { my $r = ''; my $w = ''; my $pid = IPC::Open2::open2( $r, $w, $cmd, @cmd_args ); 1; }; if ( !$ok ) { $result = $@; } } } else { $result = Wx::gettext("Failed to execute process\n"); } return $result; } # # Private method to execute a file in KDE or GNOME # sub _execute_unix { die "Only to be called in UNIX!" unless Padre::Constant::UNIX; my ( $self, $filename ) = @_; my $error; if ( defined $ENV{KDE_FULL_SESSION} ) { # In KDE, execute: kfmclient exec $filename $error = $self->_execute( 'kfmclient', "exec", $filename ); } elsif ( defined $ENV{GNOME_DESKTOP_SESSION_ID} ) { # In Gnome, execute: nautilus --nodesktop --browser $filename $error = $self->_execute( 'nautilus', "--no-desktop", "--browser", $filename ); } else { $error = Wx::gettext("Could not find KDE or GNOME"); } return $error; } 1; __END__ =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/Util/SVN.pm0000644000175000017500000000522112237327555014676 0ustar petepetepackage Padre::Util::SVN; # Isolate the subversion-specific functions, because in some situations # we need them early in the load process and we want to avoid loading # a whole ton of dependencies. use 5.010; use strict; use warnings; use File::Spec (); use File::Which (); our $VERSION = '1.00'; my $PADRE = undef; # TODO: A much better variant would be a constant set by svn. sub padre_revision { unless ($PADRE) { if ( $0 =~ /padre$/ ) { my $dir = $0; $dir =~ s/padre$//; my $svn_client_info_ref = Padre::Util::run_in_directory_two( cmd => 'svn info', dir => $dir, option => '0' ); $svn_client_info_ref->{output} =~ /(?:^Revision:\s)(?\d+)/m; $PADRE = $+{svn_version}; } } return $PADRE; } # This is pretty hacky sub directory_revision { my $dir = shift; # Find the entries file my $entries; if ( !local_svn_ver() ) { $entries = File::Spec->catfile( $dir, '.svn', 'entries' ); } elsif ( local_svn_ver() ) { #check for one dir back as svn 1.7.x $entries = File::Spec->catfile( $dir, '..', '.svn', 'entries' ); } return unless -f $entries; # Find the headline revision local $/ = undef; open( my $fh, '<', $entries ) or return; my $buffer = <$fh>; close $fh; # Find the first number after the first occurance of "dir". unless ( $buffer =~ /\bdir\b\s+(\d+)/m ) { return; } # Quote this to prevent certain aliasing bugs return "$1"; } ####### # Composed Method test_svn ####### sub local_svn_ver { my $required_svn_version = '1.6.2'; if ( File::Which::which('svn') ) { # test svn version require Padre::Util; my $svn_client_info_ref = Padre::Util::run_in_directory_two( cmd => 'svn --version --quiet', option => '0' ); # p $svn_client_info_ref; my %svn_client_info = %{$svn_client_info_ref}; require Sort::Versions; # This is so much better, now we are testing for version as well if ( Sort::Versions::versioncmp( $svn_client_info{output}, $required_svn_version, ) == -1 ) { say 'Info: you are using an svn version 1.6.2, please consider upgrading'; } #return 1 if we are using svn 1.7.x return 1 if Sort::Versions::versioncmp( $svn_client_info{output}, '1.7' ); } return 0; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/Util/CommandLine.pm0000644000175000017500000000214412237327555016417 0ustar petepetepackage Padre::Util::CommandLine; # Class to handle command line events # Currently Part of Padre but it shoule be able to stand on its own # and maybe moved to a separate package use 5.008; use strict; use warnings; use utf8; our $VERSION = '1.00'; my $current_dir; my @current_list; my $current_index; my $last_suggest; sub tab { my ($text) = @_; if ( $text =~ m/^:e\s*$/ ) { require Cwd; my $cwd = Cwd::cwd(); opendir my $dh, $cwd or die "Could not open $cwd $!"; @current_list = map { -d "$cwd/$_" ? "$_/" : $_ } grep { $_ ne '.' and $_ ne '..' } sort readdir $dh; if ( not @current_list ) { # TODO how to handle empty dir? } $current_index = 0; $last_suggest = ":e $current_list[$current_index]"; return $last_suggest; } elsif ( defined $last_suggest and $text eq $last_suggest ) { $current_index++; $last_suggest = ":e $current_list[$current_index]"; return $last_suggest; } } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/Util/Win32.pm0000644000175000017500000001034212237327555015132 0ustar petepetepackage Padre::Util::Win32; =pod =head1 NAME Padre::Util::Win32 - Padre Win32 API Functions =head1 DESCRIPTION The C package provides an XS wrapper for Win32 API functions All functions are exportable and documented for maintenance purposes, but except for in the L core distribution you are discouraged in the strongest possible terms from using these functions, as they may be moved, removed or changed at any time without notice. =head1 FUNCTIONS =cut use 5.008; use strict; use warnings; use Padre::Constant (); our $VERSION = '1.00'; # This module may be loaded by others, so don't crash on Linux when just being loaded: if (Padre::Constant::WIN32) { require Win32; require XSLoader; XSLoader::load( 'Padre::Util::Win32', $VERSION ); } else { require Padre::Logger; Padre::Logger::TRACE("WARN: Inefficiently loading Padre::Util::Win32 when not on Win32"); } =head2 C Padre::Util::Win32::GetLongPathName($path); Converts the specified path C<$path> to its long form. Returns C for failure, or the long form of the specified path =cut # Is this still needed? sub GetLongPathName { die "Win32 function called!" unless Padre::Constant::WIN32; my $path = shift; return Win32::GetLongPathName($path); } =head2 C Padre::Util::Win32::Recycle($file_to_recycle); Move C<$file_to_recycle> to recycle bin Returns C (failed), zero (aborted) or one (success) =cut sub Recycle { die "Win32 function called!" unless Padre::Constant::WIN32; my $file_to_recycle = shift; return _recycle_file($file_to_recycle); } =head2 C Padre::Util::Win32::AllowSetForegroundWindow($pid); Enables the specified process C<$pid> to set the foreground window via C L =cut # # Enables the specified process to set the foreground window # via SetForegroundWindow # sub AllowSetForegroundWindow { die "Win32 function called!" unless Padre::Constant::WIN32; my $pid = shift; return _allow_set_foreground_window($pid); } =head2 C Padre::Util::Win32::ExecuteProcessAndWait( directory => $directory, file => $file, parameters => $parameters, show => $show, ) Execute a background process named "C<$file> C<$parameters>" with the current directory set to C<$directory> and wait for it to end. If you set C<$show> to 0, then you have an invisible command line window on win32! =cut sub ExecuteProcessAndWait { die "Win32 function called!" unless Padre::Constant::WIN32; my %params = @_; my $directory = $params{directory} || '.'; my $show = ( $params{show} ) ? 1 : 0; my $parameters = $params{parameters} || ''; return _execute_process_and_wait( $params{file}, $parameters, $directory, $show ); } =head2 C Padre::Util::Win32::GetCurrentProcessMemorySize; Returns the current process memory size in bytes =cut sub GetCurrentProcessMemorySize { die "Win32 function called!" unless Padre::Constant::WIN32; return _get_current_process_memory_size(); } =head2 C Padre::Util::Win32::GetLastError; Returns the error code of the last Win32 API call. The list of error codes could be found at L. =cut sub GetLastError { die "Win32 function called!" unless Padre::Constant::WIN32; return Win32::GetLastError(); } =head2 C Padre::Util::Win32::GetLastErrorString; Returns the string representation for the error code of the last Win32 API call. =cut sub GetLastErrorString { die "Win32 function called!" unless Padre::Constant::WIN32; return Win32::FormatMessage( Win32::GetLastError() ); } 1; __END__ =pod =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/ProjectManager.pm0000644000175000017500000001740412237327555016222 0ustar petepetepackage Padre::ProjectManager; # Prototype for a full project manager abstraction to track projects open # in Padre and provide a variety of utility functions. use 5.008; use strict; use warnings; use File::Spec (); use Scalar::Util (); use Padre::Project (); our $VERSION = '1.00'; ###################################################################### # Constructors sub new { my $class = shift; my $self = bless { # For now just store projects in the HASH directly }, $class; return $self; } sub project { my $self = shift; my $root = shift; # Is this root an existing project? if ( defined $self->{$root} ) { return $self->{$root}; } # Check for Dist::Zilla support my $dist_ini = File::Spec->catfile( $root, 'dist.ini' ); if ( -f $dist_ini ) { require Padre::Project::Perl::DZ; return $self->{$root} = Padre::Project::Perl::DZ->new( root => $root, dist_ini => $dist_ini, ); } # Check for Module::Build support my $build_pl = File::Spec->catfile( $root, 'Build.PL' ); if ( -f $build_pl ) { require Padre::Project::Perl::MB; return $self->{$root} = Padre::Project::Perl::MB->new( root => $root, build_pl => $build_pl, ); } # Check for ExtUtils::MakeMaker and Module::Install support my $makefile_pl = File::Spec->catfile( $root, 'Makefile.PL' ); if ( -f $makefile_pl ) { # Differentiate between Module::Install and ExtUtils::MakeMaker if (0) { require Padre::Project::Perl::MI; return $self->{$root} = Padre::Project::Perl::MI->new( root => $root, makefile_pl => $makefile_pl, ); } else { require Padre::Project::Perl::EUMM; return $self->{$root} = Padre::Project::Perl::EUMM->new( root => $root, makefile_pl => $makefile_pl, ); } } # Check for an explicit vanilla project my $padre_yml = File::Spec->catfile( $root, 'padre.yml' ); if ( -f $padre_yml ) { return $self->{$root} = Padre::Project->new( root => $root, padre_yml => $padre_yml, ); } # Intuit a vanilla project based on a version control system # checkout (that use a directory to indicate the root). foreach my $vcs ( '.svn', '.git', '.hg', '.bzr' ) { my $vcs_dir = File::Spec->catfile( $root, $vcs ); if ( -d $vcs_dir ) { my $vcs_plugin = { '.svn' => 'SVN', '.git' => 'Git', '.hg' => 'Mercurial', '.bzr' => 'Bazaar', }->{$vcs}; return $self->{$root} = Padre::Project->new( root => $root, vcs => $vcs_plugin, ); } } # Intuit a vanilla project based on a CVS version control directory. my $cvs_file = File::Spec->catfile( $root, 'CVS', 'Repository' ); if ( -f $cvs_file ) { return $self->{$root} = Padre::Project->new( root => $root, vcs => 'CVS', ); } # No idea what this is, nothing probably require Padre::Project::Null; return $self->{$root} = Padre::Project::Null->new( root => $root, vcs => undef, ); } sub from_file { my $self = shift; my $file = shift; # Split and scan my ( $v, $d, $f ) = File::Spec->splitpath($file); my @d = File::Spec->splitdir($d); if ( defined $d[-1] and $d[-1] eq '' ) { pop @d; } # Is the file inside a project we have loaded already. # This should save a ton of filesystem calls when opening files. foreach my $root ( sort keys %$self ) { my $project = $self->{$root} or next; # Skip baseline projects without a padre.yml file as we # can't be confident enough that they are actually correct. if ( Scalar::Util::blessed($project) eq 'Padre::Project' ) { next unless $project->padre_yml; } # Split into parts (check volume before we bother to split dir) my ( $pv, $pd, $pf ) = File::Spec->splitpath( $root, 1 ); if ( defined $v and defined $pv and $v ne $pv ) { next; } my @pd = File::Spec->splitdir($pd); if ( defined $pd[-1] and $pd[-1] eq '' ) { pop @pd; } foreach my $n ( 0 .. $#pd ) { last unless defined $d[$n]; last unless $d[$n] eq $pd[$n]; next unless $n == $#pd; # Found a match, return the cached project return $project; } } foreach my $n ( reverse 0 .. $#d ) { my $dir = File::Spec->catdir( @d[ 0 .. $n ] ); my $root = File::Spec->catpath( $v, $dir, '' ); # Check for Dist::Zilla support my $dist_ini = File::Spec->catfile( $root, 'dist.ini' ); if ( -f $dist_ini ) { require Padre::Project::Perl::DZ; return $self->{$root} = Padre::Project::Perl::DZ->new( root => $root, dist_ini => $dist_ini, ); } # Check for Module::Build support my $build_pl = File::Spec->catfile( $root, 'Build.PL' ); if ( -f $build_pl ) { require Padre::Project::Perl::MB; return $self->{$root} = Padre::Project::Perl::MB->new( root => $root, build_pl => $build_pl, ); } # Check for ExtUtils::MakeMaker and Module::Install support my $makefile_pl = File::Spec->catfile( $root, 'Makefile.PL' ); if ( -f $makefile_pl ) { # Differentiate between Module::Install and ExtUtils::MakeMaker if (0) { require Padre::Project::Perl::MI; return $self->{$root} = Padre::Project::Perl::MI->new( root => $root, makefile_pl => $makefile_pl, ); } else { require Padre::Project::Perl::EUMM; return $self->{$root} = Padre::Project::Perl::EUMM->new( root => $root, makefile_pl => $makefile_pl, ); } } # Check for an explicit vanilla project my $padre_yml = File::Spec->catfile( $root, 'padre.yml' ); if ( -f $padre_yml ) { return $self->{$root} = Padre::Project->new( root => $root, padre_yml => $padre_yml, ); } # Intuit a vanilla project based on a git, mercurial or Bazaar # checkout (that use a single directory to indicate the root). foreach my $vcs ( '.git', '.hg', '.bzr' ) { my $vcs_dir = File::Spec->catdir( $root, $vcs ); if ( -d $vcs_dir ) { my $vcs_plugin = { '.git' => 'Git', '.hg' => 'Mercurial', '.bzr' => 'Bazaar', }->{$vcs}; return $self->{$root} = Padre::Project->new( root => $root, vcs => $vcs_plugin, ); } } # Intuit a vanilla project based on a Subversion checkout my $svn_dir = File::Spec->catdir( $root, '.svn' ); if ( -d $svn_dir ) { # This must be the top-most .svn directory if ($n) { # We aren't at the top-most directory in the volume my $updir = File::Spec->catdir( @d[ 0 .. $n - 1 ] ); my $svn_updir = File::Spec->catpath( $v, $updir, '.svn' ); unless ( -d $svn_dir ) { return $self->{$root} = Padre::Project->new( root => $root, vcs => 'SVN', ); } } } # Intuit a vanilla project based on a CVS checkout my $cvs_dir = File::Spec->catfile( $root, 'CVS', 'Repository' ); if ( -f $cvs_dir ) { # This must be the top-most CVS directory if ($n) { # We aren't at the top-most directory in the volume my $updir = File::Spec->catdir( @d[ 0 .. $n - 1 ] ); my $cvs_updir = File::Spec->catpath( $v, File::Spec->catdir( $updir, 'CVS' ), 'Repository', ); unless ( -f $cvs_dir ) { return $self->{$root} = Padre::Project->new( root => $root, vcs => 'CVS', ); } } } } # This document is part of the null project require Padre::Project::Null; return Padre::Project::Null->new( root => File::Spec->catpath( $v, File::Spec->catdir(@d), '' ), vcs => undef, ); } sub from_document { my $self = shift; my $document = shift; die "CODE INCOMPLETE"; } ###################################################################### # General Methods sub project_exists { defined $_[0]->{ $_[1] }; } sub projects { my $self = shift; return map { $self->{$_} } sort keys %$self; } sub roots { my $self = shift; my @roots = sort keys %$self; return @roots; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/Locker.pm0000644000175000017500000001625312237327555014541 0ustar petepetepackage Padre::Locker; =pod =head1 NAME Padre::Locker - The Padre Multi-Resource Lock Manager =cut use 5.008; use strict; use warnings; use Padre::Lock (); use Padre::DB (); use Padre::Constant (); use Padre::Logger; our $VERSION = '1.00'; sub new { my $class = shift; my $owner = shift; # Create the object my $self = bless { owner => $owner, # Padre::DB Transaction lock db_depth => 0, # Padre::Config Transaction lock config_depth => 0, # Padre::Wx::AuiManager Transaction lock aui_depth => 0, # Wx ->Update lock update_depth => 0, update_locker => undef, # Wx "Busy" lock busy_depth => 0, busy_locker => undef, # Padre ->refresh lock method_depth => 0, method_pending => {}, }, $class; } sub lock { Padre::Lock->new( shift, @_ ); } sub locked { my $self = shift; my $asset = shift; if ( $asset eq 'UPDATE' ) { return !!$self->{update_depth}; } elsif ( $asset eq 'REFRESH' ) { return !!$self->{method_depth}; } elsif ( $asset eq 'AUI' ) { return !!$self->{aui_depth}; } elsif ( $asset eq 'BUSY' ) { return !!$self->{busy_depth}; } elsif ( $asset eq 'CONFIG' ) { return !!$self->{config_depth}; } else { return !!$self->{method_pending}->{$asset}; } } # During Padre shutdown we should disable all forms of screen updating, # once we have completed all user-interactive steps in the shutdown. # Calling the shutdown method will permanently ignore any and all attempts # to call refresh methods. # This method does NOT ->Hide the actual application, that is left up to the # shutdown process. This action just disables everything lock-related that # might slow the shutdown process. sub shutdown { my $self = shift; my $lock = $self->lock( 'UPDATE', 'AUI', 'REFRESH', 'CONFIG' ); # If we have an update lock running, stop it manually now. # If we don't do this, Win32 Padre will segfault on exit. $self->{update_locker} = undef; $self->{shutdown} = 1; } ###################################################################### # Locking Mechanism # Database locking like this is only possible because Padre NEVER makes # use of rollback. All bad database requests are considered fatal. sub db_increment { my $self = shift; unless ( $self->{db_depth}++ ) { Padre::DB->begin; # Database operations we lock on are the most likely to # involve writes. So opportunistically prevent blocking # on filesystem sync confirmation. This should make # database write operations faster, at the risk of config.db # corruption if (and only if) there is a power outage, # operating system crash, or catastrophic hardware failure. Padre::DB->pragma( synchronous => 0 ); } return; } sub db_decrement { my $self = shift; unless ( --$self->{db_depth} ) { Padre::DB->commit; } return; } sub config_increment { # my $self = shift; # unless ( $self->{config_depth}++ ) { # TO DO: Initiate config locking here # NOTE: Pretty sure we don't need to do anything specific # here for the config file stuff. # } return; } sub config_decrement { my $self = shift; unless ( --$self->{config_depth} ) { # Write the config file here $self->{owner}->config->write; } return; } sub update_increment { my $self = shift; unless ( $self->{update_depth}++ ) { # When a Wx application quits with ->Update locked, windows will # segfault. During shutdown, do not allow the application to # enable an update lock. This should be pointless anyway, # because the window shouldn't be visible. return if $self->{shutdown}; # Locking for the first time # Version 2.8.12 of wxWidgets introduces some improvements to # wxAuiNotebook. The window will no longer carry out updates if # it is Frozen on win32 platform (Mark Dootson) ### TODO This is an crude emergency hack, we need to find ### something better than disabling all render optimisation. ### Commented out to record for posterity, the forced Layout ### solution below evades the bug but without the flickering. # if ( Wx::wxVERSION() >= 2.008012 and Padre::Constant::WIN32 ) { # $self->{update_locker} = 1; # } else { $self->{update_locker} = Wx::WindowUpdateLocker->new( $self->{owner} ); # } } return; } sub update_decrement { my $self = shift; unless ( --$self->{update_depth} ) { return if $self->{shutdown}; # Unlocked for the final time $self->{update_locker} = undef; # On Windows, we need to force layouts down to notebooks if (Padre::Constant::WIN32) { if ( Wx::wxVERSION() >= 2.008012 and $self->{owner} ) { my @notebook = grep { $_->isa('Wx::AuiNotebook') } $self->{owner}->GetChildren; $_->Layout foreach @notebook; } } } return; } sub aui_increment { my $self = shift; unless ( $self->{aui_depth}++ ) { return if $self->{shutdown}; # Nothing to do at increment time } return; } sub aui_decrement { my $self = shift; unless ( --$self->{aui_depth} ) { return if $self->{shutdown}; # Unlocked for the final time $self->{owner}->aui->Update; $self->{owner}->Layout; } return; } sub busy_increment { my $self = shift; unless ( $self->{busy_depth}++ ) { # If we are in shutdown, the application isn't painting anyway # (or possibly even visible) so don't put us into busy state. return if $self->{shutdown}; # Locking for the first time $self->{busy_locker} = Wx::BusyCursor->new; } return; } sub busy_decrement { my $self = shift; unless ( --$self->{busy_depth} ) { return if $self->{shutdown}; # Unlocked for the final time $self->{busy_locker} = undef; } return; } sub method_increment { $_[0]->{method_depth}++; $_[0]->{method_pending}->{ $_[1] }++ if $_[1]; return; } sub method_decrement { my $self = shift; unless ( --$self->{method_depth} ) { # Once we start the shutdown process, don't refresh anything return if $self->{shutdown}; # Optimise the refresh methods $self->method_trim; # Run all of the pending methods foreach ( keys %{ $self->{method_pending} } ) { next if $_ eq uc $_; # This call is sent into what is essentially # arbitrary code, and it's easy for exceptions # under here to cause the entire locking sub-system # to crash. Trap and ignore errors so we can attempt # to retain the integrity of the locking subsystem # as a whole. local $@; eval { $self->{owner}->$_(); }; if ( DEBUG and $@ ) { TRACE("ERROR: '$@'"); } } $self->{method_pending} = {}; } return; } # Optimise the refresh by removing low level refresh methods that are # contained within high level refresh methods we need to run anyway. sub method_trim { my $self = shift; my $pending = $self->{method_pending}; if ( defined $pending->{refresh} ) { delete $pending->{refresh_menu}; delete $pending->{refresh_toolbar}; delete $pending->{refresh_notebook}; delete $pending->{refresh_status}; delete $pending->{refresh_functions}; delete $pending->{refresh_directory}; delete $pending->{refresh_syntax}; delete $pending->{refresh_outline}; delete $pending->{refresh_diff}; delete $pending->{refresh_vcs}; delete $pending->{refresh_title}; } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/Cache.pm0000644000175000017500000000534312237327555014323 0ustar petepetepackage Padre::Cache; =pod =head1 NAME Padre::Cache - The Padre Temporary Data Cache API =head1 DESCRIPTION B implements a light memory only caching mechanism which is designed to support GUI objects that need to temporarily store state data. By providing this caching in a neutral location that is not directly bound to the user interface objects, the cached data can survive destruction and recreation of those interface objects. This is particularly valuable for situations such as a shift in the active language or the relocation of a tool that would result in interface objects being rebuilt. Cache data is stored in a "Stash", which is a C reference containing arbitrary content, and is keyed off a project or document. =head1 METHODS =cut use 5.008; use strict; use warnings; use Params::Util (); our $VERSION = '1.00'; our $COMPATIBLE = '0.70'; my %DATA = (); =pod =head2 stash my $stash = Padre::Cache->stash( 'Padre::Wx::MyClass' => $project ); The C method fetches the C reference stash for a particular key pair, which consists of a GUI class name and a project or document. The C reference returned can be used directly withouth the need to do any kind of C or C call to the stash. Calling C multiple times is guarenteed to fetch the same C reference. =cut sub stash { my $class = shift; my $owner = shift; my $key = shift; # We need an instantiated cache target # NOTE: The defined is needed because Padre::Project::Null # boolifies to false. In retrospect, that may have been a bad idea. if ( defined Params::Util::_INSTANCE( $key, 'Padre::Project' ) ) { $key = $key->root; } elsif ( Params::Util::_INSTANCE( $key, 'Padre::Document' ) ) { $key = $key->filename; } else { die "Missing or invalid cache key"; } $DATA{$key}->{$owner} or $DATA{$key}->{$owner} = {}; } =pod =head2 release Padre::Cache->release( $project->root ); The C method is used to flush all of the stash data related to a particular project root or file name for all of the GUI elements that make use of stash objects from L. Although this method is available for use, it should generally not be called directly. The built in C for both project and document objects will call this method for you, automatically cleaning up the stash data when the project or document itself is destroyed. =cut sub release { delete $DATA{ $_[1] }; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut Padre-1.00/lib/Padre/Manual/0000755000175000017500000000000012237340740014161 5ustar petepetePadre-1.00/lib/Padre/Manual/Hacking.pod0000644000175000017500000002626411621347030016236 0ustar petepete=head1 NAME Padre::Manual::Hacking - Guide to hacking on Padre =head1 DESCRIPTION This is the Padre Developers Guide. It is intended for people interested in hacking on Padre, and specifically hacking the core distribution. =head2 Getting Started This document assumes that you are working from a copy of Padre checked out from the official repository. Rather than just checking out the Padre distribution alone, we recommend that you checkout the entire repository trunk, which will provide you with Padre itself, miscellaneous tool scripts, and most of the plugin distributions as well. The specific path you want to check out is... http://svn.perlide.org/padre/trunk =head2 Extra Files The trunk contains primarily a set of directories, one for each CPAN distribution created for Padre by the development team. In addition, there are some additional scripts that are for development purposes and are not part of the releases themselves. F This is a launch script used to start Padre in developer mode. This mainly automates a couple of conveniences, such as using a local .padre directory instead of your system one, and including lib in the @INC path to prevent needing to run make constantly. F Used to release Padre. F Similar to the B tool from CPAN, this updates the version number. =head2 Bug Tracking Padre uses Trac for bug tracking. The main web site of Padre is actually its Trac L =head2 Patching Check out the trunk (L) and use svn diff to create your patch while your current working directory is the trunk directory. Please send patches either to the padre-dev mailing list or add them to trac to the appropriate ticket. =head2 Branching Usually we use the trunk for all the development work so we can see issues and fix them quickly. At least some of us already use Padre for the development work running it from the workspace so if someone breaks trunk that will immediately affect some of the developers. So please don't B break the trunk! If you think your change is relatively large and you feel more comfortable working on a branch, do it. =head2 Change Management We try to work with small changes. There are no exact rules what is small and what is already too big but we try not to mix unrelated issues in one change. If you need a styling change or white space change, do it it in a separate commit. Commit messages are important. If a commit relates to a ticket please try to remember adding the ticket number with a # sign ( #23 ). The GUI of Trac will turn it into a link to the relevant ticket making it easier to find related information. Most of the current major committers monitor the commit messages to see what everyone else is doing, so please write them as if they are going to actually be read within a few hours of you making the commit. =head2 Tickets/Issues/Bugs We are using Trac as the issue and bug tracker. When adding a note that relates to one of the commit in SVN please use the r780 format. That allows Trac to create links to the diff of that revision. =head2 Code review We don't have formal code-review but in response to the commit messages we sometimes reply with comments to the padre-dev mailing list. You are also encouraged to do so! =head1 STYLE We're not overly strict about code style in Padre (yet), but please don't feel offended if somebody corrects your coding style. There are a number of relatively simple preferences that are more or less enforced, but none of this is automated. We prefer humans over automation for this because PerlTidy has something of a history of doing things overly strictly, which can sometimes destroy clarity for the sake of correctness. In general, the code style preferences for Padre are guided by ease of understanding code, and thus ease of maintenance. =head2 B Use one tab character for each indentation level at the beginning of a line. There are a lot of people working on Padre, with indent preferences ranging from two to eight spaces. Using tabs allows all of the development team to work with code at the indent level that is most comfortable for their eyes. In particular, allowing the use of large (eight or higher) tabs enables developers with visual processing or eye-sight issues (astygmatisms, mild short-sightedness, figure-ground problems) to effectively contribute to Padre. If your editor doesn't support tabs properly, well that's clearly a temporary probably because you will eventually be switching to Padre, which DOES support tabs properly. Additionally, there current plan for project support does include correctly supporting project specific tab-versus-space settings, so you can use spaces for B code, and Padre will just switch and Do The Right Thing when you work on the Padre project. After the initial indentation, do not use tabs for indentation any more. Instead, use the appropriate amount of spaces to make things line up. Example: (Where you put the opening brace isn't important for this example!) sub baz { if (foo() and bar()) { # ... } } =head2 Method and Subroutine Naming Methods in Padre itself must be lowercase, and should generally consist of complete words separated by underscores. (e.g. Use ->check_message instead of ->chkMsg). Methods in all capitals are reserved for Perl-specific methods such as C Methods in StudlyCaps are reserved for the Wx bindings. Separating This allows us to be clear which methods (or overrided methods) are part of the Wx layer, and which are part of Padre itself. =head2 Accessors If a value is set once during the constructor and then not changed afterward, use a accessor name which matches the original parameter. my $object = Class->new( value => 'something', ); sub value { $_[0]->{value}; } Accessors which can change post-constructor should be named "get_foo" and "set_foo". Do not use mutators. For simple accessors, we encourage the use of L for accessor generation. This not only makes them significantly faster, but also makes debugging easier, because the debugger won't descend into every single accessor sub. =head1 HEAVY-DUTY DEBUGGING I If you're planning to do a serious debugging session, you may want to set up Padre with a debugging perl and debugging version of Wx. Particularly the core developers are encouraged to have a go at this because the debugging version of wxWidgets will show various warnings of failed assertions which may otherwise go undetected. This is a bit of work to set up and not very useful for a casual hacker as this will involve compiling your own perl, wxWidgets, and Wx. Here's a rough how-to for Linux and similar OSs: =head2 Building your own debugging perl =over 2 =item * Get the perl sources from http://cpan.org/src/README.html or via git. As of this writing, perl 5.12.1 is the latest stable release. =item * Extract the sources and run ./Configure -Dprefix='/path/for/your/perl' -DDEBUGGING -Dusethreads -Duse64bitall -Dusedevel -DDEBUG_LEAKING_SCALARS -DPERL_USE_SAFE_PUTENV Remove the C<-Duse64bitall> if you have a 32bit OS (or machine). Keep answering the questions with default (hit Enter) except for the question about B. Here, put the default settings that are suggested in the I<[...]> brackets and add two options: -DDEBUG_LEAKING_SCALARS -DPERL_USE_SAFE_PUTENV Afterwards, keep hitting return until the configuration is done. =item * Compile C by typing C or for multiple CPUs, type C where X is the number of CPUs+1. =item * If all went well, type C to install your own private debugging perl. =item * Check whether the executables in F all contain the version numbers of perl. You may want to create symlinks of the basename. If so, cd to the directory and run: perl -e 'for(@ARGV){$n=$_;s/5\.\d+\.\d+//; system("ln -s $n $_")}' *5.* Check that there's now also a F symlink to F (or whatever version of perl you built). =item * Setup the environment of your shell to use the new perl. For bash-like shells, do this: export PATH=/path/to/your/perl/bin:$PATH csh like shells probably use something like C or so. =item * Try running C to see whether your new perl is being run. (See also: C) Make sure C shows these particular "compile-time options": DEBUGGING DEBUG_LEAKING_SCALARS PERL_USE_SAFE_PUTENV PERL_USE_DEVEL There'll certainly be others, too. =back =head2 Building your own debugging wxWidgets =over 2 =item * Make sure your F<~/.cpan> is owned by you and not being used by another perl. Maybe clean up F<~/.cpan/build/*> so there's no collisions. =item * Run F. (B as root!) =item * If you like, install C for convenience. Potentially restart F afterwards. Check whether the modules were installed into your fresh perl at F. =item * From F, type C. You should get a new shell in an extracted C distribution. =item * Build wxWidgets by running: perl Build.PL --debug --unicode Hopefully, it won't say you're missing any dependencies. If you're missing any, quit the shell and install them from the cpan shell before continuing. C will ask you whether you want to build from sources. Yes, you do. Have it fetch the sources as F<.tar.gz>. ./Build ./Build test ./Build install =back =head2 Installing a debugging Wx.pm =over 2 =item * Now, you want to set up your own F with debugging enabled. First, install the prerequisites for Wx. I did it like this: cpan> look Wx ... $ perl Makefile.PL ... blah blah missing this or that ... Take note of the missing dependencies, exit to the CPAN shell, install the missing modules, then C again. =item * If you have all F dependencies in place, build C like this: perl Makefile.PL --wx-debug --wx-unicode make make test make install =back =head2 Installing Padre from SVN =over 2 =item * Once F is installed, check out Padre from the Subversion repository and cd to its directory under F. =item * Run C to automatically install all dependencies of Padre! =item * Run the following to set up Padre: perl Makefile.PL make =item * Run F to start Padre from your checkout. perl dev or with all plugins loaded: perl dev -h or with the Perl debugger: perl dev -d =item * Don't be annoyed by the Wx popups complaining about assertion-failures. They indicate potential bugs that probably need attention. If you get these, that means it was worth the effort to build a debugging perl and Wx! Note that the stack backtraces given are at the C level, not Perl backtraces. =back =head1 SUPPORT For support with Padre itself, see the support section in the top level L class. For support on hacking Padre, the best place to go is the #padre channel on L. =head1 COPYRIGHT Copyright 2008-2010 The Padre Team. Padre-1.00/lib/Padre/Pod2HTML.pm0000644000175000017500000000451612237327555014612 0ustar petepetepackage Padre::Pod2HTML; =pod =head1 NAME Padre::Pod2HTML - A customised Pod to HTML for Padre =head1 SYNOPSIS # The quicker way $html = Padre::Pod2HTML->pod2html( $pod_string ); # The slower way $parser = Padre::Pod2HTML->new; $parser->parse_string_document( $pod_string ); $html = $parser->html; =head1 DESCRIPTION C provides a central point for L functionality inside of Padre. Initially it just provides an internal convenience that converts L from printing to C to capturing the HTML. Currently the constructor does not take any options. =cut use 5.008; use strict; use warnings; use Pod::Simple::XHTML (); our $VERSION = '1.00'; our @ISA = 'Pod::Simple::XHTML'; ##################################################################### # One-Shot Methods sub file2html { my $class = shift; my $file = shift; my $self = $class->new(@_); # Generate the HTML $self->{html} = ''; $self->parse_file($file); $self->clean_html; return $self->{html}; } sub pod2html { my $class = shift; my $input = shift; my $self = $class->new(@_); # Generate the HTML $self->{html} = ''; $self->parse_string_document($input); $self->clean_html; return $self->{html}; } ##################################################################### # Capture instead of print # Prevent binding to STDOUT sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Ignore POD irregularities $self->no_whining(1); $self->no_errata_section(1); $self->output_string( \$self->{html} ); return $self; } sub clean_html { my $self = shift; return unless defined $self->{html}; #FIX ME: this takes care of a bug in Pod::Simple::XHTML $self->{html} =~ s/<{html} =~ s/< /< /g; $self->{html} =~ s/<=/<=/g; #FIX ME: this is incredibly bad, but the anchors are predictible $self->{html} =~ s/
|<\/a>//g; return 1; } 1; =pod =head1 AUTHOR Adam Kennedy C Ahmad M. Zawawi C =head1 SEE ALSO L =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut Padre-1.00/lib/Padre/Transform.pm0000644000175000017500000000460312237327555015271 0ustar petepetepackage Padre::Transform; =pod =head1 NAME Padre::Transform - Padre Document Transform API =head1 DESCRIPTION This is the base class for the Padre transform API. I'll document this more later... -- Adam K =head1 METHODS =cut use 5.008; use strict; use warnings; use Params::Util (); our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; ##################################################################### # Constructor =pod =head2 new A default constructor for transform objects. Takes arbitrary key/value pair parameters and returns a new object. =cut sub new { my $class = shift; bless {@_}, $class; } ##################################################################### # Main Methods =pod =head2 scalar_delta my $delta = $transform->scalar_delta($input_ref); The C method takes a reference to a C as the only parameter and changes the document. If the transform class does not implement a C itself the default implementation will pass the call through to C and then convert the result to a L object itself. Returns a new L as output, or throws an exception on error. =cut sub scalar_delta { my $self = shift; my $input = shift; my $output = $self->scalar_scalar($input); # Convert the regular scalar output to a delta require Padre::Delta; return Padre::Delta->new unless $output; return Padre::Delta->from_scalars( $input => $output ); } =pod =head2 scalar_scalar my $output_ref = $transform->scalar_scalar($input_ref); The C method takes a reference to a C as the only parameter and changes the document. Returns a new reference to a C as output, false if there is no change to the document, or throws an exception on error. =cut sub scalar_scalar { my $self = shift; my $input = shift; # No change to the document by default return ''; } =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. Padre-1.00/lib/Padre/Current.pm0000644000175000017500000002223712237327555014743 0ustar petepetepackage Padre::Current; =pod =head1 NAME Padre::Current - A context object, for centralising the concept of what is "current" =head1 DESCRIPTION The C detectes and returns whatever is current. Use it whenever you need to do something with anything which might get a focus or be selectable otherwise All methods could be called as functions, methods or class methods. =head1 CLASS METHODS =head2 C my $config = Padre::Current->config; Returns a Padre::Config object for the current document. Padre has three types of configuration: User-specific, host-specific and project-specific, this method returnsa config object which includes the current values - ne need to for you to care about which config is active and which has priority. =head2 C my $document = Padre::Current->document; Returns a Padre::Document object for the current document. =head2 C my $editor = Padre::Current->editor; Returns a Padre::Editor object for the current editor (containing the current document). =head2 C my $filename = Padre::Current->filename; Returns the filename of the current document. =head2 C my $ide = Padre::Current->ide; Returns a Padre::Wx object of the current ide. =head2 C
my $main = Padre::Current->main; Returns a Padre::Wx::Main object of the current ide. =head2 C my $main = Padre::Current->notebook; Returns a Padre::Wx::Notebook object of the current notebook. =head2 C my $main = Padre::Current->project; Returns a Padre::Project object of the current project. =head2 C my $main = Padre::Current->text; Returns the current selection (selected text in the current document). =head2 C my $main = Padre::Current->title; Returns the title of the current editor window. =cut use 5.008; use strict; use warnings; use Carp (); use Exporter (); use Params::Util (); our $VERSION = '1.00'; our @ISA = 'Exporter'; our @EXPORT_OK = '_CURRENT'; ##################################################################### # Exportable Functions # This is an importable convenience function. # It's current not as efficient as it should be, but once the majority # of the context-sensitive code has been migrated over, we should be # able to simplify it quite a bit. sub _CURRENT { # Most likely options return Padre::Current->new unless defined $_[0]; return shift if Params::Util::_INSTANCE( $_[0], 'Padre::Current' ); # Fallback options if ( Params::Util::_INSTANCE( $_[0], 'Padre::Document' ) ) { return Padre::Current->new( document => shift ); } return Padre::Current->new; } ##################################################################### # Constructor sub new { my $class = shift; bless {@_}, $class; } ##################################################################### # Context Methods # Get the project from the document (and don't cache) sub project { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; my $document = $self->document; return unless defined $document; return $document->project; } # Get the text from the editor (and don't cache) sub text { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; my $editor = $self->editor; return '' unless defined $editor; return $editor->GetSelectedText; } # Get the title of the current editor window (and don't cache) sub title { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; my $notebook = $self->notebook; my $selected = $notebook->GetSelection; return unless $selected >= 0; return $notebook->GetPageText($selected); } # Get the filename from the document sub filename { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; unless ( exists $self->{filename} ) { my $document = $self->document; if ( defined $document ) { $self->{filename} = $document->filename; } else { $self->{filename} = undef; } } return $self->{filename}; } # Get the document from the editor sub document { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; unless ( exists $self->{document} ) { my $editor = $self->editor; if ( defined $editor ) { $self->{document} = $editor->{Document}; } else { $self->{document} = undef; } } return $self->{document}; } # Derive the editor from the document sub editor { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; unless ( exists $self->{editor} ) { my $notebook = $self->notebook; if ( defined $notebook ) { my $selected = $notebook->GetSelection; if ( $selected == -1 ) { $self->{editor} = undef; } elsif ( $selected >= $notebook->GetPageCount ) { $self->{editor} = undef; } else { $self->{editor} = $notebook->GetPage($selected); unless ( $self->{editor} ) { Carp::croak("Failed to find page"); } } } } return $self->{editor}; } # Convenience method sub notebook { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; unless ( defined $self->{notebook} ) { my $main = $self->main; return unless defined $main; $self->{notebook} = $main->notebook; } return $self->{notebook}; } # Get the current configuration from the main window (and don't cache). sub config { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; # Fast shortcut from the main window return $self->{main}->config if defined $self->{main}; # Get the config from the main window my $main = $self->main; return $main->config if defined $main; # Get the config from the IDE my $ide = $self->ide or return; return $ide->config; } # Convenience method sub main { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; # floating windows (Wx::AuiFloatingFrame) may # call us passing $self as an argument, so # we short-circuit them if they're docked if ( $_[1] ) { my $parent = $_[1]->main; return $parent if ref $parent eq 'Padre::Wx::Main'; } if ( defined $self->{main} ) { return $self->{main}; } if ($Wx::TheApp) { return $self->{main} = $Wx::TheApp->main; } # Last resort fallback # Whe whole idea of loading Padre at this point does not look good. # It should have already be done in the padre script so loading here again seems incorrect # anyway. Does this only serve the testsing? ~ szabgab warn "Unexpectedly creating Padre instance from Padre::Current->main"; require Padre; $self->{ide} = Padre->ide; return unless defined $Wx::TheApp; return $self->{main} = $Wx::TheApp->main; } # Convenience method sub ide { my $self = ref( $_[0] ) ? $_[0] : $_[0]->new; if ( defined $self->{ide} ) { return $self->{ide}; } if ( defined $self->{main} ) { return $self->{ide} = $self->{main}->ide; } if ( defined $self->{document} or defined $self->{editor} ) { return $self->{ide} = $self->main->ide; } # Last resort require Padre; return $self->{ide} = Padre->ide; } 1; __END__ =pod =head1 NAME Padre::Current - convenient access to current objects within Padre =head1 SYNOPSIS my $main = Padre::Current->main; # ... =head1 DESCRIPTION Padre uses lots of objects from different classes. And one needs to have access to the current object of this sort or this other to do whatever is need at the time. Instead of poking directly with the various classes to find the object you need, C<Padre::Current> provides a bunch of handy methods to retrieve whatever current object you need. =head1 METHODS =head2 new # Vanilla constructor Padre::Current->new; # Seed the object with some context Padre::Current->new( document => $document ); The C<new> constructor creates a new context object, it optionally takes one or more named parameters which should be any context the caller is aware of before he calls the constructor. Providing this seed context allows the context object to derive parts of the current context from other parts, without the need to fall back to the last-resort C<< Padre->ide >> singleton-fetching method. Many objects in L<Padre> that are considered to be part of them context will have a C<current> method which automatically creates the context object with it as a seed. Returns a new B<Padre::Current> object. =head2 C<ide> Return the L<Padre> singleton for the IDE instance. =head2 C<config> Returns the current L<Padre::Config> configuration object for the IDE. =head2 C<main> Returns the L<Padre::Wx::Main> object for the main window. =head2 C<notebook> Returns the L<Padre::Wx::Notebook> object for the main window. =head2 C<document> Returns the active L<Padre::Document> document object. =head2 C<editor> Returns the L<Padre::Editor> editor object for the active document. =head2 C<filename> Returns the file name of the active document, if it has one. =head2 C<title> Return the title of current editor window. =head2 C<project> Return the C<Padre::Project> project object for the active document. =head2 C<text> Returns the selected text, or a null string if nothing is selected. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Plugin.pm����������������������������������������������������������������������0000644�0001750�0001750�00000054576�12237327555�014572� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Plugin; =pod =head1 NAME Padre::Plugin - Padre plug-in API 2.2 =head1 SYNOPSIS package Padre::Plugin::Foo; use strict; use base 'Padre::Plugin'; # The plug-in name to show in the Plug-in Manager and menus sub plugin_name { 'Example Plug-in'; } # Declare the Padre interfaces this plug-in uses sub padre_interfaces { 'Padre::Plugin' => 0.91, 'Padre::Document::Perl' => 0.91, 'Padre::Wx::Main' => 0.91, 'Padre::DB' => 0.91, } # The command structure to show in the Plug-ins menu sub menu_plugins_simple { my $self = shift; return $self->plugin_name => [ 'About' => sub { $self->show_about }, 'Submenu' => [ 'Do Something' => sub { $self->do_something }, ], ]; } 1; =cut use 5.008; use strict; use warnings; use Carp (); use File::Spec (); use File::ShareDir (); use Scalar::Util (); use Params::Util (); use YAML::Tiny (); use Padre::DB (); use Padre::Wx (); our $VERSION = '1.00'; our $COMPATIBLE = '0.43'; # Link plug-ins back to their IDE my %IDE = (); ###################################################################### # Static Methods =pod =head1 STATIC/CLASS METHODS =head2 C<plugin_name> The C<plugin_name> method will be called by Padre when it needs a name to display in the user interface. The default implementation will generate a name based on the class name of the plug-in. =cut sub plugin_name { my $class = ref $_[0] || $_[0]; my @words = $class =~ /(\w+)/gi; my $name = pop @words; $name =~ s/([a-z])([A-Z])/$1 $2/g; $name =~ s/([A-Z]+)([A-Z][a-z]+)/$1 $2/g; return $name; } =pod =head2 C<plugin_directory_share> The C<plugin_directory_share> method finds the location of the shared files directory for the plug-in, if one exists. Returns a path string if the share directory exists, or C<undef> if not. =cut sub plugin_directory_share { my $class = shift; $class =~ s/::/-/g; $class =~ s/\=HASH\(.+?\)$//; if ( $ENV{PADRE_DEV} ) { my $bin = do { no warnings; require FindBin; $FindBin::Bin; }; my $root = File::Spec->catdir( $bin, File::Spec->updir, File::Spec->updir, $class, ); my $path = File::Spec->catdir( $root, 'share' ); return $path if -d $path; $path = File::Spec->catdir( $root, 'lib', split( /-/, $class ), 'share', ); return $path if -d $path; return; } # Find the distribution directory my $dist = eval { File::ShareDir::dist_dir($class) }; return $@ ? undef : $dist; } =pod =head2 C<plugin_directory_locale> The C<plugin_directory_locale()> method will be called by Padre to know where to look for your plug-in l10n catalog. It defaults to F<$sharedir/locale> (with C<$sharedir> as defined by C<File::ShareDir> and thus should work as is for your plug-in if you're using the C<install_share> command of L<Module::Install>. If you are using L<Module::Build> version 0.36 and later, please use the C<share_dir> new() argument. Your plug-in catalogs should be named F<$plugin-$locale.po> (or F<.mo> for the compiled form) where C<$plugin> is the class name of your plug-in with any character that are illegal in file names (on all file systems) flattened to underscores. That is, F<Padre__Plugin__Vi-de.po> for the German locale of C<Padre::Plugin::Vi>. =cut sub plugin_directory_locale { my $class = shift; my $share = $class->plugin_directory_share or return; return File::Spec->catdir( $share, 'locale' ); } =pod =head2 C<plugin_icon> The C<plugin_icon> method will be called by Padre when it needs an icon to display in the user interface. It should return a 16x16 C<Wx::Bitmap> object. The default implementation will look for an icon at the path F<$plugin_directory_share/icons/16x16/logo.png> and load it for you. =cut sub plugin_icon { my $class = shift; my $share = $class->plugin_directory_share or return; my $file = File::Spec->catfile( $share, 'icons', '16x16', 'logo.png' ); return unless -f $file; return unless -r $file; return Wx::Bitmap->new( $file, Wx::BITMAP_TYPE_PNG ); } =pod =head2 C<padre_interfaces> sub padre_interfaces { 'Padre::Plugin' => 0.43, 'Padre::Document::Perl' => 0.35, 'Padre::Wx::Main' => 0.43, 'Padre::DB' => 0.25, } In Padre, plug-ins are permitted to make relatively deep calls into Padre's internals. This allows a lot of freedom, but comes at the cost of allowing plug-ins to damage or crash the editor. To help compensate for any potential problems, the Plug-in Manager expects each plug-in module to define the Padre classes that the plug-in uses, and the version of Padre that the code was originally written against (for each class). This information will be used by the Plug-in Manager to calculate whether or not the plug-in is still compatible with Padre. The list of interfaces should be provided as a list of class/version pairs, as shown in the example. The padre_interfaces method will be called on the class, not on the plug-in object. By default, this method returns nothing. In future, plug-ins that do B<not> supply compatibility information may be disabled unless the user has specifically allowed experimental plug-ins. =cut # Disabled so that we can detect plugins created before the existance # of the compatibility mechanism. # sub padre_interfaces { # return (); # } # Convenience integration with Class::Unload sub unload { my $either = shift; foreach my $package (@_) { require Padre::Unload; Padre::Unload->unload($package); } return 1; } ###################################################################### # Default Constructor =pod =head1 CONSTRUCTORS =head2 C<new> The new constructor takes no parameters. When a plug-in is loaded, Padre will instantiate one plug-in object for each plug-in, to provide the plug-in with a location to store any private or working data. A default constructor is provided that creates an empty hash-based object. =cut sub new { my $class = shift; my $ide = shift; unless ( Params::Util::_INSTANCE( $ide, 'Padre' ) ) { Carp::croak("Did not provide a Padre ide object"); } # Create the basic object my $self = bless {}, $class; # Store the link back to the IDE $IDE{ Scalar::Util::refaddr($self) } = $ide; return $self; } sub DESTROY { delete $IDE{ Scalar::Util::refaddr( $_[0] ) }; } ##################################################################### # Instance Methods =pod =head1 INSTANCE METHODS =head2 C<registered_documents> sub registered_documents { 'application/javascript' => 'Padre::Plugin::JavaScript::Document', 'application/json' => 'Padre::Plugin::JavaScript::Document', } The C<registered_documents> method can be used by a plug-in to define document types for which the plug-in provides a document class (which is used by Padre to enable functionality beyond the level of a plain text file with simple Scintilla highlighting). This method will be called by the Plug-in Manager and the information returned will be used to populate various internal data structures and perform various other tasks. Plug-in authors are expected to provide this information without having to know how or why Padre will use it. This (theoretically at this point) should allow Padre to keep a document open while a plug-in is being enabled or disabled, upgrading or downgrading the document in the process. The method call is made on the plug-in object, and returns a list of MIME type to class pairs. By default the method returns a null list, which indicates that the plug-in does not provide any document types. =cut sub registered_documents { return (); } =head2 C<registered_highlighters> sub registered_highlighters { 'Padre::Plugin::MyPlugin::Perl' => { name => _T("My Highlighter"), mime => [ qw{ application/x-perl application/x-perl6 text/x-pod } ], }, 'Padre::Plugin::MyPlugin::C' => { name => _T("My Highlighter"), mime => [ qw{ text/x-csrc text/x-c++src text/x-perlxs } ], }, } The C<registered_documents> method can be used by a plug-in to define custom syntax highlighters for use with one or more MIME types. As shown in the example above, highlighters are described as a module name and an attribute that describes a visible name for the highlighter and a reference to a list of the mime types that the highlighter should be applied to. Defining a new syntax highlighter will automatically cause that highlighter to be used by default for the MIME type. =cut sub registered_highlighters { return (); } =pod =head2 C<event_on_context_menu> sub event_on_context_menu { my ($self, $document, $editor, $menu, $event) = (@_); # create our own menu section $menu->AppendSeparator; my $item = $menu->Append( -1, _T('Mutley, do something') ); Wx::Event::EVT_MENU( $self->main, $item, sub { Wx::MessageBox('sh sh sh sh', 'Mutley', Wx::OK, shift) }, ); } If implemented in a plug-in, this method will be called when a context menu is about to be displayed either because the user triggered the event right in the editor window (with a right click or Shift+F10 or the context menu key) or because the C<Context Menu> menu entry was selected in the C<Window> menu (C<Wx::CommandEvent>). The context menu object was created and populated by the Editor and then possibly augmented by the C<Padre::Document> type (see L<Padre::Document/event_on_context_menu>). Parameters retrieved are the objects for the document, the editor, the context menu (C<Wx::Menu>) and the event. Have a look at the implementation in L<Padre::Document::Perl> for a more thorough example, including how to manipulate the active document. =cut # this method is only implemented in the plug-in children =pod =head2 C<plugin_enable> The C<plugin_enable> object method will be called (at an arbitrary time of Padre's choosing) to allow the plug-in object to initialise and start up the plug-in. This may involve loading any configuration files, hooking into existing documents or editor windows, and otherwise doing anything needed to bootstrap operations. Please note that Padre will block until this method returns, so you should attempt to complete return as quickly as possible. Any modules that you may use should B<not> be loaded during this phase, but should be C<require>ed when they are needed, at the last moment. Returns true if the plug-in started up successfully, or false on failure. The default implementation does nothing, and returns true. =cut sub plugin_enable { return 1; } =pod =head2 C<plugin_disable> The C<plugin_disable> method is called by Padre for various reasons to request the plug-in do whatever tasks are necessary to shut itself down. This also provides an opportunity to save configuration information, save caches to disk, and so on. Most often, this will be when Padre itself is shutting down. Other uses may be when the user wishes to disable the plug-in, when the plug-in is being reloaded, or if the plug-in is about to be upgraded. If you have any private classes other than the standard C<Padre::Plugin::Foo>, you should unload them as well as the plug-in may be in the process of upgrading and will want those classes freed up for use by the new version. The recommended way of unloading your extra classes is using the built in C<unload> method. Suppose you have C<My::Extra::Class> and want to unload it, simply do this in C<plugin_disable>: $plugin->unload('My::Extra::Class'); The C<unload> method takes care of all the tedious bits for you. Note that you should B<not> unload any external C<CPAN> dependencies, as these may be needed by other plug-ins or Padre itself. Only classes that are part of your plug-in should be unloaded. Returns true on success, or false if the unloading process failed and your plug-in has been left in an unknown state. =cut sub plugin_disable { return 1; } =pod =head2 C<config_read> my $hash = $self->config_read; if ( $hash ) { print "Loaded existing configuration\n"; } else { print "No existing configuration"; } The C<config_read> method provides access to host-specific configuration stored in a persistent location by Padre. At this time, the configuration must be a nested, non-cyclic structure of C<HASH> references, C<ARRAY> references and simple scalars (the use of C<undef> values is permitted) with a C<HASH> reference at the root. Returns a nested C<HASH>-root structure if there is an existing saved configuration for the plug-in, or C<undef> if there is no existing saved configuration for the plug-in. =cut sub config_read { my $self = shift; # Retrieve the config string from the database my $class = Scalar::Util::blessed($self); #convert p-p-xx-yy -> p-p-xx $class =~ s/^(Padre::Plugin::)(\w+)(?:::.+)/$1$2/; my @row = Padre::DB->selectrow_array( 'select config from plugin where name = ?', {}, $class, ); return unless defined $row[0]; # Parse the config from the string my @config = YAML::Tiny::Load( $row[0] ); unless ( Params::Util::_HASH0( $config[0] ) ) { Carp::croak('Config for plugin was not a HASH refence'); } return $config[0]; } =pod =head2 C<config_write> $self->config_write( { foo => 'bar' } ); The C<config_write> method is used to write the host-specific configuration information for the plug-in into the underlying database storage. At this time, the configuration must be a nested, non-cyclic structure of C<HASH> references, C<ARRAY> references and simple scalars (the use of C<undef> values is permitted) with a C<HASH> reference at the root. =cut sub config_write { my $self = shift; my $config = shift; unless ( Params::Util::_HASH0($config) ) { Carp::croak('Did not provide a HASH ref to config_write'); } # Convert the config to a string my $string = YAML::Tiny::Dump($config); # Write the config string to the database my $class = Scalar::Util::blessed($self); #convert p-p-xx-yy -> p-p-xx $class =~ s/^(Padre::Plugin::)(\w+)(?:::.+)/$1$2/; Padre::DB->do( 'update plugin set config = ? where name = ?', {}, $string, $class, ); return 1; } =pod =head2 C<plugin_preferences> $plugin->plugin_preferences($wx_parent); The C<plugin_preferences> method allows a plug-in to define an entry point for the Plug-in Manager dialog to trigger to show a preferences or configuration dialog for the plug-in. The method is passed a Wx object that should be used as the Wx parent. =cut # This method is only implemented in the plug-in children =pod =head2 C<menu_plugins_simple> sub menu_plugins_simple { 'My Plug-in' => [ Submenu => [ 'Do Something' => sub { $self->do_something }, ], # Separator '---' => undef, # Shorthand for sub { $self->show_about(@_) } About => 'show_about', # Also use keyboard shortcuts to call sub { $self->show_about(@_) } "Action\tCtrl+Shift+Z" => 'action', ]; } The C<menu_plugins_simple> method defines a simple menu structure for your plug-in. It returns two values, the label for the menu entry to be used in the top level Plug-ins menu, and a reference to an ARRAY containing an B<ordered> set of key/value pairs that will be turned into menus. If the key is a string of three hyphens (i.e. C<--->) the pair will be rendered as a menu separator. If the key is a string containing a tab (C<"\t">) and a keyboard shortcut combination the menu action will also be available through a keyboard shortcut. If the value is a Perl identifier, it will be treated as a method name to be called on the plug-in object when the menu entry is triggered. If the value is a reference to an ARRAY, the pair will be rendered as a sub-menu containing further menu items. =cut sub menu_plugins_simple { # Plugins returning no data will not # be visible in the plugin menu. return (); } =pod =head2 C<menu_plugins> sub menu_plugins { my $self = shift; my $main = shift; # Create a simple menu with a single About entry my $menu = Wx::Menu->new; Wx::Event::EVT_MENU( $main, $menu->Append( -1, 'About', ), sub { $self->show_about }, ); # Return it and the label for our plug-in return ( $self->plugin_name => $menu ); The C<menu_plugins> method defines a fully-featured mechanism for building your plug-in menu. It returns two values, the label for the menu entry to be used in the top level Plug-ins menu, and a L<Wx::Menu> object containing the custom-built menu structure. A default implementation of this method is provided which will call C<menu_plugins_simple> and implements the expansion of the simple data into a full menu structure. If the method return a null list, no menu entry will be created for the plug-in. =cut sub menu_plugins { my $self = shift; my $main = shift; my @simple = $self->menu_plugins_simple; if (@simple) { my $label = $simple[0]; my $menu = $self->_menu_plugins_submenu( $main, $simple[1] ) or return (); return ( $label, $menu ); } my @actions = $self->menu_actions; if (@actions) { my $label = $actions[0]; my $topmenu = Padre::Wx::Menu->new; return $topmenu->build_menu_from_actions( $main, \@actions ); } return (); } sub _menu_plugins_submenu { my $self = shift; my $main = shift; my $items = shift; unless ( $items and ref $items and ref $items eq 'ARRAY' and not @$items % 2 ) { return; } # Fill the menu my $menu = Wx::Menu->new; while (@$items) { my $label = shift @$items; my $value = shift @$items; # Separator unless ( defined $value ) { if ( $label eq '---' ) { $menu->AppendSeparator; next; } Carp::cluck("Undefined value for label '$label'"); } # Method Name if ( Params::Util::_IDENTIFIER($value) ) { # Convert to a function reference my $method = $value; $value = sub { local $@; eval { $self->$method(@_); }; $main->error("Unhandled exception in plugin menu: $@") if $@; }; } # Function Reference if ( Params::Util::_CODE($value) ) { Wx::Event::EVT_MENU( $main, $menu->Append( -1, $label ), sub { local $@; eval { $value->(@_); }; $main->error("Unhandled exception in plugin menu: $@") if $@; }, ); next; } # Array Reference (submenu) if ( Params::Util::_ARRAY0($value) ) { my $submenu = $self->_menu_plugins_submenu( $main, $value ); $menu->Append( -1, $label, $submenu ); next; } Carp::cluck("Unknown or invalid menu entry (label '$label' and value '$value')"); } return $menu; } # Experimental and unsupported, as it means we would have TWO entirely different # "simple" menu configuration methods. sub menu_actions { return (); } # Very Experimental !!! sub _menu_actions_submenu { my $self = shift; my $main = shift; my $topmenu = shift; my $menu = shift; my $items = shift; unless ( $items and ref $items and ref $items eq 'ARRAY' ) { Carp::cluck("Invalid list of actions in plugin"); return; } # Fill the menu while (@$items) { my $value = shift @$items; # Separator if ( $value eq '---' ) { $menu->AppendSeparator; next; } # Array Reference (submenu) if ( Params::Util::_ARRAY0($value) ) { my $label = shift @$value; if ( not defined $label ) { Carp::cluck("No label in action sublist"); next; } my $submenu = Wx::Menu->new; $menu->Append( -1, $label, $submenu ); $self->_menu_actions_submenu( $main, $topmenu, $submenu, $value ); next; } # Action name $topmenu->{"menu_$value"} = $topmenu->add_menu_action( $menu, $value, ); } return; } ###################################################################### # Event Handlers =pod =head2 C<editor_enable> sub editor_enable { my $self = shift; my $editor = shift; my $document = shift; # Make changes to the editor here... return 1; } The C<editor_enable> method is called by Padre to provide the plug-in with an opportunity to alter the setup of the editor as it is being loaded. This method is only triggered when new editor windows are opened. Hooking into any existing open documents must be done within the C<plugin_enable> method. The method is passed two parameters, the fully set up editor object, and the L<Padre::Document> being opened. At the present time, this method has been provided primarily for the use of the L<Padre::Plugin::Vi> plug-in and other plug-ins that need deep integration with the editor widget. =cut sub editor_enable { return 1; } =pod =head2 C<editor_disable> sub editor_disable { my $self = shift; my $editor = shift; my $document = shift; # Undo your changes to the editor here... return 1; The C<editor_disable> method is the twin of the previous C<editor_enable> method. It is called as the file in the editor is being closed, B<after> the user has confirmed the file is to be closed. It provides the plug-in with an opportunity to clean up, remove any GUI customisations, and complete any other shutdown/close processes. The method is passed two parameters, the fully set up editor object, and the L<Padre::Document> being closed. At the present time, this method has been provided primarily for the use of the L<Padre::Plugin::Vi> plug-in and other plug-ins that need deep integration with the editor widget. =cut sub editor_disable { return 1; } ##################################################################### # Padre Integration Methods =pod =head2 C<ide> The C<ide> convenience method provides access to the root-level L<Padre> IDE object, preventing the need to go via the global C<< Padre->ide >> method. =cut sub ide { $IDE{ Scalar::Util::refaddr( $_[0] ) } or Carp::croak("Called ->ide or related method on non-existance plugin'$_[0]'"); } =pod =head2 C<main> The C<main> convenience method provides direct access to the L<Padre::Wx::Main> (main window) object. =cut sub main { $_[0]->ide->wx->main; } =pod =head2 C<current> The C<current> convenience method provides a L<Padre::Current> context object for the current plug-in. =cut sub current { Padre::Current->new( ide => $_[0]->ide ); } 1; =pod =head1 SEE ALSO L<Padre> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ����������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Util.pm������������������������������������������������������������������������0000644�0001750�0001750�00000033051�12237327555�014232� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Util; =pod =head1 NAME Padre::Util - Padre non-Wx Utility Functions =head1 DESCRIPTION The C<Padre::Util> package is a internal storage area for miscellaneous functions that aren't really Padre-specific that we want to throw somewhere convenient so they won't clog up task-specific packages. All functions are exportable and documented for maintenance purposes, but except for in the L<Padre> core distribution you are discouraged in the strongest possible terms from using these functions, as they may be moved, removed or changed at any time without notice. =head1 FUNCTIONS =cut use 5.010; use strict; use warnings; use Carp (); use Exporter (); use Cwd (); use File::Spec (); use List::Util (); use Padre::Constant (); ### NO other Padre:: dependencies ### Seriously guys, I fscking mean it. # If we make $VERSION an 'our' variable the parse_variable() function breaks use vars qw{ $VERSION $COMPATIBLE }; BEGIN { $VERSION = '1.00'; $COMPATIBLE = '0.97'; } our @ISA = 'Exporter'; our @EXPORT_OK = '_T'; our $DISTRO = undef; ##################################################################### # Officially Supported Constants # Convenience constants for the operating system # NOTE: They're now in Padre::Constant, if you miss them, please use them from there #use constant WIN32 => !!( $^O eq 'MSWin32' ); #use constant MAC => !!( $^O eq 'darwin' ); #use constant UNIX => !( WIN32 or MAC ); # The local newline type # NOTE: It's now in Padre::Constant, if you miss them, please use it from there #use constant NEWLINE => Padre::Constant::WIN32 ? 'WIN' : Padre::Constant::MAC ? 'MAC' : 'UNIX'; # Pulled back from Padre::Constant as it wasn't a constant in the first place sub DISTRO { return $DISTRO if defined $DISTRO; if (Padre::Constant::WIN32) { # Inherit from the main Windows classification require Win32; $DISTRO = uc Win32::GetOSName(); } elsif (Padre::Constant::MAC) { $DISTRO = 'MAC'; } else { # Try to identify a more specific linux distribution local $@; eval { if ( open my $lsb_file, '<', '/etc/lsb-release' ) { while (<$lsb_file>) { next unless /^DISTRIB_ID\=(.+?)[\r\n]/; if ( $1 eq 'Ubuntu' ) { $DISTRO = 'UBUNTU'; } last; } } }; } $DISTRO ||= 'UNKNOWN'; return $DISTRO; } ##################################################################### # Idioms and Miscellaneous Functions =pod =head2 C<slurp> my $content = Padre::Util::slurp( $file ); if ( $content ) { print $$content; } else { # Handle errors appropriately } This is a simple slurp implementation, provided as a convenience for internal Padre use when loading trivial unimportant files for which we don't need anything more robust. All file reading is done with C<binmode> enabled, and data is returned by reference to avoid needless copying. Returns the content of the file as a SCALAR reference if the file exists and can be read. Returns false if loading of the file failed. This function is only expected to be used in situations where the file should almost always exist, and thus the reason why reading the file failed isn't really important. =cut sub slurp { my $file = shift; open my $fh, '<', $file or return ''; binmode $fh; local $/ = undef; my $content = <$fh>; close $fh; return \$content; } =pod =head2 C<newline_type> my $type = Padre::Util::newline_type( $string ); Returns C<None> if there was not C<CR> or C<LF> in the file. Returns C<UNIX>, C<Mac> or C<Windows> if only the appropriate newlines were found. Returns C<Mixed> if line endings are mixed. =cut sub newline_type { my $text = shift; my $CR = "\015"; my $LF = "\012"; my $CRLF = "\015\012"; return "None" if not defined $text; return "None" if $text !~ /$LF/ and $text !~ /$CR/; return "UNIX" if $text !~ /$CR/; return "MAC" if $text !~ /$LF/; $text =~ s/$CRLF//g; return "WIN" if $text !~ /$LF/ and $text !~ /$CR/; return "Mixed"; } =pod =head2 C<parse_variable> my $version = Padre::Util::parse_variable($file, 'VERSION'); Parse a C<$file> and return what C<$VERSION> (or some other variable) is set to by the first assignment. It will return the string C<"undef"> if it can't figure out what C<$VERSION> is. C<$VERSION> should be for all to see, so C<our $VERSION> or plain C<$VERSION> are okay, but C<my $VERSION> is not. C<parse_variable()> will try to C<use version> before checking for C<$VERSION> so the following will work. $VERSION = qv(1.2.3); Originally based on C<parse_version> from L<ExtUtils::MakeMaker>. =cut sub parse_variable { my $parsefile = shift; my $variable = shift || 'VERSION'; my $result; local $/ = "\n"; local $_; open( my $fh, '<', $parsefile ) #-# no critic (RequireBriefOpen) or die "Could not open '$parsefile': $!"; my $inpod = 0; while (<$fh>) { $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod; next if $inpod || /^\s*#/; chop; next if /^\s*(if|unless)/; if ( $variable eq 'VERSION' and m{^ \s* package \s+ \w[\w\:\']* \s+ (v?[0-9._]+) \s* ; }x ) { local $^W = 0; $result = $1; } elsif (m{(?<!\\) ([\$*]) (([\w\:\']*) \b$variable)\b .* =}x) { my $eval = qq{ package # Hide from PAUSE ExtUtils::MakeMaker::_version; no strict; BEGIN { eval { # Ensure any version() routine which might have leaked # into this package has been deleted. Interferes with # version->import undef *version; require version; "version"->import; } } local $1$2; \$$2=undef; do { $_ }; \$$2; }; local $^W = 0; # what policy needs to be disabled here???? $result = eval($eval); warn "Could not eval '$eval' in $parsefile: $@" if $@; } else { next; } last if defined $result; } close $fh; $result = "undef" unless defined $result; return $result; } =pod =head2 C<_T> The C<_T> function is used for strings that you do not want to translate immediately, but you will be translating later (multiple times). The only reason this function needs to exist at all is so that the translation tools can identify the string it refers to as something that needs to be translated. Functionally, this function is just a direct pass-through with no effect. =cut # Pasting more background information for people that don't understand # the POD docs, because at least one person has accidentally broken this # by changing it (not cxreg, he actually asked first) :) #15:31 cxreg Alias: er, how it's just "shift" ? #15:31 Alias cxreg: Wx has a gettext implementation #15:31 Alias Wx::gettext #15:31 Alias That's the "translate right now" function #15:31 Alias But we need a late-binding version, for things that need to be translated, but are kept in memory (for various reasons) as English and only get translated at the last second #15:32 Alias So in that case, we do a Wx::gettext($string) #15:32 Alias The problem is that the translation tools can't tell what $string is #15:32 Alias The translation tools DO, however, recognise _T as a translatable string #15:33 Alias So we use _T as a silent pass-through specifically to indicate to the translation tools that this string needs translating #15:34 Alias If we did everything as an up-front translation we'd need to flush a crapton of stuff and re-initialise it every time someone changed languages #15:35 Alias Instead, we flush the hidden dialogs and rebuild the entire menu #15:35 Alias But most of the rest we do with the delayed _T strings #15:37 cxreg i get the concept, it's just so magical #15:38 Alias It works brilliantly :) #15:38 cxreg do you replace the _T symbol at runtime? #15:39 Alias symbol? #15:39 Alias Why would we do that? #15:40 cxreg in order to actually instrument the translation, i wasn't sure if you were swapping out the sub behind the _T symbol #15:40 Alias oh, no #15:40 Alias _T is ONLY there to hint to the translation tools #15:40 Alias The PO editors etc #15:40 Alias my $english = _T('Hello World!'); $gui->set_title( Wx::gettext($english) ); #15:41 Alias It does absolutely nothing inside the code itself sub _T { shift; } ##################################################################### # Shared Resources =head2 C<share> If called without a parameter returns the share directory of Padre. If called with a parameter (e.g. C<Perl6>) returns the share directory of L<Padre::Plugin::Perl6>. Uses File::ShareDir inside. =cut sub share { my $plugin = shift; if ( $ENV{PADRE_DEV} ) { require FindBin; my $root = File::Spec->rel2abs( File::Spec->catdir( $FindBin::Bin, File::Spec->updir, File::Spec->updir ) ); unless ($plugin) { return File::Spec->catdir( $root, 'Padre', 'share' ); } # two cases: share in the Padre-Plugin-Name/share # or share in the Padre-Plugin-Name/lib/Padre/Plugin/Name/share directory my $plugin_dir = File::Spec->catdir( $root, "Padre-Plugin-$plugin", 'share' ); if ( -d $plugin_dir ) { return $plugin_dir; } $plugin_dir = File::Spec->catdir( $root, "Padre-Plugin-$plugin", 'lib', 'Padre', 'Plugin', $plugin, 'share' ); return $plugin_dir; } # Rely on automatic handling of everything require File::ShareDir; if ($plugin) { return File::Spec->rel2abs( File::ShareDir::dist_dir("Padre-Plugin-$plugin") ); } else { return File::Spec->rel2abs( File::ShareDir::dist_dir('Padre') ); } } sub sharedir { File::Spec->catdir( share(), @_ ); } sub sharefile { File::Spec->catfile( share(), @_ ); } sub splash { my $original = Padre::Util::sharefile('padre-splash-ccnc.png'); return -f $original ? $original : Padre::Util::sharefile('padre-splash.png'); } ###################################################################### # Logging and Debugging # Returns the memory currently used by this application: sub process_memory { if (Padre::Constant::UNIX) { open my $meminfo, '<', '/proc/self/stat' or return; my $rv = ( split( / /, <$meminfo> ) )[22]; close $meminfo; return $rv; } elsif (Padre::Constant::WIN32) { require Padre::Util::Win32; return Padre::Util::Win32::GetCurrentProcessMemorySize(); } return; } =pod =head2 C<run_in_directory> Padre::Util::run_in_directory( $command, $directory ); Runs the provided C<command> in the C<directory>. On win32 platforms, executes the command to provide *true* background process executions without window popups on each execution. on non-win32 platforms, it runs a C<system> command. Returns 1 on success and 0 on failure. =cut sub run_in_directory { my ( $cmd, $directory ) = @_; # Make sure we execute from the correct directory if (Padre::Constant::WIN32) { require Padre::Util::Win32; my $retval = Padre::Util::Win32::ExecuteProcessAndWait( directory => $directory, file => 'cmd.exe', parameters => "/C $cmd", ); return $retval ? 1 : 0; } else { require File::pushd; my $pushd = File::pushd::pushd($directory); my $retval = system $cmd; return ( $retval == 0 ) ? 1 : 0; } } =pod =head2 C<run_in_directory_two> Plugin replacment for perl command qx{...} to avoid black lines in non *inux os qx{...}; run_in_directory_two( cmd => '...'); optional parameters are dir and return type run_in_directory_two(cmd => '...', dir => $dir); run_in_directory_two(cmd => '...', dir => $dir, option => type); also run_in_directory_two(cmd => '...', option => type); return type 1 default, returns a string return type 2 error only for testing nb you might need to chomp result but thats for you. return type 0 hash_ref =over =item example 1, Padre::Util::run_in_directory_two(cmd => 'svn --version --quiet'); "1.6.12 " =item example 2, Padre::Util::run_in_directory_two(cmd => 'svn --version --quiet', option => '0'); \ { error "", input "svn --version --quiet", output "1.6.12 " } =back =cut ####### # function Padre::Util::run_in_directory_two ####### sub run_in_directory_two { my %args = @_; #create return hash ioe (input output error) my %ret_ioe; $ret_ioe{input} = $args{cmd}; $args{cmd} =~ m/((?:\w+)\s)/; my $cmd_app = $1; if ( defined $args{option} ) { $args{option} = ( $args{option} =~ m/[0|1|2]/ ) ? $args{option} : '1'; } else { $args{option} = 1; } # Create a temporary file for standard output redirection require File::Temp; my $std_out = File::Temp->new( UNLINK => 1 ); # Create a temporary file for standard error redirection my $std_err = File::Temp->new( UNLINK => 1 ); my $temp_dir = File::Temp->newdir(); my $directory = $args{dir} // $temp_dir; my @cmd = ( $args{cmd}, '1>' . $std_out->filename, '2>' . $std_err->filename, ); # We need shell redirection (list context does not give that) # Run command in directory Padre::Util::run_in_directory( "@cmd", $directory ); # Slurp command standard input and output $ret_ioe{output} = ${ slurp( $std_out->filename ) }; chomp $ret_ioe{output}; # Slurp command standard error $ret_ioe{error} = ${ slurp( $std_err->filename ) }; chomp $ret_ioe{error}; $ret_ioe{error} = $ret_ioe{error} ne "" ? $ret_ioe{error} : undef; if ( $ret_ioe{error} && ( $args{option} eq '1' ) ) { $args{option} = '2'; } return $ret_ioe{output} if ( $args{option} eq '1' ); return $ret_ioe{error} if ( $args{option} eq '2' ); return \%ret_ioe; } 1; __END__ =pod =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Unload.pm����������������������������������������������������������������������0000644�0001750�0001750�00000001542�12237327555�014537� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Unload; # Inlined version of Class::Unload with a few more tricks up its sleeve use 5.008; use strict; use warnings; our $VERSION = '1.00'; our $COMPATIBLE = '0.91'; sub unload { my $module = shift; require Class::Inspector; return unless Class::Inspector->loaded($module); no strict 'refs'; # Flush inheritance caches @{ $module . '::ISA' } = (); # Delete all symbols except other namespaces my $symtab = $module . '::'; for my $symbol ( keys %$symtab ) { next if $symbol =~ /\A[^:]+::\z/; delete $symtab->{$symbol}; } my $inc_file = join( '/', split /(?:'|::)/, $module ) . '.pm'; delete $INC{$inc_file}; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/TaskWorker.pm������������������������������������������������������������������0000644�0001750�0001750�00000013531�12237327555�015412� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::TaskWorker; # Cleanly encapsulated object for a thread that does work based # on packaged method calls passed via a shared queue. use 5.008005; use strict; use warnings; use Scalar::Util (); use Padre::TaskQueue (); # NOTE: The TRACE() calls in this class should be commented out unless # actively debugging, so that the Padre::Logger class will only be loaded in # the parent thread AFTER the threads spawn. # use Padre::Logger; use constant DEBUG => 0; our $VERSION = '1.00'; our $COMPATIBLE = '0.91'; # Worker id sequence, so identifiers will be available in objects # across all instances and threads before the thread has been spawned. # We map the worker ID to the thread id, once it exists. my $SEQUENCE : shared = 0; my %WID2TID : shared = (); ###################################################################### # Slave Master Support (main thread only) my $SINGLETON = undef; sub master { $SINGLETON or $SINGLETON = shift->new->spawn; } sub master_running { !!$SINGLETON; } ###################################################################### # Constructor and Accessors sub new { TRACE( $_[0] ) if DEBUG; bless { wid => ++$SEQUENCE, queue => Padre::TaskQueue->new, seen => {}, }, $_[0]; } sub wid { $_[0]->{wid}; } sub queue { $_[0]->{queue}; } sub handle { my $self = shift; $self->{handle} = shift if @_; return $self->{handle}; } ###################################################################### # Main Methods sub spawn { TRACE( $_[0] ) if DEBUG; my $self = shift; # Spawn the object into the thread and enter the main runloop $WID2TID{ $self->{wid} } = threads->create( { context => 'void' }, sub { shift->run; }, $self, )->tid; return $self; } sub tid { $WID2TID{ $_[0]->{wid} }; } sub thread { TRACE( $_[0] ) if DEBUG; threads->object( $_[0]->tid ); } sub is_thread { TRACE( $_[0] ) if DEBUG; $_[0]->tid == threads->self->tid; } ###################################################################### # Parent Thread Methods # Send the worker down to (presumably) the slave master sub send_child { TRACE( $_[1] ) if DEBUG; shift->{queue}->enqueue( [ 'child' => shift ] ); return 1; } sub send_task { TRACE( $_[1] ) if DEBUG; my $self = shift; my $handle = shift; # Tracking for the relationship between the worker and task handle $handle->worker( $self->wid ); $self->{handle} = $handle->hid; $self->{seen}->{ $handle->class } += 1; # Send the message to the child TRACE( "Handle " . $handle->hid . " being sent to worker " . $self->wid ) if DEBUG; $self->{queue}->enqueue( [ 'task' => $handle->as_array ] ); return 1; } sub send_message { TRACE( $_[1] ) if DEBUG; my $self = shift; # Freeze the who-knows-what-it-contains message for transport require Storable; my $message = Storable::nfreeze( \@_ ); $self->{queue}->enqueue( [ 'message' => $message ] ); return 1; } sub send_cancel { TRACE( $_[0] ) if DEBUG; shift->{queue}->enqueue( ['cancel'] ); return 1; } # Immediately detach and terminate when queued jobs are completed sub send_stop { TRACE( $_[0] ) if DEBUG; shift->{queue}->enqueue( ['stop'] ); return 1; } ###################################################################### # Child Thread Methods sub run { TRACE( $_[0] ) if DEBUG; my $self = shift; my $queue = $self->{queue}; # Loop over inbound requests TRACE("Entering worker run-time loop") if DEBUG; while (1) { my $message = $queue->dequeue1; unless ( ref $message eq 'ARRAY' and @$message ) { next; } # Check the message type TRACE("Worker received message '$message->[0]'") if DEBUG; my $method = shift @$message; next unless $self->can($method); # Hand off to the appropriate method. # Methods must return true, otherwise the thread # will abort processing and end. $self->$method(@$message) or last; } TRACE("Exiting worker run-time loop") if DEBUG; return; } ###################################################################### # Child Thread Message Handlers # Spawn a worker object off the current thread sub child { TRACE( $_[0] ) if DEBUG; shift; shift->spawn; return 1; } # Execute a task sub task { TRACE( $_[0] ) if DEBUG; my $self = shift; # Deserialize the task handle TRACE("Loading Padre::TaskHandle") if DEBUG; require Padre::TaskHandle; TRACE("Inflating handle object") if DEBUG; my $handle = Padre::TaskHandle->from_array(shift); # Execute the task (ignore the result) and signal as we go local $@; eval { # Tell our parent we are starting TRACE( "Handle " . $handle->hid . " calling ->start" ) if DEBUG; $handle->start( $self->queue ); # Set up to receive thread kill signals local $SIG{STOP} = sub { die "Task aborted due to SIGSTOP from parent thread"; }; # Call the handle's run method TRACE( "Handle " . $handle->hid . " calling ->run" ) if DEBUG; $handle->run; # Tell our parent we completed successfully TRACE( "Handle " . $handle->hid . " calling ->stop" ) if DEBUG; $handle->stop; }; if ($@) { delete $handle->{queue}; delete $handle->{child}; TRACE($@) if DEBUG; } return 1; } # A message for the active task that arrive when we are NOT actively running a # task should be discarded with no consequence. sub message { TRACE( $_[0] ) if DEBUG; TRACE("Discarding unexpected message") if DEBUG; return 1; } # A cancel request that arrives when we are NOT actively running a task # should be discarded with no consequence. sub cancel { if (DEBUG) { TRACE( $_[0] ); if ( defined $_[1]->[0] ) { TRACE("Discarding cancel '$_[1]->[0]'"); } else { TRACE("Discarding undefined message"); } } return 1; } # Stop the current child sub stop { TRACE( $_[0] ) if DEBUG; return 0; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Test.pm������������������������������������������������������������������������0000644�0001750�0001750�00000001726�12237327555�014240� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Test; # This package should be loaded by your test script (or by -MPadre::Test) # to signal that Padre is running inside of a test script, and should # behave appropriately. # # To avoid problems with the test environment not matching the run-time # environment (and as a result missing bugs because the tests don't work # quite the same as the real thing) uses of this module should be limited # to highly user-impacting changes, like keeping the Padre window invisible # during tests. # In Padre code, the existance of $Padre::Test::VERSION is suitable for # assuming we are in the test suite. use 5.008005; use strict; use warnings; our $VERSION = '1.00'; # Disable the splash screen $ENV{PADRE_NOSPLASH} = 1; ## no critic (RequireLocalizedPunctuationVars) 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������Padre-1.00/lib/Padre/Template.pm��������������������������������������������������������������������0000644�0001750�0001750�00000002231�12237327555�015064� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Template; use 5.008; use strict; use warnings; use File::Spec (); use Padre::Util (); use Padre::Constant (); use Padre::Current (); our $VERSION = '1.00'; use constant TEMPLATE_DIRECTORY => Padre::Util::sharedir('templates'); ###################################################################### # Main Methods sub render { my $class = shift; my $path = shift; my $name = $path; # Resolve the full path if it is a core template unless ( File::Spec->file_name_is_absolute($path) ) { my $full = File::Spec->catfile( TEMPLATE_DIRECTORY, $path ); unless ( -f $full ) { die "The core template '$path' does not exist"; } $path = $full; } # Load the template file my $input = Padre::Util::slurp($path); unless ($input) { die "Failed to load template file '$name'"; } # Hand off to Template::Tiny require Template::Tiny; my $output = ''; Template::Tiny->new->process( $input, { @_ }, \$output ); return $output; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB.pm��������������������������������������������������������������������������0000644�0001750�0001750�00000031376�12237327555�013612� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB; # Provide an ORLite-based API for the Padre database use 5.008; use strict; use warnings; use Params::Util (); use Padre::Constant (); use Padre::Current (); use Padre::Logger; BEGIN { # Trap and warn in any situations where the database API is # loaded in a background thread. This should never happen. if ( $threads::threads and threads->tid ) { warn "Padre::DB illegally loaded in background thread"; } } # Force newer ORLite and SQLite for performance improvements use DBD::SQLite 1.35 (); use ORLite 1.51 (); # Remove the trailing -DEBUG to get debugging info on ORLite magic use ORLite::Migrate 1.08 { create => 1, file => Padre::Constant::CONFIG_HOST, timeline => 'Padre::DB::Timeline', tables => ['Modules'], user_version => 13, # Confirm we have the correct schema version array => 1, # Smaller faster array objects xsaccessor => 0, # XS acceleration for the generated code shim => 1, # Overlay classes can fully override methods x_update => 1, # Experimental ->update support }; #, '-DEBUG'; # Free the timeline modules if we used them BEGIN { if ($Padre::DB::Timeline::VERSION) { require Padre::Unload; Padre::Unload::unload('Padre::DB::Timeline'); Padre::Unload::unload('ORLite::Migrate::Timeline'); } } our $VERSION = '1.00'; our $COMPATIBLE = '0.26'; ##################################################################### # Snippets sub find_snipclasses { $_[0]->selectcol_arrayref( "select distinct category from snippets where mimetype = ? order by category", {}, Padre::Current->document->guess_mimetype, ); } sub find_snipnames { my $class = shift; my $sql = "select name from snippets where mimetype = ?"; my @bind = ( Padre::Current->document->guess_mimetype ); if ( $_[0] ) { $sql .= " and category = ?"; push @bind, $_[0]; } $sql .= " order by name"; return $class->selectcol_arrayref( $sql, {}, @bind ); } sub find_snippets { my $class = shift; my $sql = "select id, category, name, snippet from snippets where mimetype = ?"; my @bind = ( Padre::Current->document->guess_mimetype ); if ( $_[0] ) { $sql .= " and category = ?"; push @bind, $_[0]; } $sql .= " order by name"; return $class->selectall_arrayref( $sql, {}, @bind ); } # Vacuum database to keep it small and fast. # This will generally be run every time Padre shuts down, so may # contains bits and pieces of things other than the actual VACUUM. sub vacuum { if (DEBUG) { TRACE("VACUUM ANALYZE database"); my $page_size = Padre::DB->pragma("page_size"); Padre::DB->do('VACUUM'); Padre::DB->do('ANALYZE'); my $diff = Padre::DB->pragma('page_size') - $page_size; TRACE("Page count difference after VACUUM ANALYZE: $diff"); } else { Padre::DB->do('VACUUM'); Padre::DB->do('ANALYZE'); } return; } 1; __END__ # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. =pod =head1 NAME Padre::DB - An ORLite-based ORM Database API =head1 SYNOPSIS TO BE COMPLETED =head1 DESCRIPTION This module implements access to the database that Padre is using to store bits & pieces. It is using C<ORLite> underneath, for an easy table scheme discovery at runtime. See below to learn about how to update the database scheme. =head2 Updating database scheme The database is created at runtime if it does not exist, but we are relying on C<Padre::DB::Migrate>. To summarize C<Padre::DB::Migrate>: =over 4 =item * We provide scripts to update the database from one revision to another. =item * C<Padre::DB> calls C<Padre::DB::Migrate> to apply them in order, starting from the current database revision. =back Therefore, in order to update the database, you need to do the following: =over 4 =item * Create a script F<share/timeline/migrate-$i.pl> with C<$i> the next available integer. This script will look like this: use strict; use Padre::DB::Migrate::Patch; # do some stuff on the base do(<<'END_SQL'); <insert your sql statement here> END_SQL Of course, in case of dropping an existing table, you should make sure that you don't loose data - that is, your script should migrate existing data to the new scheme (unless the whole feature is deprecated, of course). =item * Update the user_revision in C<Padre::DB>'s call to C<Padre::DB::Migrate> to read the new script number (i.e., the C<$i> that you have used to name your script in the F<timeline> directory). use Padre::DB::Migrate 0.01 { [...] user_revision => <your-revision-number>, [...] }; =item * Once this is done, you can try to load Padre's development and check whether the table is updated correctly. Once again, check whether data is correctly migrated from old scheme to new scheme (if applicable). Note that C<Padre::DB::Migrate> is quiet by default. And if your SQL statements are buggy, you will not see anything but the database not being updated. Therefore, to debug what's going on, add the C<-DEBUG> flag to C<Padre::DB::Migrate> call (add it as the B<last> parameter): use Padre::DB::Migrate 0.01 { [...] }, '-DEBUG' =back Congratulations! The database has been updated, and will be updated automatically when users will run the new Padre version... =head2 Accessing and using the database Now that the database has been updated, you can start using it. Each new table will have a C<Padre::DB::YourTable> module created automatically at runtime by C<ORLite>, providing you with the standard methods described below (see METHODS). Note: we prefer using underscore for table names instead of camel case. C<ORLite> is smart enough to convert underscore names to camel case module names. But what if you want to provide some particular methods? For example, one can imagine that if you create a table C<accessed_files> retaining the path and the opening timestamp, you want to create a method C<most_recent()> that will return the last opened file. In that case, that's quite easy, too: =over 4 =item * Create a standard C<Padre::DB::YourTable> module where you will put your method. Note that all standard methods described above will B<still> be available. =item * Don't forget to C<use Padre::DB::YourTable> in C<Padre::DB>, so that other Padre modules will get access to all db tables by just using C<Padre::DB>. =back =head1 METHODS Those methods are automatically created for each of the tables (see above). Note that the modules automatically created provide both class methods and instance methods, where the object instances each represent a table record. =head2 dsn my $string = Padre::DB->dsn; The C<dsn> accessor returns the L<DBI> connection string used to connect to the SQLite database as a string. =head2 dbh my $handle = Padre::DB->dbh; To reliably prevent potential L<SQLite> deadlocks resulting from multiple connections in a single process, each ORLite package will only ever maintain a single connection to the database. During a transaction, this will be the same (cached) database handle. Although in most situations you should not need a direct DBI connection handle, the C<dbh> method provides a method for getting a direct connection in a way that is compatible with connection management in L<ORLite>. Please note that these connections should be short-lived, you should never hold onto a connection beyond your immediate scope. The transaction system in ORLite is specifically designed so that code using the database should never have to know whether or not it is in a transation. Because of this, you should B<never> call the -E<gt>disconnect method on the database handles yourself, as the handle may be that of a currently running transaction. Further, you should do your own transaction management on a handle provided by the <dbh> method. In cases where there are extreme needs, and you B<absolutely> have to violate these connection handling rules, you should create your own completely manual DBI-E<gt>connect call to the database, using the connect string provided by the C<dsn> method. The C<dbh> method returns a L<DBI::db> object, or throws an exception on error. =head2 begin Padre::DB->begin; The C<begin> method indicates the start of a transaction. In the same way that ORLite allows only a single connection, likewise it allows only a single application-wide transaction. No indication is given as to whether you are currently in a transaction or not, all code should be written neutrally so that it works either way or doesn't need to care. Returns true or throws an exception on error. =head2 commit Padre::DB->commit; The C<commit> method commits the current transaction. If called outside of a current transaction, it is accepted and treated as a null operation. Once the commit has been completed, the database connection falls back into auto-commit state. If you wish to immediately start another transaction, you will need to issue a separate -E<gt>begin call. Returns true or throws an exception on error. =head2 rollback The C<rollback> method rolls back the current transaction. If called outside of a current transaction, it is accepted and treated as a null operation. Once the rollback has been completed, the database connection falls back into auto-commit state. If you wish to immediately start another transaction, you will need to issue a separate -E<gt>begin call. If a transaction exists at END-time as the process exits, it will be automatically rolled back. Returns true or throws an exception on error. =head2 do Padre::DB->do( 'insert into table ( foo, bar ) values ( ?, ? )', {}, \$foo_value, \$bar_value, ); The C<do> method is a direct wrapper around the equivalent L<DBI> method, but applied to the appropriate locally-provided connection or transaction. It takes the same parameters and has the same return values and error behaviour. =head2 selectall_arrayref The C<selectall_arrayref> method is a direct wrapper around the equivalent L<DBI> method, but applied to the appropriate locally-provided connection or transaction. It takes the same parameters and has the same return values and error behaviour. =head2 selectall_hashref The C<selectall_hashref> method is a direct wrapper around the equivalent L<DBI> method, but applied to the appropriate locally-provided connection or transaction. It takes the same parameters and has the same return values and error behaviour. =head2 selectcol_arrayref The C<selectcol_arrayref> method is a direct wrapper around the equivalent L<DBI> method, but applied to the appropriate locally-provided connection or transaction. It takes the same parameters and has the same return values and error behaviour. =head2 selectrow_array The C<selectrow_array> method is a direct wrapper around the equivalent L<DBI> method, but applied to the appropriate locally-provided connection or transaction. It takes the same parameters and has the same return values and error behaviour. =head2 selectrow_arrayref The C<selectrow_arrayref> method is a direct wrapper around the equivalent L<DBI> method, but applied to the appropriate locally-provided connection or transaction. It takes the same parameters and has the same return values and error behaviour. =head2 selectrow_hashref The C<selectrow_hashref> method is a direct wrapper around the equivalent L<DBI> method, but applied to the appropriate locally-provided connection or transaction. It takes the same parameters and has the same return values and error behaviour. =head2 prepare The C<prepare> method is a direct wrapper around the equivalent L<DBI> method, but applied to the appropriate locally-provided connection or transaction It takes the same parameters and has the same return values and error behaviour. In general though, you should try to avoid the use of your own prepared statements if possible, although this is only a recommendation and by no means prohibited. =head2 pragma # Get the user_version for the schema my $version = Padre::DB->pragma('user_version'); The C<pragma> method provides a convenient method for fetching a pragma for a database. See the L<SQLite> documentation for more details. =head1 SUPPORT B<Padre::DB> is based on L<ORLite>. Documentation created by L<ORLite::Pod> 0.10. For general support please see the support section of the main project documentation. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/PluginManager.pm���������������������������������������������������������������0000644�0001750�0001750�00000060016�12237327555�016047� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::PluginManager; =pod =head1 NAME Padre::PluginManager - Padre plug-in manager =head1 DESCRIPTION The C<PluginManager> class contains logic for locating and loading Padre plug-ins, as well as providing part of the interface to plug-in writers. =head1 METHODS =cut # API NOTES: # - This class uses english-style verb_noun method naming use 5.010; use strict; use warnings; use Carp (); use File::Path (); use File::Spec (); use File::Basename (); use Scalar::Util (); use Params::Util (); use Class::Inspector (); use Padre::Constant (); use Padre::Current (); use Padre::Util (); use Padre::PluginHandle (); use Padre::DB (); use Padre::Wx (); use Padre::Wx::Menu::Tools (); use Padre::Locale::T; our $VERSION = '1.00'; ##################################################################### # Contants and definitions # Constants limited to this file use constant PADRE_HOOK_RETURN_IGNORE => 1; use constant PADRE_HOOK_RETURN_ERROR => 2; # List if valid Padre hooks: our %PADRE_HOOKS = ( before_delete => PADRE_HOOK_RETURN_ERROR, after_delete => PADRE_HOOK_RETURN_IGNORE, before_save => PADRE_HOOK_RETURN_ERROR, after_save => PADRE_HOOK_RETURN_IGNORE, ); ##################################################################### # Constructor and Accessors =pod =head2 C<new> The constructor returns a new C<Padre::PluginManager> object, but you should normally access it via the main Padre object: my $manager = Padre->ide->plugin_manager; First argument should be a Padre object. =cut sub new { my $class = shift; my $parent = Params::Util::_INSTANCE( shift, 'Padre' ) or Carp::croak("Creation of a Padre::PluginManager without a Padre not possible"); my $self = bless { parent => $parent, plugins => {}, plugin_dir => Padre::Constant::PLUGIN_DIR, plugin_order => [], @_, }, $class; # Initialize empty My Plugin if needed $self->reset_my_plugin(0); return $self; } =pod =head2 C<parent> Stores a reference back to the parent IDE object. =head2 C<plugin_dir> Returns the user plug-in directory (below the Padre configuration directory). This directory was added to the C<@INC> module search path. =head2 C<plugins> Returns a hash (reference) of plug-in names associated with a L<Padre::PluginHandle>. This hash is only populated after C<load_plugins()> was called. =cut use Class::XSAccessor { getters => { parent => 'parent', plugin_dir => 'plugin_dir', plugins => 'plugins', }, }; =head2 current Gets a L<Padre::Current> context for the plugin manager. =cut sub current { Padre::Current->new( ide => $_[0]->{parent} ); } =head2 C<main> A convenience method to get to the main window. =cut sub main { $_[0]->parent->wx->main; } # Get the preferred plugin order. # The order calculation cost is higher than we might like, # so cache the result. sub plugin_order { my $self = shift; unless ( $self->{plugin_order} ) { # Schwartzian transform that sorts the plugins by their # full names, but always puts "My Plug-in" first. $self->{plugin_order} = [ map { $_->[0] } sort { ( $b->[0] eq 'Padre::Plugin::My' ) <=> ( $a->[0] eq 'Padre::Plugin::My' ) or $a->[0] cmp $b->[0] } map { [ $_->class, $_->plugin_name ] } values %{ $self->{plugins} } ]; } return @{ $self->{plugin_order} }; } sub handles { map { $_[0]->{plugins}->{$_} } $_[0]->plugin_order; } ##################################################################### # Bulk Plug-in Operations # # $pluginmgr->relocale; # # update Padre's locale object to handle new plug-in l10n. # sub relocale { my $self = shift; my $locale = $self->main->{locale}; foreach my $handle ( $self->handles ) { # Only process enabled plug-ins next unless $handle->enabled; # Add the plug-in locale dir to search path if ( $handle->plugin_can('plugin_directory_locale') ) { my $dir = $handle->plugin->plugin_directory_locale; if ( defined $dir and -d $dir ) { $locale->AddCatalogLookupPathPrefix($dir); } } # Add the plug-in catalog to the locale my $code = Padre::Locale::rfc4646(); my $prefix = $handle->locale_prefix; $locale->AddCatalog("$prefix-$code"); } return 1; } # # $pluginmgr->reset_my_plugin( $overwrite ); # # reset the my plug-in if needed. if $overwrite is set, remove it first. # sub reset_my_plugin { my $self = shift; my $overwrite = shift; # Do not overwrite it unless stated so. my $dst = File::Spec->catfile( Padre::Constant::PLUGIN_LIB, 'My.pm' ); if ( -e $dst and not $overwrite ) { return; } # Find the My Plug-in my $src = File::Spec->catfile( File::Basename::dirname( $INC{'Padre/Config.pm'} ), 'Plugin', 'My.pm', ); unless ( -e $src ) { Carp::croak("Could not find the original My plug-in"); } # Copy the My Plug-in unlink $dst; require File::Copy; unless ( File::Copy::copy( $src, $dst ) ) { Carp::croak("Could not copy the My plug-in ($src) to $dst: $!"); } chmod( 0644, $dst ); } # Disable (but don't unload) all plug-ins when Padre exits. # Save the plug-in enable/disable states for the next start-up. sub shutdown { my $self = shift; my $lock = $self->main->lock('DB'); foreach my $handle ( $self->handles ) { if ( $handle->enabled ) { $handle->update( enabled => 1 ); $self->plugin_disable($handle); } elsif ( $handle->disabled ) { $handle->update( enabled => 0 ); } } # Remove the circular reference between the main application and # the plugin manager to complete the destruction. # This breaks encapsulation a bit, but will do for now. delete $self->{parent}->{plugin_manager}; delete $self->{parent}; return 1; } =pod =head2 C<load_plugins> Scans for new plug-ins in the user plug-in directory, in C<@INC>, and in F<.par> files in the user plug-in directory. Loads any given module only once, i.e. does not refresh if the plug-in has changed while Padre was running. =cut sub load_plugins { my $self = shift; my $lock = $self->main->lock( 'DB', 'refresh_menu_plugins' ); # Put the plug-in directory first in the load order my $plugin_dir = $self->plugin_dir; unless ( grep { $_ eq $plugin_dir } @INC ) { unshift @INC, $plugin_dir; } # Attempt to load all plug-ins in the Padre::Plugin::* namespace my %seen = (); foreach my $inc (@INC) { my $dir = File::Spec->catdir( $inc, 'Padre', 'Plugin' ); next unless -d $dir; local *DIR; opendir( DIR, $dir ) or die("opendir($dir): $!"); my @files = readdir(DIR) or die("readdir($dir): $!"); closedir(DIR) or die("closedir($dir): $!"); foreach (@files) { next unless s/\.pm$//; my $module = "Padre::Plugin::$_"; next if $seen{$module}++; # Specifically ignore the redundant "Perl 5 Plug-in" next if $module eq 'Padre::Plugin::Perl5'; $self->_load_plugin($module); } } # Attempt to load all plug-ins in the Acme::Padre::* namespace # TO DO: Put this code behind some kind of future security option, # once we have one. foreach my $inc (@INC) { my $dir = File::Spec->catdir( $inc, 'Acme', 'Padre' ); next unless -d $dir; local *DIR; opendir( DIR, $dir ) or die("opendir($dir): $!"); my @files = readdir(DIR) or die("readdir($dir): $!"); closedir(DIR) or die("closedir($dir): $!"); foreach (@files) { next unless s/\.pm$//; my $module = "Acme::Padre::$_"; next if $seen{$module}++; $self->_load_plugin($module); } } return; } =pod =head2 C<reload_plugins> For all registered plug-ins, unload them if they were loaded and then reload them. =cut sub reload_plugins { my $self = shift; my $lock = $self->main->lock( 'UPDATE', 'DB', 'refresh_menu_plugins' ); # Do not use the reload_plugin method since that # refreshes the menu every time. foreach my $module ( $self->plugin_order ) { $self->_unload_plugin($module); $self->_load_plugin($module); $self->enable_editors($module); } return 1; } =pod =head2 C<alert_new> The C<alert_new> method is called by the main window post-initialisation and checks for new plug-ins. If any are found, it presents a message to the user. =cut sub alert_new { my $self = shift; my $plugins = $self->plugins; my @loaded = sort map { $_->plugin_name } grep { $_->loaded } values %$plugins; if ( @loaded and not $ENV{HARNESS_ACTIVE} ) { my $msg = Wx::gettext(<<"END_MSG") . join( "\n", @loaded ); We found several new plug-ins. In order to configure and enable them go to Plug-ins -> Plug-in Manager List of new plug-ins: END_MSG $self->main->message( $msg, Wx::gettext('New plug-ins detected') ); } return 1; } =pod =head2 C<failed> Returns the list of all plugins that the editor attempted to load but failed. Note that after a failed attempt, the plug-in is usually disabled in the configuration and not loaded again when the editor is restarted. =cut sub failed { return map { $_->class } grep { $_->error or $_->incompatible } $_[0]->handles; } ###################################################################### # Loading and Unloading a Plug-in =pod =head2 C<load_plugin> Given a plug-in name such as C<Foo> (the part after C<Padre::Plugin>), load the corresponding module, enable the plug-in and update the Plug-ins menu, etc. =cut sub load_plugin { my $self = shift; my $lock = $self->main->lock( 'DB', 'refresh_menu_plugins' ); $self->_load_plugin(@_); } # This method implements the actual mechanics of loading a plug-in, # without regard to the context it is being called from. # So this method doesn't do stuff like refresh the plug-in menu. # # NOTE: This method looks fairly long, but it's doing # a very specific and controlled series of steps. Splitting this up # would just make the process harder to understand, so please don't. sub _load_plugin { my $self = shift; my $module = shift; my $main = $self->main; my $plugins = $self->plugins; # Shortcut and skip if loaded return if $plugins->{$module}; # Create the plug-in object (and flush the old sort order) my $handle = $plugins->{$module} = Padre::PluginHandle->new( class => $module, ); delete $self->{plugin_order}; # Attempt to load the plug-in SCOPE: { # Suppress warnings while loading plugins local $SIG{__WARN__} = sub () { }; eval "use $module ();"; } if ($@) { $handle->errstr( sprintf( Wx::gettext("%s - Crashed while loading: %s"), $module, $@, ) ); $handle->status('error'); return; } # Is the module versioned? unless ( defined $module->VERSION ) { $handle->errstr( sprintf( Wx::gettext("%s - Plugin is empty or unversioned"), $module, ) ); $handle->status('error'); return; } # Plug-in must be a Padre::Plugin subclass unless ( $module->isa('Padre::Plugin') ) { $handle->errstr( sprintf( Wx::gettext("%s - Not a Padre::Plugin subclass"), $module, ) ); $handle->status('error'); return; } # Is the plugin compatible with this Padre my $compatible = $self->compatible($module); if ($compatible) { $handle->errstr( sprintf( Wx::gettext("%s - Not compatible with Padre %s - %s"), $module, $Padre::PluginManager::VERSION, $compatible, ) ); $handle->status('incompatible'); return; } # Attempt to instantiate the plug-in my $plugin = eval { $module->new( $self->{parent} ); }; if ($@) { $handle->errstr( sprintf( Wx::gettext("%s - Crashed while instantiating: %s"), $module, $@, ) ); $handle->status('error'); return; } unless ( Params::Util::_INSTANCE( $plugin, 'Padre::Plugin' ) ) { $handle->errstr( sprintf( Wx::gettext("%s - Failed to instantiate plug-in"), $module, ) ); $handle->status('error'); return; } # Plug-in is now loaded $handle->{plugin} = $plugin; $handle->status('loaded'); # Return unless we will enable the plugin unless ( $handle->db->enabled ) { $handle->status('disabled'); return; } # Add a new directory for locale to search translation catalogs. if ( $handle->plugin_can('plugin_directory_locale') ) { my $dir = $plugin->plugin_directory_locale; if ( defined $dir and -d $dir ) { my $locale = $main->{locale}; $locale->AddCatalogLookupPathPrefix($dir); } } # FINALLY we can enable the plug-in $self->plugin_enable($handle); return 1; } sub compatible { my $self = shift; my $plugin = shift; # What interfaces does the plugin need unless ( $plugin->can('padre_interfaces') ) { return "$plugin does not declare Padre interface requirements"; } my @needs = $plugin->padre_interfaces; while (@needs) { my $module = shift @needs; my $need = shift @needs; # We take two different approaches to the capture of the # version and compatibility values depending on whether # the module has been loaded or not. my $version; my $compat; if ( Class::Inspector->loaded($module) ) { no strict 'refs'; $version = ${"${module}::VERSION"} || 0; $compat = ${"${module}::COMPATIBLE"} || 0; } else { # Find the unloaded file my $file = Class::Inspector->resolved_filename($module); unless ( defined $file and length $file ) { return "$module is not installed or undetectable"; } # Scan the unloaded file ala EU:MakeMaker $version = Padre::Util::parse_variable( $file, 'VERSION' ); $compat = Padre::Util::parse_variable( $file, 'COMPATIBLE' ); } # Does the dependency meet the criteria? $version = 0 if $version eq 'undef'; $compat = 0 if $compat eq 'undef'; unless ( $need <= $version ) { return "$module is needed at newer version $need"; } unless ( $need >= $compat ) { return "$module is not back-compatible with $need"; } } return ''; } =pod =head2 C<unload_plugin> Given a plug-in name such as C<Foo> (the part after C<Padre::Plugin>), B<disable> the plug-in, B<unload> the corresponding module, and update the Plug-ins menu, etc. =cut sub unload_plugin { my $self = shift; my $lock = $self->main->lock('refresh_menu_plugins'); $self->_unload_plugin(@_); } # the guts of unload_plugin which don't refresh the menu sub _unload_plugin { my $self = shift; my $handle = $self->handle(shift); my $lock = $self->main->lock('DB'); # Save state and disable if needed if ( $handle->enabled ) { $handle->update( enabled => 1 ); $handle->disable; } else { $handle->update( enabled => 0 ); } # Destruct the plug-in if ( defined $handle->plugin ) { $handle->{plugin} = undef; } # Unload the plug-in class itself $handle->unload; # Finally, remove the handle (and flush the sort order) delete $self->{plugins}->{ $handle->class }; delete $self->{plugin_order}; return 1; } sub plugin_enable { my $self = shift; my $handle = $self->handle(shift) or return; $handle->enable; } sub plugin_disable { my $self = shift; my $handle = $self->handle(shift) or return; $handle->disable; } sub user_enable { my $self = shift; my $handle = $self->handle(shift) or return; $handle->update( enabled => 1 ); $self->plugin_enable($handle); } sub user_disable { my $self = shift; my $handle = $self->handle(shift) or return; $handle->update( enabled => 0 ); $self->plugin_disable($handle); } =pod =head2 C<reload_plugin> Reload a single plug-in whose name (without C<Padre::Plugin::>) is passed in as first argument. =cut sub reload_plugin { my $self = shift; my $handle = shift or return; my $lock = $self->main->lock( 'UPDATE', 'DB', 'refresh_menu_plugins' ); $self->_unload_plugin($handle); $self->_load_plugin($handle) or return; $self->enable_editors($handle) or return; return 1; } # Fire a event on all active plugins sub plugin_event { my $self = shift; my $event = shift; foreach my $handle ( $self->handles ) { next unless $handle->enabled; next unless $handle->plugin_can($event); eval { $handle->plugin->$event(@_); }; if ($@) { $self->_error( $handle, sprintf( Wx::gettext('Plugin error on event %s: %s'), $event, $@, ) ); next; } } return 1; } # Run a plugin hook sub hook { my $self = shift; my $hookname = shift; my @args = @_; my $result = 1; # Default to success if ( ref( $self->{hooks}->{$hookname} ) eq 'ARRAY' ) { for my $hook ( @{ $self->{hooks}->{$hookname} } ) { my @retval = eval { &{ $hook->[1] }( $hook->[0], @args ); }; if ($@) { warn 'Plugin ' . $hook->[0] . ', hook ' . $hookname . ', code ' . $hook->[1] . ' crashed with ' . $@; next; } # Return value handling depends on hook type if ( $PADRE_HOOKS{$hookname} == PADRE_HOOK_RETURN_ERROR ) { next unless defined( $retval[0] ); # Returned undef = no error $self->main->error( $retval[0] || sprintf( Wx::gettext('Plugin %s, hook %s returned an emtpy error message'), $hook->[0], $hookname ) ); $result = 0; } } } return $result; } # Show an error message sub _error { my $self = shift; my $plugin = shift || Wx::gettext('(core)'); my $text = shift || Wx::gettext('Unknown error'); # Report detailed plugin error to console my @callerinfo = caller(0); my @callerinfo1 = caller(1); print STDERR 'Plugin ', $plugin, ' error at ', $callerinfo[1] . ' line ' . $callerinfo[2], ' in ' . $callerinfo[0] . '::' . $callerinfo1[3], ': ' . $text . "\n"; # Report to user $self->main->error( sprintf( Wx::gettext('Plugin %s'), $plugin ) . ': ' . $text ); } # Enable all the plug-ins for a single editor sub editor_enable { my $self = shift; my $editor = shift; return $self->plugin_event( 'editor_enable', $editor, $editor->{Document} ); } sub editor_disable { my $self = shift; my $editor = shift; return $self->plugin_event( 'editor_disable', $editor, $editor->{Document} ); } sub enable_editors_for_all { my $self = shift; foreach my $handle ( $self->handles ) { $self->enable_editors($handle); } return 1; } sub enable_editors { my $self = shift; my $handle = $self->handle(shift) or return; return unless $handle->enabled; return unless $handle->plugin_can('editor_enable'); foreach my $editor ( $self->main->editors ) { local $@; eval { $handle->plugin->editor_enable( $editor, $editor->{Document} ); }; } return 1; } ###################################################################### # Menu Integration # Generate the menu for a plug-in sub get_menu { my $self = shift; my $main = shift; my $handle = $self->handle(shift) or return (); return () unless $handle->enabled; return () unless $handle->plugin_can('menu_plugins'); my @menu = eval { $handle->plugin->menu_plugins($main); }; if ($@) { $handle->{status} = 'error'; $handle->errstr( _T('Error when calling menu for plug-in %s: %s'), $handle->class, $@, ); # TO DO: make sure these error messages show up somewhere or it will drive # crazy anyone trying to write a plug-in return (); } # Plugin provides a single menu item if ( @menu == 1 and Params::Util::_INSTANCE( $menu[0], 'Wx::MenuItem' ) ) { return @menu; } # Plugin provides a full submenu if ( @menu == 2 and defined Params::Util::_STRING( $menu[0] ) and Params::Util::_INSTANCE( $menu[1], 'Wx::Menu' ) ) { return ( -1, @menu ); } # Unrecognised or unsupported menu type return (); } =pod =head2 C<reload_current_plugin> When developing a plug-in one usually edits the files belonging to the plug-in (The C<Padre::Plugin::Wonder> itself or C<Padre::Documents::Wonder> located in the same project as the plug-in itself. This call and the appropriate menu option should be able to load (or reload) that plug-in. =cut # TODO: Move this into the developer plugin, nobody needs this unless they # are actively working on a Padre plugin. sub reload_current_plugin { my $self = shift; my $current = $self->current; my $main = $current->main; my $filename = $current->filename; my $project = $current->project; # Do we have what we need? unless ($filename) { return $main->error( Wx::gettext('No filename') ); } unless ($project) { return $main->error( Wx::gettext('Could not locate project directory.') ); } # TO DO shall we relax the assumption of a lib subdir? my $root = $project->root; $root = File::Spec->catdir( $root, 'lib' ); local @INC = ( $root, grep { $_ ne $root } @INC ); my ($plugin_filename) = glob File::Spec->catdir( $root, 'Padre', 'Plugin', '*.pm' ); # Load plug-in my $plugin = 'Padre::Plugin::' . File::Basename::basename($plugin_filename); $plugin =~ s/\.pm$//; my $plugins = $self->plugins; if ( $plugins->{$plugin} ) { $self->reload_plugin($plugin); } else { $self->load_plugin($plugin); if ( $self->plugins->{$plugin}->{status} eq 'error' ) { $main->error( sprintf( Wx::gettext("Failed to load the plug-in '%s'\n%s"), $plugin, $self->plugins->{$plugin}->errstr ) ); return; } } return; } =pod =head2 C<on_context_menu> Called by C<Padre::Wx::Editor> when a context menu is about to be displayed. The method calls the context menu hooks in all plug-ins that have one for plug-in specific manipulation of the context menu. =cut sub on_context_menu { my $self = shift; foreach my $handle ( $self->handles ) { next unless $handle->can_context; # commeted out, as it kills padre, only used in p-p-Git, see #1448 & #1449 # foreach my $handle ( $self->handles ) { $handle->plugin->event_on_context_menu(@_); # } } return (); } # TO DO: document this. # TO DO: make it also reload the file? sub test_a_plugin { my $self = shift; my $main = $self->main; my $config = $self->parent->config; my $plugins = $self->plugins; my $last_filename = $main->current->filename; my $default_dir = ''; if ($last_filename) { $default_dir = File::Basename::dirname($last_filename); } my $dialog = Wx::FileDialog->new( $main, Wx::gettext('Open file'), $default_dir, '', '*.*', Wx::FD_OPEN, ); unless (Padre::Constant::WIN32) { $dialog->SetWildcard("*"); } if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my $filename = $dialog->GetFilename; $default_dir = $dialog->GetDirectory; # Save into plug-in for next time my $file = File::Spec->catfile( $default_dir, $filename ); # Last catfile's parameter is to ensure trailing slash my $plugin_folder_name = qr/Padre[\\\/]Plugin[\\\/]/; ( $default_dir, $filename ) = split( $plugin_folder_name, $file, 2 ); unless ($filename) { Wx::MessageBox( sprintf( Wx::gettext("Plug-in must have '%s' as base directory"), $plugin_folder_name ), 'Error loading plug-in', Wx::OK, $main ); return; } $filename =~ s/\.pm$//; # Remove last .pm $filename =~ s/[\\\/]/\:\:/; unless ( $INC[0] eq $default_dir ) { unshift @INC, $default_dir; } # Unload any previously existant plug-in with the same name if ( $plugins->{$filename} ) { $self->unload_plugin($filename); delete $plugins->{$filename}; } # Load the selected plug-in $self->load_plugin($filename); if ( $self->plugins->{$filename}->{status} eq 'error' ) { $main->error( sprintf( Wx::gettext("Failed to load the plug-in '%s'\n%s"), $filename, $self->plugins->{$filename}->errstr ) ); return; } return; } ###################################################################### # Support Functions sub handle { my $self = shift; my $it = shift; if ( Params::Util::_INSTANCE( $it, 'Padre::PluginHandle' ) ) { my $current = $self->{plugins}->{ $it->class }; unless ( defined $current ) { Carp::croak("Unknown plug-in '$it' provided to PluginManager"); } unless ( Scalar::Util::refaddr($it) == Scalar::Util::refaddr($current) ) { Carp::croak("Duplicate plug-in '$it' provided to PluginManager"); } return $it; } # Convert from class to name if needed if ( defined Params::Util::_CLASS($it) ) { unless ( defined $self->{plugins}->{$it} ) { Carp::croak("Plug-in '$it' does not exist in PluginManager"); } return $self->{plugins}->{$it}; } Carp::croak("Missing or invalid plug-in provided to Padre::PluginManager"); } 1; =pod =head1 SEE ALSO L<Padre>, L<Padre::Config> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/File/��������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�013624� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/File/FTP.pm��������������������������������������������������������������������0000644�0001750�0001750�00000017412�12237327555�014630� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::File::FTP; use 5.008; use strict; use warnings; use File::Temp (); use Padre::File (); use Padre::Current (); our $VERSION = '1.00'; our @ISA = 'Padre::File'; my %connection_cache; use Class::XSAccessor { false => [ 'can_run', ], }; sub new { my $class = shift; my $url = shift; # Create myself my $self = bless { filename => $url, }, $class; # Using the config is optional, tests and other usages should run without my $config = Padre::Current->config; if ( defined($config) ) { $self->{_timeout} = $config->file_ftp_timeout; $self->{_passive} = $config->file_ftp_passive; } else { # Use defaults if we have no config $self->{_timeout} = 60; $self->{_passive} = 1; } # Don't add a new overall-dependency to Padre: $self->_info( Wx::gettext('Looking for Net::FTP...') ); eval { require Net::FTP; }; if ($@) { $self->{error} = 'Net::FTP is not installed, Padre::File::FTP currently depends on it.'; return $self; } ##### START URL parsing ##### ##### NO REGEX's below this line (except the parser)! ##### # TO DO: Improve URL parsing if ( $url !~ /ftp\:\/?\/?((.+?)(\:(.+?))?\@)?([a-z0-9\-\.]+)(\:(\d+))?(\/.+)$/i ) { # URL parsing failed # TO DO: Warning should go to a user popup not to the text console $self->{error} = 'Unable to parse ' . $url; return $self; } # Login data if ( defined($2) ) { $self->{_user} = $2; $self->{_pass} = $4 if defined($4); } else { $self->{_user} = 'ftp'; $self->{_pass} = 'padre_user@devnull.perlide.org'; } # Host & port $self->{_host} = $5; $self->{_port} = $7 || 21; # Path & filename $self->{_file} = $8; ##### END URL parsing, regex is allowed again ##### $self->{protocol} = 'ftp'; # Should not be overridden $self->{_file_temp} = File::Temp->new( UNLINK => 1 ); $self->{_tmpfile} = $self->{_file_temp}->filename; return $self; } sub _ftp { my $self = shift; my $cache_key = join( "\x00", $self->{_host}, $self->{_port}, $self->{_user} ); # NOOP is used to check if the connection is alive, the server will return # 200 if the command is successful if ( defined( $connection_cache{$cache_key} ) ) { if ( ( $self->{_last_noop} || 0 ) == time ) { return $connection_cache{$cache_key}; } elsif ( $self->{_no_noop} ) { $self->{_last_noop} = time; # NOOP is not supported return $connection_cache{$cache_key} if $connection_cache{$cache_key}->quot('PWD'); } else { $self->{_last_noop} = time; # NOOP is supported return $connection_cache{$cache_key} if $connection_cache{$cache_key}->quot('NOOP') == 2; } } # Create FTP object and connection $self->_info( sprintf( Wx::gettext('Connecting to FTP server %s...'), $self->{_host} . ':' . $self->{_port} ) ); my $ftp = Net::FTP->new( Host => $self->{_host}, Port => $self->{_port}, exists $self->{_timeout} ? ( Timeout => $self->{_timeout} ) : (), exists $self->{_passive} ? ( Passive => $self->{_passive} ) : (), # Debug => 3, # Enable for FTP-debugging to STDERR ); if ( !defined($ftp) ) { $self->{error} = sprintf( Wx::gettext('Error connecting to %s:%s: %s'), $self->{_host}, $self->{_port}, $@ ); return; } if ( !defined( $self->{_pass} ) ) { $self->{_pass} = Padre::Current->main->password( sprintf( Wx::gettext("Password for user '%s' at %s:"), $self->{_user}, $self->{_host}, ), Wx::gettext('FTP Password'), ) || ''; # Use empty password (not undef) if nothing was entered # TODO: offer an option to store the password } # Log into the FTP server $self->_info( sprintf( Wx::gettext('Logging into FTP server as %s...'), $self->{_user} ) ); if ( !$ftp->login( $self->{_user}, $self->{_pass} ) ) { $self->{error} = sprintf( Wx::gettext('Error logging in on %s:%s: %s'), $self->{_host}, $self->{_port}, defined $@ ? $@ : Wx::gettext('Unknown error') ); return; } $self->{_no_noop} = 1 unless $ftp->quot('NOOP') == 2; $ftp->binary; $connection_cache{$cache_key} = $ftp; $self->_info( Wx::gettext('Connection to FTP server successful.') ); $self->{_last_noop} = time; return $ftp; } sub clone { my $origin = shift; my $url = shift; # Create myself my $self = bless { filename => $url }, ref($origin); # Copy the common values for ( '_timeout', '_passive', '_user', '_pass', '_port', '_host' ) { $self->{$_} = $origin->{$_}; } ##### START URL parsing ##### ##### NO REGEX's below this line (except the parser)! ##### # TO DO: Improve URL parsing if ( $url !~ /ftp\:\/?\/?((.+?)(\:(.+?))?\@)?([a-z0-9\-\.]+)(\:(\d+))?(\/.+)$/i ) { # URL parsing failed # TO DO: Warning should go to a user popup not to the text console $self->{error} = sprintf( Wx::gettext('Unable to parse %s'), $url ); return $self; } # Path & filename $self->{_file} = $8; ##### END URL parsing, regex is allowed again ##### $self->{protocol} = 'ftp'; # Should not be overridden $self->{_file_temp} = File::Temp->new( UNLINK => 1 ); $self->{_tmpfile} = $self->{_file_temp}->filename; return $self; } sub size { my $self = shift; return if !defined( $self->_ftp ); return $self->_ftp->size( $self->{_file} ); } sub _todo_mode { my $self = shift; return 33024; # Currently fixed: read-only textfile } sub mtime { my $self = shift; # The file-changed-on-disk - function requests this frequently: if ( defined( $self->{_cached_mtime_time} ) and ( $self->{_cached_mtime_time} > ( time - 60 ) ) ) { return $self->{_cached_mtime_value}; } $self->{_cached_mtime_value} = $self->_ftp->mdtm( $self->{_file} ); $self->{_cached_mtime_time} = time; return $self->{_cached_mtime_value}; } sub browse_mtime { my $self = shift; my $filename = shift; return $self->_ftp->mdtm($filename); } sub exists { my $self = shift; my $ftp = $self->_ftp; return if !defined $ftp; # Cache basename value my $basename = $self->basename; for ( $ftp->ls( $self->{_file} ) ) { return 1 if $_ eq $self->{_file}; return 1 if $_ eq $basename; } # Fallback if ->ls didn't help. A file heaving a size should exist. return 1 if $self->size; return (); } sub basename { my $self = shift; my $name = $self->{_file}; $name =~ s/^.*\///; return $name; } # This method should return the dirname to be used inside Padre, not the one # used on the FTP-server. sub dirname { my $self = shift; my $dir = $self->{filename}; $dir =~ s/\/[^\/]*$//; return $dir; } sub servername { my $self = shift; # Don't explicit return ftp default port return $self->{_host} if $self->{_port} == 21; return $self->{_host} . ':' . $self->{_port}; } sub read { my $self = shift; return if !defined( $self->_ftp ); $self->_info( Wx::gettext('Reading file from FTP server...') ); # TO DO: Better error handling $self->_ftp->get( $self->{_file}, $self->{_tmpfile} ) or $self->{error} = $@; open my $tmpfh, '<', $self->{_tmpfile}; my $rv = join( '', <$tmpfh> ); close $tmpfh; return $rv; } sub readonly { # TO DO: Check file access return (); } sub write { my $self = shift; my $content = shift; my $encode = shift || ''; # undef encode = default, but undef will trigger a warning return unless defined $self->_ftp; $self->_info( Wx::gettext('Writing file to FTP server...') ); if ( open my $fh, ">$encode", $self->{_tmpfile} ) { print {$fh} $content; close $fh; # TO DO: Better error handling $self->_ftp->put( $self->{_tmpfile}, $self->{_file} ) or warn $@; return 1; } $self->{error} = $!; return (); } ############################################################################### ### Internal FTP helper functions sub _ftp_dirname { my $self = shift; my $dir = $self->{_file}; $dir =~ s/\/[^\/]*$//; return $dir; } sub can_clone { return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/File/HTTP.pm�������������������������������������������������������������������0000644�0001750�0001750�00000010241�12237327555�014747� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::File::HTTP; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::File (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::File'; my $WRITE_WARNING_DONE = 0; sub new { my $class = shift; # Don't add a new overall-dependency to Padre: eval { require LWP::UserAgent; }; if ($@) { # TO DO: This should be an error popup to the user, not a shell window warning warn 'LWP::UserAgent is not installed, Padre::File::HTTP currently depends on it.'; return; } my $self = bless { filename => $_[0], UA => LWP::UserAgent->new }, $class; # Using the config is optional, tests and other usages should run without my $config = eval { return Padre->ide->config; }; if ( defined($config) ) { $self->{_timeout} = $config->file_http_timeout; } else { # Use defaults if we have no config $self->{_timeout} = 30; } $self->{protocol} = 'http'; # Should not be overridden $self->{UA}->timeout( $self->{_timeout} ); $self->{UA}->env_proxy unless Padre::Constant::WIN32; return $self; } sub _request { my $self = shift; my $method = shift || 'GET'; my $URL = shift || $self->{filename}; my $content = shift; TRACE( sprintf( Wx::gettext('Sending HTTP request %s...'), $URL ) ) if DEBUG; my $HTTP_req = HTTP::Request->new( $method, $URL, undef, $content ); my $result = $self->{UA}->request($HTTP_req); if ( $result->is_success ) { if (wantarray) { return $result->content, $result; } else { return $result->content; } } else { if (wantarray) { return ( undef, $result ); } else { return; } } } sub can_run { return (); } sub size { my $self = shift; my ( $content, $result ) = $self->_request('HEAD'); return $result->header('Content-Length'); } sub mode { my $self = shift; return 33024; # Currently fixed: read-only textfile } sub mtime { my $self = shift; # The file-changed-on-disk - function requests this frequently: if ( defined( $self->{_cached_mtime_time} ) and ( $self->{_cached_mtime_time} > ( time - 60 ) ) ) { return $self->{_cached_mtime_value}; } require HTTP::Date; # Part of LWP which is required for this module but not for Padre my ( $content, $result ) = $self->_request('HEAD'); $self->{_cached_mtime_value} = HTTP::Date::str2time( $result->header('Last-Modified') ); $self->{_cached_mtime_time} = time; return $self->{_cached_mtime_value}; } sub exists { my $self = shift; my ( $content, $result ) = $self->_request('HEAD'); return 1 if $result->code == 200; return (); } sub basename { my $self = shift; # Cut the protocol and hostname part or fail if this is no expected syntax: $self->{filename} =~ /https?\:\/\/.+?\/(.+)/i or return 'index.html'; my $basename = $1; # Cut any arguments and anchor-parts $basename =~ s/[\#\?].+$//; # Cut the path including the last / $basename =~ s/^.+\///; # Return a HTTP default in case the URL was http://www.google.de/ return $basename || 'index.html'; } sub dirname { my $self = shift; # Cut the protocol and hostname part or fail if this is no expected syntax: $self->{filename} =~ /^(https?\:\/\/.+?\/)[^\/\#\?]+?([\#\?].*)?$/i or return $self->{filename}; return $1; } sub servername { my $self = shift; # Cut the protocol and hostname part or fail if this is no expected syntax: $self->{filename} =~ /^https?\:\/\/(.+?)\/[^\/\#\?]+?([\#\?].*)?$/i or return undef; return $1; } sub read { my $self = shift; return scalar( $self->_request ); } sub readonly { return 1; } sub write { my $self = shift; my $content = shift; my $encode = shift || ''; # undef encode = default, but undef will trigger a warning if ( !$WRITE_WARNING_DONE ) { Padre::Current->main->error( Wx::gettext( "You are going to write a file using HTTP PUT.\n" . "This is highly experimental and not supported by most servers." ) ); $WRITE_WARNING_DONE = 1; } ( $content, my $result ) = $self->_request( 'PUT', undef, $content ); return 1 if $result->code == 200 or $result->code == 201; return 0; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/File/Local.pm������������������������������������������������������������������0000644�0001750�0001750�00000010761�12237327555�015231� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::File::Local; use 5.008; use strict; use warnings; use File::Basename (); use File::Spec (); use Padre::Constant (); use Padre::File (); our $VERSION = '1.00'; our @ISA = 'Padre::File'; sub _reformat_filename { my $self = shift; if (Padre::Constant::WIN32) { # Fixing the case of the filename on Win32. require Win32; $self->{filename} = Win32::GetLongPathName( $self->{filename} ) || $self->{filename}; } # Convert the filename to correct format. On Windows C:\dir\file.pl and C:/dir/file.pl are the same # file but have different names. my $New_Filename = File::Spec->catfile( # Handle UNC paths on win32 Padre::Constant::WIN32 and $self->{filename} =~ m{^\\\\} ? File::Spec->splitpath( File::Basename::dirname( $self->{filename} ) ) : File::Spec->splitdir( File::Basename::dirname( $self->{filename} ) ), File::Basename::basename( $self->{filename} ) ); if ( defined($New_Filename) and ( length($New_Filename) > 0 ) ) { $self->{filename} = $New_Filename; } } sub new { my $class = shift; my $self = bless { filename => $_[0] }, $class; $self->{protocol} = 'local'; # Should not be overridden $self->{filename} = File::Spec->rel2abs( $self->{filename} ) unless File::Spec->file_name_is_absolute( $self->{filename} ); $self->_reformat_filename; return $self; } sub can_clone { # Local files don't have connections, no need to clone objects return 0; } sub can_run { return 1; } sub can_delete { my $self = shift; # Can't delete readonly files return $self->readonly ? 0 : 1; } sub stat { my $self = shift; return CORE::stat( $self->{filename} ); } sub size { my $self = shift; return -s $self->{filename} || 0; } sub dev { my $self = shift; return ( CORE::stat( $self->{filename} ) )[0]; } sub inode { my $self = shift; return ( CORE::stat( $self->{filename} ) )[0]; } sub mode { my $self = shift; return ( CORE::stat( $self->{filename} ) )[2]; } sub nlink { my $self = shift; return ( CORE::stat( $self->{filename} ) )[3]; } sub uid { my $self = shift; return ( CORE::stat( $self->{filename} ) )[4]; } sub gid { my $self = shift; return ( CORE::stat( $self->{filename} ) )[5]; } sub rdev { my $self = shift; return ( CORE::stat( $self->{filename} ) )[6]; } sub atime { my $self = shift; return ( CORE::stat( $self->{filename} ) )[8] || 0; } sub mtime { my $self = shift; return ( CORE::stat( $self->{filename} ) )[9] || 0; } sub ctime { my $self = shift; return ( CORE::stat( $self->{filename} ) )[10] || 0; } sub blksize { my $self = shift; return ( CORE::stat( $self->{filename} ) )[11] || 0; } sub blocks { my $self = shift; return ( CORE::stat( $self->{filename} ) )[12] || 0; } sub exists { my $self = shift; return -e $self->{filename}; } sub read { my $self = shift; # The return value should be the file content, so returning # undef is better than nothing (in this situation) if there # is no filename return if not defined $self->{filename}; if ( open my $fh, '<', $self->{filename} ) { binmode($fh); local $/ = undef; my $buffer = <$fh>; close $fh; return $buffer; } $self->{error} = $!; return; } sub write { my $self = shift; my $content = shift; my $encode = shift || ''; # undef encode = default, but undef will trigger a warning if ( open my $fh, ">$encode", $self->{filename} ) { print {$fh} $content; close $fh; return 1; } $self->{error} = $!; return; } sub basename { my $self = shift; return File::Basename::basename( $self->{filename} ); } sub dirname { my $self = shift; return File::Basename::dirname( $self->{filename} ); } sub splitvdir { my ( $v, $d, $f ) = File::Spec->splitpath( $_[0]->{filename} ); my @d = File::Spec->splitdir($d); pop @d if $d[-1] eq ''; return $v, @d; } sub splitall { my ( $v, $d, $f ) = File::Spec->splitpath( $_[0]->{filename} ); my @d = File::Spec->splitdir($d); pop @d if $d[-1] eq ''; return $v, @d, $f; } sub readonly { my $self = shift; # see #1447 # return 1 if ( !-w $self->{filename} ); return 1 if ( -e $self->{filename} && !-w $self->{filename} ); } sub browse_url_join { my $self = shift; my $server = shift; my $path = shift; my $filename = shift; return File::Spec->catfile( $server, $path, $filename ); } sub delete { my $self = shift; return 1 if unlink $self->{filename}; $self->{error} = $!; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������Padre-1.00/lib/Padre/Locale.pm����������������������������������������������������������������������0000644�0001750�0001750�00000043717�12237327555�014526� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Locale; =pod =head1 NAME Padre::Locale - Locale support for Padre =head1 DESCRIPTION B<Padre::Locale> is a utility library that implements locale and encoding support for the L<Padre> editor, and serves as an integration point between the various identifier systems (Wx identifiers, ISO639, RFC3066, RFC4646) The module implements a collection of public functions that can be called by various parts of the editor to get locale and encoding information. None of the functions in B<Padre::Locale> are exported. Because the need for encoding and locale functionality is very high in a user-facing application like Padre, the resulting quantity of exports would be very very high. Forcing all calls to the functions to be fully referenced assists in reducing the complexity of the Perl symbol table (saving a small amount of memory) and serves to improve maintainability, as there can always be certainty about where a particular function is being called from. =head1 FUNCTIONS TO BE COMPLETED =cut use 5.008; use strict; use warnings; use utf8; # Encoding of this source code use List::Util (); use File::Spec (); # NOTE: Normally, namespace convention is that modules outside of # Padre::Wx should not implement anything using Wx modules. # We make an exception in this case, because we're only using the locale # logic in Wx, which isn't related to widgets anyway. use Padre::Constant (); use Padre::Util (); use Padre::Config (); use Padre::Wx (); use Padre::Locale::T; use Padre::Logger; use constant DEFAULT => 'en-gb'; use constant SHAREDIR => Padre::Util::sharedir('locale'); our $VERSION = '1.00'; # The RFC4646 table is the primary language data table and contains # mappings from a Padre-supported language to all the relevant data # about that language. # According to the RFC all identifiers are case-insensitive, but for # simplicity (for now) we list them all as lower-case. my %RFC4646; # The utf8text could/should be taken from gettext translations of the iso-codes package # file:///usr/share/locale/*/LC_MESSAGES/iso_639.mo # file:///usr/share/xml/iso-codes/iso_639.xml # http://pkg-isocodes.alioth.debian.org/ sub label { my $name = shift; return $RFC4646{$name}->{utf8text} ? $RFC4646{$name}->{utf8text} : $name; } BEGIN { %RFC4646 = ( # The default language for Padre is "United Kingdom English". # This is the most common English dialect, used not only in # the UK, but also other Commonwealth countries such as # Australia, New Zealand, India, and Canada (sort of...) # The following entry for it is heavily commented for # documentation purposes. 'en-gb' => { # REQUIRED: The gettext msgid for the language. gettext => _T('English (United Kingdom)'), # REQUIRED: The native name of the language utf8text => 'English (United Kingdom)', # OPTIONAL: Mapping to ISO 639 language tag. # Used by Padre's first-generation locale support # This should be lowercase. iso639 => 'en', # OPTIONAL: Mapping to the ISO 3166 country code. # This should be uppercase. iso3166 => 'GB', # REQUIRED: The wxWidgets language (integer) identifier. # http://docs.wxwidgets.org/stable/wx_languagecodes.html#languagecodes wxid => Wx::LANGUAGE_ENGLISH_UK, # OPTIONAL: Recommended language fallback sequence. # This is an ordered list of alternative languages # that Padre should try to use if no first-class # support is available for this language. # This is mainly used to allow closest-dialect support. # For example, if full support for "Portugese Portugese" # is not available, we first attempt to use # "Brazillian Portugese" first, before falling back on # "American English" and only then the default. # Entries in the fallback list express intent, and # they do not need to have an entry in %RFC4646. fallback => [], # OPTIONAL: If this language is an official language with # a .po file (except for en-gb of course). supported => 1, }, # Example entry for an language which is not supported directly, # but which Padre is aware of. 'en-au' => { gettext => _T('English (Australia)'), utf8text => 'English (Australia)', iso639 => 'en', iso3166 => 'AU', wxid => Wx::LANGUAGE_ENGLISH_AUSTRALIA, # Even though en-gb is the default language, in this # specific case there is a clearly expressed desire for # this fallback path. # If we are ever forced for technical reasons to move to # using en-us as a default, this group would explicitly # wish to retain the final fallback to en-gb. # NOTE: The en-nz is debatable fallback => [ 'en-nz', 'en-gb' ], }, # The fallback entry when Wx can't determine a language 'x-unknown' => { gettext => _T('Unknown'), utf8text => 'Unknown', iso639 => 'en', # For convenience iso3166 => undef, wxid => Wx::LANGUAGE_UNKNOWN, fallback => [], }, # The official languages are listed sorted by identifier. # NOTE: Please do not populate entries into this list unless # you are a native speaker of a particular language and are # fully aware of any idiosyncracies for that language. 'ar' => { gettext => _T('Arabic'), utf8text => 'عربي', iso639 => 'ar', iso3166 => undef, wxid => Wx::LANGUAGE_ARABIC, fallback => [], supported => 1, }, 'cz' => { gettext => _T('Czech'), utf8text => 'Česky', iso639 => 'cz', iso3166 => undef, wxid => Wx::LANGUAGE_CZECH, fallback => [], supported => 1, }, 'da' => { gettext => _T('Danish'), utf8text => 'Dansk', iso639 => 'da', iso3166 => 'DA', wxid => Wx::LANGUAGE_DANISH, fallback => [ 'en-gb', 'en-us' ], supported => 0, }, 'de' => { gettext => _T('German'), utf8text => 'Deutsch', iso639 => 'de', iso3166 => undef, wxid => Wx::LANGUAGE_GERMAN, fallback => [], supported => 1, }, 'en' => { gettext => _T('English'), utf8text => 'English', iso639 => 'en', iso3166 => undef, wxid => Wx::LANGUAGE_ENGLISH, fallback => [], }, 'en-ca' => { gettext => _T('English (Canada)'), utf8text => 'English (Canada)', iso639 => 'en', iso3166 => undef, wxid => Wx::LANGUAGE_ENGLISH_CANADA, fallback => [ 'en-us', 'en-gb' ], }, 'en-nz' => { gettext => _T('English (New Zealand)'), utf8text => 'English (New Zealand)', iso639 => 'en', iso3166 => 'NZ', wxid => Wx::LANGUAGE_ENGLISH_NEW_ZEALAND, # NOTE: The en-au is debatable fallback => [ 'en-au', 'en-gb' ], }, 'en-us' => { gettext => _T('English (United States)'), utf8text => 'English (United States)', iso639 => 'en', iso3166 => 'US', wxid => Wx::LANGUAGE_ENGLISH_US, fallback => [ 'en-ca', 'en-gb' ], }, 'es-ar' => { gettext => _T('Spanish (Argentina)'), utf8text => 'Español (Argentina)', iso639 => 'sp', iso3166 => 'AR', wxid => Wx::LANGUAGE_SPANISH_ARGENTINA, fallback => [ 'es-es', 'en-us' ], supported => 0, }, 'es-es' => { # Simplify until there's another Spanish # gettext => 'Spanish (Spain)', # utf8text => 'Español (de España)', gettext => _T('Spanish'), utf8text => 'Español', iso639 => 'sp', iso3166 => 'SP', wxid => Wx::LANGUAGE_SPANISH, fallback => [], supported => 1, }, 'fa' => { gettext => _T('Persian (Iran)'), utf8text => 'پارسی (ایران)', iso639 => 'prs', iso3166 => undef, wxid => Wx::LANGUAGE_FARSI, fallback => [], supported => 1 }, 'fr-ca' => { gettext => _T('French (Canada)'), utf8text => 'Français (Canada)', iso639 => 'fr', iso3166 => 'CA', wxid => Wx::LANGUAGE_FRENCH_CANADIAN, fallback => ['fr'], supported => 0, }, 'fr' => { # Simplify until there's another French # gettext => 'French (France)', # utf8text => 'Français (France)', gettext => _T('French'), utf8text => 'Français', iso639 => 'fr', iso3166 => undef, wxid => Wx::LANGUAGE_FRENCH, fallback => [], supported => 1, }, 'he' => { gettext => _T('Hebrew'), utf8text => 'עברית', iso639 => 'he', iso3166 => undef, wxid => Wx::LANGUAGE_HEBREW, fallback => [], supported => 1, }, 'hu' => { gettext => _T('Hungarian'), utf8text => 'Magyar', iso639 => 'hu', iso3166 => undef, wxid => Wx::LANGUAGE_HUNGARIAN, fallback => [], supported => 1, }, 'it-it' => { # Simplify until there's another Italian # gettext => 'Italian (Italy)', # utf8text => 'Italiano (Italy)', gettext => _T('Italian'), utf8text => 'Italiano', iso639 => 'it', iso3166 => 'IT', wxid => Wx::LANGUAGE_ITALIAN, fallback => [], supported => 1, }, 'ja' => { gettext => _T('Japanese'), utf8text => '日本語', iso639 => 'ja', iso3166 => undef, wxid => Wx::LANGUAGE_JAPANESE, fallback => ['en-us'], supported => 1, }, 'ko' => { gettext => _T('Korean'), utf8text => '한국어', iso639 => 'ko', iso3166 => 'KR', wxid => Wx::LANGUAGE_KOREAN, fallback => [], supported => 1, }, 'nl-nl' => { # Simplify until there's another Dutch # gettext => 'Dutch (Netherlands)', # utf8text => 'Nederlands (Nederlands)', gettext => _T('Dutch'), utf8text => 'Nederlands', iso639 => 'nl', iso3166 => 'NL', wxid => Wx::LANGUAGE_DUTCH, fallback => ['nl-be'], supported => 1, }, 'nl-be' => { gettext => _T('Dutch (Belgium)'), utf8text => 'Nederlands (België)', iso639 => 'nl', iso3166 => 'BE', wxid => Wx::LANGUAGE_DUTCH_BELGIAN, fallback => ['nl-nl'], supported => 0, }, 'no' => { gettext => _T('Norwegian'), utf8text => 'Norsk', iso639 => 'no', iso3166 => 'NO', wxid => Wx::LANGUAGE_NORWEGIAN_BOKMAL, fallback => [ 'en-gb', 'en-us' ], supported => 1, }, 'pl' => { gettext => _T('Polish'), utf8text => 'Polski', iso639 => 'pl', iso3166 => 'PL', wxid => Wx::LANGUAGE_POLISH, fallback => [], supported => 1, }, 'pt-br' => { gettext => _T('Portuguese (Brazil)'), utf8text => 'Português (Brasil)', iso639 => 'pt', iso3166 => 'BR', wxid => Wx::LANGUAGE_PORTUGUESE_BRAZILIAN, fallback => ['pt-pt'], supported => 1, }, 'pt-pt' => { gettext => _T('Portuguese (Portugal)'), utf8text => 'Português (Europeu)', iso639 => 'pt', iso3166 => 'PT', wxid => Wx::LANGUAGE_PORTUGUESE, fallback => ['pt-br'], supported => 0, }, 'ru' => { gettext => _T('Russian'), utf8text => 'Русский', iso639 => 'ru', iso3166 => undef, wxid => Wx::LANGUAGE_RUSSIAN, fallback => [], supported => 1, }, 'tr' => { gettext => _T('Turkish'), utf8text => 'Türkçe', iso639 => 'tr', iso3166 => 'TR', wxid => Wx::LANGUAGE_TURKISH, fallback => [], supported => 1, }, 'zh' => { gettext => _T('Chinese'), utf8text => 'Chinese', iso639 => 'zh', iso3166 => undef, wxid => Wx::LANGUAGE_CHINESE, fallback => [ 'zh-tw', 'zh-cn', 'en-us' ], supported => 0, }, 'zh-cn' => { gettext => _T('Chinese (Simplified)'), utf8text => '中文 (简体)', iso639 => 'zh', iso3166 => 'CN', wxid => Wx::LANGUAGE_CHINESE_SIMPLIFIED, fallback => [ 'zh-tw', 'en-us' ], supported => 1, }, 'zh-tw' => { gettext => _T('Chinese (Traditional)'), utf8text => '正體中文 (繁體)', iso639 => 'zh', iso3166 => 'TW', wxid => Wx::LANGUAGE_CHINESE_TRADITIONAL, fallback => [ 'zh-cn', 'en-us' ], supported => 1, }, # RFC4646 supports the interesting idea of comedy languages. # We'll put these at the end :) # Mostly what these do is uncover issues that might arise when # a language is not supported by various older standards. 'x-klingon' => { gettext => _T('Klingon'), utf8text => 'Klingon', # TO DO Fix this at some point iso639 => undef, iso3166 => undef, wxid => undef, fallback => ['en-gb'], # Debatable... :) supported => 0, }, ); # Post-process to find the language that each language # will actually fall back to, rather than prefer to fall back to. foreach my $id ( keys %RFC4646 ) { my $lang = $RFC4646{$id}; $lang->{actual} = List::Util::first { $RFC4646{$_}->{supported}; } ( $id, @{ $lang->{fallback} }, DEFAULT ); } } use constant WX => Wx::Locale::GetSystemLanguage(); use constant system_rfc4646 => List::Util::first { defined $RFC4646{$_}->{wxid} && $RFC4646{$_}->{wxid} == WX; } sort keys %RFC4646; use constant last_resort_rfc4646 => 'en-gb'; ##################################################################### # Locale 2.0 Implementation # Find the rfc4646 to use by default sub rfc4646 { my $config = Padre::Config->read; my $locale = $_[0] || $config->locale; if ( $locale and not $RFC4646{$locale} ) { # Bad or unsupported configuration $locale = undef; } # Try for the system default $locale ||= system_rfc4646; # Use the fallback default $locale ||= DEFAULT; # Return supported language for this language return $RFC4646{$locale}->{actual}; } sub rfc4646_exists { defined $RFC4646{ $_[0] }; } sub iso639 { my $id = rfc4646(); my $iso639 = $RFC4646{$id}{iso639}; } sub system_iso639 { my $system = system_rfc4646(); my $iso639 = $RFC4646{$system}{iso639}; } # Given a rfc4646 identifier, sets the language globally # and returns the relevant Wx::Locale object. sub object { my $langcode = shift; undef $langcode if ref($langcode); my $id = rfc4646($langcode); my $lang = $RFC4646{$id}->{wxid}; my $locale = Wx::Locale->new($lang); $locale->AddCatalogLookupPathPrefix( Padre::Util::sharedir('locale') ); unless ( $locale->IsLoaded($id) ) { my $file = Padre::Util::sharefile( 'locale', $id ) . '.mo'; $locale->AddCatalog($id) if -f $file; } return $locale; } sub menu_view_languages { return map { $_ => Wx::gettext( $RFC4646{$_}->{gettext} ) } grep { $RFC4646{$_}->{supported} } sort keys %RFC4646; } ##################################################################### # Encoding Support sub encoding_system_default { my $encoding; if (Padre::Constant::MAC) { # In mac system Wx::Locale::GetSystemEncodingName() couldn't # return the name of encoding directly. # Use LC_CTYPE to guess system default encoding. require POSIX; my $loc = POSIX::setlocale( POSIX::LC_CTYPE() ); if ( $loc =~ m/^(C|POSIX)/i ) { $encoding = 'ascii'; } elsif ( $loc =~ /\./ ) { my ( $language, $codeset ) = split /\./, $loc; $encoding = $codeset; } elsif ( uc $loc eq 'UTF-8') { $encoding = 'utf-8'; } } elsif (Padre::Constant::WIN32) { # In windows system Wx::Locale::GetSystemEncodingName() returns # like ``windows-1257'' and it matches as ``cp1257'' # refer to src/common/intl.cpp $encoding = Wx::Locale::GetSystemEncodingName(); $encoding =~ s/^windows-/cp/i; } elsif (Padre::Constant::UNIX) { $encoding = Wx::Locale::GetSystemEncodingName(); unless ($encoding) { # this is not a usual case, but... require POSIX; my $loc = POSIX::setlocale( POSIX::LC_CTYPE() ); if ( $loc =~ m/^(C|POSIX)/i ) { $encoding = 'ascii'; } elsif ( $loc =~ /\./ ) { my ( $language, $codeset ) = split /\./, $loc; $encoding = $codeset; } } } else { $encoding = Wx::Locale::GetSystemEncodingName(); } unless ($encoding) { # fail to get system default encoding warn "Could not find system($^O) default encoding. " . "Please check it manually and report your environment to the Padre development team."; return; } TRACE("Encoding system default: ($encoding)") if DEBUG; return $encoding; } sub encoding_from_string { my $content = shift; # Because Encode::Guess is slow and expensive, do an initial fast # regexp scan for the simplest and most common "ascii" encoding. return 'ascii' unless defined $content; return 'ascii' unless $content =~ /[^[:ascii:]]/; # FIX ME # This is a just heuristic approach. Maybe there is a better way. :) # Japanese and Chinese have to be tested. Only Korean is tested. # # If locale of config is one of CJK, then we could guess more correctly. # Any type of locale which is supported by Encode::Guess could be added. # Or, we'll use system default encode setting # If we cannot get system default, then forced it to set 'utf-8' my $default = ''; my @guesses = (); my $encoding = ''; my $language = rfc4646(); if ( $language eq 'ko' ) { # Korean @guesses = qw/utf-8 euc-kr/; } elsif ( $language eq 'ja' ) { # Japan (not yet tested) @guesses = qw/utf-8 iso8859-1 euc-jp shiftjis 7bit-jis/; } elsif ( $language =~ /^zh/ ) { # Chinese (not yet tested) @guesses = qw/utf-8 iso8859-1 euc-cn/; } else { $default ||= encoding_system_default(); @guesses = ($default) if $default; } require Encode::Guess; push @guesses, 'latin1'; my $guess = Encode::Guess::guess_encoding( $content, @guesses ); unless ( defined $guess ) { $guess = ''; # To avoid warnings } TRACE("Encoding guess: ($guess)") if DEBUG; # Wow, nice! if ( ref($guess) and ref($guess) =~ m/^Encode::/ ) { $encoding = $guess->name; # utf-8 is in suggestion } elsif ( $guess =~ m/utf8/ ) { $encoding = 'utf-8'; # Choose from suggestion } elsif ( $guess =~ m/or/ ) { my @suggest_encodings = split /\sor\s/, "$guess"; $encoding = $suggest_encodings[0]; # Use system default } else { $default ||= encoding_system_default(); $encoding = $default; } unless ($encoding) { # Failed to guess encoding from contents warn "Could not find encoding. Defaulting to 'utf-8'. " . "Please check it manually and report to the Padre development team."; $encoding = 'utf-8'; } TRACE("Encoding selected: ($encoding)") if DEBUG; return $encoding; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������Padre-1.00/lib/Padre/SVN.pm�������������������������������������������������������������������������0000644�0001750�0001750�00000004434�12237327555�013766� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::SVN; # Utility functions needed for basic SVN introspection use 5.010; use strict; use warnings; use File::Spec (); our $VERSION = '1.00'; # Find the mime type for a file sub file_mimetype { my $hash = file_props(shift); return $hash->{'svn:mime-type'}; } # Find and parse the properties file sub file_props { my $file = shift; my $base = find_props($file) or return undef; return parse_props($base); } # Find the props-base for a file sub find_props { my $file = shift; my ( $v, $d, $f ) = File::Spec->splitpath($file); my $path = File::Spec->catpath( $v, File::Spec->catdir( $d, '.svn', 'props' ), $f . '.svn-work', ); return $path if -f $path; $path = File::Spec->catpath( $v, File::Spec->catdir( $d, '.svn', 'prop-base' ), $f . '.svn-base', ); return $path if -f $path; return undef; } # Parse a property file sub parse_props { my $file = shift; open( my $fh, '<', $file ) or die "Failed to open '$file'"; # Simple state parser my %hash = (); my $kbytes = 0; my $vbytes = 0; my $key = undef; my $value = undef; while ( my $line = <$fh> ) { if ($vbytes) { my $l = length $line; if ( $l == $vbytes + 1 ) { # Perfect content length chomp($line); $hash{$key} = $value . $line; $vbytes = 0; $key = undef; $value = undef; next; } if ( $l > $vbytes ) { $value .= $line; $vbytes -= $l; next; } die "Found value longer than specified length"; } if ($kbytes) { my $l = length $line; if ( $l == $kbytes + 1 ) { # Perfect content length chomp($line); $key .= $line; $kbytes = 0; next; } if ( $l > $kbytes ) { $key .= $line; $kbytes -= $l; next; } die "Found key longer than specified length"; } if ( defined $key ) { $line =~ /^V\s(\d+)/ or die "Failed to find expected V line"; $vbytes = $1; $value = ''; next; } last if $line =~ /^END/; # We should have a K line indicating key size $line =~ /^K\s(\d+)/ or die "Failed to find expected K line"; $kbytes = $1; $key = ''; } close $fh; return \%hash; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Browser.pm���������������������������������������������������������������������0000644�0001750�0001750�00000015631�12237327555�014744� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Browser; use 5.008; use strict; use warnings; use Carp (); use Scalar::Util (); use Padre::Browser::POD (); our $VERSION = '1.00'; use Class::XSAccessor { getters => { get_providers => 'providers', get_viewers => 'viewers', get_schemes => 'schemes', }, setters => { set_providers => 'providers', set_viewers => 'viewers', set_schemes => 'schemes', }, }; =pod =head1 NAME Padre::Browser -- documentation browser for Padre =head1 DESCRIPTION Provide an interface for retrieving / generating documentation, resolving terms to documentation (search?) and formatting documentation. Allow new packages to be loaded and interrogated for the MIME types they can generate documentation for. Provide similar mechanism for registering new documentation viewers and URI schemes accepted for resolving. B<NOTE:> I think all the method names are wrong. Blast it. =head1 SYNOPSIS # Does perlish things by default via 'Padre::Browser::POD' my $browser = Padre::Browser->new; my $source = Padre::Document->new( filename=>'source/Package.pm' ); my $docs = $browser->docs( $source ); # $docs provided by Browser::POD->generate # should be Padre::Browser::Document , application/x-pod my $output = $browser->browse( $docs ); # $output provided by Browser::POD->render # should be Padre::Document , text/x-html $browser->load_viewer( 'Padre::Browser::PodAdvanced' ); # PodAdvanced->render might add an html TOC in addition to # just pod2html my $new_output = $browser->browse( $docs ); # $new_output now with a table of contents =head1 METHODS =head2 new Boring constructor, pass nothing. Yet. =head2 load_provider Accepts a single class name, will attempt to auto-L<use> the class and interrogate its C<provider_for> method. Any MIME types returned will be associated with the class for dispatch to C<generate>. Additionally, interrogate class for C<accept_schemes> and associate the class with URI schemes for dispatch to C<resolve>. =head2 load_viewer Accepts a single class name, will attempt to auto-L<use> the class and interrogate its C<viewer_for> method. Any MIME types returned will be associated with the class for dispatch to C<render>. =head2 resolve Accepts a URI or scalar =head2 browse =head2 accept =head1 EXTENDING package My::Browser::Doxygen; # URI of doxygen:$string or doxygen://path?query sub accept_schemes { 'doxygen', } sub provider_for { 'text/x-c++src' } sub viewer_for { 'text/x-doxygen', } sub generate { my ($self,$doc) = @_; # $doc will be Padre::Document of any type specified # by ->provider_for # push $doc through doxygen # ... # that was easy :) # You know your own output type, be explicit my $response = Padre::Document->new; $response->{original_content} = $doxygen->output; $response->set_mimetype( 'text/x-doxygen' ); return $response; } sub render { my ($self,$docs) = @_; # $docs will be of any type specified # by ->viewer_for; ## turn $docs into doxygen(y) html document # ... # my $response = Padre::Document->new; $response->{original_content} = $doxy2html->output; $response->set_mimetype( 'text/x-html' ); return $response; } =cut sub new { my ( $class, %args ) = @_; my $self = bless \%args, ref($class) || $class; $self->set_providers( {} ) unless $args{providers}; $self->set_viewers( {} ) unless $args{viewers}; $self->set_schemes( {} ) unless $args{schemes}; # Provides pod from perl, pod: perldoc: schemes $self->load_provider('Padre::Browser::POD'); # Produces html view of POD $self->load_viewer('Padre::Browser::POD'); return $self; } # Load a class, safely and efficiently sub _load_class { my $class = shift; ( my $source = "$class.pm" ) =~ s{::}{/}g; eval { require $source }; } sub load_provider { my ( $self, $class ) = @_; unless ( $class->VERSION ) { _load_class($class) or die "Failed to load $class: $@"; } if ( $class->can('provider_for') ) { $self->register_providers( $_ => $class ) for $class->provider_for; } else { Carp::confess("$class is not a provider for anything."); } if ( $class->can('accept_schemes') ) { $self->register_schemes( $_ => $class ) for $class->accept_schemes; } else { Carp::confess("$class accepts no uri schemes"); } return $self; } sub load_viewer { my ( $self, $class ) = @_; unless ( $class->VERSION ) { _load_class($class) or die("Failed to load $class: $@"); } if ( $class->can('viewer_for') ) { $self->register_viewers( $_ => $class ) for $class->viewer_for; } $self; } sub register_providers { my ( $self, %provides ) = @_; while ( my ( $type, $class ) = each %provides ) { # TO DO - handle collisions, ie multi providers # (Ticket #673) $self->get_providers->{$type} = $class; } $self; } sub register_viewers { my ( $self, %viewers ) = @_; while ( my ( $type, $class ) = each %viewers ) { $self->get_viewers->{$type} = $class; unless ( $class->VERSION ) { _load_class($class) or die("Failed to load $class: $@"); } } $self; } sub register_schemes { my ( $self, %schemes ) = @_; while ( my ( $scheme, $class ) = each %schemes ) { $self->get_schemes->{$scheme} = $class; } $self; } sub provider_for { my ( $self, $type ) = @_; my $p; eval { if ( exists $self->get_providers->{$type} ) { $p = $self->get_providers->{$type}->new; } }; Carp::confess($@) if $@; return $p; } sub accept { my ( $self, $scheme ) = @_; if ( defined $self->get_schemes->{$scheme} ) { return $self->get_schemes->{$scheme}; } return; } sub viewer_for { my ( $self, $type ) = @_; my $v; eval { if ( exists $self->get_viewers->{$type} ) { $v = $self->get_viewers->{$type}->new; } }; Carp::confess($@) if $@; return $v; } sub docs { my ( $self, $doc ) = @_; if ( my $provider = $self->provider_for( $doc->guess_mimetype ) ) { my $docs = $provider->generate($doc); return $docs; } return; } sub resolve { my ( $self, $ref, $hints ) = @_; my @refs; if ( Scalar::Util::blessed($ref) and $ref->isa('URI') ) { return $self->resolve_uri( $ref, $hints ); } # TO DO this doubles up if a provider subscribes to multi # mimetypes . # (Ticket #674) foreach my $class ( values %{ $self->get_providers } ) { my $resp = $class->resolve( $ref, $hints ); push @refs, $resp if $resp; last if $resp; } return $refs[0]; } sub resolve_uri { my ( $self, $uri, $hints ) = @_; my $resolver = $self->accept( $uri->scheme ); return unless $resolver; my $doc = $resolver->resolve( $uri, $hints ); return $doc; } sub browse { my ( $self, $docs ) = @_; if ( my $viewer = $self->viewer_for( $docs->mimetype ) ) { return $viewer->render($docs); } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/SLOC.pm������������������������������������������������������������������������0000644�0001750�0001750�00000014064�12237327555�014060� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::SLOC; # A basic Source Lines of Code counter/accumulator use 5.008; use strict; use warnings; use Params::Util (); use Padre::MIME (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; # Differentiate content between different types my %CONTENT = ( 'application/javascript' => 'code', 'application/x-pasm' => 'code', 'application/x-perl' => 'code', 'application/x-perl6' => 'code', 'application/x-php' => 'code', 'application/x-ruby' => 'code', 'application/x-tcl' => 'code', 'text/x-actionscript' => 'code', 'text/x-adasrc' => 'code', 'text/x-cobol' => 'code', 'text/x-csrc' => 'code', 'text/x-haskell' => 'code', 'text/x-java' => 'code', 'text/x-pascal' => 'code', 'text/x-perlxs' => 'code', 'text/x-python' => 'code', ); ###################################################################### # Constructor sub new { my $class = shift; return bless {}, $class; } ###################################################################### # Statistics Capture sub add { my $self = shift; my $add = shift; foreach my $key ( sort keys %$add ) { next unless $add->{$key}; $self->{$key} ||= 0; $self->{$key} += $add->{$key}; } return 1; } sub add_text { my $self = shift; my $text = shift; my $mime = shift; # Normalise newlines $$text =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; # Detect MIME if not provided $mime ||= Padre::MIME->detect( text => $$text, ); # Get the line count for the file my $count = $self->count_mime( $text, $mime ); # Add the line counts for the scalar $self->add($count); } sub add_file { my $self = shift; my $file = shift; unless ( Params::Util::_INSTANCE( $file, 'Padre::File' ) ) { require Padre::File::Local; $file = Padre::File::Local->new($file); } # Load the file my $text = $file->read; return unless defined $text; # Detect the MIME type my $type = Padre::MIME->detect( file => $file->filename, text => $text, ) or return; # Hand off to the more generic method $self->add_text( \$text, Padre::MIME->find($type) ); } sub add_document { my $self = shift; my $document = shift; my $text = $document->text_get or return; my $mime = $document->mime or return; $self->add_text( \$text, $mime ); } sub add_editor { my $self = shift; my $editor = shift; my $document = $editor->document or return; $self->add_document($document); } ###################################################################### # Statistics Reporting sub total_content { my $self = shift; my $total = 0; foreach my $key ( sort keys %$self ) { my ( $lang, $type ) = split /\s+/, $key; if ( $type eq 'content' ) { $total += $self->{$key}; } } return $total; } sub report_languages { my $self = shift; my %hash = (); foreach my $key ( sort keys %$self ) { my ( $lang, $type ) = split /\s+/, $key; $hash{$lang} ||= 0; $hash{$lang} += $self->{$key}; } return \%hash; } sub report_types { my $self = shift; my %hash = (); foreach my $key ( sort keys %$self ) { my ( $lang, $type ) = split /\s+/, $key; $hash{$type} ||= 0; $hash{$type} += $self->{$key}; } return \%hash; } sub smart_types { my $self = shift; my %hash = (); foreach my $key ( sort keys %$self ) { my ( $lang, $type ) = split /\s+/, $key; next unless $CONTENT{$lang}; if ( $type eq 'content' ) { $type = $CONTENT{$lang}; } $hash{$type} ||= 0; $hash{$type} += $self->{$key}; } return \%hash; } ###################################################################### # SLOC Counters sub count_mime { my $self = shift; my $text = shift; my $mime = shift; # Dispatch to language-specific counting methods if ( $mime->type eq 'application/x-perl' ) { return $self->count_perl5( $text, $mime ); } if ( $mime->type eq 'text/x-pod' ) { return $self->count_perl5( $text, $mime ); } # Fall back to the generic counting methods if ( $mime->comment ) { return $self->count_commented( $text, $mime ); } else { return $self->count_uncommented( $text, $mime ); } } sub count_perl5 { my $self = shift; my $text = shift; my %count = ( 'text/x-pod comment' => 0, 'text/x-pod blank' => 0, 'application/x-perl content' => 0, 'application/x-perl comment' => 0, 'application/x-perl blank' => 0, ); my $content = 1; foreach my $line ( split /\n/, $$text, -1 ) { if ( $line !~ /\S/ ) { if ($content) { $count{'application/x-perl blank'}++; } else { $count{'text/x-pod blank'}++; } } elsif ( $line =~ /^=cut\s*/ ) { $count{'text/x-pod comment'}++; $content = 1; } elsif ($content) { if ( $line =~ /^=\w+/ ) { $count{'text/x-pod comment'}++; $content = 0; } elsif ( $line =~ /^\s*#/ ) { $count{'application/x-perl comment'}++; } else { $count{'application/x-perl content'}++; } } else { $count{'text/x-pod comment'}++; } } return \%count; } # Find SLOC information for languages which have comments sub count_commented { my $self = shift; my $text = shift; my $mime = shift; my $type = $mime->type; my $comment = $mime->comment or return undef; my $matches = $comment->line_match; my %count = ( "$type content" => 0, "$type comment" => 0, "$type blank" => 0, ); foreach my $line ( split /\n/, $$text ) { if ( $line !~ /\S/ ) { $count{"$type blank"}++; } elsif ( $line =~ $matches ) { $count{"$type comment"}++; } else { $count{"$type content"}++; } } return \%count; } # Find SLOC information for languages which do not have comments sub count_uncommented { my $self = shift; my $text = shift; my $mime = shift; my $type = $mime->type; my %count = ( "$type content" => 0, "$type blank" => 0, ); foreach my $line ( split /\n/, $$text ) { if ( $line !~ /\S/ ) { $count{"$type blank"}++; } else { $count{"$type content"}++; } } return \%count; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/QuickFix.pm��������������������������������������������������������������������0000644�0001750�0001750�00000002513�12237327555�015037� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::QuickFix; use 5.008; use strict; use warnings; our $VERSION = '1.00'; # Constructor. # No need to override this sub new { bless {}, $_[0]; } # Returns the quick fix list sub quick_fix_list { my ( $self, $doc, $editor ) = @_; warn "quick_fix_list, You need to override this to do something useful with quick fix"; return (); } 1; __END__ =head1 NAME Padre::QuickFix - Padre Quick Fix Provider API =head1 DESCRIPTION =head2 Quick Fix (Shortcut: C<Ctrl+2>) This opens a dialog that lists different actions that relate to fixing the code at the cursor. It will call B<event_on_quick_fix> method passing a L<Padre::Wx::Editor> object on the current Padre document. Please see the following sample implementation: sub quick_fix_list { my ($self, $editor) = @_; my @items = ( { text => '123...', listener => sub { print "123...\n"; } }, { text => '456...', listener => sub { print "456...\n"; } }, ); return @items; } =cut The B<Padre::QuickFix> class provides a base class, default implementation and API documentation for quick fix provision support in L<Padre>. # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014523� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/�����������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�015425� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/FunctionList.pm��������������������������������������������������0000644�0001750�0001750�00000002400�12237327555�020410� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::FunctionList; use 5.008; use strict; use warnings; use Padre::Task::FunctionList (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::FunctionList'; # TODO: the regex containing func|method should either reuse what # we have in PPIx::EditorTools::Outline or copy the list from there # for now let's leave it as it is and focus on improving the Outline # code and then we'll see if we reuse or copy paste. ###################################################################### # Padre::Task::FunctionList Methods # recognize newline even if encoding is not the platform default (will not work for MacOS classic) my $newline = qr{\cM?\cJ}; our $sub_search_re = qr{ (?: ${newline}__(?:DATA|END)__\b.* | $newline$newline=\w+.*?$newline\s*?$newline=cut\b(?=.*?(?:$newline){1,2}) | (?:^|$newline)\s* (?: (?:sub|func|method|before|after|around|override|augment)\s+(\w+(?:::\w+)*) | \* (\w+(?:::\w+)*) \s*=\s* (?: sub\b | \\\& ) ) ) }sx; sub find { return grep { defined $_ } $_[1] =~ /$sub_search_re/g; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Outline.pm�������������������������������������������������������0000644�0001750�0001750�00000001171�12237327555�017412� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::Outline; use 5.008; use strict; use warnings; use Padre::Task::Outline (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::Outline'; ###################################################################### # Padre::Task::Outline Methods sub find { my $self = shift; my $text = shift; require PPIx::EditorTools::Outline; return PPIx::EditorTools::Outline->new->find( code => $text ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Lexer.pm���������������������������������������������������������0000644�0001750�0001750�00000032721�12237327555�017057� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::Lexer; use 5.008; use strict; use warnings; use PPI::Document (); use PPI::Dumper (); use Text::Balanced (); use Padre::Logger; our $VERSION = '1.00'; sub class_to_color { my $class = shift; my $css = class_to_css($class); my %colors = ( 'keyword' => 4, # dark green 'structure' => 6, 'core' => 1, # red 'pragma' => 7, # purple 'Whitespace' => 0, 'Structure' => 0, 'Number' => 1, 'Float' => 1, 'HereDoc' => 4, 'Data' => 4, 'Operator' => 6, 'Comment' => 2, # it's good, it's green 'Pod' => 2, 'End' => 2, 'Label' => 0, 'Word' => 0, # stay the black 'Quote' => 9, 'Single' => 9, 'Double' => 9, 'Backtick' => 9, 'Interpolate' => 9, 'QuoteLike' => 7, 'Regexp' => 7, 'Words' => 7, 'Readline' => 7, 'Match' => 3, 'Substitute' => 5, 'Transliterate' => 5, 'Separator' => 0, 'Symbol' => 0, 'Prototype' => 0, 'ArrayIndex' => 0, 'Cast' => 0, 'Magic' => 0, 'Octal' => 0, 'Hex' => 0, 'Literal' => 0, 'Version' => 0, 'Command' => 0, ); if ( not defined $colors{$css} ) { warn "No color defined for '$css' or '$class'\n"; } return $colors{$css}; } sub colorize { my $class = shift; TRACE("Lexer colorize called") if DEBUG; my $doc = Padre::Current->document; my $editor = $doc->editor; # start and end position for styling, as sent from Wx::STC # the algorithm used by Wx::STC to determine what needs styling # is not precise enough for our need, but is a good starting point my ( $start_pos, $end_pos ) = @_; $start_pos ||= 0; $end_pos ||= $editor->GetLength; my ($text, # the text that we will send to PPI for parsing $start_line, # number of first line of text to parse and style $end_line, # number of last line of text to parse and style $styling_start_pos, # number of first character to parse and style $styling_end_pos, # number of last character to parse and style $line_count, # number of lines within the document $last_char, # index of the last character in the file ); # convert start and end position to start of first line and end of last line # rather than starting to parse and style from the position sent by Wx::STC, # we will shift the start and end position to the start of the first line and # end of the last line respectively $start_line = $editor->LineFromPosition($start_pos); $end_line = $editor->LineFromPosition($end_pos); $styling_start_pos = $editor->PositionFromLine($start_line); $styling_end_pos = $editor->GetLineEndPosition($end_line); $line_count = $editor->GetLineCount; $last_char = $editor->GetLineEndPosition( $line_count - 1 ); my $inital_text = $editor->GetTextRange( $start_pos, $end_pos ); # basically we let PPI start parsing the text within the start and end # positions we just determined, unless there is a chance that our start # or end position is within some multiline token - a quotelike expression # or POD # this check is not necessary if we are on the first line of text if ( $start_line > 0 ) { # get first char on the preceding line, but skip newline symbols my $previous_char = $styling_start_pos - 1; while ( $editor->GetCharAt($previous_char) == 10 or $editor->GetCharAt($previous_char) == 13 ) { $previous_char--; last if $previous_char <= 1; } $previous_char--; if ( $previous_char > 0 ) { # get the start position of the previous token # NOTE TO SELF: why did I have to decrement $previous_char again? my $previous_style = $editor->GetStyleAt( $previous_char-- ); my $start_of_previous_token = $previous_char; while ( $editor->GetStyleAt($start_of_previous_token) == $previous_style ) { $start_of_previous_token--; last if $start_of_previous_token <= 0; } $start_of_previous_token++; # get the text of the previous token my $prev_token_text = $editor->GetTextRange( $start_of_previous_token, $styling_start_pos - 1 ); my $prev_ppi_doc = PPI::Document->new( \$prev_token_text ); if ($prev_ppi_doc) { # check if the previous token is a quotelike my @tokens = $prev_ppi_doc->tokens; my $prev_token = $tokens[-1]; if ( $prev_token->isa("PPI::Token::Quote") or $prev_token->isa("PPI::Token::QuoteLike") or $prev_token->isa("PPI::Token::Regexp") ) { # check if the quotelike token is complete if ( !Text::Balanced::extract_quotelike( $prev_token->content ) ) { # if the token beore the text we are to parse and style # is an unfinished quotelike expression, include it # in the text to parse and style $styling_start_pos = $start_of_previous_token; } } elsif ( $prev_token->isa("PPI::Token::Pod") ) { # ditto for pod $styling_start_pos = $start_of_previous_token; } } } } # ditto for the token after if ( $styling_end_pos < $last_char ) { my $next_char = $styling_end_pos + 1; while ( $editor->GetCharAt($next_char) == 10 or $editor->GetCharAt($next_char) == 13 ) { $next_char++; last if $next_char >= $last_char; } if ( $next_char < $last_char ) { my $next_style = $editor->GetStyleAt($next_char); if ( $next_style == 9 or $next_style == 2 ) { $styling_end_pos = $last_char; } else { my $end_of_next_token = $next_char; while ( $editor->GetStyleAt($end_of_next_token) == $next_style ) { $end_of_next_token++; last if $end_of_next_token == $last_char; } $end_of_next_token--; my $next_token_text = $editor->GetTextRange( $styling_end_pos + 1, $end_of_next_token ); my $next_ppi_doc = PPI::Document->new( \$next_token_text ); if ($next_ppi_doc) { my @tokens = $next_ppi_doc->tokens; my $next_token = $tokens[0]; if ($next_token and ( $next_token->isa("PPI::Token::Quote") or $next_token->isa("PPI::Token::QuoteLike") or $next_token->isa("PPI::Token::Regexp") or $next_token->isa("PPI::Token::Pod") ) ) { $styling_end_pos = $end_of_next_token; } } } } } # check if we have to style it all if ( $end_pos and $doc->{_is_colorized} ) { $text = $editor->GetTextRange( $styling_start_pos, $styling_end_pos ); clear_style( $styling_start_pos, $styling_end_pos ); } else { do_full_styling(); return; } return unless $text; # now that we have determined the proper starting position, # feed the text to PPI my $ppi_doc = PPI::Document->new( \$text ); if ($ppi_doc) { my @tokens = $ppi_doc->tokens; $ppi_doc->index_locations; my ( @prepared_extra_tokens, @prepared_tokens ); # check to see if the last token is quotelike or pod my $last_token = $tokens[-1]; if ( $last_token->isa("PPI::Token::Quote") or $last_token->isa("PPI::Token::QuoteLike") or $last_token->isa("PPI::Token::Regexp") ) { if ( !Text::Balanced::extract_quotelike( $last_token->content ) ) { # get the position at which this token starts my ( $row, $rowchar, $col ) = @{ $last_token->location }; my $new_start_pos = ( $editor->PositionFromLine( $start_line + $row - 1 ) + $rowchar - 1 ); # get the line at which it ends my $token_end_line = ( $editor->LineFromPosition( $new_start_pos + $last_token->length ) ); # get the next up to 50 lines my $new_end_pos = $editor->GetLineEndPosition( $token_end_line + 50 ); if ( $new_end_pos > $new_start_pos ) { my $extra_text = $editor->GetTextRange( $new_start_pos, $new_end_pos ); clear_style( $new_start_pos, $new_end_pos ); # parse from start of this token my $extra_ppi_doc = PPI::Document->new( \$extra_text ); my $dumper = PPI::Dumper->new($extra_ppi_doc); my @extra_tokens = $extra_ppi_doc->tokens; $extra_ppi_doc->index_locations; @prepared_extra_tokens = prepare_tokens( $new_start_pos, @extra_tokens ); # remove the last token since it is included in the extra tokens pop @tokens; } } } elsif ( $last_token->isa("PPI::Token::Pod") ) { # get the position at which this token starts #my ($row, $rowchar, $col) = @{ $last_token->location }; #my $token_start_line = $start_line+$row-1; #my $new_start_pos = ($editor->PositionFromLine($token_start_line)+ $rowchar-1); # get the line at which it ends #my $token_end_line = ($editor->LineFromPosition($new_start_pos + $last_token->length)); my @prepared_pod_token = prepare_tokens( $styling_start_pos, $last_token ); my $new_start_pos = $prepared_pod_token[0]->{start}; my $token_start_line = $editor->LineFromPosition($new_start_pos); my $token_end_line = $editor->LineFromPosition( $new_start_pos + $prepared_pod_token[0]->{length} ); # if we are in the first line of pod, start searching for the next line; # otherwise start searching from the last line of the pod token my $start_search_for_pod_end = $token_end_line; $start_search_for_pod_end++ if $token_end_line == $token_start_line; my $pod_end = $start_search_for_pod_end; while ( my $pod_last_line = $editor->GetLine($pod_end) ) { last if $pod_last_line =~ /^=cut\s/; $pod_end++; } $pod_end = $last_char if $pod_end > $last_char; my $extra_text = $editor->GetTextRange( $new_start_pos, $editor->GetLineEndPosition($pod_end) ); clear_style( $new_start_pos, $editor->GetLineEndPosition($pod_end) ); # parse from start of this token my $extra_ppi_doc = PPI::Document->new( \$extra_text ); my @extra_tokens = $extra_ppi_doc->tokens; $extra_ppi_doc->index_locations; @prepared_extra_tokens = prepare_tokens( $new_start_pos, $extra_tokens[0] ); pop @tokens; } @prepared_tokens = prepare_tokens( $styling_start_pos, @tokens ); do_styling( @prepared_tokens, @prepared_extra_tokens ); } } sub prepare_tokens { my ( $offset, @tokens ) = @_; my $doc = Padre::Current->document; my $editor = $doc->editor; my @prepared_tokens; my $start_line = $editor->LineFromPosition($offset); my $offset_from_start_line = ( $offset - $editor->PositionFromLine($start_line) ); foreach my $t (@tokens) { my ( $row, $rowchar, $col ) = @{ $t->location }; if ( $row == 1 ) { $rowchar += $offset_from_start_line; } my $start = ( $editor->PositionFromLine( $start_line + $row - 1 ) + $rowchar - 1 ); my $content = $t->content; my $new_lines = ( $content =~ s/\n/\n/gs ); my %token = ( start => $start, length => ( $t->length + $new_lines ), color => class_to_color($t), ); # workarounds for a bug in PPI ? if ( $t->isa('PPI::Token::Comment') and ( $start == 1 or $editor->GetCharAt( $start - 1 ) == 10 or $editor->GetCharAt( $start - 1 ) == 13 ) ) { $token{length}--; } # to color the first # character in the whole document (the sh-bang): if ( $start == 1 ) { $token{start} = 0; } #print "$offset $start $token{length} $token{color} '$t' " . ref($t) . "\n" if $token{start} < 180; push @prepared_tokens, \%token; } return @prepared_tokens; } sub clear_style { my ( $styling_start_pos, $styling_end_pos ) = @_; my $doc = Padre::Current->document; my $editor = $doc->editor; foreach my $i ( 0 .. 31 ) { $editor->StartStyling( $styling_start_pos, $i ); $editor->SetStyling( $styling_end_pos - $styling_start_pos, 0 ); } } sub do_full_styling { my $doc = Padre::Current->document; my $editor = $doc->editor; $editor->remove_color; my $text = $doc->text_get; return unless $text; my $ppi_doc = PPI::Document->new( \$text ); my @tokens = $ppi_doc->tokens; $ppi_doc->index_locations; my @prepared_tokens = prepare_tokens( 1, @tokens ); do_styling(@prepared_tokens); $doc->{_is_colorized} = 1; } sub do_styling { my $doc = Padre::Current->document; my $editor = $doc->editor; foreach my $t (@_) { $editor->StartStyling( $t->{start}, $t->{color} || 0 ); $editor->SetStyling( $t->{length}, $t->{color} || 0 ); } } sub class_to_css { my $Token = shift; if ( $Token->isa('PPI::Token::Word') ) { # There are some words we can be very confident are # being used as keywords unless ( $Token->snext_sibling and $Token->snext_sibling->content eq '=>' ) { if ( $Token->content =~ /^(?:sub|return)$/ ) { return 'keyword'; } elsif ( $Token->content =~ /^(?:undef|shift|defined|bless)$/ ) { return 'core'; } } if ( $Token->previous_sibling and $Token->previous_sibling->content eq '->' ) { if ( $Token->content =~ /^(?:new)$/ ) { return 'core'; } } if ( $Token->parent->isa('PPI::Statement::Include') ) { if ( $Token->content =~ /^(?:use|no)$/ ) { return 'keyword'; } if ( $Token->content eq $Token->parent->pragma ) { return 'pragma'; } } elsif ( $Token->parent->isa('PPI::Statement::Variable') ) { if ( $Token->content =~ /^(?:my|local|our)$/ ) { return 'keyword'; } } elsif ( $Token->parent->isa('PPI::Statement::Compound') ) { if ( $Token->content =~ /^(?:if|else|elsif|unless|for|foreach|while|my)$/ ) { return 'keyword'; } } elsif ( $Token->parent->isa('PPI::Statement::Package') ) { if ( $Token->content eq 'package' ) { return 'keyword'; } } elsif ( $Token->parent->isa('PPI::Statement::Scheduled') ) { return 'keyword'; } } # Normal coloring my $css = ref $Token; $css =~ s/^.+:://; return $css; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Starter.pm�������������������������������������������������������0000644�0001750�0001750�00000013616�12237327555�017426� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::Starter; =pod =head1 NAME Padre::Document::Perl::Starter - Starter module for Perl 5 documents =head1 DESCRIPTION B<Padre::Document::Perl::Starter> provides support for generating Perl 5 documents and projects of various types. =head1 METHODS =cut use 5.010; use strict; use warnings; use Params::Util (); use Padre::Template (); use Padre::Document::Perl::Starter::Style (); our $VERSION = '1.00'; ###################################################################### # Constructor and Accessors =pod =head2 new my $starter = Padre::Document::Perl::Starter->new($main); The C<new> constructor creates a new code generator, taking the main window object as a parameter. =cut sub new { my $class = shift; return bless { main => shift, style => Padre::Document::Perl::Starter::Style->new(@_), }, $class; } =pod =head2 style The C<style> accessor returns the default code style for modules as a L<Padre::Document::Perl::Starter::Style> object. Any style values provided to a specific create method will override these defaults. =cut sub style { $_[0]->{style}; } =pod =head2 main The C<main> accessor returns the main window object. =cut sub main { $_[0]->{main}; } =pod =head2 current The C<current> accessor returns a C<Padre::Current> object for the current context. =cut sub current { $_[0]->{main}->current; } ###################################################################### # Document Starters =pod =head2 create_script $starter->create_script; Create a new blank Perl 5 script, applying the user's style preferences if possible. =cut sub create_script { shift->create('perl5/script_pl.tt', @_); } sub generate_script { shift->generate('perl5/script_pl.tt', @_); } =pod =head2 create_module $starter->create_module( module => $package ); Create a new empty Perl 5 module, applying the user's style preferences if possible. If passed a package name, that module will be created. If no package name is provided, the user will be asked for the name to use. =cut sub create_module { my $self = shift; my %param = @_; my $module = $param{module}; # Ask for a module name if one is not provided unless ( defined Params::Util::_STRING($param{module}) ) { $param{module} = $self->main->prompt( Wx::gettext('Module Name:'), Wx::gettext('New Module'), ); unless ( defined Params::Util::_STRING($param{module}) ) { return; } } $self->create('perl5/module_pm.tt', %param); } sub generate_module { my $self = shift; my %param = @_; # Abort if we don't have a module name unless ( defined Params::Util::_STRING($param{module}) ) { return; } $self->generate('perl5/module_pm.tt', %param); } =pod =head2 create_test $starter->create_test; Create a new empty Perl 5 test, applying the user's style preferences if possible. =cut sub create_test { shift->create('perl5/test_t.tt', @_); } sub generate_test { shift->generate('perl5/test_t.tt', @_); } =pod =head2 create_test_compile $starter->create_text_compile; Create a new empty Perl 5 test for compilation testing of all the code in your project, so that further tests can use your modules as normal without doing any load testing of their own. =cut sub create_text_compile { my $self = shift; my $code = $self->generate_test_compile(@_) or return undef; $self->new_document($code); } sub generate_test_compile { my $self = shift; my %param = @_; # Get the style and module name from the current project if ( Params::Util::_INSTANCE($param{project}, 'Padre::Project::Perl') ) { $param{style} ||= $param{project}; $param{module} ||= $param{project}->module or return undef; } # We must have a module name unless ( Params::Util::_CLASS($param{module}) ) { return undef; } $self->generate( 'perl5/01_compile_t.tt', %param ); } ###################################################################### # Support Methods sub create { my $self = shift; my $code = $self->generate(@_) or return undef; $self->new_document($code); } sub generate { my $self = shift; my $name = shift; my %param = $self->params(@_); my $code = Padre::Template->render($name, %param); $self->tidy($code); } sub params { my $self = shift; my %param = @_; # Inheriting from a project means inheriting from the headline file if ( Params::Util::_INSTANCE($param{style}, 'Padre::Project::Perl') ) { $param{style} = $param{style}->headline_path; } # Inherit style from an existing document if ( Params::Util::_INSTANCE($param{style}, 'Padre::Document::Perl') ) { $param{style} = Padre::Document::Perl::Starter::Style->from_document( $param{style}, $self->{style}, ); } # Inherit style from a file on disk if ( Params::Util::_STRING($param{style}) ) { $param{style} = Padre::Document::Perl::Starter::Style->from_file( $param{style}, $self->{style}, ); } # Apply default style if we have nothing more specific unless ( Params::Util::_INSTANCE($param{style}, 'Padre::Document::Perl::Starter::Style') ) { $param{style} = $self->{style}; } return %param; } sub tidy { my $self = shift; my $code = shift; # Remove multiple blank lines $code =~ s/\n{3,}/\n\n/sg; # Remove spaces between successive use statements to create use blocks $code =~ s/(?<=\n)(use\b\N+)\n+(?=use\b)/$1\n/g; return $code; } sub new_document { $_[0]->main->new_document_from_string( $_[1] => 'application/x-perl' ); } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Autocomplete.pm��������������������������������������������������0000644�0001750�0001750�00000014143�12237327555�020437� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::Autocomplete; use 5.008; use strict; use warnings; use List::Util (); our $VERSION = '1.00'; # Experimental package. The API needs a lot of refactoring # and the whole thing needs a lot of tests sub new { my $class = shift; # Padre has its own defaults for each parameter but this code # might serve other purposes as well my %args = ( minimum_prefix_length => 1, maximum_number_of_choices => 20, minimum_length_of_suggestion => 3, @_ ); my $self = bless \%args, $class; return $self; } # WARNING: This is totally not done, but Gabor made me commit it. # TO DO: # a) complete this list # b) make the path configurable # c) make the whole thing optional and/or pluggable # d) make it not suck # e) make the types of auto-completion configurable # f) remove the old auto-comp code or at least let the user choose to use the new # *or* the old code via configuration # g) hack STC so that we can get more information in the autocomp. window, # h) hack STC so we can start populating the autocompletion choices and continue to do so in the background # i) hack Perl::Tags to be better (including inheritance) # j) add inheritance support # k) figure out how to do method auto-comp. on objects # (Ticket #676) sub run { my $self = shift; my $parser = shift; if ( $self->{prefix} =~ /([\$\@\%\*])(\w+(?:::\w+)*)$/ ) { my $prefix = $2; my $type = $1; if ( defined $parser ) { my $tag = $parser->findTag( $prefix, partial => 1 ); my @words; my %seen; while ( defined($tag) ) { # TO DO check file scope? if ( !defined( $tag->{kind} ) ) { # This happens with some tagfiles which have no kind } elsif ( $tag->{kind} eq 'v' ) { # TO DO potentially don't skip depending on circumstances. if ( not $seen{ $tag->{name} }++ ) { push @words, $tag->{name}; } } $tag = $parser->findNextTag; } return ( length($prefix), @words ); } } # check for hashs elsif ( $self->{prefix} =~ /(\$\w+(?:\-\>)?)\{([\'\"]?)([\$\&]?\w*)$/ ) { my $hashname = $1; my $textmarker = $2; my $keyprefix = $3; my %words; my $text = $self->{pre_text} . ' ' . $self->{post_text}; while ( $text =~ /\Q$hashname\E\{(([\'\"]?)\Q$keyprefix\E.+?\2)\}/g ) { $words{$1} = 1; } return ( length( $textmarker . $keyprefix ), sort { my $a1 = $a; my $b1 = $b; $a1 =~ s/^([\'\"])(.+)\1/$2/; $b1 =~ s/^([\'\"])(.+)\1/$2/; $a1 cmp $b1; } ( keys(%words) ) ); } # check for methods elsif ( $self->{prefix} =~ /(?![\$\@\%\*])(\w+(?:::\w+)*)\s*->\s*(\w*)$/ ) { my $class = $1; my $prefix = $2; $prefix = '' if not defined $prefix; if ( defined $parser ) { my $tag = ( $prefix eq '' ) ? $parser->firstTag : $parser->findTag( $prefix, partial => 1 ); my @words; # TO DO: INHERITANCE! while ( defined($tag) ) { if ( !defined( $tag->{kind} ) ) { # This happens with some tagfiles which have no kind } elsif ( $tag->{kind} eq 's' and defined $tag->{extension}{class} and $tag->{extension}{class} eq $class ) { push @words, $tag->{name}; } $tag = ( $prefix eq '' ) ? $parser->nextTag : $parser->findNextTag; } return ( length($prefix), @words ); } } # check for packages elsif ( $self->{prefix} =~ /(?![\$\@\%\*])(\w+(?:::\w+)*)/ ) { my $prefix = $1; if ( defined $parser ) { my $tag = $parser->findTag( $prefix, partial => 1 ); my @words; my %seen; while ( defined($tag) ) { # TO DO check file scope? if ( !defined( $tag->{kind} ) ) { # This happens with some tagfiles which have no kind } elsif ( $tag->{kind} eq 'p' ) { # TO DO potentially don't skip depending on circumstances. if ( not $seen{ $tag->{name} }++ ) { push @words, $tag->{name}; } } $tag = $parser->findNextTag; } return ( length($prefix), @words ); } } return; } sub auto { my $self = shift; my $nextchar = $self->{nextchar}; my $prefix = $self->{prefix}; $prefix =~ s{^.*?((\w+::)*\w+)$}{$1}; my $suffix = substr $self->{post_text}, 0, List::Util::min( 15, length $self->{post_text} ); $suffix = $1 if $suffix =~ /^(\w*)/; # Cut away any non-word chars if ( defined($nextchar) ) { return if ( length($prefix) + 1 ) < $self->{minimum_prefix_length}; } else { return if length($prefix) < $self->{minimum_prefix_length}; } my $regex; eval { $regex = qr{\b(\Q$prefix\E\w+(?:::\w+)*)\b} }; if ($@) { return ("Cannot build regular expression for '$prefix'."); } my %seen; my @words; push @words, grep { !$seen{$_}++ } reverse( $self->{pre_text} =~ /$regex/g ); push @words, grep { !$seen{$_}++ } ( $self->{post_text} =~ /$regex/g ); if ( @words > $self->{maximum_number_of_choices} ) { @words = @words[ 0 .. ( $self->{maximum_number_of_choices} - 1 ) ]; } # Suggesting the current word as the only solution doesn't help # anything, but your need to close the suggestions window before # you may press ENTER/RETURN. if ( ( $#words == 0 ) and ( $prefix eq $words[0] ) ) { return; } # While typing within a word, the rest of the word shouldn't be # inserted. if ( defined($suffix) ) { for ( 0 .. $#words ) { $words[$_] =~ s/\Q$suffix\E$//; } } # This is the final result if there is no char which hasn't been # saved to the editor buffer until now # return ( length($prefix), @words ) if !defined($nextchar); # Finally cut out all words which do not match the next char # which will be inserted into the editor (by the current event) # and remove all which are too short my @final_words; for (@words) { # Filter out everything which is too short next if length($_) < $self->{minimum_length_of_suggestion}; # Accept everything which has prefix + next char + at least one other char # (check only if any char is pending) next if defined($nextchar) and ( !/^\Q$prefix$nextchar\E./ ); # All checks passed, add to the final list push @final_words, $_; } return ( length($prefix), @final_words ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/QuickFix.pm������������������������������������������������������0000644�0001750�0001750�00000002105�12237327555�017514� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::QuickFix; use 5.008; use strict; use warnings; use PPI (); use Padre::QuickFix (); our $VERSION = '1.00'; our @ISA = 'Padre::QuickFix'; # Returns the quick fix list sub quick_fix_list { my ( $self, $document, $editor ) = @_; my @items = (); my $text = $editor->GetText; my $doc = PPI::Document->new( \$text ); $doc->index_locations; my @fixes = ( 'Padre::Document::Perl::QuickFix::StrictWarnings', 'Padre::Document::Perl::QuickFix::IncludeModule', ); foreach my $fix (@fixes) { (my $source = "$fix.pm") =~ s{::}{/}g; if (eval { require $source }) { push @items, $fix->new->apply( $doc, $document ); } else { warn "failed to load $fix\n"; } } return @items; } 1; __END__ =head1 NAME Padre::Document::Perl::QuickFix - Padre Perl 5 Quick Fix =head1 DESCRIPTION Perl 5 quick fix feature is implemented here # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/PPILexer.pm������������������������������������������������������0000644�0001750�0001750�00000004737�12237327555�017436� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::PPILexer; use 5.008; use strict; use warnings; use Padre::Document (); use Padre::Util (); use Padre::Logger; our $VERSION = '1.00'; sub colorize { TRACE("PPILexer colorize called") if DEBUG; my $self = shift; my $document = Padre::Current->document; my $editor = $document->editor; my $text = $document->text_get or return; # Flush old colouring $editor->remove_color; lexer( $text, sub { put_color( $editor, @_ ) } ); return; } sub get_colors { my %colors = ( keyword => 4, # dark green structure => 6, core => 1, # red pragma => 7, # purple 'Whitespace' => 0, 'Structure' => 0, 'Number' => 1, 'Float' => 1, 'HereDoc' => 4, 'Data' => 4, 'Operator' => 6, 'Comment' => 2, # it's good, it's green 'Pod' => 2, 'End' => 2, 'Label' => 0, 'Word' => 0, # stay the black 'Quote' => 9, 'Single' => 9, 'Double' => 9, 'Backtick' => 9, 'Interpolate' => 9, 'QuoteLike' => 7, 'Regexp' => 7, 'Words' => 7, 'Readline' => 7, 'Match' => 3, 'Substitute' => 5, 'Transliterate' => 5, 'Separator' => 0, 'Symbol' => 0, 'Prototype' => 0, 'ArrayIndex' => 0, 'Cast' => 0, 'Magic' => 0, 'Octal' => 0, 'Hex' => 0, 'Literal' => 0, 'Version' => 0, ); return \%colors; } sub put_color { my ( $editor, $css, $row, $rowchar, $len ) = @_; my $color = get_colors()->{$css}; if ( not defined $color ) { TRACE("Missing definition for '$css'\n") if DEBUG; return; } return if not $color; my $start = $editor->PositionFromLine( $row - 1 ) + $rowchar - 1; $editor->StartStyling( $start, $color ); $editor->SetStyling( $len, $color ); return; } sub lexer { my $text = shift; my $markup = shift; # Parse the file require PPI::Document; my $ppi = PPI::Document->new( \$text ); if ( not defined $ppi ) { if (DEBUG) { TRACE( 'PPI::Document Error %s', PPI::Document->errstr ); TRACE( 'Original text: %s', $text ); } return; } require PPIx::EditorTools::Lexer; PPIx::EditorTools::Lexer->new->lexer( ppi => $ppi, highlighter => $markup, ); return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������Padre-1.00/lib/Padre/Document/Perl/QuickFix/��������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�017150� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/QuickFix/StrictWarnings.pm���������������������������������������0000644�0001750�0001750�00000005433�12237327555�022504� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::QuickFix::StrictWarnings; use 5.008; use strict; use warnings; our $VERSION = '1.00'; # # Constructor. # No need to override this # sub new { my ($class) = @_; # Create myself :) my $self = bless {}, $class; return $self; } # # Returns the quick fix list # sub apply { my ( $self, $doc, $document ) = @_; my @items = (); my $editor = $document->editor; my $text = $editor->GetText; my $current_line_no = $editor->GetCurrentLine; my ( $use_strict_include, $use_warnings_include ); my $includes = $doc->find('PPI::Statement::Include'); if ($includes) { foreach my $include ( @{$includes} ) { next if $include->type eq 'no'; if ( $include->pragma ) { my $pragma = $include->pragma; if ( $pragma eq 'strict' ) { $use_strict_include = $include; } elsif ( $pragma eq 'warnings' ) { $use_warnings_include = $include; } } } } my ( $replace, $col, $row, $len ); if ( $use_strict_include and not $use_warnings_include ) { # insert 'use warnings;' afterwards $replace = "use strict;\nuse warnings;"; $row = $use_strict_include->line_number - 1; $col = $use_strict_include->column_number - 1; $len = length $use_strict_include->content; } elsif ( not $use_strict_include and $use_warnings_include ) { # insert 'use strict';' before $replace = "use strict;\nuse warnings;"; $row = $use_warnings_include->line_number - 1; $col = $use_warnings_include->column_number - 1; $len = length $use_warnings_include->content; } elsif ( not $use_strict_include and not $use_warnings_include ) { # insert 'use strict; use warnings;' at the top my $first = $doc->find_first( sub { return $_[1]->isa('PPI::Statement') or $_[1]->isa('PPI::Structure'); } ); $replace = "use strict;\nuse warnings;\n"; if ($first) { $row = $first->line_number - 1; $col = $first->column_number - 1; $len = 0; } else { $row = $current_line_no; $col = 0; $len = 0; } } if ($replace) { push @items, { text => qq{Fix '$replace'}, listener => sub { my $line_start = $editor->PositionFromLine($row) + $col; my $line_end = $line_start + $len; my $line = $editor->GetTextRange( $line_start, $line_end ); $editor->SetSelection( $line_start, $line_end ); $editor->ReplaceSelection($replace); } }; } return @items; } 1; __END__ =head1 NAME Padre::Document::Perl::QuickFix::StrictWarnings - Check for strict and warnings pragmas =head1 DESCRIPTION This ensures that you have the following in your script: use strict; use warnings; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/QuickFix/IncludeModule.pm����������������������������������������0000644�0001750�0001750�00000004463�12237327555�022256� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::QuickFix::IncludeModule; use 5.008; use strict; use warnings; our $VERSION = '1.00'; # # Constructor. # No need to override this # sub new { my ($class) = @_; # Create myself :) my $self = bless {}, $class; return $self; } # # Returns the quick fix list # sub apply { my ( $self, $doc, $document ) = @_; my @items = (); my $editor = $document->editor; my $text = $editor->GetText; my $current_line_no = $editor->GetCurrentLine; my $includes = $doc->find('PPI::Statement::Include'); if ($includes) { foreach my $include ( @{$includes} ) { next if $include->type eq 'no'; if ( not $include->pragma ) { my $module = $include->module; #deal with '' next if $module eq ''; #makes this Padre::Plugin freindly next if $module =~ /^Padre::/; (my $source = "$module.pm") =~ s{::}{/}; unless (eval { require $source }) { push @items, { text => "Install $module", listener => sub { #XXX- implement Install $module }, }; } my $project_dir = $document->project_dir; if ($project_dir) { my $Build_PL = File::Spec->catfile( $project_dir, 'Build.PL' ); my $Makefile_PL = File::Spec->catfile( $project_dir, 'Makefile.PL' ); if ( -f $Build_PL ) { open my $FILE, '<', $Build_PL; my $content = do { local $/ = <$FILE> }; close $FILE; if ( $content !~ /^\s*requires\s+["']$module["']/ ) { push @items, { text => "Add missing requires '$module' to Build.PL", listener => sub { }, }; } } elsif ( -f $Makefile_PL ) { open my $FILE, '<', $Makefile_PL; my $content = do { local $/ = <$FILE> }; close $FILE; if ( $content !~ /^\s*requires\s+["']$module["']/ ) { push @items, { text => "Add missing requires '$module' to Makefile.PL", listener => sub { }, }; } } } } } } return @items; } 1; __END__ =head1 NAME Padre::Document::Perl::QuickFix::IncludeModule - Check for module inclusions =head1 DESCRIPTION XXX - Please document # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Starter/���������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�017050� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Starter/Style.pm�������������������������������������������������0000644�0001750�0001750�00000004125�12237327555�020521� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::Starter::Style; use 5.011; use strict; use warnings; use Params::Util (); our $VERSION = '1.00'; our $COMPATIBLE = '0.97'; my %DEFAULT = ( bin_perl => '/usr/bin/perl', use_perl => '', use_strict => 1, use_warnings => 1, version_line => '', ); ###################################################################### # Constructors sub new { my $class = shift; my $self = bless { @_ }, $class; return $self; } sub from_file { my $class = shift; my $file = shift; require Padre::Util; my $text = Padre::Util::slurp($file); return $class->from_text( $text, @_ ); } sub from_document { my $class = shift; my $document = shift; my $text = $document->text_get; return $class->from_text( $text, @_ ); } sub from_text { my $class = shift; my $text = shift; my %style = @_ ? ( default => shift ) : (); if ( $text =~ /^\#\!(\N+)/ ) { $style{bin_perl} = $1; } # Capture the use/require usage as well as the number if ( $text =~ /^(use|require\s+[\d\.]+);/m ) { $style{use_perl} = $1; } if ( $text =~ /^use strict;/m ) { $style{use_strict} = 1; } if ( $text =~ /^use warnings;/m ) { $style{use_warnings} = 1; } # Capture several possible variants of the verion declaration if ( $text =~ /^(our\s+\$VERSION\s*=.+)/m ) { $style{version_line} = $1; } return $class->new(%style); } ###################################################################### # Style Methods sub bin_perl { $_[0]->_style('bin_perl'); } sub use_perl { $_[0]->_style('use_perl'); } sub use_strict { $_[0]->_style('use_strict'); } sub use_warnings { $_[0]->_style('use_warnings'); } sub version_line { $_[0]->_style('version_line'); } sub _style { my $self = shift; my $name = shift; if ( defined $self->{$name} ) { return $self->{$name}; } if ( $self->{default} ) { return $self->{default}->$name(); } return $DEFAULT{$name}; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Help.pm����������������������������������������������������������0000644�0001750�0001750�00000027067�12237327555�016677� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::Help; use 5.008; use strict; use warnings; use Pod::Functions qw(%Type); use Cwd (); use Padre::Util (); use Padre::Help (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Help'; # for caching help list (for faster access) my ( $cached_help_list, $cached_perlopquick, $cached_wxwidgets ); # Initialize help sub help_init { my $self = shift; # serve the cached copy if it is already built if ($cached_help_list) { $self->{help_list} = $cached_help_list; $self->{perlopquick} = $cached_perlopquick; $self->{wxwidgets} = $cached_wxwidgets; return; } my @index = $self->_collect_perldoc; # Add Installed modules push @index, $self->_find_installed_modules; # Add Perl Operators Reference $self->{perlopquick} = $self->_parse_perlopquick; push @index, keys %{ $self->{perlopquick} }; # Add wxWidgets documentation $self->{wxwidgets} = $self->_parse_wxwidgets; push @index, keys %{ $self->{wxwidgets} }; # Return a unique sorted index my %seen = (); my @unique_sorted_index = sort grep { !$seen{$_}++ } @index; $self->{help_list} = \@unique_sorted_index; # Store the cached help list for faster access $cached_help_list = $self->{help_list}; $cached_perlopquick = $self->{perlopquick}; $cached_wxwidgets = $self->{wxwidgets}; } sub _collect_perldoc { my $self = shift; my @index; # The categorization has been "borrowed" from # http://github.com/jonallen/perldoc.perl.org/tree # In lib/PerlDoc/Section.pm # Overview push @index, qw/perl perlintro perlrun perlbook perlcommunity/; # Tutorials push @index, qw/perlreftut perldsc perllol perlrequick perlretut perlboot perltoot perltooc perlbot perlstyle perlcheat perltrap perldebtut perlopentut perlpacktut perlthrtut perlothrtut perlxstut perlunitut perlpragma/; # FAQ push @index, qw/perlunifaq perlfaq1 perlfaq2 perlfaq3 perlfaq4 perlfaq5 perlfaq6 perlfaq7 perlfaq8 perlfaq9/; # Language reference push @index, qw/perlsyn perldata perlsub perlop perlfunc perlpod perlpodspec perldiag perllexwarn perldebug perlvar perlre perlreref perlref perlform perlobj perltie perldbmfilter perlipc perlfork perlnumber perlport perllocale perluniintro perlunicode perlebcdic perlsec perlmod perlmodlib perlmodstyle perlmodinstall perlnewmod perlcompile perlfilter perlglossary CORE/; # Internals push @index, qw/perlembed perldebguts perlxs perlxstut perlclib perlguts perlcall perlapi perlintern perliol perlapio perlhack perlreguts perlreapi/; # History push @index, qw/perlhist perltodo perldelta/; # license push @index, qw/perlartistic perlgpl/; # Platform Specific push @index, qw/perlaix perlamiga perlapollo perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perllinux perlmachten perlmacos perlmacosx perlmint perlmpeix perlnetware perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris perlsymbian perltru64 perluts perlvmesa perlvms perlvos perlwin32/; # Pragmas push @index, qw/attributes attrs autouse base bigint bignum bigrat blib bytes charnames constant diagnostics encoding feature fields filetest if integer less lib locale mro open ops overload re sigtrap sort strict subs threads threads::shared utf8 vars vmsish warnings warnings::register/; # Utilities push @index, qw/perlutil a2p c2ph config_data corelist cpan cpanp cpan2dist dprofpp enc2xs find2perl h2ph h2xs instmodsh libnetcfg perlbug perlcc piconv prove psed podchecker perldoc perlivp pod2html pod2latex pod2man pod2text pod2usage podselect pstruct ptar ptardiff s2p shasum splain xsubpp perlthanks/; # Perl Special Variables (compiled these from perlvar) push @index, ( '$ARG', '$_', '$a', '$b', '$1', '$2', '$3', '$4', '$5', '$6', '$7', '$8', '$9', '$MATCH', '$&', '${^MATCH}', '$PREMATCH', '$`', '${^PREMATCH}', '$POSTMATCH', '$\'', '${^POSTMATCH}', '$LAST_PAREN_MATCH', '$+', '$LAST_SUBMATCH_RESULT', '$^N', '@LAST_MATCH_END', '@+', '%+', '$INPUT_LINE_NUMBER', '$NR', '$.', '$INPUT_RECORD_SEPARATOR', '$RS', '$/', '$OUTPUT_AUTOFLUSH', '$|', '$OUTPUT_FIELD_SEPARATOR', '$OFS', '$,', '$OUTPUT_RECORD_SEPARATOR', '$ORS', '$\\', '$LIST_SEPARATOR', '$"', '$SUBSCRIPT_SEPARATOR', '$SUBSEP', '$;', '$FORMAT_PAGE_NUMBER', '$%', '$FORMAT_LINES_PER_PAGE', '$=', '$FORMAT_LINES_LEFT', '$-', '@LAST_MATCH_START', '@-', '%-', '$FORMAT_NAME', '$~', '$FORMAT_TOP_NAME', '$^', '$FORMAT_LINE_BREAK_CHARACTERS', '$:', '$FORMAT_FORMFEED', '$^L', '$ACCUMULATOR', '$^A', '$CHILD_ERROR', '$?', '${^CHILD_ERROR_NATIVE}', '${^ENCODING}', '$OS_ERROR', '$ERRNO', '$!', '%OS_ERROR', '%ERRNO', '%!', '$EXTENDED_OS_ERROR', '$^E', '$EVAL_ERROR', '$@', '$PROCESS_ID', '$PID', '$$', '$REAL_USER_ID', '$UID', '$<', '$EFFECTIVE_USER_ID', '$EUID', '$>', '$REAL_GROUP_ID', '$GID', '$(', '$EFFECTIVE_GROUP_ID', '$EGID', '$)', '$PROGRAM_NAME', '$0', '$[', '$]', '$COMPILING', '$^C', '$DEBUGGING', '$^D', '${^RE_DEBUG_FLAGS}', '${^RE_TRIE_MAXBUF}', '$SYSTEM_FD_MAX', '$^F', '$^H', '%^H', '$INPLACE_EDIT', '$^I', '$^M', '$OSNAME', '$^O', '${^OPEN}', '$PERLDB', '$^P', '$LAST_REGEXP_CODE_RESULT', '$^R', '$EXCEPTIONS_BEING_CAUGHT', '$^S', '$BASETIME', '$^T', '${^TAINT}', '${^UNICODE}', '${^UTF8CACHE}', '${^UTF8LOCALE}', '$PERL_VERSION', '$^V', '$WARNING', '$^W', '${^WARNING_BITS}', '${^WIN32_SLOPPY_STAT}', '$EXECUTABLE_NAME', '$^X', 'ARGV', '$ARGV', '@ARGV', 'ARGVOUT', '@F', '@INC', '@ARG', '@_', '%INC', '%ENV', '$ENV{expr}', '%SIG', '$SIG{expr}' ); # Support given keyword push @index, ('given'); # Add Perl functions (perlfunc) $Type{say} = 1; $Type{state} = 1; $Type{break} = 1; push @index, keys %Type; return @index; } # Finds installed CPAN modules via @INC # This solution resides at: # http://stackoverflow.com/questions/115425/how-do-i-get-a-list-of-installed-cpan-modules sub _find_installed_modules { my $self = shift; my %seen; require File::Find::Rule; foreach my $path (@INC) { next if $path eq '.'; # traversion this is a bad idea # as it may be the root of the file # system or the home directory foreach my $file ( File::Find::Rule->name('*.pm')->in($path) ) { my $module = substr( $file, length($path) + 1 ); $module =~ s/.pm$//; $module =~ s{[\\/]}{::}g; $seen{$module}++; } } return keys %seen; } # Parses perlopquick.pod (Perl Operator Reference) # http://github.com/cowens/perlopquick/tree/master sub _parse_perlopquick { my $self = shift; my %index = (); # Open perlopquick.pod for reading my $perlopquick = File::Spec->join( Padre::Util::sharedir('doc'), 'perlopquick', 'perlopquick.pod' ); if ( open my $fh, '<', $perlopquick ) { #-# no critic (RequireBriefOpen) # Add PRECEDENCE to index until ( <$fh> =~ /=head1 PRECEDENCE/ ) { } my $line; while ( $line = <$fh> ) { last if ( $line =~ /=head1 OPERATORS/ ); $index{PRECEDENCE} .= $line; } # Add OPERATORS to index my $op; while ( $line = <$fh> ) { if ( $line =~ /=head2\s+(.+)$/ ) { $op = $1; $index{$op} = $line; } elsif ($op) { $index{$op} .= $line; } } # and we're done close $fh; } else { TRACE("Cannot open perlopquick.pod\n") if DEBUG; } return \%index; } # Parses wxwidgets.pod (Perl Operator Reference) # This feature is enabled only when Padre::Plugin::WxWidgets is installed and enabled sub _parse_wxwidgets { my $self = shift; my %index = (); # Make sure that the wxWidgets plugin is installed and is enabled my $wxwidgets_plugin = Padre::Current->ide->plugin_manager->plugins->{'Padre::Plugin::WxWidgets'}; unless ( defined($wxwidgets_plugin) && $wxwidgets_plugin->{status} eq 'enabled' ) { TRACE("Padre::Plugin::WxWidgets is not installed or enabled\n") if DEBUG; return; } # Open {Padre::Plugin::WxWidgets share directory}/doc/wxwidgets.pod for reading my $wxwidgets = File::Spec->join( Padre::Util::share('WxWidgets'), 'doc', 'wxwidgets.pod' ); if ( open my $fh, '<', $wxwidgets ) { #-# no critic (RequireBriefOpen) # Add PRECEDENCE to index # Add methods to index my ( $method, $line ); while ( $line = <$fh> ) { if ( $line =~ /=head2\s+(.+)$/ ) { $method = $1; $index{$method} = $line; } elsif ($method) { $index{$method} .= $line; } } # and we're done close $fh; } else { TRACE("Cannot open $wxwidgets\n") if DEBUG; } return \%index; } # Renders the help topic content into XHTML sub help_render { my $self = shift; my $topic = shift; if ( $self->{perlopquick}->{$topic} ) { # Yes, it is a Perl 5 Operator require Padre::Pod2HTML; return ( Padre::Pod2HTML->pod2html( $self->{perlopquick}->{$topic} ), $topic, ); } elsif ( $self->{wxwidgets}->{$topic} ) { # Yes, it is a Perl 5 Operator require Padre::Pod2HTML; return ( Padre::Pod2HTML->pod2html( $self->{wxwidgets}->{$topic} ), $topic, ); } # Detect perlvar, perlfunc or simply nothing my $html = undef; my $hints = {}; my $location = undef; if ( $topic =~ /^(\$|\@|\%|ARGV$|ARGVOUT$)/ ) { # it is definitely a Perl Special Variable $hints->{perlvar} = 1; } elsif ( $Type{$topic} ) { # it is Perl function, handle q/.../, m//, y///, tr/// $hints->{perlfunc} = 1; $topic =~ s/\/.*?\/$//; } elsif ( $topic eq 'given' ) { # Redirect to 'use feature' $topic = 'feature'; } else { # Append the module's release date to the topic require Module::CoreList; my $version = Module::CoreList->first_release_by_date($topic); my $since_version = $version ? sprintf( Wx::gettext('(Since Perl %s)'), $self->_format_perl_version($version) ) : ''; my $deprecated = ( Module::CoreList->can('is_deprecated') && Module::CoreList::is_deprecated($topic) ) ? Wx::gettext('- DEPRECATED!') : ''; $location = sprintf( '%s %s %s', $topic, $since_version, $deprecated ); } # Determine if the padre locale and/or the # system language is NOT english if ( Padre::Locale::iso639() !~ /^en/i ) { $hints->{lang} = Padre::Locale::iso639(); } # Render using perldoc pseudo code package require Padre::Browser::POD; my $pod = Padre::Browser::POD->new; my $doc = $pod->resolve( $topic, $hints ); my $pod_html = $pod->render($doc); if ($pod_html) { $html = $pod_html->body; # This is needed to make perlfunc and perlvar perldoc # output a bit more consistent $html =~ s/<dt>/<dt><b><font size="+2">/g; $html =~ s/<\/dt>/<\/b><\/font><\/dt>/g; } return ( $html, $location || $topic ); } # Borrowed from corelist in Module::CoreList and then modified # a bit for clarity. # Returns Perl v-string from an old-style numerical Perl version sub _format_perl_version { my ( $self, $version ) = @_; return $version if $version < 5.006; return version->new($version)->normal; } # Returns the help topic list sub help_list { $_[0]->{help_list}; } 1; __END__ =pod =head1 NAME Padre::Document::Perl::Help - Perl 5 Help Provider =head1 DESCRIPTION Perl 5 Help index is built here and rendered. =head1 AUTHOR Ahmad M. Zawawi C<ahmad.zawawi@gmail.com> =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Syntax.pm��������������������������������������������������������0000644�0001750�0001750�00000010174�12237327555�017264� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::Syntax; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Util (); use Padre::Task::Syntax (); use Parse::ErrorString::Perl (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::Syntax'; sub new { my $class = shift; my %args = @_; if ( defined $ENV{PADRE_IS_TEST} ) { # Note: $ENV{PADRE_IS_TEST} is defined in t/44-perl-syntax.t # Run with console Perl to prevent failures while testing require Padre::Perl; $args{perl} = Padre::Perl::cperl(); } else { # Otherwise run with user-preferred interpreter $args{perl} = $args{document}->get_interpreter; } $class->SUPER::new(%args); } sub syntax { my $self = shift; my $text = shift; # Localise newlines using Adam's magic "Universal Newline" # regex conveniently stolen from File::LocalizeNewlines. # (i.e. "conveniently" avoiding a bunch of dependencies) $text =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; # Execute the syntax check my $stderr = ''; my $filename = undef; SCOPE: { # Create a temporary file with the Perl text require File::Temp; my $file = File::Temp->new( UNLINK => 1 ); $filename = $file->filename; binmode( $file, ':encoding(UTF-8)' ); # If this is a module, we will need to overwrite %INC to avoid the module # loading another module, which loads the system installed equivalent # of the package we are currently compile-testing. if ( $text =~ /^\s*package ([\w:]+)/ ) { my $module_file = $1 . '.pm'; $module_file =~ s/::/\//g; $file->print("BEGIN {\n"); $file->print("\t\$INC{'$module_file'} = '$file';\n"); $file->print("}\n"); $file->print("#line 1\n"); } # Toggle syntax checking for certain regions $file->print( $self->_parse_comment_pragmas($text) ); $file->close; my @cmd = ( $self->{perl} ); # Append Perl command line options if ( $self->{project} ) { push @cmd, '-Ilib'; } # Open a temporary file for standard error redirection my $err = File::Temp->new( UNLINK => 1 ); $err->close; # Redirect perl's output to temporary file # NOTE: Please DO NOT use -Mdiagnostics since it will wrap # error messages on multiple lines and that would # complicate parsing (azawawi) push @cmd, ( '-c', '<' . $file->filename, '2>' . $err->filename, ); # We need shell redirection (list context does not give that) # Run command in directory Padre::Util::run_in_directory( join( ' ', @cmd ), $self->{project} ); # Slurp Perl's stderr... open my $fh, '<', $err->filename or die $!; local $/ = undef; $stderr = <$fh>; close $fh; } # Short circuit if the syntax is OK and no other errors/warnings are present return [] if $stderr eq "- syntax OK\n"; # Since we're not going to use -Mdiagnostics, # we will simply reuse Padre::ErrorString::Perl for Perl error parsing my @issues = Parse::ErrorString::Perl->new->parse_string($stderr); # We need the 'at' or 'near' clauses appended to the issue because # it is more meaningful for my $issue (@issues) { if ( defined( $issue->{at} ) ) { $issue->{message} .= ', at ' . $issue->{at}; } elsif ( defined( $issue->{near} ) ) { $issue->{message} .= ', near "' . $issue->{near} . '"'; } } return { issues => \@issues, stderr => $stderr, }; } # # Parses syntax checking comments blocks # To disable Padre syntax check, please use: # ## no padre_syntax_check # To enable again: # ## use padre_syntax_check # sub _parse_comment_pragmas { my $self = shift; my $text = shift; my $n = "\\cM?\\cJ"; if ( $text =~ /$n\s*\#\#\s+(use|no)\s+padre_syntax_check\s*/ ) { # Only process when there is 'use|no padre_syntax_check' # comment pragmas my $ignore = 0; my $output = ''; for my $line ( split /^/, $text ) { if ( $line =~ /^\s*\#\#\s+(use|no)\s+padre_syntax_check\s*$/ ) { $ignore = ( $1 eq 'no' ) ? 1 : 0; } else { $output .= $ignore ? "# $line" : $line; } } # Return processed text return $output; } return $text; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Perl/Beginner.pm������������������������������������������������������0000644�0001750�0001750�00000022157�12237327555�017533� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl::Beginner; use 5.008; use strict; use warnings; our $VERSION = '1.00'; =head1 NAME Padre::Document::Perl::Beginner - naive implementation of some beginner specific error checking =head1 SYNOPSIS use Padre::Document::Perl::Beginner; my $beginner = Padre::Document::Perl::Beginner->new; if (not $beginner->check($data)) { warn $beginner->error; } =head1 DESCRIPTION This is a naive implementation. It needs to be replaced by one using L<PPI>. In Perl 5 there are lots of pitfalls the unaware, especially the beginner can easily fall in. While some might expect the Perl compiler itself would catch those it does not (yet ?) do it. So we took the initiative and added a beginners mode to Padre in which these extra issues are checked. Some are real problems that would trigger an error anyway we just make them a special case with a more specific error message. (e.g. C<use warning;> without the trailing s) Others are valid code that can be useful in the hands of a master but that are poisonous when written by mistake by someone who does not understand them. (e.g. C<if ($x = /value/) { }> ). This module provides a method called C<check> that can check a Perl script (provided as parameter as a single string) and recognize problematic code. =head1 Examples See L<http://padre.perlide.org/ticket/52> and L<http://www.perlmonks.org/?node_id=728569> =head1 Cases =over 4 =cut sub new { my $class = shift; return bless {@_}, $class; } sub error { return $_[0]->{error}; } sub _report { my $self = shift; my $text = shift; my $prematch = shift; my @samples = @_; # The internal _text field is used instead of the document to make sure the # tests can also use it. We will also need to separate from the Padre document class # so this code can be factored out to a stand alone module #my $document = $self->{document}; #my $editor = $document->{editor}; $prematch ||= ''; my $error_start_position = length($prematch); #my $line = $editor->LineFromPosition($error_start_position); my @lines = split /[\r\n]/, substr( $self->{_text}, 0, $error_start_position ), -1; my $line = @lines || 1; #++$line; # Editor starts counting at 0 # These are two lines to enable the translators to use argument numbers: $self->{error} = sprintf( Wx::gettext('Line %d: %s'), $line, sprintf( Wx::gettext($text), @_ ) ); return; } sub check { my ( $self, $text ) = @_; $self->{error} = undef; $self->{_text} = $text; # Fast exits if there is nothing to check: return 1 if !defined($text); return 1 if $text eq ''; my $config = Padre->ide->config; # Cut POD parts out of the text $text =~ s/(^|[\r\n])(\=(pod|item|head\d)\b.+?[\r\n]\=cut[\r\n])/$1.(" "x(length($2)))/seg; # TO DO: Replace all comments by whitespaces, otherwise they could mix up some tests =item * split /,/, @data; Here @data is in scalar context returning the number of elements. Spotted in this form: split /,/, @ARGV; =cut if ( $config->lang_perl5_beginner_split and $text =~ m/^([\x00-\xff]*?)split([^;]+);/ ) { my $prematch = $1; my $cont = $2; if ( $cont =~ m{\@} ) { $self->_report( "The second parameter of split is a string, not an array", $prematch ); return; } } =item * use warning; s is missing at the end. =cut if ( $config->lang_perl5_beginner_warning and $text =~ /^([\x00-\xff]*?)use\s+warning\s*;/ ) { $self->_report( "You need to write use warnings (with an s at the end) and not use warning.", $1 ); return; } =item * map { $_; } (@items),$extra_item; is the same as map { $_; } (@items,$extra_item); but you usually want (map { $_; } (@items)),$extra_item; which means: map all C<@items> and them add C<$extra_item> without mapping it. =cut if ( $config->lang_perl5_beginner_map and $text =~ /^([\x00-\xff]*?)map[\s\t\r\n]*\{.+?\}[\s\t\r\n]*\(.+?\)[\s\t\r\n]*\,/ ) { $self->_report( "map (),x uses x also as list value for map.", $1 ); return; } =item * Warn about Perl-standard package names being reused package DB; =cut if ( $config->lang_perl5_beginner_debugger and $text =~ /^([\x00-\xff]*?)package DB[\;\:]/ ) { $self->_report( "This file uses the DB-namespace which is used by the Perl Debugger.", $1 ); return; } =item * $x = chomp $y; print chomp $y; =cut # TO DO: Change this to # if ( $text =~ /[^\{\;][\s\t\r\n]*chomp\b/ ) { # as soon as this module could set the cursor to the occurence line # because it may trigger a higher amount of false positives. # (Ticket #675) if ( $config->lang_perl5_beginner_chomp and $text =~ /^([\x00-\xff]*?)(print|[\=\.\,])[\s\t\r\n]*chomp\b/ ) { $self->_report( "chomp doesn't return the chomped value, it modifies the variable given as argument.", $1 ); return; } =item * map { s/foo/bar/; } (@items); This returns an array containing true or false values (s/// - return value). Use map { s/foo/bar/; $_; } (@items); to actually change the array via s///. =cut if ( $config->lang_perl5_beginner_map2 and $text =~ /^([\x00-\xff]*?)map[\s\t\r\n]*\{[\s\t\r\n]*(\$_[\s\t\r\n]*\=\~[\s\t\r\n]*)?s\// ) { $self->_report( "Substitute (s///) doesn't return the changed value even if map.", $1 ); return; } =item * <@X> =cut if ( $config->lang_perl5_beginner_perl6 and $text =~ /^([\x00-\xff]*?)\(\<\@\w+\>\)/ ) { $self->_report( "(<\@Foo>) is Perl6 syntax and usually not valid in Perl5.", $1 ); return; } =item * if ($x = /bla/) { } =cut # TODO if ( my $x = 23 ) { should be OK I think, that is when we declare the variable with the if construct if ( $config->lang_perl5_beginner_ifsetvar and $text =~ m/\A([\x00-\xff]*? ^[^#]*) if\b \s* ( \(\s* (?<!my)\s*[\$\@\%]\w+ \s*=[^=~] )/xsm ) { $self->_report( "A single = in a if-condition is usually a typo, use == or eq to compare.", $1 ); return; } =item * Pipe | in open() not at the end or the beginning. =cut if ($config->lang_perl5_beginner_pipeopen and ( $text =~ /^([\x00-\xff]*?)open[\s\t\r\n]*\(?\$?\w+[\s\t\r\n]*(\,.+?)?[\s\t\r\n]*\,[\s\t\r\n]*?([\"\'])(.*?)\|(.*?)\3/ ) and ( length($4) > 0 ) and ( length($5) > 0 ) ) { $self->_report( "Using a | char in open without a | at the beginning or end is usually a typo.", $1 ); return; } =item * open($ph, "| something |"); =cut if ( $config->lang_perl5_beginner_pipe2open and $text =~ /^([\x00-\xff]*?)open[\s\t\r\n]*\(?\$?\w+[\s\t\r\n]*\,(.+?\,)?([\"\'])\|.+?\|\3/ ) { $self->_report( "You can't use open to pipe to and from a command at the same time.", $1 ); return; } =item * Regular expression starting with a quantifier such as /+.../ =cut if ( $config->lang_perl5_beginner_regexq and $text =~ m/^([\x00-\xff]*?)\=\~ [\s\t\r\n]* \/ \^? [\+\*\?\{] /xs ) { $self->_report( "A regular expression starting with a quantifier ( + * ? { ) doesn't make sense, you may want to escape it with a \\.", $1 ); return; } =item * } else if { =cut if ( $config->lang_perl5_beginner_elseif and $text =~ /^([\x00-\xff]*?)\belse\s+if\b/ ) { $self->_report( "'else if' is wrong syntax, correct if 'elsif'.", $1 ); return; } =item * } elseif { =cut if ( $config->lang_perl5_beginner_elseif and $text =~ /^([\x00-\xff]*?)\belseif\b/ ) { $self->_report( "'elseif' is wrong syntax, correct if 'elsif'.", $1 ); return; } =item * close; =cut if ( $config->lang_perl5_beginner_close and $text =~ /^(.*?[^>]?)close;/ ) { # don't match Socket->close; $self->_report( "close; usually closes STDIN, STDOUT or something else you don't want.", $1 ); return; } return 1; } =pod =back =head1 HOW TO ADD ANOTHER ONE Please feel free to add as many checks as you like. This is done in three steps: =head2 Add the test Add one (or more) tests for this case to F<t/75-perl-beginner.t> The test should be successful when your supplied sample fails the check and returns the correct error message. As texts of error messages may change, try to match a good part which allows identification of the message but don't match the very exact text. Tests could use either one-liners written as strings within the test file or external support files. There are samples for both ways in the test script. =head2 Add the check Add the check to the check-sub of this file (F<Document/Perl/Beginner.pm>). There are plenty samples here. Remember to add a sample (and maybe short description) what would fail the test. Run the test script to match your test case(s) to the new check. =head2 Add the configuration option Go to F<Config.pm>, look for the beginner error checks configuration and add a new setting for your new check there. It defaults to 1 (run the check), but a user could turn it off by setting this to 0 within the Padre configuration file. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Python/���������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�016003� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Python/FunctionList.pm������������������������������������������������0000644�0001750�0001750�00000001351�12237327555�020773� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Python::FunctionList; use 5.008; use strict; use warnings; use Padre::Task::FunctionList (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::FunctionList'; ###################################################################### # Padre::Task::FunctionList Methods my $n = "\\cM?\\cJ"; our $function_search_re = qr/ (?: \"\"\".*?\"\"\" | (?:^|$n)\s* (?: (?:def)\s+(\w+) | (?:(\w+)\s*\=\s*lambda) ) ) /sx; sub find { return grep { defined $_ } $_[1] =~ /$function_search_re/g; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/CSharp.pm�������������������������������������������������������������0000644�0001750�0001750�00000002150�12237327555�016247� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::CSharp; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Role::Task (); use Padre::Document (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Document }; ##################################################################### # Padre::Document Task Integration sub task_functions { return 'Padre::Document::CSharp::FunctionList'; } sub task_outline { return undef; } sub task_syntax { return undef; } sub get_function_regex { my $name = quotemeta $_[1]; return qr/ (?:^|[^# \t-]) [ \t]* ((?: (public|protected|private| abstract|static|sealed|virtual|override| explicit|implicit|operator|extern)\s+) {0,4} # zero to 4 method modifiers (?: [\w\[\]<>,]+) # return data type \s+ $name (?: <\w+>)? # optional: generic type parameter ) /x; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Python.pm�������������������������������������������������������������0000644�0001750�0001750�00000003042�12237327555�016351� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Python; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Role::Task (); use Padre::Document (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Document }; ##################################################################### # Padre::Document Task Integration sub task_functions { return 'Padre::Document::Python::FunctionList'; } sub task_outline { return undef; } sub task_syntax { return undef; } sub get_function_regex { my $name = quotemeta $_[1]; return qr/(?:^|[^# \t-])[ \t]*((?:def)\s+$name\b|\*$name\s*=\s*)/; } sub get_command { my $self = shift; my $arg_ref = shift || {}; my $config = $self->config; # Use a temporary file if run_save is set to 'unsaved' my $filename = $config->run_save eq 'unsaved' && !$self->is_saved ? $self->store_in_tempfile : $self->filename; # Use console python require File::Which; my $python = File::Which::which('python') or die Wx::gettext("Cannot find python executable in your PATH"); $python = qq{"$python"} if Padre::Constant::WIN32; my $dir = File::Basename::dirname($filename); chdir $dir; my $shortname = File::Basename::basename($filename); my @commands = (qq{$python}); $shortname = qq{"$shortname"} if (Padre::Constant::WIN32); push @commands, qq{"$shortname"}; return join ' ', @commands; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Patch.pm��������������������������������������������������������������0000644�0001750�0001750�00000000770�12237327555�016134� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Patch; use 5.008; use strict; use warnings; use Padre::Document; our $VERSION = '1.00'; our @ISA = qw{ Padre::Document }; sub event_on_context_menu { my ( $self, $editor, $menu, $event ) = @_; $menu->{patch_diff} = $menu->add_menu_action( 'edit.patch_diff', ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������Padre-1.00/lib/Padre/Document/Perl.pm���������������������������������������������������������������0000644�0001750�0001750�00000140303�12237327555�015774� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Perl; use 5.010; use strict; use warnings; use Carp (); use Encode (); use File::Spec (); use File::Basename (); use Params::Util (); use YAML::Tiny (); use Padre::Util (); use Padre::Perl (); use Padre::Document (); use Padre::File (); use Padre::Role::Task (); use Padre::Feature (); use Padre::Logger; our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; our @ISA = qw{ Padre::Role::Task Padre::Document }; ##################################################################### # Padre::Document Task Integration sub task_functions { return 'Padre::Document::Perl::FunctionList'; } sub task_outline { return 'Padre::Document::Perl::Outline'; } sub task_syntax { return 'Padre::Document::Perl::Syntax'; } ##################################################################### # Padre::Document::Perl Methods # Ticket #637: # TO DO watch out! These PPI methods may be VERY expensive! # (Ballpark: Around 1 Gigahertz-second of *BLOCKING* CPU per 1000 lines) # Check out Padre::Task::PPI and children instead! sub ppi_get { require PPI::Document; my $self = shift; my $text = $self->text_get; PPI::Document->new( \$text ); } sub ppi_dump { require PPI::Dumper; my $self = shift; my $ppi = $self->ppi_get; PPI::Dumper->new( $ppi, locations => 1, indent => 4 )->string; } sub ppi_set { my $self = shift; my $document = Params::Util::_INSTANCE( shift, 'PPI::Document' ); unless ($document) { Carp::croak('Did not provide a PPI::Document'); } # Serialize and overwrite the current text $self->text_set( $document->serialize ); } sub ppi_replace { my $self = shift; my $document = Params::Util::_INSTANCE( shift, 'PPI::Document' ); unless ($document) { Carp::croak('Did not provide a PPI::Document'); } # Serialize and overwrite the current text $self->text_replace( $document->serialize ); } sub ppi_find { shift->ppi_get->find(@_); } sub ppi_find_first { shift->ppi_get->find_first(@_); } sub ppi_transform { my $self = shift; my $transform = Params::Util::_INSTANCE( shift, 'PPI::Transform' ); unless ($transform) { Carp::croak("Did not provide a PPI::Transform"); } # Apply the transform to the document my $document = $self->ppi_get; unless ( $transform->document($document) ) { Carp::croak("Transform failed"); } $self->ppi_replace($document); return 1; } sub ppi_select { my $self = shift; my $location = shift; my $editor = $self->editor or return; my $start = $self->ppi_location_to_character_position($location); $editor->SetSelection( $start, $start + 1 ); } # Convert a ppi-style location [$line, $col, $apparent_col] # to an absolute document offset sub ppi_location_to_character_position { my $self = shift; my $location = shift; if ( Params::Util::_INSTANCE( $location, 'PPI::Element' ) ) { $location = $location->location; } my $editor = $self->editor or return; my $line = $editor->PositionFromLine( $location->[0] - 1 ); my $start = $line + $location->[1] - 1; return $start; } # Convert an absolute document offset to # a ppi-style location [$line, $col, $apparent_col] # FIX ME: Doesn't handle $apparent_col right sub character_position_to_ppi_location { my $self = shift; my $position = shift; my $ed = $self->editor; my $line = 1 + $ed->LineFromPosition($position); my $col = 1 + $position - $ed->PositionFromLine( $line - 1 ); return [ $line, $col, $col ]; } sub set_highlighter { my $self = shift; my $module = shift; # These are hard coded limits because the PPI highlighter # is slow. Probably there is not much use in moving this back to a # configuration variable my $limit; if ( $module eq 'Padre::Document::Perl::PPILexer' ) { $limit = $self->config->lang_perl5_lexer_ppi_limit; } elsif ( $module eq 'Padre::Document::Perl::Lexer' ) { $limit = 4000; } elsif ( $module eq 'Padre::Plugin::Kate' ) { $limit = 4000; } my $length = $self->{original_content} ? length $self->{original_content} : 0; my $editor = $self->editor; if ($editor) { $length = $editor->GetTextLength; } TRACE( "Setting highlighter for Perl 5 code. length: $length" . ( $limit ? " limit is $limit" : '' ) ) if DEBUG; if ( defined $limit and $length > $limit ) { TRACE("Forcing STC highlighting") if DEBUG; $module = ''; } return $self->SUPER::set_highlighter($module); } ##################################################################### # Padre::Document Document Analysis sub guess_filename { my $self = shift; # Don't attempt a content-based guess if the file already has a name. if ( $self->filename ) { return $self->SUPER::guess_filename; } my $text = $self->text_get; my $project = $self->project; # Is this a test? if ( $text =~ /(?:use Test::|plan \=\>)/ ) { my $fn = eval { die unless defined($project); my $t_path = File::Spec->catfile( $project->root, 't' ); die unless -d $t_path; opendir my $t_dh, $t_path or die; my %t_num; my $nulls = 1; # default for ( readdir($t_dh) ) { next unless /^(\d+)/; # Convert 1, 01 and 001 to 1 and mark the number as used: $t_num{ $1 + 0 } = 1; $nulls = length($1); } my $free_num = 0; while ( $t_num{ ++$free_num } ) { } my $t_format = '%0' . $nulls . 'd'; # Return filename relative to project return sprintf( $t_format, $free_num ) . '_unnamed.t'; }; return 'unnamed_test.t' if $@; warn $fn; return $fn if defined($fn); } # Is this a script? if ( $text =~ /^\#\![^\n]*\bperl\b/s ) { # It's impossible to predict the name of a script in # advance, but lets default to a standard "script.pl" return 'script.pl'; } # Is this a module if ( $text =~ /\bpackage\s*([\w\:]+)/s ) { # Take the last section of the package name, and use that # as the file. my $name = $1; $name =~ s/.*\://; return "$name.pm"; } # Otherwise, no idea return undef; } sub guess_subpath { my $self = shift; # Don't attempt a content-based guess if the file already has a name. if ( $self->filename ) { return $self->SUPER::guess_subpath; } my $text = $self->text_get; # Is this a test? if ( $text =~ /(?:use Test::|plan \=\>)/ ) { return 't'; } # Is this a script? if ( $text =~ /^\#\![^\n]*\bperl\b/s ) { return 'script'; } # Is this a module? if ( $text =~ /\bpackage\s*([\w\:]+)/s ) { # Take all but the last section of the package name, # and use that as the file. my $name = $1; my @dirs = split /::/, $name; pop @dirs; # The use of a module name beginning with t:: is a common # pattern for declaring test-only classes. if ( $dirs[0] and $dirs[0] eq 't' ) { return @dirs; } return ( 'lib', @dirs ); } # Otherwise, no idea return; } sub guess_hashbang_params { my $self = shift; #Or should I use PPI to get the first comment? my $text = $self->text_get; if ( $text =~ /^#!(.*)\n/ ) { my $hashbang = $1; #presume that space dash ( -) comes after the perl exe.. (bad guess, hopefully someone will know better?) if ( $hashbang =~ /(.*?)(\s-.*)/ ) { return ( $1, $2 ); } } return (); } my $keywords; sub get_calltip_keywords { $keywords or $keywords = YAML::Tiny::LoadFile( Padre::Util::sharefile( 'languages', 'perl5', 'perl5.yml' ) ); } my $wordchars = join '', '$@%&_:[]{}', 0 .. 9, 'A' .. 'Z', 'a' .. 'z'; sub scintilla_word_chars { return $wordchars; } # This emulates qr/(?<=^|[\012\015])sub\s$name\b/ but without # triggering a "Variable length lookbehind not implemented" error. # return qr/(?:(?<=^)\s*sub\s+$_[1]|(?<=[\012\015])\s*sub\s+$_[1])\b/; sub get_function_regex { my $name = quotemeta $_[1]; return qr/(?:^|[^# \t-])[ \t]*((?:sub|func|method)\s+$name\b|\*$name\s*=\s*(?:sub\b|\\\&))/; } =pod =head2 get_command Returns the full command (interpreter, file name (maybe temporary) and arguments for both of them) for running the current document. Optionally accepts a hash reference with the following arguments: 'debug' - return a command where the debugger is started 'trace' - activates diagnostic output 'perl' - path and exe name for the perl to be run 'perl_args' - arguments to perl to be used 'scipt' - path and name of script to be run 'script_args' - arguments to the script =cut sub get_command { my $self = shift; my $arg_ref = shift // {}; my $config = $self->config; $arg_ref->{debug} = 0 if !exists $arg_ref->{debug}; $arg_ref->{trace} = 0 if !exists $arg_ref->{trace}; # Use a temporary file if run_save is set to 'unsaved' my $current_document = $config->run_save eq 'unsaved' && !$self->is_saved ? $self->store_in_tempfile : $self->filename; #TODO: suspect using just the document filename is too simple - there coulf be lots of the same name in a project, or worse, when running more than one project my $document_base = File::Basename::fileparse($current_document); #see if we remember a scriptname for this document if ( !exists $arg_ref->{script} ) { #rather than just identifying the history by 'script' - we need to try to recal which script was set for a random document, and then use _that_ #AND if we can do that onchange of the script name in the options dialog, we win big. $arg_ref->{script} = Padre::DB::History->previous( 'run_script_' . $document_base ); $arg_ref->{script} = $current_document if !exists $arg_ref->{script} || !$arg_ref->{script}; } #TODO: suspect using just the document filename is too simple - there coulf be lots of the same name in a project, or worse, when running more than one project my $script_base = File::Basename::fileparse( $arg_ref->{script} ); #place to run script if ( !exists( $arg_ref->{run_directory} ) ) { $arg_ref->{run_directory} = Padre::DB::History->previous( 'run_directory_' . $document_base ); #ToDo look below - Sven all yours if ( !exists $arg_ref->{run_directory} || !$arg_ref->{run_directory} ) { my ( $volume, $directory, $file ) = File::Spec->splitpath( $arg_ref->{script} ); $arg_ref->{run_directory} = File::Spec->catpath( $volume, $directory, '' ); } } $arg_ref->{script_args} = Padre::DB::History->previous( 'run_script_args_' . $script_base ); $arg_ref->{script_args} = $config->run_script_args_default if !exists $arg_ref->{script_args} || !$arg_ref->{script_args}; # Run with console Perl to prevent unexpected results under wxperl # The configuration values is cheaper to get compared to cperl(), # try it first. $arg_ref->{perl} = Padre::DB::History->previous( 'run_perl_' . $script_base ); $arg_ref->{perl} = $self->get_interpreter if !exists $arg_ref->{perl} || !$arg_ref->{perl}; $arg_ref->{perl_args} = Padre::DB::History->previous( 'run_perl_args_' . $script_base ); if ( !exists $arg_ref->{perl_args} || !$arg_ref->{perl_args} ) { $arg_ref->{perl_args} = $config->run_interpreter_args_default; #add params that are in the hash-bang line of the file itself my ( $hashbangperl, $hashbangparams ) = $self->guess_hashbang_params(); $arg_ref->{perl_args} = $hashbangparams if $hashbangparams; } # (Ticket #530) Pack args here, because adding the space later confuses the called Perls @ARGV my $script_args = ''; $script_args = ' ' . $arg_ref->{script_args} if defined( $arg_ref->{script_args} ) and ( $arg_ref->{script_args} ne '' ); my $dir = File::Basename::dirname( $arg_ref->{script} ); chdir $dir; # perl5db.pl needs to be given absolute filenames my $shortname; if ( $arg_ref->{debug} ) { $shortname = $arg_ref->{script}; } else { $shortname = File::Basename::basename( $arg_ref->{script} ); } my @commands = (qq{"$arg_ref->{perl}"}); push @commands, '-d' if $arg_ref->{debug}; push @commands, '-Mdiagnostics(-traceonly)' if $arg_ref->{trace}; if (Padre::Feature::DEVEL_ENDSTATS) { my $devel_endstats_options = $config->feature_devel_endstats_options; push @commands, '-MDevel::EndStats' . ( $devel_endstats_options ne '' ? "=$devel_endstats_options" : '' ); } if (Padre::Feature::DEVEL_TRACEUSE) { my $devel_traceuse_options = $config->feature_devel_traceuse_options; push @commands, '-d:TraceUse' . ( $devel_traceuse_options ne '' ? "=$devel_traceuse_options" : '' ); } push @commands, "$arg_ref->{perl_args}"; if (Padre::Constant::WIN32) { push @commands, qq{"$shortname"$script_args}; } else { # Use single quote to allow spaces in the shortname of the file #1219 push @commands, qq{'$shortname'$script_args}; } my $cmd = join( ' ', @commands ); return $cmd if !wantarray; return ( $cmd, $arg_ref ); } =head2 get_inc Returns the @INC of the designated perl interpreter - not necessarily our own =cut my %inc; sub get_inc { my $self = shift; my $perl = $self->get_interpreter or return; unless ( $inc{$perl} ) { #ToDo should we be using run_in_dir here? see Padre::Util my $incs = qx{$perl -e "print join ';', \@INC"}; chomp $incs; $inc{$perl} = [ split /;/, $incs ]; } return @{ $inc{$perl} }; } =head2 get_interpreter Returns the Perl interpreter for running the current document. =cut sub get_interpreter { my $self = shift; my $arg_ref = shift || {}; my $debug = exists $arg_ref->{debug} ? $arg_ref->{debug} : 0; my $trace = exists $arg_ref->{trace} ? $arg_ref->{trace} : 0; my $config = $self->config; # The configuration value is cheaper to get compared to cperl(), # try it first. my $perl = $config->run_perl_cmd; # warn if the Perl interpreter is not executable if ( defined $perl and $perl ne '' ) { if ( !-x $perl ) { Padre->ide->wx->main->message( Wx::gettext( sprintf( '%s seems to be no executable Perl interpreter, using the system default perl instead.', $perl ) ), ); $perl = Padre::Perl::cperl(); } } else { $perl = Padre::Perl::cperl(); } return $perl; } sub pre_process { my $self = shift; if ( Padre->ide->config->lang_perl5_beginner ) { require Padre::Document::Perl::Beginner; my $b = Padre::Document::Perl::Beginner->new( document => $self ); if ( $b->check( $self->text_get ) ) { return 1; } else { $self->set_errstr( $b->error ); return; } } return 1; } =pod =head2 beginner_check Run the beginner error checks on the current document. Shows a pop-up message for the first error. Always returns 1 (true). =cut # Run the checks for common beginner errors sub beginner_check { my $self = shift; # TO DO: Make this cool # It isn't, because it should show _all_ warnings instead of one and # it should at least go to the line it's complaining about. # Ticket #534 require Padre::Document::Perl::Beginner; my $beginner = Padre::Document::Perl::Beginner->new( document => $self, editor => $self->editor ); $beginner->check( $self->text_get ); # Report any errors my $error = $beginner->error; if ($error) { $self->current->main->error( Wx::gettext('Error: ') . $error ); } else { $self->current->main->message( Wx::gettext('No errors found.') ); } return 1; } sub find_unmatched_brace { TRACE("find_unmatched_brace") if DEBUG; my $self = shift; # Fire the task $self->task_request( task => 'Padre::Task::FindUnmatchedBrace', document => $self, on_finish => 'find_unmatched_brace_response', ); return; } sub find_unmatched_brace_response { TRACE("find_unmatched_brace_response") if DEBUG; my $self = shift; my $task = shift; # Found what we were looking for if ( $task->{location} ) { $self->ppi_select( $task->{location} ); return; } # Must have been a clean result # TO DO: Convert this to a call to ->main that doesn't require # us to use Wx directly. Wx::MessageBox( Wx::gettext("All braces appear to be matched"), Wx::gettext("Check Complete"), Wx::OK, $self->current->main, ); } # finds the start of the current symbol. # current symbol means in the context something remotely similar # to what PPI considers a PPI::Token::Symbol, but since we're doing # it the manual, stupid way, this may also work within quotelikes and regexes. sub get_current_symbol { my $self = shift; my $pos = shift; my $editor = $self->editor; $pos = $editor->GetCurrentPos if not defined $pos; my $line = $editor->LineFromPosition($pos); my $line_start = $editor->PositionFromLine($line); my $line_end = $editor->GetLineEndPosition($line); my $cursor_col = $pos - $line_start; my $line_content = $editor->GetTextRange( $line_start, $line_end ); $cursor_col = length($line_content) - 1 if $cursor_col >= length($line_content); my $col = $cursor_col; my $symbol_start_pos = $pos; # find start of symbol # TO DO: This could be more robust, no? # Ticket #639 # if we are at the end of a symbol (maybe we need better detection?), start counting on the previous letter. this should resolve #419 and #654 $col-- if $col and substr( $line_content, $col - 1, 2 ) =~ /^\w\W$/; while (1) { last if $col <= 0 or substr( $line_content, $col, 1 ) =~ /^[^#\w:\']$/; $col--; $symbol_start_pos--; } return () if $col >= length($line_content); if ( substr( $line_content, $col + 1, 1 ) !~ /^[#\w:\']$/ ) { return (); } # Extract the token, too. my $token; if ( substr( $line_content, $col ) =~ /^\s?(\S+)/ ) { $token = $1; } else { die "This shouldn't happen. The algorithm is wrong"; } # truncate token if ( $token =~ /^(\W*[\w:]+)/ ) { $token = $1; } # remove garbage first character from the token in case it's # not a variable (Example: ->foo becomes >foo but should be foo) $token =~ s/^[^\w\$\@\%\*\&:]//; return ( [ $line + 1, $col + 1, $symbol_start_pos + 1 ], $token ); } sub find_variable_declaration { my $self = shift; my ( $location, $token ) = $self->get_current_symbol; unless ( defined $location ) { Wx::MessageBox( Wx::gettext("Current cursor does not seem to point at a variable"), Wx::gettext("Check cancelled"), Wx::OK, $self->current->main, ); return; } # Create a new object of the task class and schedule it $self->task_request( task => 'Padre::Task::FindVariableDeclaration', document => $self, location => $location, on_finish => 'find_variable_declaration_response', ); return; } sub find_variable_declaration_response { my $self = shift; my $task = shift; # Found what we were looking for if ( $task->{location} ) { $self->ppi_select( $task->{location} ); return; } # Couldn't find the variable declaration. # TO DO: Convert this to a call to ->main that doesn't require # us to use Wx directly. my $text; if ( $self->{error} =~ /no token/ ) { $text = Wx::gettext("Current cursor does not seem to point at a variable"); } elsif ( $self->{error} =~ /no declaration/ ) { $text = Wx::gettext("No declaration could be found for the specified (lexical?) variable"); } else { $text = Wx::gettext("Unknown error"); } Wx::MessageBox( $text, Wx::gettext("Search Canceled"), Wx::OK, $self->current->main, ); } sub find_method_declaration { my $self = shift; my $main = $self->current->main; my $editor = $self->editor; my ( $location, $token ) = $self->get_current_symbol; unless ( defined $location ) { Wx::MessageBox( Wx::gettext("Current cursor does not seem to point at a method"), Wx::gettext("Check cancelled"), Wx::OK, $main ); return (); } # Try to extract class methods' class name my $line = $location->[0] - 1; my $col = $location->[1] - 1; my $line_start = $editor->PositionFromLine($line); my $token_end = $line_start + $col + 1 + length($token); my $line_content = $editor->GetTextRange( $line_start, $token_end ); my ($class) = $line_content =~ /(?:^|[^\w:\$])(\w+(?:::\w+)*)\s*->\s*\Q$token\E$/; my ( $found, $filename ) = $self->_find_method( $token, $class ); unless ($found) { Wx::MessageBox( sprintf( Wx::gettext("Current '%s' not found"), $token ), Wx::gettext("Check cancelled"), Wx::OK, $main ); return; } require Padre::Wx::Dialog::Positions; Padre::Wx::Dialog::Positions->set_position; # Go to function in current file unless ($filename) { $editor->goto_function($token); return (); } # Open or switch to file my $id = $main->editor_of_file($filename); unless ( defined $id ) { $id = $main->setup_editor($filename); } return unless defined $id; SCOPE: { my $editor = $main->notebook->GetPage($id) or return; $editor->goto_function($token); } return (); } # Arguments: A method name, optionally a class name # Returns: Success-Bit, Filename sub _find_method { my $self = shift; my $name = shift; my $class = shift; # Use tags parser if it's configured, return a match my $parser = $self->perltags_parser; if ( defined($parser) ) { my $tag = $parser->findTag($name); # Try to match tag AND class first if ( defined $class ) { while (1) { last if not defined $tag; next if not defined $tag->{extension}{class} or not $tag->{extension}{class} eq $class; last; } continue { $tag = $parser->findNextTag; } # fall back to the first method name match (bad idea?) $tag = $parser->findTag($name) if not defined $tag; } return ( 1, $tag->{file} ) if defined $tag; } # Fallback: Search for methods in source # TO DO: unify with code in Padre::Wx::FunctionList # TO DO: lots of improvement needed here unless ( $self->{_methods_}->{$name} ) { # Consume the basic function list my $filename = $self->filename; $self->{_methods_}->{$_} = $filename foreach $self->functions; # Scan for declarations in all module files. # TODO: This is horrendously slow to be running in the foreground. # TODO: This is pretty crude and doesn't integrate with the project system. my $project = $self->project; if ($project) { require File::Find::Rule; my @files = File::Find::Rule->file->name('*.pm')->in( File::Spec->catfile( $project->root, 'lib' ) ); foreach my $f (@files) { if ( open my $fh, '<', $f ) { my $lines = do { local $/ = undef; <$fh> }; close $fh; my @subs = $lines =~ /sub\s+(\w+)/g; if ( $lines =~ /use MooseX::Declare;/ ) { push @subs, ( $lines =~ /\bmethod|before|after|around|override|augment\s+(\w+)/g ); } if ( $lines =~ /use (?:MooseX::)?Method::Signatures;/ ) { my @subs = $lines =~ /\b(?:method|func)\s+(\w+)/g; } $self->{_methods_}->{$_} = $f for @subs; } } } } if ( $self->{_methods_}{$name} ) { return ( 1, $self->{_methods_}{$name} ); } return; } ##################################################################### # Padre::Document Document Manipulation sub rename_variable { my $self = shift; # Can we find something to replace? my ( $location, $token ) = $self->get_current_symbol; if ( not defined $location ) { Wx::MessageBox( Wx::gettext('Current cursor does not seem to point at a variable.'), Wx::gettext('Rename variable'), Wx::OK, $self->current->main, ); return; } my $dialog = Wx::TextEntryDialog->new( $self->current->main, Wx::gettext('New name'), Wx::gettext('Rename variable'), $token, ); return if $dialog->ShowModal == Wx::ID_CANCEL; my $replacement = $dialog->GetValue; $dialog->Destroy; # Launch the background task $self->task_request( task => 'Padre::Task::LexicalReplaceVariable', document => $self, location => $location, replacement => $replacement, on_finish => 'rename_variable_response', ); return; } sub change_variable_style { my $self = shift; my %opt = @_; if ( 0 == grep { defined $_ } @opt{qw(to_camel_case from_camel_case)} ) { warn "Need either 'to_camel_case' or 'from_camel_case' options"; return; } elsif ( 2 == grep { defined $_ } @opt{qw(to_camel_case from_camel_case)} ) { warn "Need either 'to_camel_case' or 'from_camel_case' options, not both"; return; } # Can we find something to replace? my ( $location, $token ) = $self->get_current_symbol; if ( not defined $location ) { Wx::MessageBox( Wx::gettext('Current cursor does not seem to point at a variable.'), Wx::gettext('Variable case change'), Wx::OK, $self->current->main, ); return; } # Launch the background task $self->task_request( %opt, # should contain only keys to_camel_case or from_camel_case and optionally ucfirst task => 'Padre::Task::LexicalReplaceVariable', document => $self, location => $location, on_finish => 'rename_variable_response', ); return; } sub rename_variable_response { my $self = shift; my $task = shift; if ( defined $task->{munged} ) { # GUI update # TO DO: What if the document changed? Bad luck for now. $self->editor->SetText( $task->{munged} ); $self->ppi_select( $task->{location} ); return; } # Explain why it didn't work my $text; my $error = $self->{error} || ''; if ( $error =~ /no token/ ) { $text = Wx::gettext("Current cursor does not seem to point at a variable."); } elsif ( $error =~ /no declaration/ ) { $text = Wx::gettext("No declaration could be found for the specified (lexical?) variable."); } else { $text = Wx::gettext("Unknown error") . "\n$error"; } Wx::MessageBox( $text, Wx::gettext("Replace Operation Canceled"), Wx::OK, $self->current->main, ); } sub introduce_temporary_variable { my $self = shift; my $name = shift; my $editor = $self->editor; # Run the replacement in the background $self->task_request( task => 'Padre::Task::IntroduceTemporaryVariable', document => $self, varname => $name, start_location => $editor->GetSelectionStart, end_location => $editor->GetSelectionEnd - 1, on_finish => 'introduce_temporary_variable_response', ); return; } sub introduce_temporary_variable_response { my $self = shift; my $task = shift; if ( defined $task->{munged} ) { # GUI update # TO DO: What if the document changed? Bad luck for now. $self->editor->SetText( $task->{munged} ); $self->ppi_select( $task->{location} ); return; } # Explain why it didn't work my $text; my $error = $self->{error} || ''; if ( $error =~ /no token/ ) { $text = Wx::gettext("First character of selection does not seem to point at a token."); } elsif ( $error =~ /no statement/ ) { $text = Wx::gettext("Selection not part of a Perl statement?"); } else { $text = Wx::gettext("Unknown error"); } Wx::MessageBox( $text, Wx::gettext("Replace Operation Canceled"), Wx::OK, $self->current->main, ); } # this method takes the new subroutine name # and extracts the name and sets a call to it # Uses Devel::Refactor to get the code and create the new subroutine code. # Uses PPIx::EditorTools when no functions are in the script # Otherwise locates the entry point after a user has # provided a function name to insert the new code before. sub extract_subroutine { my ( $self, $newname ) = @_; my $editor = $self->editor; # get the selected code my $code = $editor->GetSelectedText; #print "startlocation: " . join(", ", @$start_position) . "\n"; # this could be configurable my $now = localtime; my $sub_comment = <<EOC; # # New subroutine "$newname" extracted - $now. # EOC # get the new code require Devel::Refactor; my $refactory = Devel::Refactor->new; my ( $new_sub_call, $new_code ) = $refactory->extract_subroutine( $newname, $code, 1 ); my $data = Wx::TextDataObject->new; $data->SetText( $sub_comment . $new_code . "\n\n" ); # we want to get a list of the subroutines to pick where to place # the new sub my @functions = $self->functions; # need to check there are functions already defined if ( scalar(@functions) == 0 ) { # get the current position of the selected text as we need it for PPI my $start_position = $self->character_position_to_ppi_location( $editor->GetSelectionStart ); my $end_position = $self->character_position_to_ppi_location( $editor->GetSelectionEnd - 1 ); # use PPI to find the right place to put the new subroutine require PPI::Document; my $text = $editor->GetText; my $ppi_doc = PPI::Document->new( \$text ); # /usr/local/share/perl/5.10.0/PPIx/EditorTools/IntroduceTemporaryVariable.pm # we have no subroutines to put before, so we # really just need to make sure we aren't in a block of any sort # and then stick the new subroutine in above where we are. # being above the selected text also means we won't # lose the location when the change is made to the document require PPIx::EditorTools; my $token = PPIx::EditorTools::find_token_at_location( $ppi_doc, $start_position ); return unless $token; my $statement = $token->statement; my $parent = $statement; #print "The statement is: " . $statement->statement . "\n"; my $last_location; # use this to get the last point before the PPI::Document while ( !$parent->isa('PPI::Document') ) { #print "parent currently: " . ref($parent) . "\n"; #print "location: " . join(', ', @{$parent->location} ) . "\n"; $last_location = $parent->location; $parent = $parent->parent; } #print "location: " . join(', ', @{$parent->location} ) . "\n"; #print "last location: " . join(', ' ,@$last_location) . "\n"; my $insert_start_location = $self->ppi_location_to_character_position($last_location); #print "Document start location is: $doc_start_location\n"; # make the change to the selected text $editor->BeginUndoAction; # do the edit atomically $editor->ReplaceSelection($new_sub_call); $editor->InsertText( $insert_start_location, $data->GetText ); $editor->EndUndoAction; return; } # Show a list of functions require Padre::Wx::Dialog::RefactorSelectFunction; my $dialog = Padre::Wx::Dialog::RefactorSelectFunction->new( $editor->main, \@functions ); $dialog->show; if ( $dialog->{cancelled} ) { return (); } my $subname = $dialog->get_function_name; # make the change to the selected text $editor->BeginUndoAction; # do the edit atomically $editor->ReplaceSelection($new_sub_call); # with the change made # locate the function: require Padre::Search; my ( $start, $end ) = Padre::Search->matches( text => $editor->GetText, regex => $self->get_function_regex($subname), submatch => 1, from => $editor->GetSelectionStart, to => $editor->GetSelectionEnd, ); unless ( defined $start ) { # This needs to now rollback the # the changes made with the editor $editor->Undo; $editor->EndUndoAction; # Couldn't find it # should be dialog #print "Couldn't find the sub: $subname\n"; return; } # now insert the text into the right location $editor->InsertText( $start, $data->GetText ); $editor->EndUndoAction; return (); } # This sub handles a cached C-Tags - Parser object which is much faster # than recreating it on every autocomplete sub perltags_parser { my $self = shift; # Don't scan on every char if there is no file return if $self->{_perltags_file_none}; my $perltags_file = $self->{_perltags_file}; require Parse::ExuberantCTags; my $config = Padre->ide->config; # Use the configured file (if any) or the old default, reset on config change if ( not defined $perltags_file or not defined $self->{_perltags_config} or $self->{_perltags_config} ne $config->lang_perl5_tags_file ) { foreach my $candidate ( $self->project_tagsfile, $config->lang_perl5_tags_file, File::Spec->catfile( $ENV{PADRE_HOME}, 'perltags' ) ) { # project_tagsfile and config value may be undef next if !defined($candidate); # config value may be defined but empty next if $candidate eq ''; # Check if the tagsfile exists using Padre::File # to allow "ftp://my.server/~myself/perltags" in config # and remote projects my $tagsfile = Padre::File->new($candidate); next if !defined($tagsfile); next if !$tagsfile->exists; # For non-local perltags-files, copy the file to a local tempfile, # otherwise the parser won't work or will be very slow. if ( $tagsfile->{protocol} ne 'local' ) { # Create temporary local file require File::Temp; $self->{_perltags_temp} = File::Temp->new( UNLINK => 1 ); # Flush tagsfile content to temporary file my $FH = $self->{_perltags_temp}; $FH->autoflush(1); print $FH $tagsfile->read; # File should not be closed - it may get deleted on close! # Use the local temporary file as tagsfile $self->{_perltags_file} = $self->{_perltags_temp}->filename; } else { $self->{_perltags_file} = $candidate; } # Use first existing file last; } # Remember current value for later checks $self->{_perltags_config} = $config->lang_perl5_tags_file; $perltags_file = $self->{_perltags_file}; # Remember that we don't have a file if we don't have one if ( defined($perltags_file) ) { $self->{_perltags_file_none} = 0; } else { $self->{_perltags_file_none} = 1; } # Reset timer for new file delete $self->{_perltags_parser_time}; } # If we don't have a file (none specified in config, for example), return undef # as the object and noone will try to use it return if not defined $perltags_file; my $parser; # Use the cached parser if # - there is one # - the last check is younger than 5 seconds (don't check the file again) # or the file's mtime matches our cached mtime if ( defined $self->{_perltags_parser} and defined $self->{_perltags_parser_time} and ( $self->{_perltags_parser_last} > time - 5 or $self->{_perltags_parser_time} == ( stat $perltags_file )[9] ) ) { $parser = $self->{_perltags_parser}; $self->{_perltags_parser_last} = time; } else { $parser = Parse::ExuberantCTags->new($perltags_file); $self->{_perltags_parser} = $parser; $self->{_perltags_parser_time} = ( stat $perltags_file )[9]; $self->{_perltags_parser_last} = time; } return $parser; } =pod =head2 autocomplete This method is called on two events: =over =item Manually using the C<autocomplete-action> (via menu, toolbar, hot key) =item on every char typed by the user if the C<autocomplete-always> configuration option is active =back Arguments: The event object (optional) Returns the prefix length and an array of suggestions. C<prefix_length> is the number of characters left to the cursor position which need to be replaced if a suggestion is accepted. If there are no suggestions, the functions returns an empty list. In case of error the function returns the error string as the first parameter. Hence users of this subroution need to check if the value returned in the first position is undef meaning no result or a string (including non digits) which means a failure or a number which means the prefix length. WARNING: This method runs very often (on each keypress), keep it as efficient and fast as possible! =cut sub autocomplete { my $self = shift; my $event = shift; my $config = Padre->ide->config; my $min_chars = $config->lang_perl5_autocomplete_min_chars; my $editor = $self->editor; my $pos = $editor->GetCurrentPos; my $line = $editor->LineFromPosition($pos); my $first = $editor->PositionFromLine($line); # This function is called very often, return asap return if ( $pos - $first ) < ( $min_chars - 1 ); # line from beginning to current position my $prefix = $editor->GetTextRange( $first, $pos ); # Remove any ident from the beginning of the prefix $prefix =~ s/^[\r\t]+//; return if length($prefix) == 0; # One char may be added by the current event return if length($prefix) < ( $min_chars - 1 ); # The second parameter may be a reference to the current event or the next # char which will be added to the editor: my $nextchar = ''; # Use empty instead of undef if ( defined($event) and ( ref($event) eq 'Wx::KeyEvent' ) ) { my $key = $event->GetUnicodeKey; $nextchar = chr($key); } elsif ( defined($event) and ( !ref($event) ) ) { $nextchar = $event; } return if ord($nextchar) == 27; # Close on escape $nextchar = '' if ord($nextchar) < 32; # check for variables my $parser = $self->perltags_parser; my $last = $editor->GetLength; my $pre_text = $editor->GetTextRange( 0, $first ); my $post_text = $editor->GetTextRange( $pos, $last ); require Padre::Document::Perl::Autocomplete; my $ac = Padre::Document::Perl::Autocomplete->new( minimum_prefix_length => $min_chars, maximum_number_of_choices => $config->lang_perl5_autocomplete_max_suggestions, minimum_length_of_suggestion => $config->lang_perl5_autocomplete_min_suggestion_len, prefix => $prefix, nextchar => $nextchar, pre_text => $pre_text, post_text => $post_text, ); my @ret = $ac->run($parser); return @ret if @ret; return $ac->auto; } sub newline_keep_column { my $self = shift; my $editor = $self->editor or return; my $pos = $editor->GetCurrentPos; my $line = $editor->LineFromPosition($pos); my $first = $editor->PositionFromLine($line); my $col = $pos - $first; my $text = $editor->GetTextRange( $first, $pos ); $editor->AddText( $self->newline ); $text =~ s/\S/ /g; $editor->AddText($text); $editor->SetCurrentPos( $pos + $col + 1 ); return 1; } =pod =head2 event_on_char This event fires once for every char which should be added to the editor window. Typing this line fired it about 41 times! Arguments: Current editor object, current event object Returns nothing useful. Notice: The char being typed has not been inserted into the editor at the run time of this method. It could be read using C<< $event->GetUnicodeKey >> WARNING: This method runs very often (on each keypress), keep it as efficient and fast as possible! =cut sub event_on_char { my $self = shift; my $editor = shift; my $event = shift; my $config = $editor->config; my $main = $editor->main; if ( $config->autocomplete_brackets ) { $self->autocomplete_matching_char( $editor, $event, 34 => 34, # " " 39 => 39, # ' ' 40 => 41, # ( ) 60 => 62, # < > 91 => 93, # [ ] 123 => 125, # { } ); } my $selection_exists = 0; my $text = $editor->GetSelectedText; if ( defined($text) && length($text) > 0 ) { $selection_exists = 1; } my $key = $event->GetUnicodeKey; my $pos = $editor->GetCurrentPos; my $line = $editor->LineFromPosition($pos); my $first = $editor->PositionFromLine($line); # removed the - 1 at the end #my $last = $editor->PositionFromLine( $line + 1 ); my $last = $editor->GetLineEndPosition($line); #print "pos,line,first,last: $pos,$line,$first,$last\n"; #print "$pos == $last\n"; # This only matches if all conditions are met: # - config option enabled # - none of the following keys pressed: a-z, A-Z, 0-9, _ # - cursor position is at end of line if (( $config->autocomplete_method or $config->autocomplete_subroutine ) and ( ( $key < 48 ) or ( ( $key > 57 ) and ( $key < 65 ) ) or ( ( $key > 90 ) and ( $key < 95 ) ) or ( $key == 96 ) or ( $key > 122 ) ) and ( $pos == $last ) ) { # from beginning to current position my $prefix = $editor->GetTextRange( 0, $pos ); # methods can't live outside packages, so ignore them my $linetext = $editor->GetTextRange( $first, $last ); # TODO: Fix picking up the space char so that # when indenting the cursor isn't one space 'in'. if ( $prefix =~ /package / ) { # we only match "sub foo" at the beginning of a line # but no inline subs (eval, anonymus, etc.) # The end-of-subname match is included in the first if # which match the last key pressed (which is not part of # $linetext at this moment: if ( $linetext =~ /^sub[\s\t]+(\w+)$/ ) { my $subname = $1; my $indent_string = $self->get_indentation_level_string(1); # Add the default skeleton of a method my $newline = $self->newline; my $text_before_cursor = " {$newline${indent_string}my \$self = shift;$newline$indent_string"; $text_before_cursor = " {$newline${indent_string}my \$class = shift;$newline$newline" . $indent_string . "my \$self = bless {\@_}, \$class;$newline$newline" . $indent_string if $subname eq 'new'; my $text_after_cursor = "$newline}$newline"; $text_after_cursor = $newline . $indent_string . "return \$self;" . $text_after_cursor if $subname eq 'new'; $editor->AddText( $text_before_cursor . $text_after_cursor ); # Ready for typing in the new method: $editor->GotoPos( $last + length($text_before_cursor) ); } } elsif ( $linetext =~ /^sub[\s\t]+(\w+)$/ && $config->autocomplete_subroutine ) { my $subName = $1; my $indent_string = $self->get_indentation_level_string(1); # Add the default skeleton of a subroutine, my $newline = $self->newline; $editor->AddText(" {$newline$indent_string$newline}"); # $line is where it starts my $starting_line = $line - 1; if ( $starting_line < 0 ) { $starting_line = 0; } #print "starting_line: $starting_line\n"; $editor->GotoPos( $editor->PositionFromLine($starting_line) ); # TODO Add option for auto pod #$editor->AddText( $self->_pod($subName) ); # $editor->GetLineEndPosition($editor->PositionFromLine( # TODO For pod this was 10 my $end_line = $starting_line + 2; $editor->GotoLine($end_line); #print "end_line: $end_line\n"; my $line_end_pos = $editor->GetLineEndPosition($end_line); #print "Line_end_pos: " . $line_end_pos . "\n"; my $last_pos = $editor->GetLineEndPosition($end_line); #print "Last pos: $last_pos\n"; # Ready for typing in the new function: $editor->GotoPos($last_pos); } } # Auto complete only when the user selected 'always' # and no ALT key is pressed if ( $config->autocomplete_always && ( not $event->AltDown ) ) { $main->on_autocompletion($event); } return; } sub _pod { my ( $self, $method ) = @_; my $pod = "\n=pod\n\n=head2 $method\n\n\tTODO: Document $method\n\n=cut\n"; return $pod; } # Our opportunity to implement a context-sensitive right-click menu # This would be a lot more powerful if we used PPI, but since that would # slow things down beyond recognition, we use heuristics for now. sub event_on_context_menu { my $self = shift; my $editor = shift; my $menu = shift; my $event = shift; # Use the editor's current cursor position # PLEASE DO NOT use the mouse event position # You will get inconsistent results regarding refactor tools # when pressing Windows context "right click" key my $pos = $editor->GetCurrentPos; my $separator = 0; my ( $location, $token ) = $self->get_current_symbol($pos); # Append variable specific menu items if it's a variable if ( defined $location and $token =~ /^[\$\*\@\%\&]/ ) { $menu->AppendSeparator unless $separator++; $menu->add_menu_action( 'perl.find_variable', ); $menu->add_menu_action( 'perl.rename_variable', ); # Start variable style sub-menu my $style = Wx::Menu->new; my $style_menu = $menu->Append( -1, Wx::gettext('Change variable style'), $style, ); $menu->add_menu_action( $style, 'perl.variable_to_camel_case', ); $menu->add_menu_action( $style, 'perl.variable_to_camel_case_ucfirst', ); $menu->add_menu_action( $style, 'perl.variable_from_camel_case', ); $menu->add_menu_action( $style, 'perl.variable_from_camel_case_ucfirst', ); } if ( defined $location and $token =~ /^\w+$/ ) { $menu->AppendSeparator unless $separator++; $menu->add_menu_action( 'perl.find_method', ); } # Is something selected if ( $editor->GetSelectionLength ) { $menu->AppendSeparator unless $separator++; $menu->add_menu_action( 'perl.introduce_temporary', ); $menu->add_menu_action( 'perl.edit_with_regex_editor', ); } } sub event_on_left_up { my $self = shift; my $editor = shift; my $event = shift; if ( $event->ControlDown ) { my ( $location, $token ) = $self->get_current_symbol; # Does it look like a variable? if ( defined $location and $token =~ /^[\$\*\@\%\&]/ ) { $self->find_variable_declaration; } # Does it look like a function? elsif ( defined $location and $editor->has_function($token) ) { $editor->goto_function($token); } # Does it look like a path or module? elsif ( defined $token and $token =~ /(?:\/|\:\:)/ ) { $self->current->main->on_open_selection($token); } } } sub event_mouse_moving { my $self = shift; my $editor = shift; my $event = shift; if ( $event->Moving and $event->ControlDown ) { # Mouse is moving with ctrl pressed. If anything under the # cursor looks like it can be clicked on to take us somewhere, # highlight it. # TODO: Currently only supports subs/methods in the same file my $point = $event->GetPosition; my $pos = $editor->PositionFromPoint($point); my ( $location, $token ) = $self->get_current_symbol($pos); $token ||= ''; if ( $self->{last_highlight} and $token ne $self->{last_highlight}->{token} ) { # No longer mousing over the same token so un-highlight it $self->_clear_highlight($editor); $self->{last_highlight} = undef; } return unless length $token; return unless $editor->has_function($token); $editor->manual_highlight_show( $location->[2], # Position length($token), # Characters ); $self->{last_highlight} = { token => $token, pos => $location->[2], }; } } sub event_key_up { my $self = shift; my $editor = shift; my $event = shift; if ( $event->GetKeyCode == Wx::K_CONTROL ) { # Ctrl key has been released, clear any highlighting $self->_clear_highlight($editor); } } sub _clear_highlight { my $self = shift; return unless $self->{last_highlight}; # Remove the last highlight my $editor = shift; $editor->manual_highlight_hide( $self->{last_highlight}->{pos}, length $self->{last_highlight}->{token}, ); undef $self->{last_highlight}; } # # Returns Perl's Help Provider # sub get_help_provider { require Padre::Document::Perl::Help; return Padre::Document::Perl::Help->new; } # # Returns Perl's Quick Fix Provider # sub get_quick_fix_provider { require Padre::Document::Perl::QuickFix; return Padre::Document::Perl::QuickFix->new; } sub autoclean { my $self = shift; my $editor = $self->editor; my $text = $editor->GetText; $text =~ s/[\s\t]+([\r\n]*?)$/$1/mg; $text .= "\n" if $text !~ /\n$/; $editor->SetText($text); return 1; } sub menu { my $self = shift; return [ 'menu.Perl', 'menu.Refactor' ]; } =pod =head2 project_tagsfile No arguments. Returns the full path and file name of the Perl tags file for the current document. =cut sub project_tagsfile { my $self = shift; my $project = $self->project or return; return File::Spec->catfile( $project->root, 'perltags' ); } =pod =head2 project_create_tagsfile Creates a tags file for the project of the current document. Includes all Perl source files within the project excluding F<blib>. =cut sub project_create_tagsfile { my $self = shift; # First try is using the perl-tags command, next version should so this # internal using Padre::File and should skip at least the "blip" dir. system 'perl-tags', '-o', $self->project_tagsfile, $self->project_dir; } sub find_help_topic { my $self = shift; my $editor = $self->editor; my $pos = $editor->GetCurrentPos; require PPI; my $text = $editor->GetText; my $doc = PPI::Document->new( \$text ); # Find token under the cursor! my $line = $editor->LineFromPosition($pos); my $line_start = $editor->PositionFromLine($line); my $line_end = $editor->GetLineEndPosition($line); my $col = $pos - $line_start; require Padre::PPI; my $token = Padre::PPI::find_token_at_location( $doc, [ $line + 1, $col + 1 ], ); return $token->content if defined($token); #TODO enable once we figure out what we actually need to accomplish here :) # if ($token) { # # #print $token->class . "\n"; # if ( $token->isa('PPI::Token::Symbol') ) { # if ( $token->content =~ /^[\$\@\%].+?$/ ) { # return 'perldata'; # } # } elsif ( $token->isa('PPI::Token::Operator') ) { # return $token->content; # } # } # # return; } sub guess_filename_to_open { my $self = shift; my $text = shift; # Convert a module name to a file name my $module = $text; $module =~ s{::}{/}g; $module .= ".pm"; # Check within our original startup directory SCOPE: { my $file = File::Spec->catfile( Padre->ide->{original_cwd}, $module, ); return $file if -e $file; } # If the file exists somewhere within our project, shortcut to it foreach my $dirs ( ['lib'], [] ) { my $file = File::Spec->catfile( $self->project_dir, @$dirs, $module, ); return $file if -e $file; } # Search for a list of possible module locations in the @INC path my @files = grep { -e $_ } map { File::Spec->catfile( $_, $module ) } ( File::Spec->catdir( $self->project_dir, 'inc' ), $self->get_inc, ); return @files if @files; # Is this an executable in the current PATH require File::Which; my $filename = File::Which::which($text); return $filename if defined $filename; return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Java.pm���������������������������������������������������������������0000644�0001750�0001750�00000002127�12237327555�015754� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Java; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Role::Task (); use Padre::Document (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Document }; ##################################################################### # Padre::Document Task Integration sub task_functions { return 'Padre::Document::Java::FunctionList'; } sub task_outline { return undef; } sub task_syntax { return undef; } sub get_function_regex { my $name = quotemeta $_[1]; return qr/ (?:^|[^# \t-]) [ \t]* ( (?: (public|protected|private|abstract|static|final|native| synchronized|transient|volatile|strictfp) \s+){0,2} # zero to 2 method modifiers (?: <\w+>\s+ )? # optional: generic type parameter (?: [\w\[\]<>]+) # return data type \s+$name )/x; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Java/�����������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�015403� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Java/FunctionList.pm��������������������������������������������������0000644�0001750�0001750�00000002404�12237327555�020373� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Java::FunctionList; use 5.008; use strict; use warnings; use Padre::Task::FunctionList (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::FunctionList'; ###################################################################### # Padre::Task::FunctionList Methods my $newline = qr{\cM?\cJ}; # recognize newline even if encoding is not the platform default (will not work for MacOS classic) my $method_search_regex = qr{ /\*.+?\*/ # block comment | \/\/.+?$newline # line comment | (?:^|$newline) # text start or newline \s* (?: (?: (?: public|protected|private|abstract|static| final|native|synchronized|transient|volatile| strictfp) \s+ ){0,2} # zero to 2 method modifiers (?: <\w+>\s+ )? # optional: generic type parameter (?: [\w\[\]<>]+) # return data type \s+ (\w+) # method name \s* \(.*?\) # parentheses around the parameters ) }sx; sub find { return grep { defined $_ } $_[1] =~ /$method_search_regex/g; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/CSharp/���������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�015702� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/CSharp/FunctionList.pm������������������������������������������������0000644�0001750�0001750�00000002617�12237327555�020700� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::CSharp::FunctionList; use 5.008; use strict; use warnings; use Padre::Task::FunctionList (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::FunctionList'; ###################################################################### # Padre::Task::FunctionList Methods my $newline = qr{\cM?\cJ}; # recognize newline even if encoding is not the platform default (will not work for MacOS classic) my $method_search_regex = qr{ /\*.+?\*/ # block comment | \/\/.+?$newline # line comment | (?:^|$newline) # text start or newline \s* (?: (?: \[ [\s\w()]+ \]\s* )? # optional annotations (?: (?: public|protected|private| abstract|static|sealed|virtual|override| explicit|implicit| operator| extern) \s+ ){0,4} # zero to 2 method modifiers (?: [\w\[\]<>,]+) # return data type \s+ (\w+) # method name (?: <\w+>)? # optional: generic type parameter \s* \(.*?\) # parentheses around the parameters ) }sx; sub find { return grep { defined $_ } $_[1] =~ /$method_search_regex/g; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Ruby/�����������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�015444� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Ruby/FunctionList.pm��������������������������������������������������0000644�0001750�0001750�00000001303�12237327555�020430� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Ruby::FunctionList; use 5.008; use strict; use warnings; use Padre::Task::FunctionList (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::FunctionList'; ###################################################################### # Padre::Task::FunctionList Methods my $n = "\\cM?\\cJ"; our $function_search_re = qr/ (?: =begin.*?=end | (?:^|$n)\s* (?: (?:def)\s+(\w+) ) ) /sx; sub find { return grep { defined $_ } $_[1] =~ /$function_search_re/g; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Document/Ruby.pm���������������������������������������������������������������0000644�0001750�0001750�00000003023�12237327555�016010� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document::Ruby; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Role::Task (); use Padre::Document (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Document }; ##################################################################### # Padre::Document Task Integration sub task_functions { return 'Padre::Document::Ruby::FunctionList'; } sub task_outline { return undef; } sub task_syntax { return undef; } sub get_function_regex { my $name = quotemeta $_[1]; return qr/(?:^|[^# \t-])[ \t]*((?:def)\s+$name\b|\*$name\s*=\s*)/; } sub get_command { my $self = shift; my $arg_ref = shift || {}; my $config = $self->config; # Use a temporary file if run_save is set to 'unsaved' my $filename = $config->run_save eq 'unsaved' && !$self->is_saved ? $self->store_in_tempfile : $self->filename; # Use console ruby require File::Which; my $ruby = File::Which::which('ruby') or die Wx::gettext("Cannot find ruby executable in your PATH"); $ruby = qq{"$ruby"} if Padre::Constant::WIN32; my $dir = File::Basename::dirname($filename); chdir $dir; my $shortname = File::Basename::basename($filename); my @commands = (qq{$ruby}); $shortname = qq{"$shortname"} if (Padre::Constant::WIN32); push @commands, qq{"$shortname"}; return join ' ', @commands; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task.pm������������������������������������������������������������������������0000644�0001750�0001750�00000043426�12237327555�014226� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task; =pod =head1 NAME Padre::Task - Padre Task API 3.0 =head1 SYNOPSIS # Fire a task that will communicate back to an owner object My::Task->new( owner => $padre_role_task_object, on_run => 'owner_run_method', on_status => 'owner_status_method', on_message => 'owner_message_method', on_finish => 'owner_finish_method', my_param1 => 123, my_param2 => 'abc', )->schedule; package My::Task; sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Check params and validate the task return $self; } sub prepare { my $self = shift; # Run after scheduling immediately before serialised to a worker return 0 if $self->my_last_second_abort_check; return 1; # Continue and run } sub run { my $self = shift; # Called in child, do the work here return 1; } sub finish { my $self = shift; # Called in parent after successful completion return 1; } 1; =head1 DESCRIPTION The Padre Task API implements support for background and parallel execution of code in the L<Padre> IDE, and is based on the CPAN L<Process> API. A B<Task Class> is a class that completely encapsulates a single unit of work, describing not only the work to be done, but also how the unit of work is created, how is serialised for transport, and any initialisation or cleanup work needs to be done. A B<Task> is a single self-contained unit of work, and is implemented as a single instance of a particular Task Class. =head2 The lifecycle of a Task object From the perspective of a task author, the execution of a task will occur in four distinct phases. =head3 1. Construction The creation of a task is always done completely independantly of its execution. Typically this is done via the C<new> method, or something that calls it. This separate construction step allows validation of parameters in advance, as well as allowing bulk task pre-generation and advanced task management functionality such as prioritisation, queueing, throttling and load-balancing of tasks. =head3 2. Preparation Once a task has been constructed, an arbitrarily long time may pass before the code is actually run (if it is ever run at all). If the actual execution of the task will result in certain work being done in the parent thread, this work cannot be done in the constructor. And once created as an object, no futher task code will be called until the task is ready for execution. To give the author a chance to allow for any problems that may occur as a result of this delay, the Task API provides a preparation phase for the task via the C<prepare> method. This preparation code is run in the parent thread once the task has been prioritised, has a worker allocated to it, and has been encapsulated in its L<Padre::TaskHandle>, but before the object is serialised for transport into the thread. A task can use this preparation phase to detach from non-serialisable resources in the object such as database handles, to copy any interesting parent state late rather than early, or decide on a last-second self-abort. Once the preparation phase is completed the task will be serialised, transported into assigned worker thread and then executed B<immediately>. Because it will execute in the parent thead, the rest of the Padre instance is available for use if needed, but the preparation code should run quickly and must not block. =head3 3. Execution The main phase of the task is where the CPU-intensive or blocking code can be safely run. It is run inside a worker thread in the background, without impacting on the performance of the parent thread. However, the task execution phase must be entirely self-contained. The worker threads not only do not have access to the Padre IDE variable structure, but most Padre classes (including heavily used modules such as L<Padre::Current>) will not be loaded at all in the worker thread. Any output that needs to be transported back to the parent should be stored in the object somewhere. When the cleanup phase is run, these values will be available automatically in the parent. =head3 4. Cleanup When the execution phase of the task is completed, the task object will be serialised for transport back up to the parent thread. On arrival, the instance of the task in the parent will be gutted and its contents replaced with the contents of the version arriving from the child thread. Once this is complete, the task object will fire a "finish" handler allowing it to take action in the parent thread based on the work done in the child. This can include having the task contact any "owner" object that had commissioned the task in the first place. =head1 METHODS =cut use 5.008005; use strict; use warnings; use Storable (); use Scalar::Util (); use Params::Util (); use Padre::Current (); use Padre::Role::Task (); our $VERSION = '1.00'; our $COMPATIBLE = '0.91'; =pod =head2 new My::Task->new( owner => $padre_role_task_object, on_run => 'owner_run_method', on_status => 'owner_status_method', on_message => 'owner_message_method', on_finish => 'owner_finish_method', my_param1 => 123, my_param2 => 'abc', ); The C<new> method creates a new "task", a self-contained object that represents a unit of work to be done in the background (although not required to be done in the background). In addition to defining a set of method for you to provide as the task implementer, the base class also provides implements a "task ownership" system in the base class that you may use for nearly no cost in terms of code. This task owner system will consume three parameters. The optional C<owner> parameter should be an object that inherits from the role L<Padre::Role::Task>. Message and finish events for this task will be forwarded on to handlers on the owner, if they are defined. The optional C<on_run> parameter should be the name of a method that can be called on the owner object, to be called once the task has started running and control of the worker message queue has been handed over to the task. The optional C<on_message> parameter should be the name of a method that can be called on the owner object, to be called when a message arrives from the child object during its execution. The required (if C<owner> was provided) C<on_finish> parameter should be the name of a method that can be called on the owner object, to be called when the task has completed and returns to the parent from the child object. When implementing your own task, you should always call the C<SUPER::new> method first, to ensure that integration with the task owner system is done. You can then check any other parameters, capture additional information from the IDE, and validate that the task is correctly requested and should go ahead. The creation of a task object does NOT imply that it will be executed, merely that the require for work to be done is validly formed. A task object may never execute, or may only execute significantly later than it was created. Anything that the task needs to do once it is certain that the task will be run should be done in the C<prepare> method (see below). Returns a new task object if the request is valid, or throws an exception if the request is invalid. =cut sub new { my $class = shift; my $self = bless {@_}, $class; # Check parameters relevant to our optional owner if ( exists $self->{owner} ) { if ( exists $self->{on_run} ) { unless ( Params::Util::_IDENTIFIER( $self->{on_run} ) ) { die "Task 'on_run' method be a method name"; } } if ( exists $self->{on_status} ) { unless ( Params::Util::_IDENTIFIER( $self->{on_status} ) ) { die "Task 'on_status' must be a method name"; } } if ( exists $self->{on_message} ) { unless ( Params::Util::_IDENTIFIER( $self->{on_message} ) ) { die "Task 'on_message' must be a method name"; } } if ( exists $self->{on_finish} ) { unless ( Params::Util::_IDENTIFIER( $self->{on_finish} ) ) { die "Task 'on_finish' must be a method name"; } } } return $self; } =pod =head2 on_run The C<on_run> accessor returns the name of the owner's C<run> notification handler method, if one was defined. =cut sub on_run { $_[0]->{on_run}; } =pod =head2 on_status The C<on_status> accessor returns the name of the owner's status handler method, if one was defined. =cut sub on_status { $_[0]->{on_status}; } =pod =head2 on_message The C<on_message> accessor returns the name of the owner's message handler method, if one was defined. =cut sub on_message { $_[0]->{on_message}; } =pod =head2 on_finish The C<on_finish> accessor returns the name of the owner's finish handler method, if one was defined. =cut sub on_finish { $_[0]->{on_finish} || 'task_finish'; } ###################################################################### # Serialization - Based on Process::Serializable and Process::Storable =pod =head2 as_string The C<as_string> method is used to serialise the task into a string for transmission between the parent and the child (in both directions). By default your task will be serialised using L<Storable>'s C<nfreeze> method, which is suitable for transmission between threads or processes running the same instance of Perl with the same module search path. This should be sufficient in most situations. =cut sub as_string { Storable::nfreeze( $_[0] ); } =pod =head2 from_string The C<from_string> method is used to deserialise the task from a string after transmission between the parent and the child (in both directions). By default your task will be deserialised using L<Storable>'s C<thaw> method, which is suitable for transmission between threads or processes running the same instance of Perl with the same module search path. This should be sufficient in most situations. =cut sub from_string { my $class = shift; my $self = Storable::thaw( $_[0] ); unless ( Scalar::Util::blessed($self) eq $class ) { # Because this is an internal API we can be brutally # unforgiving if we aren't use the right way. die("Task unexpectedly did not deserialize as a $class"); } return $self; } ###################################################################### # Task API - Based on Process.pm =pod =head2 locks The C<locks> method returns a list of locks that the task needs to reserve in order to execute safely. The meaning, usage, and available quantity of the required locks are tracked by the task manager. Enforcement of resource limits may be strict, or may only serve as hints to the scheduler. Returns a list of strings, or the null list if the task is light with trivial or no resource consumption. =cut sub locks { return (); } =pod =head2 schedule $task->schedule; The C<schedule> method is used to trigger the sending of the task to a worker for processing at whatever time the Task Manager deems it appropriate. This could be immediately, with the task sent before the call returns, or it may be delayed indefinately or never run at all. Returns true if the task was dispatched immediately. Returns false if the task was queued for later dispatch. =cut sub schedule { Padre::Current->ide->task_manager->schedule(@_); } =pod =head2 prepare The optional C<prepare> method will be called by the task manager on your task object while still in the parent thread, immediately before being serialised to pass to the worker thread. This method should be used to compensate for the potential time difference between when C<new> is oridinally called and when the task will actually be run. For example, a GUI element may indicate the need to run a background task on the visible document but does not care that it is the literally "current" document at the time the task was spawned. By capturing the contents of the current document during C<prepare> rather than C<new> the task object is able to apply the task to the most up to date information at the time we are able to do the work, rather than at the time we know we need to do the work. The C<prepare> method can take a relatively heavy parameter such as a reference to a Wx element, and flatten it to the widget ID or contents of the widget instead. The C<prepare> method also gives your task object a chance to determine whether or not it is still necessary. In some situations the delay between C<new> and C<prepare> may be long enough that the task is no longer relevant, and so by the use of C<prepare> you can indicate execution should be aborted. Returns true if the task is stil valid, and so the task should be executed. Returns false if the task is no longer valid, and the task should be aborted. =cut sub prepare { return 1; } =pod =head2 run The C<run> method is called on the object in the worker thread immediately after deserialisation. It is where the actual computations and work for the task occurs. In many situations the implementation of run is simple and procedural, doing work based on input parameters stored on the object, blocking if necessary, and storing the results of the computation on the object for transmission back to the parent thread. In more complex scenarios, you may wish to do a series of tasks or a recursive set of tasks in a loop with a check on the C<cancelled> method periodically to allow the aborting of the task if requested by the parent. In even more advanced situations, you may embed and launch an entire event loop such as L<POE> or L<AnyEvent> inside the C<run> method so that long running or complex functionality can be run in the background. Once inside of C<run> your task is in complete control and the task manager cannot interupt the execution of your code short of killing the thread entirely. The standard C<cancelled> method to check for a request from the parent to abort your task is cooperative and entirely voluntary. Returns true if the computation was completed successfully. Returns false if the computation was not completed successfully, and so the parent should not run any post-task logic. =cut sub run { return 1; } =pod =head2 finish The C<finish> method is called on the object in the parent thread once it has been passed back up to the parent, if C<run> completed successfully. It is responsible for cleaning up the task and taking any actions based on the result of the computation. If your task is fire-and-forget or void and you don't care about when the task completes, you do not need to implement this method. The default implementation of C<finish> implements redirection to the C<on_finish> handler of the task owner object, if one has been defined. =cut sub finish { return 1; } =pod =head2 is_parent The C<is_parent> method returns true if the task object is in the parent thread, or false if it is in the child thread. =cut sub is_parent { not defined $_[0]->{handle}; } =pod =head2 is_child The C<is_child> method returns true if the task object is in the child thread, or false if it is in the parent thread. =cut sub is_child { defined $_[0]->{handle}; } ###################################################################### # Birectional Communication =pod =head2 cancelled sub run { my $self = shift; # Abort a long task if we are no longer wanted foreach my $thing ( @{$self->{lots_of_stuff}} ) { return if $self->cancelled; # Do something expensive } return 1; } The C<cancelled> method should be called in the child worker, and allows the task to be cooperatively aborted before it has completed. The abort mechanism is cooperative. Tasks that do not periodically check the C<cancelled> method will continue until they are complete regardless of the desires of the task manager. =cut sub cancelled { return unless defined $_[0]->{handle}; return shift->{handle}->cancelled; } # Fetch the next message from our inbox sub child_inbox { return undef unless defined $_[0]->{handle}; return shift->{handle}->inbox; } # Block until we are cancelled or there is a message from our parent sub child_wait { return unless defined $_[0]->{handle}; return shift->{handle}->wait; } sub tell_parent { return unless defined $_[0]->{handle}; return shift->{handle}->tell_parent(@_); } sub tell_child { return unless defined $_[0]->{handle}; return shift->{handle}->tell_child(@_); } sub tell_owner { return unless defined $_[0]->{handle}; return shift->{handle}->tell_owner(@_); } =pod =head2 tell_status # Indicate we are waiting, but only while we are waiting $task->tell_status('Waiting...'); sleep 5 $task->tell_status; The C<tell_status> method allows a task to trickle informative status messages up to the parent thread. These messages serve a dual purpose. Firstly, the messages will (or at least I<may>) be displayed to the user to indicate progress through a long asynchronous background task. For example, a filesystem search task might send a status message for each directory that it examines, so that the user can monitor the task speed and level of completion. Secondly, the regular flow of messages from the task indicates to the L<Padre::TaskManager> that the task is running correctly, making progress through its assigned workload, and has probably not crashed or hung. While the task manager does not currently kill hanging threads, it will almost certainly do so in the future. And so it may even be worth sending a periodic null status message every few seconds just to assure the task manager that your long-running task is still alive. =cut sub tell_status { return unless defined $_[0]->{handle}; return shift->{handle}->tell_status(@_); } 1; =pod =head1 SEE ALSO L<Padre>, L<Process> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Autosave.pm��������������������������������������������������������������������0000644�0001750�0001750�00000011064�12237327555�015104� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Autosave; use 5.008; use strict; use warnings; our $VERSION = '1.00'; =head1 NAME Padre::Autosave - auto-save and recovery mechanism for Padre =head1 SYNOPSIS my $autosave = Padre:Autosave->new( db => 'path/to/database' ); $autosave->save_file( $path, $type, $data, $timestamp ) = @_; =head1 DESCRIPTION =head1 The longer auto-save plan The following is just a plan that is currently shelved as some people on the Padre development list think this is not necessary and one should use a real version control for this anyway. So I leave it here for now, for future exploration. I'd like to provide auto-save with some history and recovery service. While I am writing this for Padre I'll make the code separate so others can use it. An SQLite database will be used for this but theoretically any database could be used. Event plain file system. Basically this will provide a versioned file system with metadata and automatic cleanup. Besides the content of the file we need to save some meta data: =over =item path to the file will be the unique identifier =item timestamp =item type of save (initial, auto-save, user initiated save, external) =back When opening a file for the first time it is saved in the database.(initial) Every N seconds files that are not currently in "saved" situation are auto-saved in the database making sure that they are only saved if they differ from the previous state. (auto-save) Evey time a file is saved it is also saved to the database. (user initiated save) Before reloading a file we auto-save it. (auto-save) Every time we notice that a file was changed on the disk if the user decides to overwrite it we also save the (external) changed file. Before auto-saving a file we make sure it has not changed since the last auto-save. In order to make sure the database does not get too big we setup a cleaning mechanism that is executed once in a while. There might be several options but for now: 1) Every entry older than N days will be deleted. Based on the database we'll be able to provide the user recovery in case of crash or accidental overwrite. When opening padre we should check if there are files in the database that the last save was B<not> a user initiated save and offer recovery. When opening a file we should also check how is it related to the last save in the database. For buffers that were never saved and so have no file names we should have some internal identifier in Padre and use that for the auto-save till the first user initiated save. The same mechanism will be really useful when we start providing remote editing. Then a file is identified by its URI ( ftp://machine/path/to/file or scp://machine/path/to/file ) my @types = qw(initial, autosave, usersave, external); sub save_data { my ($path, $timestamp, $type, $data) = @_; } =cut sub new { my ( $class, %args ) = @_; my $self = bless \%args, $class; Carp::croak("No filename is given") if not $self->{dbfile}; require ORLite; ORLite->import( { file => $self->{dbfile}, create => 1, table => 0, } ); $self->setup; return $self; } sub table_exists { $_[0]->selectrow_array( "select count(*) from sqlite_master where type = 'table' and name = ?", {}, $_[1], ); } sub setup { my $class = shift; # Create the autosave table $class->do(<<'END_SQL') unless $class->table_exists('autosave'); CREATE TABLE autosave ( id INTEGER PRIMARY KEY AUTOINCREMENT, path VARCHAR(1024), timestamp VARCHAR(255), type VARCHAR(255), content BLOB ); CREATE INDEX file_path ON autosave (path); END_SQL } sub types { return qw(initial autosave usersave external); } sub list_files { my $rows = $_[0]->selectall_arrayref('SELECT DISTINCT path FROM autosave'); return map {@$_} @$rows; } sub save_file { my ( $self, $path, $type, $content ) = @_; Carp::croak("Missing type") if not defined $type; Carp::croak("Invalid type '$type'") if not grep { $type eq $_ } $self->types; Carp::croak("Missing file") if not defined $path; $self->do( 'INSERT INTO autosave ( path, timestamp, type, content ) values ( ?, ?, ?, ?)', {}, $path, time(), $type, $content, ); return; } sub list_revisions { my ( $self, $path ) = @_; Carp::croak("Missing file") if not defined $path; return $self->selectall_arrayref( "SELECT id, timestamp, type FROM autosave WHERE path = ? ORDER BY id", undef, $path ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/PluginHandle.pm����������������������������������������������������������������0000644�0001750�0001750�00000023673�12237327555�015700� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::PluginHandle; use 5.008; use strict; use warnings; use Carp (); use Params::Util (); use Padre::Util (); use Padre::Current (); use Padre::Locale::T; our $VERSION = '1.00'; use Class::XSAccessor { getters => { class => 'class', db => 'db', plugin => 'plugin', }, }; my %STATUS = ( error => _T('Error'), unloaded => _T('Unloaded'), loaded => _T('Loaded'), incompatible => _T('Incompatible'), disabled => _T('Disabled'), enabled => _T('Enabled'), ); ##################################################################### # Constructor and Accessors sub new { my $class = shift; my $self = bless { @_, status => 'unloaded', errstr => [''], }, $class; # Check params if ( exists $self->{name} ) { Carp::confess("PluginHandle->name should no longer be used (foo)"); } my $module = $self->class; my $plugin = $self->plugin; unless ( Params::Util::_CLASS($module) ) { Carp::croak("Missing or invalid class param for Padre::PluginHandle"); } if ( defined $plugin and not Params::Util::_INSTANCE( $plugin, $module ) ) { Carp::croak("Invalid plugin param for Padre::PluginHandle"); } unless ( _STATUS( $self->status ) ) { Carp::croak("Missing or invalid status param for Padre::PluginHandle"); } # Load or create the database configuration for the plugin unless ( Params::Util::_INSTANCE( $self->db, 'Padre::DB::Plugin' ) ) { local $@; require Padre::DB; $self->{db} = eval { Padre::DB::Plugin->load($module); }; $self->{db} ||= Padre::DB::Plugin->create( name => $module, # Track the last version of the plugin that we were # able to successfully enable (nothing to start with) version => undef, # Having undef here means no preference yet enabled => undef, config => undef, ); } return $self; } ##################################################################### # Status Methods sub locale_prefix { my $self = shift; my $string = $self->class; $string =~ s/::/__/g; return $string; } sub status { my $self = shift; if (@_) { unless ( _STATUS( $_[0] ) ) { Carp::croak("Invalid PluginHandle status '$_[0]'"); } $self->{status} = $_[0]; } return $self->{status}; } sub status_localized { my $self = shift; my $text = $STATUS{ $self->{status} } or return; return Wx::gettext($text); } sub error { $_[0]->{status} eq 'error'; } sub unloaded { $_[0]->{status} eq 'unloaded'; } sub loaded { $_[0]->{status} eq 'loaded'; } sub incompatible { $_[0]->{status} eq 'incompatible'; } sub disabled { $_[0]->{status} eq 'disabled'; } sub enabled { $_[0]->{status} eq 'enabled'; } sub can_enable { $_[0]->{status} eq 'loaded' or $_[0]->{status} eq 'disabled'; } sub can_disable { $_[0]->{status} eq 'enabled'; } sub can_editor { $_[0]->{status} eq 'enabled' and $_[0]->{plugin}->can('editor_enable'); } sub can_context { $_[0]->{status} eq 'enabled' and $_[0]->{plugin}->can('event_on_context_menu'); } sub errstr { my $self = shift; # Set the error string if (@_) { $self->{errstr} = [@_]; return 1; } # Delay the translating sprintf and rerun each time, # so that plugin errors can appear in the currently active language # instead of the language at the time of the error. my @copy = @{ $self->{errstr} }; my $text = Wx::gettext( shift @copy ); return sprintf( $text, @copy ); } ###################################################################### # Interface Methods # Wrap any can call in an eval as the plugin might have a custom # can method and we need to be paranoid around plugins. sub plugin_can { my $self = shift; my $plugin = $self->{plugin} or return undef; # Ignore errors and flatten to a boolean local $@; return !!eval { $plugin->can(shift) }; } sub plugin_icon { my $self = shift; my $icon = eval { $self->class->plugin_icon; }; if ( Params::Util::_INSTANCE( $icon, 'Wx::Bitmap' ) ) { return $icon; } else { return; } } sub plugin_name { my $self = shift; if ( $self->plugin_can('plugin_name') ) { local $@; return scalar eval { $self->plugin->plugin_name }; } else { return $self->class; } } sub plugin_version { my $self = shift; # Prefer the version from the loaded plugin if ( $self->plugin_can('VERSION') ) { local $@; my $rv = eval { $self->plugin->VERSION; }; return $rv; } # Intuit the version by reading the actual file require Class::Inspector; my $file = Class::Inspector->resolved_filename( $self->class ); if ($file) { require Padre::Util; my $version = Padre::Util::parse_variable( $file, 'VERSION' ); return $version if $version; } return '???'; } # Wrapper over the void context call to preferences sub plugin_preferences { my $self = shift; if ( $self->plugin_can('plugin_preferences') ) { local $@; eval { $self->plugin->plugin_preferences }; } } ###################################################################### # Pass-Through Methods sub enable { my $self = shift; unless ( $self->can_enable ) { Carp::croak("Cannot enable plug-in '$self'"); } # Add the plugin catalog to the locale require Padre::Locale; my $prefix = $self->locale_prefix; my $code = Padre::Locale::rfc4646(); my $current = $self->current; my $main = $current->main; $main->{locale}->AddCatalog("$prefix-$code"); # Call the enable method for the object my $plugin_status; eval { $plugin_status = $self->plugin->plugin_enable; }; if ($@) { # Crashed during plugin enable $self->status('error'); $self->errstr( _T("Failed to enable plug-in '%s': %s"), $self->class, $@, ); return 0; } else { if ( not $plugin_status ) { # Prerequisites missing plug-in enable $self->status('error'); $self->errstr( _T("Prerequisites missing suggest you read the POD for '%s': %s"), $self->class, $@, ); return 0; } } # If the plugin defines document types, register them. # Skip document registration on error. my @documents = eval { $self->plugin->registered_documents; }; if ($@) { # Crashed during document registration $self->status('error'); $self->errstr( _T("Failed to enable plug-in '%s': %s"), $self->class, $@, ); return 0; } while (@documents) { my $type = shift @documents; my $class = shift @documents; require Padre::MIME; Padre::MIME->find($type)->plugin($class); } # If the plugin defines syntax highlighters, register them. # Skip highlighter registration on error. # TO DO remove these when plugin is disabled (and make sure files # are not highlighted with this any more) my @highlighters = eval { $self->plugin->registered_highlighters; }; if ($@) { # Crashed during highlighter registration $self->status('error'); $self->errstr( _T("Failed to enable plug-in '%s': %s"), $self->class, $@, ); return 0; } while (@highlighters) { my $module = shift @highlighters; my $params = shift @highlighters; require Padre::Wx::Scintilla; Padre::Wx::Scintilla->add_highlighter( $module, $params ); } # Look for Padre hooks if ( $self->plugin->can('padre_hooks') ) { my $hooks = eval { $self->plugin->padre_hooks; }; if ( ref($hooks) ne 'HASH' ) { $main->error( sprintf( Wx::gettext('Plugin %s returned %s instead of a hook list on ->padre_hooks'), $self->class, $hooks, ) ); return; } my $manager = $current->ide->plugin_manager; for my $hookname ( keys( %{$hooks} ) ) { if ( !$Padre::PluginManager::PADRE_HOOKS{$hookname} ) { $main->error( sprintf( Wx::gettext('Plugin %s tried to register invalid hook %s'), $self->class, $hookname ) ); next; } for my $hook ( ( ref( $hooks->{$hookname} ) eq 'ARRAY' ) ? @{ $hooks->{$hookname} } : $hooks->{$hookname} ) { if ( ref($hook) ne 'CODE' ) { $main->error( sprintf( Wx::gettext('Plugin %s tried to register non-CODE hook %s'), $self->class, $hookname ) ); next; } push @{ $manager->{hooks}->{$hookname} }, [ $self->plugin, $hook ]; } } } # Update the last-enabled version each time it is enabled $self->update( version => $self->plugin_version ); # Update the status $self->status('enabled'); $self->errstr(''); return 1; } sub disable { my $self = shift; unless ( $self->can_disable ) { Carp::croak("Cannot disable plug-in '$self'"); } # If the plugin defines document types, deregister them my @documents = $self->plugin->registered_documents; while (@documents) { my $type = shift @documents; my $class = shift @documents; Padre::MIME->find($type)->reset; } # Call the plugin's own disable method eval { $self->plugin->plugin_disable; }; if ($@) { # Crashed during plugin disable $self->status('error'); $self->errstr( _T("Failed to disable plug-in '%s': %s"), $self->class, $@, ); return 1; } # Remove hooks # The ->padre_hooks method may not return constant values, scanning the hook # tree is much safer than removing the hooks reported _now_ # NOTE: Horribly violates encapsulation my $manager = $self->current->ide->plugin_manager; for my $hookname ( keys( %{ $manager->{hooks} } ) ) { my @new_list; for my $hook ( @{ $manager->{hooks}->{$hookname} } ) { next if $hook->[0] eq $self->plugin; push @new_list, $hook; } $manager->{hooks}->{$hookname} = \@new_list; } # Update the status $self->status('disabled'); $self->errstr(''); return 0; } sub unload { require Padre::Unload; Padre::Unload::unload( $_[0]->class ); } sub update { shift->db->update(@_); } ###################################################################### # Support Methods sub current { if ( $_[0]->{plugin} ) { return $_[0]->{plugin}->current; } else { return Padre::Current->new; } } sub _STATUS { Params::Util::_STRING( $_[0] ) or return; return { error => 1, unloaded => 1, loaded => 1, incompatible => 1, disabled => 1, enabled => 1, }->{ $_[0] }; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������Padre-1.00/lib/Padre/TaskManager.pm�����������������������������������������������������������������0000644�0001750�0001750�00000046563�12237327555�015526� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::TaskManager; =pod =head1 NAME Padre::TaskManager - Padre Background Task and Service Manager =head1 DESCRIPTION The B<Padre Task Manager> is responsible for scheduling, queueing and executing all operations that do not occur in the main application thead. While there is rarely any need for code elsewhere in Padre or a plugin to make calls to this API, documentation is included for maintenance purposes. It spawns and manages a pool of workers which act as containers for the execution of standalone serialisable tasks. This execution model is based loosely on the CPAN L<Process> API, and involves the parent process creating L<Padre::Task> objects representing the work to do. These tasks are serialised to a bytestream, passed down a shared queue to an appropriate worker, deserialised back into an object, executed, and then reserialised for transmission back to the parent thread. =head2 Task Structure Tasks operate on a shared-nothing basis. Each worker is required to reload any modules needed by the task, and the task cannot access any of the data structures. To compensate for these limits, tasks are able to send messages back and forth between the instance of the task object in the parent and the instance of the same task in the child. Using this messaging channel, a task object in the child can send status message or incremental results up to the parent, and the task object in the parent can make changes to the GUI based on these messages. The same messaging channel allows a background task to be cancelled elegantly by the parent, although support for the "cancel" message is voluntary on the part of the background task. =head2 Service Structure Services are implemented via the L<Padre::Service> API. This is nearly identical to, and sub-classes directly, the L<Padre::Task> API. The main difference between a task and a service is that a service will be allocated a private, unused and dedicated worker that has never been used by a task. Further, workers allocated to services will also not be counted against the "maximum workers" limit. =head1 METHODS =cut use 5.008005; use strict; use warnings; use Params::Util (); use Padre::Config (); use Padre::Current (); use Padre::TaskHandle (); use Padre::TaskWorker (); use Padre::Logger; our $VERSION = '1.00'; our $COMPATIBLE = '0.81'; # Timeout values use constant { MAX_START_TIMEOUT => 10, MAX_IDLE_TIMEOUT => 30, }; ###################################################################### # Constructor and Accessors # NOTE: To keep dependencies down in this general area in case of a future # spin-off CPAN module do NOT port accessors below to Class::XSAccessor. =pod =head2 new my $manager = Padre::TaskManager->new( conduit => $message_conduit, ); The C<new> constructor creates a new Task Manager instance. While it is theoretically possible to create more than one instance, in practice this is never likely to occur. The constructor has a single compulsory parameter, which is an object that implements the "message conduit" role L<Padre::Wx::Role::Conduit>. The message conduit is an object which provides direct integration with the underlying child-to-parent messaging pipeline, which in L<Padre> is done via L<Wx::PlThreadEvent> thread events. Because the message conduit is provided to the constructor, the Task Manager itself is able to function with no L<Wx>-specific code whatsoever. This simplifies implementation, allows sophisticated test rigs to be created, and makes it easier for us to spin off the Task Manager as a some notional standalone CPAN module. =cut sub new { TRACE( $_[0] ) if DEBUG; my $class = shift; my %param = @_; my $conduit = delete $param{conduit} or die "Failed to provide event conduit"; my $self = bless { active => 0, # Are we running at the moment threads => 1, # Are threads enabled maximum => 5, # The most workers we should use %param, workers => [], # List of all workers handles => {}, # Handles for all active tasks running => {}, # Mapping from tid back to parent handle queue => [], # Pending tasks to run in FIFO order locks => {}, # Tracks consumed locks }, $class; # Do the initialisation needed for the event conduit $conduit->conduit_init($self); return $self; } =pod =head2 active The C<active> accessor returns true if the task manager is currently running, or false if not. Generally task manager startup will occur relatively early in the Padre startup sequence, and task manager shutdown will occur relatively early in the shutdown sequence (to prevent accidental task execution during shutdown). =cut sub active { $_[0]->{active}; } =pod =head2 maximum The C<maximum> accessor returns the maximum quantity of worker threads that the task manager will use for running ordinary finite-length tasks. Once the number of active workers reaches the C<maximum> limit, futher tasks will be pushed onto a queue to wait for a free worker. =cut sub maximum { $_[0]->{maximum}; } ###################################################################### # Main Methods =pod =head2 start $manager->start; The C<start> method bootstraps the task manager, creating the master thread. =cut sub start { TRACE( $_[0] ) if DEBUG; my $self = shift; # Start the master if it wasn't pre-launched if ( $self->{threads} ) { unless ( Padre::TaskWorker->master_running ) { Padre::TaskWorker->master; } } # We are now active $self->{active} = 1; # Take one initial spin through the dispatch loop to run anything # that queued up before we were started. $self->run; } =pod =head2 stop $manager->stop; The C<stop> method shuts down the task manager, signalling active workers that they should do an elegant shutdown. =cut sub stop { TRACE( $_[0] ) if DEBUG; my $self = shift; # Disable and clear pending tasks $self->{active} = 0; $self->{queue} = []; # Shut down the master thread # NOTE: We ignore the status of the thread master settings here and # act only on the basis of whether or not a master thread is running. if ($Padre::TaskWorker::VERSION) { if ( Padre::TaskWorker->master_running ) { Padre::TaskWorker->master->send_stop; } } # Stop all of our workers foreach ( 0 .. $#{ $self->{workers} } ) { $self->stop_worker($_); } # Empty task handles # TODO: is this the right way of doing it? $self->{handles} = {}; return 1; } =pod =head2 schedule The C<schedule> method is used to give a task to the task manager and indicate it should be run as soon as possible. This may be immediately (with the task sent to a worker before the method returns) or it may be delayed until some time in the future if all workers are busy. As a convenience, this method returns true if the task could be dispatched immediately, or false if it was queued for future execution. =cut sub schedule { TRACE( $_[1] ) if DEBUG; my $self = shift; my $task = Params::Util::_INSTANCE( shift, 'Padre::Task' ); unless ($task) { die "Invalid task scheduled!"; # TO DO: grace } # Add to the queue of pending events push @{ $self->{queue} }, $task; # Dispatch this task and anything else waiting from a previous call. $self->run; } =pod =head2 cancelled $manager->cancelled( $owner ); The C<cancelled> method is used with the "task ownership" feature of the L<Padre::Task> 3.0 API to signal tasks running in the background that were created by a particular object that they should voluntarily abort as their results are no longer wanted. =cut sub cancel { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $owner = shift; my $queue = $self->{queue}; # Remove any tasks from the pending queue @$queue = grep { !defined $_->{owner} or $_->{owner} != $owner } @$queue; # Signal any active tasks to cooperatively abort themselves foreach my $handle ( values %{ $self->{handles} } ) { my $task = $handle->{task} or next; next unless $task->{owner}; next unless $task->{owner} == $owner; $handle->cancel; foreach my $worker ( grep { defined $_ } @{ $self->{workers} } ) { next unless defined $handle->{worker}; next unless $worker->{wid} == $handle->{worker}; TRACE("Sending 'cancel' message to worker $worker->{wid}") if DEBUG; $worker->send_cancel; return 1; } } return 1; } ###################################################################### # Support Methods =pod =head2 start_worker my $worker = $manager->start_worker; The C<start_worker> starts and returns a new registered L<Padre::TaskWorker> object, ready to execute a task or service in. You generally should never need to call this method from outside B<Padre::TaskManager>. =cut sub start_worker { TRACE( $_[0] ) if DEBUG; my $self = shift; unless ( Padre::TaskWorker->master_running ) { die "Master thread is unexpectedly not running"; } # Start the worker via the master. my $worker = Padre::TaskWorker->new; Padre::TaskWorker->master->send_child($worker); push @{ $self->{workers} }, $worker; return $worker; } =pod =head2 stop_worker $manager->stop_worker(1); The C<stop_worker> method shuts down a single worker, which (unfortunately) at this time is indicated via the internal index position in the workers array. =cut sub stop_worker { TRACE( $_[0] ) if DEBUG; my $self = shift; my $worker = delete $self->{workers}->[ $_[0] ]; if ( $worker->handle ) { # Tell the worker to abandon what it is doing if (DEBUG) { my $tid = $worker->tid; TRACE("Sending 'cancel' message to thread '$tid' before stopping"); } $worker->send_cancel; } $worker->send_stop; return 1; } =pod =head2 kill_worker $manager->kill_worker(1); The C<kill_worker> method forcefully and immediately terminates a worker, and like C<stop_worker> the worker to kill is indicated by the internal index position within the workers array. B<This method is not yet in use, the Task Manager does not current have the ability to forcefully terminate workers.> =cut sub kill_worker { TRACE( $_[0] ) if DEBUG; my $self = shift; my $worker = delete $self->{workers}->[ $_[0] ] or return; # Send a sigstop to the worker thread, if it is running my $thread = $worker->thread or return; $thread->kill('STOP'); } =pod =head2 run The C<run> method tells the Task Manager to sweep the queue of pending tasks and dispatch as many as possible to worker threads. Generally you should never need to call this method directly, as it will be called whenever you schedule a task or when a worker becomes available. Returns true if all pending tasks were dispatched, or false if any tasks remain on the queue. =cut sub run { # TRACE( $_[0] ) if DEBUG; my $self = shift; # Do nothing if we somehow arrive here when the task manager isn't on. return 1 unless $self->{active}; # Try to dispatch tasks until we run out my $queue = $self->{queue}; my $handles = $self->{handles}; my $i = 0; while (@$queue) { last if $i > $#$queue; # Shortcut if there is nowhere to run the task if ( $self->{threads} ) { if ( scalar keys %$handles >= $self->{maximum} ) { TRACE('No more task handles available') if DEBUG; return; } } # Can we execute the task at this position in the queue? unless ( $self->good_task( $queue->[$i] ) ) { $i++; next; } # Prepare the confirmed-good task my $task = splice( @$queue, $i, 1 ); my $handle = Padre::TaskHandle->new($task); unless ( $handle->prepare ) { # Task wishes to abort itself. Oblige it. undef $handle; # Move on to the next task next; } # Register the handle for child messages my $hid = $handle->hid; TRACE("Handle $hid registered for messages") if DEBUG; $handles->{$hid} = $handle; if ( $self->{threads} ) { # Find the next/best worker for the task my $worker = $self->best_worker($handle); if ($worker) { TRACE( "Handle $hid allocated worker " . $worker->wid ) if DEBUG; } else { TRACE("Handle $hid has no worker") if DEBUG; return; } # Prepare handle timing $handle->start_time(time); # Send the task to the worker for execution $worker->send_task($handle); } else { # Prepare handle timing $handle->start_time(time); # Clone the handle so we don't impact the original my $copy = Padre::TaskHandle->from_array( $handle->as_array ); # Execute the task (ignore the result) and signal as we go local $@; eval { TRACE( "Handle " . $copy->hid . " calling ->start" ) if DEBUG; $copy->start( [] ); TRACE( "Handle " . $copy->hid . " calling ->run" ) if DEBUG; $copy->run; TRACE( "Handle " . $copy->hid . " calling ->stop" ) if DEBUG; $copy->stop; }; if ($@) { delete $copy->{queue}; delete $copy->{child}; TRACE($@) if DEBUG; } } } return 1; } =pod =head2 good_task my $ok = $manager->good_task($task); The C<good_task> method takes a L<Padre::Task> object and determines if the task can be executed, given the resources available to the task manager. Returns a L<Padre::Task> object, or C<undef> if there is no task to execute. =cut sub good_task { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = shift; return 1; } =pod =head2 best_worker my $worker = $manager->best_worker( $task_object ); The C<best_worker> method is used to find the best worker from the worker pool for the execution of a particular task object. This method makes use of a number of different strategies for optimising the way in which workers are used, such as maximising worker reuse for the same type of task, and "specialising" workers for particular types of tasks. If all existing workers are in use this method may also spawn new workers, up to the C<maximum> worker limit. Without the slave master logic enabled this will result in the editor blocking in the foreground briefly, this is something we can live with until the slave master feature is working again. Returns a L<Padre::TaskWorker> object, or C<undef> if there is no worker in which the task can be run. =cut sub best_worker { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $handle = shift; my $task = $handle->class; my $workers = $self->{workers}; my @unused = grep { not $_->handle } @$workers; my @seen = grep { $_->{seen}->{$task} } @unused; # Our basic strategy is to reuse an existing worker that # has done this task before to prevent loading more modules. if (@seen) { # Try to concentrate reuse as much as possible. # Pick the worker that has done the least other things. # Break a tie by awarding the task to the worker that has # done this type of task the most often to prevent flipping # between multiple with similar %seen diversity. @seen = sort { scalar( keys %{ $a->{seen} } ) <=> scalar( keys %{ $b->{seen} } ) or $b->{seen}->{$task} <=> $a->{seen}->{$task} } @seen; return $seen[0]; } ### TODO: In future, we could also try to check for workers which # have seen the superclasses of our class so something which has # seen another LWP-based task will also be chosen for a new # LWP-based task. # If nothing has seen this task before, bias towards the least # specialised thread. The idea here is to try and create one # big generalist worker, which will maximise the likelyhood that # the other threads will specialise and minimise memory load by # having all the rare stuff in one big thread where they will # hopefully have shared dependencies. if (@unused) { @unused = sort { scalar( keys %{ $b->{seen} } ) <=> scalar( keys %{ $a->{seen} } ) } @unused; return $unused[0]; } # Create a new worker if we can if ( @$workers < $self->maximum ) { return $self->start_worker; } # This task will have to wait for another worker to become free return undef; } =pod =head2 on_signal $manager->on_signal( \@message ); The C<on_signal> method is called from the conduit object and acts as a central distribution mechanism for messages coming from all child workers. Messages arrive as a list of elements in an C<ARRAY> with their first element being the handle identifier of the L<Padre::TaskHandle> for the task. This "envelope" element is stripped from the front of the message, and the remainder of the message is passed down into the handle (and the task within the handle). Certain special messages, such as "STARTED" and "STOPPED" are emitted not by the task but by the surrounding handle, and indicate to the task manager the state of the child worker. =cut sub on_signal { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $message = shift; unless ( $self->{active} ) { TRACE("Ignoring message while not active") if DEBUG; return; } unless ( Params::Util::_ARRAY($message) ) { TRACE("Unrecognised non-ARRAY or empty message") if DEBUG; return; } # Find the task handle for the task my $hid = shift @$message; my $handle = $self->{handles}->{$hid}; unless ($handle) { TRACE("Handle $hid does not exist...") if DEBUG; return; } # Update idle tracking so we don't force-kill this worker $handle->idle_time(time); # Handle the special startup message my $method = shift @$message; if ( $method eq 'STARTED' ) { # Register the task as running # TRACE("Handle $hid added to 'running'...") if DEBUG; $self->{running}->{$hid} = $handle; # Fire the task startup handler so the parent instance of the # task (or our owner) knows they can send messages to it now. $handle->on_started(@$message); return; } # Any remaining task should be running unless ( $self->{running}->{$hid} ) { TRACE("Handle $hid is not running to receive '$method'") if DEBUG; return; } # Handle the special shutdown message if ( $method eq 'STOPPED' ) { # Remove from the running list to guarantee no more events # will be sent to the handle (and thus to the task) # TRACE("Handle $hid removed from 'running'...") if DEBUG; delete $self->{running}->{$hid}; # Free up the worker for other tasks foreach my $worker ( @{ $self->{workers} } ) { next unless defined $worker->handle; next unless $worker->handle == $hid; $worker->handle(undef); last; } # Fire the post-process/cleanup finish method, passing in the # completed (and serialised) task object. $handle->on_stopped(@$message); # Remove from the task list to destroy the task # TRACE("Handle $hid completed on_stopped...") if DEBUG; delete $self->{handles}->{$hid}; # This should have released a worker to process # a new task, kick off the next scheduling iteration. $self->run; return; } # Pass the message through to the handle $handle->on_message( $method, @$message ); } sub waitjoin { TRACE( $_[0] ) if DEBUG; foreach ( 0 .. 9 ) { my $more = 0; # Close the threads in LIFO order, just in case it matters foreach my $thread ( reverse threads->list ) { if ( $thread->is_joinable ) { TRACE( "Thread " . $thread->tid . " joining..." ) if DEBUG; $thread->join; } else { TRACE( "Thread " . $thread->tid . " not joinable" ) if DEBUG; $more++; } } unless ($more) { TRACE("All threads joined") if DEBUG; last; } # Wait a short time to let the other thread exit require Time::HiRes; Time::HiRes::sleep(0.1); } return 1; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/����������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�013232� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/Timeline.pm�����������������������������������������������������������������0000644�0001750�0001750�00000020411�12237327555�015344� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB::Timeline; # A convenience module for writing migration patches. use 5.008005; use strict; use warnings; use ORLite::Migrate::Timeline (); our $VERSION = '1.00'; our @ISA = 'ORLite::Migrate::Timeline'; ###################################################################### # Schema Migration (reverse chronological for readability) sub upgrade13 { my $self = shift; # Drop the syntax highlight table as we now have current # Scintilla and the pressure to have highlighter plugins # is greatly reduced. $self->do('DROP TABLE syntax_highlight'); # Reindex to take advantage of SQLite 3.7.8 improvements # to indexing speed and layout that arrived between the # release of Padre 0.92 and 0.94 $self->do('REINDEX'); return 1; } sub upgrade12 { my $self = shift; # Create the debug breakpoints table $self->do(<<'END_SQL'); CREATE TABLE debug_breakpoints ( id INTEGER NOT NULL PRIMARY KEY, filename VARCHAR(255) NOT NULL, line_number INTEGER NOT NULL, active BOOLEAN NOT NULL, last_used DATE ) END_SQL return 1; } sub upgrade11 { my $self = shift; # Create the recently used table $self->do(<<'END_SQL'); CREATE TABLE recently_used ( name VARCHAR(255) PRIMARY KEY, value VARCHAR(255) NOT NULL, type VARCHAR(255) NOT NULL, last_used DATE ) END_SQL return 1; } sub upgrade10 { my $self = shift; # Normalize all plugin names to classes $self->do("UPDATE plugin SET name = 'Padre::Plugin::' || name"); $self->do("DELETE FROM plugin WHERE name LIKE 'Padre::Plugin::%'"); return 1; } sub upgrade9 { my $self = shift; # Syntax highlighter preferences $self->do(<<'END_SQL'); CREATE TABLE syntax_highlight ( mime_type VARCHAR(255) PRIMARY KEY, value VARCHAR(255) ) END_SQL return 1; } sub upgrade8 { my $self = shift; # Remove the session table created in migrate-5 $self->do(<<'END_SQL'); DROP TABLE session END_SQL # Create the new session table $self->do(<<'END_SQL'); CREATE TABLE session ( id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(255) UNIQUE NOT NULL, description VARCHAR(255), last_update DATE ) END_SQL # Create the table containing the session files $self->do(<<'END_SQL'); CREATE TABLE session_file ( id INTEGER NOT NULL PRIMARY KEY, file VARCHAR(255) NOT NULL, position INTEGER NOT NULL, focus BOOLEAN NOT NULL, session INTEGER NOT NULL, FOREIGN KEY (session) REFERENCES session ( id ) ) END_SQL return 1; } sub upgrade7 { my $self = shift; $self->do(<<'END_SQL'); create table last_position_in_file ( name varchar(255) not null primary key, position integer not null ) END_SQL return 1; } sub upgrade6 { my $self = shift; # This should get rid of the old config settings :) $self->do('DROP TABLE hostconf'); # Since we have to create a new version, use a slightly better table name $self->do(<<'END_SQL'); CREATE TABLE host_config ( name VARCHAR(255) NOT NULL PRIMARY KEY, value VARCHAR(255) NOT NULL ) END_SQL return 1; } sub upgrade5 { my $self = shift; # Create the session table $self->do(<<'END_SQL'); CREATE TABLE session ( id INTEGER NOT NULL PRIMARY KEY, file VARCHAR(255) UNIQUE NOT NULL, line INTEGER NOT NULL, character INTEGER NOT NULL, clue VARCHAR(255), focus BOOLEAN NOT NULL ) END_SQL return 1; } sub upgrade4 { my $self = shift; # Create the bookmark table $self->do(<<'END_SQL'); CREATE TABLE bookmark ( id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(255) UNIQUE NOT NULL, file VARCHAR(255) NOT NULL, line INTEGER NOT NULL ) END_SQL return 1; } sub upgrade3 { my $self = shift; # Remove the dedundant modules table $self->do('DROP TABLE modules'); return 1; } sub upgrade2 { my $self = shift; # Create the host settings table $self->do(<<'END_SQL'); CREATE TABLE plugin ( name VARCHAR(255) PRIMARY KEY, version VARCHAR(255), enabled BOOLEAN, config TEXT ) END_SQL return 1; } sub upgrade1 { my $self = shift; # Create the host settings table $self->do(<<'END_SQL'); CREATE TABLE hostconf ( name VARCHAR(255) PRIMARY KEY, value VARCHAR(255) ) END_SQL # Create the modules table $self->do(<<'END_SQL'); CREATE TABLE modules ( id INTEGER PRIMARY KEY, name VARCHAR(255) ) END_SQL # Create the history table $self->do(<<'END_SQL'); CREATE TABLE history ( id INTEGER PRIMARY KEY, type VARCHAR(255), name VARCHAR(255) ) END_SQL # Create the snippets table $self->do(<<'END_SQL'); CREATE TABLE snippets ( id INTEGER PRIMARY KEY, mimetype VARCHAR(255), category VARCHAR(255), name VARCHAR(255), snippet TEXT ) END_SQL # Populate the snippet table my @snippets = ( [ 'Char class', '[:alnum:]', '[:alnum:]' ], [ 'Char class', '[:alpha:]', '[:alpha:]' ], [ 'Char class', '[:ascii:]', '[:ascii:]' ], [ 'Char class', '[:blank:]', '[:blank:]' ], [ 'Char class', '[:cntrl:]', '[:cntrl:]' ], [ 'Char class', '[:digit:]', '[:digit:]' ], [ 'Char class', '[:graph:]', '[:graph:]' ], [ 'Char class', '[:lower:]', '[:lower:]' ], [ 'Char class', '[:print:]', '[:print:]' ], [ 'Char class', '[:punct:]', '[:punct:]' ], [ 'Char class', '[:space:]', '[:space:]' ], [ 'Char class', '[:upper:]', '[:upper:]' ], [ 'Char class', '[:word:]', '[:word:]' ], [ 'Char class', '[:xdigit:]', '[:xdigit:]' ], [ 'File test', 'age since inode change', '-C' ], [ 'File test', 'age since last access', '-A' ], [ 'File test', 'age since modification', '-M' ], [ 'File test', 'binary file', '-B' ], [ 'File test', 'block special file', '-b' ], [ 'File test', 'character special file', '-c' ], [ 'File test', 'directory', '-d' ], [ 'File test', 'executable by eff. UID/GID', '-x' ], [ 'File test', 'executable by real UID/GID', '-X' ], [ 'File test', 'exists', '-e' ], [ 'File test', 'handle opened to a tty', '-t' ], [ 'File test', 'named pipe', '-p' ], [ 'File test', 'nonzero size', '-s' ], [ 'File test', 'owned by eff. UID', '-o' ], [ 'File test', 'owned by real UID', '-O' ], [ 'File test', 'plain file', '-f' ], [ 'File test', 'readable by eff. UID/GID', '-r' ], [ 'File test', 'readable by real UID/GID', '-R' ], [ 'File test', 'setgid bit set', '-g' ], [ 'File test', 'setuid bit set', '-u' ], [ 'File test', 'socket', '-S' ], [ 'File test', 'sticky bit set', '-k' ], [ 'File test', 'symbolic link', '-l' ], [ 'File test', 'text file', '-T' ], [ 'File test', 'writable by eff. UID/GID', '-w' ], [ 'File test', 'writable by real UID/GID', '-W' ], [ 'File test', 'zero size', '-z' ], [ 'Pod', 'pod/cut', "=pod\n\n\n\n=cut\n" ], [ 'Regex', 'grouping', '()' ], [ 'Statement', 'foreach', "foreach my \$ ( ) {\n}\n" ], [ 'Statement', 'if', "if ( ) {\n}\n" ], [ 'Statement', 'do while', "do {\n\n }\n while ( );\n" ], [ 'Statement', 'for', "for ( ; ; ) {\n}\n" ], [ 'Statement', 'foreach', "foreach my $ ( ) {\n}\n" ], [ 'Statement', 'if', "if ( ) {\n}\n" ], [ 'Statement', 'if else { }', "if ( ) {\n} else {\n}\n" ], [ 'Statement', 'unless ', "unless ( ) {\n}\n" ], [ 'Statement', 'unless else', "unless ( ) {\n} else {\n}\n" ], [ 'Statement', 'until', "until ( ) {\n}\n" ], [ 'Statement', 'while', "while ( ) {\n}\n" ], ); SCOPE: { my $dbh = $self->dbh; $dbh->begin_work; my $sth = $dbh->prepare('INSERT INTO snippets ( mimetype, category, name, snippet ) VALUES (?, ?, ?, ?)'); foreach (@snippets) { $sth->execute( 'application/x-perl', $_->[0], $_->[1], $_->[2] ); } $sth->finish; $dbh->commit; } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/LastPositionInFile.pm�������������������������������������������������������0000644�0001750�0001750�00000024044�12237327555�017323� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB::LastPositionInFile; # NOTE: This class is loaded automatically by Padre::DB, overlaying the # code already auto-generated by Padre::DB. Do not load manually, as this # module will not function standalone. =pod =head1 NAME Padre::DB::LastPositionInFile - Storage class for stateful cursor positions =head1 SYNOPSIS Padre::DB::LastPositionInFile->set_last_pos($file, $pos); my $pos = Padre::DB::LastPositionInFile->get_last_pos($file); =head1 DESCRIPTION This class allows storing in L<Padre>'s database the last cursor position in a file. This is useful in order to put the cursor back to where it was when re-opening this file later on. Please note that due to limitations in the way we generate the class, imposed by L<ORLite>, automatic translation for Portable Perl is only applied if you use the C<set_last_pos> and C<get_last_pos> methods. =head1 METHODS =cut use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Current (); BEGIN { require Padre::Portable if Padre::Constant::PORTABLE; } our $VERSION = '1.00'; =pod =head2 set_last_pos set_last_pos( $file, $pos ) Record C<$pos> as the last known cursor position in C<$file>. Applies appropriate path translation if we are running in Portable Perl. =cut sub get_last_pos { my $class = shift; my $file = Padre::Constant::PORTABLE ? Padre::Portable::freeze(shift) : shift; # Find the position in the file Padre::DB->selectcol_arrayref( "select position from last_position_in_file where name = ?", {}, $file, )->[0]; } =pod =head2 get_last_pos get_last_pos( $file ) Return the last known cursor position for C<$file>. Return C<undef> if no position was recorded for this file. Applies appropriate path translation if we are running in Portable Perl. =cut sub set_last_pos { my $class = shift; my $file = Padre::Constant::PORTABLE ? Padre::Portable::freeze(shift) : shift; my $position = shift; my $transaction = Padre::Current->main->lock('DB'); $class->delete_where( 'name = ?', $file ); $class->create( name => $file, position => $position, ); return 1; } 1; __END__ =pod =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::LastPositionInFile->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'last_position_in_file' print Padre::DB::LastPositionInFile->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::LastPositionInFile->load( $name ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::LastPositionInFile> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::LastPositionInFile->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::LastPositionInFile->select( 'where name > ? order by name', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the last_position_in_file table. It takes an optional argument of a SQL phrase to be added after the C<FROM last_position_in_file> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::LastPositionInFile> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::LastPositionInFile> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::LastPositionInFile->iterate( sub { print $_->name . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::LastPositionInFile->select ) { print $_->name . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::LastPositionInFile->iterate( 'order by ?', 'name', sub { print $_->name . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from last_position_in_file order by name', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::LastPositionInFile->count; # How many objects my $small = Padre::DB::LastPositionInFile->count( 'where name > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the last_position_in_file table. It takes an optional argument of a SQL phrase to be added after the C<FROM last_position_in_file> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::LastPositionInFile> object. =head2 create my $object = Padre::DB::LastPositionInFile->create( name => 'value', position => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::LastPositionInFile> object, inserts the appropriate row into the L<last_position_in_file> table, and then returns the object. If the primary key column C<name> is not provided to the constructor (or it is false) the object returned will have C<name> set to the new unique identifier. Returns a new L<last_position_in_file> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<name> is not provided to the constructor (or it is false) the object returned will have C<name> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the last_position_in_file table Padre::DB::LastPositionInFile->delete('where name > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::LastPositionInFile> instance, the C<delete> method removes that specific instance from the C<last_position_in_file>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM last_position_in_file> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the last_position_in_file table Padre::DB::LastPositionInFile->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 name if ( $object->name ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The last_position_in_file table was originally created with the following SQL command. CREATE TABLE last_position_in_file ( name varchar(255) not null primary key, position integer not null ) =head1 SUPPORT Padre::DB::LastPositionInFile is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/Bookmark.pm�����������������������������������������������������������������0000644�0001750�0001750�00000022242�12237327555�015347� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB::Bookmark; # NOTE: This class is loaded automatically by Padre::DB, overlaying the # code already auto-generated by Padre::DB. Do not load manually, as this # module will not function standalone. use 5.008; use strict; use warnings; use Padre::Constant (); our $VERSION = '1.00'; ###################################################################### # General Methods sub select_names { Padre::DB->selectcol_arrayref('select name from bookmark order by name'); } # Finds and returns a single element by name. # NOTE: This is probably broken, since there can be many plugins with one name sub fetch_name { return ( $_[0]->select( 'where name = ?', $_[1] ) )[0]; } ###################################################################### # Portability Support if (Padre::Constant::PORTABLE) { require Padre::Portable; *new = sub { my $class = shift; my %param = @_; $param{file} = Padre::Portable::freeze( $param{file} ); $class->SUPER::new(%param); } if __PACKAGE__->can('new'); *file = sub { Padre::Portable::thaw( shift->SUPER::file(@_) ); } if __PACKAGE__->can('file'); *set = sub { my $self = shift; my $name = shift; my $value = shift; if ( $name and $name eq 'file' ) { $value = Padre::Portable::freeze($value); } $self->SUPER::set( $name => $value ); } if __PACKAGE__->can('set'); } 1; __END__ =pod =head1 NAME Padre::DB::Bookmark - Padre::DB class for the bookmark table =head1 SYNOPSIS TO BE COMPLETED =head1 DESCRIPTION TO BE COMPLETED =head1 METHODS =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::Bookmark->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'bookmark' print Padre::DB::Bookmark->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::Bookmark->load( $id ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::Bookmark> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::Bookmark->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::Bookmark->select( 'where id > ? order by id', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the bookmark table. It takes an optional argument of a SQL phrase to be added after the C<FROM bookmark> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::Bookmark> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::Bookmark> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::Bookmark->iterate( sub { print $_->id . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::Bookmark->select ) { print $_->id . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::Bookmark->iterate( 'order by ?', 'id', sub { print $_->id . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from bookmark order by id', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::Bookmark->count; # How many objects my $small = Padre::DB::Bookmark->count( 'where id > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the bookmark table. It takes an optional argument of a SQL phrase to be added after the C<FROM bookmark> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::Bookmark> object. =head2 create my $object = Padre::DB::Bookmark->create( id => 'value', name => 'value', file => 'value', line => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::Bookmark> object, inserts the appropriate row into the L<bookmark> table, and then returns the object. If the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns a new L<bookmark> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the bookmark table Padre::DB::Bookmark->delete('where id > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::Bookmark> instance, the C<delete> method removes that specific instance from the C<bookmark>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM bookmark> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the bookmark table Padre::DB::Bookmark->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 id if ( $object->id ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The bookmark table was originally created with the following SQL command. CREATE TABLE bookmark ( id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(255) UNIQUE NOT NULL, file VARCHAR(255) NOT NULL, line INTEGER NOT NULL ) =head1 SUPPORT Padre::DB::Bookmark is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/Session.pm������������������������������������������������������������������0000644�0001750�0001750�00000023275�12237327555�015234� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB::Session; # NOTE: This class is loaded automatically by Padre::DB, overlaying the # code already auto-generated by Padre::DB. Do not load manually, as this # module will not function standalone. # NOTE: Portable Perl support is NOT required for this class, as it does # not contain any file paths. use 5.008; use strict; use warnings; use Padre::Current (); our $VERSION = '1.00'; my $PADRE_SESSION = 'padre-last'; sub last_padre_session { my $class = shift; my $transaction = Padre::Current->main->lock('DB'); # find last padre session my ($padre) = Padre::DB::Session->select( 'where name = ?', $PADRE_SESSION ); # no such session, create one unless ( defined $padre ) { $padre = $class->create( name => $PADRE_SESSION, description => 'Last session within Padre', last_update => time, ); } return $padre; } sub clear_last_session { my $class = shift; my $transaction = Padre::Current->main->lock('DB'); # Find last padre session (shortcut if none) my ($padre) = Padre::DB::Session->select( 'where name = ?', $PADRE_SESSION, ) or return; # Remove any files in the session Padre::DB::SessionFile->delete_where( 'session = ?', $padre->id ); # Remove the session itself $padre->delete; return; } sub files { Padre::DB::SessionFile->select( 'where session = ?', shift->id, ); } 1; __END__ =pod =head1 NAME Padre::DB::Session - Padre::DB class for the session table =head1 SYNOPSIS my @sessions = Padre::DB::Session->select; =head1 DESCRIPTION This class allows storing in Padre's database the session that Padre knows. This is useful in order to quickly restore a given set of files. This is the primary table, you also need to check C<Padre::DB::SessionFiles>. =head1 METHODS =head2 last_padre_session my $session = last_padre_session() Return a C<Padre::DB::Session> object pointing to last Padre session. If none exists, a new one will be created and returned. =head2 files my @files = $session->files Return a list of files (C<Padre::DB::SessionFile> objects) referenced by current C<$session>. =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::Session->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'session' print Padre::DB::Session->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::Session->load( $id ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::Session> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::Session->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::Session->select( 'where id > ? order by id', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the session table. It takes an optional argument of a SQL phrase to be added after the C<FROM session> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::Session> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::Session> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::Session->iterate( sub { print $_->id . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::Session->select ) { print $_->id . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::Session->iterate( 'order by ?', 'id', sub { print $_->id . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from session order by id', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::Session->count; # How many objects my $small = Padre::DB::Session->count( 'where id > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the session table. It takes an optional argument of a SQL phrase to be added after the C<FROM session> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::Session> object. =head2 create my $object = Padre::DB::Session->create( id => 'value', name => 'value', description => 'value', last_update => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::Session> object, inserts the appropriate row into the L<session> table, and then returns the object. If the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns a new L<session> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the session table Padre::DB::Session->delete('where id > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::Session> instance, the C<delete> method removes that specific instance from the C<session>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM session> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the session table Padre::DB::Session->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 id if ( $object->id ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The session table was originally created with the following SQL command. CREATE TABLE session ( id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(255) UNIQUE NOT NULL, description VARCHAR(255), last_update DATE ) =head1 SUPPORT Padre::DB::Session is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/Snippets.pod����������������������������������������������������������������0000644�0001750�0001750�00000017067�11452515377�015565� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������=head1 NAME Padre::DB::Snippets - Padre::DB class for the snippets table =head1 DESCRIPTION TO BE COMPLETED =head1 METHODS =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::Snippets->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'snippets' print Padre::DB::Snippets->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::Snippets->load( $id ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::Snippets> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::Snippets->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::Snippets->select( 'where id > ? order by id', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the snippets table. It takes an optional argument of a SQL phrase to be added after the C<FROM snippets> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::Snippets> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::Snippets> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::Snippets->iterate( sub { print $_->id . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::Snippets->select ) { print $_->id . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::Snippets->iterate( 'order by ?', 'id', sub { print $_->id . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from snippets order by id', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::Snippets->count; # How many objects my $small = Padre::DB::Snippets->count( 'where id > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the snippets table. It takes an optional argument of a SQL phrase to be added after the C<FROM snippets> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::Snippets> object. =head2 create my $object = Padre::DB::Snippets->create( id => 'value', mimetype => 'value', category => 'value', name => 'value', snippet => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::Snippets> object, inserts the appropriate row into the L<snippets> table, and then returns the object. If the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns a new L<snippets> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the snippets table Padre::DB::Snippets->delete('where id > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::Snippets> instance, the C<delete> method removes that specific instance from the C<snippets>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM snippets> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the snippets table Padre::DB::Snippets->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 id if ( $object->id ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The snippets table was originally created with the following SQL command. CREATE TABLE snippets ( id INTEGER PRIMARY KEY, mimetype VARCHAR(255), category VARCHAR(255), name VARCHAR(255), snippet TEXT ) =head1 SUPPORT Padre::DB::Snippets is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2010 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/Plugin.pod������������������������������������������������������������������0000644�0001750�0001750�00000017004�12074315403�015172� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������=head1 NAME Padre::DB::Plugin - Padre::DB class for the plugin table =head1 DESCRIPTION TO BE COMPLETED =head1 METHODS =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::Plugin->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'plugin' print Padre::DB::Plugin->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::Plugin->load( $name ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::Plugin> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::Plugin->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::Plugin->select( 'where name > ? order by name', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the plugin table. It takes an optional argument of a SQL phrase to be added after the C<FROM plugin> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::Plugin> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::Plugin> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::Plugin->iterate( sub { print $_->name . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::Plugin->select ) { print $_->name . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::Plugin->iterate( 'order by ?', 'name', sub { print $_->name . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from plugin order by name', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::Plugin->count; # How many objects my $small = Padre::DB::Plugin->count( 'where name > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the plugin table. It takes an optional argument of a SQL phrase to be added after the C<FROM plugin> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::Plugin> object. =head2 create my $object = Padre::DB::Plugin->create( name => 'value', version => 'value', enabled => 'value', config => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::Plugin> object, inserts the appropriate row into the L<plugin> table, and then returns the object. If the primary key column C<name> is not provided to the constructor (or it is false) the object returned will have C<name> set to the new unique identifier. Returns a new L<plugin> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<name> is not provided to the constructor (or it is false) the object returned will have C<name> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the plugin table Padre::DB::Plugin->delete('where name > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::Plugin> instance, the C<delete> method removes that specific instance from the C<plugin>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM plugin> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the plugin table Padre::DB::Plugin->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 name if ( $object->name ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The plugin table was originally created with the following SQL command. CREATE TABLE plugin ( name VARCHAR(255) PRIMARY KEY, version VARCHAR(255), enabled BOOLEAN, config TEXT ) =head1 SUPPORT Padre::DB::Plugin is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/RecentlyUsed.pm�������������������������������������������������������������0000644�0001750�0001750�00000022376�12237327555�016220� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB::RecentlyUsed; # NOTE: This class is loaded automatically by Padre::DB, overlaying the # code already auto-generated by Padre::DB. Do not load manually, as this # module will not function standalone. use 5.008; use strict; use warnings; use Padre::Constant (); our $VERSION = '1.00'; ###################################################################### # Portability Support if (Padre::Constant::PORTABLE) { require Padre::Portable; *new = sub { my $class = shift; my %param = @_; $param{name} = Padre::Portable::freeze( $param{name} ); $param{value} = Padre::Portable::freeze( $param{value} ); $class->SUPER::new(%param); } if __PACKAGE__->can('new'); *name = sub { Padre::Portable::thaw( shift->SUPER::name(@_) ); } if __PACKAGE__->can('name'); *value = sub { Padre::Portable::thaw( shift->SUPER::value(@_) ); } if __PACKAGE__->can('value'); *set = sub { my $self = shift; my $name = shift; my $value = shift; if ( $name and $name eq 'name' or $name eq 'value' ) { $value = Padre::Portable::freeze($value); } $self->SUPER::set( $name => $value ); } if __PACKAGE__->can('set'); } 1; __END__ =pod =head1 NAME Padre::DB::RecentlyUsed - Padre::DB class for the recently_used table =head1 SYNOPSIS my @files = Padre::DB::RecentlyUsed->select( 'where type = ?', $type, ); =head1 DESCRIPTION This class allows storing in L<Padre>'s database the files =head1 METHODS =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::RecentlyUsed->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'recently_used' print Padre::DB::RecentlyUsed->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::RecentlyUsed->load( $name ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::RecentlyUsed> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::RecentlyUsed->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::RecentlyUsed->select( 'where name > ? order by name', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the recently_used table. It takes an optional argument of a SQL phrase to be added after the C<FROM recently_used> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::RecentlyUsed> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::RecentlyUsed> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::RecentlyUsed->iterate( sub { print $_->name . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::RecentlyUsed->select ) { print $_->name . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::RecentlyUsed->iterate( 'order by ?', 'name', sub { print $_->name . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from recently_used order by name', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::RecentlyUsed->count; # How many objects my $small = Padre::DB::RecentlyUsed->count( 'where name > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the recently_used table. It takes an optional argument of a SQL phrase to be added after the C<FROM recently_used> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::RecentlyUsed> object. =head2 create my $object = Padre::DB::RecentlyUsed->create( name => 'value', value => 'value', type => 'value', last_used => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::RecentlyUsed> object, inserts the appropriate row into the L<recently_used> table, and then returns the object. If the primary key column C<name> is not provided to the constructor (or it is false) the object returned will have C<name> set to the new unique identifier. Returns a new L<recently_used> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<name> is not provided to the constructor (or it is false) the object returned will have C<name> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the recently_used table Padre::DB::RecentlyUsed->delete('where name > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::RecentlyUsed> instance, the C<delete> method removes that specific instance from the C<recently_used>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM recently_used> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the recently_used table Padre::DB::RecentlyUsed->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 name if ( $object->name ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The recently_used table was originally created with the following SQL command. CREATE TABLE recently_used ( name VARCHAR(255) PRIMARY KEY, value VARCHAR(255) NOT NULL, type VARCHAR(255) NOT NULL, last_used DATE ) =head1 SUPPORT Padre::DB::RecentlyUsed is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/History.pm������������������������������������������������������������������0000644�0001750�0001750�00000021221�12237327555�015237� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB::History; # NOTE: This class is loaded automatically by Padre::DB, overlaying the # code already auto-generated by Padre::DB. Do not load manually, as this # module will not function standalone. # NOTE: Portable Perl support is NOT required for this class, as the use # of it is shared between many different modules. If any consumer of this # module needs Portable Support, they will need to implement it themselves. use 5.008; use strict; use warnings; use Params::Util (); our $VERSION = '1.00'; sub recent { my $class = shift; my $type = shift; my $limit = Params::Util::_POSINT(shift) || 10; my $recent = Padre::DB->selectcol_arrayref( 'select distinct name from history where type = ? order by id desc limit ?', {}, $type, $limit ) or die 'Failed to find recent values from history'; return wantarray ? @$recent : $recent; } sub previous { my $class = shift; my @list = $class->recent( $_[0], 1 ); return $list[0]; } 1; __END__ =pod =head1 NAME Padre::DB::History - Padre::DB class for the history table =head1 SYNOPSIS TO BE COMPLETED =head1 DESCRIPTION TO BE COMPLETED =head1 METHODS =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::History->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'history' print Padre::DB::History->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::History->load( $id ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::History> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::History->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::History->select( 'where id > ? order by id', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the history table. It takes an optional argument of a SQL phrase to be added after the C<FROM history> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::History> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::History> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::History->iterate( sub { print $_->id . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::History->select ) { print $_->id . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::History->iterate( 'order by ?', 'id', sub { print $_->id . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from history order by id', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::History->count; # How many objects my $small = Padre::DB::History->count( 'where id > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the history table. It takes an optional argument of a SQL phrase to be added after the C<FROM history> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::History> object. =head2 create my $object = Padre::DB::History->create( id => 'value', type => 'value', name => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::History> object, inserts the appropriate row into the L<history> table, and then returns the object. If the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns a new L<history> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the history table Padre::DB::History->delete('where id > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::History> instance, the C<delete> method removes that specific instance from the C<history>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM history> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the history table Padre::DB::History->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 id if ( $object->id ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The history table was originally created with the following SQL command. CREATE TABLE history ( id INTEGER PRIMARY KEY, type VARCHAR(255), name VARCHAR(255) ) =head1 SUPPORT Padre::DB::History is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/HostConfig.pm���������������������������������������������������������������0000644�0001750�0001750�00000021143�12237327555�015644� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB::HostConfig; # NOTE: This class is loaded automatically by Padre::DB, overlaying the # code already auto-generated by Padre::DB. Do not load manually, as this # module will not function standalone. # NOTE: Portable Perl support is NOT required for this class, as any # necesary transforms are done by the relevant Padre::Config modules. use 5.008; use strict; use warnings; use Padre::Current (); our $VERSION = '1.00'; sub read { my %config = map { $_->name => $_->value } $_[0]->select; return \%config; } sub write { my $class = shift; my $hash = shift; my $transaction = Padre::Current->main->lock('DB'); Padre::DB::HostConfig->truncate; foreach my $name ( sort keys %$hash ) { Padre::DB::HostConfig->create( name => $name, value => $hash->{$name}, ); } return 1; } 1; __END__ =pod =head1 NAME Padre::DB::HostConfig - Padre::DB class for the host_config table =head1 DESCRIPTION TO BE COMPLETED =head1 METHODS =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::HostConfig->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'host_config' print Padre::DB::HostConfig->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::HostConfig->load( $name ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::HostConfig> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::HostConfig->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::HostConfig->select( 'where name > ? order by name', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the host_config table. It takes an optional argument of a SQL phrase to be added after the C<FROM host_config> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::HostConfig> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::HostConfig> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::HostConfig->iterate( sub { print $_->name . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::HostConfig->select ) { print $_->name . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::HostConfig->iterate( 'order by ?', 'name', sub { print $_->name . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from host_config order by name', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::HostConfig->count; # How many objects my $small = Padre::DB::HostConfig->count( 'where name > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the host_config table. It takes an optional argument of a SQL phrase to be added after the C<FROM host_config> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::HostConfig> object. =head2 create my $object = Padre::DB::HostConfig->create( name => 'value', value => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::HostConfig> object, inserts the appropriate row into the L<host_config> table, and then returns the object. If the primary key column C<name> is not provided to the constructor (or it is false) the object returned will have C<name> set to the new unique identifier. Returns a new L<host_config> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<name> is not provided to the constructor (or it is false) the object returned will have C<name> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the host_config table Padre::DB::HostConfig->delete('where name > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::HostConfig> instance, the C<delete> method removes that specific instance from the C<host_config>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM host_config> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the host_config table Padre::DB::HostConfig->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 name if ( $object->name ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The host_config table was originally created with the following SQL command. CREATE TABLE host_config ( name varchar(255) not null primary key, value varchar(255) not null ) =head1 SUPPORT Padre::DB::HostConfig is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/DB/SessionFile.pm��������������������������������������������������������������0000644�0001750�0001750�00000022266�12237327555�016033� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::DB::SessionFile; # NOTE: This class is loaded automatically by Padre::DB, overlaying the # code already auto-generated by Padre::DB. Do not load manually, as this # module will not function standalone. use 5.008; use strict; use warnings; use Padre::Constant (); our $VERSION = '1.00'; ###################################################################### # Portability Support if (Padre::Constant::PORTABLE) { require Padre::Portable; *new = sub { my $class = shift; my %param = @_; $param{file} = Padre::Portable::freeze( $param{file} ); $class->SUPER::new(%param); } if __PACKAGE__->can('new'); *file = sub { Padre::Portable::thaw( shift->SUPER::file(@_) ); } if __PACKAGE__->can('file'); *set = sub { my $self = shift; my $name = shift; my $value = shift; if ( $name and $name eq 'file' ) { $value = Padre::Portable::freeze($value); } $self->SUPER::set( $name => $value ); } if __PACKAGE__->can('set'); } 1; __END__ =pod =head1 NAME Padre::DB::SessionFile - Padre::DB class for the session_file table =head1 SYNOPSIS my @files = Padre::DB::SessionFile->select( 'where session = ?', $session_id, ); =head1 DESCRIPTION This class allows storing in L<Padre>'s database the files referenced by a given session (see C<Padre::DB::Session>). =head1 METHODS =head2 base # Returns 'Padre::DB' my $namespace = Padre::DB::SessionFile->base; Normally you will only need to work directly with a table class, and only with one ORLite package. However, if for some reason you need to work with multiple ORLite packages at the same time without hardcoding the root namespace all the time, you can determine the root namespace from an object or table class with the C<base> method. =head2 table # Returns 'session_file' print Padre::DB::SessionFile->table; While you should not need the name of table for any simple operations, from time to time you may need it programatically. If you do need it, you can use the C<table> method to get the table name. =head2 load my $object = Padre::DB::SessionFile->load( $id ); If your table has single column primary key, a C<load> method will be generated in the class. If there is no primary key, the method is not created. The C<load> method provides a shortcut mechanism for fetching a single object based on the value of the primary key. However it should only be used for cases where your code trusts the record to already exists. It returns a C<Padre::DB::SessionFile> object, or throws an exception if the object does not exist. =head2 select # Get all objects in list context my @list = Padre::DB::SessionFile->select; # Get a subset of objects in scalar context my $array_ref = Padre::DB::SessionFile->select( 'where id > ? order by id', 1000, ); The C<select> method executes a typical SQL C<SELECT> query on the session_file table. It takes an optional argument of a SQL phrase to be added after the C<FROM session_file> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns a list of B<Padre::DB::SessionFile> objects when called in list context, or a reference to an C<ARRAY> of B<Padre::DB::SessionFile> objects when called in scalar context. Throws an exception on error, typically directly from the L<DBI> layer. =head2 iterate Padre::DB::SessionFile->iterate( sub { print $_->id . "\n"; } ); The C<iterate> method enables the processing of large tables one record at a time without loading having to them all into memory in advance. This plays well to the strength of SQLite, allowing it to do the work of loading arbitrarily large stream of records from disk while retaining the full power of Perl when processing the records. The last argument to C<iterate> must be a subroutine reference that will be called for each element in the list, with the object provided in the topic variable C<$_>. This makes the C<iterate> code fragment above functionally equivalent to the following, except with an O(1) memory cost instead of O(n). foreach ( Padre::DB::SessionFile->select ) { print $_->id . "\n"; } You can filter the list via SQL in the same way you can with C<select>. Padre::DB::SessionFile->iterate( 'order by ?', 'id', sub { print $_->id . "\n"; } ); You can also use it in raw form from the root namespace for better control. Using this form also allows for the use of arbitrarily complex queries, including joins. Instead of being objects, rows are provided as C<ARRAY> references when used in this form. Padre::DB->iterate( 'select name from session_file order by id', sub { print $_->[0] . "\n"; } ); =head2 count # How many objects are in the table my $rows = Padre::DB::SessionFile->count; # How many objects my $small = Padre::DB::SessionFile->count( 'where id > ?', 1000, ); The C<count> method executes a C<SELECT COUNT(*)> query on the session_file table. It takes an optional argument of a SQL phrase to be added after the C<FROM session_file> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns the number of objects that match the condition. Throws an exception on error, typically directly from the L<DBI> layer. =head2 new TO BE COMPLETED The C<new> constructor is used to create a new abstract object that is not (yet) written to the database. Returns a new L<Padre::DB::SessionFile> object. =head2 create my $object = Padre::DB::SessionFile->create( id => 'value', file => 'value', position => 'value', focus => 'value', session => 'value', ); The C<create> constructor is a one-step combination of C<new> and C<insert> that takes the column parameters, creates a new L<Padre::DB::SessionFile> object, inserts the appropriate row into the L<session_file> table, and then returns the object. If the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns a new L<session_file> object, or throws an exception on error, typically from the L<DBI> layer. =head2 insert $object->insert; The C<insert> method commits a new object (created with the C<new> method) into the database. If a the primary key column C<id> is not provided to the constructor (or it is false) the object returned will have C<id> set to the new unique identifier. Returns the object itself as a convenience, or throws an exception on error, typically from the L<DBI> layer. =head2 delete # Delete a single instantiated object $object->delete; # Delete multiple rows from the session_file table Padre::DB::SessionFile->delete('where id > ?', 1000); The C<delete> method can be used in a class form and an instance form. When used on an existing B<Padre::DB::SessionFile> instance, the C<delete> method removes that specific instance from the C<session_file>, leaving the object intact for you to deal with post-delete actions as you wish. When used as a class method, it takes a compulsory argument of a SQL phrase to be added after the C<DELETE FROM session_file> section of the query, followed by variables to be bound to the placeholders in the SQL phrase. Any SQL that is compatible with SQLite can be used in the parameter. Returns true on success or throws an exception on error, or if you attempt to call delete without a SQL condition phrase. =head2 truncate # Delete all records in the session_file table Padre::DB::SessionFile->truncate; To prevent the common and extremely dangerous error case where deletion is called accidentally without providing a condition, the use of the C<delete> method without a specific condition is forbidden. Instead, the distinct method C<truncate> is provided to delete all records in a table with specific intent. Returns true, or throws an exception on error. =head1 ACCESSORS =head2 id if ( $object->id ) { print "Object has been inserted\n"; } else { print "Object has not been inserted\n"; } Returns true, or throws an exception on error. REMAINING ACCESSORS TO BE COMPLETED =head1 SQL The session_file table was originally created with the following SQL command. CREATE TABLE session_file ( id INTEGER NOT NULL PRIMARY KEY, file VARCHAR(255) NOT NULL, position INTEGER NOT NULL, focus BOOLEAN NOT NULL, session INTEGER NOT NULL, FOREIGN KEY (session) REFERENCES session(id) ) =head1 SUPPORT Padre::DB::SessionFile is part of the L<Padre::DB> API. See the documentation for L<Padre::DB> for more information. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Constant.pm��������������������������������������������������������������������0000644�0001750�0001750�00000016163�12237327555�015113� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Constant; # Constants used by various configuration systems. use 5.008005; use strict; use warnings; use Carp (); use File::Path (); use File::Spec (); use File::HomeDir 0.91 (); our $VERSION = '1.00'; our $COMPATIBLE = '0.57'; # Convenience constants for the operating system use constant WIN32 => !!( ( $^O eq 'MSWin32' ) or ( $^O eq 'cygwin' ) ); use constant MAC => !!( $^O eq 'darwin' ); use constant UNIX => !( WIN32 or MAC ); # The local newline type use constant { NEWLINE => { MSWin32 => 'WIN', MacOS => 'MAC', dos => 'WIN', # EBCDIC's NEL-char is currently not supported in Padre: # os390 EBCDIC # os400 EBCDIC # posix-bc EBCDIC # vmesa EBCDIC # Some other unsupported options: # VMS VMS # VOS VOS # riscos RiscOS # amigaos Amiga # mpeix MPEiX }->{$^O} # These will run fine using the default: # aix, bsdos, dgux, dynixptx, freebsd, linux, hpux, irix, darwin (MacOS-X), # machten, next, openbsd, netbsd, dec_osf, svr4, svr5, sco_sv, unicos, unicosmk, # solaris, sunos, cygwin, os2 || 'UNIX' }; # Setting Types (based on Firefox types) use constant { BOOLEAN => 0, POSINT => 1, INTEGER => 2, ASCII => 3, PATH => 4, }; # Setting Storage Backends use constant { HOST => 0, HUMAN => 1, PROJECT => 2, RESTART => 3, }; # Scintilla Margin Allocation use constant { MARGIN_LINE => 0, MARGIN_MARKER => 1, MARGIN_FOLD => 2, }; # Scintilla Marker Allocation # The markers will be layered on top of each other with the highest # value sitting topmost on any resulting stack of markers. use constant { MARKER_WARN => 1, MARKER_ERROR => 2, MARKER_ADDED => 3, # Line added MARKER_CHANGED => 4, # Line changed MARKER_DELETED => 5, # Line deleted MARKER_LOCATION => 6, # current location of the debugger MARKER_BREAKPOINT => 7, # location of the debugger breakpoint MARKER_NOT_BREAKABLE => 8, # location of the debugger not break able }; # Scintilla Indicator Allocation use constant { INDICATOR_SMART_HIGHLIGHT => 0, INDICATOR_WARNING => 1, INDICATOR_ERROR => 2, INDICATOR_UNDERLINE => 3, }; # Scintilla Syntax Highlighter Colours. # NOTE: It's not clear why these need "PADRE_" in the name, but they do. use constant { PADRE_BLACK => 0, PADRE_BLUE => 1, PADRE_RED => 2, PADRE_GREEN => 3, PADRE_MAGENTA => 4, PADRE_ORANGE => 5, PADRE_DIM_GRAY => 6, PADRE_CRIMSON => 7, PADRE_BROWN => 8, PADRE_DIFF_HEADER => 123, PADRE_DIFF_DELETED => 124, PADRE_DIFF_ADDED => 125, PADRE_WARNING => 126, PADRE_ERROR => 127, }; # Version Control System (VCS) constants use constant { SUBVERSION => 'SVN', GIT => 'Git', MERCURIAL => 'Mercurial', BAZAAR => 'Bazaar', CVS => 'CVS', }; # Portable Perl Support use constant PORTABLE => do { no warnings 'once'; $Portable::ENABLED and Portable->default->dist_root; }; # Padre's home dir use constant PADRE_HOME => $ENV{PADRE_HOME}; # Files and Directories use constant CONFIG_DIR => File::Spec->rel2abs( File::Spec->catdir( defined( $ENV{PADRE_HOME} ) ? ( $ENV{PADRE_HOME}, '.padre' ) : ( File::HomeDir->my_data, File::Spec->isa('File::Spec::Win32') ? qw{ Perl Padre } : qw{ .padre } ) ) ); use constant LOG_FILE => File::Spec->catfile( CONFIG_DIR, 'debug.log' ); use constant PLUGIN_DIR => File::Spec->catdir( CONFIG_DIR, 'plugins' ); use constant PLUGIN_LIB => File::Spec->catdir( PLUGIN_DIR, 'Padre', 'Plugin' ); use constant CONFIG_HOST => File::Spec->catfile( CONFIG_DIR, 'config.db' ); use constant CONFIG_HUMAN => File::Spec->catfile( CONFIG_DIR, 'config.yml' ); use constant CONFIG_STARTUP => File::Spec->catfile( CONFIG_DIR, 'startup.txt' ); # Do initialisation in a function so we can run it again later if needed. # Check and create the directories that need to exist. sub init { unless ( -e CONFIG_DIR or File::Path::mkpath(CONFIG_DIR) ) { Carp::croak( "Cannot create config directory '" . CONFIG_DIR . "': $!" ); } unless ( -e PLUGIN_LIB or File::Path::mkpath(PLUGIN_LIB) ) { Carp::croak( "Cannot create plug-ins directory '" . PLUGIN_LIB . "': $!" ); } } BEGIN { init(); } ##################################################################### # Config Defaults Needed At Startup # Unlike on Linux, on Windows there's not really # any major reason we should avoid the single-instance # server by default. # However during tests or in the debugger we need to make # sure we don't accidentally connect to a running # system-installed Padre while running the test suite. # NOTE: The only reason this is here is that it is needed both during # main configuration, and also during Padre::Startup. use constant DEFAULT_SINGLEINSTANCE => ( WIN32 and not( $ENV{HARNESS_ACTIVE} or $^P ) ) ? 1 : 0; # It would be better if we had fully dynamic collision awareness support, # so that Padre could automatically port hop. # In the mean time, just make sure that dev, test, and production versions # of Padre use different ports, so they don't collide with each other. use constant DEFAULT_SINGLEINSTANCE_PORT => ( $ENV{PADRE_DEV} ? 4446 : $ENV{HARNESS_ACTIVE} ? 4445 : 4444 ); 1; __END__ =pod =head1 NAME Padre::Constant - constants used by configuration subsystems =head1 SYNOPSIS use Padre::Constant (); [...] # do stuff with exported constants =head1 DESCRIPTION Padre uses various configuration subsystems (see C<Padre::Config> for more information). Those systems needs to somehow agree on some basic stuff, which is defined in this module. =head1 CONSTANTS =head2 C<WIN32>, C<MAC>, C<UNIX> Operating Systems. =head2 C<BOOLEAN>, C<POSINT>, C<INTEGER>, C<ASCII>, C<PATH> Settings data types (based on Firefox types). =head2 C<HOST>, C<HUMAN>, C<PROJECT> Settings storage back-ends. =head2 C<PADRE_REVISION> The SVN Revision (when running a development build). =head2 C<PADRE_BLACK>, C<PADRE_BLUE>, C<PADRE_RED>, C<PADRE_GREEN>, C<PADRE_MAGENTA>, C<PADRE_ORANGE>, C<PADRE_DIM_GRAY>, C<PADRE_CRIMSON>, C<PADRE_BROWN>, C<PADRE_WARNING>, C<PADRE_ERROR> Core supported colours. =head2 C<CONFIG_HOST> DB configuration file storing host settings. =head2 C<CONFIG_HUMAN> YAML configuration file storing user settings. =head2 C<CONFIG_DIR> Private Padre configuration directory Padre, used to store stuff. =head2 C<PLUGIN_DIR> Private directory where Padre can look for plug-ins. =head2 C<PLUGIN_LIB> Subdirectory of C<PLUGIN_DIR> with the path C<Padre/Plugin> added (or whatever depending on your platform) so that Perl can load a C<Padre::Plugin::> plug-in. =head2 C<LOG_FILE> Path and name of Padre's log file. =head2 C<NEWLINE> Newline style (UNIX, WIN or MAC) on the currently used operating system. =head1 COPYRIGHT & LICENSE Copyright 2008 - 2010 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Locale/������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�014143� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Locale/Format.pm���������������������������������������������������������������0000644�0001750�0001750�00000004524�12237327555�015747� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Locale::Format; # Implements regional formatting logic for numbers etc use 5.008; use strict; use warnings; use Params::Util (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; ###################################################################### # Format Registry my %FORMAT = ( en_GB => { number_decimal_symbol => '.', number_digit_grouping => '333', number_digit_grouping_symbol => ',', number_negative_symbol => '-', number_negative_format => '-1.1', }, ); ###################################################################### # Format Functions sub integer { my $text = shift; my $rfc4646 = shift || 'en_GB'; my $format = $FORMAT{$rfc4646} || $FORMAT{en_GB}; # Shortcut unusual cases unless ( defined Params::Util::_STRING($text) ) { return ''; } unless ( $text =~ /^-?\d+\z/ ) { return $text; } # Is the number negative my $negative = $text < 0; $text = abs($text); # Does this locale support grouping if ( $format->{number_digit_grouping} eq '333' ) { # Apply 123,456,789 style grouping my $g = $format->{number_digit_grouping_symbol}; $text =~ s/(\d)(\d\d\d)$/$1$g$2/; while (1) { $text =~ s/(\d)(\d\d\d\Q$g\E)/$1$g$2/ or last; } } # Apply negation formatting if ($negative) { if ( $format->{number_negative_format} eq '- 1.1' ) { $text = "$format->{number_negative_symbol} $text"; } else { # Default to negative format '-1.1' $text = "$format->{number_negative_symbol}$text"; } } return $text; } sub bytes { my $text = shift; my $rfc4646 = shift || 'en_GB'; my $format = $FORMAT{$rfc4646} || $FORMAT{en_GB}; # Shortcut unusual cases unless ( defined Params::Util::_STRING($text) ) { return ''; } unless ( $text =~ /^\d+\z/ ) { return $text; } if ( $text > 8192000000000 ) { return sprintf( '%0.1f', $text / 1099511627776 ) . "TB"; } elsif ( $text > 8192000000 ) { return sprintf( '%0.1f', $text / 1073741824 ) . "GB"; } elsif ( $text > 8192000 ) { return sprintf( '%0.1f', $text / 1048576 ) . "MB"; } elsif ( $text > 8192 ) { return sprintf( '%0.1f', $text / 1024 ) . "kB"; } else { return $text . "B"; } } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Locale/T.pm��������������������������������������������������������������������0000644�0001750�0001750�00000010275�12237327555�014722� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Locale::T; # See POD at the end of the file for documentation use 5.008; use strict; use warnings; use Exporter (); our $VERSION = '1.00'; our @ISA = 'Exporter'; our @EXPORT = '_T'; our @EXPORT_OK = '_T'; # Pasting more background information for people that don't understand # the POD docs, because at least one person has accidentally broken this # by changing it (not cxreg, he actually asked first) :) #15:31 cxreg Alias: er, how it's just "shift" ? #15:31 Alias cxreg: Wx has a gettext implementation #15:31 Alias Wx::gettext #15:31 Alias That's the "translate right now" function #15:31 Alias But we need a late-binding version, for things that need to be translated, but are kept in memory (for various reasons) as English and only get translated at the last second #15:32 Alias So in that case, we do a Wx::gettext($string) #15:32 Alias The problem is that the translation tools can't tell what $string is #15:32 Alias The translation tools DO, however, recognise _T as a translatable string #15:33 Alias So we use _T as a silent pass-through specifically to indicate to the translation tools that this string needs translating #15:34 Alias If we did everything as an up-front translation we'd need to flush a crapton of stuff and re-initialise it every time someone changed languages #15:35 Alias Instead, we flush the hidden dialogs and rebuild the entire menu #15:35 Alias But most of the rest we do with the delayed _T strings #15:37 cxreg i get the concept, it's just so magical #15:38 Alias It works brilliantly :) #15:38 cxreg do you replace the _T symbol at runtime? #15:39 Alias symbol? #15:39 Alias Why would we do that? #15:40 cxreg in order to actually instrument the translation, i wasn't sure if you were swapping out the sub behind the _T symbol #15:40 Alias oh, no #15:40 Alias _T is ONLY there to hint to the translation tools #15:40 Alias The PO editors etc #15:40 Alias my $english = _T('Hello World!'); $gui->set_title( Wx::gettext($english) ); #15:41 Alias It does absolutely nothing inside the code itself sub _T { shift; } 1; __END__ =pod =head1 NAME Padre::Locale::T - Provides _T for declaring translatable strings =head1 SYNOPSIS use Padre::Locale::T; my $string = _T('This is a test'); =head1 DESCRIPTION Padre uses a function called _T to declare strings which should be translated by the translation team, but which should not be immediately localised in memory. This is done primarily because the active language may change between when a string is initially stored in memory and when it is show to a user. The reason we use _T is that most translation tools in the wild that scan the code for a program detect the use of a C macro calls _T that does immediate translation. By creating a null pass through function called _T and the linguistic similarity of Perl to C, we can take advantage of the way translation tools detect translatable strings while keeping the proper Wx::gettext function for strings which do need to be translated immediately. The _T function used to live in L<Padre::Util>, but as that module gradually bloated it was increasing the code of getting the _T function dramatically. Padre::Locale::T declares only this one function, and will only ever do so. Because of this, it also exports by default (although you are still welcome to declare the import if you wish. =head1 FUNCTIONS =head2 C<_T> The C<_T> function is used for strings that you do not want to translate immediately, but you will be translating later (multiple times). The only reason this function needs to exist at all is so that the translation tools can identify the string it refers to as something that needs to be translated. Functionally, this function is just a direct pass-through with no effect. =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Command.pm���������������������������������������������������������������������0000644�0001750�0001750�00000003201�12237327555�014665� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Command; # Padre launches commands on the local operating system in a wide # variety of different ways, and via different execution channels. # This class provides a generic abstraction of a command, so that # commands can be built up in a similar way across all channels, and # the same command can be run in a variety of different ways if needed. use 5.008005; use strict; use warnings; our $VERSION = '1.00'; use Class::XSAccessor { getters => { # The fully resolved path to the program to execute program => 'program', # Parameters to the command as an ARRAY reference parameters => 'parameters', # Where to set the directory when starting the command directory => 'directory', # Differences to the environment while running the command environment => 'environment', # Should the command be run in a visible shell visible => 'visible', }, }; ###################################################################### # Constructor and Accessors # NOTE: Currently, this does no validation sub new { my $class = shift; my $self = bless {@_}, $class; # Defaults unless ( defined $self->{parameters} ) { $self->{parameters} = []; } unless ( defined $self->{directory} ) { require File::HomeDir; $self->{directory} = File::HomeDir->my_home; } unless ( defined $self->{environment} ) { $self->{environment} = {}; } unless ( defined $self->{visible} ) { $self->{visible} = 0; } return $self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Comment.pm���������������������������������������������������������������������0000644�0001750�0001750�00000013770�12237327555�014725� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Comment; =pod =head1 NAME Padre::Comment - Padre Comment Support Library =head1 DESCRIPTION This module provides objects which represent a logical comment style for a programming language and implements a range of logic to assist in locating, counting, filtering, adding and removing comments in a document. Initially, however, it only acts as a central storage location for the comment styles of supported mime types. =head1 METHODS =cut use 5.008; use strict; use warnings; use List::Util (); use Params::Util (); use Padre::MIME (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; my %MIME = (); my %KEYS = (); ###################################################################### # Static Methods sub register { my $class = shift; while (@_) { my $type = shift; my $key = shift; unless ( $MIME{$type} = $KEYS{$key} ) { die "$type: Comment style '$key' does not exist"; } } return 1; } =pod =head2 registered my @registered = Padre::Comment->registered; The C<registered> method returns the list of all registered MIME types that have a comment style distinct from their parent supertype. =cut sub registered { keys %MIME; } =pod =head2 get my $comment = Padre::Comment->get('application/x-perl'); The C<get> method finds a comment for a specific MIME type. This method checks only the specific string and does not follow the superpath of the mime type. For a full powered lookup, use the C<find> method. Returns a L<Padre::Comment> object or C<undef> if the mime type does not have a distinct comment string. =cut sub get { $MIME{ $_[1] || '' }; } sub find { my $class = shift; my $mime = Params::Util::_INSTANCE( $_[0], 'Padre::MIME' ) || Padre::MIME->find( $_[0] ) or return undef; foreach my $type ( $mime->superpath ) { return $MIME{$type} if $MIME{$type}; } return undef; } ###################################################################### # Constructors and Accessors sub new { my $class = shift; my $self = bless {@_}, $class; # Check params unless ( defined $self->{key} ) { die "Missing or invalid 'key' param"; } unless ( defined $self->{left} ) { die "Missing or invalid 'left' param"; } unless ( defined $self->{right} ) { die "Missing or invalid 'right' param"; } return $self; } sub create { my $class = shift; my $self = $class->new(@_); my $key = $self->key; if ( $KEYS{$key} ) { die "Attempted to create duplicate comment style '$key'"; } $KEYS{$key} = $self; } sub key { $_[0]->{key}; } sub left { $_[0]->{left}; } sub right { $_[0]->{right}; } ###################################################################### # Regex Generators sub line_match { my $self = shift; unless ( defined $self->{line_match} ) { my $left = $self->left; my $right = $self->right; if ($right) { $self->{line_match} = qr/^\s*\Q$left\E.*\Q$right\E$/; } elsif ( $left =~ /^\s/ ) { $self->{line_match} = qr/^\Q$left/; } else { $self->{line_match} = qr/^\s*\Q$left/; } } return $self->{line_match}; } ###################################################################### # Comment Registry Padre::Comment->create( key => '#', left => '#', right => '', ); Padre::Comment->create( key => '\\', left => '\\', right => '', ); Padre::Comment->create( key => '//', left => '//', right => '', ); Padre::Comment->create( key => '--', left => '--', right => '', ); Padre::Comment->create( key => 'REM', left => 'REM', right => '', ); Padre::Comment->create( key => '%', left => '%', right => '', ); Padre::Comment->create( key => ' *', left => ' *', right => '', ); Padre::Comment->create( key => '/* */', left => '/*', right => '*/', ); Padre::Comment->create( key => '!', left => '!', right => '', ); Padre::Comment->create( key => ';', left => ';', right => '', ); Padre::Comment->create( key => '{ }', left => '{', right => '}', ); Padre::Comment->create( key => "'", left => "'", right => '', ); Padre::Comment->create( key => '<!-- -->', left => '<!--', right => '-->', ); Padre::Comment->create( key => '<?_c _c?>', left => '<?_c', right => '_c?>', ); Padre::Comment->create( key => 'if 0 { }', left => 'if 0 {', right => '}', ); Padre::Comment->register( 'text/x-abc' => '\\', 'text/x-actionscript' => '//', 'text/x-adasrc' => '--', 'text/x-asm' => '#', 'text/x-bat' => 'REM', 'application/x-bibtex' => '%', 'application/x-bml' => '<?_c _c?>', 'text/x-csrc' => '//', 'text/x-cobol' => ' *', 'text/x-config' => '#', 'text/css' => '/* */', 'text/x-eiffel' => '--', 'text/x-forth' => '\\', 'text/x-fortran' => '!', 'text/x-haskell' => '--', 'application/x-latex' => '%', 'application/x-lisp' => ';', 'text/x-lua' => '--', 'text/x-makefile' => '#', 'text/x-matlab' => '%', 'text/x-pascal' => '{ }', 'application/x-pasm' => '#', 'application/x-perl' => '#', 'application/x-perl6' => '#', 'application/x-pir' => '#', 'text/x-perltt' => '<!-- -->', 'application/x-php' => '#', 'text/x-perlxs' => '#', # Define our own MIME type 'text/x-pod' => '#', 'text/x-povray' => '//', 'text/x-python' => '#', 'text/x-r' => '#', 'application/x-ruby' => '#', 'text/sgml' => '<!-- -->', 'application/x-shellscript' => '#', 'text/x-sql' => '--', 'application/x-tcl' => 'if 0 { }', 'text/vbscript' => "'", 'text/xml' => '<!-- -->', 'text/x-yaml' => '#', ); 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut ��������Padre-1.00/lib/Padre/Logger.pm����������������������������������������������������������������������0000644�0001750�0001750�00000004650�12237327555�014537� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Logger; =pod =head1 NAME Padre::Logger - Compile-time logging library for Padre =head1 SYNOPSIS # In the launcher script $ENV{PADRE_DEBUG} = 1; use Padre; # In each Padre::Foo class use Padre::Logger; sub method { TRACE('->method') if DEBUG; # Your code as normal } =head1 DESCRIPTION This is a logging utility class for Padre. It provides a basic set of simple functionality that allows for logging/debugging/tracing statements to be used in Padre that will compile out of the application when not in use. =cut use 5.008; use strict; use warnings; use threads; use threads::shared; use Carp (); use Time::HiRes (); use Padre::Constant (); our $VERSION = '1.00'; # Handle the PADRE_DEBUG environment variable BEGIN { if ( $ENV{PADRE_DEBUG} ) { if ( $ENV{PADRE_DEBUG} eq '1' ) { # Debug everything $Padre::Logger::DEBUG = 1; } else { # Debug a single class eval "\$$ENV{PADRE_DEBUG}::DEBUG = 1;"; } } } sub import { if ( $_[1] and $_[1] eq ':ALL' ) { $Padre::Logger::DEBUG = 1; } my $pkg = ( caller() )[0]; eval <<"END_PERL"; package $pkg; use constant DEBUG => !! ( defined(\$${pkg}::DEBUG) ? \$${pkg}::DEBUG : \$Padre::Logger::DEBUG ); BEGIN { *TRACE = *Padre::Logger::TRACE; TRACE('::DEBUG enabled') if DEBUG; } 1; END_PERL die("Failed to enable debugging for $pkg") if $@; return; } # Global trace function sub TRACE { my $time = Time::HiRes::time; my $caller = ( caller(1) )[3] || 'main'; my $logfile = Padre::Constant::LOG_FILE; my $thread = ( $INC{'threads.pm'} and threads->self->tid ) ? ( '(Thread ' . threads->self->tid . ') ' ) : ''; # open my $fh, '>>', $logfile or return; foreach (@_) { # print $fh sprintf( print sprintf( "# %.5f %s%s %s\n", $time, $thread, $caller, string($_), ); } if ( $ENV{PADRE_DEBUG_STACK} ) { print Carp::longmess(), "\n"; print '-' x 50, "\n"; } # close $fh; return; } sub string { require Devel::Dumpvar; my $object = shift; my $shared = ( $INC{'threads/shared.pm'} and threads::shared::is_shared($object) ) ? ' : shared' : ''; my $string = ref($object) ? Devel::Dumpvar->_refstring($object) : Devel::Dumpvar->_scalar($object); return $string . $shared; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx.pm��������������������������������������������������������������������������0000644�0001750�0001750�00000011763�12237327555�013721� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx; # Provides a set of Wx-specific miscellaneous functions use 5.008; use strict; use warnings; use constant (); use Params::Util (); use Padre::Constant (); use Padre::Current (); # Threading must be loaded before Wx loads use threads; use threads::shared; # Load every exportable constant into here, so that they come into # existence in the Wx:: packages, allowing everywhere else in the code to # use them without braces. use Wx ('wxTheClipboard'); use Wx::Event (':everything'); use Wx::AUI (); use Wx::Socket (); our $VERSION = '1.00'; our $COMPATIBLE = '0.43'; BEGIN { # Hard version lock on a new-enough Wx.pm unless ( $Wx::VERSION and $Wx::VERSION >= 0.91 ) { die("Your Wx.pm is not new enough (need 0.91, found $Wx::VERSION)"); } # Load all the image handlers that we support by default in Padre. # Don't load all of them with Wx::InitAllImageHandlers, it wastes memory. Wx::Image::AddHandler( Wx::PNGHandler->new ); Wx::Image::AddHandler( Wx::ICOHandler->new ); Wx::Image::AddHandler( Wx::XPMHandler->new ); # Load the enhanced constants package require Padre::Wx::Constant; } # Some default Wx objects use constant { DEFAULT_COLOUR => Wx::Colour->new( 0xFF, 0xFF, 0xFF ), NULL_FONT => Wx::Font->new(Wx::NullFont), EDITOR_FONT => Wx::Font->new( 9, Wx::TELETYPE, Wx::NORMAL, Wx::NORMAL ), }; sub import { my $class = shift; my @load = grep { not $_->VERSION } map {"Wx::$_"} @_; if (@load) { local $@; eval join "\n", map {"require $_;"} @load; Padre::Wx::Constant::load(); } return 1; } ##################################################################### # Wx Version Methods sub version_perl { Wx::wxVERSION(); } sub version_human { my $string = Wx::wxVERSION(); $string =~ s/(\d\d\d)(\d\d\d)/$1.$2/; $string =~ s/\.0+(\d)/.$1/g; return $string; } ##################################################################### # Convenience Functions # Colour constructor sub color { my $string = shift; my @rgb = ( 0xFF, 0xFF, 0xFF ); # Some default if ( not defined $string ) { # Carp::cluck("undefined color"); } elsif ( $string =~ /^(..)(..)(..)$/ ) { @rgb = map { hex($_) } ( $1, $2, $3 ); } else { # Carp::cluck("invalid color '$string'"); } return Wx::Colour->new(@rgb); } # Font constructor sub native_font { my $string = shift; unless ( defined Params::Util::_STRING($string) ) { return NULL_FONT; } # Attempt to apply the font string local $@; my $nfont = eval { my $font = Wx::Font->new(Wx::NullFont); $font->SetNativeFontInfoUserDesc($string); $font->IsOk ? $font : undef; }; return $nfont if $nfont; return NULL_FONT; } # Telytype/editor font sub editor_font { my $string = shift; unless ( defined Params::Util::_STRING($string) ) { return EDITOR_FONT; } # Attempt to apply the font string local $@; my $efont = eval { my $font = Wx::Font->new( 9, Wx::TELETYPE, Wx::NORMAL, Wx::NORMAL ); $font->SetNativeFontInfoUserDesc($string); $font->IsOk ? $font : undef; }; return $efont if $efont; return EDITOR_FONT; } # The Wx::AuiPaneInfo method-chaining API is stupid. # This method provides a less insane way to create one. sub aui_pane_info { my $class = shift; my $info = Wx::AuiPaneInfo->new; while (@_) { my $method = shift; $info->$method(shift); } return $info; } ##################################################################### # External Website Integration sub launch_browser { require Padre::Task::LaunchDefaultBrowser; Padre::Task::LaunchDefaultBrowser->new( url => $_[0], )->schedule; } # Launch a "Live Support" window on Mibbit.com or other service sub launch_irc { my $channel = shift; # Generate the (long) chat URL my $url = "http://padre.perlide.org/irc.html?channel=$channel"; if ( my $locale = Padre::Current->config->locale ) { $url .= "&locale=$locale"; } # Spawn a browser to show it launch_browser($url); return; } # Launch a browser window for a local file sub launch_file { require URI::file; launch_browser( URI::file->new_abs(shift) ); } ###################################################################### # Wx::Event Convenience Functions # FIXME Find out why EVT_CONTEXT_MENU doesn't work on Ubuntu # commeted out as workas against Ubuntu 12.10, this is cool for lot's of Methods only # if (Padre::Constant::UNIX) { # *Wx::Event::EVT_CONTEXT = *Wx::Event::EVT_RIGHT_DOWN; # } else { *Wx::Event::EVT_CONTEXT = *Wx::Event::EVT_CONTEXT_MENU; # } 1; =pod =head1 NAME Padre::Wx - Wx integration for Padre =head1 DESCRIPTION Support function library for Wx related things, and bootstrap logic for Wx integration. Isolates any F<Wx.pm> twiddling away from the actual Padre implementation code. Load every exportable constant, so that they come into existence in the C<Wx::> packages, allowing everywhere else in the code to use them without braces. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������Padre-1.00/lib/Padre/Document.pm��������������������������������������������������������������������0000644�0001750�0001750�00000123005�12237327555�015072� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Document; =head1 NAME Padre::Document - Padre Document API =head1 DESCRIPTION The B<Padre::Document> class provides a base class, default implementation and API documentation for document type support in L<Padre>. As an API, it allows L<Padre> developers and plug-in authors to implement extended support for various document types in Padre, while ensuring that a naive default document implementation exists that allows Padre to provide basic support (syntax highlighting mainly) for many document types without the need to install extra modules unless you need the extra functionality. =head2 Document Type Registration Padre uses MIME types as the fundamental identifier when working with documents. Files are typed at load-time based on file extension (with a simple heuristic fallback when opening files with no extension). Many of the MIME types are unofficial X-style identifiers, but in cases without an official type, Padre will try to use the most popular identifier (based on research into the various language communities). Each supported mime has a mapping to a Scintilla lexer (for syntax highlighting), and an optional mapping to the class that provides enhanced support for that document type. Plug-ins that implement support for a document type provide a C<registered_documents> method that the plug-in manager will call as needed. Plug-in authors should B<not> load the document classes in advance, they will be automatically loaded by Padre as needed. Padre does B<not> currently support opening non-text files. =head2 File to MIME type mapping Padre has a built-in hash mapping the file extensions to MIME types. In certain cases (.t, .pl, .pm) Padre also looks in the content of the file to determine if the file is Perl 5 or Perl 6. MIME types are mapped to lexers that provide the syntax highlighting. MIME types are also mapped to modules that implement special features needed by that kind of a file type. Plug-ins can add further mappings. =head2 Plan Padre has a built-in mapping of file extension to either a single MIME type or function name. In order to determine the actual MIME type Padre checks this hash. If the key is a subroutine it is called and it should return the MIME type of the file. The user has a way in the GUI to add more file extensions and map them to existing MIME types or functions. It is probably better to have a commonly used name along with the MIME type in that GUI instead of the MIME type only. I wonder if we should allow the users (and or plug-in authors) to change the functions or to add new functions that will map file content to MIME type or if we should just tell them to patch Padre. What if they need it for some internal project? A plug-in is able to add new supported MIME types. Padre should either check for collisions if a plug-in wants to provide an already supported MIME type or should allow multiple support modules with a way to select the current one. (Again I think we probably don't need this. People can just come and add the MIME types to Padre core.) (not yet implemented) A plug-in can register zero or more modules that implement special features needed by certain MIME types. Every MIME type can have only one module that implements its features. Padre is checking if a MIME type already has a registered module and does not let to replace it. (Special features such as commenting out a few lines at once, auto-completion or refactoring tools). Padre should check if the given MIME type is one that is in the supported MIME type list. (TO DO) Each MIME type is mapped to one or more lexers that provide the syntax highlighting. Every MIME type has to be mapped to at least one lexer but it can be mapped to several lexers as well. The user is able to select the lexer for each MIME type. (For this each lexer should have a reasonable name too.) (TO DO) Every plug-in should be able to add a list of lexers to the existing MIME types regardless if the plug-in also provides the class that implements the features of that MIME type. By default Padre supports the built-in syntax highlighting of Scintilla. Perl 5 currently has two L<PPI> based syntax highlighter, Perl 6 can use the STD.pm or Rakudo/PGE for syntax highlighting but there are two plug-ins - Parrot and Kate - that can provide syntax highlighting to a wide range of MIME types. C<provided_highlighters()> returns a list of arrays like this: ['Module with a colorize function' => 'Human readable Name' => 'Long description'] C<highlighting_mime_types()> returns a hash where the keys are module names listed in C<provided_highlighters>, the values are array references to MIME types: 'Module::A' => [ mime-type-1, mime-type-2] The user can change the MIME type mapping of individual files and Padre should remember this choice and allow the user to change it to another specific MIME type or to set it to "Default by extension". =head1 METHODS =cut use 5.008; use strict; use warnings; use Carp (); use File::Spec 3.2 (); # 3.21 needed for volume-safe abs2rel use File::Temp (); use Params::Util (); use Wx::Scintilla::Constant (); use Padre::Constant (); use Padre::Current (); use Padre::Util (); use Padre::Wx (); use Padre::MIME (); use Padre::File (); use Padre::Logger; our $VERSION = '1.00'; our $COMPATIBLE = '0.91'; ##################################################################### # Task Integration sub task_functions { return ''; } sub task_outline { return ''; } sub task_syntax { return ''; } ##################################################################### # Document Registration # NOTE: This is probably a bad place to store this my $UNSAVED = 0; ##################################################################### # Constructor and Accessors use Class::XSAccessor { getters => { unsaved => 'unsaved', filename => 'filename', # setter is defined as normal function file => 'file', # Padre::File - object editor => 'editor', timestamp => 'timestamp', mimetype => 'mimetype', encoding => 'encoding', errstr => 'errstr', tempfile => 'tempfile', highlighter => 'highlighter', outline_data => 'outline_data', }, setters => { set_editor => 'editor', set_timestamp => 'timestamp', set_mimetype => 'mimetype', set_encoding => 'encoding', set_newline_type => 'newline_type', set_errstr => 'errstr', set_tempfile => 'tempfile', set_highlighter => 'highlighter', set_outline_data => 'outline_data', }, }; =head2 new my $doc = Padre::Document->new( filename => $file, ); C<$file> is optional and if given it will be loaded in the document. MIME type is defined by the C<guess_mimetype> function. =cut sub new { my $class = shift; my $self = bless {@_}, $class; # This sub creates the document object and is allowed to use self->filename, # once noone else uses it, it shout be deleted from the $self - hash before # leaving the sub. # Use document->{file}->filename instead! if ( $self->{filename} ) { $self->{file} = Padre::File->new( $self->{filename}, info_handler => sub { $self->current->main->info( $_[1] ); } ); unless ( defined $self->{file} ) { $self->error( Wx::gettext('Error while opening file: no file object') ); return; } if ( defined $self->{file}->{error} ) { $self->error( $self->{file}->{error} ); return; } # The Padre::File - module knows how to format the filename to the right # syntax to correct (for example) .//file.pl to ./file.pl) $self->{filename} = $self->{file}->{filename}; if ( $self->{file}->exists ) { # Test script must be able to pass an alternate config object # NOTE: Since when do we support per-document configuration objects? my $config = $self->{config} || $self->config; if ( defined( $self->{file}->size ) and ( $self->{file}->size > $config->editor_file_size_limit ) ) { my $ret = Wx::MessageBox( sprintf( Wx::gettext( "The file %s you are trying to open is %s bytes large. It is over the arbitrary file size limit of Padre which is currently %s. Opening this file may reduce performance. Do you still want to open the file?" ), $self->{file}->{filename}, _commafy( -s $self->{file}->{filename} ), _commafy( $config->editor_file_size_limit ) ), Wx::gettext("Warning"), Wx::YES_NO | Wx::CENTRE, $self->current->main, ); if ( $ret != Wx::YES ) { return; } } } $self->load_file; } else { $self->{unsaved} = ++$UNSAVED; $self->{newline_type} = $self->default_newline_type; } unless ( $self->mimetype ) { my $mimetype = $self->guess_mimetype; if ( defined $mimetype ) { $self->set_mimetype($mimetype); } else { $self->error( Wx::gettext( "Error while determining MIME type.\nThis is possibly an encoding problem.\nAre you trying to load a binary file?" ) ); return; } } $self->rebless; # NOTE: Hacky support for the Padre Popularity Contest unless ( defined $ENV{PADRE_IS_TEST} ) { my $popcon = $self->current->ide->{_popularity_contest}; $popcon->count( 'mime.' . $self->mimetype ) if $popcon; } return $self; } sub rebless { my $self = shift; # Rebless as either to a subclass if there is a mime-type or # to the the base class, # This isn't exactly the most elegant way to do this, but will # do for a first implementation. my $class = $self->mime->document; TRACE("Reblessing to mimetype class: '$class'") if DEBUG; if ($class) { unless ( $class->VERSION ) { (my $source = $class.".pm") =~ s{::}{/}g; eval { require $source } or die "Failed to load $class: $@"; } bless $self, $class; } require Padre::Wx::Scintilla; $self->set_highlighter( Padre::Wx::Scintilla->highlighter($self) ); return; } sub current { Padre::Current->new( document => $_[0] ); } sub config { $_[0]->{config} or $_[0]->current->config; } sub mime { Padre::MIME->find( $_[0]->mimetype ); } # Abstract methods, each subclass should implement it # TO DO: Clearly this isn't ACTUALLY abstract (since they exist) sub scintilla_word_chars { return ''; } sub scintilla_key_words { require Padre::Wx::Scintilla; Padre::Wx::Scintilla->keywords( $_[0]->mimetype ); } sub get_calltip_keywords { return {}; } sub get_function_regex { return ''; } ###################################################################### # Padre::Cache Integration # The detection of VERSION allows us to make this call without having # to load modules at document destruction time if it isn't needed. sub DESTROY { if ( defined $_[0]->{filename} and $Padre::Cache::VERSION ) { Padre::Cache->release( $_[0]->{filename} ); } } ##################################################################### # Padre::Document GUI Integration sub colourize { my $self = shift; my $editor = $self->editor; require Padre::Wx::Scintilla; my $lexer = Padre::Wx::Scintilla->lexer( $self->mimetype ); $editor->SetLexer($lexer); TRACE("colourize called") if DEBUG; $editor->remove_color; if ( $lexer == Wx::Scintilla::Constant::SCLEX_CONTAINER ) { $self->colorize; } else { TRACE("Colourize is being called") if DEBUG; $editor->Colourise( 0, $editor->GetLength ); TRACE("Colourize completed") if DEBUG; } } sub colorize { my $self = shift; my $module = $self->highlighter; unless ($module) { # TO DO sometime this happens when I open Padre with several file # I think this can be somehow related to the quick (or slow ?) switching of # what is the current document while the code is still running. # for now I hide the warnings as this would just frighten people and the # actual problem seems to be only the warning or maybe late highighting # of a single document - szabgab #Carp::cluck("highlighter is set to 'stc' while colorize() is called for " . ($self->filename || '') . "\n"); #warn "Length: " . $self->editor->GetTextLength; return; } # allow virtual modules if they have a colorize method unless ( $module->can('colorize') ) { eval "use $module"; if ($@) { my $name = $self->{file} ? $self->{file}->filename : $self->get_title; Carp::cluck("Could not load module '$module' for file '$name'\n"); return; } } if ( $module->can('colorize') ) { TRACE("Call '$module->colorize(@_)'") if DEBUG; $module->colorize(@_); } else { warn("Module $module does not have a colorize method\n"); } return; } # For ts without a newline type # TO DO: get it from config sub default_newline_type { my $self = shift; # Very ugly hack to make the test script work if ( $0 =~ /t.70_document\.t/ ) { return Padre::Constant::NEWLINE; } $self->config->default_line_ending; } =head2 error $document->error( $msg ); Open an error dialog box with C<$msg> as main text. There's only one OK button. No return value. =cut # TO DO: A globally used error/message box function may be better instead # of replicating the same function in many files: sub error { $_[0]->current->main->message( $_[1], Wx::gettext('Error') ); } ##################################################################### # Disk Interaction Methods # These methods implement the interaction between the document and the # filesystem. sub basename { my $self = shift; if ( defined $self->{file} ) { return $self->{file}->basename; } return $self->{file}->{filename}; } sub dirname { my $self = shift; if ( defined $self->{file} ) { return $self->{file}->dirname; } return; } sub is_new { return !!( not defined $_[0]->file ); } sub is_modified { return !!( $_[0]->editor->GetModify ); } sub is_saved { return !!( defined $_[0]->file and not $_[0]->is_modified ); } sub is_unsaved { return !!( $_[0]->editor->GetModify and defined $_[0]->file ); } # Returns true if this is a new document that is too insignificant to # bother checking with the user before throwing it away. # Usually this is because it's empty or just has a space or two in it. sub is_unused { my $self = shift; return '' unless $self->is_new; return 1 unless $self->is_modified; return 1 unless $self->text_get =~ /\S/s; return ''; } sub is_readonly { my $self = shift; my $file = $self->file; return 0 unless defined($file); # Fill the cache if it's empty and assume read-write as a default $self->{readonly} ||= $self->file->readonly || 0; return $self->{readonly}; } # Returns true if file has changed on the disk # since load time or the last time we saved it. # Check if the file on the disk has changed # 1) when document gets the focus (gvim, notepad++) # 2) when we try to save the file (gvim) # 3) every time we type something ???? sub has_changed_on_disk { my $self = shift; return 0 unless defined $self->file; return 0 unless defined $self->timestamp; # Caching the result for two lines saved one stat-I/O each time this sub is run my $timestamp_now = $self->timestamp_now; return 0 unless defined $timestamp_now; # there may be no mtime on remote files # Return -1 if file has been deleted from disk return -1 unless $timestamp_now; # Return 1 if the file has changed on disk, otherwise 0 return $self->timestamp < $timestamp_now ? 1 : 0; } sub timestamp_now { my $self = shift; my $file = $self->file; return 0 unless defined $file; # It's important to return undef if there is no ->mtime for this filetype return undef unless $file->can('mtime'); return $file->mtime; } =head2 load_file $doc->load_file; Loads the current file. Sets the B<Encoding> bit using L<Encode::Guess> and tries to figure out what kind of newlines are in the file. Defaults to C<utf-8> if it could not figure out the encoding. Returns true on success false on failure. Sets C<< $doc->errstr >>. =cut sub load_file { my $self = shift; my $file = $self->file; if (DEBUG) { my $name = $file->{filename} || ''; TRACE("Loading file '$name'"); } # Show the file-changed-dialog again after the file was (re)loaded: delete $self->{_already_popup_file_changed}; # check if file exists if ( !$file->exists ) { # file doesn't exist, try to create an empty one if ( !$file->write('') ) { # oops, error creating file. abort operation $self->set_errstr( $file->error ); return; } } # load file $self->set_errstr(''); my $content = $file->read; if ( !defined($content) ) { $self->set_errstr( $file->error ); return; } $self->{timestamp} = $self->timestamp_now; # if guess encoding fails then use 'utf-8' require Padre::Locale; require Encode; $self->{encoding} = Padre::Locale::encoding_from_string($content); $content = Encode::decode( $self->{encoding}, $content ); # Determine new line type using file content. $self->{newline_type} = Padre::Util::newline_type($content); # Cache the original value of various things so we can do # smart things at save time later. $self->{original_content} = $content; $self->{original_newline} = $self->{newline_type}; return 1; } # New line type acan be one of these values: # WIN, MAC (for classic Mac) or UNIX (for Mac OS X and Linux/*BSD) # Special cases: # 'Mixed' for mixed end of lines, # 'None' for one-liners (no EOL) sub newline_type { $_[0]->{newline_type} or $_[0]->default_newline_type; } # Get the newline char(s) for this document. # TO DO: This solution is really terrible - it should be {newline} or at least a caching of the value # because of speed issues: sub newline { my $self = shift; if ( $self->newline_type eq 'WIN' ) { return "\r\n"; } elsif ( $self->newline_type eq 'MAC' ) { return "\r"; } return "\n"; } =head2 autocomplete_matching_char The first argument needs to be a reference to the editor this method should work on. The second argument is expected to be a event reference to the event object which is the reason why the method was launched. This method expects a hash as the third argument. If the last key typed by the user is a key in this hash, the value is automatically added and the cursor is set between key and value. Both key and value are expected to be ASCII codes. Usually used for brackets and text signs like: $self->autocomplete_matching_char( $editor, $event, 39 => 39, # ' ' 40 => 41, # ( ) ); Returns 1 if something was added or 0 otherwise (if anybody cares about this). =cut sub autocomplete_matching_char { my $self = shift; my $editor = shift; my $event = shift; my %table = @_; my $key = $event->GetUnicodeKey; unless ( $table{$key} ) { return 0; } # Is autocomplete enabled my $current = $self->current; my $config = $current->config; unless ( $config->autocomplete_brackets ) { return 0; } # Is something selected? my $pos = $editor->GetCurrentPos; my $text = $editor->GetSelectedText; if ( defined $text and length $text ) { my $start = $editor->GetSelectionStart; my $end = $editor->GetSelectionEnd; $editor->GotoPos($end); $editor->AddText( chr( $table{$key} ) ); $editor->GotoPos($start); } else { my $nextChar; if ( $editor->GetTextLength > $pos ) { $nextChar = $editor->GetTextRange( $pos, $pos + 1 ); } unless ( defined($nextChar) && ord($nextChar) == $table{$key} and ( !$config->autocomplete_multiclosebracket ) ) { $editor->AddText( chr( $table{$key} ) ); $editor->CharLeft; } } return 1; } sub set_filename { my $self = shift; my $filename = shift; unless ( defined $filename ) { warn 'Request to set filename to undef from ' . join( ',', caller ); return 0; } # Shortcut if no change in file name if ( defined $self->{filename} and $self->{filename} eq $filename ) { return 1; } # Flush out old state information, primarily the file object. # Additionally, whenever we change the name of the file we can no # longer trust that we are in the same project, so flush that as well. delete $self->{filename}; delete $self->{file}; delete $self->{project_dir}; # Save the new filename $self->{file} = Padre::File->new($filename); # Padre::File reformats filenames to the protocol/OS specific format, so use this: $self->{filename} = $self->{file}->{filename}; } # Only a dummy for documents which don't support this sub autoclean { my $self = shift; return 1; } sub save_file { my $self = shift; my $current = $self->current; my $manager = $current->ide->plugin_manager; unless ( $manager->hook( 'before_save', $self ) ) { return; } # Show the file-changed-dialog again after the file was saved: delete $self->{_already_popup_file_changed}; # If padre is run on files that have no project # I.E Padre foo.pl & # The assumption of $self->project as defined will cause a fail my $config; $config = $self->project->config if $self->project; $self->set_errstr(''); if ( $config and $config->save_autoclean ) { $self->autoclean; } my $content = $self->text_get; my $file = $self->file; unless ( defined $file ) { # NOTE: Now we have ->set_filename, should this situation ever occur? $file = Padre::File->new( $self->filename ); $self->{file} = $file; } # This is just temporary for security and should prevend data loss: if ( $self->{filename} ne $file->{filename} ) { my $ret = Wx::MessageBox( sprintf( Wx::gettext('Visual filename %s does not match the internal filename %s, do you want to abort saving?'), $self->{filename}, $file->{filename} ), Wx::gettext("Save Warning"), Wx::YES_NO | Wx::CENTRE, $current->main, ); return 0 if $ret == Wx::YES; } # Not set when first time to save # Allow the upgrade from ascii to utf-8 if there were unicode characters added unless ( $self->{encoding} and $self->{encoding} ne 'ascii' ) { require Padre::Locale; $self->{encoding} = Padre::Locale::encoding_from_string($content); } my $encode = ''; if ( defined $self->{encoding} ) { $encode = ":raw:encoding($self->{encoding})"; } else { warn "encoding is not set, (couldn't get from contents) when saving file $file->{filename}\n"; } unless ( $file->write( $content, $encode ) ) { $self->set_errstr( $file->error ); return; } # File must be closed at this time, slow fs/userspace-fs may not # return the correct result otherwise! $self->{timestamp} = $self->timestamp_now; # Determine new line type using file content. $self->{newline_type} = Padre::Util::newline_type($content); # Update read-only-cache $self->{readonly} = $self->file->readonly; $manager->hook( 'after_save', $self ); return 1; } =head2 write Writes the document to an arbitrary local file using the same semantics as when we do a full file save. =cut sub write { my $self = shift; my $file = shift; # File object, not just path my $text = $self->text_get; # Get the locale, but don't save it. # This could fire when only one of two characters have been # typed, and we may not know the encoding yet. # Not set when first time to save # Allow the upgrade from ascii to utf-8 if there were unicode characters added my $encoding = $self->{encoding}; unless ( $encoding and $encoding ne 'ascii' ) { require Padre::Locale; $encoding = Padre::Locale::encoding_from_string($text); } if ( defined $encoding ) { $encoding = ":raw:encoding($encoding)"; } # Write the file $file->write( $text, $encoding ); } =head2 reload Reload the current file discarding changes in the editor. Returns true on success false on failure. Error message will be in C<< $doc->errstr >>. TO DO: In the future it should backup the changes in case the user regrets the action. =cut sub reload { my $self = shift; my $file = $self->file or return; return $self->load_file; } # Copies document content to a temporary file. # Returns temporary file name. sub store_in_tempfile { my $self = shift; $self->create_tempfile unless $self->tempfile; open my $FH, ">", $self->tempfile; print $FH $self->text_get; close $FH; return $self->tempfile; } sub create_tempfile { my $tempfile = File::Temp->new( UNLINK => 0 ); $_[0]->set_tempfile( $tempfile->filename ); close $tempfile; return; } sub remove_tempfile { unlink $_[0]->tempfile; return; } ##################################################################### # Basic Content Manipulation =head2 text_get my $string = $document->text_get; The C<text_get> method returns the content of the document as a simple plain scalar string. =cut sub text_get { $_[0]->editor->GetText; } =head2 text_length my $chars = $document->GetLength; The C<text_length> method returns the size of the document in characters. Note that this is the character length of the document and not the byte size of the document. The byte size of the file when saved is likely to differ from the character size. =cut sub text_length { $_[0]->editor->GetLength; } =head2 text_like my $cool = $document->text_like( qr/(?:robot|ninja|pirate)/i ); The C<text_like> method takes a regular expression and tests the document to see if it matches. Returns true if the document matches the regular express, or false if not. =cut sub text_like { my $self = shift; return !!( $self->text_get =~ /$_[0]/m ); } sub text_with_one_nl { my $self = shift; my $text = $self->text_get or return; my $nlchar = "\n"; if ( $self->newline_type eq 'WIN' ) { $nlchar = "\r\n"; } elsif ( $self->newline_type eq 'MAC' ) { $nlchar = "\r"; } $text =~ s/$nlchar/\n/g; return $text; } =head2 text_set $document->text_set("This is an\nentirely new document"); The C<text_set> method takes a content string and does a complete atomic replacement of the document with new and entirely different content. It uses a simple and direct approach which is fast but is not aware of context such as the current cursor position and the undo buffer. As a result, it is only appropriate for use when a document is being changed for new content that is completely and utterly different. To change a document to a new version that is similar to the old one (such as when you are doing refactoring tasks) the alternative L</text_replace> or ideally L</text_delta> should be used instead. =cut sub text_set { my $self = shift; my $editor = $self->editor or return; $editor->SetText(shift); $editor->refresh_notebook; return 1; } =head2 text_replace $document->text_replace("This is a\nmodified document"); The C<text_replace> method takes content as a string and incrementally modifies the current document to look like the new content. The logic for this process is done with a L<Padre::Delta> object created using L<Algorithm::Diff> and is run in the foreground. Because this blocks the entire IDE it is considered relatively slow and expensive, and is particularly bad for large documents. But because it is by the most simple way of applying changes to a document and does not require locks or background tasks, this method has a role to play in early implementations of new logic. Once functionality using C<text_replace> has matured, you should consider moving it into a background task which emits a L<Padre::Delta> and then use C<text_delta> to apply the change to the editor in the foreground. Returns true if changes were made to the current document, or false if the new document is identical to the existing one and no change was needed. =cut sub text_replace { my $self = shift; my $to = shift; my $from = $self->text_get; return 0 if $to eq $from; # Generate a delta and apply it require Padre::Delta; my $delta = Padre::Delta->from_scalars( \$from => \$to ); return $self->text_delta($delta); } =head2 text_delta The C<text_delta> method takes a single L<Padre::Delta> object as a parameter and applies it to the current document. Returns true if the document was changed, false if passed the null delta and no changes were needed, or C<undef> if not passed a L<Padre::Delta>. =cut sub text_delta { my $self = shift; my $delta = Params::Util::_INSTANCE( shift, 'Padre::Delta' ) or return; return 0 if $delta->null; my $editor = $self->editor; $delta->to_editor($editor); $editor->refresh_notebook; return 1; } ##################################################################### # GUI Integration Methods # What should be shown in the notebook tab sub get_title { my $self = shift; if ( defined( $self->{file} ) and defined( $self->{file}->filename ) and ( $self->{file}->filename ne '' ) ) { return $self->basename; } else { $self->{unsaved} ||= ++$UNSAVED; my $str = sprintf( Wx::gettext("Unsaved %d"), $self->{unsaved}, ); # A bug in Wx requires a space at the front of the title # (For reasons I don't understand yet) return ' ' . $str; } } # TO DO: experimental sub get_indentation_style { my $self = shift; my $config = $self->config; # TO DO: (document >) project > config my $style; if ( $config->editor_indent_auto ) { # TO DO: This should be cached? What's with newish documents then? $style = $self->guess_indentation_style; } else { $style = { use_tabs => $config->editor_indent_tab, tabwidth => $config->editor_indent_tab_width, indentwidth => $config->editor_indent_width, }; } return $style; } =head2 get_indentation_level_string Calculates the string that should be used to indent a given number of levels for this document. Takes the indentation level as an integer argument which defaults to one. Note that indenting to level 2 may be different from just concatenating the indentation string to level one twice due to tab compression. =cut sub get_indentation_level_string { my $self = shift; my $level = shift; $level = 1 if not defined $level; my $style = $self->get_indentation_style; my $indent_width = $style->{indentwidth}; my $tab_width = $style->{tabwidth}; my $indent; if ( $style->{use_tabs} and $indent_width != $tab_width ) { # do tab compression if necessary # - First, convert all to spaces (aka columns) # - Then, add an indentation level # - Then, convert to tabs as necessary my $tab_equivalent = " " x $tab_width; $indent = ( " " x $indent_width ) x $level; $indent =~ s/$tab_equivalent/\t/g; } elsif ( $style->{use_tabs} ) { $indent = "\t" x $level; } else { $indent = ( " " x $indent_width ) x $level; } return $indent; } =head2 event_on_char NOT IMPLEMENTED IN THE BASE CLASS This method - if implemented - is called after any addition of a character to the current document. This enables document classes to aid the user in the editing process in various ways, e.g. by auto-pairing of brackets or by suggesting usable method names when method-call syntax is detected. Parameters retrieved are the objects for the document, the editor, and the wxWidgets event. Returns nothing. Cf. C<Padre::Document::Perl> for an example. =head2 event_on_context_menu NOT IMPLEMENTED IN THE BASE CLASS This method - if implemented - is called when a user triggers the context menu (either by right-click or the context menu key or Shift+F10) in an editor after the standard context menu was created and populated in the C<Padre::Wx::Editor> class. By manipulating the menu document classes may provide the user with additional options. Parameters retrieved are the objects for the document, the editor, the context menu (C<Wx::Menu>) and the event. Returns nothing. =head2 event_on_left_up NOT IMPLEMENTED IN THE BASE CLASS This method - if implemented - is called when a user left-clicks in an editor. This can be used to implement context-sensitive actions if the user presses modifier keys while clicking. Parameters retrieved are the objects for the document, the editor, and the event. Returns nothing. =cut ##################################################################### # Project Integration Methods =pod =head2 project my $project = $document->project; The C<project> method is used to discover which project a document is part of. It uses a variety of methods to discover, scanning the file system if needed to "intuit" the location and type of project. Returns a L<Padre::Project> object for the project, or C<undef> if the document is unsaved, anonymous, or not part of any type of project for some other reason. =cut sub project { my $self = shift; my $manager = $self->current->ide->project_manager; # If we have a cached project_dir return the object based on that if ( defined $self->{project_dir} ) { return $manager->project( $self->{project_dir} ); } # Anonymous files don't have a project my $file = $self->file or return; # Currently no project support for remote files return unless $file->{protocol} eq 'local'; # Find the project for this document's filename my $project = $manager->from_file( $file->{filename} ); return undef unless defined $project; # To prevent the creation of tons of references to the project object, # cache the project by it's root directory. $self->{project_dir} = $project->root; return $project; } =pod =head2 project_dir my $path = $document->project_dir; The C<project_dir> method behaves similarly to C<project>, but instead it returns a path to the root directory of the project for this document. Returns a directory as a string, or C<''> if the document is unsaved, anonymous, or not part of any type of project for some other reason. =cut sub project_dir { my $self = shift; unless ( defined $self->{project_dir} ) { # Find the project, which slightly bizarely caches the # location of the project via it's root. # NOTE: Yes this looks weird, but it is significantly # less weird than the code it replaced. $self->project; } return $self->{project_dir}; } # Find the project-relative file name sub filename_relative { File::Spec->abs2rel( $_[0]->filename, $_[0]->project_dir ); } ##################################################################### # Document Analysis Methods # Unreliable methods that provide heuristic best-attempts at automatically # determining various document properties. # Left here as it is used in many places. # Maybe we need to remove this sub. sub guess_mimetype { my $self = shift; Padre::MIME->detect( text => $self->{original_content}, file => $self->file, perl6 => $self->config->lang_perl6_auto_detection, ); } =head2 guess_indentation_style Automatically infer the indentation style of the document using L<Text::FindIndent>. Returns a hash reference containing the keys C<use_tabs>, C<tabwidth>, and C<indentwidth>. It is suitable for passing to C<set_indendentation_style>. =cut sub guess_indentation_style { my $self = shift; my $text = $self->text_get; # Hand off to the standalone module my $indentation = 'u'; # Unknown if ( length $text ) { # Allow for the delayed loading of Text::FindIndent if we startup # with no file or a completely empty file. require Text::FindIndent; $indentation = Text::FindIndent->parse( \$text, skip_pod => $self->isa('Padre::Document::Perl'), ); } my $style; my $config = $self->config; if ( $indentation =~ /^t\d+/ ) { # we only do ONE tab $style = { use_tabs => 1, tabwidth => $config->editor_indent_tab_width || 8, indentwidth => 8, }; } elsif ( $indentation =~ /^s(\d+)/ ) { $style = { use_tabs => 0, tabwidth => $config->editor_indent_tab_width || 8, indentwidth => $1, }; } elsif ( $indentation =~ /^m(\d+)/ ) { $style = { use_tabs => 1, tabwidth => $config->editor_indent_tab_width || 8, indentwidth => $1, }; } else { # fallback $style = { use_tabs => $config->editor_indent_tab, tabwidth => $config->editor_indent_tab_width, indentwidth => $config->editor_indent_width, }; } return $style; } =head2 guess_filename my $name = $document->guess_filename When creating new code, one job that the editor should really be able to do for you without needing to be told is to work out where to save the file. When called on a new unsaved file, this method attempts to guess what the name of the file should be based purely on the content of the file. In the base implementation, this returns C<undef> to indicate that the method cannot make a reasonable guess at the name of the file. Your MIME type specific document subclass should implement any file name detection as it sees fit, returning the file name as a string. =cut sub guess_filename { my $self = shift; # If the file already has an existing name, guess that my $filename = $self->filename; if ( defined $filename ) { return ( File::Spec->splitpath($filename) )[2]; } return undef; } =head2 guess_subpath my $subpath = $document->guess_subpath; When called on a new unsaved file, this method attempts to guess what the sub-path of the file should be inside of the current project, based purely on the content of the file. In the base implementation, this returns a null list to indicate that the method cannot make a reasonable guess at the name of the file. Your MIME type specific document subclass should implement any file name detection as it sees fit, returning the project-rooted sub-path as a list of directory names. These directory names do not need to exist, they only represent intent. =cut sub guess_subpath { my $self = shift; # For an unknown document type, we cannot make any reasonable guess return (); } sub functions { my $self = shift; my $task = Params::Util::_DRIVER( $self->task_functions, 'Padre::Task' ) or return; $task->find( $self->text_get ); } sub pre_process { return 1; } sub selection_stats { my $self = shift; my $text = $self->editor->GetSelectedText; my $words = 0; my $newline = $self->newline; my $lines = 1; $lines++ while ( $text =~ /$newline/g ); $words++ while ( $text =~ /\s+/g ); my $chars_with_space = length $text; my $whitespace = "\n\r\t "; my $chars_without_space = $chars_with_space - ( $text =~ tr/$whitespace// ); return ( $lines, $chars_with_space, $chars_without_space, $words ); } sub stats { my $self = shift; my $chars_without_space = 0; my $words = 0; my $editor = $self->editor; my $text = $self->text_get; my $lines = $editor->GetLineCount; my $chars_with_space = $editor->GetTextLength; # TODO: Remove this limit? Right now, it is greater than the default file size limit. if ( length $text < 2_500_000 ) { $words++ while ( $text =~ /\s+/g ); my $whitespace = "\n\r\t "; # TODO: make this depend on the current character set # see http://en.wikipedia.org/wiki/Whitespace_character $chars_without_space = $chars_with_space - ( $text =~ tr/$whitespace// ); } else { $words = Wx::gettext('Skipped for large files'); $chars_without_space = Wx::gettext('Skipped for large files'); } # not set when first time to save # allow the upgread of ascii to utf-8 require Padre::Locale; if ( not $self->{encoding} or $self->{encoding} eq 'ascii' ) { $self->{encoding} = Padre::Locale::encoding_from_string($text); } return ( $lines, $chars_with_space, $chars_without_space, $words, $self->{newline_type}, $self->{encoding} ); } ##################################################################### # Document Manipulation Methods # Apply an arbitrary transform sub transform { my $self = shift; my %args = @_; my $driver = Params::Util::_DRIVER( delete $args{class}, 'Padre::Transform' ) or return; my $editor = $self->editor; my $input = $editor->GetText; my $delta = $driver->new(%args)->scalar_delta( \$input ); $delta->to_editor($editor); return 1; } # Delete all leading spaces. # Passes through to the editor by default, and is only defined in the # document class so that document classes can overload and do special stuff. sub delete_leading_spaces { my $self = shift; my $editor = $self->editor or return; return $editor->delete_leading_spaces; } # Delete all trailing spaces. # Passes through to the editor by default, and is only defined in the # document class so that document classes can overload and do special stuff. sub delete_trailing_spaces { my $self = shift; my $editor = $self->editor or return; return $editor->delete_trailing_spaces; } ##################################################################### # Unknown Methods # Dumped here because it's not clear which section they belong in # should return ($length, @words) # where $length is the length of the prefix to be replaced by one of the words # or # return ($error_message) # in case of some error sub autocomplete { my $self = shift; my $editor = $self->editor; my $pos = $editor->GetCurrentPos; my $line = $editor->LineFromPosition($pos); my $first = $editor->PositionFromLine($line); # line from beginning to current position my $prefix = $editor->GetTextRange( $first, $pos ); $prefix =~ s{^.*?(\w+)$}{$1}; my $last = $editor->GetLength; my $text = $editor->GetTextRange( 0, $last ); my $pre = $editor->GetTextRange( 0, $first + length($prefix) ); my $post = $editor->GetTextRange( $first, $last ); my $regex = eval {qr{\b(\Q$prefix\E\w+)\b}}; return ("Cannot build regular expression for '$prefix'.") if $@; my %seen; my @words; push @words, grep { !$seen{$_}++ } reverse( $pre =~ /$regex/g ); push @words, grep { !$seen{$_}++ } ( $post =~ /$regex/g ); if ( @words > 20 ) { @words = @words[ 0 .. 19 ]; } return ( length($prefix), @words ); } # Individual document classes should override this method. # It gets a string (the current selection) and it should # return a list of files that are possible matches to that file. # In Perl for example A::B would be mapped to A/B.pm in various places on # the filesystem. sub guess_filename_to_open { return; } # Individual document classes should override this method. # It needs to return the document specific help topic string. # In Perl this is using PPI to find the correct token sub find_help_topic { return; } # Individual document classes should override this method. # see L<Padre::Help> sub get_help_provider { return; } sub _commafy { my $number = reverse shift; $number =~ s/(\d{3})(?=\d)/$1,/g; return scalar reverse $number; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Project/�����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014353� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Project/Perl/������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�015255� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Project/Perl/Temp.pm�����������������������������������������������������������0000644�0001750�0001750�00000003275�12237327555�016537� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Project::Perl::Temp; use 5.008005; use strict; use warnings; use File::Path (); use File::Spec (); use File::Spec::Unix (); use File::Temp (); our $VERSION = '1.00'; sub new { my $class = shift; my $self = bless {@_}, $class; if ( ref $self->{project} ) { $self->{project} = $self->{project}->root; } if ( defined $self->{project} ) { $self->{project} = File::Spec->rel2abs( $self->{project} ); } unless ( $self->{files} ) { $self->{files} = {}; } return $self; } sub run { my $self = shift; my $files = $self->{files}; # Write the unsaved files foreach my $unix ( sort keys %$files ) { # Determine where to write the file to my ( $v, $d, $f ) = File::Spec::Unix->splitpath($unix); my @p = File::Spec::Unix->splitdir($d); my $dir = File::Spec->catdir( $self->temp, @p ); my $file = File::Spec->catfile( $dir, $f ); # Create the directory the file will be written to unless ( -d $dir ) { File::Path::mkpath( $dir, { verbose => 0 } ); } # Write the file content open( my $fh, '>', $file ) or die "open($file): $!"; binmode( $fh, ':encoding(UTF-8)' ); $fh->print( $files->{$unix} ); close($fh) or die "close($file): $!"; } return 1; } sub temp { $_[0]->{temp} or $_[0]->{temp} = File::Temp::tempdir( CLEANUP => 1 ); } sub include { my $self = shift; my @include = File::Spec->catdir( $self->{temp}, 'lib' ); if ( $self->{project} ) { push @include, File::Spec->catdir( $self->{project}, 'lib' ); } return @include; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Project/Perl/DZ.pm�������������������������������������������������������������0000644�0001750�0001750�00000000750�12237327555�016142� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Project::Perl::DZ; # Perl project driven by Dist::Zilla use 5.008005; use strict; use warnings; use Padre::Project::Perl (); our $VERSION = '1.00'; our @ISA = 'Padre::Project::Perl'; use Class::XSAccessor { getters => { dist_ini => 'dist_ini', } }; 1; __END__ # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������Padre-1.00/lib/Padre/Project/Perl/EUMM.pm�����������������������������������������������������������0000644�0001750�0001750�00000000767�12237327555�016400� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Project::Perl::EUMM; # Perl project driven by ExtUtils::MakeMaker use 5.008005; use strict; use warnings; use Padre::Project::Perl (); our $VERSION = '1.00'; our @ISA = 'Padre::Project::Perl'; use Class::XSAccessor { getters => { makefile_pl => 'makefile_pl', } }; 1; __END__ # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������Padre-1.00/lib/Padre/Project/Perl/MI.pm�������������������������������������������������������������0000644�0001750�0001750�00000000662�12237327555�016134� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Project::Perl::MI; # Perl project driven by Module::Install use 5.008005; use strict; use warnings; use Padre::Project::Perl::EUMM (); our $VERSION = '1.00'; our @ISA = 'Padre::Project::Perl::EUMM'; 1; __END__ # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������Padre-1.00/lib/Padre/Project/Perl/MB.pm�������������������������������������������������������������0000644�0001750�0001750�00000000751�12237327555�016124� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Project::Perl::MB; # Perl project driven by Module::Build use 5.008005; use strict; use warnings; use Padre::Project::Perl (); our $VERSION = '1.00'; our @ISA = 'Padre::Project::Perl'; use Class::XSAccessor { getters => { build_pl => 'build_pl', } }; 1; __END__ # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������Padre-1.00/lib/Padre/Project/Null.pm����������������������������������������������������������������0000644�0001750�0001750�00000000602�12237327555�015631� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Project::Null; use 5.008; use strict; use warnings; use Padre::Project (); our $VERSION = '1.00'; our @ISA = 'Padre::Project'; use overload 'bool' => sub () {0}; 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Project/Temp.pm����������������������������������������������������������������0000644�0001750�0001750�00000002047�12237327555�015631� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Project::Temp; # Project-specific private temporary directory. # This mechanism will allow us to pull off some really neat tricks, # like executing unsaved files and syntax-checking changed files # before they are saved. use 5.008005; use strict; use warnings; use File::Temp (); our $VERSION = '1.00'; use Class::XSAccessor { getters => { root => 'root', } }; ###################################################################### # Constructor sub new { bless { root => File::Temp::tempdir( CLEANUP => 1 ) }, $_[0]; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Project/Perl.pm����������������������������������������������������������������0000644�0001750�0001750�00000007726�12237327555�015637� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Project::Perl; use 5.008; use strict; use warnings; use File::Spec (); use Padre::Util (); use Padre::Project (); our $VERSION = '1.00'; our $COMPATIBLE = '0.88'; our @ISA = 'Padre::Project'; ###################################################################### # Configuration and Intuition sub headline { $_[0]->{headline} or $_[0]->{headline} = $_[0]->_headline; } sub _headline { my $self = shift; my $root = $self->root; # The intuitive approach is to find the top-most .pm file # in the lib directory. my $cursor = 'lib'; my $dir = File::Spec->catdir( $root, $cursor ); unless ( -d $dir ) { # Weird-looking Perl distro... return undef; } while (1) { local *DIRECTORY; opendir( DIRECTORY, $dir ) or last; my @files = readdir(DIRECTORY) or last; closedir(DIRECTORY) or last; # Can we find a single dominant module? my @modules = grep {/\.pm\z/} @files; if ( @modules == 1 ) { return File::Spec->catfile( $cursor, $modules[0] ); } # Can we find a single subdirectory without punctuation to descend? # We use a slightly unusual checking process, because we want to abort # as soon as we see the second subdirectory (because this scanning # happens in the foreground and we don't want to overblock) my $candidate = undef; foreach my $file (@files) { next if $file =~ /\./; my $path = File::Spec->catdir( $dir, $file ); next unless -d $path; if ($candidate) { # Shortcut, more than one last; } else { $candidate = $path; } } # Did we find a single candidate? last unless $candidate; $cursor = $candidate; $dir = File::Spec->catdir( $root, $cursor ); } return undef; } sub version { my $self = shift; # Look for a version declaration in the headline module for the project. my $file = $self->headline_path; return undef unless defined $file; Padre::Util::parse_variable( $file, 'VERSION' ); } sub module { $_[0]->{module} or $_[0]->{module} = $_[0]->_module; } # Attempts to determine a headline module name for the project sub _module { my $self = shift; # Look for a package declaration in the headline module for the project my $file = $self->headline_path; return undef unless defined $file; local $/ = "\n"; local $_; open( my $fh, '<', $file ) #-# no critic (RequireBriefOpen) or die "Could not open '$file': $!"; # Look for a package declaration somewhere in the first 10 lines. # After that, it's probably more likely to be superfluous than real. my $lines = 0; my $result = undef; while (<$fh>) { if (m{^ \s* package \s+ (\w[\w\:\']*) }x) { $result = $1; last; } last if ++$lines > 10; } close $fh; return $result; } # Attempts to determine a distribution name (e.g. Foo-Bar) for the project sub distribution { my $self = shift; my $name = $self->module; return undef unless defined $name; # Transform using the most common pattern $name =~ s/(?:::|')/-/g; return $name; } ###################################################################### # Directory Integration sub ignore_rule { my $super = shift->SUPER::ignore_rule(@_); return sub { # Do the checks from our parent return 0 unless $super->(); # In a distribution, we can ignore more things return 0 if $_->{name} =~ /^(?:blib|_build|inc|Makefile(?:\.old)?|pm_to_blib|MYMETA\.(?:yml|json))\z/; # It is fairly common to get bogged down in NYTProf output return 0 if $_->{name} =~ /^nytprof(?:\.out)?\z/; # Everything left, so we show it return 1; }; } sub ignore_skip { my $self = shift; my $rule = $self->SUPER::ignore_skip(@_); # Ignore typical build files push @$rule, '(?:^|\\/)(?:blib|_build|inc|Makefile(?:\.old)?|pm_to_blib|MYMETA\.(?:yml|json))\z'; # Ignore the enormous NYTProf output push @$rule, '(?:^|\\/)nytprof(?:\.out)?\z'; return $rule; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������Padre-1.00/lib/Padre/Role/��������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�013645� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Role/Task.pm�������������������������������������������������������������������0000644�0001750�0001750�00000024735�12237327555�015131� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Role::Task; =pod =head1 NAME Padre::Role::Task - A role for objects that commission tasks =head1 DESCRIPTION This is a role that should be inherited from by objects in Padre's permanent model that want to commision tasks to be run and have the results fed back to them, if the answer is still relevant. =head2 Task Revisions Objects in Padre that commission tasks to run in the background can continue processing and changing state during the queue'ing and/or execution of their background tasks. If the object state changes in such a way as to make the results of a background task irrelevant, a mechanism is needed to ensure these background tasks are aborted where possible, or their results thrown away when not. B<Padre::Role::Task> provides the concept of "task revisions" to support this functionality. A task revision is an incrementing number for each owner that remains the same as long as the results from any arbitrary launched task remains relevant for the current state of the object. When an object transitions a state boundary it will increment it's revision, whether there are any running tasks or not. When a task has completed the task manager will look up the owner (if it has one) and check to see if the current revision of the owner object is the same as when the task was scheduled. If so the Task Manager will call the C<on_finish> handler passing it the task. If not, the completed task will be silently discarded. =head2 Sending messages to your tasks The L<Padre::Task> API supports bidirection communication between tasks and their owners. However, when you commission a task via C<task_request> the task object is not returned, leaving you without access to the task and thus without a method by which to send messages to the child. This is intentional, as there is no guarentee that your task will be launched immediately and so sending messages immediately may be unsafe. The task may need to be delayed until a new background worker can be spawned, or for longer if the maximum background worker limit has been reached. The solution is provided by the C<on_message> handler, which is passed the parent task object as its first parameter. Tasks which expect to be sent messages from their owner should send the owner a greeting message as soon as they have started. Not only does this let the parent know that work has commenced on their task, but it provides the task object to the owner once there is certainty that any parent messages can be dispatched to the child successfully. In the following example, we assume a long running "service" style task that will need to be interacted with over time. sub service_start { my $self = shift; $self->task_reset; $self->task_request( task => 'My::Service', on_message => 'my_message', on_finish => 'my_finish', ); } sub my_message { my $self = shift; my $task = shift; # In this example our task sends an empty message to indicate "started" unless ( @_ ) { $self->{my_service} = $task; return; } # Handle other messages... } =head1 METHODS =cut use 5.008005; use strict; use warnings; use Scalar::Util (); use Padre::Current (); use Padre::Logger; our $VERSION = '1.00'; our $COMPATIBLE = '0.91'; # Use a shared sequence for object revisioning greatly # simplifies the indexing process. my $SEQUENCE = 0; my %INDEX = (); ###################################################################### # Main Methods =pod =head2 task_owner Padre::Role::Task->task_owner( 1234 ); The C<task_owner> static method is a convenience method which takes an owner id and will look up the owner object. Returns the object if it still exists and has not changed it's task revision. Returns C<undef> of the owner object no longer exists, or has changed its task revision since the original owner id was issued. =cut sub task_owner { $INDEX{ $_[1] || 0 }; } =pod =head2 task_manager The C<task_manager> method is a convenience for quick access to the Padre's L<Padre::TaskManager> instance. =cut sub task_manager { # TRACE( $_[0] ) if DEBUG; return $_[0]->can('current') ? $_[0]->current->ide->task_manager : Padre::Current->ide->task_manager; } =pod =head2 task_revision The C<task_revision> accessor returns the current task revision for an object. =cut sub task_revision { # TRACE( $_[0] ) if DEBUG; my $self = shift; # Set a revision if this is the first time unless ( defined $self->{task_revision} ) { $self->{task_revision} = ++$SEQUENCE; } # Optimisation hack: Only populate the index when # the revision is queried from the view. unless ( exists $INDEX{ $self->{task_revision} } ) { $INDEX{ $self->{task_revision} } = $self; Scalar::Util::weaken( $INDEX{ $self->{task_revision} } ); } # TRACE("Owner revision is $self->{task_revision}") if DEBUG; return $self->{task_revision}; } =pod =head2 task_reset The C<task_reset> method is called when the state of an owner object significantly changes, and outstanding tasks should be deleted or ignored. It will change the task revision of the owner and request the task manager to send a standard C<cancel> message to any currently executing background tasks, allowing them to terminate elegantly (if they handle =cut sub task_reset { # TRACE( $_[0] ) if DEBUG; my $self = shift; if ( $self->{task_revision} ) { delete $INDEX{ $self->{task_revision} }; $self->task_manager->cancel( $self->{task_revision} ); } $self->{task_revision} = ++$SEQUENCE; } =pod =head2 task_request $self->task_request( task => 'Padre::Task::SomeTask', on_message => 'message_handler_method', on_finish => 'finish_handler_method', my_param1 => 123, my_param2 => 'abc', ); The C<task_request> method is used to spawn a new background task for the owner, loading the class and registering for callback messages in the process. The C<task> parameter indicates the class of the task to be executed, which must inherit from L<Padre::Task>. The class itself will be automatically loaded if required. The optional C<on_message> parameter should be the name of a method (which must exist if provided) that will receive owner-targetted messages from the background process. The method will be passed the task object (as it exists after the C<prepare> phase in the parent thread) as its first parameter, followed by any values passed by the background task. If no C<on_message> parameter is provided the default method null C<task_message> will be called. The optional C<on_finish> parameter should be the name of a method (which must exist if provided) that will receive the task object back from the background worker once the task has completed, complete with any state saved in the task during its background execution. It is passed a single parameter, which is the L<Padre::Task> object. If no C<on_finish> parameter is provided the default method null C<task_finish> will be called. Any other parameters are passed through the constructor method of the task. =cut sub task_request { # TRACE( $_[0] ) if DEBUG; my $self = shift; my %param = @_; # Check and load the task # Support a convenience shortcut where a false value # for task means don't run a task at all. my $name = delete $param{task} or return; my $driver = Params::Util::_DRIVER( $name, 'Padre::Task' ); die "Invalid task class '$name'" unless $driver; # Create and start the task with ourself as the owner TRACE("Creating and scheduling task $driver") if DEBUG; my $task = $driver->new( owner => $self->task_revision, %param, ); # Check the run event handler my $on_run = $task->on_run; if ( $on_run and not $self->can($on_run) ) { die "The on_run handler '$on_run' is not implemented"; } # Check the status event handler my $on_status = $task->on_status; if ( $on_status and not $self->can($on_status) ) { die "The on_status handler '$on_status' is not implemented"; } # Check the message event handler my $on_message = $task->on_message; if ( $on_message and not $self->can($on_message) ) { die "The on_message handler '$on_message' is not implemented"; } # Check the finish event handler my $on_finish = $task->on_message; if ( $on_finish and not $self->can($on_finish) ) { die "The on_message handler '$on_finish' is not implemented"; } # Send the task for execution $task->schedule; } =pod =head2 task_finish The C<task_finish> method is the default handler method for completed tasks, and will be called for any C<task_request> where no specific C<on_finish> handler was provided. If your object issues only one task, or if you would prefer a single common finish handler for all your different tasks, you should override this method instead of explicitly defining an C<on_finish> handler for every task. The default implementation ensures that every task has an appropriate finish handler by throwing an exception with a message indicating the owner and task class for which no finish handler could be found. =cut sub task_finish { my $class = ref( $_[0] ) || $_[0]; my $task = ref( $_[1] ) || $_[1]; die "Unhandled task_finish for $class (recieved $task)"; } =pod =head2 task_message The C<task_message> method is the default handler method for completed tasks, and will be called for any C<task_request> where no specific C<on_message> handler was provided. If your object issues only one task, or if you would prefer a single common message handler for all your different tasks, you should override this method instead of explicitly defining an C<on_finish> handler for every task. If none of your tasks will send messages back to their owner, you do not need to define this method. The default implementation ensures that every task has an appropriate finish handler by throwing an exception with a message indicating the owner and task class for which no finish handler could be found. =cut sub task_message { my $class = ref( $_[0] ) || $_[0]; my $task = ref( $_[1] ) || $_[1]; die "Unhandled task_message for $class (recieved $task message $_[2]->[0])"; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������Padre-1.00/lib/Padre/Role/PubSub.pm�����������������������������������������������������������������0000644�0001750�0001750�00000005356�12237327555�015425� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Role::PubSub; =pod =head1 NAME Padre::Role::PubSub - A simple event publish/subscriber role =head1 DESCRIPTION This class allows the addition of simple publish/subscribe behaviour to an arbitrary class. =head1 METHODS =cut use 5.008; use strict; use warnings; use Scalar::Util (); use Params::Util (); our $VERSION = '1.00'; =pod =head2 subscribe $publisher->subscriber( $object, { my_event_one => 'my_handler_method', my_event_two => 'my_handler_method', } ); The <subscriber> method lets you register an object for callbacks to a particular set of method for various named events. Returns true, or throws an exception if any of the parameters are invalid. =cut sub subscribe { my $self = shift; my $object = shift; my $events = shift; unless ( Params::Util::_INSTANCE($object, 'UNIVERSAL') ) { die "Missing or invalid subscriber object"; } unless ( Params::Util::_HASH($events) ) { die "Missing or invalid event hash method"; } # Create the new queue entry my $queue = $self->{pubsub} ||= []; push @$queue, [ $object, $events ]; Scalar::Util::weaken($queue->[-1]->[0]); return 1; } =pod =head2 unsubscribe $publisher->unsubscribe($subscriber); The C<unsubscribe> method removes all event registrations for a particular object. Returns true. =cut sub unsubscribe { my $self = shift; my $queue = $self->{pubsub} or return 1; my $addr = Scalar::Util::refaddr(shift) or return 1; @$queue = map { defined $_ and Scalar::Util::refaddr($_) != $addr } @$queue; delete $self->{pubsub} unless @$queue; return 1; } =pod =head2 publish $publisher->publish("my_event_one", "param1", "param2"); The C<publish> method is called on the published to emit a particular named event. It calls any registered event handlers in sequence, ignoring exceptions. Returns true, or throws an exception if the event name is invalid. =cut sub publish { my $self = shift; my $queue = $self->{pubsub} or return 1; my $name = shift; # Iterate over the subscribers, calling them and ignoring their response foreach my $subscriber ( @$queue ) { next unless defined $subscriber->[0]; my $object = $subscriber->[0]; my $method = $subscriber->[1]->{$name} or next; $object->$method( $self, @_ ); } return 1; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Perl.pm������������������������������������������������������������������������0000644�0001750�0001750�00000012137�12237327555�014221� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Perl; # TO DO: Merge this into Probe::Perl some day in the future when this is # perfected, stable and beyond reproach. =pod =head1 NAME Padre::Perl - A more nuanced "Where is Perl" module than Probe::Perl =head1 DESCRIPTION Even though it has only had a single release, L<Probe::Perl> is the "best practice" method for finding the current Perl interpreter, so that we can make a system call to a new instance of the same Perl environment. However, during the development of L<Padre> we have found the feature set of L<Probe::Perl> to be insufficient. C<Padre::Perl> is an experimental attempt to improve on L<Probe::Perl> and support a wider range of situations. The implementation is being contained to the L<Padre> project until we have competently "solved" all of the problems that we care about. =head2 GUI vs Command Line On some operating systems, different Perl binaries need to be called based on whether the process will be executing in a graphical environment versus a command line environment. On Microsoft Windows F<perl.exe> is the command line Perl binary and F<wperl.exe> is the windowing Perl binary. On Mac OS X (Darwin) F<perl.exe> is the command line Perl binary and F<wxPerl.exe> is a wxWidgets-specific Perl binary. =head2 PAR Support PAR executables do not typically support re-invocation, and implementations that do are only a recent invention, and do not support the normal Perl flags. Once implemented, we may try to implement support for them here as well. =head1 FUNCTIONS =cut use 5.008005; use strict; use warnings; # Because this is sometimes used outside the Padre codebase, # don't put any dependencies on other Padre modules in here. our $VERSION = '1.00'; my $perl = undef; =pod =head2 C<perl> The C<perl> function is equivalent to (and passes through to) the C<find_perl_interpreter> method of L<Probe::Perl>. It should be used when you simply need the "current" Perl executable and don't have any special needs. The other functions should only be used once you understand your needs in more detail. Returns the location of current F<perl> executable, or C<undef> if it cannot be found. =cut sub perl { # Find the exact Perl used to launch Padre return $perl if defined $perl; # Use the most correct method first require Probe::Perl; my $_perl = Probe::Perl->find_perl_interpreter; if ( defined $_perl ) { $perl = $_perl; return $perl; } # Fallback to a simpler way require File::Which; $_perl = scalar File::Which::which('perl'); $perl = $_perl; return $perl; } =pod =head2 C<cperl> The C<cperl> function is a Perl executable location function that specifically tries to find a command line Perl. In some situations you may critically need a command line Perl so that proper C<STDIN>, C<STDOUT> and C<STDERR> handles are available. Returns a path to a command line Perl, or C<undef> if one cannot be found. =cut sub cperl { my $path = perl(); # Cascade failure unless ( defined $path ) { return; } if ( $^O eq 'MSWin32' ) { if ( $path =~ s/\b(wperl\.exe)\z// ) { # Convert to non-GUI if ( -f "${path}perl.exe" ) { return "${path}perl.exe"; } else { return "${path}wperl.exe"; } } # Unknown, give up return $path; } if ( $^O eq 'darwin' ) { if ( $path =~ s/\b(wxPerl)\z// ) { # Convert to non-GUI if ( -f "${path}perl" ) { return "${path}perl"; } else { return "${path}wxPerl"; } } # Unknown, give up return $path; } # No distinction on this platform, or we have no idea return $path; } =pod =head2 C<wxperl> The C<wxperl> function is a Perl executable location function that specifically tries to find a windowing Perl for running wxWidgets applications. In some situations you may critically need a wxWidgets Perl so that a command line box is not show (Windows) or so that Wx starts up properly at all (Mac OS X). Returns a path to a Perl suitable for the execution of L<Wx>-based applications, or C<undef> if one cannot be found. =cut sub wxperl { my $path = perl(); # Cascade failure unless ( defined $path ) { return; } if ( $^O eq 'MSWin32' ) { if ( $path =~ s/\b(perl\.exe)\z// ) { # Convert to GUI version if we can if ( -f "${path}wperl.exe" ) { return "${path}wperl.exe"; } else { return "${path}perl.exe"; } } # Unknown, give up return $path; } if ( $^O eq 'darwin' ) { if ( $path =~ s/\b(perl)\z// ) { # Convert to Wx launcher if ( -f "${path}wxPerl" ) { return "${path}wxPerl"; } else { return "${path}perl"; } } # Unknown, give up return $path; } # No distinction on this platform, or we have no idea return $path; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Browser/�����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014370� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Browser/PseudoPerldoc.pm�������������������������������������������������������0000644�0001750�0001750�00000004153�12237327555�017511� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Browser::PseudoPerldoc; use 5.008; use strict; use warnings; use Pod::Perldoc (); use Pod::Perldoc::ToPod (); our $VERSION = '1.00'; our @ISA = 'Pod::Perldoc'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); return $self; } ## Lie to Pod::PerlDoc - and avoid it's autoloading implementation sub find_good_formatter_class { $_[0]->{'formatter_class'} = 'Pod::Perldoc::ToPod'; return; } # Even worse than monkey patching , copy paste from Pod::Perldoc w/ edits # to avoid untrappable calls to 'exit' sub process { # if this ever returns, its retval will be used for exit(RETVAL) my $self = shift; # TO DO: make it deal with being invoked as various different things # such as perlfaq". # (Ticket #672) return $self->usage_brief unless @{ $self->{'args'} }; $self->pagers_guessing; $self->options_reading; $self->aside( sprintf "$0 => %s v%s\n", ref($self), $self->VERSION ); $self->drop_privs_maybe; $self->options_processing; # Hm, we have @pages and @found, but we only really act on one # file per call, with the exception of the opt_q hack, and with # -l things $self->aside("\n"); my @pages; $self->{'pages'} = \@pages; if ( $self->opt_f ) { @pages = ("perlfunc") } elsif ( $self->opt_q ) { @pages = ( "perlfaq1" .. "perlfaq9" ) } elsif ( $self->opt_v ) { @pages = ("perlvar") } else { @pages = @{ $self->{'args'} }; } return $self->usage_brief unless @pages; $self->find_good_formatter_class; $self->formatter_sanity_check; $self->maybe_diddle_INC; # for when we're apparently in a module or extension directory my @found = $self->grand_search_init( \@pages ); return unless @found; if ( $self->opt_l ) { print join( "\n", @found ), "\n"; return; } $self->tweak_found_pathnames( \@found ); $self->assert_closing_stdout; return $self->page_module_file(@found) if $self->opt_m; return $self->render_and_page( \@found ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Browser/Document.pm������������������������������������������������������������0000644�0001750�0001750�00000005445�12237327555�016524� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Browser::Document; =pod =head1 NAME Padre::Browser::Document - is an afterthought L<Padre::Browser> began using <Padre::Document> for internal representation of documents. This module aims to be less costly to serialize. =head1 CAVEATS Until this is a better copy of Padre::Document or the similar parts converge, it will probably change. =cut use 5.008; use strict; use warnings; use File::Basename (); our $VERSION = '1.00'; use Class::XSAccessor { constructor => 'new', accessors => { mimetype => 'mime_type', body => 'body', title => 'title', filename => 'filename', }, }; sub load { my ( $class, $path ) = @_; open( my $file_in, '<', $path ) or die "Failed to load '$path' $!"; my $body; $body .= $_ while <$file_in>; close $file_in; my $doc = $class->new( body => $body, filename => $path ); $doc->mimetype( $doc->guess_mimetype ); $doc->title( $doc->guess_title ); return $doc; } sub guess_title { my ($self) = @_; if ( $self->filename ) { return File::Basename::basename( $self->filename ); } 'Untitled'; } # Yuk . # This is the primary file extension to mime-type mapping our %EXT = ( abc => 'text/x-abc', ada => 'text/x-adasrc', asm => 'text/x-asm', bat => 'text/x-bat', cpp => 'text/x-c++src', css => 'text/css', diff => 'text/x-patch', e => 'text/x-eiffel', f => 'text/x-fortran', htm => 'text/html', html => 'text/html', js => 'application/javascript', json => 'application/json', latex => 'application/x-latex', lsp => 'application/x-lisp', lua => 'text/x-lua', mak => 'text/x-makefile', mat => 'text/x-matlab', pas => 'text/x-pascal', pod => 'text/x-pod', php => 'application/x-php', py => 'text/x-python', rb => 'application/x-ruby', sql => 'text/x-sql', tcl => 'application/x-tcl', vbs => 'text/vbscript', patch => 'text/x-patch', pl => 'application/x-perl', plx => 'application/x-perl', pm => 'application/x-perl', pod => 'application/x-perl', t => 'application/x-perl', conf => 'text/plain', sh => 'application/x-shellscript', ksh => 'application/x-shellscript', txt => 'text/plain', xml => 'text/xml', yml => 'text/x-yaml', yaml => 'text/x-yaml', '4th' => 'text/x-forth', pasm => 'application/x-pasm', pir => 'application/x-pir', p6 => 'application/x-perl6', ); sub guess_mimetype { my ($self) = @_; unless ( $self->filename ) { return 'application/x-pod'; } my ( $path, $file, $suffix ) = File::Basename::fileparse( $self->filename, keys %EXT ); my $type = exists $EXT{$suffix} ? $EXT{$suffix} : ''; return $type; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Browser/POD.pm�����������������������������������������������������������������0000644�0001750�0001750�00000006213�12237327555�015362� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Browser::POD; use 5.008; use strict; use warnings; use Config (); use File::Temp (); use IO::Scalar (); use Params::Util (); use Pod::Simple::XHTML (); use Pod::Abstract (); use Padre::Browser::Document (); use Padre::Browser::PseudoPerldoc (); our $VERSION = '1.00'; use Class::XSAccessor { constructor => 'new', getters => { get_provider => 'provider', }, }; sub provider_for { ( 'application/x-perl', 'application/x-pod' ); } # uri schema like http:// pod:// blah:// sub accept_schemes { 'perldoc'; } sub viewer_for { 'application/x-pod'; } sub resolve { my $self = shift; my $ref = shift; my $hints = shift; my $query = $ref; if ( Params::Util::_INSTANCE( $ref, 'URI' ) ) { $query = $ref->opaque; } my ( $docname, $section ) = split_link($query); # Put Pod::Perldoc to work on $query my ( $fh, $tempfile ) = File::Temp::tempfile(); my @args = ( '-u', "-d$tempfile", ( exists $hints->{lang} ) ? ( '-L', ( $hints->{lang} ) ) : (), ( exists $hints->{perlfunc} ) ? '-f' : (), ( exists $hints->{perlvar} ) ? '-v' : (), $query ); my $pd = Padre::Browser::PseudoPerldoc->new( args => \@args ); SCOPE: { local *STDERR = IO::Scalar->new; local *STDOUT = IO::Scalar->new; eval { $pd->process }; } return unless -s $tempfile; my $pa = Pod::Abstract->load_file($tempfile); close $fh; unlink($tempfile); my $doc = Padre::Browser::Document->new( body => $pa->pod ); $doc->mimetype('application/x-pod'); my $title_from = $hints->{title_from_section} || 'NAME'; my $name; if ( ($name) = $pa->select("/head1[\@heading =~ {$title_from}]") or ($name) = $pa->select("/head1") ) { my $text = $name->text; my ($module) = $text =~ /([^\s]+)/g; $doc->title($module); } elsif ( ($name) = $pa->select("//item") ) { my $text = $name->pod; my ($item) = $text =~ /=item\s+([^\s]+)/g; $doc->title($item); } unless ( $pa->select('/pod') || $pa->select('//item') || $pa->select('//head1') ) { warn "$ref has no pod in" . $pa->ptree; # Unresolvable ? return; } return $doc; } sub generate { my $self = shift; my $doc = shift; $doc->mimetype('application/x-pod'); return $doc; #### TO DO , pod extract / pod tidy ? # (Ticket #671) } sub render { my $self = shift; my $doc = shift; my $data = ''; return if not $doc; my $pod = IO::Scalar->new( \$doc->body ); my $out = IO::Scalar->new( \$data ); my $v = Pod::Simple::XHTML->new; $v->perldoc_url_prefix('perldoc:'); $v->output_fh($out); $v->parse_file($pod); my $response = Padre::Browser::Document->new; $response->body( ${ $out->sref } ); $response->mimetype('text/xhtml'); $response->title( $doc->title ); return $response; } # Utility function , really wants to be inside a class like # URI::perldoc ?? sub split_link { my $query = shift; my ( $doc, $section ) = split /\//, $query, 2; # was m|([^/]+)/?+(.*+)|; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/File.pm������������������������������������������������������������������������0000644�0001750�0001750�00000042163�12237327555�014200� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::File; use 5.008; use strict; use warnings; our $VERSION = '1.00'; # a list of registered protocol handlers. Structure: # regexp => [handler1, handler2, ...] # Note that ONLY THE FIRST handler is used! This is meant to allow # for plugins to enable and disable handlers with falling back to # the previously instantiated handlers. our %RegisteredModules; =encoding UTF-8 =head1 NAME Padre::File - Common API for file functions =head1 DESCRIPTION C<Padre::File> provides a common API for file access within Padre. It covers all the differences with non-local files by mapping every function call to the currently used transport stream. =head1 METHODS =head2 C<RegisterProtocol> Padre::File->RegisterProtocol($RegExp, $Module); Class method, may not be called on an object. A plug-in could call C<< Padre::File->RegisterProtocol >> to register a new protocol to C<Padre::File> and enable Padre to use URLs handled by this module. Example: Padre::File->RegisterProtocol('^nfs\:\/\/','Padre::Plugin::NFS'); Every file/URL opened through C<Padre::File> which starts with C<nfs://> is now handled through C<Padre::Plugin::NFS>. C<< Padre::File->new >> will respect this and call C<< Padre::Plugin::NFS->new >> to handle such URLs. Returns true on success or false on error. Registered protocols may override the internal protocols. =cut sub RegisterProtocol { shift if defined $_[0] and $_[0] eq __PACKAGE__; my $regexp = shift; my $module = shift; return () if not defined $regexp or $regexp eq ''; return () if not defined $module or $module eq ''; $regexp = "$regexp"; # no double insertion return () if exists $RegisteredModules{$regexp} and grep { $_ eq $module } @{ $RegisteredModules{$regexp} }; unshift @{ $RegisteredModules{$regexp} }, $module; return 1; } =head2 C<DropProtocol> Drops a previously registered protocol handler. First argument must be the same regular expression (matching a protocol from an URI) that was used to register the protocol handler in the first place using C<RegisterProtocol>. Similarly, the second argument must be the name of the class (module) that the handler was registered for. That means if you registered your protocol with Padre::File->RegisterProtocol(qr/^sftp:\/\//, 'Padre::File::MySFTP'); then you need to drop it with Padre::File->DropProtocol(qr/^sftp:\/\//, 'Padre::File::MySFTP'); Returns true if a handler was removed and the empty list if no handler was found for the given regular expression. =cut sub DropProtocol { shift if defined $_[0] and $_[0] eq __PACKAGE__; my $regexp = shift; my $module = shift; return () if not defined $regexp or $regexp eq ''; return () if not defined $module or $module eq ''; $regexp = "$regexp"; return () if not exists $RegisteredModules{$regexp}; my $modules = $RegisteredModules{$regexp}; my $n_before = @$modules; @$modules = grep { $_ ne $module } @$modules; # drop this module only delete $RegisteredModules{$regexp} if @$modules == 0; return $n_before != @$modules; } =pod =head2 C<new> my $file = Padre::File->new($File_or_URL); The C<new> constructor lets you create a new C<Padre::File> object. Only one parameter is accepted at the moment: The name of the file which should be used. As soon as there are HTTP, FTP, SSH and other modules, also URLs should be accepted. If you know the protocol (which should be true every time you build the URL by source), it's better to call C<< Padre::File::Protocol->new($URL) >> directly (replacing Protocol by the protocol which should be used, of course). The module for the selected protocol should fill C<< ->{filename} >> property. This should be used for all further references to the file as it will contain the file name in universal correct format (for example correct the C<C:\ eq C:/> problem on Windows). Returns a new C<Padre::File> or dies on error. =cut sub new { my $class = shift; my $URL = shift; my %args = @_; return if not defined($URL) or $URL eq ''; my $self; for ( keys(%RegisteredModules) ) { next if $URL !~ /$_/; my $module = $RegisteredModules{$_}->[0]; (my $source = "$module.pm") =~ s{::}{/}g; if ( eval { require $source } ) { $self = $module->new($URL); return $self; } } if ( $URL =~ /^file\:(.+)$/i ) { require Padre::File::Local; $self = Padre::File::Local->new( $1, @_ ); } elsif ( $URL =~ /^https?\:\/\//i ) { require Padre::File::HTTP; $self = Padre::File::HTTP->new( $URL, @_ ); } elsif ( $URL =~ /^ftp?\:/i ) { require Padre::File::FTP; $self = Padre::File::FTP->new( $URL, @_ ); } else { require Padre::File::Local; $self = Padre::File::Local->new( $URL, @_ ); } $self->{Filename} = $self->{filename}; # Temporary hack # Copy the info message handler to self $self->{info_handler} = $args{info_handler} if defined( $args{info_handler} ); return $self; } =head2 C<atime> $file->atime; Returns the last-access time of the file. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub atime { } =head2 C<basename> $file->basename; Returns the plain file name without path if a path/file name structure exists for this module. =cut # Fallback if the module has no such function: # It turned out that returning everything is much better # than returning undef for this function: sub basename { my $self = shift; return $self->{filename}; } =head2 C<blksize> $file->blksize; Returns the block size of the file system where the file resides. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub blksize { } =head2 C<blocks> $file->blocks; Returns the number of blocks used by the file. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub blocks { } =head2 C<browse_mtime> $file->browse_mtime($path_and_filename); Returns the modification time of the given file on the remote server. Leave out the protocol and server name for remote protocols, for example my $file = Padre::File->new('http://perlide.org/current/foo.html'); $file->browse_mtime('/archive/bar.html'); This returns the modification time of C<http://perlide.org/archive/bar.html> The default uses one C<Padre::File> clone per request which is a reasonable fallback but very inefficient! Please add C<browse_…> methods to the subclass module whenever possible. =cut sub browse_mtime { my $self = shift; my $filename = shift; my $file = $self->clone_file($filename); return $file->mtime; } =pod =head2 C<browse_url_join> $file->browse_url_join($server, $path, $basename); Merges a server name, path name and a file name to a complete URL. A C<path> in this function is meant to be the local path on the server, not the Padre path (which includes the server name). You may think of /tmp + padre.$$ => /tmp/padre.$$ C:\\temp + padre.$$ => C:\\temp\\padre.$$ ...but also remember http://perlide.org + about.html => http://perlide.org/about.html Datapoint created a file syntax... common + program/text => program/text:common This could happen once someone adds a C<Padre::File::DBCFS> for using a C<DB/C FS> file server. C<program> is the file name, C<text> the extension and "common" is what we call a directory. The most common seems to be a C</> as the directory separator character, so we'll use this as the default. This method should care about merging double C</> to one if this should be done on this file system (even if the default doesn't care). =cut # Note: Don't use File::Spec->catfile here as it may mix up http or # other pathnames. This is a default and should be overriden # by each Padre::File::* - module! sub browse_url_join { my $self = shift; my $server = shift; my $path = shift; my $basename = shift; return $self->{protocol} . '://' . $server . '/' . $path . '/' . $basename if defined($basename); return $self->{protocol} . '://' . $server . '/' . $path; } =pod =head2 C<can_clone> $file->can_clone; Returns true if the protocol allows re-using of connections for new files (usually from the same project). Local files don't use connections at all, HTTP uses one-request- connections, cloning has no benefit for them. FTP and SSH use connections to a remote server and we should work to get no more than one connection per server. =cut sub can_clone { # Cloning needs to be supported by the protocol, the safer # option is false here. return 0; } =pod =head2 C<can_delete> $file->can_delete; Returns true if the protocol allows deletion of files or false if it doesn't. =cut sub can_delete { # If the module does not state that it could remove files, # we return a safe default of false. return 0; } =pod =head2 C<can_run> $file->can_run; Returns true if the protocol allows execution of files or the empty list if it doesn't. This is usually not possible for non-local files (which return true), because there is no way to reproduce a save environment for running a HTTP or FTP based file (they return false). =cut sub can_run { # If the module does not state that it could do "run", # we return a safe default of false. return 0; } =pod =head2 C<clone> my $clone = $file->clone($File_or_URL); The C<clone> constructor lets you create a new C<Padre::File> object reusing an existing connection. Takes the same arguments as the C<new> method. If the protocol doesn't know about (server) connections/sessions, returns a brand new Padre::File object. NOTICE: If you request a clone which is located on another server, you'll get a Padre::File object using the original connection to the original server and the original authentication data but the new path and file name! Returns a new C<Padre::File> or dies on error. =cut sub clone { my $self = shift; my $class = ref($self); return $class->new(@_); } =pod =head2 C<clone_file> my $clone = $file->clone_file($filename_with_path); my $clone = $file->clone_file($path,$filename); The C<clone> constructor lets you create a new C<Padre::File> object reusing an existing connection. Takes one or two arguments: =over =item either the complete path + file name of an URL =item or the path and file name as separate arguments =back If the protocol doesn't know about (server) connections/sessions, returns a brand new C<Padre::File> object. Returns a new C<Padre::File> or dies on error. =cut sub clone_file { my $self = shift; my $path = shift; my $filename = shift; return $self->clone( $self->browse_url_join( $self->servername, $path, $filename ) ); } =head2 C<ctime> $file->ctime; Returns the last-change time of the inode (not the file!). This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub ctime { } =head2 C<delete> $file->delete; Removes the current object's file from disk (or whereever it's stored). Should clear any caches. =cut sub delete { } =head2 C<dev> $file->dev; Returns the device number of the file system where the file resides. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub dev { } =head2 C<dirname> $file->dirname; Returns the plain path without file name if a path/file name structure exists for this module. Returns the empty list on failure or undefined behaviour for the given protocol. =cut sub dirname { } =head2 C<error> $file->error; Returns the last error message (like $! for system calls). =cut sub error { my $self = shift; return $self->{error}; } =head2 C<exists> $file->exists; Returns true if the file exists. Returns false if the file doesn't exist. Returns the empty list if unsure (network problem, not implemented). =cut # Fallback if the module has no such function: sub exists { my $self = shift; # A size indicates that the file exists: return 1 if $self->size; return; } =head2 C<filename> $file->filename; Returns the the file name including path handled by this object. Please remember that C<Padre::File> is able to open many URL types. This file name may also be a URL. Please use the C<basename> and C<dirname> methods to split it (assuming that a path exists in the current protocol). =cut # Fallback if the module has no such function: sub filename { my $self = shift; return $self->{filename}; } =head2 C<gid> $file->gid; Returns the real group ID of the file group. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub gid { } =head2 C<inode> $file->inode; Returns the inode number of the file. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub inode { } =head2 C<mime> $file->mime; $file->mime('text/plain'); Returns or sets the MIME type of the file. =cut sub mime { my $self = shift; my $new_mime = shift; defined($new_mime) and $self->{MIME} = $new_mime; return $self->{MIME}; } =head2 C<mode> $file->mode; Returns the file mode (type and rights). See also: L<perlfunc/stat>. To get the POSIX file I<permissions> as the usual octal I<number> (as opposed to a I<string>) use: use Fcntl ':mode'; my $perms_octal = S_IMODE($file->mode); This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub mode { } =head2 C<mtime> $file->mtime; Returns the last-modification (change) time of the file. =cut sub mtime { } =head2 C<nlink> $file->nlink; Returns the number of hard links to the file. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub nlink { } =head2 C<rdev> $file->rdev; Returns the device identifier. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub rdev { } =head2 C<read> $file->read; Reads the file contents and returns them. Returns the empty list on error. The error message can be retrieved using the C<error> method. =cut =head2 C<servername> $file->servername; Returns the server name for this module - if the protocol knows about a server, local files don't. WARNING: The Padre C<path> includes the server name in a protocol dependent syntax! =cut sub servername { my $self = shift; return ''; } =head2 C<size> $file->size; Returns the file size in bytes or the empty list if the method was not implemented by the C<Padre::File> subclass. =cut sub size { } =head2 C<stat> $file->stat; This emulates a stat call and returns the same values: 0 dev device number of file system 1 ino inode number 2 mode file mode (type and permissions) 3 nlink number of (hard) links to the file 4 uid numeric user ID of file's owner 5 gid numeric group ID of file's owner 6 rdev the device identifier (special files only) 7 size total size of file, in bytes 8 atime last access time in seconds since the epoch 9 mtime last modify time in seconds since the epoch 10 ctime inode change time in seconds since the epoch (*) 11 blksize preferred block size for file system I/O 12 blocks actual number of blocks allocated A module should fill as many items as possible, but if you're thinking about using this method, always remember =over =item 1. Usually, you need only one or two of the items, request them directly. =item 2. Besides from local files, most of the values will not be accessible (resulting in empty lists/false returned). =item 3. On most protocols these values must be requested one-by-one, which is very expensive. =back Please always consider using the function for the value you really need instead of using C<stat>! =cut sub stat { my $self = shift; # If the module has a own stat function, we won't ever reach this point! return ( $self->dev, $self->inode, $self->nlink, $self->uid, $self->gid, $self->rdev, $self->size, $self->atime, $self->mtime, $self->ctime, $self->blksize, $self->blocks ); } =head2 C<uid> $file->uid; Returns the real user ID of the file owner. This is usually not possible for non-local files, in these cases, the empty list is returned. =cut sub uid { } =head2 C<write> $file->write($Content); $file->write($Content,$Coding); Writes the given C<$Content> to the file, if a encoding is given and the protocol allows encoding, it is respected. Returns 1 on success. Returns 0 on failure. Returns the empty list if the function is not available on the protocol. =cut sub write { } =head1 INTERNAL METHODS =head2 C<_info> $file->_info($message); Shows $message to the user as an information. The output is guaranteed to be non-blocking and messages shown this way must be safe to be ignored by the user. Doesn't return anything. =cut sub _info { my $self = shift; my $message = shift; # Return silently if no handler for info message is defined return unless defined( $self->{info_handler} ) and ( ref( $self->{info_handler} ) eq 'CODE' ); # Handle the info message but don't fail on DIEs: eval { &{ $self->{info_handler} }( $self, $message ); }; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Feature.pm���������������������������������������������������������������������0000644�0001750�0001750�00000005372�12237327555�014715� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Feature; =pod =head1 NAME Padre::Feature - Constants to support currying of feature_* config options =head1 DESCRIPTION L<Padre::Config> contains a series of "feature" settings, stored in the C<feature_*> configuration namespace. These settings are intended to allow the optional removal of unwanted features (and their accompanying bloat), and the optional inclusion of experimental features (and their accompanying instability). To allow both the removal and inclusion of option features to be done efficiently, Padre checks the configuration at startup time and cooks these preferences down into constants in the Padre::Feature namespace. With this mechanism the code for each feature can be compiled away entirely when it is not in use, making Padre faster and recovering the memory that these features would otherwise consume. The use of a dedicated module for this purpose ensures this config to constant compilation is done in a single place, and provides a module dependency target for modules that use this system. =cut # NOTE: Do not move this to Padre::Constant. # This module depends on Padre::Config, which depends on Padre::Constant, # so putting these constants in Padre::Constant would create a circular # dependency. use 5.008; use strict; use warnings; use constant (); use Padre::Config (); our $VERSION = '1.00'; my $config = Padre::Config->read; constant->import( { # Bloaty features users can disable BOOKMARK => $config->feature_bookmark, CURSORMEMORY => $config->feature_cursormemory, DEBUGGER => $config->feature_debugger, FOLDING => $config->feature_folding, FONTSIZE => $config->feature_fontsize, SESSION => $config->feature_session, CPAN => $config->feature_cpan, VCS => $config->feature_vcs_support, DIFF_DOCUMENT => $config->feature_document_diffs, SYNTAX_ANNOTATIONS => $config->feature_syntax_check_annotations, # Experimental features users can enable COMMAND => $config->feature_command, SYNC => $config->feature_sync, QUICK_FIX => $config->feature_quick_fix, STYLE_GUI => $config->feature_style_gui, DIFF_WINDOW => $config->feature_diff_window, DEVEL_ENDSTATS => $config->feature_devel_endstats, DEVEL_TRACEUSE => $config->feature_devel_traceuse, } ); 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/TaskHandle.pm������������������������������������������������������������������0000644�0001750�0001750�00000021536�12237327555�015340� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::TaskHandle; use 5.008005; use strict; use warnings; use threads; use threads::shared; use Scalar::Util (); use Params::Util (); use Storable (); use Padre::Wx::Role::Conduit (); use Padre::Logger; our $VERSION = '1.00'; our $SEQUENCE = 0; ###################################################################### # Constructor and Accessors sub new { # TRACE( $_[0] ) if DEBUG; bless { hid => ++$SEQUENCE, task => $_[1], }, $_[0]; } sub hid { $_[0]->{hid}; } sub task { $_[0]->{task}; } sub child { $_[0]->{child}; } sub class { Scalar::Util::blessed( $_[0]->{task} ); } sub has_owner { !!$_[0]->{task}->{owner}; } sub owner { require Padre::Role::Task; Padre::Role::Task->task_owner( $_[0]->{task}->{owner} ); } sub worker { my $self = shift; $self->{worker} = shift if @_; $self->{worker}; } sub queue { $_[0]->{queue}; } sub start_time { my $self = shift; $self->{start_time} = $self->{idle_time} = shift if @_; $self->{start_time}; } sub idle_time { my $self = shift; $self->{idle_time} = shift if @_; $self->{idle_time}; } ###################################################################### # Setup and teardown # Called in the child thread to set the task and handle up for processing. sub start { # TRACE( $_[0] ) if DEBUG; my $self = shift; $self->{child} = 1; $self->{queue} = shift; $self->signal('STARTED'); } # Signal the task has stopped sub stop { TRACE( $_[0] ) if DEBUG; my $self = shift; $self->{child} = undef; $self->{queue} = undef; $self->signal( 'STOPPED' => $self->{task} ); } ###################################################################### # Serialisation sub as_array { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = $self->task; return [ $self->hid, Scalar::Util::blessed($task), $task->as_string, ]; } sub from_array { # TRACE( $_[0] ) if DEBUG; my $class = shift; my $array = shift; # Load the task class first so we can deserialize TRACE("Loading $array->[1]") if DEBUG; (my $source = $array->[1].".pm") =~ s{::}{/}g; require $source; return bless { hid => $array->[0] + 0, task => $array->[1]->from_string( $array->[2] ), }, $class; } ###################################################################### # Parent-Only Methods sub prepare { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = $self->{task}; unless ( defined $task ) { TRACE("Exception: task not defined") if DEBUG; return !1; } my $rv = eval { $task->prepare; }; if ($@) { TRACE("Exception in task during 'prepare': $@") if DEBUG; return !1; } return !!$rv; } sub on_started { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = $self->{task}; # Does the task have an owner and can we call it my $owner = $self->owner or return; my $method = $task->on_run or return; $owner->$method( $task => @_ ); return; } sub on_message { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $method = shift; my $task = $self->{task}; unless ( $self->child ) { # Special case for printing a simple message to the main window # status bar, without needing to pollute the task classes. if ( $method eq 'STATUS' ) { return $self->on_status(@_); } # Special case for routing messages to the owner of a task # rather than to the task itself. if ( $method eq 'OWNER' ) { require Padre::Role::Task; my $owner = $self->owner or return; my $method = $task->on_message or return; $owner->$method( $task => @_ ); return; } } # Does the method exist unless ( $self->{task}->can($method) ) { # A method name provided directly by the Task # doesn't exist in the Task. Naughty Task!!! # Lacking anything more sane to do, squelch it. return; } # Pass the call down to the task and protect it from itself local $@; eval { $self->{task}->$method(@_); }; if ($@) { # A method in the main thread blew up. # Beyond catching it and preventing it killing # Padre entirely, I'm not sure what else we can # really do about it at this point. return; } return; } sub on_status { # TRACE( $_[1] ) if DEBUG; my $self = shift; # If we don't have an owner, use the general status bar unless ( $self->has_owner ) { require Padre::Current; Padre::Current->main->status(@_); return; } # If we have an owner that is within the main window show normally my $owner = $self->owner or return; my $method = $self->{task}->on_status; return $owner->$method(@_) if $method; # Pass status messages up to the main window status if possible if ( $owner->isa('Padre::Wx::Role::Main') ) { $owner->main->status(@_); return; } # Nothing else to do return; } sub on_stopped { # TRACE( $_[0] ) if DEBUG; my $self = shift; # The first parameter is the updated Task object. # Replace all content in the stored version with that from the # event-provided version. my $new = shift; my $task = $self->{task}; %$task = %$new; %$new = (); # Execute the finish method in the updated Task object first, before # the task owner is passed to the task owner (if any) $self->finish; # If the task has an owner it will get the finish method instead. my $owner = $self->owner or return; my $method = $self->{task}->on_finish; local $@; eval { $owner->$method( $self->{task} ); }; return; } sub finish { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = $self->{task}; my $rv = eval { $task->finish; }; if ($@) { TRACE("Exception in task during 'finish': $@") if DEBUG; return !1; } return !!$rv; } ###################################################################### # Worker-Only Methods sub run { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = $self->task; # Create the inbox for the handle local $self->{inbox} = []; # Create a circular reference back from the task # HACK: This is pretty damned evil, find a better way local $task->{handle} = $self; # Call the task's run method eval { $task->run; }; if ($@) { # Save the exception TRACE("Exception in task during 'run': $@") if DEBUG; $self->{exception} = $@; return !1; } return 1; } # Poll the inbound queue and process them sub poll { my $self = shift; my $inbox = $self->{inbox} or return; my $queue = $self->{queue} or return; # Fetch from the queue until we run out of messages or get a cancel while ( my $item = $queue->dequeue1_nb ) { # Handle a valid parent -> task message if ( $item->[0] eq 'message' ) { my $message = Storable::thaw( $item->[1] ); push @$inbox, $message; next; } # Handle aborting the task if ( $item->[0] eq 'cancel' ) { $self->{cancelled} = 1; delete $self->{queue}; next; } die "Unknown or unexpected message type '$item->[0]'"; } return; } # Block until we have an inbox message or have been cancelled sub wait { my $self = shift; my $inbox = $self->{inbox} or return; my $queue = $self->{queue} or return; # If something is in our inbox we don't need to wait return if @$inbox; # Fetch the next message from the queue, blocking if needed my $item = $queue->dequeue1; # Handle a valid parent -> task message if ( $item->[0] eq 'message' ) { my $message = Storable::thaw( $item->[1] ); push @$inbox, $message; return; } # Handle aborting the task if ( $item->[0] eq 'cancel' ) { $self->{cancelled} = 1; delete $self->{queue}; return; } die "Unknown or unexpected message type '$item->[0]'"; } sub cancel { $_[0]->{cancelled} = 1; } # Has this task been cancelled by the parent? sub cancelled { my $self = shift; # Shortcut if we can to avoid queue locking return 1 if $self->{cancelled}; # Poll for new input $self->poll; # Check again now we have polled for new messages return !!$self->{cancelled}; } # Fetch the next message from our inbox sub inbox { my $self = shift; my $inbox = $self->{inbox} or return undef; # Shortcut if we can to avoid queue locking return shift @$inbox if @$inbox; # Poll for new messages $self->poll; # Check again now we have polled for new messages return shift @$inbox; } ###################################################################### # Bidirectional Communication sub signal { # TRACE( $_[0] ) if DEBUG; Padre::Wx::Role::Conduit->signal( [ shift->hid => @_ ] ); } sub tell_parent { TRACE( $_[0] ) if DEBUG; shift->signal( PARENT => @_ ); } sub tell_child { TRACE( $_[0] ) if DEBUG; my $self = shift; if ( $self->child ) { # Add the message directly to the inbox my $inbox = $self->{inbox} or next; push @$inbox, [@_]; } else { $self->worker->send_message(@_); } return 1; } sub tell_owner { # TRACE( $_[0] ) if DEBUG; shift->signal( OWNER => @_ ); } sub tell_status { # TRACE( $_[0] ) if DEBUG; shift->signal( STATUS => @_ ? @_ : '' ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/MIME.pm������������������������������������������������������������������������0000644�0001750�0001750�00000066633�12237327555�014060� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::MIME; =pod =head1 NAME Padre::MIME - Padre MIME Registry and Type Detection =head1 DESCRIPTION B<Padre::MIME> is a light weight module for detecting the MIME type of files and the type registry acts as the basis for all other type-specific functionality in Padre. Because of the light weight it can be quickly and safely loaded in any background tasks that need to walk directories and act on files based on their file type. The class itself consists of two main elements, a type registry and a type detection mechanism. =head1 METHODS =cut use 5.008; use strict; use warnings; use Padre::Locale::T; our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; # The MIME object store my %MIME = (); # The "Unknown" MIME type my $UNKNOWN = Padre::MIME->new( type => '', name => _T('UNKNOWN'), ); # File extension to MIME type mapping my %EXT = ( abc => 'text/x-abc', ada => 'text/x-adasrc', asc => 'text/plain', asm => 'text/x-asm', bat => 'text/x-bat', cmd => 'text/x-bat', bib => 'application/x-bibtex', bin => 'application/octet-stream', bml => 'application/x-bml', # Livejournal templates c => 'text/x-csrc', h => 'text/x-csrc', cc => 'text/x-c++src', cpp => 'text/x-c++src', cxx => 'text/x-c++src', cob => 'text/x-cobol', cbl => 'text/x-cobol', csv => 'text/csv', 'c++' => 'text/x-c++src', hh => 'text/x-c++src', hpp => 'text/x-c++src', hxx => 'text/x-c++src', 'h++' => 'text/x-c++src', cs => 'text/x-csharp', css => 'text/css', diff => 'text/x-patch', e => 'text/x-eiffel', exe => 'application/octet-stream', f => 'text/x-fortran', htm => 'text/html', html => 'text/html', hs => 'text/x-haskell', i => 'text/x-csrc', # Non-preprocessed C ii => 'text/x-c++src', # Non-preprocessed C java => 'text/x-java', js => 'application/javascript', json => 'application/json', lsp => 'application/x-lisp', lua => 'text/x-lua', m => 'text/x-matlab', mak => 'text/x-makefile', pdf => 'application/pdf', pod => 'text/x-pod', py => 'text/x-python', r => 'text/x-r', rb => 'application/x-ruby', rtf => 'text/rtf', sgm => 'text/sgml', sgml => 'text/sgml', sql => 'text/x-sql', tcl => 'application/x-tcl', patch => 'text/x-patch', pks => 'text/x-sql', # PLSQL package spec pkb => 'text/x-sql', # PLSQL package body pl => 'application/x-perl', plx => 'application/x-perl', pm => 'application/x-perl', pmc => 'application/x-perl', # Compiled Perl or gimme5 pod => 'text/x-pod', pov => 'text/x-povray', psgi => 'application/x-psgi', sty => 'application/x-latex', t => 'application/x-perl', tex => 'application/x-latex', xs => 'text/x-perlxs', # Define our own MIME type tt => 'text/x-perltt', # Define our own MIME type tt2 => 'text/x-perltt', # Define our own MIME type conf => 'text/x-config', sh => 'application/x-shellscript', ksh => 'application/x-shellscript', txt => 'text/plain', text => 'text/plain', xml => 'text/xml', yml => 'text/x-yaml', yaml => 'text/x-yaml', '4th' => 'text/x-forth', zip => 'application/zip', pasm => 'application/x-pasm', pir => 'application/x-pir', p6 => 'application/x-perl6', # See Perl6/Spec/S01-overview.pod p6l => 'application/x-perl6', p6m => 'application/x-perl6', pl6 => 'application/x-perl6', pm6 => 'application/x-perl6', pas => 'text/x-pascal', dpr => 'text/x-pascal', dfm => 'text/x-pascal', inc => 'text/x-pascal', pp => 'text/x-pascal', as => 'text/x-actionscript', asc => 'text/x-actionscript', jsfl => 'text/x-actionscript', php => 'application/x-php', php3 => 'application/x-php', php4 => 'application/x-php', php5 => 'application/x-php', phtm => 'application/x-php', phtml => 'application/x-php', vb => 'text/vbscript', bas => 'text/vbscript', frm => 'text/vbscript', cls => 'text/vbscript', ctl => 'text/vbscript', pag => 'text/vbscript', dsr => 'text/vbscript', dob => 'text/vbscript', vbs => 'text/vbscript', dsm => 'text/vbscript', ); ###################################################################### # MIME Registry Methods =pod =head2 exts my @extensions = Padre::MIME->exts; The C<exts> method returns the list of all known file extensions. =cut sub exts { keys %EXT; } =pod =head2 types my @registered = Padre::MIME->types; The C<types> method returns the list of all registered MIME types. =cut sub types { keys %MIME; } =pod =head2 find my $mime = Padre::MIME->find('text/plain'); The C<find> method takes a MIME type string and returns a L<Padre::MIME> object for that string. If the MIME type is not registered, then the unknown type object will be returned. =cut sub find { $MIME{ $_[1] } || $UNKNOWN; } ###################################################################### # MIME Objects =pod =head2 new my $mime = Padre::MIME->new( type => 'text/x-csrc', name => _T('C'), supertype => 'text/plain', ); The C<new> constructor creates a new anonymous MIME type object which is not registered with the MIME type system. It takes three parameters, C<type> which should be the string identifying the MIME type, C<name> which should be the (localisable) English name for the language, and C<supertype> which should be the parent type that the new type inherits from. While not compulsory, all MIME types generally inherit from other languages with three main types at the top of the inheritance tree. =over 4 =item * C<text/plain> for human-readable text files including pretty-printed XML =item * C<application/xml> for tightly packed XML files not intended to opened =item * C<application/octet-stream> for binary files (that cannot be opened) =back At the time of creation, new MIME type objects (even anonymous ones) must inherit from a registered MIME type if the C<supertype> param is provided. Returns a L<Padre::MIME> object, or throws an exception on error. =cut sub new { my $class = shift; my $self = bless {@_}, $class; # Check the supertype and precalculate the supertype path unless ( defined $self->{type} ) { die "Missing or invalid MIME type"; } if ( $self->{supertype} ) { unless ( $MIME{ $self->{supertype} } ) { die "MIME type '$self->{supertype}' does not exist"; } $self->{superpath} = [ $self->{type}, $MIME{ $self->{supertype} }->superpath, ]; } else { $self->{superpath} = [ $self->{type} ]; } return $self; } =pod =head2 create Padre::MIME->create( type => 'application/x-shellscript', name => _T('Shell Script'), supertype => 'text/plain', ); The C<create> method creates and registers a new MIME type for use in L<Padre>. It will not in and of itself add support for that file type, but registration of the MIME type is the first step, and a prerequisite of, supporting that file type anywhere else in Padre. Returns the new L<Padre::MIME> object as a convenience, or throws an exception on error. =cut sub create { my $class = shift; my $self = $class->new(@_); $MIME{ $self->type } = $self; } =pod =head2 type print Padre::MIME->find('text/plain')->type; The C<type> accessor returns the type string for the MIME type, for example the above would print C<text/plain>. =cut sub type { $_[0]->{type}; } =pod =head2 name print Padre::MIME->find('text/plain')->name; The C<name> accessor returns the (localisable) English name of the MIME type. For example, the above would print C<"Text">. =cut sub name { $_[0]->{name}; } =pod =head2 super # Find the root type for a mime type my $mime = Padre::MIME->find('text/x-actionscript'); $mime = $mime->super while $mime->super; The C<super> method returns the L<Padre::MIME> object for the immediate supertype of a particular MIME type, or false if there is no supertype. =cut sub super { $MIME{ $_[0]->{supertype} || '' }; } =pod =head2 supertype # Find the root type for a mime type my $mime = Padre::MIME->find('text/x-actionscript'); $mime = $mime->super while defined $mime->supertype; The C<supertype> method returns the string form of the immediate supertype for a particular MIME type, or C<undef> if there is no supertype. =cut sub supertype { $_[0]->{supertype}; } =pod =head2 superpath # Find the comment format for a type my $mime = Padre::MIME->find('text/x-actionscript'); my $comment = undef; foreach my $type ( $mime->superpath ) { $comment = Padre::Comment->find($type) and last; } The C<superpath> method returns a list of MIME type strings of the entire inheritance path for a particular MIME type, including itself. This can allow inherited types to gain default access to various resources such as the comment type or syntax highlighting of the supertypes without needing to be implemented seperately, if they are no different from their supertype in some respect. =cut sub superpath { @{ $_[0]->{superpath} }; } =pod =head2 document my $module = Padre::MIME->find('text/x-perl')->document; The C<document> method attempts to resolve an implementation class for this MIME type, either from the Padre core or from a plugin. For example, the above would return C<'Padre::Document::Perl'>. Returns the class name as a string, or C<undef> if no implementation class can be resolved. =cut sub document { my $self = shift; my $mime = $self; do { return $mime->{plugin} if $mime->{plugin}; return $mime->{document} if $mime->{document}; } while ( $mime = $mime->super ); # die "Failed to find a document class for '" . $self->type . "'"; return undef; } =pod =head2 binary if ( Padre::MIME->find('application/octet-stream')->binary ) { die "Padre does not support binary files"; } The C<binary> method is a convenience for determining if a MIME type is a type of non-text file that Padre does not support opening. Returns true if the MIME type is binary or false if not. =cut sub binary { !!grep { $_ eq 'application/octet-stream' } $_[0]->superpath; } =pod =head2 plugin # Overload the default Python support my $python = Padre::MIME->find('text/x-python'); $python->plugin('Padre::Plugin::Python::Document'); The C<plugin> method is used to overload support for a MIME type and cause it to be loaded by an arbitrary class. This method should generally not be used directly, it is intended for internal use by L<Padre::PluginManager> and does not do any form of testing or management of the classes passed in. =cut sub plugin { $_[0]->{plugin} = $_[1]; } =pod =head2 reset # Remove the overloaded Python support Padre::MIME->find('text/x-python')->reset; The C<reset> method is used to remove the overloading of a MIME type by a plugin and return to default support. This method should generally not be used directly, it is intended for internal use by L<Padre::PluginManager> and does not do any form of testing or management. =cut sub reset { delete $_[0]->{plugin}; } =pod =head2 comment my $comment = Padre::MIME->find('text/x-perl')->comment; The C<comment> method fetches the comment rules for the mime type from the L<Padre::Comment> subsystem of L<Padre>. Returns the basic comment as a string, or C<undef> if no comment rule is known for the MIME type. =cut sub comment { require Padre::Comment; $_[0]->{comment} or $_[0]->{comment} = Padre::Comment->find( $_[0] ); } ##################################################################### # MIME Type Detection =pod =head2 detect my $type = Padre::MIME->detect( file => 'path/file.pm', text => "#!/usr/bin/perl\n\n", svn => 1, ); The C<detect> method implements MIME detection using a variety of different methods. It takes up to three different params, which it will use in the order it considers most efficient and reliable. The optional parameter C<file> param can either be a L<Padre::File> object, or the path of the file in string form. The optional string parameter C<text> should be all or part of the content of the file as a plain string. The optional boolean parameter C<svn> indicates whether or not the detection code should look for a C<svn:mime-type> property in the C<.svn> metadata directory for the file. Returns a MIME type string for a registered MIME type if a reasonable guess can be made, or the null string C<''> if the detection code cannot determine the MIME type of the file/content. =cut sub detect { my $class = shift; my %param = @_; # Could be a Padre::File object with an identified mime type my $file = $param{file}; if ( ref $file ) { # The mime might already be identified my $mime = $file->mime; return $mime if defined $mime; # Not identified, just use the actual file name $file = $file->filename; } # Use SVN metadata if we are allowed to my $mime = ''; if ( $param{svn} and $file ) { require Padre::SVN; $mime = Padre::SVN::file_mimetype($file) || ''; } # Try derive the mime type from the file extension if ( not $mime and $file ) { if ( $file =~ /\.([^.]+)$/ ) { my $ext = lc $1; $mime = $EXT{$ext} if $EXT{$ext}; } else { # Try to derive the mime type from the basename # Makefile is now highlighted as a Makefile # Changelog files are now displayed as text files require File::Basename; my $basename = File::Basename::basename($file); if ($basename) { $mime = 'text/x-makefile' if $basename =~ /^Makefile\.?/i; $mime = 'text/plain' if $basename =~ /^(changes|changelog)/i; } } } # Fall back on deriving the type from the content. # Hardcode this for now for the cases that we care about and # are obvious. my $text = $param{text}; if ( not $mime and defined $text ) { $mime = eval { $class->detect_content($text) }; return '' if $@; } # Fallback mime-type of new files, should be configurable in the GUI # TO DO: Make it configurable in the GUI :) if ( not $mime and not defined $file ) { $mime = 'application/x-perl'; } # Finally fall back to plain text file unless ( $mime and length $mime ) { $mime = 'text/plain'; } # If we found Perl 5 we might need to second-guess it and check # for it actually being Perl 6. if ( $mime eq 'application/x-perl' and $param{perl6} ) { if ( $class->detect_perl6($text) ) { $mime = 'application/x-perl6'; } } return $mime; } =pod =head2 detect_svn my $type = Padre::MIME->detect_svn($path); The C<detect_svn> method takes the path to a file as a string, and attempts to determine a MIME type for the file based on the file's Subversion C<svn:eol-style> property. Returns a MIME type string which may or may not be registered with L<Padre> or the null string C<''> if the property does not exist (or it is not stored in Subversion). =cut sub detect_svn { my $class = shift; my $file = shift; my $mime = undef; local $@; eval { require Padre::SVN; $mime = Padre::SVN::file_mimetype($file); }; return $mime || ''; } =pod =head2 detect_content The C<detect_content> method takes a string parameter containing the content of a file (or head-anchored partial content of a file) and attempts to heuristically determine the the type of the file based only on the content. Returns a MIME type string for a registered MIME type if a reasonable guess can be made, or the null string C<''> if the detection code cannot determine the file type of the content. =cut sub detect_content { my $class = shift; my $text = shift; # Working on content with malformed/bad UTF-8 chars may drop warnings # which just say that there are bad UTF-8 chars in the file currently # being checked. Maybe they are no UTF-8 chars at all but just a line # of bits and Padre/Perl simply has the wrong point of view (UTF-8), # so we drop these warnings: local $SIG{__WARN__} = sub { # Die if we throw a bad codepoint - this is a binary file. if ( $_[0] =~ /Code point .* is not Unicode/ ) { die $_[0]; } elsif ( $_[0] !~ /Malformed UTF\-8 char/ ) { return; # print STDERR "$_[0] while looking for mime type of $file"; } }; # Is this a script of some kind? if ( $text =~ /\A#!.*\bperl6?\b/m ) { return 'application/x-perl'; } if ( $text =~ /\A#!.*\bsh\b.*(?:\n.*)?\nexec wish/m ) { return 'application/x-tcl'; } if ( $text =~ /\A#!.*\bwish\b/m ) { return 'application/x-tcl'; } if ( $text =~ /\A#!.*\b(?:z|k|ba|t?c|da)?sh\b/m ) { return 'application/x-shellscript'; } if ( $text =~ /\A#!.*\bpython\b/m ) { return 'text/x-python'; } if ( $text =~ /\A#!.*\bruby\b/m ) { return 'application/x-ruby'; } # YAML will start with a --- if ( $text =~ /\A---/ ) { return 'text/x-yaml'; } # Rich Text Format if ( $text =~ /^\{\\rtf/ ) { return 'text/rtf'; } # Try to identify Perl Scripts based on soft criterias as a last resort # TO DO: Improve the tests SCOPE: { my $score = 0; if ( $text =~ /^package\s+[\w:]+;/ ) { $score += 2; } if ( $text =~ /\b(use \w+(\:\:\w+)*.+?\;[\r\n][\r\n.]*){3,}/ ) { $score += 2; } if ( $text =~ /\buse \w+(\:\:\w+)*.+?\;/ ) { $score += 1; } if ( $text =~ /\brequire ([\"\'])[a-zA-Z0-9\.\-\_]+\1\;[\r\n]/ ) { $score += 1; } if ( $text =~ /[\r\n]sub \w+ ?(\(\$*\))? ?\{([\s\t]+\#.+)?[\r\n]/ ) { $score += 1; } if ( $text =~ /\=\~ ?[sm]?\// ) { $score += 1; } if ( $text =~ /\bmy [\$\%\@]/ ) { $score += 0.5; } if ( $text =~ /\bmy \$self\b/ ) { $score += 1; } if ( $text =~ /\bforeach\s+my\s+\$\w+/ ) { $score += 1; } if ( $text =~ /\bour \$VERSION\b/ ) { $score += 1; } if ( $text =~ /1\;[\r\n]+$/ ) { $score += 0.5; } if ( $text =~ /\$\w+\{/ ) { $score += 0.5; } if ( $text =~ /\bsplit[ \(]\// ) { $score += 0.5; } if ( $score >= 2 ) { return 'application/x-perl'; } } # Look for Template::Toolkit syntax # - traditional syntax: my $TT = qr/(?:PROCESS|WRAPPER|FOREACH|BLOCK|END|INSERT|INCLUDE)\b/; if ( $text =~ /\[\%[\+\-\=\~]? $TT\b .* [\+\-\=\~]?\%\]/ ) { return 'text/x-perltt'; } # - default alternate styles (match 2 tags) if ( $text =~ /(\%\%[\+\-\=\~]? $TT .* [\+\-\=\~]?\%\%.*){2}/s ) { return 'text/x-perltt'; } if ( $text =~ /(\[\*[\+\-\=\~]? $TT .* [\+\-\=\~]?\*\].*){2}/s ) { return 'text/x-perltt'; } # - other languages defaults (match 3 tags) if ( $text =~ /(\<([\?\%])[\+\-\=\~]? $TT .* [\+\-\=\~]?\1\>.*){3}/s ) { return 'text/x-perltt'; } if ( $text =~ /(\<\%[\+\-\=\~]? $TT .* [\+\-\=\~]?\>.*){3}/s ) { return 'text/x-perltt'; } if ( $text =~ /(\<\!\-\-[\+\-\=\~]? $TT .* [\+\-\=\~]?\-\-\>.*){3}/s ) { return 'text/x-perltt'; } # - traditional, but lowercase syntax (3 tags) if ( $text =~ /(\[\%[\+\-\=\~]? $TT .* [\+\-\=\~]?\%\].*){3}/si ) { return 'text/x-perltt'; } # Recognise XML and variants if ( $text =~ /\A<\?xml\b/s ) { # Detect XML formats without XML namespace declarations return 'text/html' if $text =~ /^<!DOCTYPE html/m; return 'xml/x-wxformbuilder' if $text =~ /<wxFormBuilder_Project>/; # Fall through to generic XML return 'text/xml'; } # Look for HTML (now we can be relatively confident it's not HTML inside Perl) if ( $text =~ /\<\/(?:html|body|div|p|table)\>/ ) { # Is it Template Toolkit HTML? # Only try to text the default [% %] if ( $text =~ /\[\%\-?\s+\w+(?:\.\w+)*\s+\-?\%\]/ ) { return 'text/x-perltt'; } return 'text/html'; } # Try to detect plain CSS without HTML around it if ( $text !~ /\<\w+\/?\>/ ) { if ( $text =~ /^([\.\#]?\w+( [\.\#]?\w+)*)(\,[\s\t\r\n]*([\.\#]?\w+( [\.\#]?\w+)*))*[\s\t\r\n]*\{/ ) { return 'text/css'; } } # LUA detection SCOPE: { my $lua_score = 0; for ( 'end', 'it', 'in', 'nil', 'repeat', '...', '~=' ) { $lua_score += 1.1 if $text =~ /[\s\t]$_[\s\t]/; } $lua_score += 2.01 if $text =~ /^[\s\t]?function[\s\t]+\w+[\s\t]*\([\w\,]*\)[\s\t\r\n]+[^\{]/; $lua_score -= 5.02 if $text =~ /[\{\}]/; # Not used in lua $lua_score += 3.04 if $text =~ /\-\-\[.+?\]\]\-\-/s; # Comment return 'text/x-lua' if $lua_score >= 5; } return ''; } =pod =head2 detect_perl6 my $is_perl6 = Padre::MIME->detect_perl6($content); The C<detect_perl6> is a special case method used to distinguish between Perl 5 and Perl 6, as the two types often share the same file extension. Returns true if the content appears to be Perl 6, or false if the content appears to be Perl 5. =cut sub detect_perl6 { my $class = shift; my $text = shift; # Empty/undef text is not Perl 6 :) return 0 unless $text; # Perl 6 POD return 1 if $text =~ /^=begin\s+pod/msx; # Needed for eg/perl5_with_perl6_example.pod return 0 if $text =~ /^=head[12]/msx; # =cut is a sure sign for Perl 5 code (moritz++) return 0 if $text =~ /^=cut/msx; # Special case: If MooseX::Declare is there, then we're in Perl 5 land return 0 if $text =~ /^\s*use\s+MooseX::Declare/msx; # Perl 6 'use v6;' return 1 if $text =~ /^\s*use\s+v6;/msx; # One of Perl 6 compilation units return 1 if $text =~ /^\s*(?:class|grammar|module|role)\s+\w/msx; # Not Perl 6 for sure... return 0; } ###################################################################### # MIME Declarations # Plain text, which editable files inherit from Padre::MIME->create( type => 'text/plain', name => _T('Text'), document => 'Padre::Document', ); # Binary files, which we cannot open at all Padre::MIME->create( type => 'application/octet-stream', name => _T('Binary File'), ); Padre::MIME->create( type => 'text/x-abc', name => 'ABC', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-actionscript', name => 'ActionScript', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-adasrc', name => 'Ada', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-asm', name => 'Assembly', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-bat', name => 'Batch', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-bibtex', name => 'BibTeX', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-bml', name => 'BML', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-csrc', name => 'C', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-cobol', name => 'COBOL', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/csv', name => 'CSV', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-c++src', name => 'C++', supertype => 'text/x-csrc', ); Padre::MIME->create( type => 'text/css', name => 'CSS', supertype => 'text/x-csrc', ); Padre::MIME->create( type => 'text/x-eiffel', name => 'Eiffel', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-forth', name => 'Forth', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-fortran', name => 'Fortran', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-haskell', name => 'Haskell', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/sgml', name => 'SGML', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/html', name => 'HTML', supertype => 'text/sgml', ); Padre::MIME->create( type => 'application/javascript', name => 'JavaScript', supertype => 'text/x-csrc', ); Padre::MIME->create( type => 'application/json', name => 'JSON', supertype => 'application/javascript', ); Padre::MIME->create( type => 'application/x-latex', name => 'LaTeX', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-lisp', name => 'LISP', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-patch', name => 'Patch', supertype => 'text/plain', document => 'Padre::Document::Patch', ); Padre::MIME->create( type => 'application/pdf', name => 'PDF', supertype => 'application/octet-stream', ); Padre::MIME->create( type => 'application/x-shellscript', name => _T('Shell Script'), supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-java', name => 'Java', supertype => 'text/x-csrc', document => 'Padre::Document::Java', ); Padre::MIME->create( type => 'text/x-lua', name => 'Lua', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-makefile', name => 'Makefile', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-matlab', name => 'Matlab', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-pascal', name => 'Pascal', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-perl', name => 'Perl 5', supertype => 'text/plain', document => 'Padre::Document::Perl', ); Padre::MIME->create( type => 'text/x-povray', name => 'POVRAY', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-psgi', name => 'PSGI', supertype => 'application/x-perl', ); Padre::MIME->create( type => 'text/x-python', name => 'Python', supertype => 'text/plain', document => 'Padre::Document::Python', ); Padre::MIME->create( type => 'application/x-php', name => 'PHP', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-r', name => 'R', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/rtf', name => 'RTF', supertype => 'text/plain', # magic => "{\\rtf", ); Padre::MIME->create( type => 'application/x-ruby', name => 'Ruby', supertype => 'text/plain', document => 'Padre::Document::Ruby', ); Padre::MIME->create( type => 'text/x-sql', name => 'SQL', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-tcl', name => 'Tcl', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/vbscript', name => 'VBScript', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-config', name => 'Config', supertype => 'text/plain', ); # text/xml specifically means "human-readable XML". # This is preferred to the more generic application/xml Padre::MIME->create( type => 'text/xml', name => 'XML', document => 'Padre::Document', ); Padre::MIME->create( type => 'text/x-yaml', name => 'YAML', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-pir', name => 'PIR', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-pasm', name => 'PASM', supertype => 'text/plain', ); Padre::MIME->create( type => 'application/x-perl6', name => 'Perl 6', supertype => 'text/plain', ); # Completely custom mime types Padre::MIME->create( type => 'text/x-perlxs', # totally not confirmed name => 'XS', supertype => 'text/x-csrc', ); Padre::MIME->create( type => 'text/x-perltt', name => 'Template Toolkit', supertype => 'text/plain', ); Padre::MIME->create( type => 'text/x-csharp', name => 'C#', supertype => 'text/x-csrc', document => 'Padre::Document::CSharp', ); Padre::MIME->create( type => 'text/x-pod', name => 'POD', supertype => 'text/plain', ); Padre::MIME->create( type => 'xml/x-wxformbuilder', name => 'wxFormBuilder', supertype => 'text/xml', ); Padre::MIME->create( type => 'application/zip', name => _T('ZIP Archive'), supertype => 'application/octet-stream', ); 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut �����������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Config.pm����������������������������������������������������������������������0000644�0001750�0001750�00000135455�12237327555�014535� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Config; =pod =head1 NAME Padre::Config - Configuration subsystem for Padre =head1 SYNOPSIS use Padre::Config; [...] if ( Padre::Config->main_statusbar ) { [...] } =head1 DESCRIPTION This module not only stores the complete Padre configuration, it also holds the functions for loading and saving the configuration. The Padre configuration lives in two places: =over =item a user-editable text file usually called F<config.yml> =item an SQLite database which shouldn't be edited by the user =back =head2 Generic usage Every setting is accessed by a mutator named after it as follows: # Get the identity of the current user my $name = $config->identity_name; # Set the identity of the current user my $changed = $config->identity_name("John Smith"); =head2 Different types of settings Padre needs to store different types of settings, storing them in different places depending on their impact, with C<Padre::Config> allows access to access them with a unified API (a mutator). Here are the various types of settings that C<Padre::Config> can manage: =over 4 =item * User settings Those settings are general settings that relates to user preferences. They range from general user interface I<look & feel> (whether to show the line numbers, etc.) to editor preferences (tab width, etc.) and other personal settings. Those settings are stored in a YAML file in your configuration directory (which you can see in the About dialog) =item * Host settings Those preferences are related to the host on which Padre is run. The principal example of those settings is the locatio of the main window appearance, and other values which could be different between different operating systems and machines. Those settings are stored in a SQLite file. =item * Project settings Those preferences are related to the project of the file you are currently editing and allow, in principle, projects to set policies on certain values. Examples of those settings are whether to use tabs or spaces, etc. =back =head1 METHODS While the vast majority of the methods for this class are mutator front ends, a number of methods exist which allow you to interact with the config system more directly. =cut use 5.008; use strict; use warnings; use Carp (); use File::Spec (); use Scalar::Util (); use Params::Util (); use Padre::Constant (); use Padre::Util (); use Padre::Current (); use Padre::Config::Setting (); use Padre::Config::Human (); use Padre::Config::Host (); use Padre::Locale::T; use Padre::Logger; our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; our ( %SETTING, %DEFAULT, %STARTUP, $REVISION, $SINGLETON ); BEGIN { # Master storage of the settings %SETTING = (); # A cache for the defaults %DEFAULT = (); # A cache for startup.yml settings %STARTUP = (); # Storage for the default config object $SINGLETON = undef; # Load Portable Perl support if needed require Padre::Portable if Padre::Constant::PORTABLE; } # Accessor generation use Class::XSAccessor::Array { getters => { host => Padre::Constant::HOST, human => Padre::Constant::HUMAN, project => Padre::Constant::PROJECT, }, accessors => { restart => Padre::Constant::RESTART, } }; my $PANEL_OPTIONS = { left => _T('Left Panel'), right => _T('Right Panel'), bottom => _T('Bottom Panel'), }; ##################################################################### # Settings Specification # This section identifies the set of all named configuration entries, # and where the configuration system should resolve them to. =pod =head2 settings my @names = Padre::Config->settings; Returns the names of all registered settings as a sorted list. =cut sub settings { my @names = keys %SETTING; return wantarray ? sort @names : scalar @names; } # # setting( %params ); # # Create a new setting, with %params used to feed the new object. # sub setting { # Allow this sub to be called as a method or function shift if ref( $_[0] ) eq __PACKAGE__; # Validate the setting my $object = Padre::Config::Setting->new(@_); my $name = $object->{name}; if ( $SETTING{$name} ) { Carp::croak("The $name setting is already defined"); } # Generate the accessor SCOPE: { local $@; eval $object->code; Carp::croak("Failed to compile setting $object->{name}: $@") if $@; } # Save the setting $SETTING{$name} = $object; $DEFAULT{$name} = $object->{default}; $STARTUP{$name} = 1 if $object->{startup}; return 1; } ##################################################################### # Constructor and Input/Output sub new { my $class = shift; my $host = shift; my $human = shift; unless ( Params::Util::_INSTANCE( $host, 'Padre::Config::Host' ) ) { Carp::croak("Did not provide a host config to Padre::Config->new"); } unless ( Params::Util::_INSTANCE( $human, 'Padre::Config::Human' ) ) { Carp::croak("Did not provide a user config to Padre::Config->new"); } # Create the basic object with the two required elements my $self = bless [ $host, $human, undef, 0 ], $class; # Add the optional third element if (@_) { my $project = shift; unless ( Params::Util::_INSTANCE( $project, 'Padre::Config::Project' ) ) { Carp::croak("Did not provide a project config to Padre::Config->new"); } $self->[Padre::Constant::PROJECT] = $project; } return $self; } =pod =head2 read my $config = Padre::Config->read; The C<read> method reads and loads the config singleton for the current instance of Padre from the various places it is stored, or returns the singleton again if it has already been loaded. Returns a B<Padre::Config> object, or throws an exception if loaded of the configuration fails. =cut sub read { my $class = shift; unless ($SINGLETON) { TRACE("Loading configuration for $class") if DEBUG; # Load the host configuration my $host = Padre::Config::Host->read; # Load the user configuration my $human = Padre::Config::Human->read || Padre::Config::Human->create; # Hand off to the constructor $SINGLETON = $class->new( $host, $human ); } return $SINGLETON; } sub write { TRACE( $_[0] ) if DEBUG; my $self = shift; # Save the user configuration delete $self->[Padre::Constant::HUMAN]->{version}; delete $self->[Padre::Constant::HUMAN]->{Version}; $self->[Padre::Constant::HUMAN]->write; # Save the host configuration delete $self->[Padre::Constant::HOST]->{version}; delete $self->[Padre::Constant::HOST]->{Version}; $self->[Padre::Constant::HOST]->write; # Write the startup subset of the configuration. # NOTE: Use a hyper-minimalist listified key/value file format # so that we don't need to load YAML::Tiny before the thread fork. # This should save around 400k of memory per background thread. my %startup = ( VERSION => $VERSION, map { $_ => $self->$_() } sort keys %STARTUP ); open( my $FILE, '>', Padre::Constant::CONFIG_STARTUP ) or return 1; print $FILE map {"$_\n$startup{$_}\n"} sort keys %startup or return 1; close $FILE or return 1; return 1; } sub clone { my $self = shift; my $class = Scalar::Util::blessed($self); my $host = $self->host->clone; my $human = $self->human->clone; if ( $self->project ) { my $project = $self->project->clone; return $class->new( $host, $human, $project ); } else { return $class->new( $host, $human ); } } ###################################################################### # Main Methods =pod =head2 meta my $setting = Padre::Config->meta("identity_name"); The C<meta> method finds the configuration metadata for a named setting. Returns a L<Padre::Config::Setting> object, or throws an exception if the named setting does not exist. =cut sub meta { $SETTING{ $_[1] } or die("Missing or invalid setting name '$_[1]'"); } =pod =head2 default my $value = Padre::Config->default("main_directory_panel"); The C<default> method reports the default value for the setting in the context of the currently running instance of Padre (some settings may have different default on different operating systems, for example) Returns a value that is legal for the setting type, or throws an exception if the named setting does not exist. =cut sub default { my $self = shift; my $name = shift; # Does the setting exist? unless ( $SETTING{$name} ) { Carp::croak("The configuration setting '$name' does not exist"); } return $DEFAULT{$name}; } =pod =head2 changed my $same = ! $config->changed( "identity_name", "John Smith" ); The C<changed> method takes a named setting and a value for that setting, and determines if setting that value on the config would result in the configuration being changed. Returns true if the value provided is different to the current setting, or false if the value provided is the same (or effectively the same) as the current setting. =cut sub changed { my $self = shift; my $name = shift; my $new = shift; my $old = $self->$name(); my $type = $self->meta($name)->type; if ( $type == Padre::Constant::ASCII or $type == Padre::Constant::PATH ) { return $new ne $old; } else { return $new != $old; } } =pod =head2 set my $changed = $config->set("identity_name", "John Smith"); The C<set> method takes a named setting and a value and modifies the configuration object to have that value. Changes made to the configuration in this manner will not be reflected in the running instance, for that you should use the C<apply> method. Returns true, or throws an exception on errors such as a non-existant setting name or an illegal value for that setting type. =cut sub set { TRACE( $_[1] ) if DEBUG; my $self = shift; my $name = shift; my $value = shift; # Does the setting exist? my $setting = $SETTING{$name}; unless ($setting) { Carp::croak("The configuration setting '$name' does not exist"); } # All types are Padre::Constant::ASCII-like unless ( defined $value and not ref $value ) { Carp::croak("Missing or non-scalar value for setting '$name'"); } # We don't need to do additional checks on Padre::Constant::ASCII my $type = $setting->type; my $store = $setting->store; unless ( defined $type ) { Carp::croak("Setting '$name' has undefined type"); } if ( $type == Padre::Constant::BOOLEAN ) { $value = 0 if $value eq ''; if ( $value ne '1' and $value ne '0' ) { Carp::croak("Setting '$name' to non-boolean '$value'"); } } if ( $type == Padre::Constant::POSINT and not Params::Util::_POSINT($value) ) { Carp::croak("Setting '$name' to non-posint '$value'"); } if ( $type == Padre::Constant::INTEGER and not _INTEGER($value) ) { Carp::croak("Setting '$name' to non-integer '$value'"); } if ( $type == Padre::Constant::PATH ) { if ( Padre::Constant::WIN32 and utf8::is_utf8($value) ) { require Win32; my $long = Win32::GetLongPathName($value); # GetLongPathName returns undef if it doesn't exist. unless ( defined $long ) { Carp::croak("Setting '$name' to non-existant path '$value'"); } $value = $long; # Wx::DirPickerCtrl upgrades data to utf8. # Perl on Windows cannot handle utf8 in file names, # so this hack converts path back. } unless ( -e $value ) { Carp::croak("Setting '$name' to non-existant path '$value'"); } # If we are in Portable mode convert the path to dist relative if # the setting is going into the host backend. if ( Padre::Constant::PORTABLE and $store == Padre::Constant::HOST ) { # NOTE: Even though this says "directory" it is safe for files too $value = Padre::Portable::freeze_directory($value); } } # Now we can stash the variable $self->[$store]->{$name} = $value; return 1; } =pod =head2 apply my $changed = $config->apply("main_directory_panel", "right"); The C<apply> method is a higher order version of the C<set> which will set the configuration value, and then immediately update the running instance of Padre to reflect the change. For example, if the directory panel is open and on the left side of the display, running the sample code above will change the location preference to the right side and immediately move the directory panel to the other side of the IDE. See L<Padre::Config::Apply> for more information on Padre's on-the-fly configuration change support. Returns true if the configuration was changed, false if the value was the same as the existing configuration value and did not need to be modified, or throws an exception on errors such as a non-existant setting name or an illegal value for that setting type. =cut sub apply { TRACE( $_[0] ) if DEBUG; my $self = shift; my $name = shift; my $new = shift; # Does the setting exist? my $setting = $SETTING{$name}; unless ($setting) { Carp::croak("The configuration setting '$name' does not exist"); } # Shortcut if the value has not changed my $changed = $self->changed($name, $new); return $changed unless $changed; # Set the config value my $old = $self->$name(); $self->set( $name => $new ); # Does this setting have an apply hook my $code = do { require Padre::Config::Apply; Padre::Config::Apply->can($name); }; if ( $code ) { # Hand off control to the apply hook my $current = Padre::Current::_CURRENT(@_); $code->( $current->main, $new, $old ); } elsif ( $setting->restart ) { # Change requires a restart of Padre $self->restart(1); } return 1; } sub themes { my $class = shift; my $core_directory = Padre::Util::sharedir('themes'); my $user_directory = File::Spec->catdir( Padre::Constant::CONFIG_DIR, 'themes', ); # Scan themes directories my %themes = (); foreach my $directory ( $user_directory, $core_directory ) { next unless -d $directory; # Search the directory local *STYLEDIR; unless ( opendir( STYLEDIR, $directory ) ) { die "Failed to read '$directory'"; } foreach my $file ( readdir STYLEDIR ) { next unless $file =~ s/\.txt\z//; next unless Params::Util::_IDENTIFIER($file); next if $themes{$file}; $themes{$file} = File::Spec->catfile( $directory, "$file.txt" ); } closedir STYLEDIR; } return \%themes; } ###################################################################### # Support Functions # # my $is_integer = _INTEGER( $scalar ); # # return true if $scalar is an integer. # sub _INTEGER { return defined $_[0] && !ref $_[0] && $_[0] =~ m/^(?:0|-?[1-9]\d*)$/; } ###################################################################### # Basic Settings # User identity (simplistic initial version) # Initially, this must be ascii only setting( name => 'identity_name', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => '', ); setting( name => 'identity_email', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => '', ); setting( name => 'identity_nickname', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => '', ); setting( name => 'identity_location', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => '', ); # Indent settings # Allow projects to forcefully override personal settings setting( name => 'editor_indent_auto', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, project => 1, ); setting( name => 'editor_indent_tab', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, project => 1, ); setting( name => 'editor_indent_tab_width', type => Padre::Constant::POSINT, store => Padre::Constant::HUMAN, default => 8, project => 1, ); setting( name => 'editor_indent_width', type => Padre::Constant::POSINT, store => Padre::Constant::HUMAN, default => 8, project => 1, ); ##################################################################### # Startup Behaviour Rules setting( name => 'startup_splash', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, startup => 1, help => _T('Showing the splash image during start-up'), ); # Startup mode, if no files given on the command line this can be # new - a new empty buffer # nothing - nothing to open # last - the files that were open last time setting( name => 'startup_files', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'new', options => { 'last' => _T('Previous open files'), 'new' => _T('A new empty file'), 'nothing' => _T('No open files'), 'session' => _T('Open session'), }, help => _T('"Open session" will ask which session (set of files) to open when you launch Padre.') . _T( '"Previous open files" will remember the open files when you close Padre and open the same files next time you launch Padre.' ), ); # How many times has the user run Padre? # Default is 1 and the value is incremented at shutdown rather than # startup so that we don't have to write files in the startup sequence. setting( name => 'nth_startup', type => Padre::Constant::POSINT, store => Padre::Constant::HUMAN, default => 1, ); # Save if feedback has been send or not setting( name => 'nth_feedback', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); # Have we shown the birthday popup this year? (Prevents duplicate popups) # Store it on the host, because we can't really sync it properly. setting( name => 'nth_birthday', type => Padre::Constant::INTEGER, store => Padre::Constant::HOST, default => 0, ); ###################################################################### # Main Window Tools and Layout # Window setting( name => 'main_title', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => ( Padre::Constant::PORTABLE ? 'Padre Portable' : 'Padre' ), help => _T('Contents of the window title') . _T('Several placeholders like the filename can be used'), ); setting( name => 'main_singleinstance', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => Padre::Constant::DEFAULT_SINGLEINSTANCE, startup => 1, ); setting( name => 'main_singleinstance_port', type => Padre::Constant::POSINT, store => Padre::Constant::HOST, default => Padre::Constant::DEFAULT_SINGLEINSTANCE_PORT, startup => 1, ); setting( name => 'main_lockinterface', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'main_functions', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_functions_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'right', options => $PANEL_OPTIONS, ); setting( name => 'main_functions_order', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'alphabetical', options => { 'original' => _T('Code Order'), 'alphabetical' => _T('Alphabetical Order'), 'alphabetical_private_last' => _T('Alphabetical Order (Private Last)'), }, ); setting( name => 'main_outline', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_outline_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'right', options => $PANEL_OPTIONS, ); setting( name => 'main_tasks', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_tasks_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'bottom', options => $PANEL_OPTIONS, ); setting( name => 'main_tasks_regexp', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => "#\\s*(?:TO[- ]?DO|XXX|FIX[- ]?ME)(?:[ \\t]*[:-]?)(?:[ \\t]*)(.*?)\\s*\$", ); setting( name => 'main_directory', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_directory_order', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'first', options => { first => _T('Directories First'), mixed => _T('Directories Mixed'), }, ); setting( name => 'main_directory_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'left', options => $PANEL_OPTIONS, ); setting( name => 'main_directory_root', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => File::HomeDir->my_documents || '', ); setting( name => 'main_output', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_output_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'bottom', options => $PANEL_OPTIONS, ); setting( name => 'main_output_ansi', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'main_command', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_command_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'bottom', options => $PANEL_OPTIONS, ); setting( name => 'main_syntax', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_syntax_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'bottom', options => $PANEL_OPTIONS, ); setting( name => 'main_vcs', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_vcs_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'right', options => $PANEL_OPTIONS, ); setting( name => 'main_cpan', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_cpan_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'right', options => $PANEL_OPTIONS, ); setting( name => 'main_foundinfiles_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'bottom', options => $PANEL_OPTIONS, ); setting( name => 'main_replaceinfiles_panel', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'bottom', options => $PANEL_OPTIONS, ); setting( name => 'main_breakpoints', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_debugoutput', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_debugger', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'main_statusbar', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, help => _T('Show or hide the status bar at the bottom of the window.'), ); setting( name => 'main_statusbar_template', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => '%m %f', help => _T('Contents of the status bar') . _T('Several placeholders like the filename can be used'), ); setting( name => 'main_toolbar', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, # Toolbars are not typically used for Mac apps. # Hide it by default so Padre looks "more Mac'ish" # NOTE: Or at least, so we were told. Opinions apparently vary. default => Padre::Constant::MAC ? 0 : 1, ); setting( name => 'main_toolbar_items', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, # This lives here until a better place is found: # This is a list of toolbar items, separated by ; # The following items are supported: # action # Insert the action # action(argument,argument) # Insert an action which requires one or more arguments # | # Insert a seperator default => 'file.new;' . 'file.open;' . 'file.save;' . 'file.save_as;' . 'file.save_all;' . 'file.close;' . '|;' . 'file.open_example;' . '|;' . 'edit.undo;' . 'edit.redo;' . '|;' . 'edit.cut;' . 'edit.copy;' . 'edit.paste;' . 'edit.select_all;' . '|;' . 'search.find;' . 'search.replace;' . '|;' . 'edit.comment_toggle;' . '|;' . 'search.open_resource;' . 'search.quick_menu_access;' . '|;' . 'run.run_document;' . 'run.stop;' . '|;' . 'debug.launch;' . 'debug.set_breakpoint;' . 'debug.quit;' . '|;' ); # Directory Tree Settings setting( name => 'default_projects_directory', type => Padre::Constant::PATH, store => Padre::Constant::HOST, default => File::HomeDir->my_documents || '', ); # Editor Settings # The default editor font should be Consolas 10pt on Vista and Windows 7 setting( name => 'editor_font', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => Padre::Util::DISTRO =~ /^WIN(?:VISTA|7)$/ ? 'consolas 10' : '', ); setting( name => 'editor_linenumbers', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'editor_eol', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_whitespace', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_indentationguides', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_calltips', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_autoindent', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'deep', options => { 'no' => _T('No Autoindent'), 'same' => _T('Indent to Same Depth'), 'deep' => _T('Indent Deeply'), }, ); setting( name => 'editor_folding', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_fold_pod', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_brace_expression_highlighting', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'save_autoclean', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_currentline', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'editor_currentline_color', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'FFFF04', ); setting( name => 'editor_wordwrap', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_file_size_limit', type => Padre::Constant::POSINT, store => Padre::Constant::HUMAN, default => 500_000, ); setting( name => 'editor_right_margin_enable', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'editor_right_margin_column', type => Padre::Constant::POSINT, store => Padre::Constant::HUMAN, default => 80, ); setting( name => 'editor_smart_highlight_enable', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'editor_cursor_blink', type => Padre::Constant::INTEGER, store => Padre::Constant::HUMAN, default => 500, # milliseconds ); setting( name => 'editor_dwell', type => Padre::Constant::INTEGER, store => Padre::Constant::HUMAN, default => 500, ); setting( name => 'find_case', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'find_regex', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'find_reverse', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'find_first', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'find_nohidden', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'find_nomatch', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'default_line_ending', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => Padre::Constant::NEWLINE, options => { 'UNIX' => 'UNIX', 'WIN' => 'WIN', 'MAC' => 'MAC', }, ); setting( name => 'update_file_from_disk_interval', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 2, ); # Autocomplete settings (global and Perl-specific) setting( name => 'autocomplete_multiclosebracket', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'autocomplete_always', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'autocomplete_method', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'autocomplete_subroutine', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'lang_perl5_autocomplete_max_suggestions', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 20, ); setting( name => 'lang_perl5_autocomplete_min_chars', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'lang_perl5_autocomplete_min_suggestion_len', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 3, ); setting( name => 'lang_perl5_lexer_ppi_limit', type => Padre::Constant::POSINT, store => Padre::Constant::HUMAN, default => 4000, ); # Behaviour Tuning # When running a script from the application some of the files might have # not been saved yet. There are several option what to do before running the # script: # none - don't save anything (the script will be run without current modifications) # unsaved - as above but including modifications present in the buffer # same - save the file in the current buffer # all_files - all the files (but not buffers that have no filenames) # all_buffers - all the buffers even if they don't have a name yet setting( name => 'run_save', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'same', ); setting( name => 'run_perl_cmd', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, # We don't get a default from Padre::Perl, because the saved value # may be outdated sometimes in the future, reading it fresh on # every run makes us more future-compatible default => '', ); setting( name => 'lang_perl5_tags_file', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, # Don't save a default to allow future updates default => '', ); setting( name => 'lang_perl5_lexer', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => '', options => { '' => _T('Scintilla'), 'Padre::Document::Perl::Lexer' => _T('PPI Experimental'), 'Padre::Document::Perl::PPILexer' => _T('PPI Standard'), }, ); setting( name => 'xs_calltips_perlapi_version', type => Padre::Constant::ASCII, store => Padre::Constant::PROJECT, default => 'newest', project => 1, ); setting( name => 'info_on_statusbar', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, help => _T('Show low-priority info messages on statusbar (not in a popup)'), ); # Move of stacktrace to run menu: will be removed (run_stacktrace) setting( name => 'run_stacktrace', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'autocomplete_brackets', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'mid_button_paste', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); setting( name => 'sessionmanager_sortorder', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => "0,0", ); # By default use background threads unless profiling # TO DO - Make the default actually change # (Ticket # 669) setting( name => 'threads', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, startup => 1, ); setting( name => 'threads_maximum', type => Padre::Constant::INTEGER, store => Padre::Constant::HOST, default => 9, ); setting( name => 'threads_stacksize', type => Padre::Constant::INTEGER, store => Padre::Constant::HOST, default => Padre::Constant::WIN32 ? 4194304 : 0, startup => 1, ); setting( name => 'locale', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => '', ); # Colour Data # Since it's in local files, it has to be a host-specific setting. setting( name => 'editor_style', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => 'default', options => Padre::Config->themes, ); # Window Geometry setting( name => 'main_maximized', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 0, ); setting( name => 'main_top', type => Padre::Constant::INTEGER, store => Padre::Constant::HOST, default => -1, ); setting( name => 'main_left', type => Padre::Constant::INTEGER, store => Padre::Constant::HOST, default => -1, ); setting( name => 'main_width', type => Padre::Constant::POSINT, store => Padre::Constant::HOST, default => -1, ); setting( name => 'main_height', type => Padre::Constant::POSINT, store => Padre::Constant::HOST, default => -1, ); # Run Parameters setting( name => 'run_interpreter_args_default', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => '', ); setting( name => 'run_script_args_default', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => '', ); setting( name => 'run_use_external_window', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); # External tool integration setting( name => 'bin_shell', type => Padre::Constant::PATH, store => Padre::Constant::HOST, default => Padre::Constant::WIN32 ? 'cmd.exe' : '', ); # Enable/Disable entire functions that some people dislike. # Normally these should be enabled by default (or should be # planned to eventually be enabled by default). # Disable Bookmark functionality. # Reduces code size and menu entries. setting( name => 'feature_bookmark', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, ); # Disable convenience font-size changes. # Reduces menu entries and prevents accidental font size changes # due to Ctrl-MouseWheel mistakes. setting( name => 'feature_fontsize', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, ); # Disable code folding. # Reduces code bloat and menu entries. setting( name => 'feature_folding', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, ); # Disable session support. # Reduces code bloat and database operations. setting( name => 'feature_session', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, ); # Disable remembering cursor position. # Reduces code bloat and database operations. setting( name => 'feature_cursormemory', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, ); # Disable GUI debugger. # Reduces code bloat and toolbar/menu entries for people that # prefer to use command line debugger (which is also less buggy) setting( name => 'feature_debugger', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, ); # Enable experimental quick fix system. setting( name => 'feature_quick_fix', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, restart => 1, ); # Enable experimental preference sync support. setting( name => 'feature_sync', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, restart => 1, ); # Enable experimental expanded style support setting( name => 'feature_style_gui', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, restart => 1, ); # Enable experimental Run with Devel::EndStats support. setting( name => 'feature_devel_endstats', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, restart => 1, help => _T('Enable or disable the Run with Devel::EndStats if it is installed. ') . _T('This requires an installed Devel::EndStats and a Padre restart'), ); # Specify Devel::EndStats options for experimental Run with Devel::EndStats support setting( name => 'feature_devel_endstats_options', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'verbose,1', help => _T(q{Specify Devel::EndStats options. 'feature_devel_endstats' must be enabled.}), ); # Enable experimental Run with Devel::TraceUse support. setting( name => 'feature_devel_traceuse', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, restart => 1, help => _T('Enable or disable the Run with Devel::TraceUse if it is installed. ') . _T('This requires an installed Devel::TraceUse and a Padre restart'), ); # Specify Devel::TraceUse options for experimental Run with Devel::TraceUse support setting( name => 'feature_devel_traceuse_options', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => '', help => _T(q{Specify Devel::TraceUse options. 'feature_devel_traceuse' must be enabled.}), ); # Toggle syntax checker annotations in editor setting( name => 'feature_syntax_check_annotations', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, help => _T('Enable syntax checker annotations in the editor') ); # Toggle document differences feature setting( name => 'feature_document_diffs', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, help => _T('Enable document differences feature') ); # Toggle version control system (VCS) support setting( name => 'feature_vcs_support', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, help => _T('Enable version control system support') ); # Toggle MetaCPAN CPAN explorer panel setting( name => 'feature_cpan', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, restart => 1, help => _T('Enable the CPAN Explorer, powered by MetaCPAN'), ); # Toggle Diff window feature setting( name => 'feature_diff_window', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, restart => 1, help => _T('Toggle Diff window feature that compares two buffers graphically'), ); # Experimental command line interface setting( name => 'feature_command', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, restart => 1, help => _T('Enable the experimental command line interface'), ); # Toggle Perl 6 auto detection setting( name => 'lang_perl6_auto_detection', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, help => _T('Toggle Perl 6 auto detection in Perl 5 files') ); # Window menu list shorten common path setting( name => 'window_list_shorten_path', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 1, ); # Perl 5 Beginner Mode setting( name => 'lang_perl5_beginner', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); setting( name => 'lang_perl5_beginner_split', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_warning', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_map', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_debugger', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_chomp', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_map2', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_perl6', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_ifsetvar', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_pipeopen', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_pipe2open', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_regexq', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_elseif', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); setting( name => 'lang_perl5_beginner_close', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HOST, default => 1, ); # Padre::File options # ::HTTP setting( name => 'file_http_timeout', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 30, ); # ::FTP setting( name => 'file_ftp_timeout', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 30, ); setting( name => 'file_ftp_passive', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 1, ); ################################################# # Version control system (VCS) ################################################# # Show normal objects? setting( name => 'vcs_normal_shown', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); # Show unversioned objects? setting( name => 'vcs_unversioned_shown', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); # Show ignored objects? setting( name => 'vcs_ignored_shown', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); # Toggle experimental VCS command bar setting( name => 'vcs_enable_command_bar', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); # Non-preference settings setting( name => 'session_autosave', type => Padre::Constant::BOOLEAN, store => Padre::Constant::HUMAN, default => 0, ); # The "config_" namespace is for the locations of configuration content # outside of the configuration API, and the paths to other non-Padre config # files for various external tools (usually so that projects can define the # the location of their project-specific policies). # The location of the server that will share config data between installs setting( name => 'config_sync_server', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => 'http://sync.perlide.org/', ); setting( name => 'config_sync_username', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => '', ); setting( name => 'config_sync_password', type => Padre::Constant::ASCII, store => Padre::Constant::HOST, default => '', ); # Location of the Perl::Tidy RC file, if a project wants to set a custom one. # When set to false, allow Perl::Tidy to use its own default config location. # Load this from the project backend in preference to the host one, so that # projects can set their own project-specific config file. setting( name => 'config_perltidy', type => Padre::Constant::PATH, store => Padre::Constant::PROJECT, default => '', ); # Location of the Perl::Critic RC file, if a project wants to set a custom # one. When set to false, allow Perl::Critic to use its own default config # location. Load this from the project backend in preference to the host one, # so that projects can set their own project-specific config file. setting( name => 'config_perlcritic', type => Padre::Constant::PATH, store => Padre::Constant::PROJECT, default => '', ); # Support for Module::Starter setting( name => 'module_starter_directory', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => '', ); setting( name => 'module_starter_builder', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'Module::Install', options => { 'ExtUtils::MakeMaker' => 'ExtUtils::MakeMaker', 'Module::Build' => 'Module::Build', 'Module::Install' => 'Module::Install', }, ); setting( name => 'module_starter_license', type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => 'perl', # licenses list taken from # http://search.cpan.org/dist/Module-Build/lib/Module/Build/API.pod # even though it should be in http://module-build.sourceforge.net/META-spec.html # and we should fetch it from Module::Start or maybe Software::License. # (but don't load them in this module, it adds bloat) options => { 'apache' => _T('Apache License'), #'artistic' => _T('Artistic License 1.0'), #'artistic_2' => _T('Artistic License 2.0'), 'bsd' => _T('Revised BSD License'), 'gpl' => _T('GPL 2 or later'), 'lgpl' => _T('LGPL 2.1 or later'), 'mit' => _T('MIT License'), #'mozilla' => _T('Mozilla Public License'), #'open_source' => _T('Other Open Source'), 'perl' => _T('The same as Perl itself'), #'unrestricted' => _T('Other Unrestricted'), #'restrictive' => _T('Proprietary/Restrictive'), }, ); 1; __END__ =pod =head1 ADDING CONFIGURATION OPTIONS Add a "setting()" - call to the correct section of this file. The setting() call initially creates the option and defines some metadata like the type of the option, it's living place and the default value which should be used until the user configures a own value. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Portable.pm��������������������������������������������������������������������0000644�0001750�0001750�00000002045�12237327555�015064� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Portable; # Provides common functionality needed for Portable Perl support use 5.008; use strict; use warnings; use File::Spec 3.21 (); # 3.21 needed for volume-safe abs2rel use Params::Util (); use Padre::Constant (); our $VERSION = '1.00'; sub freeze { return shift unless defined Params::Util::_STRING( $_[0] ); File::Spec->abs2rel( shift, Padre::Constant::PORTABLE ); } sub thaw { return shift unless defined Params::Util::_STRING( $_[0] ); File::Spec->rel2abs( shift, Padre::Constant::PORTABLE ); } # Special case for situations where the value might be a directory # and MIGHT be the same as the portable root directory. sub freeze_directory { return shift unless defined Params::Util::_STRING( $_[0] ); my $rel = File::Spec->abs2rel( shift, Padre::Constant::PORTABLE ); return length($rel) ? $rel : File::Spec->curdir; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/����������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�013343� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ActionLibrary.pm������������������������������������������������������������0000644�0001750�0001750�00000220223�12237327555�016454� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::ActionLibrary; # Defines all the core actions for Padre. # It's a little on the bloaty side, but splitting it into different files # won't make it any better. use 5.008005; use strict; use warnings; use File::Spec (); use Params::Util (); use Padre::Feature (); use Padre::Current (); use Padre::Constant (); use Padre::MIME (); use Padre::Breakpoints (); use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Wx::Action (); use Padre::Locale::T; use Padre::Logger; our $VERSION = '1.00'; ###################################################################### # Action Database sub init_language_actions { # Language Menu Actions my %language = Padre::Locale::menu_view_languages(); Padre::Wx::Action->new( name => 'view.language.default', label => _T('System Default'), comment => _T('Switch language to system default'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->change_locale; }, ); my $current = Padre::Locale::rfc4646(); foreach my $name ( sort keys %language ) { my $label = $language{$name}; if ( $name ne $current ) { $label .= ' - ' . Padre::Locale::label($name); } if ( $label eq 'English (United Kingdom)' ) { # NOTE: A dose of fun in a mostly boring application. # With more Padre developers, more countries, and more # people in total British English instead of American # English CLEARLY it is a FAR better default for us to # use British English. # Because it's something of an in-joke to English # speakers, non-English localisations do NOT show this. $label = "English (New Britstralian)"; } Padre::Wx::Action->new( name => "view.language.$name", label => $label, comment => sprintf( _T('Switch Padre interface language to %s'), $language{$name} ), menu_method => 'AppendRadioItem', menu_event => sub { $_[0]->change_locale($name); }, ); } return; } sub init { my $class = shift; my $main = shift; # Script Execution Padre::Wx::Action->new( name => 'internal.dump_padre', label => _T('Dump the Padre object to STDOUT'), comment => _T('Dumps the complete Padre object to STDOUT for testing/debugging.'), menu_event => sub { require Data::Dumper; open( my $dumpfh, '>', File::Spec->catfile( Padre::Constant::PADRE_HOME, 'padre.dump', ), ); print $dumpfh "# Begin Padre dump\n" . Data::Dumper::Dumper( $_[0]->ide ) . "# End Padre dump\n" . "1;\n"; close $dumpfh; }, ); # Delay the action queue Padre::Wx::Action->new( name => 'internal.wait1', label => _T('Delay the action queue for 1 seconds'), comment => _T('Stops processing of other action queue items for 1 second'), menu_event => sub { sleep 10; }, ); Padre::Wx::Action->new( name => 'internal.wait10', label => _T('Delay the action queue for 10 seconds'), comment => _T('Stops processing of other action queue items for 10 seconds'), menu_event => sub { sleep 10; }, ); Padre::Wx::Action->new( name => 'internal.wait30', label => _T('Delay the action queue for 30 seconds'), comment => _T('Stops processing of other action queue items for 30 seconds'), menu_event => sub { sleep 30; }, ); # Create new things Padre::Wx::Action->new( name => 'file.new', label => _T('&New'), comment => _T('Open a new empty document'), shortcut => 'Ctrl-N', toolbar => 'actions/document-new', menu_event => sub { $_[0]->on_new; }, ); Padre::Wx::Action->new( name => 'file.new_p5_script', label => _T('Perl 5 &Script'), comment => _T('Open a document with a skeleton Perl 5 script'), menu_event => sub { require Padre::Document::Perl::Starter; Padre::Document::Perl::Starter->new( $_[0] )->create_script; }, ); Padre::Wx::Action->new( name => 'file.new_p5_module', label => _T('Perl 5 &Module'), comment => _T('Open a document with a skeleton Perl 5 module'), menu_event => sub { require Padre::Document::Perl::Starter; Padre::Document::Perl::Starter->new( $_[0] )->create_module; }, ); Padre::Wx::Action->new( name => 'file.new_p5_test', label => _T('Perl 5 &Test'), comment => _T('Open a document with a skeleton Perl 5 test script'), menu_event => sub { require Padre::Document::Perl::Starter; Padre::Document::Perl::Starter->new( $_[0] )->create_test; }, ); # Split projects from files Padre::Wx::Action->new( name => 'file.p5_modulestarter', label => _T('Perl Distribution...'), comment => _T('Setup a skeleton Perl distribution'), menu_event => sub { require Padre::Wx::Dialog::ModuleStarter; Padre::Wx::Dialog::ModuleStarter->run( $_[0] ); }, ); # Split by language Padre::Wx::Action->new( name => 'file.new_p6_script', label => _T('Perl &6 Script'), comment => _T('Open a document with a skeleton Perl 6 script'), menu_event => sub { $_[0]->start_perl6_script; }, ); ### NOTE: Add support for plugins here # Open things Padre::Wx::Action->new( name => 'file.open', id => Wx::ID_OPEN, label => _T('&Open...'), comment => _T('Browse directory of the current document to open one or several files'), shortcut => 'Ctrl-O', toolbar => 'actions/document-open', menu_event => sub { $_[0]->on_open; }, ); Padre::Wx::Action->new( name => 'file.openurl', label => _T('Open &URL...'), comment => _T('Open a file from a remote location'), menu_event => sub { $_[0]->on_open_url; }, ); Padre::Wx::Action->new( name => 'file.open_in_file_browser', need_editor => 1, need_file => 1, label => _T('Open in File &Browser'), comment => _T('Opens the current document using the file browser'), menu_event => sub { my $document = $_[0]->current->document or return; $_[0]->on_open_in_file_browser( $document->filename ); }, ); Padre::Wx::Action->new( name => 'file.open_with_default_system_editor', label => _T('Open with Default &System Editor'), need_editor => 1, need_file => 1, comment => _T('Opens the file with the default system editor'), menu_event => sub { my $document = $_[0]->current->document or return; $_[0]->on_open_with_default_system_editor( $document->filename ); }, ); Padre::Wx::Action->new( name => 'file.open_in_command_line', need_editor => 1, need_file => 1, label => _T('Open in &Command Line'), comment => _T('Opens a command line using the current document folder'), menu_event => sub { my $document = $_[0]->current->document or return; $_[0]->on_open_in_command_line( $document->filename ); }, ); Padre::Wx::Action->new( name => 'file.open_example', label => _T('Open &Example'), comment => _T('Browse the directory of the installed examples to open one file'), toolbar => 'stock/generic/stock_example', menu_event => sub { $_[0]->on_open_example; }, ); # Opens the last closed file tab like Chrome and Firefox Padre::Wx::Action->new( name => 'file.open_last_closed_file', label => _T('Open &Last Closed File'), shortcut => 'Ctrl-Shift-T', comment => _T('Opens the last closed file'), menu_event => sub { $_[0]->on_open_last_closed_file; }, ); Padre::Wx::Action->new( name => 'file.close', id => Wx::ID_CLOSE, need_editor => 1, label => _T('&Close'), comment => _T('Close current document'), shortcut => 'Ctrl-W', toolbar => 'actions/x-document-close', menu_event => sub { $_[0]->close; }, ); # Close things Padre::Wx::Action->new( name => 'file.close_current_project', need_editor => 1, label => _T('Close &this Project'), comment => _T('Close all the files belonging to the current project'), shortcut => 'Ctrl-Shift-W', menu_event => sub { my $document = $_[0]->current->document or return; my $dir = $document->project_dir; unless ( defined $dir ) { $_[0]->error( Wx::gettext("File is not in a project") ); } $_[0]->close_where( sub { defined $_[0]->project_dir and $_[0]->project_dir eq $dir; } ); }, ); Padre::Wx::Action->new( name => 'file.close_other_projects', need_editor => 1, label => _T('Close other &Projects'), comment => _T('Close all the files that do not belong to the current project'), menu_event => sub { my $document = $_[0]->current->document or return; my $dir = $document->project_dir; unless ( defined $dir ) { $_[0]->error( Wx::gettext("File is not in a project") ); } $_[0]->close_where( sub { $_[0]->project_dir and $_[0]->project_dir ne $dir; } ); }, ); Padre::Wx::Action->new( name => 'file.close_all', need_editor => 1, label => _T('Close &all Files'), comment => _T('Close all the files open in the editor'), menu_event => sub { $_[0]->close_all; }, ); Padre::Wx::Action->new( name => 'file.close_all_but_current', need_editor => 1, label => _T('Close all &other Files'), comment => _T('Close all the files except the current one'), menu_event => sub { $_[0]->close_all( $_[0]->notebook->GetSelection ); }, ); Padre::Wx::Action->new( name => 'file.close_some', need_editor => 1, label => _T('Close &Files...'), comment => _T('Select some open files for closing'), menu_event => sub { $_[0]->on_close_some; }, ); Padre::Wx::Action->new( name => 'file.duplicate', need_editor => 1, label => _T('D&uplicate'), comment => _T('Copy the current tab into a new document'), menu_event => sub { $_[0]->on_duplicate; }, ); Padre::Wx::Action->new( name => 'file.delete', need_editor => 1, label => _T('&Delete'), comment => _T('Close current document and remove the file from disk'), menu_event => sub { $_[0]->on_delete; }, ); Padre::Wx::Action->new( name => 'file.reload_file', need_editor => 1, label => _T('Reload &File'), comment => _T('Reload current file from disk'), menu_event => sub { $_[0]->reload_editor; }, ); Padre::Wx::Action->new( name => 'file.reload_all', need_editor => 1, label => _T('Reload &All'), comment => _T('Reload all files currently open'), menu_event => sub { $_[0]->reload_all; }, ); Padre::Wx::Action->new( name => 'file.reload_some', need_editor => 1, label => _T('Reload &Some...'), comment => _T('Select some open files for reload'), menu_event => sub { $_[0]->reload_dialog; }, ); # Save files Padre::Wx::Action->new( name => 'file.save', id => Wx::ID_SAVE, need_editor => 1, need_modified => 1, label => _T('&Save'), comment => _T('Save current document'), shortcut => 'Ctrl-S', toolbar => 'actions/document-save', menu_event => sub { $_[0]->on_save; }, ); Padre::Wx::Action->new( name => 'file.save_as', id => Wx::ID_SAVEAS, need_editor => 1, label => _T('Save &As...'), comment => _T('Allow the selection of another name to save the current document'), shortcut => 'F12', toolbar => 'actions/document-save-as', menu_event => sub { $_[0]->on_save_as; }, ); Padre::Wx::Action->new( name => 'file.save_intuition', id => -1, need_editor => 1, label => _T('Save &Intuition'), comment => _T('For new document try to guess the filename based on the file content and offer to save it.'), shortcut => 'Ctrl-Shift-S', menu_event => sub { $_[0]->on_save_intuition; }, ); Padre::Wx::Action->new( name => 'file.save_all', need_editor => 1, label => _T('Save All'), comment => _T('Save all the files'), toolbar => 'actions/stock_data-save', shortcut => 'Alt-F12', menu_event => sub { $_[0]->on_save_all; }, ); # Specialised open and close functions Padre::Wx::Action->new( name => 'file.open_selection', label => _T('Open &Selection'), comment => _T('List the files that match the current selection and let the user pick one to open'), shortcut => 'Ctrl-Shift-O', menu_event => sub { $_[0]->on_open_selection; }, ); if (Padre::Feature::SESSION) { Padre::Wx::Action->new( name => 'file.open_session', label => _T('Open S&ession...'), comment => _T('Select a session. Close all the files currently open and open all the listed in the session'), shortcut => 'Ctrl-Alt-O', menu_event => sub { require Padre::Wx::Dialog::SessionManager; Padre::Wx::Dialog::SessionManager->new( $_[0] )->show; }, ); Padre::Wx::Action->new( name => 'file.save_session', label => _T('Save Sess&ion...'), comment => _T('Ask for a session name and save the list of files currently opened'), shortcut => 'Ctrl-Alt-S', menu_event => sub { require Padre::Wx::Dialog::SessionSave; Padre::Wx::Dialog::SessionSave->new( $_[0] )->show; }, ); } # Print files Padre::Wx::Action->new( name => 'file.print', # TO DO: As long as the ID is here, the shortcut won't work on Ubuntu. id => Wx::ID_PRINT, label => _T('&Print...'), comment => _T('Print the current document'), shortcut => 'Ctrl-P', menu_event => sub { require Wx::Print; require Padre::Wx::Printout; my $printer = Wx::Printer->new; my $printout = Padre::Wx::Printout->new( $_[0]->current->editor, "Print", ); $printer->Print( $_[0], $printout, 1 ); $printout->Destroy; return; }, ); # Recent things Padre::Wx::Action->new( name => 'file.open_recent_files', label => _T('&Open All Recent Files'), comment => _T('Open all the files listed in the recent files list'), menu_event => sub { $_[0]->on_open_all_recent_files; }, ); Padre::Wx::Action->new( name => 'file.clean_recent_files', label => _T('&Clean Recent Files List'), comment => _T('Remove the entries from the recent files list'), menu_event => sub { my $lock = Padre::Current->main->lock( 'UPDATE', 'DB', 'refresh_recent' ); Padre::DB::History->delete_where( 'type = ?', 'files' ); }, ); # Word Stats Padre::Wx::Action->new( name => 'file.properties', label => _T('&Document Statistics'), comment => _T('Word count and other statistics of the current document'), need_editor => 1, toolbar => 'actions/document-properties', menu_event => sub { require Padre::Wx::Dialog::Document; Padre::Wx::Dialog::Document->run( $_[0] ); }, ); Padre::Wx::Action->new( name => 'file.sloccount', label => _T('&Project Statistics'), menu_event => sub { require Padre::Wx::Dialog::SLOC; Padre::Wx::Dialog::SLOC->run( $_[0] ); }, ); # Exiting Padre::Wx::Action->new( name => 'file.quit', label => _T('&Quit'), comment => _T('Ask if unsaved files should be saved and then exit Padre'), shortcut => 'Ctrl-Q', menu_event => sub { $_[0]->Close; }, ); # Undo/Redo Padre::Wx::Action->new( name => 'edit.undo', id => Wx::ID_UNDO, need_editor => 1, # need => sub { # my $current = shift; # my $editor = $current->editor or return 0; # return $editor->CanUndo; # }, label => _T('&Undo'), comment => _T('Undo last change in current file'), shortcut => 'Ctrl-Z', toolbar => 'actions/edit-undo', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->Undo; }, ); Padre::Wx::Action->new( name => 'edit.redo', id => Wx::ID_REDO, need_editor => 1, # need => sub { # my $current = shift; # my $editor = $current->editor or return 0; # return $editor->CanRedo; # }, label => _T('&Redo'), comment => _T('Redo last undo'), shortcut => 'Ctrl-Y', toolbar => 'actions/edit-redo', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->Redo; }, ); Padre::Wx::Action->new( name => 'edit.select_all', id => Wx::ID_SELECTALL, need_editor => 1, label => _T('Select &All'), comment => _T('Select all the text in the current document'), shortcut => 'Ctrl-A', toolbar => 'actions/edit-select-all', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->SelectAll; }, ); Padre::Wx::Action->new( name => 'edit.mark_selection_start', need_editor => 1, label => _T('Mark Selection &Start'), comment => _T('Mark the place where the selection should start'), shortcut => 'Ctrl-[', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->text_selection_mark_start; }, ); Padre::Wx::Action->new( name => 'edit.mark_selection_end', need_editor => 1, label => _T('Mark Selection &End'), comment => _T('Mark the place where the selection should end'), shortcut => 'Ctrl-]', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->text_selection_mark_end; }, ); Padre::Wx::Action->new( name => 'edit.clear_selection_marks', need_editor => 1, label => _T('&Clear Selection Marks'), comment => _T('Remove all the selection marks'), menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->text_selection_clear; }, ); # Cut and Paste Padre::Wx::Action->new( name => 'edit.cut', id => Wx::ID_CUT, need_editor => 1, need_selection => 1, label => _T('Cu&t'), comment => _T('Remove the current selection and put it in the clipboard'), shortcut => 'Ctrl-X', toolbar => 'actions/edit-cut', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->Cut; }, ); Padre::Wx::Action->new( name => 'edit.copy', id => Wx::ID_COPY, need_editor => 1, need_selection => 1, label => _T('&Copy'), comment => _T('Put the current selection in the clipboard'), shortcut => 'Ctrl-C', toolbar => 'actions/edit-copy', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->Copy; }, ); # Special copy Padre::Wx::Action->new( name => 'edit.copy_filename', need_editor => 1, need_file => 1, label => _T('Copy Full &Filename'), comment => _T('Put the full path of the current file in the clipboard'), menu_event => sub { my $current = $_[0]->current; my $editor = $current->editor or return; my $document = $current->document; return unless defined $document->{file}; $editor->put_text_to_clipboard( $document->{file}->{filename} ); }, ); Padre::Wx::Action->new( name => 'edit.copy_basename', need_editor => 1, need_file => 1, label => _T('Copy F&ilename'), comment => _T('Put the name of the current file in the clipboard'), menu_event => sub { my $current = $_[0]->current; my $editor = $current->editor or return; my $document = $current->document; return unless defined $document->{file}; $editor->put_text_to_clipboard( $document->{file}->basename ); }, ); Padre::Wx::Action->new( name => 'edit.copy_dirname', need_file => 1, need_editor => 1, label => _T('Copy &Directory Name'), comment => _T('Put the full path of the directory of the current file in the clipboard'), menu_event => sub { my $current = $_[0]->current; my $editor = $current->editor or return; my $document = $current->document; return unless defined $document->{file}; $editor->put_text_to_clipboard( $document->{file}->dirname ); }, ); Padre::Wx::Action->new( name => 'edit.copy_content', need_editor => 1, label => _T('Copy Editor &Content'), comment => _T('Put the content of the current document in the clipboard'), menu_event => sub { my $current = $_[0]->current; my $editor = $current->editor or return; my $document = $current->document; return unless defined $document->{file}; $editor->put_text_to_clipboard( $document->text_get ); }, ); # Paste Padre::Wx::Action->new( name => 'edit.paste', need_editor => 1, id => Wx::ID_PASTE, label => _T('&Paste'), comment => _T('Paste the clipboard to the current location'), shortcut => 'Ctrl-V', toolbar => 'actions/edit-paste', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->Paste; }, ); # Miscellaneous Actions Padre::Wx::Action->new( name => 'edit.next_problem', need_editor => 1, label => _T('&Next Problem'), comment => _T('Jump to the code that triggered the next error'), shortcut => 'Ctrl-.', menu_event => sub { $_[0]->{syntax}->select_next_problem if $_[0]->{syntax}; }, ); Padre::Wx::Action->new( name => 'edit.next_difference', need_editor => 1, label => _T('&Next Difference'), comment => _T('Jump to the code that has been changed'), shortcut => 'Ctrl-,', menu_event => sub { $_[0]->{diff}->select_next_difference if $_[0]->{diff}; }, ) if Padre::Feature::DIFF_DOCUMENT; if (Padre::Feature::QUICK_FIX) { Padre::Wx::Action->new( name => 'edit.quick_fix', need_editor => 1, label => _T('&Quick Fix'), comment => _T('Apply one of the quick fixes for the current document'), shortcut => 'Ctrl-2', menu_event => sub { my $main = shift; my $current = $main->current; my $document = $current->document or return; return unless $document->can('get_quick_fix_provider'); my $editor = $current->editor; $editor->AutoCompSetSeparator( ord '|' ); my @list = (); my @items = (); eval { # Find available quick fixes from provider my $provider = $document->get_quick_fix_provider; @items = $provider->quick_fix_list( $document, $editor ); # Add quick list items from document's quick fix provider foreach my $item (@items) { push @list, $item->{text}; } }; TRACE("Error while calling get_quick_fix_provider: $@\n") if $@; my $empty_list = ( scalar @list == 0 ); if ($empty_list) { @list = ( Wx::gettext('No suggestions') ); } my $words = join( '|', @list ); Wx::Event::EVT_STC_USERLISTSELECTION( $main, $editor, sub { return if $empty_list; my $text = $_[1]->GetText; my $selection; foreach my $item (@items) { if ( $item->{text} eq $text ) { $selection = $item; last; } } if ($selection) { eval { &{ $selection->{listener} }(); }; warn "Failed while calling Quick fix $selection->{text}\n" if $@; } }, ); $editor->UserListShow( 1, $words ); }, ); } Padre::Wx::Action->new( name => 'edit.autocomp', need_editor => 1, label => _T('&Autocomplete'), comment => _T('Offer completions to the current string. See Preferences'), shortcut => 'Ctrl-Space', menu_event => sub { shift->on_autocompletion(@_); }, ); Padre::Wx::Action->new( name => 'edit.brace_match', need_editor => 1, label => _T('&Brace Matching'), comment => _T('Jump to the matching opening or closing brace: { }, ( ), [ ], < >'), shortcut => 'Ctrl-1', menu_event => sub { shift->on_brace_matching(@_); }, ); Padre::Wx::Action->new( name => 'edit.brace_match_select', need_editor => 1, label => _T('Select to Matching &Brace'), comment => _T('Select to the matching opening or closing brace'), shortcut => 'Ctrl-4', menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->select_to_matching_brace; } ); Padre::Wx::Action->new( name => 'edit.join_lines', need_editor => 1, need_selection => 1, label => _T('&Join Lines'), comment => _T('Join the next line to the end of the current line.'), shortcut => 'Ctrl-J', menu_event => sub { shift->on_join_lines(@_); }, ); Padre::Wx::Action->new( name => 'edit.insert.insert_special', need_editor => 1, label => _T('Special &Value...'), comment => _T('Select a date, filename or other value and insert at the current location'), shortcut => 'Ctrl-Shift-I', menu_event => sub { require Padre::Wx::Dialog::Special; Padre::Wx::Dialog::Special->new(@_)->Show; }, ); Padre::Wx::Action->new( name => 'edit.insert.snippets', need_editor => 1, label => _T('&Snippets...'), comment => _T('Select and insert a snippet at the current location'), shortcut => 'Ctrl-Shift-A', menu_event => sub { require Padre::Wx::Dialog::Snippet; Padre::Wx::Dialog::Snippet->new(@_)->Show; }, ); Padre::Wx::Action->new( name => 'edit.insert.from_file', need_editor => 1, label => _T('&File...'), comment => _T('Select a file and insert its content at the current location'), menu_event => sub { $_[0]->on_insert_from_file(@_); }, ); # Commenting Padre::Wx::Action->new( name => 'edit.comment_toggle', need_editor => 1, need_selection => 0, label => _T('&Toggle Comment'), comment => _T('Comment out/remove comment for selected lines or the current line'), shortcut => 'Ctrl-Shift-C', toolbar => 'actions/toggle-comments', menu_event => sub { $_[0]->comment_toggle; }, ); Padre::Wx::Action->new( name => 'edit.comment', need_editor => 1, need_selection => 1, label => _T('&Comment Out'), comment => _T('Comment out selected lines or the current line'), shortcut => 'Ctrl-M', menu_event => sub { $_[0]->comment_indent; }, ); Padre::Wx::Action->new( name => 'edit.uncomment', need_editor => 1, need_selection => 1, label => _T('&Uncomment'), comment => _T('Remove comment for selected lines or the current line'), shortcut => 'Ctrl-Shift-M', menu_event => sub { $_[0]->comment_outdent; }, ); # Conversions and Transforms Padre::Wx::Action->new( name => 'edit.convert_encoding_system', need_editor => 1, label => _T('Encode Document to &System Default'), comment => _T('Change the encoding of the current document to the default of the operating system'), menu_event => sub { $_[0]->encode_default; }, ); Padre::Wx::Action->new( name => 'edit.convert_encoding_utf8', need_editor => 1, label => _T('Encode Document to &utf-8'), comment => _T('Change the encoding of the current document to utf-8'), menu_event => sub { $_[0]->encode_utf8; }, ); Padre::Wx::Action->new( name => 'edit.convert_encoding_to', need_editor => 1, label => _T('Encode Document &to...'), comment => _T('Select an encoding and encode the document to that'), menu_event => sub { $_[0]->encode_dialog; }, ); Padre::Wx::Action->new( name => 'edit.convert_nl_windows', need_editor => 1, label => _T('EOL to &Windows'), comment => _T('Change the end of line character of the current document to those used in files on MS Windows'), menu_event => sub { $_[0]->convert_to('WIN'); }, ); Padre::Wx::Action->new( name => 'edit.convert_nl_unix', need_editor => 1, label => _T('EOL to &Unix'), comment => _T('Change the end of line character of the current document to that used on Unix, Linux, Mac OSX'), menu_event => sub { $_[0]->convert_to('UNIX'); }, ); Padre::Wx::Action->new( name => 'edit.convert_nl_mac', need_editor => 1, label => _T('EOL to &Mac Classic'), comment => _T('Change the end of line character of the current document to that used on Mac Classic'), menu_event => sub { $_[0]->convert_to('MAC'); }, ); # Tabs And Spaces Padre::Wx::Action->new( name => 'edit.tabs_to_spaces', need_editor => 1, label => _T('Tabs to &Spaces...'), comment => _T('Convert all tabs to spaces in the current document'), menu_event => sub { $_[0]->on_tab_and_space('Tab_to_Space'); }, ); Padre::Wx::Action->new( name => 'edit.spaces_to_tabs', need_editor => 1, label => _T('Spaces to &Tabs...'), comment => _T('Convert all the spaces to tabs in the current document'), menu_event => sub { $_[0]->on_tab_and_space('Space_to_Tab'); }, ); Padre::Wx::Action->new( name => 'edit.delete_leading', need_editor => 1, label => _T('Delete &Leading Spaces'), comment => _T('Remove the spaces from the beginning of the selected lines'), menu_event => sub { $_[0]->on_delete_leading_spaces; }, ); Padre::Wx::Action->new( name => 'edit.delete_trailing', need_editor => 1, label => _T('&Delete Trailing Spaces'), comment => _T('Remove the spaces from the end of the selected lines'), menu_event => sub { $_[0]->on_delete_trailing_spaces; }, ); # Upper and Lower Case Padre::Wx::Action->new( name => 'edit.case_upper', need_editor => 1, label => _T('&Upper All'), comment => _T('Change the current selection to upper case'), shortcut => 'Ctrl-Shift-U', menu_event => sub { $_[0]->current->editor->UpperCase; }, ); Padre::Wx::Action->new( name => 'edit.case_lower', need_editor => 1, label => _T('&Lower All'), comment => _T('Change the current selection to lower case'), shortcut => 'Ctrl-U', menu_event => sub { $_[0]->current->editor->LowerCase; }, ); # start or edit.patch_diff Padre::Wx::Action->new( name => 'edit.patch_diff', label => _T('&Patch...'), comment => _T('Simplistic Patch only works on saved files'), # shortcut => 'Ctrl-Shift-F', menu_event => sub { require Padre::Wx::Dialog::Patch; my $dialog = Padre::Wx::Dialog::Patch->new( $_[0] ); $dialog->run; $dialog->Destroy; return; }, ); # End diff tools Padre::Wx::Action->new( name => 'edit.filter_tool', need_editor => 1, label => _T('Filter through E&xternal Tool...'), comment => _T('Filters the selection (or the whole document) through any external command.'), menu_event => sub { shift->on_filter_tool(@_); }, ); Padre::Wx::Action->new( name => 'edit.perl_filter', label => _T('Filter through &Perl...'), comment => _T('Use Perl source as filter'), menu_event => sub { shift->show_perl_filter(@_); }, ); Padre::Wx::Action->new( name => 'edit.show_as_hex', need_editor => 1, label => _T('Show as &Hexadecimal'), comment => _T('Show the ASCII values of the selected text in hexadecimal notation in the output window'), menu_event => sub { shift->show_as_numbers( @_, 'hex' ); }, ); Padre::Wx::Action->new( name => 'edit.show_as_decimal', need_editor => 1, label => _T('Show as &Decimal'), comment => _T('Show the ASCII values of the selected text in decimal numbers in the output window'), menu_event => sub { shift->show_as_numbers( @_, 'decimal' ); }, ); # Search Padre::Wx::Action->new( name => 'search.find', id => Wx::ID_FIND, need_editor => 1, label => _T('&Find...'), comment => _T('Find text or regular expressions using a traditional dialog'), shortcut => 'Ctrl-F', toolbar => 'actions/edit-find', menu_event => sub { my $main = shift; # Ctrl-F first press, show fast find unless ( $main->has_findfast and $main->findfast->IsShown ) { $main->show_findfast; # Do they have a specific search term in mind? my $text = $main->current->text; $text = '' if $text =~ /\n/; # Set the search term if we have one if ( length $text ) { $main->findfast->search_start($text); } return; } # Ctrl-F second press, show full find dialog unless ( $main->has_find and $main->find->IsShown ) { $main->find->run; return; } # Ctrl-F third press, show find in files dialog unless ( $main->has_findinfiles and $main->findinfiles->IsShown ) { $main->findinfiles->run; return; } return; }, ); Padre::Wx::Action->new( name => 'search.find_next', label => _T('Find &Next'), need_editor => 1, comment => _T('Repeat the last find to find the next match'), shortcut => 'F3', menu_event => sub { $_[0]->search_next; }, ); Padre::Wx::Action->new( name => 'search.find_previous', need_editor => 1, label => _T('&Find Previous'), comment => _T('Repeat the last find, but backwards to find the previous match'), shortcut => 'Shift-F3', menu_event => sub { my $found = $_[0]->search_previous; # If we can't find another match, show a message if ( defined $found and not $found ) { $_[0]->message( Wx::gettext('Failed to find any matches') ); } }, ); # Search and Replace Padre::Wx::Action->new( name => 'search.replace', need_editor => 1, label => _T('Replace...'), comment => _T('Find text and replace it'), shortcut => 'Ctrl-R', menu_event => sub { $_[0]->replace->run; }, ); # Recursive Search Padre::Wx::Action->new( name => 'search.find_in_files', label => _T('Find in Fi&les...'), comment => _T('Search for a text in all files below a given directory'), shortcut => 'Ctrl-Shift-F', menu_event => sub { require Padre::Wx::Dialog::FindInFiles; my $dialog = Padre::Wx::Dialog::FindInFiles->new( $_[0] ); $dialog->run; $dialog->Destroy; return; }, ); # Recursive Replace Padre::Wx::Action->new( name => 'search.replace_in_files', label => _T('Re&place in Files...'), comment => _T('Search and replace text in all files below a given directory'), shortcut => 'Ctrl-Shift-R', menu_event => sub { require Padre::Wx::Dialog::ReplaceInFiles; my $dialog = Padre::Wx::Dialog::ReplaceInFiles->new( $_[0] ); $dialog->run; $dialog->Destroy; return; }, ); # Special Search Padre::Wx::Action->new( name => 'search.goto', label => _T('&Go To...'), comment => _T('Jump to a specific line number or character position'), shortcut => 'Ctrl-G', menu_event => sub { shift->goto->show; }, ); # Bookmark Support if (Padre::Feature::BOOKMARK) { Padre::Wx::Action->new( name => 'search.bookmark_set', label => _T('Set &Bookmark'), comment => _T('Create a bookmark in the current file current row'), shortcut => 'Ctrl-B', menu_event => sub { require Padre::Wx::Dialog::Bookmarks; Padre::Wx::Dialog::Bookmarks->run_set( $_[0] ); }, ); Padre::Wx::Action->new( name => 'search.bookmark_goto', label => _T('Go to Bookmar&k...'), comment => _T('Select a bookmark created earlier and jump to that position'), shortcut => 'Ctrl-Shift-B', menu_event => sub { require Padre::Wx::Dialog::Bookmarks; Padre::Wx::Dialog::Bookmarks->run_goto( $_[0] ); }, ); } # Special Search Types Padre::Wx::Action->new( name => 'search.open_resource', label => _T('Open &Resources...'), comment => _T('Use a filter to select one or more files'), shortcut => 'Ctrl-Alt-R', toolbar => 'places/folder-saved-search', menu_event => sub { $_[0]->open_resource->show; }, ); Padre::Wx::Action->new( name => 'search.quick_menu_access', label => _T('&Quick Menu Access...'), comment => _T('Quick access to all menu functions'), shortcut => 'Ctrl-3', toolbar => 'status/info', menu_event => sub { require Padre::Wx::Dialog::QuickMenuAccess; Padre::Wx::Dialog::QuickMenuAccess->new( $_[0] )->ShowModal; }, ); # Can the user move stuff around Padre::Wx::Action->new( name => 'view.lockinterface', label => _T('Loc&k User Interface'), comment => _T('If activated, do not allow moving around some of the windows'), menu_method => 'AppendCheckItem', menu_event => sub { shift->on_toggle_lockinterface(@_); }, ); # Visible GUI Elements Padre::Wx::Action->new( name => 'view.output', label => _T('Show &Output'), comment => _T('Show the window displaying the standard output and standard error of the running scripts'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_output( $_[0]->menu->view->{output}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.functions', label => _T('Show &Function List'), comment => _T('Show a window listing all the functions in the current document'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_functions( $_[0]->menu->view->{functions}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.command', label => _T('Show &Command Line'), comment => _T('Show the command line window'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_command( $_[0]->menu->view->{command}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.cpan', label => _T('Show CPA&N Explorer'), comment => _T('Turn on CPAN explorer'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_cpan( $_[0]->menu->view->{cpan}->IsChecked ); }, ) if Padre::Feature::CPAN; Padre::Wx::Action->new( name => 'tools.diff_window', label => _T('Show diff window!'), comment => _T('Turn on Diff window'), menu_event => sub { require Padre::Wx::Diff2; Padre::Wx::Diff2->new( $_[0] )->show; }, ) if Padre::Feature::DIFF_WINDOW; Padre::Wx::Action->new( name => 'view.tasks', label => _T('Show &Task List'), comment => _T('Show a window listing all task items in the current document'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_tasks( $_[0]->menu->view->{tasks}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.outline', label => _T('Show &Outline'), comment => _T('Show a window listing all the parts of the current file (functions, pragmas, modules)'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_outline( $_[0]->menu->view->{outline}->IsChecked ); $_[0]->outline->focus_on_search; }, ); Padre::Wx::Action->new( name => 'view.directory', label => _T('Show &Project Browser'), comment => _T('Project Browser - Was known as the Directory Tree'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_directory( $_[0]->menu->view->{directory}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.syntax', label => _T('Show S&yntax Check'), comment => _T('Turn on syntax checking of the current document and show output in a window'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_syntax( $_[0]->menu->view->{syntax}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.vcs', label => _T('Show V&ersion Control'), comment => _T('Turn on version control view of the current project and show version control changes in a window'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_vcs( $_[0]->menu->view->{vcs}->IsChecked ); }, ) if Padre::Feature::VCS; Padre::Wx::Action->new( name => 'view.statusbar', label => _T('Show St&atus Bar'), comment => _T('Show/hide the status bar at the bottom of the screen'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_statusbar( $_[0]->menu->view->{statusbar}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.toolbar', label => _T('Show Tool&bar'), comment => _T('Show/hide the toolbar at the top of the editor'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_toolbar( $_[0]->menu->view->{toolbar}->IsChecked ); }, ); # MIME Type Actions SCOPE: { foreach my $type ( Padre::MIME->types ) { my $label = Padre::MIME->find($type)->name; Padre::Wx::Action->new( name => "view.mime.$type", label => $label, comment => _T('Switch document type'), menu_method => 'AppendRadioItem', menu_event => sub { $_[0]->set_mimetype($type); }, ); } } # Editor Functionality Padre::Wx::Action->new( name => 'view.lines', label => _T('Show Line &Numbers'), comment => _T('Show/hide the line numbers of all the documents on the left side of the window'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->editor_linenumbers( $_[0]->menu->view->{lines}->IsChecked ); }, ); if (Padre::Feature::FOLDING) { Padre::Wx::Action->new( name => 'view.folding', label => _T('Show Code &Folding'), comment => _T('Show/hide a vertical line on the left hand side of the window to allow folding rows'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->editor_folding( $_[0]->menu->view->{folding}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.fold_all', label => _T('&Fold All'), comment => _T('Fold all the blocks that can be folded (need folding to be enabled)'), need_editor => 1, menu_event => sub { $_[0]->current->editor->fold_all; }, ); Padre::Wx::Action->new( name => 'view.unfold_all', label => _T('Un&fold All'), comment => _T('Unfold all the blocks that can be folded (need folding to be enabled)'), need_editor => 1, menu_event => sub { $_[0]->current->editor->unfold_all; }, ); Padre::Wx::Action->new( name => 'view.fold_this', label => _T('&Fold/Unfold Current'), comment => _T('Unfold all the blocks that can be folded (need folding to be enabled)'), need_editor => 1, menu_event => sub { $_[0]->current->editor->fold_this; }, ); } Padre::Wx::Action->new( name => 'view.calltips', label => _T('Show Ca&ll Tips'), comment => _T('When typing in functions allow showing short examples of the function'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->config->set( 'editor_calltips', $_[0]->menu->view->{calltips}->IsChecked ? 1 : 0, ); $_[0]->config->write; }, ); Padre::Wx::Action->new( name => 'view.currentline', label => _T('Show C&urrent Line'), comment => _T('Highlight the line where the cursor is'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->editor_currentline( $_[0]->menu->view->{currentline}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.rightmargin', label => _T('Show Right &Margin'), comment => _T('Show a vertical line indicating the right margin'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->editor_rightmargin( $_[0]->menu->view->{rightmargin}->IsChecked ); }, ); # Editor Whitespace Layout Padre::Wx::Action->new( name => 'view.eol', label => _T('Show Ne&wlines'), comment => _T('Show/hide the newlines with special character'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->editor_eol( $_[0]->menu->view->{eol}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.whitespaces', label => _T('Show &Whitespaces'), comment => _T('Show/hide the tabs and the spaces with special characters'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->editor_whitespace( $_[0]->menu->view->{whitespaces}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.indentation_guide', label => _T('Show &Indentation Guide'), comment => _T('Show/hide vertical bars at every indentation position on the left of the rows'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->editor_indentationguides( $_[0]->menu->view->{indentation_guide}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'view.word_wrap', label => _T('&Word-Wrap File'), comment => _T('Wrap long lines'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->on_word_wrap( $_[0]->menu->view->{word_wrap}->IsChecked ); }, ); # Font Size if (Padre::Feature::FONTSIZE) { Padre::Wx::Action->new( name => 'view.font_increase', label => _T('&Increase Font Size'), comment => _T('Make the letters bigger in the editor window'), shortcut => 'Ctrl-+', menu_event => sub { $_[0]->zoom(+1); }, ); Padre::Wx::Action->new( name => 'view.font_decrease', label => _T('&Decrease Font Size'), comment => _T('Make the letters smaller in the editor window'), shortcut => 'Ctrl--', menu_event => sub { $_[0]->zoom(-1); }, ); Padre::Wx::Action->new( name => 'view.font_reset', label => _T('&Reset Font Size'), comment => _T('Reset the size of the letters to the default in the editor window'), shortcut => 'Ctrl-0', menu_event => sub { my $editor = $_[0]->current->editor or return; $_[0]->zoom( -1 * $editor->GetZoom ); }, ); } init_language_actions; # Window Effects Padre::Wx::Action->new( name => 'view.full_screen', label => _T('Full Sc&reen'), comment => _T('Set Padre in full screen mode'), shortcut => 'F11', menu_method => 'AppendCheckItem', menu_event => sub { if ( $_[0]->IsFullScreen ) { $_[0]->ShowFullScreen(0); } else { $_[0]->ShowFullScreen( 1, Wx::FULLSCREEN_NOCAPTION | Wx::FULLSCREEN_NOBORDER ); } return; }, ); Padre::Wx::Action->new( name => 'view.close_panel', comment => _T('Close the highest priority dialog or panel'), menu_event => sub { my $main = shift; if ( $main->has_findfast and $main->findfast->IsShown ) { $main->findfast->hide; return; } if ( $main->has_output ) { $main->show_output(0); return; } return; }, ); # Perl-Specific Searches Padre::Wx::Action->new( name => 'perl.beginner_check', need_editor => 1, label => _T('&Check for Common (Beginner) Errors'), comment => _T('Check the current file for common beginner errors'), menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; $document->beginner_check; }, ); Padre::Wx::Action->new( name => 'perl.deparse', need_editor => 1, label => _T('&Deparse selection'), comment => _T('Show what perl thinks about your code'), menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; $_[0]->on_deparse; }, ); Padre::Wx::Action->new( name => 'perl.find_brace', need_editor => 1, label => _T('Find Unmatched &Brace'), comment => _T('Searches the source code for brackets with lack a matching (opening/closing) part.'), menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; $document->find_unmatched_brace; }, ); Padre::Wx::Action->new( name => 'perl.find_variable', need_editor => 1, label => _T('Find &Variable Declaration'), comment => _T('Find where the selected variable was declared using "my" and put the focus there.'), menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; $document->find_variable_declaration; }, ); Padre::Wx::Action->new( name => 'perl.find_method', need_editor => 1, label => _T('Find &Method Declaration'), comment => _T('Find where the selected function was defined and put the focus there.'), menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; $document->find_method_declaration; }, ); Padre::Wx::Action->new( name => 'perl.vertically_align_selected', need_editor => 1, shortcut => 'Ctrl-Shift-Space', label => _T('Vertically &Align Selected'), comment => _T('Align a selection of text to the same left column.'), menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; $document->editor->vertically_align; }, ); Padre::Wx::Action->new( name => 'perl.newline_keep_column', need_editor => 1, label => _T('&Newline Same Column'), comment => _T('Like pressing ENTER somewhere on a line, but use the current position as ident for the new line.'), shortcut => 'Ctrl-Enter', menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; $document->newline_keep_column; }, ); Padre::Wx::Action->new( name => 'perl.create_tagsfile', need_editor => 1, label => _T('Create Project &Tagsfile'), comment => _T('Creates a perltags - file for the current project supporting find_method and autocomplete.'), menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; $document->project_create_tagsfile; }, ); # Perl-Specific Refactoring Padre::Wx::Action->new( name => 'perl.rename_variable', need_editor => 1, label => _T('&Rename Variable...'), comment => _T('Prompt for a replacement variable name and replace all occurrences of this variable'), shortcut => 'Shift-Alt-R', menu_event => sub { my $document = $_[0]->current->document or return; $document->can('rename_variable') or return; $document->rename_variable; }, ); Padre::Wx::Action->new( name => 'perl.variable_to_camel_case', need_editor => 1, label => _T('Change variable to &camelCase'), comment => _T('Change variable style from camel_case to camelCase'), #shortcut => 'Shift-Alt-R', menu_event => sub { my $document = $_[0]->current->document or return; $document->can('change_variable_style') or return; $document->change_variable_style( to_camel_case => 1 ); }, ); Padre::Wx::Action->new( name => 'perl.variable_to_camel_case_ucfirst', need_editor => 1, label => _T('Change variable to C&amelCase'), comment => _T('Change variable style from camel_case to CamelCase'), #shortcut => 'Shift-Alt-R', menu_event => sub { my $document = $_[0]->current->document or return; $document->can('change_variable_style') or return; $document->change_variable_style( to_camel_case => 1, 'ucfirst' => 1 ); }, ); Padre::Wx::Action->new( name => 'perl.variable_from_camel_case', need_editor => 1, label => _T('Change variable to &using_underscores'), comment => _T('Change variable style from camelCase to camel_case'), #shortcut => 'Shift-Alt-R', menu_event => sub { my $document = $_[0]->current->document or return; $document->can('change_variable_style') or return; $document->change_variable_style( from_camel_case => 1 ); }, ); Padre::Wx::Action->new( name => 'perl.variable_from_camel_case_ucfirst', need_editor => 1, label => _T('Change variable to U&sing_Underscores'), comment => _T('Change variable style from camelCase to Camel_Case'), #shortcut => 'Shift-Alt-R', menu_event => sub { my $document = $_[0]->current->document or return; $document->can('change_variable_style') or return; $document->change_variable_style( from_camel_case => 1, 'ucfirst' => 1 ); }, ); Padre::Wx::Action->new( name => 'perl.extract_subroutine', need_editor => 1, label => _T('Extract &Subroutine...'), comment => _T( 'Cut the current selection and create a new sub from it. ' . 'A call to this sub is added in the place where the selection was.' ), shortcut => 'Shift-Alt-M', menu_event => sub { my $document = $_[0]->current->document or return; $document->can('extract_subroutine') or return; require Padre::Wx::TextEntryDialog::History; my $dialog = Padre::Wx::TextEntryDialog::History->new( $_[0], Wx::gettext('Name for the new subroutine'), Wx::gettext('Extract Subroutine'), '$foo', ); return if $dialog->ShowModal == Wx::ID_CANCEL; my $newname = $dialog->GetValue; $dialog->Destroy; return unless defined $newname; $document->extract_subroutine($newname); }, ); Padre::Wx::Action->new( name => 'perl.introduce_temporary', need_editor => 1, label => _T('Introduce &Temporary Variable...'), comment => _T('Assign the selected expression to a newly declared variable'), menu_event => sub { my $document = $_[0]->current->document or return; $document->can('introduce_temporary_variable') or return; require Padre::Wx::TextEntryDialog::History; my $dialog = Padre::Wx::TextEntryDialog::History->new( $_[0], Wx::gettext('Variable Name'), Wx::gettext('Introduce Temporary Variable'), '$tmp', ); return if $dialog->ShowModal == Wx::ID_CANCEL; my $replacement = $dialog->GetValue; $dialog->Destroy; return unless defined $replacement; $document->introduce_temporary_variable($replacement); }, ); Padre::Wx::Action->new( name => 'perl.endify_pod', need_editor => 1, label => _T('&Move POD to __END__'), comment => _T('Combine scattered POD at the end of the document'), menu_event => sub { my $document = $_[0]->current->document or return; $document->isa('Padre::Document::Perl') or return; require Padre::PPI::EndifyPod; Padre::PPI::EndifyPod->new->apply($document); }, ); # Script Execution Padre::Wx::Action->new( name => 'run.run_document', need_editor => 1, need_runable => 1, label => _T('&Run Script'), comment => _T('Runs the current document and shows its output in the output panel.'), shortcut => 'F5', need_file => 1, toolbar => 'actions/player_play', menu_event => sub { $_[0]->run_document; $_[0]->refresh_toolbar( $_[0]->current ); }, ); Padre::Wx::Action->new( name => 'run.run_document_debug', need_editor => 1, need_runable => 1, need_file => 1, label => _T('Run Script (&Debug Info)'), comment => _T( 'Run the current document but include ' . 'debug info in the output.' ), shortcut => 'Shift-F5', menu_event => sub { # Enable debug info $_[0]->run_document(1); }, ); Padre::Wx::Action->new( name => 'run.run_command', label => _T('Run &Command'), comment => _T('Runs a shell command and shows the output.'), shortcut => 'Ctrl-F5', menu_event => sub { $_[0]->on_run_command; }, ); Padre::Wx::Action->new( name => 'run.run_tdd_tests', need_file => 1, need_editor => 1, label => _T('Run &Build and Tests'), comment => _T('Builds the current project, then run all tests.'), shortcut => 'Ctrl-Shift-F5', menu_event => sub { $_[0]->on_run_tdd_tests; }, ); Padre::Wx::Action->new( name => 'run.run_tests', need_editor => 1, need_file => 1, label => _T('Run &Tests'), comment => _T( 'Run all tests for the current project or document and show the results in ' . 'the output panel.' ), need_editor => 1, menu_event => sub { $_[0]->on_run_tests; }, ); Padre::Wx::Action->new( name => 'run.run_this_test', need_editor => 1, need_runable => 1, need_file => 1, need => sub { my $current = shift; my $filename = $current->filename or return 0; return $filename =~ /\.t$/; }, label => _T('Run T&his Test'), comment => _T('Run the current test if the current document is a test. (prove -lv)'), menu_event => sub { $_[0]->on_run_this_test; }, ); Padre::Wx::Action->new( name => 'run.stop', need => sub { $_[0]->main->{command}; }, label => _T('&Stop Execution'), comment => _T('Stop a running task.'), shortcut => 'F6', toolbar => 'actions/stop', menu_event => sub { if ( $_[0]->{command} ) { if (Padre::Constant::WIN32) { $_[0]->{command}->KillProcess; } else { $_[0]->{command}->TerminateProcess; } } delete $_[0]->{command}; $_[0]->refresh_toolbar( $_[0]->current ); return; }, ); # Debugging if (Padre::Feature::DEBUGGER) { Padre::Wx::Action->new( name => 'debug.breakpoints', need => sub { eval { Padre::Current->document->filename }; if ($@) { return 0; } if ( !defined( Padre::Current->document->filename ) ) { return 0; } if ( Padre::Current->document->mimetype =~ m/perl/ ) { return 1; } else { return 0; } }, label => _T('Show Debug Breakpoints'), comment => _T('Turn on debug breakpoints panel'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_breakpoints( $_[0]->menu->debug->{breakpoints}->IsChecked ); if ( $_[0]->{breakpoints} ) { $_[0]->{breakpoints}->on_refresh_click(); } }, ); Padre::Wx::Action->new( name => 'debug.debugoutput', label => _T('Show Debug Output'), comment => _T('We should not need this menu item'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_debugoutput( $_[0]->menu->debug->{debugoutput}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'debug.debugger', label => _T('Show Debugger'), comment => _T('We should not need this menu item'), menu_method => 'AppendCheckItem', menu_event => sub { $_[0]->show_debugger( $_[0]->menu->debug->{debugger}->IsChecked ); }, ); Padre::Wx::Action->new( name => 'debug.launch', need => sub { eval { Padre::Current->document->filename }; if ($@) { return 0; } if ( !defined( Padre::Current->document->filename ) ) { return 0; } if ( Padre::Current->document->mimetype =~ m/perl/ ) { return 1; } else { return 0; } }, toolbar => 'actions/morpho3', label => _T('&Launch Debugger'), comment => _T('Launch Debugger'), #shortcut => 'Shift-F5', menu_event => sub { $_[0]->show_breakpoints(1); if ( $_[0]->{breakpoints} ) { $_[0]->{breakpoints}->on_refresh_click(); } $_[0]->show_debugger(1); $_[0]->{debugger}->on_debug_clicked(); }, ); Padre::Wx::Action->new( name => 'debug.launch_options', need => sub { $main->{debugger}; }, #toolbar => 'actions/breakpoints', label => _T('Debug Launch Options'), comment => _T('Launch debugger with options'), menu_event => sub { #TODO: need to hide the breakpoints and debugger panels if thats what the user started with - don't make a mess of my tiny screen - you have missed the point think eclipse $_[0]->show_breakpoints(1); if ( $_[0]->{breakpoints} ) { $_[0]->{breakpoints}->on_refresh_click(); } $_[0]->show_debugger(1); if ( $_[0]->{debugger} ) { $_[0]->{debugger}->on_launch_options(); } }, ); Padre::Wx::Action->new( name => 'debug.set_breakpoint', need => sub { eval { Padre::Current->document->filename }; if ($@) { return 0; } if ( !defined( Padre::Current->document->filename ) ) { return 0; } if ( Padre::Current->document->mimetype =~ m/perl/ ) { return 1; } else { return 0; } }, toolbar => 'actions/breakpoints', label => _T('Set Breakpoint (&b)'), comment => _T('Set a breakpoint to the current location of the cursor with a condition'), menu_event => sub { Padre::Breakpoints->set_breakpoints_clicked(); return; }, ); Padre::Wx::Action->new( name => 'debug.quit', need => sub { $main->{debugger}; }, toolbar => 'actions/red_cross', label => _T('Quit Debugger (&q)'), comment => _T('Quit the process being debugged'), menu_event => sub { if ( $_[0]->{debugger} ) { $_[0]->{debugger}->on_quit_debugger_clicked; } }, ); # Add our interesting and helpful wiki Padre::Wx::Action->new( name => 'debug.visit_debug_wiki', label => _T('Visit Debug &Wiki...'), comment => _T('Open interesting and helpful Padre Wiki in your default web browser'), menu_event => sub { Padre::Wx::launch_browser('http://padre.perlide.org/trac/wiki/Features/Perl5Debugger'); }, ); } # Tools and Preferences Padre::Wx::Action->new( name => 'tools.preferences', label => _T('&Preferences'), comment => _T('Edit user and host preferences'), menu_event => sub { require Padre::Wx::Dialog::Preferences; Padre::Wx::Dialog::Preferences->run( $_[0] ); }, ); if (Padre::Feature::SYNC) { Padre::Wx::Action->new( name => 'tools.sync', label => _T('Preferences &Sync...'), comment => _T('Share your preferences between multiple computers'), menu_event => sub { require Padre::Wx::Dialog::Sync; Padre::Wx::Dialog::Sync->run( $_[0] ); }, ); } Padre::Wx::Action->new( name => 'tools.regex', label => _T('&Regex Editor'), comment => _T('Open the regular expression editing window'), menu_event => sub { shift->show_regex_editor(@_); }, ); Padre::Wx::Action->new( name => 'perl.edit_with_regex_editor', need_editor => 1, label => _T('&Edit with Regex Editor...'), comment => _T('Open the selected text in the Regex Editor'), menu_event => sub { my $document = Padre::Current->document or return; return unless Params::Util::_INSTANCE( $document, 'Padre::Document::Perl' ); Padre::Current->main->show_regex_editor; }, ); # Link to the Plugin Manager Padre::Wx::Action->new( name => 'plugins.plugin_manager', label => _T('&Plug-in Manager'), comment => _T('Show the Padre plug-in manager to enable or disable plug-ins'), menu_event => sub { require Padre::Wx::Dialog::PluginManager; Padre::Wx::Dialog::PluginManager->run( $_[0] ); }, ); # TO DO: should be replaced by a link to http://cpan.uwinnipeg.ca/chapter/World_Wide_Web_HTML_HTTP_CGI/Padre # better yet, by a window that also allows the installation of all the plug-ins that can take into account # the type of installation we have (ppm, stand alone, rpm, deb, CPAN, etc.) Padre::Wx::Action->new( name => 'plugins.plugin_list', label => _T('Plug-in &List (CPAN)'), comment => _T('Open browser to a CPAN search showing the Padre::Plugin packages'), menu_event => sub { Padre::Wx::launch_browser('http://cpan.uwinnipeg.ca/search?query=Padre%3A%3APlugin%3A%3A&mode=dist'); }, ); Padre::Wx::Action->new( name => 'plugins.edit_my_plugin', label => _T('&Edit My Plug-in'), comment => _T('My Plug-in is a plug-in where developers could extend their Padre installation'), menu_event => sub { my $file = File::Spec->catfile( Padre::Constant::CONFIG_DIR, qw{ plugins Padre Plugin My.pm } ); return $_[0]->error( Wx::gettext("Could not find the Padre::Plugin::My plug-in") ) unless -e $file; # Use the plural so we get the "close single unused document" # behaviour, and so we get a free freezing and refresh calls. $_[0]->setup_editors($file); }, ); Padre::Wx::Action->new( name => 'plugins.reload_my_plugin', label => _T('&Reload My Plug-in'), comment => _T('This function reloads the My plug-in without restarting Padre'), menu_event => sub { $_[0]->ide->plugin_manager->reload_plugin('Padre::Plugin::My'); }, ); Padre::Wx::Action->new( name => 'plugins.reset_my_plugin', label => _T('Re&set My plug-in'), comment => _T('Reset the My plug-in to the default'), menu_event => sub { my $ret = Wx::MessageBox( Wx::gettext( "Warning! This will delete all the changes you made to 'My plug-in' and replace it with the default code that comes with your installation of Padre" ), Wx::gettext("Reset My plug-in"), Wx::OK | Wx::CANCEL | Wx::CENTRE, $main, ); if ( $ret == Wx::OK ) { my $manager = $_[0]->ide->plugin_manager; $manager->unload_plugin('Padre::Plugin::My'); $manager->reset_my_plugin(1); $manager->load_plugin('Padre::Plugin::My'); } }, ); Padre::Wx::Action->new( name => 'plugins.reload_all_plugins', label => _T('Re&load All Plug-ins'), comment => _T('Reload all plug-ins from &disk'), menu_event => sub { $_[0]->ide->plugin_manager->reload_plugins; }, ); Padre::Wx::Action->new( name => 'plugins.reload_current_plugin', label => _T('(Re)load &Current Plug-in'), comment => _T('Reloads (or initially loads) the current plug-in'), menu_event => sub { $_[0]->ide->plugin_manager->reload_current_plugin; }, ); Padre::Wx::Action->new( name => 'plugins.install_local', label => _T("Install L&ocal Distribution"), comment => _T('Using CPAN.pm to install a CPAN like package opened locally'), menu_event => sub { require Padre::CPAN; Padre::CPAN->install_file( $_[0] ); }, ); Padre::Wx::Action->new( name => 'plugins.install_remote', label => _T("Install &Remote Distribution"), comment => _T('Using pip to download a tar.gz file and install it using CPAN.pm'), menu_event => sub { require Padre::CPAN; Padre::CPAN->install_url( $_[0] ); }, ); Padre::Wx::Action->new( name => 'plugins.cpan_config', label => _T("Open &CPAN Config File"), comment => _T('Open CPAN::MyConfig.pm for manual editing by experts'), menu_event => sub { require Padre::CPAN; Padre::CPAN->cpan_config( $_[0] ); }, ); # File Navigation Padre::Wx::Action->new( name => 'window.next_file', label => _T('&Next File'), comment => _T('Put focus on the next tab to the right'), shortcut => 'Ctrl-PageDown', need_editor => 1, menu_event => sub { shift->on_next_pane(@_); }, ); Padre::Wx::Action->new( name => 'window.previous_file', label => _T('&Previous File'), comment => _T('Put focus on the previous tab to the left'), shortcut => 'Ctrl-PageUp', need_editor => 1, menu_event => sub { shift->on_prev_pane(@_); }, ); Padre::Wx::Action->new( name => 'window.right_click', label => _T('&Context Menu'), comment => _T('Simulate a right mouse button click to open the context menu'), shortcut => 'Alt-/', need_editor => 1, menu_event => sub { my $editor = $_[0]->current->editor or return; $editor->on_context_menu( $_[1] ); }, ); # Various Window navigation shortcuts Padre::Wx::Action->new( name => 'window.goto_cpan_window', label => _T('Go to CPAN E&xplorer Window'), comment => _T('Set the focus to the "CPAN Explorer" window'), shortcut => 'Alt-X', menu_event => sub { $_[0]->show_cpan(1); $_[0]->cpan->focus_on_search; }, ) if Padre::Feature::CPAN; Padre::Wx::Action->new( name => 'window.goto_functions_window', label => _T('Go to &Functions Window'), comment => _T('Set the focus to the "Functions" window'), shortcut => 'Alt-N', menu_event => sub { $_[0]->refresh_functions( $_[0]->current ); $_[0]->show_functions(1); $_[0]->functions->focus_on_search; }, ); Padre::Wx::Action->new( name => 'window.goto_outline_window', label => _T('Go to O&utline Window'), comment => _T('Set the focus to the "Outline" window'), shortcut => 'Alt-L', menu_event => sub { $_[0]->show_outline(1); $_[0]->outline->focus_on_search; }, ); Padre::Wx::Action->new( name => 'window.goto_output_window', label => _T('Go to Ou&tput Window'), comment => _T('Set the focus to the "Output" window'), shortcut => 'Alt-O', menu_event => sub { $_[0]->show_output(1); $_[0]->output->SetFocus; }, ); Padre::Wx::Action->new( name => 'window.goto_syntax_check_window', label => _T('Go to S&yntax Check Window'), comment => _T('Set the focus to the "Syntax Check" window'), shortcut => 'Alt-C', menu_event => sub { $_[0]->show_syntax(1); $_[0]->syntax->SetFocus; }, ); Padre::Wx::Action->new( name => 'window.goto_command_window', label => _T('Go to &Command Line Window'), comment => _T('Set the focus to the "Command Line" window'), shortcut => 'Alt-Z', menu_event => sub { $_[0]->show_command(1); $_[0]->command->SetFocus; }, ); Padre::Wx::Action->new( name => 'window.goto_main_window', label => _T('Go to &Main Window'), comment => _T('Set the focus to the main editor window'), shortcut => 'Alt-M', menu_event => sub { $_[0]->editor_focus; }, ); # Add the POD-based help launchers Padre::Wx::Action->new( name => 'help.help', id => Wx::ID_HELP, label => _T('&Help'), comment => _T('Show the Padre help'), menu_event => sub { $_[0]->help('Padre'); }, ); Padre::Wx::Action->new( name => 'help.context_help', label => _T('&Search Help'), comment => _T('Search the Perl help pages (perldoc)'), shortcut => 'F1', menu_event => sub { # Show help for selected text $_[0]->help( $_[0]->current->text ); }, ); Padre::Wx::Action->new( name => 'help.search', label => _T('&Context Help'), comment => _T('Show the help article for the current context'), shortcut => 'F2', menu_event => sub { # Show Help Search with no topic... $_[0]->help_search; }, ); Padre::Wx::Action->new( name => 'help.current', need_editor => 1, label => _T('C&urrent Document'), comment => _T('Show the POD (Perldoc) version of the current document'), menu_event => sub { $_[0]->help( $_[0]->current->document ); }, ); # Live Support Padre::Wx::Action->new( name => 'help.live_support', label => _T('&Padre Support (English)'), comment => _T( 'Open the Padre live support chat in your web browser ' . 'and talk to others who may help you with your problem' ), menu_event => sub { Padre::Wx::launch_irc('padre'); }, ); Padre::Wx::Action->new( name => 'help.perl_en', label => _T('P&erl Help (English)'), comment => _T( 'Open the Perl live support chat in your web browser ' . 'and talk to others who may help you with your problem' ), menu_event => sub { Padre::Wx::launch_irc('general'); }, ); Padre::Wx::Action->new( name => 'help.perl_jp', label => _T('Perl Help (Japanese)'), comment => _T( 'Open the Perl live support chat in your web browser ' . 'and talk to others who may help you with your problem' ), menu_event => sub { Padre::Wx::launch_irc('locale_jp'); }, ); Padre::Wx::Action->new( name => 'help.win32_questions', label => _T('&Win32 Questions (English)'), comment => _T( 'Open the Perl/Win32 live support chat in your web browser ' . 'and talk to others who may help you with your problem' ), menu_event => sub { Padre::Wx::launch_irc('win32'); }, ); # Add interesting and helpful websites Padre::Wx::Action->new( name => 'help.visit_perl_websites', label => _T('Visit Perl Websites...'), comment => _T('Open interesting and helpful Perl websites in your default web browser'), menu_event => sub { Padre::Wx::launch_browser( 'http://padre.perlide.org/perl.html?padre=' . $VERSION ); }, ); # Add Padre website tools Padre::Wx::Action->new( name => 'help.report_a_bug', label => _T('Report a New &Bug'), comment => _T('Send a bug report to the Padre developer team'), menu_event => sub { Padre::Wx::launch_browser('http://padre.perlide.org/trac/wiki/Tickets'); }, ); Padre::Wx::Action->new( name => 'help.view_all_open_bugs', label => _T('View All &Open Bugs'), comment => _T('View all known and currently unsolved bugs in Padre'), menu_event => sub { Padre::Wx::launch_browser('http://padre.perlide.org/trac/report/1'); }, ); Padre::Wx::Action->new( name => 'help.translate_padre', label => _T('&Translate Padre...'), comment => _T('Help by translating Padre to your local language'), menu_event => sub { Padre::Wx::launch_browser('http://padre.perlide.org/trac/wiki/TranslationIntro'); }, ); # Add the About Padre::Wx::Action->new( name => 'help.about', label => _T('&About'), comment => _T('Show information about Padre'), menu_event => sub { require Padre::Wx::Dialog::About; Padre::Wx::Dialog::About->run( $_[0] ); }, ); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/CPAN.pm���������������������������������������������������������������������0000644�0001750�0001750�00000043065�12237327555�014442� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::CPAN; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Role::Task (); use Padre::Wx (); use Padre::Wx::Util (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Timer (); use Padre::Wx::FBP::CPAN (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::View Padre::Wx::Role::Timer Padre::Wx::FBP::CPAN }; # Constants use constant { YELLOW_POD => Wx::Colour->new( 253, 252, 187 ), }; # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->right; my $self = $class->SUPER::new($panel); # Set up column sorting $self->{search_sort_column} = undef; $self->{search_sort_desc} = 0; $self->{recent_sort_column} = undef; $self->{recent_sort_desc} = 0; $self->{favorite_sort_column} = undef; $self->{favorite_sort_desc} = 0; $self->_setup_columns; # Column ascending/descending image $self->_setup_column_images; # Handle char events in search box #TODO move to FBP superclass once EVT_CHAR is properly supported Wx::Event::EVT_CHAR( $self->{search}, sub { $self->_on_char_search(@_); } ); #TODO move to FBP superclass once EVT_CHAR is properly supported Wx::Event::EVT_CHAR( $self->{search_list}, sub { $self->_on_char_list(@_); } ); #TODO move to FBP superclass once EVT_CHAR is properly supported Wx::Event::EVT_CHAR( $self->{recent_list}, sub { $self->_on_char_list(@_); } ); #TODO move to FBP superclass once EVT_CHAR is properly supported Wx::Event::EVT_CHAR( $self->{favorite_list}, sub { $self->_on_char_list(@_); } ); # Tidy the list Padre::Wx::Util::tidy_list( $self->{search_list} ); Padre::Wx::Util::tidy_list( $self->{recent_list} ); Padre::Wx::Util::tidy_list( $self->{favorite_list} ); return $self; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'right'; } sub view_label { Wx::gettext('CPAN Explorer'); } sub view_close { $_[0]->main->show_cpan(0); } sub view_icon { Padre::Wx::Icon::find('actions/metared'); } sub view_start { my $self = shift; $self->{synopsis}->Hide; $self->{metacpan}->Hide; $self->{install}->Hide; } sub view_stop { my $self = shift; # Clear, reset running task and stop dwells $self->clear('search'); $self->clear('recent'); $self->clear('favorite'); $self->task_reset; $self->dwell_stop('refresh'); # Just in case return; } ##################################################################### # General Methods sub _setup_column_images { my $self = shift; # Create bitmaps my $up_arrow_bitmap = Wx::ArtProvider::GetBitmap( 'wxART_GO_UP', 'wxART_OTHER_C', [ 16, 16 ], ); my $down_arrow_bitmap = Wx::ArtProvider::GetBitmap( 'wxART_GO_DOWN', 'wxART_OTHER_C', [ 16, 16 ], ); my $file_bitmap = Wx::ArtProvider::GetBitmap( 'wxART_NORMAL_FILE', 'wxART_OTHER_C', [ 16, 16 ], ); # Search list column bitmaps $self->{images} = $self->_setup_image_list( list => $self->{search_list}, up => $up_arrow_bitmap, down => $down_arrow_bitmap, file => $file_bitmap, ); # Recent list column bitmaps $self->{recent_images} = $self->_setup_image_list( list => $self->{recent_list}, up => $up_arrow_bitmap, down => $down_arrow_bitmap, file => $file_bitmap, ); # Favorite list column bitmaps $self->{favorite_images} = $self->_setup_image_list( list => $self->{favorite_list}, up => $up_arrow_bitmap, down => $down_arrow_bitmap, file => $file_bitmap, ); return; } sub _setup_image_list { my ( $self, %args ) = @_; my $images = Wx::ImageList->new( 16, 16 ); my $result = { asc => $images->Add( $args{up} ), desc => $images->Add( $args{down} ), file => $images->Add( $args{file} ), }; $args{list}->AssignImageList( $images, Wx::IMAGE_LIST_SMALL ); return $result; } # Setup columns sub _setup_columns { my $self = shift; my $list = $self->{search_list}; my $index; my @column_headers; @column_headers = ( Wx::gettext('Distribution'), Wx::gettext('Author'), ); $index = 0; for my $column_header (@column_headers) { $self->{search_list}->InsertColumn( $index++, $column_header ); } @column_headers = ( Wx::gettext('Distribution'), Wx::gettext('Abstract'), ); $index = 0; for my $column_header (@column_headers) { $self->{recent_list}->InsertColumn( $index++, $column_header ); } @column_headers = ( Wx::gettext('Distribution'), Wx::gettext('Count'), ); $index = 0; for my $column_header (@column_headers) { $self->{favorite_list}->InsertColumn( $index++, $column_header ); } return; } # Sets the focus on the search field sub focus_on_search { $_[0]->{search}->SetFocus; } # Clear everything... sub clear { my ( $self, $command ) = @_; if ( $command eq 'recent' ) { $self->{recent_list}->DeleteAllItems; } elsif ( $command eq 'search' ) { $self->{search_list}->DeleteAllItems; } elsif ( $command eq 'favorite' ) { $self->{favorite_list}->DeleteAllItems; } else { die "Unhandled $command in ->clear"; } return; } # Nothing to implement here sub relocale { return; } sub refresh { my $self = shift; my $command = shift || 'search'; my $query = shift || lc( $self->{search}->GetValue ); # Abort any in-flight checks $self->task_reset; # Start a background CPAN command task $self->task_request( task => 'Padre::Task::CPAN', command => $command, query => $query, ); return 1; } sub task_finish { my $self = shift; my $task = shift; my $command = $task->{command}; if ( $command eq 'search' ) { $self->{search_model} = Params::Util::_ARRAY0( $task->{model} ) or return; $self->render_search; } elsif ( $command eq 'pod' ) { $self->{pod_model} = Params::Util::_HASH( $task->{model} ) or return; $self->render_doc; } elsif ( $command eq 'recent' ) { $self->{recent_model} = Params::Util::_ARRAY0( $task->{model} ) or return; $self->render_recent; } elsif ( $command eq 'favorite' ) { $self->{favorite_model} = Params::Util::_ARRAY0( $task->{model} ) or return; $self->render_favorite; } else { die "Cannot handle $command\n"; } } sub render_search { my $self = shift; # Clear if needed. Please note that this is needed # for sorting $self->clear('search'); return unless $self->{search_model}; my $list = $self->{search_list}; my $sort_column = $self->{search_sort_column}; if ( defined $sort_column ) { # Update the list sort image $self->set_icon_image( $list, $sort_column, $self->{search_sort_desc} ); # and sort the model $self->_sort_model('search'); } my $model = $self->{search_model}; my $alternate_color = $self->_alternate_color; my $index = 0; for my $rec (@$model) { # Add a CPAN distribution and author as a row to the list $list->InsertImageStringItem( $index, $rec->{documentation}, $self->{images}{file} ); $list->SetItemData( $index, $index ); $list->SetItem( $index, 1, $rec->{author} ); $list->SetItemBackgroundColour( $index, $alternate_color ) unless $index % 2; $index++; } $self->_update_ui( $list, scalar @$model > 0 ); return 1; } # Show & Tidy or hide the list sub _update_ui { my ( $self, $list, $shown ) = @_; if ($shown) { if ( $list == $self->{recent_list} ) { $list->SetColumnWidth( 0, 140 ); $list->SetColumnWidth( 1, Wx::LIST_AUTOSIZE ); } elsif ( $list == $self->{favorite_list} ) { $list->SetColumnWidth( 0, 140 ); $list->SetColumnWidth( 1, 50 ); } else { Padre::Wx::Util::tidy_list($list); } $list->Show; $self->Layout; } else { $self->{synopsis}->Hide; $self->{metacpan}->Hide; $self->{install}->Hide; $list->Hide; $self->Layout; } return; } sub _sort_model { my ( $self, $command ) = @_; my @model; my ( $sort_column, $sort_desc ); if ( $command eq 'search' ) { @model = @{ $self->{search_model} }; $sort_column = $self->{search_sort_column}; $sort_desc = $self->{search_sort_desc}; } elsif ( $command eq 'recent' ) { @model = @{ $self->{recent_model} }; $sort_column = $self->{recent_sort_column}; $sort_desc = $self->{recent_sort_desc}; } elsif ( $command eq 'favorite' ) { @model = @{ $self->{favorite_model} }; $sort_column = $self->{favorite_sort_column}; $sort_desc = $self->{favorite_sort_desc}; } else { die "Handled $command in ->sort_model\n"; } if ( $sort_column == 0 ) { # Sort by distribution, name or term @model = sort { if ( $command eq 'search' ) { $a->{documentation} cmp $b->{documentation}; } elsif ( $command eq 'recent' ) { $a->{name} cmp $b->{name}; } elsif ( $command eq 'favorite' ) { $a->{term} cmp $b->{term}; } } @model; } elsif ( $sort_column == 1 ) { # Sort by abstract or author @model = sort { if ( $command eq 'search' ) { $a->{author} cmp $b->{author}; } elsif ( $command eq 'recent' ) { $a->{abstract} cmp $b->{abstract}; } elsif ( $command eq 'favorite' ) { $a->{count} cmp $b->{count}; } } @model; } elsif ( $sort_column == 2 ) { # Sort by date @model = sort { $a->{date} cmp $b->{date} } @model; } else { TRACE( "sort_column: " . $sort_column . " is not implemented" ) if DEBUG; } # Reverse the model if descending order is needed @model = reverse @model if $sort_desc; if ( $command eq 'search' ) { $self->{search_model} = \@model; } elsif ( $command eq 'recent' ) { $self->{recent_model} = \@model; } elsif ( $command eq 'favorite' ) { $self->{favorite_model} = \@model; } return; } ##################################################################### # Event Handlers # Called when a CPAN search list column is clicked sub on_search_list_column_click { my ( $self, $event ) = @_; my $column = $event->GetColumn; my $prevcol = $self->{search_sort_column} || 0; my $reversed = $self->{search_sort_desc}; $reversed = $column == $prevcol ? !$reversed : 0; $self->{search_sort_column} = $column; $self->{search_sort_desc} = $reversed; # Reset the previous column sort image $self->set_icon_image( $self->{search_list}, $prevcol, -1 ); $self->render_search; return; } # Called when a recent CPAN list column is clicked sub on_recent_list_column_click { my ( $self, $event ) = @_; my $column = $event->GetColumn; my $prevcol = $self->{recent_sort_column} || 0; my $reversed = $self->{recent_sort_desc}; $reversed = $column == $prevcol ? !$reversed : 0; $self->{recent_sort_column} = $column; $self->{recent_sort_desc} = $reversed; # Reset the previous column sort image $self->set_icon_image( $self->{recent_list}, $prevcol, -1 ); $self->render_recent; return; } sub set_icon_image { my ( $self, $list, $column, $image_index ) = @_; my $item = Wx::ListItem->new; $item->SetMask(Wx::LIST_MASK_IMAGE); $item->SetImage($image_index); $list->SetColumn( $column, $item ); return; } # Called when a CPAN Search list item is selected sub on_list_item_selected { my ( $self, $event ) = @_; my $list = $event->GetEventObject; my ( $download_url, $module ); if ( $list == $self->{recent_list} ) { my @model = @{ $self->{recent_model} }; my $item = $model[ $event->GetIndex ]; $download_url = $item->{download_url}; $module = $item->{distribution}; $module =~ s/-/::/g; } else { $module = $event->GetLabel; } my $doc = $self->{doc}; $doc->SetPage( sprintf( Wx::gettext(q{<b>Loading %s...</b>}), $module ) ); $doc->SetBackgroundColour(YELLOW_POD); $self->refresh( 'pod', { module => $module, download_url => $download_url, }, ); } # Renders the documentation/SYNOPSIS section sub render_doc { my $self = shift; my $model = $self->{pod_model} or return; my ( $pod_html, $synopsis, $distro, $download_url ) = ( $model->{html}, $model->{synopsis}, $model->{distro}, $model->{download_url}, ); $self->{doc}->SetPage($pod_html); $self->{doc}->SetBackgroundColour(YELLOW_POD); if ( length $synopsis > 0 ) { $self->{synopsis}->Show; } else { $self->{synopsis}->Hide; } $self->{metacpan}->Show; $self->{install}->Show; $self->Layout; $self->{SYNOPSIS} = $synopsis; $self->{distro} = $distro; $self->{download_url} = $download_url; return; } # Called when the synopsis is clicked sub on_synopsis_click { my ( $self, $event ) = @_; return unless $self->{SYNOPSIS}; # Open a new Perl document containing the SYNOPSIS text $self->main->new_document_from_string( $self->{SYNOPSIS}, 'application/x-perl' ); return; } # Called when search text control is changed sub on_search_text { $_[0]->main->cpan->dwell_start( 'refresh', 333 ); } # Called when the install button is clicked sub on_install_click { my $self = shift; # Install selected distribution using App::cpanminus my $distro = $self->{distro} or return; my $download_url = $self->{download_url}; require File::Which; my $cpanm = File::Which::which('cpanm'); $cpanm = qq{"cpanm"} if Padre::Constant::WIN32; if ( defined $download_url ) { $self->main->run_command("$cpanm $download_url"); } else { $self->main->run_command("$cpanm $distro"); } return; } # Called when the Refresh recent button is clicked sub on_refresh_recent_click { $_[0]->refresh('recent'); return; } # Renders the recent CPAN list sub render_recent { my $self = shift; # Clear if needed. Please note that this is needed # for sorting $self->clear('recent'); return unless $self->{recent_model}; my $list = $self->{recent_list}; my $sort_column = $self->{recent_sort_column}; if ( defined $sort_column ) { # Update the list sort image $self->set_icon_image( $list, $sort_column, $self->{recent_sort_desc} ); # and sort the model $self->_sort_model('recent'); } my $model = $self->{recent_model}; my $alternate_color = $self->_alternate_color; my $index = 0; for my $rec (@$model) { # Add a CPAN distribution and abstract as a row to the list my $name = $rec->{name}; $list->InsertImageStringItem( $index, $name, $self->{recent_images}{file} ); $list->SetItemData( $index, $index ); $list->SetItem( $index, 1, $rec->{abstract} ) if defined $rec->{abstract}; $list->SetItemBackgroundColour( $index, $alternate_color ) unless $index % 2; $index++; } $self->_update_ui( $list, scalar @$model > 0 ); return; } sub _alternate_color { my $self = shift; # Calculate odd/even row colors (for readability) my $real_color = Wx::SystemSettings::GetColour(Wx::SYS_COLOUR_WINDOW); return Wx::Colour->new( int( $real_color->Red * 0.9 ), int( $real_color->Green * 0.9 ), $real_color->Blue, ); } sub _on_char_search { my ( $self, $this, $event ) = @_; my $code = $event->GetKeyCode; if ( $code == Wx::K_DOWN || $code == Wx::K_UP || $code == Wx::K_RETURN ) { # Up/Down and return keys focus on the list my $list = $self->{search_list}; $list->SetFocus; my $selection = -1; $selection = $list->GetNextItem( $selection, Wx::LIST_NEXT_ALL, Wx::LIST_STATE_SELECTED ); if ( $selection == -1 && $self->{search_list}->GetItemCount > 0 ) { $selection = 0; } $list->SetItemState( $selection, Wx::LIST_STATE_SELECTED, Wx::LIST_STATE_SELECTED ) if $selection != -1; } elsif ( $code == Wx::K_ESCAPE ) { # Escape key clears search and returns focus # to the editor $self->{search}->SetValue(''); $self->main->editor_focus; } $event->Skip(1); return; } sub _on_char_list { my ( $self, $this, $event ) = @_; my $code = $event->GetKeyCode; if ( $code == Wx::K_ESCAPE ) { # Escape key clears search and returns focus # to the editor $self->{search}->SetValue(''); $self->main->editor_focus; } $event->Skip(1); return; } # Called when the Refresh favorite button is clicked sub on_refresh_favorite_click { $_[0]->refresh('favorite'); return; } # Renders the most favorite CPAN list sub render_favorite { my $self = shift; # Clear if needed. Please note that this is needed # for sorting $self->clear('favorite'); return unless $self->{favorite_model}; my $list = $self->{favorite_list}; my $sort_column = $self->{favorite_sort_column}; if ( defined $sort_column ) { # Update the list sort image $self->set_icon_image( $list, $sort_column, $self->{favorite_sort_desc} ); # and sort the model $self->_sort_model('favorite'); } my $model = $self->{favorite_model}; my $alternate_color = $self->_alternate_color; my $index = 0; for my $rec (@$model) { # Add a CPAN distribution and abstract as a row to the list my $distribution = $rec->{term}; $distribution =~ s/-/::/g; $list->InsertImageStringItem( $index, $distribution, $self->{favorite_images}{file} ); $list->SetItemData( $index, $index ); $list->SetItem( $index, 1, $rec->{count} ) if defined $rec->{count}; $list->SetItemBackgroundColour( $index, $alternate_color ) unless $index % 2; $index++; } $self->_update_ui( $list, scalar @$model > 0 ); return; } # Called when a favorite CPAN list column is clicked sub on_favorite_list_column_click { my ( $self, $event ) = @_; my $column = $event->GetColumn; my $prevcol = $self->{favorite_sort_column} || 0; my $reversed = $self->{favorite_sort_desc}; $reversed = $column == $prevcol ? !$reversed : 0; $self->{favorite_sort_column} = $column; $self->{favorite_sort_desc} = $reversed; # Reset the previous column sort image $self->set_icon_image( $self->{favorite_list}, $prevcol, -1 ); $self->render_favorite; return; } # Called when the 'MetaCPAN!' button is clicked sub on_metacpan_click { my $self = shift; return unless defined $self->{distro}; Padre::Wx::launch_browser( 'https://metacpan.org/module/' . $self->{distro} ); return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FunctionList.pm�������������������������������������������������������������0000644�0001750�0001750�00000017414�12237327555�016341� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FunctionList; use 5.008005; use strict; use warnings; use Carp (); use Scalar::Util (); use Params::Util (); use Padre::Feature (); use Padre::Role::Task (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Main (); use Padre::Wx::Role::Context (); use Padre::Wx (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::View Padre::Wx::Role::Main Padre::Wx::Role::Context Wx::Panel }; ##################################################################### # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->right; # Create the parent panel which will contain the search and tree my $self = $class->SUPER::new( $panel, -1, Wx::DefaultPosition, Wx::DefaultSize, ); # Temporary store for the function list. $self->{model} = []; # Remember the last document we were looking at $self->{document} = ''; # Create the search control $self->{search} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_PROCESS_ENTER | Wx::SIMPLE_BORDER, ); # Create the functions list $self->{list} = Wx::ListBox->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], Wx::LB_SINGLE | Wx::BORDER_NONE ); # Create a sizer my $sizerv = Wx::BoxSizer->new(Wx::VERTICAL); my $sizerh = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizerv->Add( $self->{search}, 0, Wx::ALL | Wx::EXPAND ); $sizerv->Add( $self->{list}, 1, Wx::ALL | Wx::EXPAND ); $sizerh->Add( $sizerv, 1, Wx::ALL | Wx::EXPAND ); # Fits panel layout $self->SetSizerAndFit($sizerh); $sizerh->SetSizeHints($self); # Handle double-click on a function name Wx::Event::EVT_LISTBOX_DCLICK( $self, $self->{list}, sub { $self->on_list_item_activated( $_[1] ); } ); # Handle double click on list. # Overwrite to avoid stealing the focus back from the editor. # On Windows this appears to kill the double-click feature entirely. unless (Padre::Constant::WIN32) { Wx::Event::EVT_LEFT_DCLICK( $self->{list}, sub { return; } ); } # Handle key events in list Wx::Event::EVT_KEY_UP( $self->{list}, sub { $self->on_search_key_up( $_[1] ); }, ); # Handle char events in search box Wx::Event::EVT_CHAR( $self->{search}, sub { $self->on_search_char( $_[1] ); }, ); # React to user search Wx::Event::EVT_TEXT( $self, $self->{search}, sub { $self->render; } ); # Bind the context menu $self->context_bind; if (Padre::Feature::STYLE_GUI) { $self->main->theme->apply( $self->{list} ); } return $self; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'right'; } sub view_label { Wx::gettext('Functions'); } sub view_close { $_[0]->main->show_functions(0); } sub view_stop { $_[0]->task_reset; } ##################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; $self->context_append_options( $menu => 'main_functions_order' ); $menu->AppendSeparator; $self->context_append_options( $menu => 'main_functions_panel' ); return; } ##################################################################### # Event Handlers sub on_search_key_up { my $self = shift; my $event = shift; my $code = $event->GetKeyCode; if ( $code == Wx::K_RETURN ) { $self->on_list_item_activated($event); $self->{search}->SetValue(''); } elsif ( $code == Wx::K_ESCAPE ) { # Escape key clears search and returns focus # to the editor $self->{search}->SetValue(''); $self->main->editor_focus; } $event->Skip(1); } sub on_search_char { my $self = shift; my $event = shift; my $code = $event->GetKeyCode; if ( $code == Wx::K_DOWN || $code == Wx::K_UP || $code == Wx::K_RETURN ) { # Up/Down and return keys focus on the functions lists $self->{list}->SetFocus; my $selection = $self->{list}->GetSelection; if ( $selection == -1 && $self->{list}->GetCount > 0 ) { $selection = 0; } $self->{list}->Select($selection); } elsif ( $code == Wx::K_ESCAPE ) { # Escape key clears search and returns focus # to the editor $self->{search}->SetValue(''); $self->main->editor_focus; } $event->Skip(1); } sub on_list_item_activated { my $self = shift; my $event = shift; my $editor = $self->current->editor or return; # Which sub did they click my $name = $self->{list}->GetStringSelection; if ( defined Params::Util::_STRING($name) ) { $editor->goto_function($name); } return; } sub on_context_menu { my $self = shift; my $event = shift; require Padre::Wx::FunctionList::Menu; my $menu = Padre::Wx::FunctionList::Menu->new( $self, $event ); # Try to determine where to show the context menu if ( $event->isa('Wx::MouseEvent') ) { # Position is already window relative $self->PopupMenu( $menu->wx, $event->GetX, $event->GetY ); } elsif ( $event->can('GetPosition') ) { # Assume other event positions are screen relative my $screen = $event->GetPosition; my $client = $self->ScreenToClient($screen); $self->PopupMenu( $menu->wx, $client->x, $client->y ); } else { # Probably a wxCommandEvent # TO DO Capture a better location from the mouse directly $self->PopupMenu( $menu->wx, 50, 50 ); } $event->Skip(0); } ###################################################################### # General Methods # Sets the focus on the search field sub focus_on_search { $_[0]->{search}->SetFocus; } sub refresh { my $self = shift; my $current = shift or return; my $document = $current->document; # Abort any in-flight checks $self->task_reset; # Hide the widgets when no files are open unless ($document) { $self->{document} = ''; $self->disable; return; } # Clear search when it is a different document my $id = Scalar::Util::refaddr($document); if ( $id ne $self->{document} ) { $self->{search}->ChangeValue(''); $self->{document} = $id; } # Nothing to do if there is no content my $task = $document->task_functions; unless ($task) { $self->disable; return; } # Ensure the widget is visible $self->enable; # Shortcut if there is nothing to search for if ( $document->is_unused ) { return; } # Launch the background task $self->task_request( task => $task, text => $document->text_get, order => $current->config->main_functions_order, ); } sub enable { my $self = shift; my $lock = $self->lock_update; $self->{search}->Show(1); $self->{list}->Show(1); # Rerun our layout in case the size of the function list # geometry changed while we were hidden. $self->Layout; } sub disable { my $self = shift; my $lock = $self->lock_update; $self->{search}->Hide; $self->{list}->Hide; $self->{list}->Clear; $self->{model} = []; } # Set an updated method list from the task sub task_finish { my $self = shift; my $task = shift; my $list = $task->{list} or return; $self->{model} = $list; $self->render; } # Populate the functions list with search results sub render { my $self = shift; my $model = $self->{model}; my $search = $self->{search}; my $list = $self->{list}; # Quote the search string to make it safer my $string = $search->GetValue; if ( $string eq '' ) { $string = '.*'; } else { $string = quotemeta $string; } # Show the components and populate the function list SCOPE: { my $lock = $self->lock_update; $search->Show(1); $list->Show(1); $list->Clear; foreach my $method ( reverse @$model ) { if ( $method =~ /$string/i ) { $list->Insert( $method, 0 ); } } } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FileDropTarget.pm�����������������������������������������������������������0000644�0001750�0001750�00000001435�12237327555�016567� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FileDropTarget; use 5.008; use strict; use warnings; use Params::Util (); use Padre::Wx 'DND'; our $VERSION = '1.00'; our @ISA = 'Wx::FileDropTarget'; sub new { my $class = shift; my $self = $class->SUPER::new; $self->{main} = shift; return $self; } sub set { my $self = shift; unless ( Params::Util::_INSTANCE( $self, 'Padre::Wx::FileDropTarget' ) ) { $self = $self->new(@_); } $self->{main}->SetDropTarget($self); return 1; } sub OnDropFiles { foreach my $i ( @{ $_[3] } ) { $_[0]->{main}->setup_editor($i); $_[0]->{main}->refresh; } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Outline.pm������������������������������������������������������������������0000644�0001750�0001750�00000023326�12237327555�015336� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Outline; use 5.010; use strict; use warnings; use Scalar::Util (); use Params::Util (); use Padre::Feature (); use Padre::Role::Task (); use Padre::Wx (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Main (); use Padre::Wx::Role::Context (); use Padre::Wx::FBP::Outline (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Idle Padre::Wx::Role::View Padre::Wx::Role::Main Padre::Wx::Role::Context Padre::Wx::FBP::Outline }; ###################################################################### # Constructor and Accessors sub new { my $class = shift; my $main = shift; my $panel = shift || $main->right; my $self = $class->SUPER::new($panel); # This tool is just a single tree control my $tree = $self->{tree}; $self->disable; $tree->SetIndent(10); # Prepare the available images my $images = Wx::ImageList->new( 16, 16 ); $self->{images} = { folder => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_FOLDER', 'wxART_OTHER_C', [ 16, 16 ], ), ), file => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_NORMAL_FILE', 'wxART_OTHER_C', [ 16, 16 ], ), ), }; $tree->AssignImageList($images); # Binding for the idle time tree activation Wx::Event::EVT_TREE_ITEM_ACTIVATED( $self, $self->{tree}, sub { $_[0]->idle_method( item_activated => $_[1]->GetItem ); }, ); Wx::Event::EVT_TEXT( $self, $self->{search}, sub { $self->render; }, ); # Handle char events in search box Wx::Event::EVT_CHAR( $self->{search}, sub { my ( $this, $event ) = @_; my $code = $event->GetKeyCode; if ( $code == Wx::K_DOWN or $code == Wx::K_UP or $code == Wx::K_RETURN ) { # Up/Down and return keys focus on the functions lists my $tree = $self->{tree}; $tree->SetFocus; my $selection = $tree->GetSelection; if ( $selection == -1 and $tree->GetCount > 0 ) { $selection = 0; } $tree->SelectItem($selection); } elsif ( $code == Wx::K_ESCAPE ) { # Escape key clears search and returns focus # to the editor $self->{search}->SetValue(''); $self->main->editor_focus; } $event->Skip(1); return; } ); $self->context_bind; if (Padre::Feature::STYLE_GUI) { $self->main->theme->apply($self); } return $self; } ##################################################################### # Event Handlers sub on_tree_item_right_click { my $self = shift; my $event = shift; my $tree = $self->{tree}; my $item = $event->GetItem or return; my $data = $tree->GetPlData($item) or return; my $show = 0; my $menu = Wx::Menu->new; if ( defined $data->{line} and $data->{line} > 0 ) { my $goto = $menu->Append( -1, Wx::gettext('&Go to Element') ); Wx::Event::EVT_MENU( $self, $goto, sub { $self->item_activated($item); }, ); $show++; } if ( defined $data->{type} and $data->{type} =~ /^(?:modules|pragmata)$/ ) { my $pod = $menu->Append( -1, Wx::gettext('Open &Documentation') ); Wx::Event::EVT_MENU( $self, $pod, sub { # TO DO Fix this wasting of objects (cf. Padre::Wx::Menu::Help) require Padre::Wx::Browser; my $help = Padre::Wx::Browser->new; $help->help( $data->{name} ); $help->SetFocus; $help->Show(1); return; }, ); $show++; } if ( $show > 0 ) { my $x = $event->GetPoint->x; my $y = $event->GetPoint->y; $tree->PopupMenu( $menu, $x, $y ); } return; } ###################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; $self->context_append_options( $menu => 'main_outline_panel' ); } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'right'; } sub view_label { Wx::gettext('Outline'); } sub view_close { $_[0]->main->show_outline(0); } sub view_stop { $_[0]->task_reset; } ###################################################################### # Padre::Role::Task Methods sub task_finish { TRACE( $_[1] ) if DEBUG; my $self = shift; my $task = shift; my $data = Params::Util::_ARRAY( $task->{data} ) or return; my $lock = $self->lock_update; # Cache data model for faster searches $self->{data} = $data; # And render it $self->render; return 1; } sub render { my $self = shift; my $data = $self->{data}; my $term = quotemeta $self->{search}->GetValue; my $lock = Wx::WindowUpdateLocker->new( $self->{tree} ); # Clear any old content $self->clear; # Add the hidden unused root my $tree = $self->{tree}; my $images = $self->{images}; my $root = $tree->AddRoot( Wx::gettext('Outline'), -1, -1, Wx::TreeItemData->new('') ); # Add the package trees foreach my $pkg (@$data) { my $branch = $tree->AppendItem( $root, $pkg->{name}, -1, -1, Wx::TreeItemData->new( { line => $pkg->{line}, name => $pkg->{name}, type => 'package', } ) ); $tree->SetItemImage( $branch, $images->{folder} ); my @types = qw(classes grammars packages pragmata modules attributes methods events roles regexes); foreach my $type (@types) { $self->add_subtree( $pkg, $type, $branch ); } $tree->Expand($branch); } # Set MIME type specific event handler Wx::Event::EVT_TREE_ITEM_RIGHT_CLICK( $tree, $tree, sub { $self->on_tree_item_right_click( $_[1] ); }, ); $self->GetBestSize; return; } ###################################################################### # General Methods sub item_activated { my $self = shift; my $item = shift or return; my $tree = $self->{tree}; my $data = $tree->GetPlData($item) or return; my $line = $data->{line} or return; $self->select_line_in_editor($line); } # Sets the focus on the search field sub focus_on_search { $_[0]->{search}->SetFocus; } sub clear { $_[0]->{tree}->DeleteAllItems; } sub refresh { TRACE( $_[0] ) if DEBUG; my $self = shift; my $current = shift or return; my $document = $current->document; my $lock = $self->lock_update; my $tree = $self->{tree}; # Cancel any existing outline task $self->task_reset; # Hide the widgets when no files are open unless ($document) { $self->disable; return; } # Is there an outline task for this document type my $task = $document->task_outline; unless ($task) { $self->disable; return; } # Shortcut if there is nothing to search for if ( $document->is_unused ) { $self->disable; return; } # Ensure the search box and tree are visible $self->enable; # Trigger the task to fetch the refresh data $self->task_request( task => $task, document => $document, ); } sub disable { my $self = shift; $self->{search}->Hide; $self->{tree}->Hide; $self->clear; } sub enable { my $self = shift; $self->{search}->Show; $self->{tree}->Show; # Recalculate our layout in case the view geometry # has changed from when we were hidden. $self->Layout; } sub add_subtree { my ( $self, $pkg, $type, $root ) = @_; my $tree = $self->{tree}; my $term = quotemeta $self->{search}->GetValue; my $images = $self->{images}; my %type_caption = ( pragmata => Wx::gettext('Pragmata'), modules => Wx::gettext('Modules'), methods => Wx::gettext('Methods'), attributes => Wx::gettext('Attributes'), ); my $type_elem = undef; if ( defined( $pkg->{$type} ) && scalar( @{ $pkg->{$type} } ) > 0 ) { my $type_caption = ucfirst($type); if ( exists $type_caption{$type} ) { $type_caption = $type_caption{$type}; } else { warn "Type not translated: $type_caption\n"; } $type_elem = $tree->AppendItem( $root, $type_caption, -1, -1, Wx::TreeItemData->new ); $tree->SetItemImage( $type_elem, $images->{folder} ); my @sorted_entries = (); if ( $type eq 'methods' ) { my $config = $self->main->{ide}->config; if ( $config->main_functions_order eq 'original' ) { # That should be the one we got @sorted_entries = @{ $pkg->{$type} }; } elsif ( $config->main_functions_order eq 'alphabetical_private_last' ) { # ~ comes after \w my @pre = map { $_->{name} =~ s/^_/~/; $_ } @{ $pkg->{$type} }; @pre = sort { $a->{name} cmp $b->{name} } @pre; @sorted_entries = map { $_->{name} =~ s/^~/_/; $_ } @pre; } else { # Alphabetical (aka 'abc') @sorted_entries = sort { $a->{name} cmp $b->{name} } @{ $pkg->{$type} }; } } else { @sorted_entries = sort { $a->{name} cmp $b->{name} } @{ $pkg->{$type} }; } foreach my $item (@sorted_entries) { my $name = $item->{name}; #ToDo hack to remove double spacing caused by a stray has with no value, works with PPIx 0.15_02 but overwites $name =~ s/\n//; next if $name !~ /$term/; my $item = $tree->AppendItem( $type_elem, $name, -1, -1, Wx::TreeItemData->new( { line => $item->{line}, name => $name, type => $type, } ) ); $tree->SetItemImage( $item, $images->{file} ); } } if ( defined $type_elem ) { if ( length $term > 0 ) { $tree->Expand($type_elem); } else { if ( $type eq 'methods' ) { $tree->Expand($type_elem); } elsif ( $type eq 'attributes' ) { $tree->Expand($type_elem); } else { if ( $tree->IsExpanded($type_elem) ) { $tree->Collapse($type_elem); } } } } return; } sub select_line_in_editor { my $self = shift; my $line = shift; my $editor = $self->current->editor or return; if ( defined $line && ( $line =~ /^\d+$/o ) && ( $line <= $editor->GetLineCount ) ) { $line--; $editor->goto_line_centerize($line); } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/HtmlWindow.pm���������������������������������������������������������������0000644�0001750�0001750�00000006772�12237327555�016021� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::HtmlWindow; =pod =head1 NAME Padre::Wx::HtmlWindow - Padre-enhanced version of L<Wx::HtmlWindow> =head1 DESCRIPTION C<Padre::Wx::HtmlWindow> provides a Padre-specific subclass of L<Wx::HtmlWindow> that adds some additional features, primarily default support for L<pod2html> functionality. =head1 METHODS C<Padre::Wx::HtmlWindow> implements all the methods described in the documentation for L<Wx::HtmlWindow>, and adds some additional methods. =cut use 5.008; use strict; use warnings; use Params::Util (); use Padre::Wx (); use Padre::Wx 'Html'; use Padre::Role::Task (); our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; our @ISA = qw{ Padre::Role::Task Wx::HtmlWindow }; use constant LOADING => <<'END_HTML'; <html> <body> Loading... </body> </html> END_HTML use constant ERROR => <<'END_HTML'; <html> <body> Failed to render page </body> </html> END_HTML ##################################################################### # Foreground Loader Methods =pod =head2 load_file $html_window->load_file('my.pod'); The C<load_file> method takes a file name, loads the file, transforms it to HTML via the default Padre::Pod2HTML processor, and then loads the HTML into the window. Returns true on success, or throws an exception on error. =cut sub load_file { my $self = shift; my $file = shift; # Spawn the rendering task $self->task_reset; $self->task_request( task => 'Padre::Task::Pod2HTML', on_finish => '_finish', file => $file, ); # Place a temporary message in the HTML window $self->SetPage(LOADING); } =pod =head2 load_file $html_window->load_pod( "=head1 NAME\n" ); The C<load_file> method takes a string of POD content, transforms it to HTML via the default Padre::Pod2HTML processor, and then loads the HTML into the window. Returns true on success, or throws an exception on error. =cut sub load_pod { my $self = shift; my $text = shift; # Spawn the rendering task $self->task_reset; $self->task_request( task => 'Padre::Task::Pod2HTML', on_finish => '_finish', text => $text, ); # Place a temporary message in the HTML window $self->SetPage(LOADING); } =pod =head2 load_html $html_window->load_html( "<head><body>Hello World!</body></html>" ); The C<load_html> method takes a string of HTML content, and loads the HTML into the window. The method is provided mainly as a convenience, it's main role is to act as the callback handler for background rendering tasks. =cut sub load_html { my $self = shift; my $html = shift; # Handle task callback events if ( Params::Util::_INSTANCE( $html, 'Padre::Task::Pod2HTML' ) ) { if ( $html->errstr ) { $html = $html->errstr; } elsif ( $html->html ) { $html = $html->html; } else { $html = ERROR; } } # Render the HTML document if ( defined Params::Util::_STRING($html) ) { $self->SetPage($html); return 1; } # No idea what this is return; } 1; __END__ =pod =head1 SUPPORT See the main L<Padre> documentation. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������Padre-1.00/lib/Padre/Wx/Editor/���������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�014570� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Editor/Menu.pm��������������������������������������������������������������0000644�0001750�0001750�00000005033�12237327555�016044� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Editor::Menu; # Menu that shows up when user right-clicks with the mouse use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Feature (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; sub new { my $class = shift; my $editor = shift or return; my $event = shift; my $selection = $editor->GetSelectionLength ? 1 : 0; # Create the empty menu my $self = $class->SUPER::new(@_); $self->{main} = $editor->main; # The core cut/paste entries the same as every other editor $self->{cut} = $self->add_menu_action('edit.cut'); $self->{copy} = $self->add_menu_action('edit.copy'); unless ($selection) { $self->{copy}->Enable(0); $self->{cut}->Enable(0); } $self->{paste} = $self->add_menu_action( 'edit.paste', ); unless ( $editor->CanPaste ) { $self->{paste}->Enable(0); } $self->{select_all} = $self->add_menu_action( 'edit.select_all', ); $self->AppendSeparator; $self->{comment_toggle} = $self->add_menu_action( 'edit.comment_toggle', ); $self->{comment} = $self->add_menu_action( 'edit.comment', ); $self->{uncomment} = $self->add_menu_action( 'edit.uncomment', ); # Search, replace and navigation if ($selection) { $self->AppendSeparator; $self->{open_selection} = $self->add_menu_action( 'file.open_selection', ); $self->{find_in_files} = $self->add_menu_action( 'search.find_in_files', ); } my $config = $self->{main}->config; if ( Padre::Feature::FOLDING and $event->isa('Wx::MouseEvent') and $config->editor_folding ) { my $position = $event->GetPosition; my $line = $editor->LineFromPosition( $editor->PositionFromPoint($position) ); my $point = $editor->PointFromPosition( $editor->PositionFromLine($line) ); if ( $position->x < $point->x and $position->x > ( $point->x - 18 ) ) { $self->AppendSeparator; $self->{fold_all} = $self->add_menu_action( 'view.fold_all', ); $self->{unfold_all} = $self->add_menu_action( 'view.unfold_all', ); } } my $document = $editor->{Document}; if ($document) { if ( $document->can('event_on_context_menu') ) { $document->event_on_context_menu( $editor, $self, $event ); } # Let the plugins have a go $editor->main->ide->plugin_manager->on_context_menu( $document, $editor, $self, $event, ); } return $self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Editor/Lock.pm��������������������������������������������������������������0000644�0001750�0001750�00000001253�12237327555�016030� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Editor::Lock; # A read-only lock for Padre::Wx::Editor objects use 5.008; use strict; use warnings; our $VERSION = '1.00'; sub new { my $class = shift; my $editor = shift; # We do not initially support nested locking return if $editor->GetReadOnly; # Lock the editor $editor->SetReadOnly(1); # Return the lock object return bless { editor => $editor, }, $class; } sub DESTROY { $_[0]->{editor} or return; $_[0]->{editor}->SetReadOnly(0); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ActionQueue.pm��������������������������������������������������������������0000644�0001750�0001750�00000004334�12237327555�016137� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::ActionQueue; # Basic scripting for Padre =pod =head1 NAME Padre::Wx::ActionQueue doesn't create any actions itself but it provides a basic scripting option for Padre, the Action Queue. =cut use 5.008; use strict; use warnings; use Padre::Wx (); our $VERSION = '1.00'; use constant TIMER_ACTIONQUEUE => Wx::NewId(); sub new { my $class = shift; my $wx = shift; my $main = $wx->main; # Create the empty queue my $self = bless { wx => $wx, actions => $wx->ide->actions, queue => [], }, $class; # Create the Wx timer $self->{timer} = Wx::Timer->new( $main, TIMER_ACTIONQUEUE ); Wx::Event::EVT_TIMER( $main, TIMER_ACTIONQUEUE, sub { $self->on_timer( $_[1], $_[2] ); }, ); $self->{timer}->Start(1000); return $self; } sub add { my $self = shift; push @{ $self->{queue} }, @_; return 1; } sub set_timer_interval { my $self = shift; # Get current interval my $interval = 0; $interval = $self->{timer} if $self->{timer}->IsRunning; my $new_interval; if ( $#{ $self->{queue} } == -1 ) { # No pending queue actions $new_interval = 1000; } else { # Pending actions, execute one of them each 250ms $new_interval = 250; } # Do nothing if interval is unchanged return 1 if $interval == $new_interval; # Reset the timer interval $self->{timer}->Stop if $self->{timer}->IsRunning; $self->{timer}->Start($new_interval); return 1; } sub on_timer { my $self = shift; my $event = shift; my $force = shift; if ( $#{ $self->{queue} } > -1 ) { # Advoid another timer event during processing of this event $self->{timer}->Stop; my $queue = $self->{queue}; my $action = shift @$queue; if ( $self->{debug} ) { my $now = scalar localtime time; print STDERR "$now Action::Queue $action\n"; } # Run the event handler my $main = $self->{wx}->main; &{ $self->{actions}->{$action}->{queue_event} }( $main, $event, $force ); # Reset not needed if timer wasn't stopped $self->set_timer_interval; } $event->Skip(0) if defined $event; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Popup.pm��������������������������������������������������������������������0000644�0001750�0001750�00000003117�12237327555�015016� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Popup; use 5.008; use strict; use warnings; use Padre::Wx (); our $VERSION = '1.00'; our @ISA = 'Wx::PlPopupTransientWindow'; sub on_paint { my ( $self, $event ) = @_; # my $dc = Wx::PaintDC->new( $self ); # $dc->SetBrush( Wx::Brush->new( Wx::Colour->new( 0, 192, 0 ), Wx::wxSOLID ) ); # $dc->SetPen( Wx::Pen->new( Wx::Colour->new( 0, 0, 0 ), 1, Wx::wxSOLID ) ); # $dc->DrawRectangle( 0, 0, $self->GetSize->x, $self->GetSize->y ); } sub new { my $class = shift; my $self = $class->SUPER::new(@_); Wx::Event::EVT_PAINT( $self, \&on_paint ); print "xxx $self\n"; # my $panel = Wx::Panel->new( $self, -1 ); #print "panel $panel\n"; #$panel->SetBackgroundColour(Wx::WHITE); # $self->SetBackgroundColour(Wx::WHITE); #print "aa\n"; # my $dialog = Wx::Dialog->new( $self, -1, "", [-1, -1], [550, 200]); #print "d $dialog\n"; # my $st = Wx::StaticText->new($panel, -1, # "abc adsda\n" . # "Some more\n" . # "and more\n" # , [10, 10], [-1, -1]); #print "zz $st\n"; # my $sz = $st->GetBestSize; # $self->SetSize( ($sz->GetWidth+20, $sz->GetHeight+20) ); #$self->SetSize( $panel->GetSize ); return $self; } sub ProcessLeftDown { my ( $self, $event ) = @_; print "Process Left $event\n"; #$event->Skip; return 0; } sub OnDismiss { my ( $self, $event ) = @_; print "OnDismiss\n"; #$event->Skip; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/�����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014247� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/Edit.pm����������������������������������������������������������������0000644�0001750�0001750�00000017531�12237327555�015511� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Edit; # Fully encapsulated Edit menu use 5.008; use strict; use warnings; use Padre::Current (); use Padre::Feature (); use Padre::Wx (); use Padre::Wx::Menu (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; # Undo/Redo $self->{undo} = $self->add_menu_action( 'edit.undo', ); $self->{redo} = $self->add_menu_action( 'edit.redo', ); $self->AppendSeparator; # Selection my $edit_select = Wx::Menu->new; $self->Append( -1, Wx::gettext('&Select'), $edit_select ); $self->add_menu_action( $edit_select, 'edit.select_all', ); $edit_select->AppendSeparator; $self->add_menu_action( $edit_select, 'edit.mark_selection_start', ); $self->add_menu_action( $edit_select, 'edit.mark_selection_end', ); $self->add_menu_action( $edit_select, 'edit.clear_selection_marks', ); # Cut and Paste $self->{cut} = $self->add_menu_action( 'edit.cut', ); $self->{copy} = $self->add_menu_action( 'edit.copy', ); # Special copy my $edit_copy = Wx::Menu->new; $self->Append( -1, Wx::gettext('Cop&y Specials'), $edit_copy ); $self->{copy_filename} = $self->add_menu_action( $edit_copy, 'edit.copy_filename', ); $self->{copy_basename} = $self->add_menu_action( $edit_copy, 'edit.copy_basename', ); $self->{copy_dirname} = $self->add_menu_action( $edit_copy, 'edit.copy_dirname', ); $self->{copy_content} = $self->add_menu_action( $edit_copy, 'edit.copy_content', ); # Paste $self->{paste} = $self->add_menu_action( 'edit.paste', ); my $submenu = Wx::Menu->new; $self->{insert_submenu} = $self->AppendSubMenu( $submenu, Wx::gettext('Insert'), ); $self->{insert_from_file} = $self->add_menu_action( $submenu, 'edit.insert.from_file', ); $self->{snippets} = $self->add_menu_action( $submenu, 'edit.insert.snippets', ); $self->{insert_special} = $self->add_menu_action( $submenu, 'edit.insert.insert_special', ); $self->AppendSeparator; $self->{next_problem} = $self->add_menu_action( 'edit.next_problem', ); $self->{next_difference} = $self->add_menu_action( 'edit.next_difference', ) if Padre::Feature::DIFF_DOCUMENT; $self->{quick_fix} = $self->add_menu_action( 'edit.quick_fix', ) if Padre::Feature::QUICK_FIX; $self->{autocomp} = $self->add_menu_action( 'edit.autocomp', ); $self->{brace_match} = $self->add_menu_action( 'edit.brace_match', ); $self->{brace_match_select} = $self->add_menu_action( 'edit.brace_match_select', ); $self->{join_lines} = $self->add_menu_action( 'edit.join_lines', ); $self->AppendSeparator; # Commenting $self->{comment_toggle} = $self->add_menu_action( 'edit.comment_toggle', ); $self->{comment} = $self->add_menu_action( 'edit.comment', ); $self->{uncomment} = $self->add_menu_action( 'edit.uncomment', ); $self->AppendSeparator; # Conversions and Transforms $self->{convert_encoding} = Wx::Menu->new; $self->Append( -1, Wx::gettext('Convert &Encoding (broken)'), $self->{convert_encoding} ); $self->{convert_encoding_system} = $self->add_menu_action( $self->{convert_encoding}, 'edit.convert_encoding_system', ); $self->{convert_encoding_utf8} = $self->add_menu_action( $self->{convert_encoding}, 'edit.convert_encoding_utf8', ); $self->{convert_encoding_to} = $self->add_menu_action( $self->{convert_encoding}, 'edit.convert_encoding_to', ); $self->{convert_nl} = Wx::Menu->new; $self->Append( -1, Wx::gettext('Convert &Line Endings'), $self->{convert_nl} ); $self->{convert_nl_windows} = $self->add_menu_action( $self->{convert_nl}, 'edit.convert_nl_windows', ); $self->{convert_nl_unix} = $self->add_menu_action( $self->{convert_nl}, 'edit.convert_nl_unix', ); $self->{convert_nl_mac} = $self->add_menu_action( $self->{convert_nl}, 'edit.convert_nl_mac', ); # Tabs And Spaces $self->{tabs} = Wx::Menu->new; $self->Append( -1, Wx::gettext('Tabs and S&paces'), $self->{tabs}, ); $self->{tabs_to_spaces} = $self->add_menu_action( $self->{tabs}, 'edit.tabs_to_spaces', ); $self->{spaces_to_tabs} = $self->add_menu_action( $self->{tabs}, 'edit.spaces_to_tabs', ); $self->{tabs}->AppendSeparator; $self->{delete_trailing} = $self->add_menu_action( $self->{tabs}, 'edit.delete_trailing', ); $self->{delete_leading} = $self->add_menu_action( $self->{tabs}, 'edit.delete_leading', ); # Upper and Lower Case $self->{case} = Wx::Menu->new; $self->Append( -1, Wx::gettext('Upper/Lo&wer Case'), $self->{case}, ); $self->{case_upper} = $self->add_menu_action( $self->{case}, 'edit.case_upper', ); $self->{case_lower} = $self->add_menu_action( $self->{case}, 'edit.case_lower', ); $self->AppendSeparator; # Add Patch/Diff $self->{patch_diff} = $self->add_menu_action( 'edit.patch_diff', ); $self->{filter_tool} = $self->add_menu_action( 'edit.filter_tool', ); $self->{perl_filter} = $self->add_menu_action( 'edit.perl_filter', ); $self->AppendSeparator; $self->{show_as_number} = Wx::Menu->new; $self->Append( -1, Wx::gettext('Show as'), $self->{show_as_number} ); $self->{show_as_hex} = $self->add_menu_action( $self->{show_as_number}, 'edit.show_as_hex', ); $self->{show_as_decimal} = $self->add_menu_action( $self->{show_as_number}, 'edit.show_as_decimal', ); return $self; } sub title { Wx::gettext('&Edit'); } sub refresh { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $editor = $current->editor || 0; my $document = $current->document; my $hasdoc = $document ? 1 : 0; my $comment = $hasdoc ? ( $document->mime->comment ? 1 : 0 ) : 0; my $newline = $hasdoc ? $document->newline_type : ''; my $quickfix = $hasdoc && $document->can('get_quick_fix_provider'); # Handle the simple cases $self->{next_problem}->Enable($hasdoc); $self->{next_difference}->Enable($hasdoc) if defined $self->{next_difference}; if (Padre::Feature::QUICK_FIX) { $self->{quick_fix}->Enable($quickfix); } $self->{autocomp}->Enable($hasdoc); $self->{brace_match}->Enable($hasdoc); $self->{brace_match_select}->Enable($hasdoc); $self->{join_lines}->Enable($hasdoc); $self->{insert_special}->Enable($hasdoc); $self->{snippets}->Enable($hasdoc); $self->{comment_toggle}->Enable($comment); $self->{comment}->Enable($comment); $self->{uncomment}->Enable($comment); $self->{convert_encoding_system}->Enable($hasdoc); $self->{convert_encoding_utf8}->Enable($hasdoc); $self->{convert_encoding_to}->Enable($hasdoc); $self->{insert_from_file}->Enable($hasdoc); $self->{case_upper}->Enable($hasdoc); $self->{case_lower}->Enable($hasdoc); unless ( $newline eq 'WIN' ) { $self->{convert_nl_windows}->Enable($hasdoc); } unless ( $newline eq 'UNIX' ) { $self->{convert_nl_unix}->Enable($hasdoc); } unless ( $newline eq 'MAC' ) { $self->{convert_nl_mac}->Enable($hasdoc); } $self->{tabs_to_spaces}->Enable($hasdoc); $self->{spaces_to_tabs}->Enable($hasdoc); $self->{delete_leading}->Enable($hasdoc); $self->{delete_trailing}->Enable($hasdoc); $self->{show_as_hex}->Enable($hasdoc); $self->{show_as_decimal}->Enable($hasdoc); $self->{patch_diff}->Enable($hasdoc); # Handle the complex cases $self->{undo}->Enable($editor); $self->{redo}->Enable($editor); $self->{paste}->Enable($editor); # Copy specials $self->{copy_filename}->Enable($hasdoc); $self->{copy_basename}->Enable($hasdoc); $self->{copy_dirname}->Enable($hasdoc); $self->{copy_content}->Enable($hasdoc); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/Run.pm�����������������������������������������������������������������0000644�0001750�0001750�00000004773�12237327555�015374� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Run; # Fully encapsulated Run menu use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Current (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; # Script Execution $self->{run_document} = $self->add_menu_action( 'run.run_document', ); $self->{run_document_debug} = $self->add_menu_action( 'run.run_document_debug', ); $self->{run_command} = $self->add_menu_action( 'run.run_command', ); $self->AppendSeparator; $self->{run_tests} = $self->add_menu_action( 'run.run_tests', ); $self->{run_tdd_tests} = $self->add_menu_action( 'run.run_tdd_tests', ); $self->{run_this_test} = $self->add_menu_action( 'run.run_this_test', ); $self->AppendSeparator; $self->{stop} = $self->add_menu_action( 'run.stop', ); return $self; } sub title { Wx::gettext('&Run'); } sub refresh { my $self = shift; my $document = Padre::Current::_CURRENT(@_)->document; # Disable if not document, # otherwise match run_command state $self->{run_document}->Enable( $document ? $self->{run_command}->IsEnabled : 0 ); $self->{run_document_debug}->Enable( $document ? $self->{run_command}->IsEnabled : 0 ); $self->{run_tests}->Enable( $document ? $self->{run_command}->IsEnabled : 0 ); $self->{run_this_test}->Enable( $document && defined( $document->filename ) && $document->filename =~ /\.t$/ ? $self->{run_command}->IsEnabled : 0 ); $self->{run_tdd_tests}->Enable( $document && defined( $document->filename ) ? $self->{run_command}->IsEnabled : 0 ); return 1; } ##################################################################### # Custom Methods sub enable { my $self = shift; $self->{run_document}->Enable(1); $self->{run_document_debug}->Enable(1); $self->{run_command}->Enable(1); $self->{stop}->Enable(0); return; } sub disable { my $self = shift; $self->{run_document}->Enable(0); $self->{run_document_debug}->Enable(0); $self->{run_command}->Enable(0); $self->{stop}->Enable(1); return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����Padre-1.00/lib/Padre/Wx/Menu/Tools.pm���������������������������������������������������������������0000644�0001750�0001750�00000007505�12237327555�015724� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Tools; # Fully encapsulated Run menu use 5.008; use strict; use warnings; use Params::Util (); use Padre::Constant (); use Padre::Config (); use Padre::Feature (); use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Current (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; # Differences window if (Padre::Feature::DIFF_WINDOW) { $self->add_menu_action( 'tools.diff_window', ); $self->AppendSeparator; } # User Preferences $self->add_menu_action( 'tools.preferences', ); # Config Sync if (Padre::Feature::SYNC) { $self->add_menu_action( 'tools.sync', ); } $self->AppendSeparator; # Regex Editor $self->add_menu_action( 'tools.regex', ); # Create the module tools submenu #ToDo Commeted out as per #1433, redundent code needs to be removed # my $modules = Wx::Menu->new; # $self->Append( # -1, # Wx::gettext('&Module Tools'), # $modules, # ); # $self->add_menu_action( # $modules, # 'plugins.install_local', # ); # $self->add_menu_action( # $modules, # 'plugins.install_remote', # ); # $modules->AppendSeparator; # $self->add_menu_action( # $modules, # 'plugins.cpan_config', # ); $self->AppendSeparator; # Link to the Plugin Manager $self->add_menu_action( 'plugins.plugin_manager', ); $self->add_menu_action( 'plugins.plugin_manager2', ); # Create the plugin tools submenu my $tools = Wx::Menu->new; $self->Append( -1, Wx::gettext('P&lug-in Tools'), $tools, ); # TO DO: should be replaced by a link to # http://cpan.uwinnipeg.ca/chapter/World_Wide_Web_HTML_HTTP_CGI/Padre # better yet, by a window that also allows the installation of all the # plugins that can take into account the type of installation we have # (ppm, stand alone, rpm, deb, CPAN, etc) $self->add_menu_action( $tools, 'plugins.plugin_list', ); $tools->AppendSeparator; $self->add_menu_action( $tools, 'plugins.edit_my_plugin', ); $self->add_menu_action( $tools, 'plugins.reload_my_plugin', ); $self->add_menu_action( $tools, 'plugins.reset_my_plugin', ); $tools->AppendSeparator; $self->add_menu_action( $tools, 'plugins.reload_all_plugins', ); $self->add_menu_action( $tools, 'plugins.reload_current_plugin', ); return $self; } sub add { my $self = shift; my $main = shift; # Clear out any existing entries my $entries = $self->{plugin_menus} || []; $self->remove if @$entries; # Add the enabled plugins that want a menu my $need = 1; my $manager = Padre->ide->plugin_manager; foreach my $module ( $manager->plugin_order ) { my $plugin = $manager->handle($module); next unless $plugin->enabled; # Generate the menu for the plugin my @menu = $manager->get_menu( $main, $module ) or next; # Did the previous entry needs a separator after it if ($need) { push @$entries, $self->AppendSeparator; $need = 0; } push @$entries, $self->Append(@menu); if ( $module eq 'Padre::Plugin::My' ) { $need = 1; } } $self->{plugin_menus} = $entries; return 1; } sub remove { my $self = shift; my $entries = $self->{plugin_menus} || []; while (@$entries) { $self->Destroy( pop @$entries ); } $self->{plugin_menus} = $entries; return 1; } sub title { Wx::gettext('&Tools'); } sub refresh { my $self = shift; my $main = Padre::Current::_CURRENT(@_)->main; $self->remove; $self->add($main); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/Perl.pm����������������������������������������������������������������0000644�0001750�0001750�00000005204�12237327555�015520� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Perl; # Fully encapsulated Perl menu use 5.008; use strict; use warnings; use List::Util (); use File::Spec (); use File::HomeDir (); use Params::Util (); use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Locale (); use Padre::Current (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; # Cache the configuration $self->{config} = Padre->ide->config; # Perl-Specific Searches $self->{beginner_check} = $self->add_menu_action( 'perl.beginner_check', ); $self->{perl_deparse} = $self->add_menu_action( 'perl.deparse', ); $self->AppendSeparator; $self->{find_brace} = $self->add_menu_action( 'perl.find_brace', ); $self->{find_variable} = $self->add_menu_action( 'perl.find_variable', ); $self->{find_method} = $self->add_menu_action( 'perl.find_method', ); $self->{create_tagsfile} = $self->add_menu_action( 'perl.create_tagsfile', ); $self->AppendSeparator; $self->add_menu_action( 'perl.vertically_align_selected', ); $self->add_menu_action( 'perl.newline_keep_column', ); # $self->AppendSeparator; # Move of stacktrace to Run # # Make it easier to access stack traces # $self->{run_stacktrace} = $self->AppendCheckItem( -1, # Wx::gettext("Run Scripts with Stack Trace") # ); # Wx::Event::EVT_MENU( $main, $self->{run_stacktrace}, # sub { # # Update the saved config setting # my $config = Padre->ide->config; # $config->set( run_stacktrace => $_[1]->IsChecked ? 1 : 0 ); # $self->refresh; # } # ); return $self; } sub title { Wx::gettext('&Perl'); } sub refresh { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $config = $current->config; my $perl = !!Params::Util::_INSTANCE( $current->document, 'Padre::Document::Perl', ); # Disable document-specific entries if we are in a Perl project # but not in a Perl document. $self->{find_brace}->Enable($perl); $self->{find_variable}->Enable($perl); $self->{find_variable}->Enable($perl); # $self->{rename_variable}->Enable($perl); # $self->{introduce_temporary}->Enable($perl); # $self->{extract_subroutine}->Enable($perl); $self->{beginner_check}->Enable($perl); return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/File.pm����������������������������������������������������������������0000644�0001750�0001750�00000020162�12237327555�015475� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::File; # Fully encapsulated File menu use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Constant (); use Padre::Current (); use Padre::Feature (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; # Create new things $self->{new} = $self->add_menu_action( 'file.new', ); my $file_new = Wx::Menu->new; $self->Append( -1, Wx::gettext('Ne&w'), $file_new, ); $self->{duplicate} = $self->add_menu_action( $file_new, 'file.duplicate', ); $self->add_menu_action( $file_new, 'file.new_p5_script', ); $self->add_menu_action( $file_new, 'file.new_p5_module', ); $self->add_menu_action( $file_new, 'file.new_p5_test', ); # Split by language $file_new->AppendSeparator; $self->add_menu_action( $file_new, 'file.new_p6_script', ); ### NOTE: Add support for plugins here # Split projects from files $file_new->AppendSeparator; #ToDo Not yet finished $self->add_menu_action( $file_new, 'file.p5_modulestarter', ); # Open things $self->add_menu_action( 'file.open', ); my $file_open = Wx::Menu->new; $self->Append( -1, Wx::gettext('O&pen'), $file_open, ); $self->add_menu_action( $file_open, 'file.openurl', ); $self->{open_selection} = $self->add_menu_action( $file_open, 'file.open_selection', ); $self->{open_in_file_browser} = $self->add_menu_action( $file_open, 'file.open_in_file_browser', ); if (Padre::Constant::WIN32) { $self->{open_with_default_system_editor} = $self->add_menu_action( $file_open, 'file.open_with_default_system_editor', ); $self->{open_in_command_line} = $self->add_menu_action( $file_open, 'file.open_in_command_line', ); } $self->{open_example} = $self->add_menu_action( $file_open, 'file.open_example', ); $self->{open_last_closed_file} = $self->add_menu_action( $file_open, 'file.open_last_closed_file', ); $self->{close} = $self->add_menu_action( 'file.close', ); # Close things my $file_close = Wx::Menu->new; $self->Append( -1, Wx::gettext('&Close'), $file_close, ); $self->{close_current_project} = $self->add_menu_action( $file_close, 'file.close_current_project', ); $self->{close_other_projects} = $self->add_menu_action( $file_close, 'file.close_other_projects', ); $file_close->AppendSeparator; $self->{close_all} = $self->add_menu_action( $file_close, 'file.close_all', ); $self->{close_all_but_current} = $self->add_menu_action( $file_close, 'file.close_all_but_current', ); $file_close->AppendSeparator; $self->{close_some} = $self->add_menu_action( $file_close, 'file.close_some', ); $file_close->AppendSeparator; $self->{delete} = $self->add_menu_action( $file_close, 'file.delete', ); ### End of close submenu # Reload file(s) my $file_reload = Wx::Menu->new; $self->Append( -1, Wx::gettext('Re&load'), $file_reload, ); $self->{reload_file} = $self->add_menu_action( $file_reload, 'file.reload_file', ); $self->{reload_all} = $self->add_menu_action( $file_reload, 'file.reload_all', ); $self->{reload_some} = $self->add_menu_action( $file_reload, 'file.reload_some', ); ### End of reload submenu $self->AppendSeparator; # Save files $self->{save} = $self->add_menu_action( 'file.save', ); $self->{save_as} = $self->add_menu_action( 'file.save_as', ); $self->{save_intuition} = $self->add_menu_action( 'file.save_intuition', ); $self->{save_all} = $self->add_menu_action( 'file.save_all', ); if (Padre::Feature::SESSION) { $self->AppendSeparator; # Session operations $self->{open_session} = $self->add_menu_action( 'file.open_session', ); $self->{save_session} = $self->add_menu_action( 'file.save_session', ); } $self->AppendSeparator; # Print files $self->{print} = $self->add_menu_action( 'file.print', ); $self->AppendSeparator; # Recent things $self->{recentfiles} = Wx::Menu->new; $self->Append( -1, Wx::gettext('&Recent Files'), $self->{recentfiles} ); $self->add_menu_action( $self->{recentfiles}, 'file.open_recent_files', ); $self->add_menu_action( $self->{recentfiles}, 'file.clean_recent_files', ); $self->{recentfiles}->AppendSeparator; # NOTE: Do NOT do an initial fill during the constructor # We'll do one later anyway, and the list is premature at this point. # NOTE: Do not ignore the above note. I mean it --ADAMK # $self->refresh_recent; # open_recent_files - the menu is populated in ->refill_recent $self->AppendSeparator; # Document Statistics $self->{docstat} = $self->add_menu_action( 'file.properties', ); # Project Statistics $self->add_menu_action( 'file.sloccount', ); $self->AppendSeparator; # Exiting $self->add_menu_action( 'file.quit', ); return $self; } sub title { Wx::gettext('&File'); } sub refresh { my $self = shift; my $document = Padre::Current->document ? 1 : 0; $self->{open_in_file_browser}->Enable($document); $self->{duplicate}->Enable($document); if (Padre::Constant::WIN32) { $self->{open_with_default_system_editor}->Enable($document); $self->{open_in_command_line}->Enable($document); } $self->{close}->Enable($document); $self->{delete}->Enable($document); $self->{close_all}->Enable($document); $self->{close_all_but_current}->Enable($document); $self->{reload_file}->Enable($document); $self->{reload_all}->Enable($document); $self->{reload_some}->Enable($document); $self->{save}->Enable($document); $self->{save_as}->Enable($document); $self->{save_intuition}->Enable($document); $self->{save_all}->Enable($document); #$self->{print}->Enable($document); defined( $self->{open_session} ) and $self->{open_selection}->Enable($document); defined( $self->{save_session} ) and $self->{save_session}->Enable($document); $self->{docstat}->Enable($document); return 1; } # Does not do the actual refresh, just kicks off the background job. sub refresh_recent { my $self = shift; # Fire the recent files background task require Padre::Task::RecentFiles; Padre::Task::RecentFiles->new( want => 9, )->schedule; return; } sub refill_recent { my $self = shift; my $files = shift; my $lock = $self->{main}->lock('UPDATE'); # Flush the old menu. # Menu entry count starts at 0 # The first 3 entries are "open all", "clean list" and a separator my $recentfiles = $self->{recentfiles}; foreach my $i ( reverse( 3 .. $recentfiles->GetMenuItemCount - 1 ) ) { my $item = $recentfiles->FindItemByPosition($i) or next; $recentfiles->Delete($item); } # Repopulate with the new files my $last_closed_file_found; foreach my $i ( 1 .. 9 ) { my $file = $files->[ $i - 1 ] or last; # Store last closed file for the 'Open Last Closed File' feature unless ($last_closed_file_found) { $self->{main}->{_last_closed_file} = $file; $last_closed_file_found = 1; } Wx::Event::EVT_MENU( $self->{main}, $recentfiles->Append( -1, "&$i. $file" ), sub { $self->on_recent($file); }, ); } # Enable/disable 'Open Last Closed File' menu item $self->{open_last_closed_file}->Enable( $last_closed_file_found ? 1 : 0 ); return; } sub on_recent { my $self = shift; my $file = shift; # The file will most likely exist if ( -f $file ) { $self->{main}->setup_editors($file); return; } # Because we filter for files that exist to generate the recent files # list, anything that doesn't exist must have been deleted a short # time ago. So we can remove it from history, it won't be coming back. Padre::DB::History->delete_where( 'name = ? and type = ?', $file, 'files', ); Wx::MessageBox( sprintf( Wx::gettext('File %s not found.'), $file ), Wx::gettext('Open cancelled'), Wx::OK, $self->{main}, ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/Refactor.pm������������������������������������������������������������0000644�0001750�0001750�00000004616�12237327555�016371� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Refactor; # Fully encapsulated Refactor menu use 5.008; use strict; use warnings; use List::Util (); use File::Spec (); use File::HomeDir (); use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Locale (); use Padre::Current (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; # Cache the configuration $self->{config} = Padre->ide->config; # Perl-Specific Refactoring $self->{rename_variable} = $self->add_menu_action( $self, 'perl.rename_variable', ); # Create the variable-style submenu my $style = Wx::Menu->new; $self->{variable_style_menu} = $self->Append( -1, Wx::gettext('&Change variable style'), $style, ); $self->add_menu_action( $style, 'perl.variable_to_camel_case', ); $self->add_menu_action( $style, 'perl.variable_to_camel_case_ucfirst', ); $self->add_menu_action( $style, 'perl.variable_from_camel_case', ); $self->add_menu_action( $style, 'perl.variable_from_camel_case_ucfirst', ); $self->{extract_subroutine} = $self->add_menu_action( 'perl.extract_subroutine', ); $self->{introduce_temporary} = $self->add_menu_action( 'perl.introduce_temporary', ); $self->AppendSeparator; $self->{endify_pod} = $self->add_menu_action( 'perl.endify_pod', ); return $self; } sub title { Wx::gettext('Ref&actor'); } sub refresh { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $document = $current->document; $self->{rename_variable}->Enable( $document->can('rename_variable') ? 1 : 0 ); $self->{introduce_temporary}->Enable( $document->can('introduce_temporary_variable') ? 1 : 0 ); $self->{extract_subroutine}->Enable( $document->can('extract_subroutine') ? 1 : 0 ); $self->{endify_pod}->Enable( $document->isa('Padre::Document::Perl') ? 1 : 0 ); $self->{variable_style_menu}->Enable( $document->isa('Padre::Document::Perl') ? 1 : 0 ); return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/View.pm����������������������������������������������������������������0000644�0001750�0001750�00000017222�12237327555�015533� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::View; # Fully encapsulated View menu use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Current (); use Padre::Feature (); use Padre::Wx (); use Padre::Wx::ActionLibrary (); use Padre::Wx::Menu (); use Padre::Locale (); our $VERSION = '1.00'; our $COMPATIBLE = '0.87'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; my $config = $main->config; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; # Can the user move stuff around $self->{lockinterface} = $self->add_menu_action( 'view.lockinterface', ); $self->AppendSeparator; # Show or hide GUI elements if (Padre::Feature::COMMAND) { $self->{command} = $self->add_menu_action( 'view.command', ); } if (Padre::Feature::CPAN) { $self->{cpan} = $self->add_menu_action( 'view.cpan', ); } $self->{functions} = $self->add_menu_action( 'view.functions', ); $self->{directory} = $self->add_menu_action( 'view.directory', ); $self->{outline} = $self->add_menu_action( 'view.outline', ); $self->{output} = $self->add_menu_action( 'view.output', ); $self->{syntax} = $self->add_menu_action( 'view.syntax', ); $self->{tasks} = $self->add_menu_action( 'view.tasks', ); if (Padre::Feature::VCS) { $self->{vcs} = $self->add_menu_action('view.vcs'); } $self->{toolbar} = $self->add_menu_action( 'view.toolbar', ); $self->{statusbar} = $self->add_menu_action( 'view.statusbar', ); $self->AppendSeparator; # View as (Highlighting File Type) SCOPE: { $self->{view_as_highlighting} = Wx::Menu->new; $self->Append( -1, Wx::gettext("&View Document As..."), $self->{view_as_highlighting} ); foreach my $name ( $self->sorted ) { my $radio = $self->add_menu_action( $self->{view_as_highlighting}, "view.mime.$name", ); } } $self->AppendSeparator; # Show or hide editor elements $self->{currentline} = $self->add_menu_action( 'view.currentline', ); $self->{lines} = $self->add_menu_action( 'view.lines', ); $self->{indentation_guide} = $self->add_menu_action( 'view.indentation_guide', ); $self->{whitespaces} = $self->add_menu_action( 'view.whitespaces', ); $self->{calltips} = $self->add_menu_action( 'view.calltips', ); $self->{eol} = $self->add_menu_action( 'view.eol', ); $self->{rightmargin} = $self->add_menu_action( 'view.rightmargin', ); # Code folding menu entries if (Padre::Feature::FOLDING) { $self->AppendSeparator; $self->{folding} = $self->add_menu_action( 'view.folding', ); $self->{fold_all} = $self->add_menu_action( 'view.fold_all', ); $self->{unfold_all} = $self->add_menu_action( 'view.unfold_all', ); $self->{fold_this} = $self->add_menu_action( 'view.fold_this', ); } $self->AppendSeparator; $self->{word_wrap} = $self->add_menu_action( 'view.word_wrap', ); $self->AppendSeparator; # Font Size if (Padre::Feature::FONTSIZE) { $self->{fontsize} = Wx::Menu->new; $self->Append( -1, Wx::gettext('Font Si&ze'), $self->{fontsize} ); $self->{font_increase} = $self->add_menu_action( $self->{fontsize}, 'view.font_increase', ); $self->{font_decrease} = $self->add_menu_action( $self->{fontsize}, 'view.font_decrease', ); $self->{font_reset} = $self->add_menu_action( $self->{fontsize}, 'view.font_reset', ); } # Language Support Padre::Wx::ActionLibrary->init_language_actions; # TO DO: God this is horrible, there has to be a better way my $default = Padre::Locale::system_rfc4646() || 'x-unknown'; my $current = Padre::Locale::rfc4646(); my %language = Padre::Locale::menu_view_languages(); # Parent Menu $self->{language} = Wx::Menu->new; $self->Append( -1, Wx::gettext('Lan&guage'), $self->{language} ); # Default menu entry $self->{language_default} = $self->add_menu_action( $self->{language}, 'view.language.default', ); if ( defined $config->locale and $config->locale eq $default ) { $self->{language_default}->Check(1); } $self->{language}->AppendSeparator; foreach my $name ( sort { $language{$a} cmp $language{$b} } keys %language ) { my $radio = $self->add_menu_action( $self->{language}, "view.language.$name", ); if ( $current eq $name ) { $radio->Check(1); } } $self->AppendSeparator; # Window Effects $self->add_menu_action( 'view.full_screen', ); return $self; } sub title { Wx::gettext('&View'); } sub refresh { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $config = $current->config; my $document = $current->document; my $doc = $document ? 1 : 0; # Simple check state cases from configuration $self->{eol}->Check( $config->editor_eol ); $self->{tasks}->Check( $config->main_tasks ); $self->{lines}->Check( $config->editor_linenumbers ); $self->{output}->Check( $config->main_output ); $self->{syntax}->Check( $config->main_syntax ); $self->{outline}->Check( $config->main_outline ); $self->{toolbar}->Check( $config->main_toolbar ); $self->{calltips}->Check( $config->editor_calltips ); $self->{functions}->Check( $config->main_functions ); $self->{directory}->Check( $config->main_directory ); $self->{statusbar}->Check( $config->main_statusbar ); $self->{currentline}->Check( $config->editor_currentline ); $self->{rightmargin}->Check( $config->editor_right_margin_enable ); $self->{whitespaces}->Check( $config->editor_whitespace ); $self->{lockinterface}->Check( $config->main_lockinterface ); $self->{indentation_guide}->Check( $config->editor_indentationguides ); if (Padre::Feature::VCS) { $self->{vcs}->Check( $config->main_vcs ); } if (Padre::Feature::CPAN) { $self->{cpan}->Check( $config->main_cpan ); } if (Padre::Feature::COMMAND) { $self->{command}->Check( $config->main_command ); } if (Padre::Feature::FOLDING) { my $folding = $config->editor_folding; $self->{folding}->Check($folding); $self->{fold_all}->Enable($folding); $self->{unfold_all}->Enable($folding); $self->{fold_this}->Enable($folding); } # Check state for word wrap is document-specific if ($document) { my $editor = $document->editor; my $mode = $editor->get_wrap_mode; my $wrap = $self->{word_wrap}; if ( $mode eq 'WORD' and not $wrap->IsChecked ) { $wrap->Check(1); } elsif ( $mode eq 'NONE' and $wrap->IsChecked ) { $wrap->Check(0); } # Set mimetype my $has_checked = 0; if ( $document->mimetype ) { my @list = $self->sorted; foreach my $pos ( 0 .. $#list ) { my $radio = $self->{view_as_highlighting}->FindItemByPosition($pos); if ( $document->mimetype eq $list[$pos] ) { $radio->Check(1); $has_checked = 1; } } } # By default 'Plain Text'; unless ($has_checked) { $self->{view_as_highlighting}->FindItemByPosition(0)->Check(1); } } # Disable zooming if there's no current document if (Padre::Feature::FONTSIZE) { $self->{font_increase}->Enable($doc); $self->{font_decrease}->Enable($doc); $self->{font_reset}->Enable($doc); } return; } sub sorted { my $self = shift; my %names = map { $_ => Wx::gettext( Padre::MIME->find($_)->name ) } Padre::MIME->types; # Can't do "return sort", must sort to a list first my @sorted = sort { ( $b eq 'text/plain' ) <=> ( $a eq 'text/plain' ) or $names{$a} cmp $names{$b} } keys %names; return @sorted; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/Window.pm��������������������������������������������������������������0000644�0001750�0001750�00000007402�12237327555�016067� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Window; # Fully encapsulated Window menu use 5.008; use strict; use warnings; use List::Util (); use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Current (); use Padre::Feature (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); $self->{main} = $main; # File Navigation $self->{window_next_file} = $self->add_menu_action( 'window.next_file', ); $self->{window_previous_file} = $self->add_menu_action( 'window.previous_file', ); $self->AppendSeparator; $self->{window_right_click} = $self->add_menu_action( 'window.right_click', ); $self->AppendSeparator; # Window Navigation $self->{window_goto_command_window} = $self->add_menu_action( 'window.goto_command_window', ); $self->{window_goto_cpan_window} = $self->add_menu_action( 'window.goto_cpan_window', ) if Padre::Feature::CPAN; $self->{window_goto_functions_window} = $self->add_menu_action( 'window.goto_functions_window', ); $self->{window_goto_outline_window} = $self->add_menu_action( 'window.goto_outline_window', ); $self->{window_goto_main_window} = $self->add_menu_action( 'window.goto_main_window', ); $self->{window_goto_syntax_check_window} = $self->add_menu_action( 'window.goto_syntax_check_window', ); # Save everything we need to keep $self->{base} = $self->GetMenuItemCount; return $self; } sub title { Wx::gettext('&Window'); } sub refresh { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $notebook = $current->notebook or return; my $pages = $notebook->GetPageCount; # Toggle window operations based on number of pages my $enable = $pages ? 1 : 0; $self->{window_next_file}->Enable($enable); $self->{window_previous_file}->Enable($enable); $self->{window_right_click}->Enable($enable); return 1; } sub refresh_windowlist { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $notebook = $current->notebook or return; my $previous = $self->GetMenuItemCount - $self->{base} - 1; my $pages = $notebook->GetPageCount - 1; my @label = $notebook->labels; my @order = sort { $label[$a][0] cmp $label[$b][0] } ( 0 .. $#label ); # If we are changing from none to any, add the separator if ( $previous == -1 ) { $self->AppendSeparator if $pages >= 0; } else { $previous--; } # Overwrite the labels of existing entries where possible foreach my $nth ( 0 .. List::Util::min( $previous, $pages ) ) { my $item = $self->FindItemByPosition( $self->{base} + $nth + 1 ); $item->SetText( $label[ $order[$nth] ][0] ); $item->SetHelp( $label[ $order[$nth] ][1] ); } # Add menu entries if we have extra labels foreach my $nth ( $previous + 1 .. $pages ) { my $item = $self->Append( -1, $label[ $order[$nth] ][0] ); $item->SetHelp( $label[ $order[$nth] ][1] ); Wx::Event::EVT_MENU( $self->{main}, $item, sub { my $id = $notebook->find_pane_by_label( $item->GetLabel ); return if not defined $id; # TODO warn if this happens! $_[0]->on_nth_pane($id); }, ); } # Remove menu entries if we have too many foreach my $nth ( reverse( $pages + 1 .. $previous ) ) { $self->Delete( $self->FindItemByPosition( $self->{base} + $nth + 1 ) ); } # If we have moved from any to no menus, remove the separator if ( $previous >= 0 and $pages == -1 ) { $self->Delete( $self->FindItemByPosition( $self->{base} ) ); } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/Help.pm����������������������������������������������������������������0000644�0001750�0001750�00000004325�12237327555�015511� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Help; # Fully encapsulated help menu use 5.008; use strict; use warnings; use utf8; use Padre::Constant (); use Padre::Current (); use Padre::Locale (); use Padre::Wx (); use Padre::Wx::Menu (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); $self->{main} = $main; # Add the POD-based help launchers $self->add_menu_action('help.help'); $self->add_menu_action( 'help.context_help', ); $self->add_menu_action( 'help.search', ); $self->{current} = $self->add_menu_action( 'help.current', ); # Live Support $self->AppendSeparator; $self->{live} = Wx::Menu->new; $self->Append( -1, Wx::gettext("&Live Support"), $self->{live} ); $self->add_menu_action( $self->{live}, 'help.live_support', ); $self->{live}->AppendSeparator; $self->add_menu_action( $self->{live}, 'help.perl_en', ); $self->add_menu_action( $self->{live}, 'help.perl_jp', ); if (Padre::Constant::WIN32) { $self->add_menu_action( $self->{live}, 'help.win32_questions', ); } $self->AppendSeparator; # Add interesting and helpful websites $self->add_menu_action( 'help.visit_perl_websites', ); $self->AppendSeparator; # Add Padre website tools $self->add_menu_action( 'help.report_a_bug', ); $self->add_menu_action( 'help.view_all_open_bugs', ); $self->add_menu_action( 'help.translate_padre', ); $self->AppendSeparator; # Add the About $self->add_menu_action( 'help.about', ); # Add the About2 $self->add_menu_action( 'help.about2', ); return $self; } sub title { Wx::gettext('&Help'); } sub refresh { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $hasdoc = $current->document ? 1 : 0; # Don't show "Current Document" unless there is one $self->{current}->Enable($hasdoc); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/Search.pm��������������������������������������������������������������0000644�0001750�0001750�00000004450�12237327555�016025� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Search; # Fully encapsulated Search menu use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Current (); use Padre::Feature (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; my $config = $main->config; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; # Search $self->{find} = $self->add_menu_action( 'search.find', ); $self->{find_next} = $self->add_menu_action( 'search.find_next', ); $self->{find_previous} = $self->add_menu_action( 'search.find_previous', ); $self->AppendSeparator; # Search and Replace $self->{replace} = $self->add_menu_action( 'search.replace', ); $self->AppendSeparator; # Recursive Search $self->add_menu_action( 'search.find_in_files', ); # Recursive Replace $self->add_menu_action( 'search.replace_in_files', ); # Special Search $self->AppendSeparator; $self->{goto} = $self->add_menu_action( 'search.goto', ); # Bookmark Support if (Padre::Feature::BOOKMARK) { $self->AppendSeparator; $self->{bookmark_set} = $self->add_menu_action( 'search.bookmark_set', ); $self->{bookmark_goto} = $self->add_menu_action( 'search.bookmark_goto', ); } $self->AppendSeparator; $self->add_menu_action( 'search.open_resource', ); $self->add_menu_action( 'search.quick_menu_access', ); return $self; } sub title { Wx::gettext('&Search'); } sub refresh { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $editor = $current->editor ? 1 : 0; $self->{find}->Enable($editor); $self->{find_next}->Enable($editor); $self->{find_previous}->Enable($editor); $self->{replace}->Enable($editor); $self->{goto}->Enable($editor); # Bookmarks can only be placed on files on disk if (Padre::Feature::BOOKMARK) { $self->{bookmark_set}->Enable( ( $editor and defined $current->filename ) ? 1 : 0 ); } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu/Debug.pm���������������������������������������������������������������0000644�0001750�0001750�00000003733�12237327555�015651� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu::Debug; # Fully encapsulated Debug menu use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Menu (); use Padre::Current (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::Menu'; ##################################################################### # Padre::Wx::Menu Methods sub new { my $class = shift; my $main = shift; # Create the empty menu as normal my $self = $class->SUPER::new(@_); # Add additional properties $self->{main} = $main; $self->{breakpoints} = $self->add_menu_action( 'debug.breakpoints', ); $self->{debugoutput} = $self->add_menu_action( 'debug.debugoutput', ); $self->{debugger} = $self->add_menu_action( 'debug.debugger', ); $self->AppendSeparator; $self->{launch} = $self->add_menu_action( 'debug.launch', ); $self->{launch_options} = $self->add_menu_action( 'debug.launch_options', ); $self->{set_breakpoint} = $self->add_menu_action( 'debug.set_breakpoint', ); $self->{quit} = $self->add_menu_action( 'debug.quit', ); $self->AppendSeparator; $self->{visit_debug_wiki} = $self->add_menu_action( 'debug.visit_debug_wiki', ); return $self; } sub title { Wx::gettext('&Debug'); } sub refresh { my $self = shift; my $main = shift; my $current = Padre::Current::_CURRENT(@_); my $config = $current->config; my $document = Padre::Current::_CURRENT(@_)->document; my $hasdoc = $document ? 1 : 0; $self->{breakpoints}->Check( $config->main_breakpoints ); $self->{debugoutput}->Check( $config->main_debugoutput ); $self->{debugger}->Check( $config->main_debugger ); $self->{launch}->Enable(1); $self->{launch_options}->Enable(1); $self->{set_breakpoint}->Enable(1); $self->{quit}->Enable(1); $self->{visit_debug_wiki}->Enable(1); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������Padre-1.00/lib/Padre/Wx/App.pm����������������������������������������������������������������������0000644�0001750�0001750�00000006476�12237327555�014446� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::App; =pod =head1 NAME Padre::Wx::App - Padre main Wx application abstraction =head1 DESCRIPTION For architectural clarity, L<Padre> maintains two separate collections of resources, a Wx object tree representing the literal GUI elements, and a second tree of objects representing the abstract concepts, such as configuration, projects, and so on. Theoretically, this should allow Padre to run automated processes of various types without having to bootstrap a process up into an entire 30+ megabyte Wx-capable instance. B<Padre::Wx::App> is a L<Wx::App> subclass that represents the Wx application as a whole, and acts as the root of the object tree for the GUI elements. From the main L<Padre> object, it can be accessed via the C<wx> method. =head1 METHODS =cut use 5.008; use strict; use warnings; use Padre::Wx (); our $VERSION = '1.00'; our @ISA = 'Wx::App'; ##################################################################### # Constructor and Accessors sub create { my $class = shift; my $self = $class->new; # Check we only set up the application once if ( $self->{ide} ) { die "Cannot instantiate $class multiple times"; } # Save a link back to the IDE object $self->{ide} = shift; # Immediately build the main window require Padre::Wx::Main; $self->{main} = Padre::Wx::Main->new( $self->{ide} ); # Create the action queue require Padre::Wx::ActionQueue; $self->{queue} = Padre::Wx::ActionQueue->new($self); return $self; } # Compulsory Wx methods sub OnInit { my $self = shift; # Bootstrap some Wx internals Wx::Log::SetActiveTarget( Wx::LogStderr->new ); # Create the PlThreadEvent receiver require Padre::Wx::Frame::Null; $self->{conduit} = Padre::Wx::Frame::Null->new; $self->{conduit}->conduit_init; # Return true to continue return 1; } # Clean up in reverse order sub OnExit { my $self = shift; # Action queue if ( defined $self->{queue} ) { delete $self->{queue}; } # Main window if ( defined $self->{main} ) { delete $self->{main}; } # PlThreadEvent conduit if ( defined $self->{conduit} ) { $self->{conduit}->Destroy; delete $self->{conduit}; } # IDE object if ( defined $self->{ide} ) { delete $self->{ide}; } return 1; } =pod =head2 C<ide> The C<ide> accessor provides a link back to the parent L<Padre> IDE object. =cut sub ide { $_[0]->{ide}; } =pod =head2 C<main> The C<main> accessor returns the L<Padre::Wx::Main> object for the application. =cut sub main { $_[0]->{main}; } =pod =head2 C<config> The C<config> accessor returns the L<Padre::Config> for the application. =cut sub config { $_[0]->{ide}->config; } =pod =head2 C<queue> The C<queue> accessor returns the L<Padre::Wx::ActionQueue> for the application. =cut sub queue { $_[0]->{queue}; } =pod =head2 C<conduit> The C<conduit> accessor returns the L<Padre::Wx::Role::Conduit> for the application. =cut sub conduit { $_[0]->{conduit}; } 1; =pod =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ToolBar.pm������������������������������������������������������������������0000644�0001750�0001750�00000010716�12237327555�015260� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::ToolBar; # Implements a toolbar with a small amount of extra intelligence. # Please note that currently this toolbar class is ONLY suitable for # use as the toolbar for the main window and is not reusable. use 5.008; use strict; use warnings; use Params::Util (); use Padre::Current (); use Padre::Wx (); use Padre::Wx::Icon (); use Padre::Wx::Editor (); use Padre::Constant (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::ToolBar }; # NOTE: Something is wrong with dockable toolbars on Windows # so disable them for now. use constant DOCKABLE => !Padre::Constant::WIN32; ###################################################################### # Construction sub new { my $class = shift; my $main = shift; my $config = $main->config; # Prepare the style my $style = Wx::TB_HORIZONTAL | Wx::TB_FLAT | Wx::TB_NODIVIDER | Wx::BORDER_NONE; if ( DOCKABLE and not $config->main_lockinterface ) { $style = $style | Wx::TB_DOCKABLE; } # Create the parent Wx object my $self = $class->SUPER::new( $main, -1, Wx::DefaultPosition, Wx::DefaultSize, $style, 5050, ); # Default icon size is 16x15 for Wx, to use the 16x16 GPL # icon sets we need to be SLIGHTLY bigger. $self->SetToolBitmapSize( Wx::Size->new( 16, 16 ) ); # This is a very first step to create a customizable toolbar. # Actually there is no dialog for editing this parameter, if # anyone wants to change the toolbar, it needs to be done manuelly # within config.yml. my @tools = split /\;/, $config->main_toolbar_items; foreach my $item (@tools) { if ( $item eq '|' ) { $self->add_separator; } elsif ( $item =~ /^(.+?)\((.*)\)$/ ) { $self->add_tool_item( action => "$1", args => split( /\,/, $2 ), ); } elsif ( $item =~ /^(.+?)$/ ) { $self->add_tool_item( action => "$1", ); } else { # Silently ignore bad toolbar elements (for now) # warn( 'Unknown toolbar item: ' . $item ); } } return $self; } ###################################################################### # Main Methods # Because some tools may not work, we only want to draw the separator # for real once we are absolutely sure there is a real tool after it. sub add_separator { $_[0]->{separator} = 1; } # Add a tool item to the toolbar re-using Padre menu action name sub add_tool_item { my $self = shift; my %args = @_; # Find the action, silently aborting if it is unusable my $actions = $self->ide->actions; my $action = $actions->{ $args{action} } or return; my $icon = $action->toolbar_icon or return; # Make sure the item list if initialised unless ( Params::Util::_HASH0( $self->{item_list} ) ) { $self->{item_list} = {}; } # The ID code should be unique otherwise it can break the event # system. If set to -1 such as in the default call below, # it will override any previous item with that id. my $id = Wx::NewId(); $self->{item_list}->{$id} = $action; # If there is a delayed separator, add it now if ( $self->{separator} ) { $self->AddSeparator; $self->{separator} = 0; } # Create the tool $self->AddTool( $id, '', Padre::Wx::Icon::find($icon), $action->label_text, ); # Add the optional event hook Wx::Event::EVT_TOOL( $self->main, $id, $action->menu_event, ); return $id; } sub refresh { my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $editor = $current->editor; my $document = $current->document; my $modified = ( defined $document and $document->is_modified ); my $text = defined Params::Util::_STRING( $current->text ); my $file = ( defined $document and defined $document->file and defined $document->file->filename ); foreach my $item ( keys( %{ $self->{item_list} } ) ) { my $action = $self->{item_list}->{$item}; if ( $action->{need_editor} and not $editor ) { $self->EnableTool( $item, 0 ); } elsif ( $action->{need_file} and not $file ) { $self->EnableTool( $item, 0 ); } elsif ( $action->{need_modified} and not $modified ) { $self->EnableTool( $item, 0 ); } elsif ( $action->{need_selection} and not $text ) { $self->EnableTool( $item, 0 ); } elsif ( $action->{need} and not $action->{need}->($current) ) { $self->EnableTool( $item, 0 ); } else { $self->EnableTool( $item, 1 ); } } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������Padre-1.00/lib/Padre/Wx/Main.pm���������������������������������������������������������������������0000644�0001750�0001750�00000470032�12237327555�014603� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Main; use utf8; =encoding UTF-8 =pod =head1 NAME Padre::Wx::Main - The main window for the Padre IDE =head1 DESCRIPTION C<Padre::Wx::Main> implements Padre's main window. It is the window containing the menus, the notebook with all opened tabs, the various sub-windows (outline, subs, output, errors, etc). It inherits from C<Wx::Frame>, so check Wx documentation to see all the available methods that can be applied to it besides the added ones (see below). =cut use v5.10; # use 5.008005; use strict; use warnings; use Cwd (); use Carp (); use Config (); use File::Spec (); use File::Basename (); use File::Temp (); use Scalar::Util (); use Params::Util (); use Wx::Scintilla::Constant (); use Padre::Constant (); use Padre::Util (); use Padre::Locale (); use Padre::Current (); use Padre::DB (); use Padre::Feature (); use Padre::Locker (); use Padre::Wx (); use Padre::Wx::Action (); use Padre::Wx::ActionLibrary (); use Padre::Wx::Icon (); use Padre::Wx::Theme (); use Padre::Wx::Display (); use Padre::Wx::Menubar (); use Padre::Wx::Notebook (); use Padre::Wx::StatusBar (); use Padre::Wx::AuiManager (); use Padre::Wx::FileDropTarget (); use Padre::Wx::Role::Conduit (); use Padre::Wx::Role::Dialog (); use Padre::Wx::Role::Timer (); use Padre::Wx::Role::Idle (); use Padre::Locale::T; use Padre::Logger; our $VERSION = '1.00'; our $COMPATIBLE = '0.91'; our @ISA = qw{ Padre::Wx::Role::Conduit Padre::Wx::Role::Dialog Padre::Wx::Role::Timer Padre::Wx::Role::Idle Wx::Frame }; use constant SECONDS => 1000; # Convenience until we get a config param or something use constant BACKUP_INTERVAL => 30; # The names of our tool panels use constant PANELS => qw{ left right bottom }; =pod =head1 PUBLIC API =head2 Constructor There's only one constructor for this class. =head3 C<new> my $main = Padre::Wx::Main->new($ide); Create and return a new Padre main window. One should pass a C<Padre> object as argument, to get a reference to the Padre application. =cut # NOTE: Yes this method does get a little large, but that's fine. # It's better to have one bigger method that is easily # understandable rather than scattering tightly-related code # all over the file in unrelated places. # If you feel the need to make this smaller, try to make each # individual step tighter and better abstracted. sub new { my $class = shift; my $ide = shift; unless ( Params::Util::_INSTANCE( $ide, 'Padre' ) ) { Carp::croak("Did not provide an ide object to Padre::Wx::Main->new"); } # Initialise the style and position my $config = $ide->config; my $size = [ $config->main_width, $config->main_height ]; my $position = [ $config->main_left, $config->main_top ]; my $style = Wx::DEFAULT_FRAME_STYLE | Wx::CLIP_CHILDREN; # If we closed while maximized on the previous run, # the previous size is completely suspect. # This doesn't work on Windows, # so we use a different mechanism for it. if ( not Padre::Constant::WIN32 and $config->main_maximized ) { $style |= Wx::MAXIMIZE; } # Generate a smarter default size than Wx does if ( grep { defined $_ and $_ eq '-1' } ( @$size, @$position ) ) { my $rect = Padre::Wx::Display::primary_default(); $size = $rect->GetSize; $position = $rect->GetPosition; } # Create the underlying Wx frame my $self = $class->SUPER::new( undef, -1, 'Padre', $position, $size, $style, ); # On Windows you need to create the window and maximise it # as two separate steps. Doing this makes the window layout look # wrong, but at least it has the correct proportions. To fix the # buggy layout we will unmaximize and remaximize it again later # just before we ->Show the window. if ( Padre::Constant::WIN32 and $config->main_maximized ) { $self->Maximize(1); } # Start with a simple placeholder title $self->SetTitle('Padre'); # Save a reference back to the parent IDE $self->{ide} = $ide; # Save a reference to the configuration object. # This prevents tons of ide->config $self->{config} = $config; # Remember where the editor started from this could be handy later. $self->{cwd} = Cwd::cwd(); # There is a directory locking problem on Win32. # If we open Padre from a directory and leave the Cwd cursor # in that directory, then it can NEVER be deleted. # Having recorded the "current working directory" move # the OS directory cursor away from this starting directory, # so that Padre won't hold an implicit OS lock on it. # NOTE: If changing the directory fails, ignore errors for now, # since that means we have WAY bigger problems. if (Padre::Constant::WIN32) { require File::HomeDir; chdir( File::HomeDir->my_home ); } # Create the lock manager before any gui operations, # so that we can do locking operations during startup. $self->{locker} = Padre::Locker->new($self); # Bootstrap locale support before we start fiddling with the GUI. my $startup_locale = $ide->opts->{startup_locale}; $self->{locale} = ( $startup_locale ? Padre::Locale::object($startup_locale) : Padre::Locale::object() ); # Bootstrap style information in case the GUI will need it $self->{theme} = Padre::Wx::Theme->find( $config->editor_style ); # A large complex application looks, frankly, utterly stupid # if it gets very small, or even mildly small. $self->SetMinSize( Wx::Size->new( 500, 400 ) ); # Bootstrap drag and drop support Padre::Wx::FileDropTarget->set($self); # Bootstrap the action system Padre::Wx::ActionLibrary->init($self); # Temporary store for the notebook tab history # TO DO: Storing this here (might) violate encapsulation. # It should probably be in the notebook object. $self->{page_history} = []; # Set the window manager $self->{aui} = Padre::Wx::AuiManager->new($self); # Add some additional attribute slots $self->{marker} = {}; # Backup time tracking $self->{backup} = 0; # Create the menu bar $self->{menu} = Padre::Wx::Menubar->new($self); $self->SetMenuBar( $self->{menu}->wx ); # Create the tool bar if ( $config->main_toolbar ) { require Padre::Wx::ToolBar; $self->SetToolBar( Padre::Wx::ToolBar->new($self) ); $self->GetToolBar->Realize; } # Create the status bar my $statusbar = Padre::Wx::StatusBar->new($self); $self->SetStatusBar($statusbar); # Create the notebooks (document and tools) that # serve as the main AUI manager GUI elements. $self->{notebook} = Padre::Wx::Notebook->new($self); # Use Padre's icon if (Padre::Constant::WIN32) { # Windows needs its ICO'n file for Padre to look cooler in # the task bar, task switch bar and task manager $self->SetIcons(Padre::Wx::Icon::PADRE_ICON_FILE); } else { $self->SetIcon(Padre::Wx::Icon::PADRE); } # Activate Padre after a period not showing Padre Wx::Event::EVT_ACTIVATE( $self, sub { if ( $_[1]->GetActive ) { return shift->on_activate(@_); } else { return shift->on_deactivate(@_); } }, ); # Deal with someone closing the window Wx::Event::EVT_CLOSE( $self, sub { shift->on_close_window(@_); }, ); # Save maximize state after it changes Wx::Event::EVT_MAXIMIZE( $self, sub { shift->window_save; shift->Skip(1); }, ); # Save window position whenever the window is moved Wx::Event::EVT_MOVE( $self, sub { shift->window_save; shift->Skip(1); }, ); # Set up the pane close event Wx::Event::EVT_AUI_PANE_CLOSE( $self, sub { shift->on_aui_pane_close(@_); }, ); # Special Key Handling Wx::Event::EVT_KEY_UP( $self, sub { shift->key_up(@_); }, ); # Scintilla Event Hooks # We delay per-stc-update processing until idle. # This is primarily due to a defect http://trac.wxwidgets.org/ticket/4272: # No status bar updates during STC_PAINTED, which we appear to hit on UPDATEUI. Wx::Event::EVT_STC_UPDATEUI( $self, -1, sub { $_[0]->idle_method('on_stc_updateui'); } ); Wx::Event::EVT_STC_CHANGE( $self, -1, \&on_stc_change ); Wx::Event::EVT_STC_STYLENEEDED( $self, -1, \&on_stc_style_needed ); Wx::Event::EVT_STC_CHARADDED( $self, -1, \&on_stc_char_added ); # Show the tools that the configuration dictates. # Use the fast and crude internal versions here only, # so we don't accidentally trigger any configuration writes. $self->show_view( tasks => $config->main_tasks ); $self->show_view( functions => $config->main_functions ); $self->show_view( outline => $config->main_outline ); $self->show_view( directory => $config->main_directory ); $self->show_view( syntax => $config->main_syntax ); $self->show_view( output => $config->main_output ); if (Padre::Feature::COMMAND) { $self->show_view( command => $config->main_command ); } if (Padre::Feature::VCS) { $self->show_view( vcs => $config->main_vcs ); } if (Padre::Feature::CPAN) { $self->show_view( cpan => $config->main_cpan ); } $self->show_view( debugger => $config->main_debugger ); $self->show_view( breakpoints => $config->main_breakpoints ); $self->show_view( debugoutput => $config->main_debugoutput ); # Lock the panels if needed $self->aui->lock_panels( $config->main_lockinterface ); # This require is only here so it can follow this constructor # when it moves to being created on demand. if (Padre::Feature::DEBUGGER) { # Reset the value to the default setting my $name = "main_toolbar_items"; my $value = $config->main_toolbar_items; $config->apply( $name, $value ); } # We need an event immediately after the window opened # (we had an issue that if the default of main_statusbar was false it did # not show the status bar which is ok, but then when we selected the menu # to show it, it showed at the top) so now we always turn the status bar on # at the beginning and hide it in the timer, if it was not needed # TO DO: there might be better ways to fix that issue... #$statusbar->Show; $self->dwell_start( timer_start => 1 ); return $self; } # HACK: When the $Padre::INVISIBLE variable is set (during testing) never # show the main window. This exists because people tend to get annoyed when # you flicker a bunch of windows on and off the screen during testing. sub Show { return shift->SUPER::Show( $Padre::Test::VERSION ? 0 : @_ ); } # This is effectively the second half of the constructor, which is delayed # until after the window has been shown and the main loop has been started. # All loading and initialisation which is expensive or needs a running # application (with gui tools and threads and so on) go here. sub timer_start { my $self = shift; my $config = $self->config; my $manager = $self->ide->plugin_manager; # Do an initial Show/paint of the complete-looking main window # without any files loaded. We'll then immediately start an # update lock so that loading of the files is done in a single # render pass. # This gives us an optimum compromise between being PERCEIVED # to start-up quickly, and ACTUALLY starting up quickly. if ( Padre::Constant::WIN32 and $config->main_maximized ) { # This is a hacky workaround for buggy maximise-at-startup # layout generation on windows. my $lock = $self->lock('UPDATE'); $self->Maximize(0); $self->Show(1); $self->Maximize(1); } else { $self->Show(1); } # If the position mandated by the configuration is now # off the screen (typically because we've changed the screen # size, reposition to the defaults). # This must happen AFTER the initial ->Show(1) because otherwise # ->IsShownOnScreen returns a false-negative result. unless ( Padre::Wx::Display->perfect($self) ) { my $rect = Padre::Wx::Display::primary_default(); $self->SetSizeRect($rect); } # Lock everything during the initial opening of files. # Run a whole bunch of refresh methods when this is done, # as we will be in our final startup editor state and can be # sure it won't change on us in the future. # Anything else that needs to have it's refresh method called # as part of initialisation should be added to the list here. SCOPE: { my $lock = $self->lock( qw{ UPDATE DB refresh refresh_recent refresh_windowlist } ); # Load all files and refresh the application so that it # represents the loaded state. $self->load_files; # Cannot use the toggle sub here as that one reads from the Menu and # on some machines the Menu is not configured yet at this point. if ( $config->main_statusbar ) { $self->GetStatusBar->Show; } else { $self->GetStatusBar->Hide; } $manager->enable_editors_for_all; } # Start the single instance server if ( $config->main_singleinstance ) { $self->single_instance_start; } # Check for new plug-ins and alert the user to them $manager->alert_new; # Start the task manager $self->ide->task_manager->start; # Start the change detection timer my $interval = $config->update_file_from_disk_interval * SECONDS; $self->poll_start( timer_check_overwrite => $interval ); # Give a chance for post-start code to run, then do the nth-start logic $self->dwell_start( timer_nth => 5 * SECONDS ); return; } sub timer_nth { my $self = shift; # Hand off to the nth start system unless ($Padre::Test::VERSION) { require Padre::Wx::Nth; Padre::Wx::Nth->nth( $self, $self->config->nth_startup ); } return 1; } ##################################################################### =pod =head2 Accessors The following methods access the object attributes. They are both getters and setters, depending on whether you provide them with an argument. Use them wisely. Accessors to GUI elements: =over 4 =item * C<title> =item * C<config> =item * C<aui> =item * C<menu> =item * C<notebook> =item * C<left> =item * C<right> =item * C<functions> =item * C<tasks> =item * C<outline> =item * C<directory> =item * C<bottom> =item * C<output> =item * C<syntax> =item * C<vcs> =back Accessors to operating data: =over 4 =item * C<cwd> =back Accessors that may not belong to this class: =cut use Class::XSAccessor { predicates => { # Needed for lazily-constructed GUI elements has_about => 'about', has_left => 'left', has_right => 'right', has_bottom => 'bottom', has_breakpoints => 'breakpoints', has_debugoutput => 'debugoutput', has_debugger => 'debugger', has_output => 'output', has_command => 'command', has_syntax => 'syntax', has_vcs => 'vcs', has_cpan => 'cpan', has_functions => 'functions', has_tasks => 'tasks', has_outline => 'outline', has_directory => 'directory', has_find => 'find', has_findfast => 'findfast', has_findinfiles => 'findinfiles', has_foundinfiles => 'foundinfiles', has_replace => 'replace', has_replaceinfiles => 'replaceinfiles', has_goto => 'goto', }, getters => { # GUI Elements ide => 'ide', config => 'config', title => 'title', theme => 'theme', aui => 'aui', menu => 'menu', notebook => 'notebook', infomessage => 'infomessage', infomessage_timeout => 'infomessage_timeout', # Operating Data locker => 'locker', cwd => 'cwd', search => 'search', }, }; =pod =head3 C<left> my $panel = $main->left; Returns the left toolbar container panel, creating it if needed. =cut sub left { my $self = shift; unless ( defined $self->{left} ) { require Padre::Wx::Left; $self->{left} = Padre::Wx::Left->new($self); } return $self->{left}; } =pod =head3 C<right> my $panel = $main->right; Returns the right toolbar container panel, creating it if needed. =cut sub right { my $self = shift; unless ( defined $self->{right} ) { require Padre::Wx::Right; $self->{right} = Padre::Wx::Right->new($self); } return $self->{right}; } =pod =head3 C<bottom> my $panel = $main->bottom; Returns the bottom toolbar container panel, creating it if needed. =cut sub bottom { my $self = shift; unless ( defined $self->{bottom} ) { require Padre::Wx::Bottom; $self->{bottom} = Padre::Wx::Bottom->new($self); } return $self->{bottom}; } sub output { my $self = shift; unless ( defined $self->{output} ) { require Padre::Wx::Output; $self->{output} = Padre::Wx::Output->new($self); } return $self->{output}; } BEGIN { no warnings 'once'; *command = sub { my $self = shift; unless ( defined $self->{command} ) { require Padre::Wx::Command; $self->{command} = Padre::Wx::Command->new($self); } return $self->{command}; } if Padre::Feature::COMMAND; } sub functions { my $self = shift; unless ( defined $self->{functions} ) { require Padre::Wx::FunctionList; $self->{functions} = Padre::Wx::FunctionList->new($self); } return $self->{functions}; } sub tasks { my $self = shift; unless ( defined $self->{tasks} ) { require Padre::Wx::TaskList; $self->{tasks} = Padre::Wx::TaskList->new($self); } return $self->{tasks}; } sub syntax { my $self = shift; unless ( defined $self->{syntax} ) { require Padre::Wx::Syntax; $self->{syntax} = Padre::Wx::Syntax->new($self); } return $self->{syntax}; } sub vcs { my $self = shift; unless ( defined $self->{vcs} ) { require Padre::Wx::VCS; $self->{vcs} = Padre::Wx::VCS->new($self); } return $self->{vcs}; } sub cpan { my $self = shift; unless ( defined $self->{cpan} ) { require Padre::Wx::CPAN; $self->{cpan} = Padre::Wx::CPAN->new($self); } return $self->{cpan}; } sub debugger { my $self = shift; unless ( defined $self->{debugger} ) { require Padre::Wx::Panel::Debugger; $self->{debugger} = Padre::Wx::Panel::Debugger->new($self); } return $self->{debugger}; } sub breakpoints { my $self = shift; unless ( defined $self->{breakpoints} ) { require Padre::Wx::Panel::Breakpoints; $self->{breakpoints} = Padre::Wx::Panel::Breakpoints->new($self); } return $self->{breakpoints}; } sub debugoutput { my $self = shift; unless ( defined $self->{debugoutput} ) { require Padre::Wx::Panel::DebugOutput; $self->{debugoutput} = Padre::Wx::Panel::DebugOutput->new($self); } return $self->{debugoutput}; } sub diff { my $self = shift; unless ( defined $self->{diff} ) { require Padre::Wx::Diff; $self->{diff} = Padre::Wx::Diff->new($self); } return $self->{diff}; } sub outline { my $self = shift; unless ( defined $self->{outline} ) { require Padre::Wx::Outline; $self->{outline} = Padre::Wx::Outline->new($self); } return $self->{outline}; } sub directory { my $self = shift; unless ( defined $self->{directory} ) { require Padre::Wx::Directory; $self->{directory} = Padre::Wx::Directory->new($self); } return $self->{directory}; } sub replaceinfiles { my $self = shift; unless ( defined $self->{replaceinfiles} ) { require Padre::Wx::ReplaceInFiles; $self->{replaceinfiles} = Padre::Wx::ReplaceInFiles->new($self); } return $self->{replaceinfiles}; } sub directory_panel { my $self = shift; my $side = $self->config->main_directory_panel; return $self->$side(); } sub open_resource { my $self = shift; unless ( defined $self->{open_resource} ) { require Padre::Wx::Dialog::OpenResource; $self->{open_resource} = Padre::Wx::Dialog::OpenResource->new($self); } return $self->{open_resource}; } sub help_search { my $self = shift; my $topic = shift; unless ( defined $self->{help_search} ) { require Padre::Wx::Dialog::HelpSearch; $self->{help_search} = Padre::Wx::Dialog::HelpSearch->new($self); } $self->{help_search}->show($topic); } =pod =head3 C<find> my $dialog = $main->find; Returns the Find dialog, creating it if needed. =cut sub find { my $self = shift; unless ( defined $self->{find} ) { require Padre::Wx::Dialog::Find; $self->{find} = Padre::Wx::Dialog::Find->new($self); } return $self->{find}; } =pod =head3 C<findfast> my $find = $main->findfast; Returns the Fast Find panel, creating it if needed. =cut sub findfast { my $self = shift; unless ( defined $self->{findfast} ) { require Padre::Wx::Panel::FindFast; $self->{findfast} = Padre::Wx::Panel::FindFast->new($self); } return $self->{findfast}; } =pod =head2 C<findinfiles> my $dialog = $main->findinfiles; Returns the Find in Files dialog, creating it if needed. =cut sub findinfiles { my $self = shift; unless ( defined $self->{findinfiles} ) { require Padre::Wx::Dialog::FindInFiles; $self->{findinfiles} = Padre::Wx::Dialog::FindInFiles->new($self); } return $self->{findinfiles}; } =pod =head2 C<foundinfiles> my $panel = $main->foundinfiles; Returns the Find in Files results panel, creating it if needed. =cut sub foundinfiles { my $self = shift; unless ( defined $self->{foundinfiles} ) { require Padre::Wx::Panel::FoundInFiles; $self->{foundinfiles} = Padre::Wx::Panel::FoundInFiles->new($self); } return $self->{foundinfiles}; } =pod =head3 C<replace> my $dialog = $main->replace; Return current Find and Replace dialog. Create a new one if needed. =cut sub replace { my $self = shift; unless ( defined $self->{replace} ) { require Padre::Wx::Dialog::Replace; $self->{replace} = Padre::Wx::Dialog::Replace->new($self); } return $self->{replace}; } =pod =head3 C<goto> my $dialog = $main->goto; Return the Goto dialog. Create a new one if needed. =cut sub goto { my $self = shift; unless ( defined $self->{goto} ) { require Padre::Wx::Dialog::Goto; $self->{goto} = Padre::Wx::Dialog::Goto->new($self); } return $self->{goto}; } =pod =head2 Public Methods =head3 C<load_files> $main->load_files; Load any default files: session from command-line, explicit list on command- line, or last session if user has this setup, a new file, or nothing. =cut sub load_files { my $self = shift; my $ide = $self->ide; my $config = $self->config; my $startup = $config->startup_files; # explicit session on command line takes precedence if ( defined $ide->opts->{session} ) { # try to find the wanted session... my ($session) = Padre::DB::Session->select( 'where name = ?', $ide->opts->{session}, ); # ... and open it. if ( defined $session ) { $self->open_session($session); } else { my $error = sprintf( Wx::gettext('No such session %s'), $ide->opts->{session}, ); $self->error($error); } return; } # Otherwise, an explicit list on the command line overrides configuration my $files = $ide->{ARGV}; if ( Params::Util::_ARRAY($files) ) { $self->setup_editors(@$files); return; } # Config setting 'last' means start-up with all the files from the # previous time we used Padre open (if they still exist) if ( $startup eq 'last' ) { my $session = Padre::DB::Session->last_padre_session; $self->open_session($session) if defined $session; return; } # Config setting 'session' means: Show the session manager if ( $startup eq 'session' ) { require Padre::Wx::Dialog::SessionManager; Padre::Wx::Dialog::SessionManager->new($self)->show; return; } # Last session functionality is not in use, do we disable it for # performance reasons (it's expensive to maintain the session). # Remove the session if it exists, because we won't be saving # this information and we don't want an old stale session to # be hanging around in the database pointlessly. Padre::DB::Session->clear_last_session; # Config setting 'nothing' means start-up with nothing open if ( $startup eq 'nothing' ) { return; } # Config setting 'new' means start-up with a single new file open if ( $startup eq 'new' ) { $self->setup_editors; return; } # Configuration has an entry we don't know about # TO DO: Once we have a warning system more useful than STDERR # add a warning. For now though, just do nothing and ignore. return; } =pod =head3 C<lock> my $lock = $main->lock('UPDATE', 'BUSY', 'refresh_toolbar'); Create and return a guard object that holds resource locks of various types. The method takes a parameter list of the locks you wish to exist for the current scope. Special types of locks are provided in capitals, refresh/method locks are provided in lowercase. The C<UPDATE> lock creates a Wx repaint lock using the built in L<Wx::WindowUpdateLocker> class. You should use an update lock during GUI construction/modification to prevent screen flicker. As a side effect of not updating, the GUI changes happen B<significantly> faster as well. Update locks should only be held for short periods of time, as the operating system will begin to treat your application as "hung" if an update lock persists for more than a few seconds. In this situation, you may begin to see GUI corruption. The C<BUSY> lock creates a Wx "busy" lock using the built in L<Wx::WindowDisabler> class. You should use a busy lock during times when Padre has to do a long and/or complex operation in the foreground, or when you wish to disable use of any user interface elements until a background thread is finished. Busy locks can be held for long periods of time, however your users may start to suspect trouble if you do not provide any periodic feedback to them. Lowercase lock names are used to delay the firing of methods that will themselves generate GUI events you may want to delay until you are sure you want to rebuild the GUI. For example, opening a file will require a Padre::Wx::Main refresh call, which will itself generate more refresh calls on the directory browser, the function list, output window, menus, and so on. But if you open more than one file at a time, you don't want to refresh the menu for the first file, only to do it again on the second, third and fourth files. By creating refresh locks in the top level operation, you allow the lower level operation to make requests for parts of the GUI to be refreshed, but have the actual refresh actions delayed until the lock expires. This should make operations with a high GUI intensity both simpler and faster. The name of the lowercase MUST be the name of a Padre::Wx::Main method, which will be fired (with no parameters) when the method lock expires. =cut sub lock { shift->{locker}->lock(@_); } =pod =head3 C<locked> This method provides the ability to check if a resource is currently locked. =cut sub locked { shift->{locker}->locked(@_); } =pod =head2 Single Instance Server Padre embeds a small network server to handle single instance. Here are the methods that allow to control this embedded server. =head3 C<single_instance_address> $main->single_instance_address; Determines the location of the single instance server for this instance of L<Padre>. =cut sub single_instance_address { my $self = shift; my $config = $self->config; require Wx::Socket; if (Padre::Constant::WIN32) { # Since using a Wx::IPv4address doesn't seem to work, # for now just return the two-value host/port list. # my $address = Wx::IPV4address->new; # $address->SetHostname('127.0.0.1'); # $address->SetService('4444'); # return $address; return ( '127.0.0.1', $config->main_singleinstance_port, ); } else { # Fix for #1138, remove the part following the return once the # fix has been tested propably return ( '127.0.0.1', $config->main_singleinstance_port ); # TODO: Keep this until someone on Unix has time to test it # my $file = File::Spec->catfile( # Padre::Constant::CONFIG_DIR, # 'single_instance.socket', # ); # my $address = Wx::UNIXaddress->new; # $address->SetFilename($file); # return $address; } } =pod =head3 C<single_instance_start> $main->single_instance_start; Start the embedded server. Create it if it doesn't exist. Return true on success, die otherwise. =cut sub single_instance_start { my $self = shift; # check if server is already started return 1 if $self->single_instance_running; # Create the server require Wx::Socket; $self->{single_instance} = Wx::SocketServer->new( $self->single_instance_address, Wx::SOCKET_NOWAIT | Wx::SOCKET_REUSEADDR, ); unless ( $self->{single_instance}->Ok ) { delete $self->{single_instance_server}; warn( Wx::gettext("Failed to create server") ); } Wx::Event::EVT_SOCKET_CONNECTION( $self, $self->{single_instance}, sub { $self->single_instance_connect( $_[0] ); } ); return 1; } =pod =head3 C<single_instance_stop> $main->single_instance_stop; Stop & destroy the embedded server if it was running. Return true on success. =cut sub single_instance_stop { my $self = shift; # server already terminated, nothing to do return 1 unless $self->single_instance_running; # Terminate the server $self->{single_instance}->Close; delete( $self->{single_instance} )->Destroy; return 1; } =pod =head3 C<single_instance_running> my $is_running = $main->single_instance_running; Return true if the embedded server is currently running. =cut sub single_instance_running { return defined $_[0]->{single_instance}; } =pod =head3 C<single_instance_connect> $main->single_instance_connect; Callback called when a client is connecting to embedded server. This is the case when user starts a new Padre, and preference "open all documents in single Padre instance" is checked. =cut sub single_instance_connect { my $self = shift; my $server = shift; my $client = $server->Accept(0); # Before we start accepting input, # send the client our process ID. $client->Write( sprintf( '% 10s', $$ ), 10 ); # Set up the socket hooks Wx::Event::EVT_SOCKET_INPUT( $self, $client, sub { # Accept the data and stream commands my $command = ''; my $buffer = ''; while ( $_[0]->Read( $buffer, 128 ) ) { $command .= $buffer; while ( $command =~ s/^(.*?)[\012\015]+//s ) { $_[1]->single_instance_command( "$1", $_[0] ); } } return 1; } ); Wx::Event::EVT_SOCKET_LOST( $self, $client, sub { $_[0]->Destroy; } ); return 1; } =pod =head3 C<single_instance_command> $main->single_instance_command( $line ); Callback called when a client has issued a command C<$line> while connected on embedded server. Current supported commands are C<open $file> and C<focus>. =cut my $single_instance_raised = 0; sub single_instance_command { my $self = shift; my $line = shift; my $socket = shift; # $line should be defined return 1 unless defined $line && length $line; # ignore the line if command isn't plain ascii return 1 unless $line =~ s/^(\S+)\s*//s; if ( $1 eq 'focus' ) { # Try to give focus to Padre IDE. It might not work, # since some window manager implement some kind of focus- # stealing prevention. # First, let's deiconize Padre if needed $self->Iconize(0) if $self->IsIconized; # Now let's raise Padre # We have to do both or (on Win32 at least) # the Raise call only works the first time. if (Padre::Constant::WIN32) { if ( $single_instance_raised++ ) { # After the first time, this seems to work $self->Lower; $self->Raise; } else { # The first time this behaves weirdly $self->Raise; } } else { # We trust non-Windows to behave sanely $self->Raise; } } elsif ( $1 eq 'open' ) { if ( -f $line ) { # If a file is already loaded switch to it instead $self->notebook->show_file($line) or $self->setup_editors($line); } } elsif ( $1 eq 'open-sync' ) { # XXX: This should be two commands, 'open'+'wait-for-close' my $editor; if ( -f $line ) { # If a file is already loaded switch to it instead $editor = $self->notebook->show_file($line); $editor ||= $self->setup_editors($line); } # Notify the client when we close this window $self->{on_close_watchers} ||= {}; $self->{on_close_watchers}->{$line} ||= []; push @{ $self->{on_close_watchers}->{$line} }, sub { #warn "Closing $line / " . $_[0]->filename; my $buf = "closed:$line\r\n" ; # XXX Should we worry about encoding things as utf-8 or do we rely on both client and server speaking the same filesystem encoding? $socket->Write( $buf, length($buf) ); # XXX length is encoding-sensitive! return 1; # signal that we want to be removed }; } else { # d'oh! embedded server can't do anything warn("Unsupported command '$1'"); } return 1; } =pod =head2 Window Geometry Query properties about the state and shape of the main window =head3 C<window_width> my $width = $main->window_width; Return the main window width. =cut sub window_width { ( $_[0]->GetSizeWH )[0]; } =pod =head3 C<window_height> my $width = $main->window_height; Return the main window height. =cut sub window_height { ( $_[0]->GetSizeWH )[1]; } =pod =head3 C<window_left> my $left = $main->window_left; Return the main window position from the left of the screen. =cut sub window_left { ( $_[0]->GetPositionXY )[0]; } =pod =head3 C<window_top> my $top = $main->window_top; Return the main window position from the top of the screen. =cut sub window_top { ( $_[0]->GetPositionXY )[1]; } =pod =head3 C<window_save> $main->window_save; Saves the current main window geometry (left, top, width, height, maximized). Called during Maximize, Iconize, ShowFullScreen and Padre shutdown so we can restart the next Padre instance at the last good non-Maximize/Iconize location. Saves and returns true if and only the window is regular or maximized. Skips and returns false if the window is currently hidden, iconised, or full screen. =cut sub window_save { my $self = shift; # Skip situations we can't record anything return 0 unless $self->IsShown; return 0 if $self->IsIconized; return 0 if $self->IsFullScreen; # Prepare the config "transaction" my $lock = $self->lock('CONFIG'); my $config = $self->config; if ( $self->IsMaximized ) { # We are maximized, just save that fact $config->set( main_maximized => 1 ); } else { # We are a regular window, save everything my ( $width, $height ) = $self->GetSizeWH; my ( $left, $top ) = $self->GetPositionXY; $config->set( main_width => $width ); $config->set( main_height => $height ); $config->set( main_left => $left ); $config->set( main_top => $top ); $config->set( main_maximized => 0 ); } return 1; } =pod =head2 Refresh Methods Those methods refresh parts of Padre main window. The term C<refresh> and the following methods are reserved for fast, blocking, real-time updates to the GUI, implying rapid changes. =head3 C<refresh> $main->refresh; Force refresh of all elements of Padre main window. (see below for individual refresh methods) =cut sub refresh { TRACE( $_[0] ) if DEBUG; my $self = shift; return if $self->locked('REFRESH'); # Freeze during the refresh my $lock = $self->lock('UPDATE'); my $current = $self->current; # Although it would be nice to do this later, some of the # optimisations in the other refresh subsections depend on the # checked-state of the menu entries being accurate. So alas, we must # do this one first and delay the background jobs a little. $self->refresh_menu($current); # Refresh elements that generate background tasks first, # so those tasks will run while we do the other things. # Tasks that run more often go before those that don't, # which has a slightly positive effect on specialisation # of background workers. $self->refresh_directory($current); $self->refresh_syntax($current); $self->refresh_functions($current); $self->refresh_outline($current); $self->refresh_diff($current); if (Padre::Feature::VCS) { $self->refresh_vcs($current); } # Refresh the remaining elements while the background tasks # are running for the other elements. $self->refresh_title($current); $self->refresh_notebook($current); $self->refresh_toolbar($current); $self->refresh_status($current); # Now signal the refresh to all remaining listeners # weed out expired weak references @{ $self->{refresh_listeners} } = grep { ; defined } @{ $self->{refresh_listeners} }; for ( @{ $self->{refresh_listeners} } ) { if ( my $refresh = $_->can('refresh') ) { $_->refresh($current); } else { $_->($current); } } my $notebook = $self->notebook; if ( $notebook->GetPageCount ) { my $id = $notebook->GetSelection; if ( defined $id and $id >= 0 ) { $notebook->GetPage($id)->SetFocus; } # $self->aui->GetPane('notebook')->PaneBorder(0); # } else { # $self->aui->GetPane('notebook')->PaneBorder(1); } $self->refresh_breakpoint_panel($current); return; } =pod =head3 C<add_refresh_listener> Adds an object which will have its C<< ->refresh >> method called whenever the main refresh event is triggered. The refresh listener is stored as a weak reference so make sure that you keep the listener alive elsewhere. If your object does not have a C<< ->refresh >> method, pass in a code reference - it will be called instead. Note that this method must return really quick. If you plan to do work that takes longer, launch it via the L<Action::Queue> mechanism and perform it in the background. =cut sub add_refresh_listener { my ( $self, @listeners ) = @_; foreach my $l (@listeners) { if ( !grep { $_ eq $l } @{ $self->{refresh_listeners} } ) { Scalar::Util::weaken($l); push @{ $self->{refresh_listeners} }, $l; } } } =pod =head3 C<refresh_title> Sets or updates the Window title. =cut sub refresh_title { my $self = shift; return if $self->locked('REFRESH'); # Get the window title template string my $current = Padre::Current::_CURRENT(@_); my $config = $current->config; my $template = $config->main_title || 'Padre %v'; my $title = $self->process_template($template); # Additional information if we are running the developer version require Padre::Util::SVN; my $revision = Padre::Util::SVN::padre_revision(); if ( defined $revision ) { $title .= " svn: r$revision (\$VERSION = $Padre::VERSION)"; } unless ( $self->GetTitle eq $title ) { # Push the title to the window $self->SetTitle($title); # Push the title to the process list for better identification $0 = $title; ## no critic (RequireLocalizedPunctuationVars) } return; } # this sub is called frequently, on every key stroke or mouse movement # TODO speed should be improved sub process_template_frequent { my $self = shift; my $template = shift; my $current = Padre::Current::_CURRENT(@_); my $document = $current->document; if ( $template =~ /\%m/ ) { if ($document) { my $modified = $document->editor->GetModify ? '*' : ''; $template =~ s/\%m/$modified/; } else { $template =~ s/\%m/*/; # maybe set to '' if document is empty? } } if ( $template =~ /\%s/ ) { my $sub = ''; if ($document) { my $text = $document->text_get; my $editor = $document->editor; my $pos = $editor->GetCurrentPos; my $first = $editor->PositionFromLine(0); my $prefix = $editor->GetTextRange( $first, $pos ); require Padre::Search; my ( $start, $end ) = Padre::Search->matches( text => $prefix, regex => $document->get_function_regex(qr/\w+/), submatch => 1, from => 0, to => length($prefix), backwards => 1, ); if ( defined $start and defined $end ) { my $match = substr( $prefix, $start, ( $end - $start ) ); my ( $p, $name ) = split /\s+/, $match; $sub = $name; } else { $sub = ''; } } else { $sub = ''; } $template =~ s/\%s/$sub/; } return $template; } sub process_template { my $self = shift; my $template = shift; my $current = Padre::Current::_CURRENT(@_); # Populate any variables used in the template on demand, # avoiding potentially expensive operations unless needed. my %variable = ( '%' => '%', 'v' => $Padre::VERSION, ); foreach my $char ( $template =~ /\%(.)/g ) { next if exists $variable{$char}; if ( $char eq 'p' ) { # Fill in the session name, if any if ( defined $self->ide->{session} ) { my ($session) = Padre::DB::Session->select( 'where id = ?', $self->ide->{session}, ); $variable{p} = $session->name; } else { $variable{p} = ''; } next; } # The other variables are all based on the filename my $document = $current->document; my $file; $file = $document->file if defined $document; unless ( defined $file ) { if ( $char =~ m/^[fbdF]$/ ) { $variable{$char} = ''; } else { $variable{$char} = '%' . $char; } next; } if ( $char eq 'b' ) { $variable{b} = $file->basename; } elsif ( $char eq 'd' ) { $variable{d} = $file->dirname; } elsif ( $char eq 'f' ) { $variable{f} = $file->{filename}; } elsif ( $char eq 'F' ) { # Filename relative to the project root $variable{F} = $file->{filename}; my $project_dir = $document->project_dir; if ( defined $project_dir ) { $project_dir = quotemeta $project_dir; $variable{F} =~ s/^$project_dir//; } } else { $variable{$char} = '%' . $char; } } # Process the template into the final string $template =~ s/\%(.)/$variable{$1}/g; return $template; } =pod =head3 C<refresh_syntax> $main->refresh_syntax; Do a refresh of document syntax checking. This is a "rapid" change, since actual syntax check is happening in the background. =cut sub refresh_syntax { my $self = shift; return unless $self->has_syntax; return if $self->locked('REFRESH'); return unless $self->menu->view->{syntax}->IsChecked; $self->syntax->refresh( $_[0] or $self->current ); return; } =pod =head3 C<refresh_vcs> $main->refresh_vcs; Do a refresh of version control checking. This is a "rapid" change, since actual version control check is happening in the background. =cut sub refresh_vcs { my $self = shift; return unless $self->has_vcs; return if $self->locked('REFRESH'); return unless $self->menu->view->{vcs}->IsChecked; $self->vcs->refresh( $_[0] or $self->current ); return; } =pod =head3 C<refresh_outline> $main->refresh_outline; Force a refresh of the outline panel. =cut sub refresh_outline { my $self = shift; return unless $self->has_outline; return if $self->locked('REFRESH'); return unless $self->menu->view->{outline}->IsChecked; $self->outline->refresh( $_[0] or $self->current ); return; } =pod =head3 C<refresh_menu> $main->refresh_menu; Force a refresh of all menus. It can enable / disable menu entries depending on current document or Padre internal state. =cut sub refresh_menu { my $self = shift; return if $self->locked('REFRESH'); $self->menu->refresh; } =head3 C<refresh_menu_plugins> $main->refresh_menu_plugins; Force a refresh of just the plug-in menus. =cut sub refresh_menu_plugins { my $self = shift; return if $self->locked('REFRESH'); $self->menu->plugins->refresh($self); } =head2 C<refresh_notebook> $main->refresh_notebook Force a refresh of the notebook panel titles =cut sub refresh_notebook { my $self = shift; return if $self->locked('REFRESH'); $self->notebook->refresh; } =head3 C<refresh_windowlist> $main->refresh_windowlist Force a refresh of the list of windows in the window menu =cut sub refresh_windowlist { my $self = shift; return if $self->locked('REFRESH'); $self->menu->window->refresh_windowlist($self); } =pod =head3 C<refresh_recent> Specifically refresh the Recent Files entries in the File dialog =cut sub refresh_recent { my $self = shift; return if $self->locked('REFRESH'); $self->menu->file->refresh_recent; } =pod =head3 C<refresh_toolbar> $main->refresh_toolbar; Force a refresh of Padre's toolbar. =cut sub refresh_toolbar { my $self = shift; return if $self->locked('REFRESH'); my $toolbar = $self->GetToolBar or return; $toolbar->refresh( $_[0] or $self->current ); } =pod =head3 C<refresh_status> $main->refresh_status; Force a refresh of Padre's status bar. =cut sub refresh_status { my $self = shift; return if $self->locked('REFRESH'); $self->GetStatusBar->refresh( $_[0] or $self->current ); } =pod =head3 C<refresh_status_template> $main->refresh_status_templat; Force a refresh of Padre's status bar. The part that is driven by a template. =cut sub refresh_status_template { my $self = shift; return if $self->locked('REFRESH'); $self->GetStatusBar->refresh_from_template( $_[0] or $self->current ); } =pod =head3 C<refresh_cursorpos> $main->refresh_cursorpos; Force a refresh of the position of the cursor on Padre's status bar. =cut sub refresh_cursorpos { my $self = shift; return if $self->locked('REFRESH'); $self->GetStatusBar->update_pos( $_[0] or $self->current ); } sub refresh_rdstatus { my $self = shift; return if $self->locked('REFRESH'); $self->GetStatusBar->is_read_only( $_[0] or $self->current ); return; } =pod =head3 C<refresh_functions> $main->refresh_functions; Force a refresh of the function list on the right. =cut sub refresh_functions { my $self = shift; return unless $self->has_functions; return if $self->locked('REFRESH'); return unless $self->menu->view->{functions}->IsChecked; $self->functions->refresh( $_[0] or $self->current ); return; } =pod =head3 C<refresh_tasks> $main->refresh_tasks; Force a refresh of the TODO list on the right. =cut sub refresh_tasks { my $self = shift; return unless $self->has_tasks; return if $self->locked('REFRESH'); return unless $self->menu->view->{tasks}->IsChecked; $self->tasks->refresh( $self->current ); return; } =pod =head3 C<refresh_directory> Force a refresh of the directory tree =cut sub refresh_directory { my $self = shift; return unless $self->has_directory; return if $self->locked('REFRESH'); $self->directory->refresh( $_[0] or $self->current ); return; } =pod =head3 C<refresh_aui> This is a refresh method wrapper around the C<AUI> C<Update> method so that it can be lock-managed by the existing locking system. =cut sub refresh_aui { my $self = shift; return if $self->locked('refresh_aui'); $self->aui->Update; return; } =pod =head3 C<refresh_diff> $main->refresh_diff; Do a refresh of saved and current document differences. This is a "rapid" change, since actual calculating differences is happening in the background. =cut sub refresh_diff { my $self = shift; return unless Padre::Feature::DIFF_DOCUMENT; return if $self->locked('REFRESH'); $self->diff->refresh( $_[0] or $self->current ); return; } =pod =head3 C<refresh_breakpoint_panel> $main->refresh_breakpoint_panel; Refresh of the Breakpoints panel if open, required as we load and switch tabs. =cut sub refresh_breakpoint_panel { my $self = shift; return unless $self->current->main->{breakpoints}; return if $self->locked('REFRESH'); $self->current->main->{breakpoints}->on_refresh_click(); return; } =pod =head2 Interface Rebuilding Methods Those methods reconfigure Padre's main window in case of drastic changes (locale, etc.) =head3 C<change_locale> $main->change_locale( $locale ); Change Padre's locale to C<$locale>. This will update the GUI to reflect the new locale. =cut sub change_locale { my $self = shift; my $name = shift; my $lock = $self->lock('CONFIG'); unless ( defined $name ) { $name = Padre::Locale::system_rfc4646 || Padre::Locale::last_resort_rfc4646; } TRACE("Changing locale to '$name'") if DEBUG; # Save the locale to the config $self->config->set( locale => $name ); # Reset the locale delete $self->{locale}; $self->{locale} = Padre::Locale::object(); # Make WxWidgets translate the default buttons etc. if (Padre::Constant::UNIX) { ## no critic (RequireLocalizedPunctuationVars) $ENV{LANGUAGE} = $name; ## use critic } # Run the "relocale" process to update the GUI $self->relocale; # With language stuff updated, do a full refresh # sweep to clean everything up. $self->refresh; return; } =pod =head3 C<relocale> $main->relocale; The term and method C<relocale> is reserved for functionality intended to run when the application wishes to change locale (and wishes to do so without restarting). Note at this point, that the new locale has already been fixed, and this method is usually called by C<change_locale()>. =cut sub relocale { my $self = shift; # The find and replace dialogs don't support relocale # (and they might currently be visible) so get rid of them. if ( $self->has_find ) { $self->{find}->Destroy; delete $self->{find}; } if ( $self->has_replace ) { $self->{replace}->Destroy; delete $self->{replace}; } # Relocale the plug-ins $self->ide->plugin_manager->relocale; # The menu doesn't support relocale, replace it # I wish this code didn't have to be so ugly, but we want to be # sure we clean up all the menu memory properly. SCOPE: { delete $self->{menu}; $self->{menu} = Padre::Wx::Menubar->new($self); my $old = $self->GetMenuBar; $self->SetMenuBar( $self->menu->wx ); $old->Destroy; } # Refresh the plugins' menu entries $self->refresh_menu_plugins; # The toolbar doesn't support relocale, replace it $self->rebuild_toolbar; # Cascade relocation to AUI elements and other tools $self->aui->relocale; $self->left->relocale if $self->has_left; $self->right->relocale if $self->has_right; $self->bottom->relocale if $self->has_bottom; $self->directory->relocale if $self->has_directory; # Update the document titles (mostly for unnamed documents) $self->notebook->relocale; # Replace the regex editor, keep the data (if it exists) if ( exists $self->{regex_editor} ) { my $data_ref = $self->{regex_editor}->get_data; my $was_visible = $self->{regex_editor}->Hide; $self->{regex_editor} = Padre::Wx::Dialog::RegexEditor->new($self); $self->{regex_editor}->show if $was_visible; $self->{regex_editor}->set_data($data_ref); } return; } =pod =head3 C<restyle> $main->restyle; The term and method C<restyle> is reserved for code that needs to be run when the L<Padre::Wx::Theme|theme> of the editor has changed and the colouring of the application needs to be changed without restarting. Note that the new style must be applied to configuration before this method is called, and this method is usually called by the C<apply> handler for the C<editor_style> configuration setting. =cut sub restyle { my $self = shift; my $name = $self->config->editor_style; my $style = $self->{theme} = Padre::Wx::Theme->find($name); my $lock = $self->lock('UPDATE'); # Apply the new style to all current editors foreach my $editor ( $self->editors ) { $style->apply($editor); } return; } =pod =head3 C<rebuild_toolbar> $main->rebuild_toolbar; Destroy and rebuild the toolbar. This method is useful because the toolbar is not really flexible, and most of the time it's better to recreate it from scratch. =cut sub rebuild_toolbar { my $self = shift; my $lock = $self->lock('UPDATE'); my $toolbar = $self->GetToolBar; $toolbar->Destroy if $toolbar; require Padre::Wx::ToolBar; $self->SetToolBar( Padre::Wx::ToolBar->new($self) ); $self->GetToolBar->refresh; $self->GetToolBar->Realize; return 1; } ##################################################################### =pod =head2 Tools and Dialogs Those methods deal with the various panels that Padre provides, and allow to show or hide them. =head3 C<find_view> my $name = $main->find_view('Padre::Wx::FunctionList'); The C<find_view> method locates the name of the panel in which a tool is currently being shown. We assume each tool is only being shown once. Returns the name of the panel in string form (such as 'left') or false if the view is not currently being shown. =cut sub find_view { my $self = shift; my $page = shift; foreach my $name (PANELS) { my $has = "has_$name"; next unless $self->$has(); my $panel = $self->$name(); if ( $panel->GetPageIndex($page) >= 0 ) { return $name; } } return ''; } =pod =head3 C<show_view> $main->show_view( functions => 1 ); The C<show_view> methods displays or hides a named view of the main window. =cut sub show_view { my $self = shift; my $name = shift; my $show = shift; my $has = "has_$name"; if ($show) { my $config = $self->config; my $where = "main_${name}_panel"; my $lock = $self->lock( 'UPDATE', 'AUI' ); my $page = $self->$name(); my $panel = $config->can($where) ? $config->$where() : $page->view_panel; $self->$panel()->show($page); } elsif ( $self->$has() ) { my $page = $self->$name(); my $panel = $self->find_view($page) or return; my $lock = $self->lock( 'UPDATE', 'AUI' ); $self->$panel()->hide($page); } return; } =pod =head3 C<show_functions> $main->show_functions( $visible ); Show the functions panel on the right if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_functions { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{functions}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG', 'refresh_functions' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_functions => $show ); $self->show_view( functions => $show ); } =pod =head3 C<show_tasks> $main->show_tasks( $visible ); Show the I<to do> panel on the right if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_tasks { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{tasks}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG', 'refresh_tasks' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_tasks => $show ); $self->show_view( tasks => $show ); } =pod =head3 C<show_outline> $main->show_outline( $visible ); Show the outline panel on the right if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_outline { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{outline}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG', 'refresh_outline' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_outline => $show ); $self->show_view( outline => $show ); } =pod =head3 C<show_debug> $main->show_debug($visible); =cut BEGIN { no warnings 'once'; *show_debug = sub { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $lock = $self->lock('UPDATE'); $self->_show_debug($show); $self->aui->Update; return; } if Padre::Feature::DEBUGGER; *_show_debug = sub { my $self = shift; my $lock = $self->lock('UPDATE'); if ( $_[0] ) { my $debugger = $self->debugger; $self->right->show($debugger); } elsif ( $self->has_debugger ) { my $debugger = $self->debugger; $self->right->hide($debugger); } return 1; } if Padre::Feature::DEBUGGER; } =pod =head3 C<show_directory> $main->show_directory( $visible ); Show the directory panel on the right if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_directory { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{directory}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG', 'refresh_directory' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_directory => $show ); $self->show_view( directory => $show ); } =pod =head3 C<show_output> $main->show_output( $visible ); Show the output panel at the bottom if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_output { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{output}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_output => $show ); $self->show_view( output => $show ); } =pod =head3 C<show_findfast> $main->show_findfast( $visible ); Show the Fast Find panel at the bottom of the editor area if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_findfast { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $visible = $self->has_findfast && $self->findfast->IsShown; if ( $show and not $visible ) { $self->findfast->show; } elsif ( $visible and not $show ) { $self->findfast->hide; } return; } =pod =head3 C<show_foundinfiles> $main->show_foundinfiles( $visible ); Show the Find in Files panel at the bottom if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_foundinfiles { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $lock = $self->lock( 'UPDATE', 'AUI' ); $self->show_view( foundinfiles => $show ); } =pod =head3 C<show_replaceinfiles> $main->show_replaceinfiles( $visible ); Show the Replace in Files panel at the bottom if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_replaceinfiles { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $lock = $self->lock( 'UPDATE', 'AUI' ); $self->show_view( replaceinfiles => $show ); } =pod =head3 C<show_command> $main->show_command( $visible ); Show the command panel at the bottom if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_command { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{command}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_command => $show ); $self->show_view( command => $show ); } =pod =head3 C<show_syntax> $main->show_syntax( $visible ); Show the syntax panel at the bottom if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_syntax { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{syntax}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG', 'refresh_syntax' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_syntax => $show ); $self->show_view( syntax => $show ); } =pod =head3 C<show_vcs> $main->show_vcs( $visible ); Show the version control panel at the bottom if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_vcs { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{vcs}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG', 'refresh_vcs' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_vcs => $show ); $self->show_view( vcs => $show ); return; } =pod =head3 C<show_cpan> $main->show_cpan( $visible ); Show the CPAN explorer panel at the bottom if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_cpan { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->view->{cpan}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_cpan => $show ); $self->show_view( cpan => $show ); return; } =pod =head3 C<show_breakpoints> $main->show_breakpoints( $visible ); Show the version control panel at the left if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_breakpoints { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->debug->{breakpoints}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_breakpoints => $show ); $self->show_view( breakpoints => $show ); } =pod =head3 C<show_debugoutput> $main->show_debugoutput( $visible ); Show the version control panel at the left if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_debugoutput { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->debug->{debugoutput}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_debugoutput => $show ); $self->show_view( debugoutput => $show ); } =pod =head3 C<show_debugger> $main->show_debugger( $visible ); Show the version control panel at the left if C<$visible> is true. Hide it otherwise. If C<$visible> is not provided, the method defaults to show the panel. =cut sub show_debugger { my $self = shift; my $show = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); my $item = $self->menu->debug->{debugger}; my $lock = $self->lock( 'UPDATE', 'AUI', 'CONFIG' ); $item->Check($show) unless $show == $item->IsChecked; $self->config->set( main_debugger => $show ); $self->show_view( debugger => $show ); } =pod =head2 Introspection The following methods allow to poke into Padre's internals. =head3 C<current> my $current = $main->current; Creates a L<Padre::Current> object for the main window, giving you quick and caching access to the current various object members. See L<Padre::Current> for more information. =cut sub current { Padre::Current->new( main => $_[0] ); } =pod =head3 C<pageids> my @ids = $main->pageids; Return a list of all current tab ids (integers) within the notebook. =cut sub pageids { $_[0]->notebook->pageids; } =pod =head3 C<editors> my @editors = $main->editors; Return a list of all current editors. Those are the real objects, not the ids (see C<pageids()> above). Note: for now, this has the same meaning as C<pages()> (see above), but this will change once we get project tabs or something else. =cut sub editors { $_[0]->notebook->editors; } =pod =head3 C<documents> my @document = $main->documents; Return a list of all current documents, in the specific order they are open in the notebook. =cut sub documents { $_[0]->notebook->documents; } =pod =head3 C<documents_modified> Returns a list of all modified documents, in the specific order they are open in the notebook. =cut sub documents_modified { grep { $_->is_modified } $_[0]->documents; } =pod =head2 Process Execution The following methods run an external command, for example to evaluate current document. =head3 C<on_run_command> $main->on_run_command; Prompt the user for a command to run, then run it with C<run_command()> (see below). Note: it probably needs to be combined with C<run_command()> itself. =cut sub on_run_command { my $self = shift; require Padre::Wx::TextEntryDialog::History; my $dialog = Padre::Wx::TextEntryDialog::History->new( $self, Wx::gettext("Command line"), Wx::gettext("Run setup"), "run_command", ); if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my $command = $dialog->GetValue; $dialog->Destroy; unless ( defined $command and $command ne '' ) { return; } $self->run_command($command); return; } =pod =head3 C<on_run_tdd_tests> $main->on_run_tdd_tests; Callback method, to build and then call on_run_tests =cut sub on_run_tdd_tests { my $self = shift; my $document = $self->current->document; unless ($document) { return $self->error( Wx::gettext("No document open") ); } # Find the project my $project_dir = $document->project_dir; unless ($project_dir) { return $self->error( Wx::gettext("Could not find project root") ); } my $dir = Cwd::cwd; chdir $project_dir; # TODO maybe add save file(s) to this action? # TODO make this the user selected perl also # do it in Padre::Document::Perl::get_command my $perl = $self->config->run_perl_cmd; unless ($perl) { require Padre::Perl; $perl = Padre::Perl::cperl(); } if ($perl) { if ( -e 'Build.PL' ) { $self->run_command("$perl Build.PL"); $self->run_command("$perl Build test"); } elsif ( -e 'Makefile.PL' ) { $self->run_command("$perl Makefile.PL"); my $make = $Config::Config{make}; $make = 'make' unless defined $make; $self->run_command("$make test"); } elsif ( -e 'dist.ini' ) { $self->run_command("dzil test"); } else { $self->error( Wx::gettext("No Build.PL nor Makefile.PL nor dist.ini found") ); } } else { $self->error( Wx::gettext("Could not find perl executable") ); } chdir $dir; } =pod =head3 C<on_run_tests> $main->on_run_tests; Callback method, to run the project tests and harness them. =cut sub on_run_tests { my $self = shift; my $document = $self->current->document; unless ($document) { return $self->error( Wx::gettext("No document open") ); } # TO DO probably should fetch the current project name my $filename = defined( $document->{file} ) ? $document->{file}->filename : undef; unless ($filename) { return $self->error( Wx::gettext("Current document has no filename") ); } # Find the project my $project_dir = $document->project_dir; unless ($project_dir) { return $self->error( Wx::gettext("Could not find project root") ); } my $dir = Cwd::cwd; chdir $project_dir; require File::Which; my $prove = File::Which::which('prove'); if (Padre::Constant::WIN32) { # This is needed since prove does not work with path containing # spaces. Please see ticket:582 require File::Glob::Windows; my $tempfile = File::Temp->new( UNLINK => 0 ); print $tempfile join( "\n", File::Glob::Windows::glob("$project_dir/t/*.t") ); close $tempfile; my $things_to_test = $tempfile->filename; $self->run_command(qq{"$prove" - -b < "$things_to_test"}); } else { $self->run_command("$prove -l $project_dir/t"); } chdir $dir; } =pod =head3 C<on_run_this_test> $main->on_run_this_test; Callback method, to run the currently open test through prove. =cut sub on_run_this_test { my $self = shift; my $document = $self->current->document; unless ($document) { return $self->error( Wx::gettext("No document open") ); } # TO DO probably should fetch the current project name my $filename = defined( $document->{file} ) ? $document->{file}->filename : undef; unless ($filename) { return $self->error( Wx::gettext("Current document has no filename") ); } unless ( $filename =~ /\.t$/ ) { return $self->error( Wx::gettext("Current document is not a .t file") ); } # Find the project my $project_dir = $document->project_dir; unless ($project_dir) { return $self->error( Wx::gettext("Could not find project root") ); } my $dir = Cwd::cwd; chdir $project_dir; require File::Which; my $prove = File::Which::which('prove'); if (Padre::Constant::WIN32) { # This is needed since prove does not work with path containing # spaces. Please see ticket:582 my $tempfile = File::Temp->new( UNLINK => 0 ); print $tempfile $filename; close $tempfile; my $things_to_test = $tempfile->filename; $self->run_command(qq{"$prove" - -lv < "$things_to_test"}); } else { $self->run_command("$prove -lv $filename"); } chdir $dir; } =pod =head3 C<on_open_in_file_browser> $main->on_open_in_file_browser( $filename ); Opens the current C<$filename> using the operating system's file browser =cut sub on_open_in_file_browser { my ( $self, $filename ) = @_; require Padre::Util::FileBrowser; Padre::Util::FileBrowser->open_in_file_browser($filename); } =pod =head3 C<run_command> $main->run_command( $command ); Run C<$command> and display the result in the output panel. =cut sub run_command { my $self = shift; my $cmd = shift; # when this mode is used the Run menu options are not turned off # and the Run/Stop is not turned on as we currently cannot control # the external execution. my $config = $self->config; if ( $config->run_use_external_window ) { if (Padre::Constant::WIN32) { my $title = $cmd; $title =~ s/"//g; system qq(start "$title" cmd /C "$cmd & pause"); } elsif (Padre::Constant::UNIX) { if ( defined $ENV{COLORTERM} ) { if ( $ENV{COLORTERM} eq 'gnome-terminal' ) { #Gnome-Terminal line format: #gnome-terminal -e "bash -c \"prove -lv t/96_edit_patch.t; exec bash\"" system qq($ENV{COLORTERM} -e "bash -c \\\"$cmd; exec bash\\\"" & ); } else { system qq(xterm -sb -e "$cmd; sleep 1000" &); } } } elsif (Padre::Constant::MAC) { # tome my $pwd = $self->current->document->project_dir(); $cmd =~ s/"/\\"/g; # Applescript can throw spurious errors on STDERR: http://helpx.adobe.com/photoshop/kb/unit-type-conversion-error-applescript.html system qq(osascript -e 'tell app "Terminal"\n\tdo script "cd $pwd; clear; $cmd;"\nend tell'\n); } else { system qq(xterm -sb -e "$cmd; sleep 1000" &); } return; } # Disable access to the run menus $self->menu->run->disable; # Prepare the output window for the output $self->show_output(1); $self->output->Remove( 0, $self->output->GetLastPosition ); # ticket #205, reset output style to neutral $self->output->style_neutral; $self->output->AppendText("Running: $cmd\n"); # If this is the first time a command has been run, # set up the ProcessStream bindings. unless ($Wx::Perl::ProcessStream::VERSION) { require Wx::Perl::ProcessStream; if ( $Wx::Perl::ProcessStream::VERSION < .25 ) { $self->error( sprintf( Wx::gettext( 'Wx::Perl::ProcessStream is version %s' . ' which is known to cause problems. Get at least 0.20 by typing' . "\ncpan Wx::Perl::ProcessStream" ), $Wx::Perl::ProcessStream::VERSION ) ); return 1; } # This is needed to avoid Padre from freezing/hanging when # running print-intensive scripts like the following: # while(1) { warn "FREEZE"; }; # See ticket:863 "Continous warnings or prints kill Padre" Wx::Perl::ProcessStream->SetDefaultMaxLines(100); Wx::Perl::ProcessStream::EVT_WXP_PROCESS_STREAM_STDOUT( $self, sub { $_[1]->Skip(1); my $outpanel = $_[0]->output; $outpanel->style_neutral; # NOTE: ticket 1007 happens if we do # $outpanel->AppendText( $_[1]->GetLine . "\n" ); # if, however, we do the following, we empty the # entire buffer and the bug completely goes away. my $out = join "\n", @{ $_[1]->GetProcess->GetStdOutBuffer }; # NOTE: also, ProcessStream seems to call this sub on every # "\n", but since the buffer is already empty, it just prints # our own linebreak. This means if a text has lots of "\n", # we'll get tons of empty lines at the end of the panel. # Please fix this if you can, but make sure ticket 1007 doesn't # happen again. Also remember to repeat the fix for STDERR below $outpanel->AppendText( $out . "\n" ) if $out; return; }, ); Wx::Perl::ProcessStream::EVT_WXP_PROCESS_STREAM_STDERR( $self, sub { $_[1]->Skip(1); my $outpanel = $_[0]->output; $outpanel->style_bad; # NOTE: ticket 1007 happens if we do # $outpanel->AppendText( $_[1]->GetLine . "\n" ); # if, however, we do the following, we empty the # entire buffer and the bug completely goes away. my $errors = join "\n", @{ $_[1]->GetProcess->GetStdErrBuffer }; $outpanel->AppendText( $errors . "\n" ) if $errors; return; }, ); Wx::Perl::ProcessStream::EVT_WXP_PROCESS_STREAM_EXIT( $self, sub { $_[1]->Skip(1); $_[1]->GetProcess->Destroy; delete $self->{command}; $self->menu->run->enable; }, ); } # Start the command my $process = Wx::Perl::ProcessStream::Process->new( $cmd, "Run $cmd", $self ); $self->{command} = $process->Run; # Check if we started the process or not unless ( $self->{command} ) { # Failed to start the command. Clean up. $self->error( sprintf( Wx::gettext("Failed to start '%s' command"), $cmd ) ); $self->menu->run->enable; } $self->current->editor->SetFocus; return; } =pod =head3 C<run_document> $main->run_document( $debug ) Run current document. If C<$debug> is true, document will be run with diagnostics and various debug options. Note: this should really be somewhere else, but can stay here for now. =cut sub run_document { my $self = shift; my $trace = shift; my $document = $self->current->document; unless ($document) { return $self->error( Wx::gettext("No open document") ); } # Apply the user's save-on-run policy # TO DO: Make this code suck less unless ( $document->is_saved ) { my $config = $self->config; if ( $config->run_save eq 'same' ) { $self->on_save or return; } elsif ( $config->run_save eq 'all_files' ) { $self->on_save_all or return; } elsif ( $config->run_save eq 'all_buffer' ) { $self->on_save_all or return; } } unless ( $document->can('get_command') ) { return $self->error( Wx::gettext('No execution mode was defined for this document type') . ': ' . $document->mimetype ); } my $cmd = eval { $document->get_command( { $trace ? ( trace => 1 ) : () } ) }; if ($@) { chomp $@; $self->error($@); return; } if ($cmd) { if ( $document->pre_process ) { SCOPE: { require File::pushd; # Ticket #845 this project_dir is created in correctly when you do padre somedir/script.pl and run F5 on that # real stupid think so we don't crash # to fix this $document->get_command needs to recognize which folder it is in # The other part of this fix is in lib/Padre/Document/Perl.pm in get_command # Please feel free to fix this File::pushd::pushd( $document->project_dir ) if -e $document->project_dir; $self->run_command($cmd); } } else { my $styles = Wx::CENTRE | Wx::ICON_HAND | Wx::YES_NO; my $ret = Wx::MessageBox( $document->errstr . "\n" . Wx::gettext('Do you want to continue?'), Wx::gettext("Warning"), $styles, $self, ); if ( $ret == Wx::YES ) { SCOPE: { require File::pushd; File::pushd::pushd( $document->project_dir ) if -e $document->project_dir; $self->run_command($cmd); } } } } return; } =pod =head2 Session Support Those methods deal with Padre sessions. A session is a set of files / tabs opened, with the position within the files saved, as well as the document that has the focus. =head3 C<capture_session> my @session = $main->capture_session; Capture list of opened files, with information. Return a list of C<Padre::DB::SessionFile> objects. =cut sub capture_session { my $self = shift; my @session = (); my $notebook = $self->notebook; my $current = $self->current->filename; foreach my $pageid ( $self->pageids ) { next unless defined $pageid; my $editor = $notebook->GetPage($pageid); my $document = $editor->{Document} or next; my $file = $editor->{Document}->filename; next unless defined $file; my $position = $editor->GetCurrentPos; my $focus = ( defined $current and $current eq $file ) ? 1 : 0; my $obj = Padre::DB::SessionFile->new( file => $file, position => $position, focus => $focus, ); push @session, $obj; } return @session; } =pod =head3 C<open_session> $main->open_session( $session ); Try to close all files, then open all files referenced in the given C<$session> (a C<Padre::DB::Session> object). No return value. =cut sub open_session { my $self = shift; my $session = shift; my $autosave = shift || 0; # Are there any files in the session? my @files = $session->files or return; # Prevent redrawing until we're done my $lock = $self->lock( 'UPDATE', 'DB', 'refresh' ); # Progress dialog for the session changes require Padre::Wx::Progress; my $progress = Padre::Wx::Progress->new( $self, sprintf( Wx::gettext('Opening session %s...'), $session->name, ), $#files + 1, lazy => 1 ); # Close all files # This takes some time, so do it after the progress dialog was displayed $self->close_all; # opening documents my $focus = undef; my $notebook = $self->notebook; foreach my $file_no ( 0 .. $#files ) { my $document = $files[$file_no]; $progress->update( $file_no, $document->file ); TRACE( "Opening '" . $document->file . "' for $document" ) if DEBUG; my $filename = $document->file; require Padre::File; my $file = Padre::File->new($filename); next unless defined($file); next unless $file->exists; my $id = $self->setup_editor($filename); next unless $id; # documents already opened have undef $id TRACE("Setting focus on $filename") if DEBUG; $focus = $id if $document->focus; $notebook->GetPage($id)->goto_pos_centerize( $document->position ); } $progress->update( $#files + 1, Wx::gettext('Restore focus...') ); $self->on_nth_pane($focus) if defined $focus; $self->ide->{session} = $session->id; $self->ide->{session_autosave} = $autosave; return 1; } =pod =head3 C<save_session> $main->save_session( $session, @session ); Try to save C<@session> files (C<Padre::DB::SessionFile> objects, such as what is returned by C<capture_session()> - see above) to database, associated to C<$session>. Note that C<$session> should already exist. =cut sub save_session { my $self = shift; my $session = shift; my $lock = $self->lock('DB'); foreach my $file (@_) { $file->set( session => $session->id ); $file->insert; } Padre::DB->do( 'UPDATE session SET last_update = ? WHERE id = ?', {}, time, $session->id, ); } sub save_current_session { my $self = shift; $self->ide->{session_autosave} or return; my $lock = $self->lock('DB'); my ($session) = Padre::DB::Session->select( 'where id = ?', $self->{ide}->{session}, ); $session ||= Padre::DB::Session->last_padre_session; if ( not defined $session ) { # TO DO: maybe report an error here? return; } # Session exist, remove all files associated to it Padre::DB::SessionFile->delete_where( 'session = ?', $session->id, ); # Capture session and save it my @session = $self->capture_session; $self->save_session( $session, @session ); return; } =pod =head2 User Interaction Various methods to help send information to user. Some methods are inherited from L<Padre::Wx::Role::Dialog>. =head3 C<status> $main->status($msg); Temporarily change the status bar leftmost block only to some message. This is a super-quick method intended for transient messages as short as a few tens of milliseconds (for example printing all directories read during a recursive file scan). =cut sub status { $_[0]->GetStatusBar->say( $_[1] ); } =head3 C<info> $main->info($msg); Print a message on the status bar or within a dialog box depending on the users preferences setting. The dialog has only a OK button and there is no return value. =cut sub info { my $self = shift; unless ( $self->config->info_on_statusbar ) { return $self->message(@_); } my $message = shift; $message =~ s/[\r\n]+/ /g; $self->{infomessage} = $message; $self->{infomessage_timeout} = time + 10; $self->refresh_status; return; } =pod =head3 C<prompt> my $value = $main->prompt( $title, $subtitle, $key ); Prompt user with a dialog box about the value that C<$key> should have. Return this value, or C<undef> if user clicked C<cancel>. =cut sub prompt { my $self = shift; my $title = shift || "Prompt"; my $subtitle = shift || "Subtitle"; my $key = shift || "GENERIC"; require Padre::Wx::TextEntryDialog::History; my $dialog = Padre::Wx::TextEntryDialog::History->new( $self, $title, $subtitle, $key, ); if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my $value = $dialog->GetValue; $dialog->Destroy; return $value; } =head3 C<simple_prompt> my $value = $main->simple_prompt( $title, $subtitle, $default_text ); Prompt user with a dialog box about the value that C<$key> should have. Return this value, or C<undef> if user clicked C<cancel>. =cut sub simple_prompt { my $self = shift; my $title = shift || 'Prompt'; my $subtitle = shift || 'Subtitle'; my $value = shift || ''; my $dialog = Wx::TextEntryDialog->new( $self, $title, $subtitle, $value ); if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my $new_value = $dialog->GetValue; return $new_value; } =pod =head2 Search and Replace These methods provide the highest level abstraction for entry into the various search and replace functions and dialogs. However, they still represent abstract logic and should NOT be tied directly to keystroke or menu events. =head3 C<find_dialog> $main->find_dialog; Show the find dialog, escalating from the fast find if needed =cut sub find_dialog { my $self = shift; my $term = ''; # Close the fast find panel if it was open if ( $self->has_findfast ) { } # Create the find dialog. my $find = $self->find; } =pod =head3 C<search_next> # Next match for a new explicit search $main->search_next( $search ); # Next match on current search $main->search_next; Find the next match for the current search. If no files are open, silently do nothing (don't even remember the new search) =cut sub search_next { my $self = shift; my $editor = $self->current->editor or return; my $search = $self->search; # If we are passed an explicit search object, # shortcut special logic and run that search immediately. if ( Params::Util::_INSTANCE( $_[0], 'Padre::Search' ) ) { $search = $self->{search} = shift; return !!$search->search_next($editor); } elsif (@_) { die 'Invalid argument to search_next'; } # Handle the obvious case with nothing selected my ( $position1, $position2 ) = $editor->GetSelection; if ( $position1 == $position2 ) { return unless $search; return !!$search->search_next($editor); } # If we have an active search and the current selection # matches it in it's entirety, then we run the current search # again and don't make a new one. # NOTE: This will fail for a number of regex cases, but is better then # not doing a check like this at all. Upgrade it later. my $matched = $editor->matched; if ( $search and $matched and $search->equals( $matched->[0] ) ) { if ( $matched->[1] == $position1 and $matched->[2] == $position2 ) { # Continue the existing search from the end of the match $editor->SetSelection( $position2, $position2 ); return !!$search->search_next($editor); } } # For multiple lines we search for the first match inside of the range my $line1 = $editor->LineFromPosition($position1); my $line2 = $editor->LineFromPosition($position2); unless ( $line1 == $line2 ) { return unless $search; return !!$search->search_next($editor); } # Case-specific search for the current selection require Padre::Search; $search = $self->{search} = Padre::Search->new( find_case => 1, find_regex => 0, find_reverse => 0, find_term => $editor->GetTextRange( $position1, $position2, ), ); return !!$search->search_next($editor); } =pod =head3 C<search_previous> # Previous match for a new search $main->search_previous( $search ); # Previous match on current search (or show Find dialog if none) $main->search_previous; Find the previous match for the current search, or spawn the Find dialog. If no files are open, do nothing. =cut sub search_previous { my $self = shift; my $editor = $self->current->editor or return; my $search = $self->search; # If we are passed an explicit search object, # shortcut special logic and run that search immediately. if ( Params::Util::_INSTANCE( $_[0], 'Padre::Search' ) ) { $search = $self->{search} = shift; return !!$search->search_previous($editor); } elsif (@_) { die 'Invalid argument to search_previous'; } # Handle the obvious case with nothing selected my ( $position1, $position2 ) = $editor->GetSelection; if ( $position1 == $position2 ) { return unless $search; return !!$search->search_previous($editor); } # Multiple lines are also done the obvious way my $line1 = $editor->LineFromPosition($position1); my $line2 = $editor->LineFromPosition($position2); unless ( $line1 == $line2 ) { return unless $search; return !!$self->search_previous($editor); } # Case-specific search for the current selection require Padre::Search; $search = $self->{search} = Padre::Search->new( find_case => 1, find_regex => 0, find_reverse => 0, find_term => $editor->GetTextRange( $position1, $position2, ), ); return !!$search->search_previous($editor); } =pod =head3 C<replace_next> # Next replace for a new search $main->replace_next( $search ); # Next replace on current search (or show Find dialog if none) $main->replace_next; Replace the next match for the current search, or spawn the Replace dialog. If no files are open, do nothing. =cut sub replace_next { my $self = shift; my $editor = $self->current->editor or return; if ( Params::Util::_INSTANCE( $_[0], 'Padre::Search' ) ) { $self->{search} = shift; } elsif (@_) { die "Invalid argument to replace_next"; } # Replace if we can my $search = $self->search or return; $search->replace_next($editor); } =pod =head3 C<replace_all> # Replace all for a new search $main->replace_all( $search ); # Replace all for the current search (or show Replace dialog if none) $main->replace_all; Replace all matches for the current search, or spawn the Replace dialog. If no files are open, do nothing. =cut sub replace_all { my $self = shift; my $editor = $self->current->editor or return; if ( Params::Util::_INSTANCE( $_[0], 'Padre::Search' ) ) { $self->{search} = shift; } elsif (@_) { die("Invalid argument to replace_all"); } # Replace if we can my $search = $self->search or return; $search->replace_all($editor); } =pod =head2 General Events Those methods are the various callbacks registered in the menus or whatever widgets Padre has. =head3 C<on_brace_matching> $main->on_brace_matching; Jump to brace matching current the one at current position. =cut sub on_brace_matching { shift->current->editor->goto_matching_brace; } sub comment_toggle { my $self = shift; my $editor = $self->current->editor or return; $editor->comment_toggle; } sub comment_indent { my $self = shift; my $editor = $self->current->editor or return; $editor->comment_indent; } sub comment_outdent { my $self = shift; my $editor = $self->current->editor or return; $editor->comment_outdent; } =pod =head3 C<on_autocompletion> $main->on_autocompletion; Try to auto complete current word being typed, depending on document type. =cut sub on_autocompletion { my $self = shift; my $event = shift; my $document = $self->current->document or return; my ( $length, @words ) = $document->autocomplete($event); # Nothing to show --> early exit return if !defined($length); return if $#words == -1; if ( $length =~ /\D/ ) { $self->message( $length, Wx::gettext("Autocompletion error") ); } if (@words) { my $ide = $self->ide; my $config = $ide->config; my $editor = $document->editor; $editor->AutoCompSetChooseSingle( $config->autocomplete_always ? 0 : 1 ); $editor->AutoCompSetSeparator( ord ' ' ); $editor->AutoCompShow( $length, join " ", @words ); # Cancel the auto completion list when Padre loses focus Wx::Event::EVT_KILL_FOCUS( $editor, sub { my ( $self, $event ) = @_; unless ( $event->GetWindow ) { $editor->AutoCompCancel; } } ); } return; } =head3 C<on_activate> The C<on_activate> method is called when Padre has been in the background for some period of time, and has just returned to the foreground. It calls a subset of refresh methods where something may have been changed by the user while they were using some other program that wasn't Padre. =cut sub on_activate { TRACE( $_[0] ) if DEBUG; my $self = shift; my $current = $self->current; # The file system may have changed, refresh the directory list # and recompile the foreground file. $self->refresh_directory($current); $self->refresh_diff($current); $self->refresh_syntax($current); # They may be using an external VCS tool if (Padre::Feature::VCS) { $self->refresh_vcs($current); } # Ensure we are focused on the current document $self->editor_focus; # Start the file overwrite check timer $self->poll_start( timer_check_overwrite => -1 ); return 1; } =head3 C<on_deactivate> The C<on_deactivate> method is called when the user has switched away from Padre to some other application. Currently all this does is hide away from short-lived tools like Fast Find if they are open, so that when the user returns it is not to a stale UI context. =cut sub on_deactivate { TRACE( $_[0] ) if DEBUG; my $self = shift; # Hide the Find Fast panel if it is showing $self->show_findfast(0); # Stop polling for file changes $self->poll_stop('timer_check_overwrite'); return 1; } =pod =head3 C<on_close_window> Callback when window is about to be closed. This is our last chance to veto the C<$event> close, e.g. when some files are not yet saved. If close is confirmed, save configuration to disk. Also, capture current session to be able to restore it next time if user set Padre to open last session on start-up. Clean up all Task Manager's tasks. =cut sub on_close_window { my $self = shift; my $event = shift; my $ide = $self->ide; my $config = $ide->config; TRACE("on_close_window") if DEBUG; # Terminate any currently running debugger session before we start # to do anything significant. if (Padre::Feature::DEBUGGER) { if ( $self->{debugger} ) { $self->{debugger}->quit; } } # Wrap one big database transaction around this entire shutdown process. # If the user aborts the shutdown, then the resulting commit will # just save some basic parts like the last session and so on. # Some of the steps in the shutdown have transactions anyway, but # this will expand them to cover everything. my $transaction = $self->lock( 'DB', 'refresh_recent' ); # Capture the current session, before we start the interactive # part of the shutdown which will mess it up. $self->update_last_session; TRACE("went over list of files") if DEBUG; # Check that all files have been saved if ( $event->CanVeto ) { if ( $config->startup_files eq 'same' ) { # Save the files, but don't close my $saved = $self->on_save_all; unless ($saved) { # They cancelled at some point $event->Veto; return; } } else { my $closed = $self->close_all; unless ($closed) { # They cancelled at some point $event->Veto; return; } } # Make sure the user is aware of any rogue processes he might have ran if ( $self->{command} ) { my $ret = Wx::MessageBox( Wx::gettext("You still have a running process. Do you want to kill it and exit?"), Wx::gettext("Warning"), Wx::YES_NO | Wx::CENTRE, $self, ); if ( $ret == Wx::YES ) { if ( $self->{command} ) { if (Padre::Constant::WIN32) { $self->{command}->KillProcess; } else { $self->{command}->TerminateProcess; } delete $self->{command}; } } else { $event->Veto; return; } } } TRACE("Files saved (or not), hiding window") if DEBUG; # A number of things don't like being destroyed while they are locked. # Potential segfaults and what not. Instructing the locker to shutdown # will make it release all locks and silently suppress all attempts to # make new locks. $self->locker->shutdown; # Save the window geometry before we hide the window. There's some # weak evidence that capturing position while not showing might be # flaky in some situations, and this is pretty cheap so doing it before # (rather than after) the ->Show(0) shouldn't hurt much. $self->window_save; # Hide the window before any of the following slow/intensive stuff so # that the user perceives the application as closing faster. This knocks # at least quarter of a second off the speed at which Padre appears to # close compared to letting it close naturally. # It probably also makes it shut actually faster as well, as Wx won't # try to do any updates or painting as we shut things down. $self->Show(0); TRACE("MAIN WINDOW HIDDEN. PADRE APPEARS TO BE CLOSED TO USER") if DEBUG; # Clean up our secondary windows if ( $self->has_directory ) { $self->directory->view_stop; } if ( $self->has_functions ) { $self->functions->view_stop; } if ( $self->has_outline ) { $self->outline->view_stop; } if ( $self->has_syntax ) { $self->syntax->view_stop; } if ( $self->has_cpan ) { $self->cpan->view_stop; } if ( $self->has_vcs ) { $self->vcs->view_stop; } if ( $self->{help} ) { $self->{help}->Destroy; } # Shut down and destroy all the plug-ins before saving the # configuration so that plug-ins have a change to save their # configuration. $ide->plugin_manager->shutdown; TRACE("After plugin manager shutdown") if DEBUG; # Increment the startup counter now, so that it is higher next time $config->set( nth_startup => $config->nth_startup + 1 ); # Write the configuration to disk $ide->config->write; $event->Skip(1); # Stop the task manager. TRACE("Shutting down Task Manager") if DEBUG; $ide->task_manager->stop; # The AUI manager requires a manual UnInit. The documentation for it # says that if we don't do this it may segfault the process on exit. $self->aui->UnInit; # Vacuum database on exit so that it does not grow. # Since you can't VACUUM inside a transaction, end it first. # Doing the vacuum here, which can take several 10ths of a second, # gives the child threads a chance to clean up and exit. undef $transaction; Padre::DB->vacuum; # Yield to allow any final task manager messages to flush out TRACE("Yielding to allow final plthreadevent handling") if DEBUG; $ide->wx->Yield; # Clean up the shut down (unjoined) threads TRACE("Waiting to join final threads") if DEBUG; $ide->task_manager->waitjoin; TRACE("Closing Padre") if DEBUG; return; } sub update_last_session { my $self = shift; # Only save if the user cares about sessions my $startup_files = $self->config->startup_files; unless ( $startup_files eq 'last' or $startup_files eq 'session' ) { return; } # Write the current session to the database my $transaction = $self->lock('DB'); my $session = Padre::DB::Session->last_padre_session; Padre::DB::SessionFile->delete_where( 'session = ?', $session->id, ); $self->save_session( $session, $self->capture_session ); } =pod =head3 C<setup_editors> $main->setup_editors( @files ); Setup (new) tabs for C<@files>, and update the GUI. If C<@files> is C<undef>, open an empty document. =cut sub setup_editors { my $self = shift; my @files = @_; TRACE("setup_editors @files") if DEBUG; SCOPE: { # Update the menus AFTER the initial GUI update, # because it makes file loading LOOK faster. # Do the menu/etc refresh in the time it takes the # user to actually perceive the file has been opened. # Lock both Perl and Wx-level updates, and throw in a # database transaction for good measure. my $lock = $self->lock( 'UPDATE', 'DB', 'refresh', 'update_last_session' ); # If and only if there is only one current file, # and it is unused, close it. This is a somewhat # subtle interface DWIM trick, but it's one that # clearly looks wrong when we DON'T do it. if ( $self->notebook->GetPageCount == 1 ) { if ( $self->current->document->is_unused ) { $self->close; } } if (@files) { foreach my $f (@files) { $self->setup_editor($f); } } else { $self->setup_editor; } } # Notify plugins that an editor has been changed $self->{ide}->plugin_manager->plugin_event('editor_changed'); return; } =pod =head3 C<on_new> $main->on_new; Create a new empty tab. No return value. =cut sub on_new { my $self = shift; my $lock = $self->lock( 'UPDATE', 'refresh' ); $self->setup_editor; return; } =pod =head3 C<setup_editor> $main->setup_editor( $file ); Setup a new tab / buffer and open C<$file>, then update the GUI. Recycle current buffer if there's only one empty tab currently opened. If C<$file> is already opened, focus on the tab displaying it. Finally, if C<$file> does not exist, create an empty file before opening it. =cut sub setup_editor { my $self = shift; my $file = shift; my $ide = $self->ide; my $config = $ide->config; my $plugins = $ide->plugin_manager; TRACE( "setup_editor called for '" . ( $file || '' ) . "'" ) if DEBUG; if ($file) { # Get the absolute path # Please Dont use Cwd::realpath, UNC paths do not work on win32) # $file = File::Spec->rel2abs($file) if -f $file; # Mixes up URLs # Use Padre::File to get the real filenames require Padre::File; my $file_obj = Padre::File->new($file); if ( defined($file_obj) and ref($file_obj) and $file_obj->exists ) { my $id = $self->editor_of_file( $file_obj->{filename} ); if ( defined $id ) { $self->on_nth_pane($id); return; } } #not sure where the best place for this checking is.. #I'd actually like to make it recursivly open files #(but that will require a dialog listing them to avoid opening an infinite number of files) # WARNING: This currently only works on local files! if ( -d $file_obj->{filename} ) { $self->error( sprintf( Wx::gettext("Cannot open a directory: %s"), $file ) ); return; } } require Padre::Document; my $document = Padre::Document->new( filename => $file ) or return; $file ||= ''; # to avoid warnings if ( $document->errstr ) { warn $document->errstr . " when trying to open '$file'"; return; } TRACE("Document created for '$file'") if DEBUG; require Padre::Wx::Editor; my $lock = $self->lock( 'REFRESH', 'update_last_session', 'refresh_menu' ); my $editor = Padre::Wx::Editor->new( $self->notebook ); $editor->{Document} = $document; $document->set_editor($editor); $editor->set_document($document); $plugins->editor_enable($editor); $editor->setup_document; if ( $document->is_new ) { # The project is probably the same as the previous file we had open $document->{project_dir} = $self->current->document ? $self->current->document->project_dir : $config->default_projects_directory; } else { TRACE( "Adding new file to history: " . $document->filename ) if DEBUG; my $history = $self->lock( 'DB', 'refresh_recent' ); Padre::DB::History->create( type => 'files', name => $document->filename, ); } my $title = $editor->{Document}->get_title; my $id = $self->create_tab( $editor, $title ); $editor->Show; $self->notebook->GetPage($id)->SetFocus; if (Padre::Feature::CURSORMEMORY) { $editor->restore_cursor_position; } if ( $document->mimetype =~ m/perl/ ) { require Padre::Breakpoints; Padre::Breakpoints->show_breakpoints; foreach my $editor ( $self->editors ) { $editor->SetMarginWidth( 1, 16 ); } return; } # Notify plugins $plugins->plugin_event('editor_changed'); return $id; } =pod =head3 C<create_tab> my $tab = $main->create_tab; Create a new tab in the notebook, and return its id (an integer). =cut sub create_tab { my $self = shift; my $editor = shift; my $title = shift; $title ||= '(' . Wx::gettext('Unknown') . ')'; my $lock = $self->lock('refresh'); $self->notebook->AddPage( $editor, $title, 1 ); $editor->SetFocus; return $self->notebook->GetSelection; } =pod =head3 C<on_deparse> Show what perl thinks about your code using L<B::Deparse> =cut sub on_deparse { my $self = shift; my $current = $self->current; my $text = shift || $current->text; my $editor = $current->editor or return; # get selection, ask for it if needed unless ( length $text ) { $self->error('Currently we require a selection for this to work'); return; } use Capture::Tiny qw(capture); my $dir = File::Temp::tempdir( CLEANUP => 1 ); my $file = "$dir/file"; if ( open my $fh, '>', $file ) { print $fh $text; close $fh; } else { $self->error('Strange error occured'); return; } my $perl = $^X; my ( $out, $err ) = capture { system qq{$perl -MO=Deparse,-p $file}; }; if ($out) { $self->message( $out, 'Deparse' ); } else { $self->error( 'Deparse failed: ' . $err ); } # eg, highlight the code part of the following comment: # print ~~ grep { $_ eq 'x' } qw(a b c x); return; } =pod =head3 C<on_open_selection> $main->on_open_selection; Try to open current selection in a new tab. Different combinations are tried in order: as full path, as path relative to C<cwd> (where the editor was started), as path to relative to where the current file is, if we are in a Perl file or Perl environment also try if the thing might be a name of a module and try to open it locally or from C<@INC>. No return value. =cut sub on_open_selection { my $self = shift; my $current = $self->current; my $text = shift || $current->text; my $editor = $current->editor or return; # get selection, ask for it if needed unless ( length $text ) { my $dialog = Wx::TextEntryDialog->new( $self, Wx::gettext("Nothing selected. Enter what should be opened:"), Wx::gettext("Open selection"), '' ); #help the user by loading whats on the current line my $pos = $editor->GetCurrentPos; my $line = $editor->LineFromPosition($pos); my $first = $editor->PositionFromLine($line); my $last = $editor->PositionFromLine( $line + 1 ); $text = $editor->GetTextRange( $first, $last ); if ($text) { $text =~ s/^[\s\n]*(.*?)[\s\n]*$/$1/; $dialog->SetValue($text); } return if $dialog->ShowModal == Wx::ID_CANCEL; $text = $dialog->GetValue; $dialog->Destroy; return unless length $text; } # Remove leading and trailing whitespace or newlines # We assume you are opening _one_ file, so newlines in the middle are significant $text =~ s/^[\s\n]*(.*?)[\s\n]*$/$1/; my @files; if ( File::Spec->file_name_is_absolute($text) and -e $text ) { push @files, $text; } else { # Try relative to the dir we started in? SCOPE: { my $filename = File::Spec->catfile( $self->ide->{original_cwd}, $text, ); if ( -f $filename ) { push @files, $filename; } } # Try relative to the current file if ( $current->filename ) { my $filename = File::Spec->catfile( File::Basename::dirname( $current->filename ), $text, ); if ( -f $filename ) { push @files, $filename; } } } unless (@files) { my $document = $current->document; push @files, $document->guess_filename_to_open($text); unless (@files) { my $text_shortened = $text; $text_shortened =~ s{::[^\:]+$}{}; push @files, $document->guess_filename_to_open($text_shortened); } } unless (@files) { #replace this with the original chooser dialog - so the user can refine it $self->message( sprintf( Wx::gettext("Could not find file '%s'"), $text ), Wx::gettext("Open Selection") ); return; } require List::MoreUtils; @files = List::MoreUtils::uniq(@files); if ( @files > 1 ) { # Pick a file my $file = $self->single_choice( Wx::gettext('Choose File'), '', [@files], ); $self->setup_editors($file) if defined $file; } else { # Open the only result without further interaction $self->setup_editors( $files[0] ); } return; } =pod =head3 C<on_open_all_recent_files> $main->on_open_all_recent_files; Try to open all recent files within Padre. No return value. =cut sub on_open_all_recent_files { my $files = Padre::DB::History->recent('files'); # debatable: "reverse" keeps order in "recent files" submenu # but editor tab ordering may "feel" wrong $_[0]->setup_editors( reverse grep { -e $_ } @$files ); } =pod =head3 C<on_filter_tool> $main->on_filter_tool; Prompt user for a command to filter the selection/document. =cut sub on_filter_tool { require Padre::Wx::Dialog::FilterTool; Padre::Wx::Dialog::FilterTool->new( $_[0] )->show; } =head3 C<on_open_url> $main->on_open_url; Prompt user for URL to open and open it as a new tab. Should be merged with ->on_open or at least a browsing function should be added. =cut sub on_open_url { require Padre::Wx::Dialog::OpenURL; my $self = shift; my $url = Padre::Wx::Dialog::OpenURL->modal($self); unless ( defined $url ) { return; } $self->setup_editor($url); $self->save_current_session; } =pod =head3 C<on_open> $main->on_open; Prompt user for file(s) to open, and open them as new tabs. No return value. =cut sub on_open { my $self = shift; my $filename = $self->current->filename; if ($filename) { $self->{cwd} = File::Basename::dirname($filename); } $self->open_file_dialog; } # TO DO: let's allow this to be used by plug-ins sub open_file_dialog { my $self = shift; my $dir = shift; if ($dir) { $self->{cwd} = $dir; } # http://docs.wxwidgets.org/stable/wx_wxfiledialog.html: # "It must be noted that wildcard support in the native Motif file dialog is quite # limited: only one alternative is supported, and it is displayed without # the descriptive text." # But I don't think Wx + Motif is in use nowadays my $wildcards = join( '|', Wx::gettext('JavaScript Files'), '*.js;*.JS', Wx::gettext('Perl Files'), '*.pm;*.PM;*.pl;*.PL', Wx::gettext('PHP Files'), '*.php;*.php5;*.PHP', Wx::gettext('Python Files'), '*.py;*.PY', Wx::gettext('Ruby Files'), '*.rb;*.RB', Wx::gettext('SQL Files'), '*.sql;*.SQL', Wx::gettext('Text Files'), '*.txt;*.TXT;*.yml;*.conf;*.ini;*.INI;.*rc', Wx::gettext('Web Files'), '*.html;*.HTML;*.htm;*.HTM;*.css;*.CSS', Wx::gettext('Script Files'), '*.sh;*.bat;*.BAT', ); $wildcards = Padre::Constant::WIN32 ? Wx::gettext('All Files') . '|*.*|' . $wildcards : Wx::gettext('All Files') . '|*|' . $wildcards; my $dialog = Wx::FileDialog->new( $self, Wx::gettext('Open File'), $self->cwd, '', $wildcards, Wx::FD_MULTIPLE, ); if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my @filenames = $dialog->GetFilenames; $self->{cwd} = $dialog->GetDirectory; #print $dialog->GetPath, " <- path\n"; #print $dialog->GetFilename, " <- filename\n"; #print $dialog->GetDirectory, " <- directory\n"; # at least on Linux running Gnome the open file dialog provides a place # to paste a full path of a file. If the user does that then the # GetFilename method will return this full path while the GetFilename # method will return the name of the file only and GetDirectory will point # to where the file browser is open which is probably not the same directory # in which our file is in if ( @filenames == 1 ) { my $fullpath = $dialog->GetPath; $self->{cwd} = File::Basename::dirname($fullpath); @filenames = File::Basename::basename($fullpath); } my @files; foreach my $filename (@filenames) { if ( $filename =~ /[\*\?]/ ) { # Windows usually handles this at the dialog level, but Gnome doesn't, # so this should never appear on Windows: my $ret = Wx::MessageBox( sprintf( Wx::gettext('File name %s contains * or ? which are special chars on most computers. Skip?'), $filename ), Wx::gettext("Open Warning"), Wx::YES_NO | Wx::CENTRE, $self, ); next if $ret == Wx::YES; } my $FN = File::Spec->catfile( $self->cwd, $filename ); unless ( -e $FN ) { # This could be checked by a Windows dialog, but a Gnome dialog doesn't, # and created empty files when you do a typo in the open box when # entering and not selecting a filename to open: my $ret = Wx::MessageBox( sprintf( Wx::gettext('File name %s does not exist on disk. Skip?'), $FN ), Wx::gettext("Open Warning"), Wx::YES_NO | Wx::CENTRE, $self, ); next if $ret == Wx::YES; } push @files, $FN; } my $lock = $self->lock( 'REFRESH', 'DB' ); $self->setup_editors(@files) if $#files > -1; $self->save_current_session; return; } =pod =head3 C<on_open_with_default_system_editor> $main->on_open_with_default_system_editor($filename); Opens C<$filename> in the default system editor =cut sub on_open_with_default_system_editor { require Padre::Util::FileBrowser; Padre::Util::FileBrowser->open_with_default_system_editor( $_[1] ); } =pod =head3 C<on_open_in_command_line> $main->on_open_in_command_line($filename); Opens a command line/shell using the working directory of C<$filename> =cut sub on_open_in_command_line { require Padre::Util::FileBrowser; Padre::Util::FileBrowser->open_in_command_line( $_[1] ); } =pod =head3 C<on_open_example> $main->on_open_example; Opens the examples file dialog =cut sub on_open_example { $_[0]->open_file_dialog( Padre::Util::sharedir('examples') ); } =pod =head3 C<on_open_last_closed_file> $main->on_open_last_closed_file; Opens the last closed file in similar fashion to Chrome and Firefox. =cut sub on_open_last_closed_file { my $self = shift; my $last_closed_file = $self->{_last_closed_file} or return; $self->setup_editor($last_closed_file); } =pod =head3 C<reload_editor> $main->reload_editor; Try to reload a file from disk. Display an error if something went wrong. Returns 1 on success and 0 in case of and error. =cut sub reload_editor { my $self = shift; my $editor = shift || $self->current->editor or return 0; my $document = $editor->document or return 0; # If file doesn't exist close the tab unless ( -e $document->{filename} ) { my $id = $self->editor_of_file( $document->{filename} ); $self->delete($id); return 1; } my $lock = $editor->lock_update; # Capture where we are in the document my $line = $editor->LineFromPosition( $editor->GetCurrentPos ); # Reload the document and propogate to the editor unless ( $document->reload ) { $self->error( sprintf( Wx::gettext("Could not reload file: %s"), $document->errstr ) ); return 0; } $editor->set_document($document); # Restore the line position my $position = $editor->PositionFromLine($line); $editor->SetCurrentPos($position); $editor->SetAnchor($position); if ( $document->mimetype =~ m/perl/ ) { require Padre::Breakpoints; Padre::Breakpoints->show_breakpoints(); foreach my $editor ( $self->editors ) { $editor->SetMarginWidth( 1, 16 ); } } # Refresh the editor title to remove any unsaved marker $editor->refresh_notebook; return 1; } =pod =head3 C<reload_editors> my $success = $main->reload_editors(@editors); Reloads a series of editors. Returns true upon success, false otherwise. =cut sub reload_editors { my $self = shift; my @editors = @_; # Show a progress dialog as this may be long running require Padre::Wx::Progress; my $progress = Padre::Wx::Progress->new( $self, Wx::gettext('Reloading Files'), $#editors, lazy => 1, ); # Interate through the reloads my $lock = $self->lock('REFRESH'); my $total = scalar @editors; my $notebook = $self->notebook; foreach my $i ( 0 .. $#editors ) { $progress->update( $i, ( $i + 1 ) . "/$total" ); $self->reload_editor( $editors[$i] ); } # Notify the plugin manager of the changed files $self->ide->plugin_manager->plugin_event('editor_changed'); # Refresh everything once we are done # TO DO Remove this once reload_editor is smart enough to refresh $self->refresh; return 1; } =pod =head3 C<reload_all> my $success = $main->reload_all; Reload all open files from disk. =cut sub reload_all { my $self = shift; $self->reload_editors( $self->editors ); } =pod =head2 C<reload_dialog> $main->reload_dialog; Displays the "Reload Files" dialog, asking the user which files should be reloaded and reloading them as specified. =cut sub reload_dialog { my $self = shift; my %args = @_; require Padre::Wx::Dialog::WindowList; Padre::Wx::Dialog::WindowList->new( $self, title => Wx::gettext('Reload Files'), list_title => Wx::gettext('&Select files to reload:'), buttons => [ [ Wx::gettext('&Reload selected'), sub { $_[0]->main->reload_editors(@_); }, ], ], %args, )->show; } =pod =head3 C<on_save> my $success = $main->on_save; Try to save current document. Prompt user for a file name if document was new (see C<on_save_as()> above). Return true if document has been saved, false otherwise. =cut sub on_save { my $self = shift; my $document = shift || $self->current->document; return unless $document; my $pageid = $self->editor_id( $document->editor ); if ( $document->is_new ) { # move focus to document to be saved $self->on_nth_pane($pageid); return $self->on_save_as; } elsif ( $document->is_modified ) { return $self->_save_buffer($pageid); } return; } =pod =head3 C<on_save_as> my $was_saved = $main->on_save_as; Prompt user for a new file name to save current document, and save it. Returns true if saved, false if cancelled. =cut sub on_save_as { my $self = shift; my $document = $self->current->document or return; my $current = defined( $document->{file} ) ? $document->{file}->filename : undef; # Guess the directory to save to if ( defined $current ) { $self->{cwd} = File::Basename::dirname($current); } elsif ( defined $document->project_dir ) { $self->{cwd} = $document->project_dir; # Support sub-directory intuition # if the subdirectory already exists. my @subpath = $document->guess_subpath; if (@subpath) { my $subdir = File::Spec->catdir( $document->project_dir, @subpath, ); if ( -d $subdir ) { $self->{cwd} = $subdir; } } } # Guess the filename to save to my $filename = $document->guess_filename; $filename = '' unless defined $filename; while (1) { my $dialog = Wx::FileDialog->new( $self, Wx::gettext('Save file as...'), $self->{cwd}, $filename, Wx::gettext('All Files') . ( Padre::Constant::WIN32 ? '|*.*' : '|*' ), Wx::FD_SAVE, ); if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } # GetPath will return the typed in string # for a file path to be saved to. # now we need to work out if we use GetPath # or concatinate the two values used. $self->{cwd} = $dialog->GetDirectory; my $saveto = $dialog->GetPath; my $path = File::Spec->catfile($saveto); if ( -e $path ) { my $response = Wx::MessageBox( Wx::gettext("File already exists. Overwrite it?"), Wx::gettext("Exist"), Wx::YES_NO, $self, ); if ( $response == Wx::YES ) { $document->set_filename($path); $document->save_file; $document->set_newline_type(Padre::Constant::NEWLINE); last; } } else { $document->set_filename($path); $document->save_file; $document->set_newline_type(Padre::Constant::NEWLINE); delete $document->{project_dir}; last; } } my $pageid = $self->notebook->GetSelection; $self->_save_buffer($pageid); $document->set_mimetype( $document->guess_mimetype ); $document->editor->setup_document; $document->rebless; $document->colourize; if ( defined $document->{file} ) { $filename = $document->{file}->filename; } if ( defined $filename ) { Padre::DB::History->create( type => 'files', name => $filename, ); # Immediately refresh the recent list, or save the request # for refresh lock expiry. We probably should add a specific # lock method for this non-guard-object case. # We also need to refresh the directory list, in case a change # in file name means the project context has changed. $self->lock( 'refresh_recent', 'refresh_directory' ); } $self->refresh; # Notify plugins about a possible mimetype change $self->{ide}->plugin_manager->plugin_event('editor_changed'); return 1; } =pod =head3 C<on_save_intuition> my $success = $main->on_save_intuition; Try to automatically determine an appropriate file name and save it, based entirely on the content of the file. Only do this for new documents, otherwise behave like a regular save. =cut sub on_save_intuition { my $self = shift; my $current = $self->current; my $document = $current->document or return; # We only use Save Intuition for new files unless ( $document->is_new ) { if ( $document->is_saved ) { # Nothing to do return; } else { # Regular save return $self->on_save(@_); } } # Empty files get done via the normal save if ( $document->is_unused ) { return $self->on_save_as(@_); } # Don't use Save Intuition in null projects my $project = $current->project; unless ($project) { return $self->on_save_as(@_); } # We need both a guessed path and file name to do anything my @subpath = $document->guess_subpath; my $filename = $document->guess_filename; unless ( @subpath and defined Params::Util::_STRING($filename) ) { # Cannot come up with a suitable guess return $self->on_save_as(@_); } # Convert the guesses to full paths my $dir = File::Spec->catdir( $document->project_dir, @subpath ); my $path = File::Spec->catfile( $dir, $filename ); if ( -f $path ) { # Potential collision, error and fall back $self->error( Wx::gettext('File already exists') ); return $self->on_save_as(@_); } # Create the directory, if needed unless ( -d $dir ) { my $error = []; File::Path::make_path( $dir, { verbose => 0, error => \$error, } ); if (@$error) { $self->error( sprintf( Wx::gettext("Failed to create path '%s'"), $dir ) ); return $self->on_save_as(@_); } } # Save the file $document->set_filename($path); $document->save_file; $document->set_newline_type(Padre::Constant::NEWLINE); # Laborious copy of the above. # Generalise it later my $pageid = $self->notebook->GetSelection; $self->_save_buffer($pageid); $document->set_mimetype( $document->guess_mimetype ); $document->editor->setup_document; $document->rebless; $document->colourize; $filename = $document->{file}->filename if defined( $document->{file} ); if ( defined($filename) ) { Padre::DB::History->create( type => 'files', name => $filename, ); # Immediately refresh the recent list, or save the request # for refresh lock expiry. We probably should add a specific # lock method for this non-guard-object case. $self->lock('refresh_recent'); } $self->refresh; return 1; } =pod =head3 C<on_save_all> my $success = $main->on_save_all; Try to save all opened documents. Return true if all documents were saved, false otherwise. =cut sub on_save_all { my $self = shift; my $notebook = $self->notebook; my $selected = $notebook->GetSelection; # Are there any modified documents? my @modified = $self->documents_modified or return 1; # Save the unmodified documents foreach my $document (@modified) { $self->on_save($document) or return 0; } # If we ended up with a different document in focus, # return the focus to the original one. unless ( $notebook->GetSelection == $selected ) { $notebook->SetSelection($selected); $self->editor_focus; } # Force-refresh backups (i.e. probably delete them) $self->backup(1); return 1; } =pod =head3 C<_save_buffer> my $success = $main->_save_buffer($id); Try to save buffer in tab C<$id>. This is the method used underneath by all C<on_save_*()> methods. It will check if document has been updated out of Padre before saving, and report an error if something went wrong. Return true if buffer was saved, false otherwise. =cut sub _save_buffer { my ( $self, $id ) = @_; my $page = $self->notebook->GetPage($id); my $doc = $page->{Document} or return; if ( $doc->has_changed_on_disk ) { my $ret = Wx::MessageBox( Wx::gettext("File changed on disk since last saved. Do you want to overwrite it?"), $doc->filename || Wx::gettext("File not in sync"), Wx::YES_NO | Wx::CENTRE, $self, ); return if $ret != Wx::YES; } unless ( $doc->save_file ) { $self->error( Wx::gettext("Could not save file: ") . $doc->errstr, Wx::gettext("Error"), ); return; } $page->SetSavePoint; $self->refresh; return 1; } =pod =head3 C<on_close> $main->on_close( $event ); Handler when there is a close C<$event>. Veto it if it's from the C<AUI> notebook, since Wx will try to close the tab no matter what. Otherwise, close current tab. No return value. =cut sub on_close { my $self = shift; my $event = shift; # When we get an Wx::AuiNotebookEvent from it will try to close # the notebook no matter what. For the other events we have to # close the tab manually which we do in the close() function # Hence here we don't allow the automatic closing of the window. if ( $event and $event->isa('Wx::AuiNotebookEvent') ) { $event->Veto; } $self->close; # Transaction-wrap the session saving. # If we are closing the last document we need to trigger a full # refresh. If not, closing this file results in a focus event # on the next remaining document, which does the refresh for us. my @methods = ('update_last_session'); push @methods, 'refresh' unless $self->editors; my $lock = $self->lock( 'DB', @methods ); $self->save_current_session; return; } =pod =head3 C<close> my $success = $main->close( $id ); Request to close document in tab C<$id>, or current one if no C<$id> provided. Return true if closed, false otherwise. =cut sub close { my $self = shift; my $notebook = $self->notebook; my $id = shift; unless ( defined $id ) { $id = $notebook->GetSelection; } return if $id == -1; my $editor = $notebook->GetPage($id) or return; my $document = $editor->{Document} or return; my $lock = $self->lock( qw{ REFRESH DB refresh_directory refresh_menu refresh_windowlist } ); TRACE( join ' ', "Closing ", ref $document, $document->filename || 'Unknown' ) if DEBUG; if ( $document->is_modified and not $document->is_unused ) { my $ret = Wx::MessageBox( Wx::gettext("File changed. Do you want to save it?"), $document->filename || Wx::gettext("Unsaved File"), Wx::YES_NO | Wx::CANCEL | Wx::CENTRE, $self, ); if ( $ret == Wx::YES ) { # see #1447 if ( -e $document->{filename} ) { $self->on_save($document); } } elsif ( $ret == Wx::NO ) { # just close it } else { # Wx::CANCEL, or when clicking on [x] return 0; } } # Ticket #828 - ordering is probably important here # when should plugins be notified ? $self->ide->plugin_manager->editor_disable($editor); # Also, if any padre-client or other listeners to this file exist, # notify it that we're done with it: my $fn = $document->filename; if ($fn) { @{ $self->{on_close_watchers}->{$fn} } = map { warn "Calling on_close() callback"; my $remove = $_->($document); $remove ? () : $_ } @{ $self->{on_close_watchers}->{$fn} }; } if (Padre::Feature::CURSORMEMORY) { $editor->store_cursor_position; } if ( $document->tempfile ) { $document->remove_tempfile; } # Now we are past the confirmation, apply an update lock as well my $lock2 = $self->lock('UPDATE'); $self->notebook->DeletePage($id); # NOTE: Why are we doing an explicit clear? # Wouldn't a refresh to them clear if needed anyway? if ( $self->has_syntax ) { $self->syntax->clear; } if ( $self->has_outline ) { $self->outline->clear; } # Release all locks undef $lock; $self->refresh_recent; return 1; } =pod =head3 C<close_all> my $success = $main->close_all( $skip ); Try to close all documents. If C<$skip> is specified (an integer), don't close the tab with this id. Return true upon success, false otherwise. =cut sub close_all { my $self = shift; my $skip = shift; my $lock = $self->lock('UPDATE'); my $manager = $self->{ide}->plugin_manager; $self->save_current_session; # Remove current session ID from IDE object # Do this before closing as the session shouldn't be affected by a close-all undef $self->ide->{session}; my @pages = reverse $self->pageids; require Padre::Wx::Progress; my $progress = Padre::Wx::Progress->new( $self, Wx::gettext('Close all'), $#pages, lazy => 1 ); SCOPE: { my $lock = $self->lock('refresh'); foreach my $no ( 0 .. $#pages ) { $progress->update( $no, ( $no + 1 ) . '/' . scalar(@pages) ); if ( defined $skip and $skip == $pages[$no] ) { next; } $self->close( $pages[$no] ) or return 0; } } # Recalculate window title $self->refresh_title; $manager->plugin_event('editor_changed'); # Refresh recent files list $self->refresh_recent; # Force-refresh backups (i.e. delete them) $self->backup(1); return 1; } =pod =head3 C<close_some> my $success = $main->close_some(@pages_to_close); Try to close all documents. Return true upon success, false otherwise. =cut sub on_close_some { my $self = shift; my $lock = $self->lock('UPDATE'); require Padre::Wx::Dialog::WindowList; Padre::Wx::Dialog::WindowList->new( $self, title => Wx::gettext('Close some files'), list_title => Wx::gettext('Select files to close:'), buttons => [ [ 'Close selected', sub { $_[0]->main->close_some(@_); }, ], ], )->show; } sub close_some { my $self = shift; my @close_pages = @_; my $notebook = $self->notebook; my $manager = $self->{ide}->plugin_manager; require Padre::Wx::Progress; my $progress = Padre::Wx::Progress->new( $self, Wx::gettext('Close some'), $#close_pages, lazy => 1 ); SCOPE: { my $lock = $self->lock('refresh'); foreach my $close_page_no ( 0 .. $#close_pages ) { $progress->update( $close_page_no, ( $close_page_no + 1 ) . '/' . scalar(@close_pages) ); foreach my $pageid ( $self->pageids ) { my $page = $notebook->GetPage($pageid); next unless defined($page); next unless $page eq $close_pages[$close_page_no]; $self->close($pageid) or return 0; } } } # Recalculate window title $self->refresh_title; $manager->plugin_event('editor_changed'); return 1; } =pod =head3 C<close_where> # Close all files in current project my $project = Padre::Current->document->project_dir; my $success = $main->close_where( sub { $_[0]->project_dir eq $project } ); The C<close_where> method is for closing multiple document windows. It takes a subroutine as a parameter and calls that subroutine for each currently open document, passing the document as the first parameter. Any documents that return true will be closed. =cut sub close_where { my $self = shift; my $where = shift; my $notebook = $self->notebook; # Generate the list of ids to close before we go to the # expensive of taking any locks. my @close = grep { $where->( $notebook->GetPage($_)->{Document} ) } reverse $self->pageids; if (@close) { my $lock = $self->lock( 'UPDATE', 'DB', 'refresh' ); foreach my $id (@close) { $self->close($id) or return 0; } } return 1; } =pod =head3 C<on_delete> $main->on_delete; Close the current tab and remove the associated file from disk. No return value. =cut sub on_delete { my $self = shift; $self->delete; } =pod =head3 C<delete> my $success = $main->delete( $id ); Request to close document in tab C<$id>, or current one if no C<$id> provided and DELETE THE FILE FROM DISK. Return true if closed, false otherwise. =cut sub delete { my $self = shift; my $notebook = $self->notebook; my $id = shift; unless ( defined $id ) { $id = $notebook->GetSelection; } return if $id == -1; my $editor = $notebook->GetPage($id) or return; my $document = $editor->{Document} or return; # We need those even when the document is already closed: my $file = $document->file; my $filename = $document->filename or return; if ( !$file->can_delete ) { $self->error( Wx::gettext('This type of file (URL) is missing delete support.') ); return 1; } if ( !$filename ) { $self->error( Wx::gettext("File was never saved and has no filename - can't delete from disk") ); return 1; } my $ret = Wx::MessageBox( sprintf( Wx::gettext("Do you really want to close and delete %s from disk?"), $filename ), # see #1447 Wx::gettext("Warning"), Wx::YES_NO | Wx::CANCEL | Wx::CENTRE, $self, ); return 1 unless $ret == Wx::YES; TRACE( join ' ', "Deleting ", ref $document, $filename || 'Unknown' ) if DEBUG; $self->close($id); my $manager = $self->{ide}->plugin_manager; return unless $manager->hook( 'before_delete', $file ); if ( !$file->delete ) { $self->error( sprintf( Wx::gettext("Error deleting %s:\n%s"), $filename, $file->error ) ); return 1; } $manager->hook( 'after_delete', $file ); return 1; } =pod =head3 C<on_nth_path> $main->on_nth_pane( $id ); Put focus on tab C<$id> in the notebook. Return true upon success, false otherwise. =cut sub on_nth_pane { my $self = shift; my $id = shift; my $page = $self->notebook->GetPage($id); unless ($page) { $self->current->editor->SetFocus; return; } $self->notebook->SetSelection($id); $self->refresh_status; $page->SetFocus; $self->ide->plugin_manager->plugin_event('editor_changed'); return 1; } =pod =head3 C<on_next_pane> $main->on_next_pane; Put focus on tab next to current document. Currently, only left to right order is supported, but later on it can be extended to follow a last seen order. No return value. =cut sub on_next_pane { my $self = shift; my $count = $self->notebook->GetPageCount or return; my $id = $self->notebook->GetSelection; if ( $id + 1 < $count ) { $self->on_nth_pane( $id + 1 ); } else { $self->on_nth_pane(0); } $self->current->editor->SetFocus; return; } =pod =head3 C<on_prev_pane> $main->on_prev_pane; Put focus on tab previous to current document. Currently, only right to left order is supported, but later on it can be extended to follow a reverse last seen order. No return value. =cut sub on_prev_pane { my $self = shift; my $count = $self->notebook->GetPageCount or return; my $id = $self->notebook->GetSelection; if ($id) { $self->on_nth_pane( $id - 1 ); } else { $self->on_nth_pane( $count - 1 ); } $self->current->editor->SetFocus; return; } =pod =head3 C<on_join_lines> $main->on_join_lines; Join current line with next one ( la B<vi> with C<Ctrl+J>). No return value. =cut sub on_join_lines { my $self = shift; my $page = $self->current->editor; # Don't crash if no document is open return if !defined($page); # find positions my $pos1 = $page->GetCurrentPos; my $line = $page->LineFromPosition($pos1); # Don't crash if cursor at the last line return if ( $line >= 0 ) and ( $line + 1 == $page->GetLineCount ); my $pos2 = $page->PositionFromLine( $line + 1 ); # Remove leading spaces/tabs from the second line my $code = $page->GetLine( $page->LineFromPosition($pos2) ); $code =~ s/^\s+//; $code =~ s/\n$//; $page->SetTargetStart($pos2); $page->SetTargetEnd( $page->GetLineEndPosition( $line + 1 ) ); $page->ReplaceTarget($code); # mark target & join lines $page->SetTargetStart($pos1); $page->SetTargetEnd($pos2); $page->LinesJoin; } =pod =head2 Preferences and toggle methods Those methods allow to change Padre's preferences. =head3 C<zoom> $main->zoom( $factor ); Apply zoom C<$factor> to Padre's documents. Factor can be either positive or negative. =cut sub zoom { my $self = shift; my $page = $self->current->editor or return; my $zoom = $page->GetZoom + shift; foreach my $page ( $self->editors ) { $page->SetZoom($zoom); } return 1; } =pod =head3 C<show_regex_editor> $main->show_regex_editor; Open Padre's regular expression editor. No return value. =cut sub show_regex_editor { my $self = shift; unless ( defined $self->{regex_editor} ) { require Padre::Wx::Dialog::RegexEditor; $self->{regex_editor} = Padre::Wx::Dialog::RegexEditor->new($self); } unless ( defined $self->{regex_editor} ) { $self->error( Wx::gettext('Error loading regex editor.') ); return; } $self->{regex_editor}->show; return; } =pod =head3 C<show_perl_filter> $main->show_perl_filter; Open Padre's filter-through-perl. No return value. =cut sub show_perl_filter { my $self = shift; unless ( defined $self->{perl_filter} ) { require Padre::Wx::Dialog::PerlFilter; $self->{perl_filter} = Padre::Wx::Dialog::PerlFilter->new($self); } unless ( defined $self->{perl_filter} ) { $self->error( Wx::gettext('Error loading perl filter dialog.') ); return; } $self->{perl_filter}->show; return; } =pod =head3 C<editor_linenumbers> $main->editor_linenumbers(1); Set visibility of line numbers on the left of the document. No return value. =cut sub editor_linenumbers { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); $self->config->set( editor_linenumbers => $show ); foreach my $editor ( $self->editors ) { $editor->show_line_numbers($show); } $self->menu->view->refresh; return; } =pod =head3 C<editor_folding> $main->editor_folding(1); Enabled or disables code folding. No return value. =cut BEGIN { no warnings 'once'; *editor_folding = sub { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); my $pod = $self->config->editor_fold_pod; $self->config->set( editor_folding => $show ); foreach my $editor ( $self->editors ) { $editor->show_folding($show); if ( $show and $pod ) { $editor->fold_pod; } } $self->menu->view->refresh; return; } if Padre::Feature::FOLDING; } =pod =head3 C<editor_currentline> $main->editor_currentline(1); Enable or disable background highlighting of the current line. No return value. =cut sub editor_currentline { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); $self->config->set( editor_currentline => $show ); foreach my $editor ( $self->editors ) { $editor->SetCaretLineVisible($show); } $self->menu->view->refresh; return; } sub editor_currentline_color { my $self = shift; my $name = shift; my $lock = $self->lock('CONFIG'); $self->config->set( editor_currentline_color => $name ); # Apply the color to all editors my $color = Padre::Wx::color($name); foreach my $editor ( $self->editors ) { $editor->SetCaretLineBackground($color); } return; } =head3 C<editor_rightmargin> $main->editor_rightmargin(1); Enable or disable display of the right margin. No return value. =cut sub editor_rightmargin { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); $self->config->set( editor_right_margin_enable => $show ); my $column = $self->config->editor_right_margin_column; my $mode = $show ? Wx::Scintilla::Constant::EDGE_LINE : Wx::Scintilla::Constant::EDGE_NONE; foreach my $editor ( $self->editors ) { $editor->SetEdgeColumn($column); $editor->SetEdgeMode($mode); } $self->menu->view->refresh; return; } =pod =head3 C<editor_indentationguides> $main->editor_indentationguides(1); Enable or disable visibility of the indentation guides. No return value. =cut sub editor_indentationguides { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); $self->config->set( editor_indentationguides => $show ); foreach my $editor ( $self->editors ) { $editor->SetIndentationGuides($show); } $self->menu->view->refresh; return; } =pod =head3 C<editor_eol> $main->editor_eol(1); Show or hide end of line carriage return characters. No return value. =cut sub editor_eol { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); $self->config->set( editor_eol => $show ); foreach my $editor ( $self->editors ) { $editor->SetViewEOL($show); } $self->menu->view->refresh; return; } =pod =head3 C<editor_whitespace> $main->editor_whitespace; Show/hide spaces and tabs (with dots and arrows respectively). No return value. =cut sub editor_whitespace { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); $self->config->set( editor_whitespace => $show ); my $mode = $show ? Wx::Scintilla::Constant::SCWS_VISIBLEALWAYS : Wx::Scintilla::Constant::SCWS_INVISIBLE; foreach my $editor ( $self->editors ) { $editor->SetViewWhiteSpace($show); } $self->menu->view->refresh; return; } =pod =head2 C<editor_focus> $main->editor_focus; Return focus to the current editor, if one exists. This method is provided as a convenience for dialog writers who wish to return focus. =cut sub editor_focus { my $self = shift; my $editor = $self->current->editor; $editor->SetFocus if $editor; return; } =pod =head3 C<on_word_wrap> $main->on_word_wrap; Toggle word wrapping for current document. No return value. =cut sub on_word_wrap { my $self = shift; my $show = @_ ? $_[0] ? 1 : 0 : 1; unless ( $show == $self->menu->view->{word_wrap}->IsChecked ) { $self->menu->view->{word_wrap}->Check($show); } my $doc = $self->current->document or return; my $mode = $show ? Wx::Scintilla::Constant::SC_WRAP_WORD : Wx::Scintilla::Constant::SC_WRAP_NONE; $doc->editor->SetWrapMode($mode); } =pod =head3 C<show_toolbar> $main->show_toolbar; Toggle toolbar visibility. No return value. =cut sub show_toolbar { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); $self->config->set( main_toolbar => $show ); if ($show) { # Add the toolbar $self->rebuild_toolbar; } else { # Remove the toolbar my $toolbar = $self->GetToolBar; if ($toolbar) { $toolbar->Destroy; $self->SetToolBar(undef); } } # Explicit refresh of the AUI manager. $self->aui->Update; $self->menu->view->refresh; return; } =pod =head3 C<show_statusbar> $main->show_statusbar; Toggle status bar visibility. No return value. =cut sub show_statusbar { my $self = shift; my $show = $_[0] ? 1 : 0; my $lock = $self->lock('CONFIG'); $self->config->set( main_statusbar => $show ); # Update the status bar if ($show) { $self->GetStatusBar->Show; } else { $self->GetStatusBar->Hide; } # Explicit refresh of the AUI manager. $self->aui->Update; $self->menu->view->refresh; return; } =pod =head3 C<on_toggle_lockinterface> $main->on_toggle_lockinterface; Toggle possibility for user to change Padre's external aspect. No return value. =cut sub on_toggle_lockinterface { my $self = shift; my $lock = $self->lock('CONFIG'); # Update setting $self->config->apply( 'main_lockinterface', $self->menu->view->{lockinterface}->IsChecked ? 1 : 0, ); return; } =pod =head3 C<on_insert_from_file> $main->on_insert_from_file; Prompt user for a file to be inserted at current position in current document. No return value. =cut sub on_insert_from_file { my $self = shift; my $editor = $self->current->editor or return; # popup the window my $last_filename = $self->current->filename; if ($last_filename) { $self->{cwd} = File::Basename::dirname($last_filename); } my $dialog = Wx::FileDialog->new( $self, Wx::gettext('Open file'), $self->cwd, '', Wx::gettext('All Files') . ( Padre::Constant::WIN32 ? '|*.*' : '|*' ), Wx::FD_OPEN, ); if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my $filename = $dialog->GetFilename; $self->{cwd} = $dialog->GetDirectory; my $file = File::Spec->catfile( $self->cwd, $filename ); $editor->insert_from_file($file); return; } =pod =head3 C<convert_to> $main->convert_to( $eol_style ); Convert document to C<$eol_style> line endings (can be one of C<WIN>, C<UNIX>, or C<MAC>). No return value. =cut sub convert_to { my $self = shift; my $newline = shift; $self->current->editor->convert_eols($newline); $self->refresh; } =pod =head3 C<editor_of_file> my $editor = $main->editor_of_file( $file ); Return the editor (a C<Padre::Wx::Editor> object) containing the wanted C<$file>, or C<undef> if file is not opened currently. =cut sub editor_of_file { require Padre::File; my $self = shift; my $file = Padre::File->new(shift); # This reformats our filename my $notebook = $self->notebook; foreach my $id ( $self->pageids ) { my $editor = $notebook->GetPage($id) or return; my $document = $editor->{Document} or return; defined( $document->{file} ) or next; my $doc_filename = $document->{file}->{filename} or next; #below fix for -> stop dumping the following on console 'Use of uninitialized value in string eq' defined( $file->{filename} ) or next; return $id if $doc_filename eq $file->{filename}; } return; } =pod =head3 C<editor_id> my $id = $main->editor_id( $editor ); Given C<$editor>, return the tab id holding it, or C<undef> if it was not found. Note: can this really work? What happens when we split a window? =cut sub editor_id { my $self = shift; my $editor = shift; my $notebook = $self->notebook; foreach my $id ( $self->pageids ) { if ( $editor eq $notebook->GetPage($id) ) { return $id; } } return; } =pod =head3 C<run_in_padre> $main->run_in_padre; Evaluate current document within Padre. It means it can access all of Padre's internals, and wreak havoc. Display an error message if the evaluation went wrong, dump the result in the output panel otherwise. No return value. =cut sub run_in_padre { my $self = shift; my $doc = $self->current->document or return; my $code = $doc->text_get; my @rv = eval $code; if ($@) { $self->error( sprintf( Wx::gettext("Error: %s"), $@ ), Wx::gettext("Internal error"), ); return; } # Dump the results to the output window require Devel::Dumpvar; my $dumper = Devel::Dumpvar->new( to => 'return' ); my $string = $dumper->dump(@rv); $self->show_output(1); $self->output->clear; $self->output->AppendText($string); return; } =pod =head2 C<STC> related methods Those methods are needed to have a smooth C<STC> experience. =head3 C<on_stc_style_needed> $main->on_stc_style_needed( $event ); Handler of C<EVT_STC_STYLENEEDED> C<$event>. Used to work around some edge cases in scintilla. No return value. =cut sub on_stc_style_needed { my $self = shift; my $event = shift; my $current = $self->current; my $document = $current->document or return; if ( $document->can('colorize') ) { # Workaround something that seems like a Scintilla bug # when the cursor is close to the end of the document # and there is code at the end of the document (and not comment) # the STC_STYLE_NEEDED event is being constantly called my $text = $document->text_get; if ( defined $document->{_text} and $document->{_text} eq $text ) { return; } $document->{_text} = $text; $document->colorize( $current->editor->GetEndStyled, $event->GetPosition ); } } =pod =head3 C<on_stc_updateui> $main->on_stc_updateui; Handler called on every movement of the cursor. No return value. =cut # NOTE: Any blocking here is HIGHLY visible to the user # so you should be extremely cautious in here. Everything # in this sub should be super super fast. sub on_stc_updateui { my $self = shift; # Avoid recursion return if $self->{_in_stc_update_ui}; local $self->{_in_stc_update_ui} = 1; # Check for brace, on current position, highlight the matching brace my $current = $self->current; my $editor = $current->editor; return if not defined $editor; $editor->highlight_braces; $editor->show_calltip; # Avoid refreshing the subs as that takes a lot of time # TO DO maybe we should refresh it on every 20s hit or so $editor->refresh_notebook; $self->refresh_toolbar($current); # $self->refresh_status($current); $self->refresh_status_template($current); $self->refresh_cursorpos($current); # This call makes live filesystem calls every time the cursor moves # Clearly this is incredibly evil, commenting out till whoever wrote # this works out what they meant to do and does it better. # $self->refresh_rdstatus($current); return; } =pod =head3 C<on_stc_change> $main->on_stc_change; Handler of the C<EVT_STC_CHANGE> event. Doesn't do anything. No return value. =cut sub on_stc_change { return; } =pod =head3 C<on_stc_char_needed> $main->on_stc_char_added; This handler is called when a character is added. No return value. See L<http://www.scintilla.org/ScintillaDoc.html#SCN_CHARADDED> TO DO: maybe we need to check this more carefully. =cut sub on_stc_char_added { my $self = shift; my $event = shift; my $key = $event->GetKey; if ( $key == 10 ) { # ENTER $self->current->editor->autoindent('indent'); } elsif ( $key == 125 ) { # Closing brace $self->current->editor->autoindent('deindent'); } return; } =pod =head3 C<on_aui_pane_close> $main->on_aui_pane_close( $event ); Handler called upon C<EVT_AUI_PANE_CLOSE> C<$event>. Doesn't do anything by now. =cut sub on_aui_pane_close { $_[0]->GetPane; } =pod =head3 C<on_tab_and_space> $main->on_tab_and_space( $style ); Convert current document from spaces to tabs (or vice-versa) depending on C<$style> (can be either of C<Space_to_Tab> or C<Tab_to_Space>). Prompts the user for how many spaces are to be used to replace tabs (whatever the replacement direction). No return value. =cut sub on_tab_and_space { my $self = shift; my $type = shift; my $current = $self->current; my $document = $current->document or return; my $title = $type eq 'Space_to_Tab' ? Wx::gettext('Space to Tab') : Wx::gettext('Tab to Space'); require Padre::Wx::TextEntryDialog::History; my $dialog = Padre::Wx::TextEntryDialog::History->new( $self, Wx::gettext('How many spaces for each tab:'), $title, $type, ); if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } my $space_num = $dialog->GetValue; $dialog->Destroy; unless ( defined $space_num and $space_num =~ /^\d+$/ ) { return; } my $src = $current->text; my $code = ($src) ? $src : $document->text_get; return unless ( defined $code and length($code) ); my $to_space = ' ' x $space_num; if ( $type eq 'Space_to_Tab' ) { $code =~ s/^(\s+)/my $s = $1; $s =~ s{$to_space}{\t}g; $s/mge; } else { $code =~ s/^(\s+)/my $s = $1; $s =~ s{\t}{$to_space}g; $s/mge; } if ($src) { my $editor = $current->editor; $editor->ReplaceSelection($code); } else { $document->text_set($code); } } =pod =head3 C<on_delete_trailing_spaces> $main->on_delete_trailing_spaces; Trim all ending spaces in current selection, or document if no text is selected. No return value. =cut sub on_delete_trailing_spaces { my $self = shift; my $current = $self->current; my $document = $current->document or return; my $selected = $current->text; unless ( length $selected ) { return $document->delete_trailing_spaces; } # Remove trailing space from selected text $selected =~ s/([^\n\S]+)$//mg; # Replace only if the selection is changed unless ( $selected eq $current->text ) { $current->editor->ReplaceSelection($selected); } return; } =pod =head3 C<on_delete_leading_spaces> $main->on_delete_leading_spaces; Trim all leading spaces in current selection. No return value. =cut sub on_delete_leading_spaces { my $self = shift; my $current = $self->current; my $document = $current->document or return; my $selected = $current->text; unless ( length $selected ) { return $document->delete_leading_spaces; } # Remove trailing space from selected text $selected =~ s/^[ \t]+//mg; # Replace only if the selection is changed unless ( $selected eq $current->text ) { $current->editor->ReplaceSelection($selected); } return; } =pod =head3 C<timer_check_overwrite> $main->timer_check_overwrite; Called every n seconds to check if file has been overwritten outside of Padre. If that's the case, prompts the user whether s/he wants to reload the document. No return value. =cut sub timer_check_overwrite { my $self = shift; my $doc = $self->current->document or return; my $state = $doc->has_changed_on_disk; # 1 = updated, 0 = unchanged, -1 = deleted return unless $state; return if $doc->{_already_popup_file_changed}; $doc->{_already_popup_file_changed} = 1; $self->reload_dialog( no_fresh => 1 ); return; } =pod =head3 C<on_duplicate> $main->on_duplicate; Create a new document and copy the contents of the current file. No return value. =cut sub on_duplicate { my $self = shift; my $document = $self->current->document or return; return $self->new_document_from_string( $document->text_get, $document->mimetype, ); } =pod =head2 Code Starter Methods These methods provide skeleton generators for a variety of file types, with the preferences of the user applied already. =head3 C<start_perl6_script> $main->start_perl6_script; Create a new blank Perl 6 script, applying the user's style preferences if possible. =cut # For now, we don't actually apply their style preferences sub start_perl6_script { my $self = shift; # Generate the code from the script template require Padre::Template; my $code = Padre::Template->render('perl6/script_p6.tt'); # Show the new file in a new editor window $self->new_document_from_string( $code, 'application/x-perl6' ); } =pod =head2 Auxiliary Methods Various methods that did not fit exactly in above categories... =head3 C<action> Padre::Current->main->action('help.about'); Single execution of a named action. =cut sub action { my $self = shift; my $name = shift; # Does the action exist my $action = $self->ide->{actions}->{$name}; die "No such action '$name'" unless $action; # Execute the action $action->menu_event->($self); return 1; } =pod =head3 C<setup_bindings> $main->setup_bindings; Setup the various bindings needed to handle output pane correctly. Note: I'm not sure those are really needed... =cut sub setup_bindings { my $main = shift; $main->output->setup_bindings; # Prepare the output window $main->show_output(1); $main->output->clear; $main->menu->run->disable; return; } sub change_highlighter { my $self = shift; my $mime_type = shift; my $module = shift; # Update the colourise for each editor of the relevant mime-type # Trying to delay the actual color updating for the # pages that are not in focus till they get in focus my $focused = $self->current->editor; foreach my $editor ( $self->editors ) { my $document = $editor->{Document}; next if $document->mimetype ne $mime_type; $document->set_highlighter($module); my $filename = defined( $document->{file} ) ? $document->{file}->filename : undef; TRACE( "Set highlighter to to $module for $document in file " . ( $filename || '' ) ) if DEBUG; $editor->SetLexer( $document->mimetype ); TRACE("Editor $editor focused $focused") if DEBUG; if ( $editor eq $focused ) { $editor->needs_manual_colorize(0); $document->colourize; } else { $editor->needs_manual_colorize(1); } } return; } =pod =head3 C<key_up> $main->key_up( $event ); Callback for when a key up C<$event> happens in Padre. This handles the various C<Ctrl>+key combinations used within Padre. =cut sub key_up { my $self = shift; my $event = shift; my $mod = $event->GetModifiers || 0; my $code = $event->GetKeyCode; my $config = $self->config; # Remove the bit ( Wx::MOD_META) set by Num Lock being pressed on Linux # () needed after the constants as they are functions in Perl and # without constants perl will call only the first one. $mod = $mod & ( Wx::MOD_ALT + Wx::MOD_CMD + Wx::MOD_SHIFT ); if ( $mod == Wx::MOD_CMD ) { # Ctrl # Ctrl-TAB TO DO it is already in the menu if ( $code == Wx::K_TAB ) { &{ $self->ide->actions->{'window.next_file'}->menu_event }( $self, $event ); } } elsif ( $mod == Wx::MOD_CMD + Wx::MOD_SHIFT ) { # Ctrl-Shift # Ctrl-Shift-TAB # TODO it is already in the menu if ( $code == Wx::K_TAB ) { &{ $self->ide->actions->{'window.previous_file'}->menu_event }( $self, $event ); } } elsif ( $mod == Wx::MOD_ALT ) { # my $current_focus = Wx::Window::FindFocus(); # TRACE("Current focus: $current_focus") if DEBUG; # # TO DO this should be fine tuned later # if ($code == Wx::K_UP) { # # TO DO get the list of panels at the bottom from some other place # if (my $editor = $self->current->editor) { # if ($current_focus->isa('Padre::Wx::Output') or # $current_focus->isa('Padre::Wx::Syntax') # ) { # $editor->SetFocus; # } # } # } elsif ($code == Wx::K_DOWN) { # #TRACE("Selection: " . $self->bottom->GetSelection) if DEBUG; # #$self->bottom->GetSelection; # } } elsif ( !$mod and $code == 27 ) { # ESC &{ $self->ide->actions->{'view.close_panel'}->menu_event }( $self, $event ); } if ( $config->autocomplete_always and ( !$mod ) and ( $code == 8 ) ) { $self->on_autocompletion($event); } # Backup unsaved files if needed # NOTE: This should be moved to occur only on the dwell (i.e. at the # same time an undo block is saved) and probably shouldn't HAVE to # rewrite all files when one is changed. $self->backup; $event->Skip(1); return; } # TO DO enable/disable menu options sub show_as_numbers { my $self = shift; my $event = shift; my $form = shift; my $current = $self->current; return unless $current->editor; my $text = $current->text; unless ($text) { $self->message( Wx::gettext('Need to select text in order to translate numbers') ); return; } $self->show_output(1); my $output = $self->output; $output->Remove( 0, $output->GetLastPosition ); # TO DO deal with wide characters ? # TO DO split lines, show location ? foreach my $i ( 0 .. length($text) ) { my $decimal = ord( substr( $text, $i, 1 ) ); $output->AppendText( ( $form eq 'decimal' ? $decimal : uc( sprintf( '%0.2x', $decimal ) ) ) . ' ' ); } return; } # showing the Browser window sub help { my $self = shift; my $param = shift; unless ( $self->{help} ) { require Padre::Wx::Browser; $self->{help} = Padre::Wx::Browser->new; Wx::Event::EVT_CLOSE( $self->{help}, sub { if ( $_[1]->CanVeto ) { $_[0]->Hide; } else { $_[0]->Destroy; # The first element is the Padre::Wx::Browser object in this call #delete $_[0]->{help}; } }, ); } $self->{help}->SetFocus; $self->{help}->Show(1); $self->{help}->help($param) if $param; return; } sub set_mimetype { my $self = shift; my $mime_type = shift; my $doc = $self->current->document; if ($doc) { $doc->set_mimetype($mime_type); $doc->editor->setup_document; $doc->rebless; $doc->colourize; } $self->refresh; } =pod =head3 C<new_document_from_string> $main->new_document_from_string( $string, $mimetype, $encoding ); Create a new document in Padre with the string value. Pass in an optional mime type to have Padre colorize the text correctly. Pass in an optional encoding name that will be used when saving the file. Note: this method may not belong here... =cut sub new_document_from_string { my $self = shift; my $string = shift; my $mimetype = shift; my $encoding = shift; # If we are currently focused on an unused document, # reuse that instead of making a new one. my $document = $self->current->document; unless ( $document and $document->is_unused ) { $self->on_new; } $document = $self->current->document or return; # Fill the document $document->text_set($string); $document->set_mimetype($mimetype) if $mimetype; $document->set_encoding($encoding) if $encoding; $document->{original_content} = $document->text_get; $document->editor->setup_document; $document->rebless; $document->colourize; # Notify plugins that an editor has been changed $self->{ide}->plugin_manager->plugin_event('editor_changed'); return $document; } sub filter_tool { my $self = shift; my $cmd = shift; my $current = $self->current; return 0 unless defined $cmd; return 0 if $cmd eq ''; my $text = $current->text; if ( defined $text and $text ne '' ) { # Process a selection my $newtext = $self->_filter_tool_run( $cmd, \$text ); if ( defined $newtext and $newtext ne '' ) { $current->editor->ReplaceSelection($newtext); } } else { # No selection, process whole document my $document = $current->document; my $text = $document->text_get; my $newtext = $self->_filter_tool_run( $cmd, \$text ); if ( defined $newtext and $newtext ne '' ) { $document->text_replace($newtext); } } return 1; } sub _filter_tool_run { my $self = shift; my $cmd = shift; my $text = shift; # reference to avoid copying the content again my $filter_in; my $filter_out; my $filter_err; require IPC::Open3; unless ( IPC::Open3::open3( $filter_in, $filter_out, $filter_err, $cmd ) ) { $self->error( sprintf( Wx::gettext("Error running filter tool:\n%s"), $!, ) ); return; } print $filter_in ${$text}; CORE::close $filter_in; # Send EOF to tool my $newtext = join '', <$filter_out>; if ( defined $filter_err ) { # The error channel may not exist my $errtext = join '', <$filter_err>; if ( defined $errtext and $errtext ne '' ) { $self->error( sprintf( Wx::gettext("Error returned by filter tool:\n%s"), $errtext, ) ); # We may also have a result, so don't return here } } return $newtext; } # Encode the current document to some character set sub encode { my $self = shift; my $charset = shift; my $document = $self->current->document; $document->{encoding} = $charset; if ( $document->filename ) { $document->save_file; } $self->message( sprintf( Wx::gettext('Document encoded to (%s)'), $charset, ) ); return; } sub encode_utf8 { $_[0]->encode('utf-8'); } sub encode_default { $_[0]->encode( Padre::Locale::encoding_system_default() || 'utf-8' ); } sub encode_dialog { my $self = shift; # Select an encoding require Encode; my $charset = $self->single_choice( Wx::gettext('Encode to:'), Wx::gettext("Encode document to..."), [ Encode->encodings(":all") ], ); # Change to the selected encoding if ( defined $charset ) { $self->encode($charset); } return; } ###################################################################### # Document Backup sub backup { my $self = shift; my $force = shift; my $duration = time - $self->{backup}; if ( $duration < BACKUP_INTERVAL and not $force ) { return; } # Load and fire the backup task require Padre::Task::BackupUnsaved; Padre::Task::BackupUnsaved->new->schedule; $self->{backup} = time; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Util.pm���������������������������������������������������������������������0000644�0001750�0001750�00000001547�12237327555�014635� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Util; # Stores utility functions that are Wx-specific so that we don't need to # put Wx-specific code into Padre::Util. use 5.008; use strict; use warnings; use Padre::Wx; our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; sub tidy_list { my $list = shift; require Padre::Wx; for ( 0 .. $list->GetColumnCount - 1 ) { $list->SetColumnWidth( $_, Wx::LIST_AUTOSIZE_USEHEADER() ); my $header_width = $list->GetColumnWidth($_); $list->SetColumnWidth( $_, Wx::LIST_AUTOSIZE() ); my $column_width = $list->GetColumnWidth($_); $list->SetColumnWidth( $_, ( $header_width >= $column_width ) ? $header_width : $column_width ); } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/AuiManager.pm���������������������������������������������������������������0000644�0001750�0001750�00000006410�12237327555�015723� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::AuiManager; # Sub-class of Wx::AuiManager that implements various custom # tweaks and behaviours. use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Logger; our $VERSION = '1.00'; # Due to an overly simplistic implementation at the C level, # Wx::AuiManager is only a SCALAR reference and cannot be # sub-classed. # Instead, we will do inheritance by composition. use Class::Adapter::Builder ISA => 'Wx::AuiManager', AUTOLOAD => 1; # The custom AUI Manager takes the parent window as a param sub new { my $class = shift; my $object = Wx::AuiManager->new; my $self = $class->SUPER::new($object); # Locale caption gettext values $self->{caption} = {}; # Set the managed window $self->SetManagedWindow( $_[0] ); # Set/fix the flags # Do NOT use hints other than Rectangle on Linux/GTK # or the app will crash. my $flags = $self->GetFlags; $flags &= ~Wx::AUI_MGR_TRANSPARENT_HINT; $flags &= ~Wx::AUI_MGR_VENETIAN_BLINDS_HINT; $self->SetFlags( $flags ^ Wx::AUI_MGR_RECTANGLE_HINT ); return $self; } sub caption { my $self = shift; $self->{caption}->{ $_[0] } = $_[1]; $self->GetPane( $_[0] )->Caption( $_[1] ); return 1; } sub relocale { my $self = shift; # Update the pane captions foreach my $name ( sort keys %{ $self->{caption} } ) { TRACE("relocale $name") if DEBUG; my $pane = $self->GetPane($name) or next; $pane->Caption( Wx::gettext( $self->{caption}->{$name} ) ); } return $self; } # Set the lock status of the panels sub lock_panels { my $self = shift; my $unlock = $_[0] ? 0 : 1; $self->Update; foreach (qw{left right bottom}) { $self->GetPane($_)->CaptionVisible($unlock)->Floatable($unlock)->Dockable($unlock)->Movable($unlock); } $self->Update; return; } # This is so wrong that I am even reluctant to describe it. # We're seeing occasional double-frees from the Wx::AuiManager # DESTROY XSUB. That will give a segmentation fault during # global destruction. # Now, I failed to track down WHY perl tries to call DESTROY # multiple times. Maybe it's related to Class::Adapter::Builder, # but I don't want to go around pointing fingers. # What we'll do below is trade the SEGV for a small leak. # We check whether the specific object at hand had been # DESTROYed earlier and if so, we do nothing. If it hasn't been # DESTROYed yet, we mark it as an ex-AUIManager and proceed to # call the DESTROY XSUB. # You may be appropriately appalled now. --Steffen # PS: Uncomment those lines for getting a "manual" stack # trace. Calling cluck() or similar during global destruction # won't work. # PPS: Anybody who manages to fix this for real AND explain to me # what the HELL is happening will get a beer on the next # occasion! SCOPE: { no warnings 'redefine'; no strict; my $destroy = \&Wx::AuiManager::DESTROY; my %managers = (); *Wx::AuiManager::DESTROY = sub { #print "$_[0]\n"; #my $i = 0; #while (1) { #my @c = caller($i++); #last if @c < 3; #print "$i: $c[0] - $c[1] - $c[2] - $c[3]\n"; #} unless ( exists $managers{"$_[0]"} ) { $managers{"$_[0]"}++; goto &$destroy; } }; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Progress.pm�����������������������������������������������������������������0000644�0001750�0001750�00000007201�12237327555�015515� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Progress; =pod =head1 NAME Padre::Wx::Progress - Tell the user that we're doing something =head1 SYNOPSIS my $object = Padre::Wx::Progress->new($title, $max_count, modal => 1, lazy => 1, ); $object->update($done_count, $current_work_text); =head1 DESCRIPTION Shows a progress bar dialog to tell the user that we're doing something. =head1 METHODS =cut use 5.008; use strict; use warnings; use Time::HiRes (); use Padre::Wx (); our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; =pod =head2 new my $object = Padre::Wx::Progress->new( $title, $max_count, message => $default_message # optional modal => 1, # optional lazy => 1, # optional ); The C<new> constructor lets you create a new C<Padre::Wx::Progress> object. C<$title> is the title of the new box. C<$max_count> contains the highest item-number being processed. Options: A default message could be set (in case C<update> should be called without text) with the message key. This is overridden by the newest C<update> text. Default is an empty message. Set modal to true to lock other application windows while the progress box is displayed. Default is 0 (non-modal). Set lazy to true to show the progress dialog only if the whole process takes long enough that the progress box makes sense. Default if 1 (lazy-mode). All options are optional, Padre will use fixed defaults if they're missing. Returns a new C<Padre::Wx::Progress> or dies on error. =cut sub new { my $class = shift; my $main = shift; my $title = shift; my $max = shift; my $self = bless { max => $max, title => $title, main => $main, start => Time::HiRes::time(), @_, }, $class; $self->{title} ||= Wx::gettext('Please wait...'); $self->{message} ||= ''; # Lazy mode: # Create the progress bar only when it makes sense. # If this is requested don't create it here: $self->dialog unless $self->{lazy}; return $self; } sub dialog { my $self = shift; unless ( defined $self->{dialog} ) { # Don't display if inside the lazy window if ( Time::HiRes::time() - $self->{start} < 1 ) { return; } # Default flags my $flags = Wx::PD_ELAPSED_TIME | Wx::PD_ESTIMATED_TIME | Wx::PD_REMAINING_TIME | Wx::PD_AUTO_HIDE; if ( $self->{modal} ) { $flags |= Wx::PD_APP_MODAL; } # Create the Wx object $self->{dialog} = Wx::ProgressDialog->new( $self->{title}, $self->{message}, $self->{max}, $self->{main}, $flags, ); } $self->{dialog}; } =pod =head2 update $progress->update( $value, $text ); Updates the progress bar with a new value and optional with a new text message. The last message will stay if no new text is specified. =cut sub update { my $self = shift; my $dialog = $self->dialog or return 1; $dialog->Update(@_); } # Simulate Wx destroy call sub Destroy { if ( defined $_[0]->{dialog} ) { $_[0]->{dialog}->Hide; $_[0]->{dialog}->Destroy; delete $_[0]->{dialog}; } } sub DESTROY { if ( defined $_[0]->{dialog} ) { $_[0]->{dialog}->Hide; $_[0]->{dialog}->Destroy; delete $_[0]->{dialog}; } } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Directory/������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�015306� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Directory/Browse.pm���������������������������������������������������������0000644�0001750�0001750�00000012035�12237327555�017117� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Directory::Browse; # This is a simple flexible task that fetches lists of file names # (but does not look inside of those files) use 5.008; use strict; use warnings; use Scalar::Util (); use Padre::Task (); use Padre::Constant (); use Padre::Wx::Directory::Path (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; use constant NO_WARN => 1; ###################################################################### # Constructor sub new { TRACE( $_[0] ) if DEBUG; my $self = shift->SUPER::new(@_); # Automatic project integration if ( exists $self->{project} ) { $self->{root} = $self->{project}->root; $self->{skip} = $self->{project}->ignore_skip; delete $self->{project}; } # Check params unless ( defined $self->{order} ) { $self->{order} = 'first'; } unless ( defined $self->{skip} ) { $self->{skip} = []; } unless ( defined $self->{list} ) { die "Did not provide a directory list to refresh"; } return $self; } ###################################################################### # Padre::Task Methods sub prepare { TRACE( $_[0] ) if DEBUG; my $self = shift; return 0 unless defined $self->{root}; return 0 unless length $self->{root}; # You can't opendir a UNC path on Windows, # so any attempt to run this task is pointless. if (Padre::Constant::WIN32) { return 0 if $self->{root} =~ /\\\\/; } # Don't run if our root path does not exist any more return 0 unless -d $self->{root}; return 1; } sub run { TRACE( $_[0] ) if DEBUG; require Module::Manifest; my $self = shift; my $root = $self->{root}; my $list = $self->{list}; my @queue = @$list; # Prepare the skip rules my $rule = Module::Manifest->new; $rule->parse( skip => $self->{skip} ); # Get the device of the root path my $dev = ( stat($root) )[0]; # Recursively scan directories for their content my $descend = scalar @$list; while (@queue) { # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE('Padre::Wx::Directory::Search task has been cancelled') if DEBUG; return 1; } # Read the file list for the directory # NOTE: Silently ignore any that fail. Anything we don't have # permission to see inside of them will just be invisible. $descend--; my $request = shift @queue; my @path = $request->path; my $dir = File::Spec->catdir( $root, @path ); next unless -d $dir; opendir DIRECTORY, $dir or next; my @list = readdir DIRECTORY; closedir DIRECTORY; # Step 1 - Map the files into path objects my @objects = (); foreach my $file (@list) { next if $file =~ /^\.+\z/; # Traverse symlinks my $fullname = File::Spec->catdir( $dir, $file ); while (1) { my $target; # readlink may die if symlinks are not implemented local $@; eval { $target = readlink($fullname); }; last if $@; # readlink failed last unless defined $target; # not a link # Target may be "/home/user/foo" or "../foo" or "bin/foo" $fullname = File::Spec->file_name_is_absolute($target) ? $target : File::Spec->canonpath( File::Spec->catdir( $dir, $target ) ); } # File doesn't exist, either a directory error, symlink to nowhere or something unexpected. # Don't worry, just skip, because we can't show it in the dir browser anyway my @fstat = stat($fullname); next if $#fstat == -1; unless ( $dev == $fstat[0] ) { warn "DirectoryBrowser root-dir $root is on a different device than $fullname, skipping (FIX REQUIRED!)" unless NO_WARN; next; } # Convert to the path object and apply ignorance # The four element list we add is the mapping phase # of a Schwartzian transform. if ( -f _ ) { my $child = Padre::Wx::Directory::Path->file( @path, $file ); next if $rule->skipped( $child->unix ); push @objects, [ $child, $fullname, $child->is_directory, lc( $child->name ), ]; } elsif ( -d _ ) { my $child = Padre::Wx::Directory::Path->directory( @path, $file ); next if $rule->skipped( $child->unix ); push @objects, [ $child, $fullname, $child->is_directory, lc( $child->name ), ]; if ( $descend >= 0 ) { push @queue, $child; } } else { warn "Unknown or unsupported file type for $fullname" unless NO_WARN; } } # Step 2 - Apply the desired sort order if ( $self->{order} eq 'first' ) { @objects = sort { $b->[2] <=> $a->[2] or $a->[3] cmp $b->[3] } @objects; } else { @objects = sort { $a->[3] cmp $b->[3] } @objects; } # Step 3 - Send the completed directory back to the parent process # Don't send a response if the directory is empty. # Also skip if we are running in the parent and have no handle. if ( $self->is_child and @objects ) { $self->tell_owner( $request, map { $_->[0] } @objects ); } } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Directory/TreeCtrl.pm�������������������������������������������������������0000644�0001750�0001750�00000020503�12237327555�017401� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Directory::TreeCtrl; use 5.008; use strict; use warnings; use File::Path (); use File::Spec (); use File::Basename (); use Padre::Constant (); use Padre::Wx (); use Padre::Wx::TreeCtrl (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::Main (); use Padre::Wx::Directory::Path (); use Padre::Locale::T; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Idle Padre::Wx::Role::Main Padre::Wx::TreeCtrl }; ###################################################################### # Constructor sub new { my $class = shift; my $panel = shift; my $self = $class->SUPER::new( $panel, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TR_HIDE_ROOT | Wx::TR_SINGLE | Wx::TR_FULL_ROW_HIGHLIGHT | Wx::TR_HAS_BUTTONS | Wx::TR_LINES_AT_ROOT | Wx::BORDER_NONE | Wx::CLIP_CHILDREN ); # Create the image list my $images = Wx::ImageList->new( 16, 16 ); $self->{images} = { upper => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_GO_DIR_UP', 'wxART_OTHER_C', [ 16, 16 ], ), ), folder => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_FOLDER', 'wxART_OTHER_C', [ 16, 16 ], ), ), package => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_NORMAL_FILE', 'wxART_OTHER_C', [ 16, 16 ], ), ), }; $self->AssignImageList($images); # Set up the events Wx::Event::EVT_TREE_ITEM_ACTIVATED( $self, $self, sub { $_[0]->idle_method( on_tree_item_activated => $_[1]->GetItem, ); } ); Wx::Event::EVT_TREE_ITEM_MENU( $self, $self, sub { shift->on_tree_item_menu(@_); }, ); Wx::Event::EVT_KEY_UP( $self, sub { shift->key_up(@_); }, ); # Set up the root $self->AddRoot( Wx::gettext('Directory'), -1, -1 ); # Ident to sub nodes $self->SetIndent(10); return $self; } ###################################################################### # Event Handlers # Action that must be executaded when a item is activated # Called when the item is actived sub on_tree_item_activated { my $self = shift; my $item = shift; my $data = $self->GetPlData($item); my $parent = $self->GetParent; # If a folder, toggle the expand/collapse state if ( $data->type == 1 ) { $self->Toggle($item); return; } # Open the selected file my $current = $self->current; my $main = $current->main; my $file = File::Spec->catfile( $parent->root, $data->path ); $main->setup_editor($file); return; } sub key_up { my $self = shift; my $event = shift; my $mod = $event->GetModifiers || 0; my $code = $event->GetKeyCode; # see Padre::Wx::Main::key_up $mod = $mod & ( Wx::MOD_ALT + Wx::MOD_CMD + Wx::MOD_SHIFT ); my $current = $self->current; my $main = $current->main; my $project = $current->project or return; my $item_id = $self->GetSelection; my $data = $self->GetPlData($item_id) or return; my $file = File::Spec->catfile( $project->root, $data->path ); if ( $code == Wx::K_DELETE ) { $self->delete_file($file); } $event->Skip; return; } sub rename_file { my $self = shift; my $main = $self->main; my $file = shift; my $old = File::Basename::basename($file); my $new = -d $file ? $main->simple_prompt( Wx::gettext('Please type in the new name of the directory'), Wx::gettext('Rename directory'), $old ) : $main->simple_prompt( Wx::gettext('Please type in the new name of the file'), Wx::gettext('Rename file'), $old ); return if ( !defined($new) || $new =~ /^\s*$/ ); my $path = File::Basename::dirname($file); if ( rename $file, File::Spec->catdir( $path, $new ) ) { $self->GetParent->rebrowse; } else { $main->error( sprintf( Wx::gettext(q(Could not rename: '%s' to '%s': %s)), $file, $path, $! ) ); } return; } sub create_directory { my $self = shift; my $path = shift; my $main = $self->main; my $name = $main->prompt( 'Please type in the name of the new directory', 'Create Directory', 'CREATE_DIRECTORY', ); return if ( !defined($name) || $name =~ /^\s*$/ ); unless ( mkdir File::Spec->catdir( $path, $name ) ) { $main->error( sprintf( Wx::gettext(q(Could not create: '%s': %s)), $path, $!, ) ); return; } # $self->GetParent->rebrowse; return; } sub delete_file { my $self = shift; my $file = shift; my $main = $self->main; my $yes = $main->yes_no( sprintf( Wx::gettext('Really delete the file "%s"?'), $file ) ); return unless $yes; # The background task Padre::Task::File already exists specifically # for this kind of thing. Upgrade to use this in future. my $error; File::Path::remove_tree( $file, { error => \$error } ); if ( scalar @$error == 0 ) { # This might be overkill a bit, but it works $self->GetParent->rebrowse; } else { $main->error( sprintf Wx::gettext(q(Could not delete: '%s': %s)), $file, ( join ' ', @$error ) ); } } # Shows up a context menu above an item with its controls # the file if don't. # Called when a item context menu is requested. sub on_tree_item_menu { my $self = shift; my $event = shift; my $item = $event->GetItem; my $data = $self->GetPlData($item) or return; # Generate the context menu for this file or directory my $menu = Wx::Menu->new; my $file = File::Spec->catfile( $self->GetParent->root, $data->path, ); if ( $data->type == Padre::Wx::Directory::Path::DIRECTORY ) { Wx::Event::EVT_MENU( $self, $menu->Append( -1, $self->getlabel( _T('Open in File Browser') ), ), sub { shift->main->on_open_in_file_browser($file); } ); $menu->AppendSeparator; Wx::Event::EVT_MENU( $self, $menu->Append( -1, $self->getlabel( _T('Delete Directory') ), ), sub { shift->delete_file($file); } ); Wx::Event::EVT_MENU( $self, $menu->Append( -1, $self->getlabel( _T('Rename Directory') ), ), sub { shift->rename_file($file); } ); $menu->AppendSeparator; Wx::Event::EVT_MENU( $self, $menu->Append( -1, $self->getlabel( _T('Create Directory') ), ), sub { shift->create_directory($file); } ); } else { # The default action is the same as when it is double-clicked Wx::Event::EVT_MENU( $self, $menu->Append( -1, Wx::gettext('Open File') ), sub { shift->on_tree_item_activated($event); } ); Wx::Event::EVT_MENU( $self, $menu->Append( -1, $self->getlabel( _T('Open in File Browser') ), ), sub { shift->main->on_open_in_file_browser($file); } ); $menu->AppendSeparator; Wx::Event::EVT_MENU( $self, $menu->Append( -1, $self->getlabel( _T('Delete File') ), ), sub { shift->delete_file($file); } ); Wx::Event::EVT_MENU( $self, $menu->Append( -1, $self->getlabel( _T('Rename File') ), ), sub { shift->rename_file($file); } ); $menu->AppendSeparator; Wx::Event::EVT_MENU( $self, $menu->Append( -1, $self->getlabel( _T('Create Directory') ), ), sub { my $dir = File::Basename::dirname($file); shift->create_directory($dir); } ); } # Pops up the context menu $self->PopupMenu( $menu, $event->GetPoint->x, $event->GetPoint->y, ); return; } ###################################################################### # Localisation my %WIN32 = ( 'Open in File Browser' => _T('Explore...'), 'Delete Directory' => _T('Delete'), 'Rename Directory' => _T('Rename'), 'Delete File' => _T('Delete'), 'Rename File' => _T('Rename'), 'Create Directory' => _T('New Folder'), ); # Improved gettext for the directory tree, which not only applies localisation # for languages, but also maps to operating system terms for the appropriate # actions. sub getlabel { my $self = shift; my $label = shift; if ( Padre::Constant::WIN32 and $WIN32{$label} ) { $label = $WIN32{$label}; } return Wx::gettext($label); } ###################################################################### # General Methods # Scan the tree to find all directory nodes which are expanded. # Returns a reference to a HASH of ->unix path strings. sub expanded { my $self = shift; my $items = $self->GetExpandedPlData; my %hash = map { $_->unix => 1 } @$items; return \%hash; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Directory/Path.pm�����������������������������������������������������������0000644�0001750�0001750�00000003015�12237327555�016550� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Directory::Path; use 5.008; use strict; use warnings; use File::Spec::Unix (); our $VERSION = '1.00'; use constant { FILE => 0, DIRECTORY => 1, }; ###################################################################### # Constructors sub file { my $class = shift; return bless [ FILE, File::Spec::Unix->catfile(@_), @_, ], $class; } sub directory { my $class = shift; return bless [ DIRECTORY, File::Spec::Unix->catfile( @_ ? @_ : ('') ), @_, ], $class; } ###################################################################### # Main Methods sub type { $_[0]->[0]; } sub image { $_[0]->[0] ? 'folder' : 'package'; } sub name { $_[0]->[-1]; } sub unix { $_[0]->[1]; } sub path { @{ $_[0] }[ 2 .. $#{ $_[0] } ]; } sub dirs { @{ $_[0] }[ 2 .. $#{ $_[0] } - 1 ]; } sub depth { $#{ $_[0] } - 1; } sub is_file { ( $_[0]->[0] == FILE ) ? 1 : 0; } sub is_directory { ( $_[0]->[0] == DIRECTORY ) ? 1 : 0; } # Is this path the immediate parent of another path sub is_parent { my $self = shift; my $path = shift; # If it is our child, it will be one element longer than us unless ( @$path == @$self + 1 ) { return 0; } # All the elements of our path will be identical in it foreach my $i ( 2 .. $#$self ) { return 0 unless $self->[$i] eq $path->[$i]; } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Directory/Search.pm���������������������������������������������������������0000644�0001750�0001750�00000014072�12237327555�017066� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Directory::Search; # This is a simple flexible task that fetches lists of file names # (but does not look inside of those files) use 5.008; use strict; use warnings; use Scalar::Util (); use Padre::Task (); use Padre::Wx::Directory::Path (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; use constant NO_WARN => 1; ###################################################################### # Constructor sub new { TRACE( $_[0] ) if DEBUG; my $self = shift->SUPER::new(@_); # Automatic project integration if ( exists $self->{project} ) { $self->{root} = $self->{project}->root; $self->{skip} = $self->{project}->ignore_skip; delete $self->{project}; } # Check params unless ( defined $self->{skip} ) { $self->{skip} = []; } unless ( defined $self->{order} ) { $self->{order} = 'first'; } unless ( defined $self->{filter} and length $self->{filter} ) { die "Missing or invalid 'filter' parameter"; } return $self; } ###################################################################### # Padre::Task Methods # If somehow we tried to run with a non-existint root, skip sub prepare { TRACE( $_[0] ) if DEBUG; my $self = shift; return 0 unless defined $self->{root}; return 0 unless length $self->{root}; return 0 unless -d $self->{root}; return 1; } sub run { TRACE( $_[0] ) if DEBUG; require Module::Manifest; my $self = shift; my $root = $self->{root}; my @queue = Padre::Wx::Directory::Path->directory; my @files = (); # Prepare the skip rules my $rule = Module::Manifest->new; $rule->parse( skip => $self->{skip} ); # Prepare the file name filter. # Doing this case insensitive probably makes more sense. my $filter = quotemeta $self->{filter}; $filter = qr/$filter/i; # WARNING!!! # what should really happen here? # I'm only initialising the values here as # t/62-directory-task.t and t/63-directory-project.t # fails the no warnings test # but I'm quite sure you don't want an empty string # should it test and return maybe? my $path = defined( $queue[0]->path ) ? $queue[0]->path : ""; my $name = defined( $queue[0]->name ) ? $queue[0]->name : ""; my %seen = ( File::Spec->catdir( $path, $name ) => $queue[0] ); # Get the device of the root path my $dev = ( stat($root) )[0]; # Recursively scan for files while (@queue) { # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE('Padre::Wx::Directory::Search task has been cancelled') if DEBUG; $self->tell_status; return 1; } # Is this a file? my $object = shift @queue; if ( $object->is_file ) { # Does the file name match the filter? if ( $object->name =~ $filter ) { # Send the matching file to the parent thread $self->tell_owner($object); } next; } # Read the file list for the directory # NOTE: Silently ignore any that fail. Anything we don't have # permission to see inside of them will just be invisible. my @path = $object->path; my $dir = File::Spec->catdir( $root, @path ); opendir DIRECTORY, $dir or next; my @list = readdir DIRECTORY; closedir DIRECTORY; # Notify our parent we are working on this directory $self->tell_status( "Searching... " . $object->unix ); # Step 1 - Map the files into path objects my @objects = (); foreach my $file (@list) { next if $file =~ /^\.+\z/; # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE('Padre::Wx::Directory::Search task has been cancelled') if DEBUG; $self->tell_status; return 1; } # Traverse symlinks my $skip = 0; my $fullname = File::Spec->catdir( $dir, $file ); while (1) { my $target; # readlink may die if symlinks are not implemented local $@; eval { $target = readlink($fullname); }; last if $@; # readlink failed last unless defined $target; # not a link # Target may be "/home/user/foo" or "../foo" or "bin/foo" $fullname = File::Spec->file_name_is_absolute($target) ? $target : File::Spec->canonpath( File::Spec->catdir( $dir, $target ) ); # Get it from the cache in case of loops: if ( exists $seen{$fullname} ) { if ( defined $seen{$fullname} ) { push @files, $seen{$fullname}; } $skip = 1; last; } # Prepare a cache object to step out of symlink loops $seen{$fullname} = undef; } next if $skip; # File doesn't exist, either a directory error, symlink to nowhere or something unexpected. # Don't worry, just skip, because we can't show it in the dir browser anyway my @fstat = stat($fullname); next if $#fstat == -1; if ( $dev != $fstat[0] ) { warn "DirectoryBrowser root-dir $root is on a different device than $fullname, skipping (FIX REQUIRED!)" unless NO_WARN; next; } # Convert to the path object and apply ignorance # The four element list we add is the mapping phase # of a Schwartzian transform. if ( -f _ ) { my $child = Padre::Wx::Directory::Path->file( @path, $file ); next if $rule->skipped( $child->unix ); push @objects, [ $child, $fullname, $child->is_directory, lc( $child->name ), ]; } elsif ( -d _ ) { my $child = Padre::Wx::Directory::Path->directory( @path, $file ); next if $rule->skipped( $child->unix ); push @objects, [ $child, $fullname, $child->is_directory, lc( $child->name ), ]; } else { warn "Unknown or unsupported file type for $fullname" unless NO_WARN; } } # Step 2 - Apply the desired sort order if ( $self->{order} eq 'first' ) { @objects = sort { $b->[2] <=> $a->[2] or $a->[3] cmp $b->[3] } @objects; } else { @objects = sort { $a->[3] cmp $b->[3] } @objects; } # Step 3 - Prepend to the queue so we will process depth-first unshift @queue, map { $_->[0] } @objects; } # Notify our parent we are finished searching $self->tell_status; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menu.pm���������������������������������������������������������������������0000644�0001750�0001750�00000010304�12237327555�014613� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menu; # Implements additional functionality to support richer menus use 5.008; use strict; use warnings; use Padre::Current (); use Padre::Wx::Action (); use Padre::Wx (); use Class::Adapter::Builder ISA => 'Wx::Menu', NEW => 'Wx::Menu', AUTOLOAD => 'PUBLIC'; our $VERSION = '1.00'; use Class::XSAccessor { getters => { wx => 'OBJECT', } }; # Default implementation of refresh sub refresh {1} # Overrides and then calls XS wx Menu::Append. # Adds any hotkeys to global registry of bound keys sub Append { my $self = shift; my $item = $self->wx->Append(@_); my $label = $item->GetLabel; my ($underlined) = ( $label =~ m/(\&\w)/ ); my ($accel) = ( $label =~ m/(Ctrl-.+|Alt-.+)/ ); if ( $underlined or $accel ) { $self->{main}->{accel_keys} ||= {}; if ($underlined) { $underlined =~ s/&(\w)/$1/; $self->{main}->{accel_keys}->{underlined}->{$underlined} = $item; } if ($accel) { my ( $mod, $mod2, $key ) = ( $accel =~ m/(Ctrl|Alt)(-Shift)?\-(.)/ ); $mod .= $mod2 if ($mod2); $self->{main}->{accel_keys}->{hotkeys}->{ uc($mod) }->{ ord( uc($key) ) } = $item; } } return $item; } # Add a normal menu item to menu from a existing Padre action sub add_menu_action { my $self = shift; my $menu = ( @_ > 1 ) ? shift : $self; my $name = shift; my $actions = $self->{main}->ide->actions; my $action = $actions->{$name} or return 0; my $method = $action->menu_method || 'Append'; my $item = $menu->$method( $action->id, $action->label_menu, ); my $comment = $action->comment; $item->SetHelp($comment) if $comment; Wx::Event::EVT_MENU( $self->{main}, $item, $action->menu_event, ); return $item; } # Add a series of radio menu items for a configuration variable sub append_config_options { my $self = shift; my $menu = shift; my $name = shift; my $config = $self->{main}->config; my $old = $config->$name(); # Get the set of (sorted) options my $options = $config->meta($name)->options; my @list = sort { $a->[1] cmp $b->[1] } map { [ $_, Wx::gettext( $options->{$_} ) ] } keys %$options; # Add the menu items foreach my $option (@list) { my $radio = $menu->AppendRadioItem( -1, $option->[1] ); my $new = $option->[0]; if ( $new eq $old ) { $radio->Check(1); } Wx::Event::EVT_MENU( $self->{main}, $radio, sub { $_[0]->config->apply( $name => $new ); }, ); } return; } # Add a normal menu item to change a configuration variable, not in use. sub append_config_option { my $self = shift; my $menu = shift; my $name = shift; my $new = shift; my $label = shift; # Create the menu item my $item = $menu->Append( -1, $label ); # Are we already set to this value? my $old = $self->{main}->config->$name(); if ( $new eq $old ) { $item->Enable(0); } else { Wx::Event::EVT_MENU( $self->{main}, $item, sub { $_[0]->config->apply( $name => $new ); }, ); } return $item; } sub build_menu_from_actions { my $self = shift; my $main = shift; my $actions = shift; my $label = $actions->[0]; $self->{main} = $main; $self->_menu_actions_submenu( $main, $self->wx, $actions->[1] ); return ( $label, $self->wx ); } # Very Experimental !!! sub _menu_actions_submenu { my $self = shift; my $main = shift; my $menu = shift; my $items = shift; unless ( $items and ref $items and ref $items eq 'ARRAY' ) { Carp::cluck("Invalid list of actions in plugin"); return; } # Fill the menu while (@$items) { my $value = shift @$items; # Separator if ( $value eq '---' ) { $menu->AppendSeparator; next; } # Array Reference (submenu) if ( Params::Util::_ARRAY0($value) ) { my $label = shift @$value; if ( not defined $label ) { Carp::cluck("No label in action sublist"); next; } my $submenu = Wx::Menu->new; $menu->Append( -1, $label, $submenu ); $self->_menu_actions_submenu( $main, $submenu, $value ); next; } # Action name $self->{"menu_$value"} = $self->add_menu_action( $menu, $value, ); } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/TreeCtrl.pm�����������������������������������������������������������������0000644�0001750�0001750�00000010443�12237327555�015437� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::TreeCtrl; =pod =head1 NAME Padre::Wx::TreeCtrl - A Wx::TreeCtrl with various extra convenience methods =head1 DESCRIPTION B<Padre::Wx::TreeCtrl> is a direct subclass of L<Wx::TreeCtrl> with a handful of additional methods that make life easier when writing GUI components for Padre that use trees. =head1 METHODS =cut use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::ScrollLock (); our $VERSION = '1.00'; our @ISA = 'Wx::TreeCtrl'; ###################################################################### # ScrollLock Integration =pod =head2 lock_scroll SCOPE: { my $lock = $tree->lock_scroll; # Apply changes to the tree } When making changes to L<Wx::TreeCtrl> objects, many changes to the tree structure also include an implicit movement of the scroll position to focus on the node that was changed. When generating changes to trees that are not the immediate focus of the user this can be extremely flickery and disconcerting, especially when generating entire large trees. The C<lock_scroll> method creates a guard object which combines an update lock with a record of the scroll position of the tree. When the object is destroyed, the scroll position of the tree is returned to the original position immediately before the update lock is released. The effect is that the tree has changed silently, with the scroll position remaining unchanged. =cut sub lock_scroll { Padre::Wx::ScrollLock->new( $_[0] ); } ###################################################################### # Expanded Wx-like Methods =pod =head2 GetChildByText my $item = $tree->GetChildByText("Foo"); The C<GetChildByText> method is a convenience method for searching through a tree to find a specific item based on the item text of the child. It returns the item ID of the first node containing the search text or C<undef> if no element in the tree contains the search text. =cut sub GetChildByText { my $self = shift; my $item = shift; my $text = shift; # Start with the first child my ( $child, $cookie ) = $self->GetFirstChild($item); while ( $child->IsOk ) { # Is the current child the one we want? if ( $self->GetItemText($child) eq $text ) { return $child; } # Get the next child if there is one ( $child, $cookie ) = $self->GetNextChild( $item, $cookie ); } # Either no children, or no more children return undef; } =pod =head2 GetChildrenPlData my @data = $tree->GetChildrenPlData; The C<GetChildrenPlData> method fetches a list of Perl data elements (via C<GetPlData>) for B<all> nodes in the tree. The list is returned based on a depth-first top-down node order. =cut sub GetChildrenPlData { my $self = shift; my @queue = $self->GetRootItem; my @data = (); while (@queue) { my $item = shift @queue; push @data, $self->GetPlData($item); # Processing children last to first and unshifting onto the # queue, lets us achieve depth-first top-down within the need # for intermediate storage or grepping. my $child = $self->GetLastChild($item); while ( $child->IsOk ) { unshift @queue, $child; $child = $self->GetPrevSibling($child); } } return \@data; } =pod =head2 GetExpandedPlData my @data = $tree->GetExpandedPlData; The C<GetExpandedPlData> method is a variation of the C<GetChildrenPlData> method. It returns a list of Perl data elements in depth-first top-down node order, but only for nodes which are expanded (via C<IsExpanded>). =cut sub GetExpandedPlData { my $self = shift; my @queue = $self->GetRootItem; my @data = (); while (@queue) { my $item = shift @queue; push @data, $self->GetPlData($item); # Processing children last to first and unshifting onto the # queue, lets us achieve depth-first top-down within the need # for intermediate storage or grepping. my $child = $self->GetLastChild($item); while ( $child->IsOk ) { if ( $self->IsExpanded($child) ) { unshift @queue, $child; } $child = $self->GetPrevSibling($child); } } return \@data; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Choice/���������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�014534� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Choice/Theme.pm�������������������������������������������������������������0000644�0001750�0001750�00000002776�12237327555�016161� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Choice::Theme; # Theme selection choice box use 5.008; use strict; use warnings; use Padre::Locale (); use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::Theme (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Choice }; # Provide a custom config_load hook so that Padre::Wx::Role::Config will let # let us load our own data instead of doing it for us. sub config_set { my $self = shift; my $setting = shift; my $value = shift; # Instead of using the vanilla options provided by configuration, # use the elevated ones provided by the theme engine. my $locale = Padre::Locale::rfc4646(); my $options = Padre::Wx::Theme->labels($locale); if ($options) { $self->Clear; # NOTE: This assumes that the list will not be # sorted in Wx via a style flag and that the # order of the fields should be that of the key # and not of the translated label. # Doing sort in Wx will probably break this. foreach my $option ( sort keys %$options ) { # Don't localise the label as Padre::Wx::Theme will do # the localisation for us in this special case. my $label = $options->{$option}; $self->Append( $label => $option ); next unless $option eq $value; $self->SetSelection( $self->GetCount - 1 ); } } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��Padre-1.00/lib/Padre/Wx/Choice/Files.pm�������������������������������������������������������������0000644�0001750�0001750�00000001533�12237327555�016147� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Choice::Files; # Dropdown box for searchable file types use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Locale::T; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Choice }; use constant OPTIONS => ( [ _T('All Files'), '' ], [ _T('Text Files'), 'text/plain' ], [ _T('Perl Files'), 'application/x-perl' ], ); sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Fill the type data $self->Clear; foreach my $type (OPTIONS) { $self->Append( Wx::gettext( $type->[0] ), $type->[1] ); } $self->SetSelection(0); return $self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/TaskList.pm�����������������������������������������������������������������0000644�0001750�0001750�00000015055�12237327555�015455� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::TaskList; use 5.008005; use strict; use warnings; use Scalar::Util (); use Params::Util (); use Padre::Feature (); use Padre::Role::Task (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Main (); use Padre::Wx::Role::Context (); use Padre::Wx (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::View Padre::Wx::Role::Main Padre::Wx::Role::Context Wx::Panel }; ##################################################################### # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->bottom; # Create the parent panel, which will contain the search and tree my $self = $class->SUPER::new( $panel, -1, Wx::DefaultPosition, Wx::DefaultSize, ); # Temporary store for the task list. $self->{model} = []; # Remember the last document we were looking at $self->{document} = ''; # Create the search control $self->{search} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_PROCESS_ENTER | Wx::SIMPLE_BORDER, ); # Create the Todo list $self->{list} = Wx::ListBox->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], Wx::LB_SINGLE | Wx::BORDER_NONE ); # Create a sizer my $sizer = Wx::BoxSizer->new(Wx::VERTICAL); $sizer->Add( $self->{search}, 0, Wx::ALL | Wx::EXPAND ); $sizer->Add( $self->{list}, 1, Wx::ALL | Wx::EXPAND ); # Fits panel layout $self->SetSizerAndFit($sizer); $sizer->SetSizeHints($self); # Double-click a function name Wx::Event::EVT_LISTBOX_DCLICK( $self, $self->{list}, sub { $_[0]->on_list_item_activated( $_[1] ); } ); # Handle double click on list. # Overwrite to avoid stealing the focus back from the editor. # On Windows this appears to kill the double-click feature entirely. unless (Padre::Constant::WIN32) { Wx::Event::EVT_LEFT_DCLICK( $self->{list}, sub { return; } ); } # Handle key events Wx::Event::EVT_KEY_UP( $self->{list}, sub { my ( $this, $event ) = @_; my $code = $event->GetKeyCode; if ( $code == Wx::K_RETURN ) { $self->on_list_item_activated($event); } elsif ( $code == Wx::K_ESCAPE ) { # Escape key clears search and returns focus # to the editor $self->{search}->SetValue(''); $self->main->editor_focus; } $event->Skip(1); return; } ); # Handle key events Wx::Event::EVT_CHAR( $self->{search}, sub { my $this = shift; my $event = shift; my $code = $event->GetKeyCode; if ( $code == Wx::K_DOWN || $code == Wx::K_UP || $code == Wx::K_RETURN ) { # Up/Down and return keys focus on the functions lists $self->{list}->SetFocus; my $selection = $self->{list}->GetSelection; if ( $selection == -1 && $self->{list}->GetCount > 0 ) { $selection = 0; } $self->{list}->Select($selection); } elsif ( $code == Wx::K_ESCAPE ) { # Escape key clears search and returns the # focus to the editor. $self->{search}->SetValue(''); $self->main->editor_focus; } $event->Skip(1); } ); # React to user search Wx::Event::EVT_TEXT( $self, $self->{search}, sub { $self->render; } ); $main->add_refresh_listener($self); $self->context_bind; if (Padre::Feature::STYLE_GUI) { $self->main->theme->apply($self); } return $self; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'bottom'; } sub view_label { Wx::gettext('Task List'); } sub view_close { $_[0]->task_reset; $_[0]->main->show_tasks(0); } ##################################################################### # Event Handlers sub on_list_item_activated { my $self = shift; my $editor = $self->current->editor or return; my $nth = $self->{list}->GetSelection; my $task = $self->{model}->[$nth] or return; # Move the selection to where we last saw it $editor->goto_pos_centerize( $task->{pos} ); $editor->SetFocus; return; } ###################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; $self->context_append_options( $menu => 'main_tasks_panel' ); return; } ###################################################################### # General Methods # Sets the focus on the search field sub focus_on_search { $_[0]->{search}->SetFocus; } sub refresh { my $self = shift; my $current = shift or return; my $document = $current->document; my $search = $self->{search}; my $list = $self->{list}; # Flush and hide the list if there is no active document unless ($document) { my $lock = $self->lock_update; $search->Hide; $list->Hide; $list->Clear; $self->{model} = []; $self->{document} = ''; return; } # Ensure the widget is visible $search->Show(1); $list->Show(1); # Clear search when it is a different document my $id = Scalar::Util::refaddr($document); if ( $id ne $self->{document} ) { $search->ChangeValue(''); $self->{document} = $id; } # Unlike the Function List widget we copied to make this, # don't bother with a background task, since this is much quicker. my $regexp = $current->config->main_tasks_regexp; my $text = $document->text_get; my @items = (); eval { while ( $text =~ /$regexp/gim ) { push @items, { text => $1 || '<no text>', 'pos' => pos($text) }; } }; $self->main->error( sprintf( Wx::gettext('%s in TODO regex, check your config.'), $@ ) ) if $@; while ( $text =~ /#\s*(Ticket #\d+.*?)$/gim ) { push @items, { text => $1, 'pos' => pos($text) }; } if ( @items == 0 ) { $list->Clear; $self->{model} = []; return; } # Update the model and rerender $self->{model} = \@items; $self->render; } # Populate the list with search results sub render { my $self = shift; my $model = $self->{model}; my $search = $self->{search}; my $list = $self->{list}; # Quote the search string to make it safer my $string = $search->GetValue; if ( $string eq '' ) { $string = '.*'; } else { $string = quotemeta $string; } # Show the components and populate the function list SCOPE: { my $lock = $self->lock_update; $search->Show(1); $list->Show(1); $list->Clear; foreach my $task ( reverse @$model ) { my $text = $task->{text}; if ( $text =~ /$string/i ) { $list->Insert( $text, 0 ); } } } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/CPAN/�����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�014063� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/CPAN/Listview.pm������������������������������������������������������������0000644�0001750�0001750�00000004656�12237327555�016253� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::CPAN::Listview; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Icon (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::ListView }; sub new { my $class = shift; my $frame = shift; # Create the underlying object my $self = $class->SUPER::new( $frame, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL ); $self->{cpan} = $frame->cpan; my $imagelist = Wx::ImageList->new( 14, 7 ); $imagelist->Add( Padre::Wx::Icon::icon('status/padre-syntax-error') ); $imagelist->Add( Padre::Wx::Icon::icon('status/padre-syntax-warning') ); $self->AssignImageList( $imagelist, Wx::IMAGE_LIST_SMALL ); $self->InsertColumn( 0, Wx::gettext('Status') ); $self->SetColumnWidth( 0, 750 ); Wx::Event::EVT_LIST_ITEM_ACTIVATED( $self, $self, \&on_list_item_activated ); return $self; } sub bottom { $_[0]->GetParent; } sub clear { my $self = shift; $self->DeleteAllItems; return; } sub set_column_widths { my $self = shift; my $width0 = $self->GetCharWidth * length( Wx::gettext('Status') ) + 16; my $width1 = $self->GetSize->GetWidth - $width0; #my $width1 = $self->GetCharWidth * ( length("blabla") + 2 ); #my $width2 = $self->GetSize->GetWidth - $width0 - $width1 - $self->GetCharWidth * 4; $self->SetColumnWidth( 0, $width0 ); $self->SetColumnWidth( 1, $width1 ); #$self->SetColumnWidth( 2, $width2 ); return; } ##################################################################### # Event Handlers sub show_rows { my ( $self, $regex ) = @_; $self->clear; my $cpan = $self->{cpan}; my $c = 10; my $modules = $cpan->get_modules($regex); foreach my $module ( reverse sort @$modules ) { my $idx = $self->InsertStringImageItem( 0, $module, 0 ); #$self->SetItem( $idx, 1, Wx::gettext('Warning') ); #$self->SetItem( $idx, 1, $module ); $self->SetItemData( $idx, 1 ); } } sub on_list_item_activated { my $self = shift; my $event = shift; my $line = $event->GetItem->GetText; # print STDERR "L: $line\n"; $self->{cpan}->install($line); # my $item = $self->GetFocusedItem; # print STDERR "I ", $item, "\n"; # print STDERR "T ", $self->GetItemText($item), "\n"; return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Action.pm�������������������������������������������������������������������0000644�0001750�0001750�00000021713�12237327555�015132� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Action; use 5.008; use strict; use warnings; use Params::Util (); use Padre::Config (); use Padre::Constant (); use Padre::Wx (); our $VERSION = '1.00'; # Generate faster accessors use Class::XSAccessor { getters => { id => 'id', name => 'name', icon => 'icon', menu_event => 'menu_event', menu_method => 'menu_method', toolbar_event => 'toolbar_event', toolbar_icon => 'toolbar', }, accessors => { shortcut => 'shortcut', }, }; ##################################################################### # Constructor sub new { my $class = shift; my $ide = Padre->ide; my $config = $ide->config; my $actions = $ide->actions; # Create the raw object my $self = bless { id => -1, shortcut => '', @_, }, $class; # Check params my $name = $self->{name}; unless ( defined $name and length $name ) { die join( ',', caller ) . ' tried to create an action without name'; } if ( $name =~ /^menu\./ ) { # The menu prefix is dedicated to menus and must not be used by actions die join( ',', caller ) . ' tried to create an action with name prefix menu'; } if ( $actions->{$name} and $name !~ /^view\.language\./ ) { warn "Found a duplicate action '$name'\n"; } if ( defined $self->{need} and not Params::Util::_CODE( $self->{need} ) ) { die "Custom action 'need' param must be a CODE reference"; } # Menu events are handled by Padre::Wx::Action, the real events # should go to {event}! if ( defined $self->{menu_event} ) { $self->add_event( $self->{menu_event} ); $self->{menu_event} = sub { Padre->ide->actions->{$name}->_event(@_); }; } $self->{queue_event} ||= $self->{menu_event}; # Create shortcut setting for the action my $shortcut = $self->shortcut; my $setting = $self->shortcut_setting; unless ( $config->can($setting) ) { $config->setting( name => $setting, type => Padre::Constant::ASCII, store => Padre::Constant::HUMAN, default => $shortcut, ); } # Load the shortcut from its configuration setting my $config_shortcut = eval '$config->' . $setting; warn "$@\n" if $@; $shortcut = $config_shortcut; $self->shortcut($shortcut); # Validate the shortcut if ($shortcut) { my $shortcuts = $ide->shortcuts; if ( exists $shortcuts->{$shortcut} and $shortcuts->{$shortcut}->name ne $name ) { warn "Found a duplicate shortcut '$shortcut' with " . $shortcuts->{$shortcut}->name . " for '$name'\n"; } else { $shortcuts->{$shortcut} = $self; } } # Save the action $actions->{$name} = $self; return $self; } # Translate on the fly when requested sub label { return defined $_[0]->{label} ? Wx::gettext( $_[0]->{label} ) : Wx::gettext('(Undefined)'); } # A label textual data without any strange menu characters sub label_text { my $self = shift; my $label = $self->label; $label =~ s/\&//g; return $label; } # Translate on the fly when requested sub comment { defined $_[0]->{comment} ? Wx::gettext( $_[0]->{comment} ) : undef; } # Label for use with menu (with shortcut) # In some cases ( http://padre.perlide.org/trac/ticket/485 ) # if a stock menu item also gets a short-cut it stops working # hence we add the shortcut only if id == -1 indicating this was not a # stock menu item # The case of F12 is a special case as it uses a stock icon that does not have # a shortcut in itself so we added one. # (BTW Print does not have a shortcut either) sub label_menu { my $self = shift; my $label = $self->label; my $shortcut = $self->shortcut; if ($shortcut and ( ( $shortcut eq 'F12' ) or ( $self->id == -1 or Padre::Constant::WIN32() or Padre::Constant::MAC() ) ) ) { $label .= "\t" . $shortcut; } return $label; } sub shortcut_setting { my $self = shift; my $setting = 'keyboard_shortcut_' . $self->name; $setting =~ s/\W/_/g; # setting names must be valid subroutine names return $setting; } # Add an event to an action: sub add_event { my $self = shift; my $new_event = shift; if ( ref($new_event) ne 'CODE' ) { warn 'Error: ' . join( ',', caller ) . ' tried to add "' . $new_event . '" which is no CODE-ref!'; return 0; } if ( ref( $self->{event} ) eq 'ARRAY' ) { push @{ $self->{event} }, $new_event; } elsif ( !defined( $self->{event} ) ) { $self->{event} = $new_event; } else { $self->{event} = [ $self->{event}, $new_event ]; } return 1; } sub _event { my $self = shift; my @args = @_; return 1 unless defined( $self->{event} ); if ( ref( $self->{event} ) eq 'CODE' ) { &{ $self->{event} }(@args); } elsif ( ref( $self->{event} ) eq 'ARRAY' ) { foreach my $item ( @{ $self->{event} } ) { next if ref($item) ne 'CODE'; # TO DO: Catch error and source (Ticket #666) &{$item}(@args); } } else { warn 'Expected array or code reference but got: ' . $self->{event}; } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. __END__ =pod =head1 NAME Padre::Wx::Action - Padre Action Object =head1 SYNOPSIS my $action = Padre::Wx::Action->new( name => 'file.save', label => 'Save', comment => 'Saves the current file to disk', icon => '...', shortcut => 'Ctrl-S', menu_event => sub { }, ); =head1 DESCRIPTION This is the base class for the Padre Action API. =head1 KEYS Each module is constructed using a number of keys. While only the name is technically required there are few reasons for actions which lack a label or menu_event. The keys are listed here in the order they usually appear. =head2 name Each action requires an unique name which is used to reference and call it. The name usually has the syntax group.action Both group and action should only contain \w+ chars. =head2 label Text which is shown in menus and allows the user to see what this action does. Remember to use L<Wx::gettext> to make this translatable. =head2 need_editor This action should only be enabled/shown if there is a open editor window with a (potentially unsaved) document in it. The action may be called anyway even if there is no editor (all documents closed), but it shouldn't. Set to a value of 1 to use it. =head2 need_file This action should only be enabled/shown if the current document has a file name (meaning there is a copy on disk which may be older than the in-memory document). The action may be called anyway even if there is no file name for the current document, but it shouldn't. Set to a value of 1 to use it. =head2 need_modified This action should only be enabled/shown if the current document has either been modified after the last save or was never saved on disk at all. The action may be called anyway even if the file is up-to-date with the in-memory document, but it shouldn't. Set to a value of 1 to use it. =head2 need_selection This action should only be enabled/shown if there is some text selected within the current document. The action may be called anyway even if nothing is selected, but it shouldn't. Set to a value of 1 to use it. =head2 need Expected to contain a CODE reference which returns either true or false. If the code returns true, the action should be enabled/shown, otherwise it shouldn't, usually because it won't make sense to use this action without whatever_is_checked_by_the_code. (For example, UNDO can't be used if there was no change which could be undone.) The CODE receives a list of objects which should help with the decision: config Contains the current configuration object editor The current editor object document The current document object main The main Wx object A typical sub for handling would look like this: need => sub { my $current = shift; my $editor = $current->editor or return 0; return $editor->CanUndo; }, Use this with caution! As this function is called very often there are few to no checks and if this isn't a CODE reference, Padre may crash at all or get very slow if your CODE is inefficient and requires a lot of processing time. =head2 comment A comment (longer than label) which could be used in lists. It should contain a short description of what this action does. Remember to use L<Wx::gettext> to make this translatable. =head2 icon If there is an icon for this action, specify it here. =head2 shortcut The shortcut may be set by the user. This key sets the default shortcut to be used if there is no user-defined value. =head2 menu_event This is expected to contain a CODE reference which does the job of this action or an ARRAY reference of CODE references which are executed in order. =head1 METHODS =head2 new A default constructor for action objects. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut �����������������������������������������������������Padre-1.00/lib/Padre/Wx/Theme.pm��������������������������������������������������������������������0000644�0001750�0001750�00000030115�12237327555�014753� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Theme; use 5.008; use strict; use warnings; use Storable (); use IO::File (); use File::Spec (); use Scalar::Util (); use Params::Util (); use Padre::Constant (); use Padre::Util (); use Padre::Wx (); use Padre::Wx::Style (); use Wx::Scintilla (); our $VERSION = '1.00'; # Locate the directories containing styles use constant { CORE_DIRECTORY => Padre::Util::sharedir('themes'), USER_DIRECTORY => File::Spec->catdir( Padre::Constant::CONFIG_DIR, 'themes', ), }; ###################################################################### # Configuration # Commands allowed in the style my %PARAM = ( name => [ 2, 'name' ], gui => [ 1, 'class' ], style => [ 1, 'mime' ], include => [ 1, 'mime' ], SetForegroundColour => [ 1, 'color' ], SetBackgroundColour => [ 1, 'color' ], SetCaretLineBackground => [ 1, 'color' ], SetCaretForeground => [ 1, 'color' ], CallTipSetBackground => [ 1, 'color' ], SetWhitespaceBackground => [ 2, 'boolean,color' ], SetWhitespaceForeground => [ 2, 'boolean,color' ], SetSelBackground => [ 2, 'style,color' ], SetSelForeground => [ 1, 'style,color' ], StyleAllBackground => [ 1, 'color' ], StyleAllForeground => [ 1, 'color' ], StyleSetBackground => [ 2, 'style,color' ], StyleSetForeground => [ 2, 'style,color' ], StyleSetBold => [ 2, 'style,boolean' ], StyleSetItalic => [ 2, 'style,boolean' ], StyleSetEOLFilled => [ 2, 'style,boolean' ], StyleSetUnderline => [ 2, 'style,boolean' ], StyleSetSpec => [ 2, 'style,spec' ], SetFoldMarginColour => [ 2, 'boolean,color' ], SetFoldMarginHiColour => [ 2, 'boolean,color' ], MarkerSetForeground => [ 2, 'style,color' ], MarkerSetBackground => [ 2, 'style,color' ], ); # Fallback path of next best styles if no style exists. # The fallback of last resort is automatically to text/plain my %FALLBACK = ( 'application/x-psgi' => 'application/x-perl', 'application/x-php' => 'application/perl', # Temporary solution 'application/json' => 'application/javascript', 'application/javascript' => 'text/x-csrc', 'text/x-java' => 'text/x-csrc', 'text/x-c++src' => 'text/x-csrc', 'text/x-csharp' => 'text/x-csrc', ); ###################################################################### # Style Repository sub files { my $class = shift; my %styles = (); # Scan style directories foreach my $directory ( USER_DIRECTORY, CORE_DIRECTORY ) { next unless -d $directory; # Search the directory local *STYLEDIR; unless ( opendir( STYLEDIR, $directory ) ) { die "Failed to read '$directory'"; } foreach my $file ( readdir STYLEDIR ) { next unless $file =~ s/\.txt\z//; next unless Params::Util::_IDENTIFIER($file); next if $styles{$file}; $styles{$file} = File::Spec->catfile( $directory, "$file.txt" ); } closedir STYLEDIR; } return \%styles; } # Get the file name for a named style sub file { my $class = shift; my $name = shift; foreach my $directory ( USER_DIRECTORY, CORE_DIRECTORY ) { my $file = File::Spec->catfile( $directory, "$name.txt", ); return $file if -f $file; } return undef; } sub labels { my $class = shift; my $locale = shift; my $files = $class->files; # Load the label for each file. # Because we resolve the filename again this is slower than # it could be, but the code is simple and easy and will do for now. my %labels = (); foreach my $name ( keys %$files ) { $labels{$name} = $class->label( $name, $locale ); } return \%labels; } sub label { my $class = shift; my $name = shift; my $locale = shift; my $file = $class->file($name); unless ($file) { die "The style '$name' does not exist"; } # Parse the file for name statements my $line = 0; my %label = (); my $handle = IO::File->new( $file, 'r' ) or return; while ( defined( my $string = <$handle> ) ) { $line++; # Clean the line $string =~ s/^\s*//s; $string =~ s/\s*\z//s; # Skip blanks and comments next unless $string =~ /^\s*[^#]/; # Split the line into a command and params my @list = split /\s+/, $string; my $cmd = shift @list; # We only care about name next unless defined $cmd; last unless $cmd eq 'name'; # Save the name my $lang = shift @list; $label{$lang} = join ' ', @list; } $handle->close; # Try to find a usable label return $label{$locale} || $label{'en-gb'} || $name; } sub options { $_[0]->labels('en-gb'); } sub find { my $class = shift; my $name = shift; my $file = $class->file($name); unless ($file) { die "The style '$name' does not exist"; } return $class->load($file); } ###################################################################### # Constructor and Accessors sub new { my $class = shift; my $self = bless { @_, code => {} }, $class; unless ( defined $self->name ) { die "No default en-gb name for style"; } unless ( defined $self->mime ) { die "No default text/plain style"; } return $self; } sub clone { my $self = shift; my $class = Scalar::Util::blessed($self); return bless {%$self}, $class; } sub load { my $class = shift; my $file = shift; unless ( -f $file ) { die "Missing or invalid style file '$file'"; } # Open the file my $handle = IO::File->new( $file, 'r' ) or return; my $self = $class->parse($handle); $handle->close; return $self; } sub name { my $self = shift; my $lang = shift || 'en-gb'; return $self->{name}->{$lang}; } sub mime { my $self = shift; my $mime = shift || 'text/plain'; while ( not $self->{mime}->{$mime} ) { if ( $mime eq 'text/plain' ) { # A null seqeunce... I guess... return []; } else { $mime = $FALLBACK{$mime} || 'text/plain'; } } return $self->{mime}->{$mime}; } ###################################################################### # Style Parser sub parse { my $class = shift; my $handle = Params::Util::_HANDLE(shift) or die "Not a file handle"; # Load the delayed modules require Padre::Wx; require Padre::Locale; # Parse the file my %name = (); my %styles = (); my $style = undef; my $line = 0; while ( defined( my $string = <$handle> ) ) { $line++; # Clean the line $string =~ s/^\s*//s; $string =~ s/\s*\z//s; # Skip blanks and comments next unless $string =~ /^\s*[^#]/; # Split the line into a command and params my @list = split /\s+/, $string; my $cmd = shift @list; unless ( defined $PARAM{$cmd} ) { die "Line $line: Unsupported style command '$string'"; } unless ( @list >= $PARAM{$cmd}->[0] ) { die "Line $line: Insufficient parameters in command '$string'"; } # Handle special commands if ( $cmd eq 'name' ) { # Does the language exist my $lang = shift @list; unless ( Padre::Locale::rfc4646_exists($lang) ) { die "Line $line: Unknown language in command '$string'"; } # Save the name $name{$lang} = join ' ', @list; } elsif ( $cmd eq 'style' or $cmd eq 'gui' ) { # Switch to the new mime type $style = $styles{ $list[0] } = Padre::Wx::Style->new; } elsif ( $cmd eq 'include' ) { # Copy another style as a starting point my $copy = $styles{ $list[0] }; unless ($copy) { die "Line $line: Style '$list[0]' is not defined (yet)"; } $style->include($copy); } elsif ( $PARAM{$cmd}->[1] eq 'color' ) { # General commands that are passed a single colour my $color = Padre::Wx::color( shift @list ); $style->add( $cmd => [$color] ); } elsif ( $PARAM{$cmd}->[1] eq 'style,color' ) { # Style specific commands that are passed a single color my $id = $class->parse_style( $line, shift @list ); my $color = Padre::Wx::color( shift @list ); $style->add( $cmd => [ $id, $color ] ); } elsif ( $PARAM{$cmd}->[1] eq 'style,boolean' ) { # Style specific commands that are passed a boolean value my $id = $class->parse_style( $line, shift @list ); my $boolean = $class->parse_boolean( $line, shift @list ); $style->add( $cmd => [ $id, $boolean ] ); } elsif ( $PARAM{$cmd}->[1] eq 'style,spec' ) { # Style command that is passed a spec string my $style = $class->parse_style( $line, shift @list ); my $spec = shift @list; } elsif ( $PARAM{$cmd}->[1] eq 'boolean,color' ) { my $boolean = $class->parse_boolean( $line, shift @list ); my $color = Padre::Wx::color( shift @list ); $style->add( $cmd => [ $boolean, $color ] ); } else { die "Line $line: Unsupported style command '$string'"; } } return $class->new( name => \%name, mime => \%styles, ); } sub parse_style { my $class = shift; my $line = shift; my $string = shift; my $copy = $string; if ( defined Params::Util::_NONNEGINT($string) ) { return $string; } elsif ( $string =~ /^PADRE_\w+\z/ ) { unless ( Padre::Constant->can($string) ) { die "Line $line: Unknown or unsupported style '$copy'"; } $string = "Padre::Constant::$string"; } elsif ( $string =~ /^\w+\z/ ) { unless ( Wx::Scintilla->can($string) ) { die "Line $line: Unknown or unsupported style '$copy'"; } $string = "Wx::Scintilla::$string"; } else { die "Line $line: Unknown or unsupported style '$copy'"; } # Capture the numeric form of the constant no strict 'refs'; $string = eval { $string->() }; if ($@) { die "Line $line: Unknown or unsupported style '$copy'"; } return $string; } sub parse_boolean { my $class = shift; my $line = shift; my $string = shift; unless ( $string eq '0' or $string eq '1' ) { die "Line $line: Boolean value '$string' is not 0 or 1"; } return $string; } ###################################################################### # Compilation and Application sub apply { my $self = shift; my $object = shift; # Clear any previous style $self->clear($object); if ( Params::Util::_INSTANCE( $object, 'Padre::Wx::Editor' ) ) { # This is an editor style my $document = $object->document or return; my $mimetype = $document->mimetype or return; $self->mime($mimetype)->apply($object); # Apply custom caret line background color my $bg = $self->{editor_currentline_color}; unless ( defined $bg ) { $bg = $object->config->editor_currentline_color; } $object->SetCaretLineBackground( Padre::Wx::color($bg) ); # Refresh the line numbers in case the font has changed $object->refresh_line_numbers; } else { # This is a GUI style, chase the inheritance tree. # Uses inlined Class::ISA algorithm as in Class::Inspector my $class = Scalar::Util::blessed($object); my @queue = ($class); my %seen = ( $class => 1 ); while ( my $package = shift @queue ) { no strict 'refs'; unshift @queue, grep { !$seen{$_}++ } map { s/^::/main::/; s/\'/::/g; $_ } ( @{"${package}::ISA"} ); # Apply the first style that patches my $style = $self->{mime}->{$package} or next; $style->apply($object); return 1; } } return 1; } sub clear { my $self = shift; my $object = shift; if ( Params::Util::_INSTANCE( $object, 'Padre::Wx::Editor' ) ) { # Clears settings back to the editor configuration defaults # To do this we flush absolutely everything and then apply # the basic font settings. $object->StyleResetDefault; # Find the font to initialise with my $editor_font = $self->{editor_font}; unless ( defined $editor_font ) { $editor_font = $object->config->editor_font; } # Reset the font, which Scintilla considers part of the # "style" but Padre doesn't allow to be changed as a "style" require Padre::Wx; my $font = Padre::Wx::editor_font($editor_font); $object->SetFont($font); $object->StyleSetFont( Wx::Scintilla::STYLE_DEFAULT, $font ); # Reset all styles to the recently set default $object->StyleClearAll; } else { # Reset the GUI element colours back to defaults ### Disabled as it blacks the directory tree for some reason # $object->SetForegroundColour( Wx::NullColour ); # $object->SetBackgroundColour( Wx::NullColour ); } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Browser.pm������������������������������������������������������������������0000644�0001750�0001750�00000024707�12237327555�015346� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Browser; =pod =head1 NAME Padre::Wx::Browser - Wx front-end for C<Padre::Browser> =head1 Welcome to Padre C<Browser> C<Padre::Wx::Browser> ( C<Wx::Frame> ) =head1 DESCRIPTION User interface for C<Padre::Browser>. =head1 METHODS =cut use 5.008; use strict; use warnings; use URI (); use Encode (); use Scalar::Util (); use Params::Util (); use Padre::Browser (); use Padre::Task::Browser (); use Padre::Wx (); use Padre::Wx::HtmlWindow (); use Padre::Wx::Icon (); use Padre::Wx::AuiManager (); use Padre::Role::Task (); use Padre::Locale::T; use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Wx::Dialog }; our %VIEW = ( 'text/html' => 'Padre::Wx::HtmlWindow', 'text/xhtml' => 'Padre::Wx::HtmlWindow', 'text/x-html' => 'Padre::Wx::HtmlWindow', ); =pod =head2 new Constructor , see L<Wx::Frame> =cut sub new { my $class = shift; my $self = $class->SUPER::new( undef, -1, Wx::gettext('Help'), Wx::DefaultPosition, [ 750, 700 ], Wx::DEFAULT_FRAME_STYLE, ); $self->{provider} = Padre::Browser->new; # Until we get a real icon use the same one as the others $self->SetIcon(Padre::Wx::Icon::PADRE); my $top_s = Wx::BoxSizer->new(Wx::VERTICAL); my $but_s = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->{notebook} = Wx::AuiNotebook->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::AUI_NB_DEFAULT_STYLE ); $self->{search} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_PROCESS_ENTER ); $self->{search}->SetToolTip( Wx::ToolTip->new( Wx::gettext('Search for perldoc - e.g. Padre::Task, Net::LDAP') ) ); Wx::Event::EVT_TEXT_ENTER( $self, $self->{search}, sub { $self->on_search_text_enter( $self->{search} ); } ); my $label = Wx::StaticText->new( $self, -1, Wx::gettext('Search:'), Wx::DefaultPosition, [ 50, -1 ], Wx::ALIGN_RIGHT ); $label->SetToolTip( Wx::ToolTip->new( Wx::gettext('Search for perldoc - e.g. Padre::Task, Net::LDAP') ) ); my $close_button = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Close') ); $but_s->Add( $label, 0, Wx::ALIGN_CENTER_VERTICAL ); $but_s->Add( $self->{search}, 1, Wx::ALIGN_LEFT | Wx::ALIGN_CENTER_VERTICAL ); $but_s->AddStretchSpacer(2); $but_s->Add( $close_button, 0, Wx::ALIGN_RIGHT | Wx::ALIGN_CENTER_VERTICAL ); $top_s->Add( $but_s, 0, Wx::EXPAND ); $top_s->Add( $self->{notebook}, 1, Wx::GROW ); $self->SetSizer($top_s); #$self->_setup_welcome; # not sure about this but we want to throw the close X event ot on_close so it gets # rid of a busy cursor if it's busy.. # bind the close event to our close method # This doesn't work... !!! :( It should do though! # http://www.nntp.perl.org/group/perl.wxperl.users/2007/06/msg3154.html # http://www.gigi.co.uk/wxperl/pdk/perltrayexample.txt # use a similar syntax.... for some reason this doesn't call on_close() # TO DO: Figure out what needs to be done to check and shutdown a # long running thread # To trigger this, search for perltoc in the search text entry. Wx::Event::EVT_CLOSE( $self, sub { $_[0]->on_close; } ); $self->SetAutoLayout(1); return $self; } ###################################################################### # Event Handlers sub on_close { my $self = shift; TRACE("Closing the docbrowser") if DEBUG; # In case we have a busy cursor still: $self->{busy} = undef; $self->Destroy; } sub on_search_text_enter { my $self = shift; my $event = shift; my $text = $event->GetValue; # need to see where to put the busy cursor # we want to see a busy cursor # cheating a bit here: $self->{busy} = Wx::BusyCursor->new; $self->resolve($text); } sub on_html_link_clicked { my $self = shift; my $uri = URI->new( $_[0]->GetLinkInfo->GetHref ); if ( $self->{provider}->accept( $uri->scheme ) ) { $self->resolve($uri); } else { Padre::Wx::launch_browser($uri); } } ###################################################################### # General Methods =pod =head2 help Accepts a string, L<URI> or L<Padre::Document> and attempts to render documentation for such in a new C<AuiNoteBook> tab. Links matching a scheme accepted by L<Padre::Browser> will (when clicked) be resolved and displayed in a new tab. =cut sub help { my $self = shift; my $document = shift; my $hint = shift; if ( Params::Util::_INSTANCE( $document, 'Padre::Document' ) ) { $document = $self->padre2docbrowser($document); } my %hints = ( $self->_hints, Params::Util::_HASH($hint) ? %$hint : (), ); if ( Params::Util::_INVOCANT($document) and $document->isa('Padre::Browser::Document') ) { if ( $self->viewer_for( $document->guess_mimetype ) ) { return $self->display($document); } my $render = $self->{provider}->viewer_for( $document->mimetype ); my $generate = $self->{provider}->provider_for( $document->mimetype ); if ($generate) { $self->task_request( task => 'Padre::Task::Browser', document => $document, method => 'docs', args => \%hints, then => 'display', ); return 1; } if ($render) { $self->task_request( task => 'Padre::Task::Browser', document => $document, method => 'browse', args => \%hints, then => 'display', ); return 1; } $self->not_found( $document, \%hints ); return; } elsif ( defined $document ) { $self->task_request( task => 'Padre::Task::Browser', document => $document, method => 'resolve', args => \%hints, then => 'help', ); return 1; } else { $self->not_found( $hints{referrer} ); } } sub resolve { my $self = shift; my $document = shift; $self->task_request( task => 'Padre::Task::Browser', document => $document, method => 'resolve', args => { $self->_hints }, then => 'display', ); } # FIX ME , add our own output panel sub debug { Padre->ide->wx->main->output->AppendText( $_[1] . $/ ); } =pod =head2 display Accepts a L<Padre::Document> or work-alike =cut sub display { my $self = shift; my $docs = shift; my $query = shift; if ( Params::Util::_INSTANCE( $docs, 'Padre::Browser::Document' ) ) { # if doc is html just display it # TO DO, a means to register other wx display windows such as ?! if ( $self->viewer_for( $docs->mimetype ) ) { return $self->show_page( $docs, $query ); } $self->task_request( task => 'Padre::Task::Browser', method => 'browse', document => $docs, then => 'display', ); return 1; } else { $self->not_found( $docs, $query ); } } sub task_finish { my $self = shift; my $task = shift; my $then = $task->{then}; my $document = $task->{document}; my $result = $task->{result}; if ( $then eq 'display' ) { return $self->not_found($document) unless $result; return $self->display( $result, $document ); } if ( $then eq 'help' ) { return $self->help( $result, { referrer => $document } ); } return 1; } sub show_page { my $self = shift; my $docs = shift; my $query = shift; unless ( Params::Util::_INSTANCE( $docs, 'Padre::Browser::Document' ) ) { return $self->not_found($query); } my $title = Wx::gettext('Untitled'); my $mime = 'text/xhtml'; # Best effort to title the tab ANYTHING more useful # than 'Untitled' if ( Params::Util::_INSTANCE( $query, 'Padre::Browser::Document' ) ) { $title = $query->title; } elsif ( $docs->title ) { $title = $docs->title; } elsif ( Params::Util::_STRING($query) ) { $title = $query; } # Bashing on Indicies in the attempt to replace an open # tab with the same title. my $found = $self->{notebook}->GetPageCount; my @opened; my $i = 0; while ( $i < $found ) { my $page = $self->{notebook}->GetPage($i); if ( $self->{notebook}->GetPageText($i) eq $title ) { push @opened, { page => $page, index => $i, }; } $i++; } if ( my $last = pop @opened ) { $last->{page}->SetPage( $docs->body ); $self->{notebook}->SetSelection( $last->{index} ); } else { my $page = $self->new_page( $docs->mimetype, $title ); $page->SetPage( $docs->body ); } # and turn off the busy cursor $self->{busy} = undef; # not sure if I can do this: # yep seems I can! $self->{search}->SetFocus; } sub new_page { my $self = shift; my $mime = shift; my $title = shift; my $page = eval { if ( exists $VIEW{$mime} ) { my $class = $VIEW{$mime}; unless ( $class->VERSION ) { (my $source = "$class.pm") =~ s{::}{/}g; eval { require $source } or die "Failed to load $class: $@"; } my $panel = $class->new($self); Wx::Event::EVT_HTML_LINK_CLICKED( $self, $panel, sub { shift->on_html_link_clicked(@_); }, ); $self->{notebook}->AddPage( $panel, $title, 1 ); $panel; } else { $self->debug( sprintf( Wx::gettext('Browser: no viewer for %s'), $mime ) ); } }; return $page; } sub padre2docbrowser { my $class = shift; my $padredoc = shift; my $doc = Padre::Browser::Document->new( mimetype => $padredoc->mimetype, title => $padredoc->get_title, filename => $padredoc->filename, ); $doc->body( Encode::encode( 'utf8', $padredoc->text_get ) ); $doc->mimetype( $doc->guess_mimetype ) unless $doc->mimetype; return $doc; } # trying a dialog rather than the open tab. sub not_found { my $self = shift; my $query = shift; my $hints = shift; # We got this far, make the cursor not busy $self->{busy} = undef; $query ||= $hints->{referrer}; my $dialog = Wx::MessageDialog->new( $self, sprintf( Wx::gettext("Searched for '%s' and failed..."), $query ), Wx::gettext('Help not found.'), Wx::OK | Wx::CENTRE | Wx::ICON_INFORMATION ); $dialog->ShowModal; $dialog->Destroy; # Set focus back to the entry. $self->{search}->SetFocus; } # Private methods # There are some things only the instance knows , like desired locale # or how to derive a title from a documentation section sub _hints { return ( ( Padre::Locale::iso639() eq Padre::Locale::system_iso639() ) ? () : ( lang => Padre::Locale::iso639() ), title_from_section => Wx::gettext('NAME'), ); } sub viewer_for { my $self = shift; my $mimetype = shift or return; if ( exists $VIEW{$mimetype} ) { return $VIEW{$mimetype}; } return; } 1; __END__ =pod =head1 SEE ALSO L<Padre::Browser> L<Padre::Task::Browser> =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������Padre-1.00/lib/Padre/Wx/SelectionLock.pm������������������������������������������������������������0000644�0001750�0001750�00000004573�12237327555�016460� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::SelectionLock; use 5.008; use strict; use warnings; use Params::Util (); use Padre::Wx (); use Wx::Scintilla (); our $VERSION = '1.00'; use Class::XSAccessor { getters => { object => 'object', position => 'position', anchor => 'anchor', start => 'start', end => 'end', vdelta => 'vdelta', text => 'text', }, }; sub new { my $class = shift; my $object = shift; unless ( Params::Util::_INSTANCE( $object, 'Wx::Scintilla::TextCtrl' ) ) { die "Did not provide a Wx::Scintilla::TextCtrl to lock"; } # Capture the selection and relative position in the editor my $position = $object->GetCurrentPos; my $anchor = $object->GetAnchor; # Find the relative offset of the start of the selection from the # top of the screen. my $start = $position > $anchor ? $anchor : $position; my $end = $position > $anchor ? $position : $anchor; my $first = $object->GetFirstVisibleLine; my $vfirst = $object->VisibleFromDocLine($first); my $vstart = $object->VisibleFromDocLine($start); my $screen = $object->GetLinesOnScreen; my $vdelta = $vstart - $vfirst; unless ( $vdelta >= 0 and $vdelta <= $screen ) { # Select start is not visible on screen, do not store $vdelta = undef; } # Create the object return $class->new( object => $object, position => $position, anchor => $anchor, start => $start, end => $end, vdelta => $vdelta, text => $object->GetSelectedText, ); } sub cancel { $_[0]->{cancel} = 1; } sub apply { my $object = $_[0]->{object}; # If something is selected, don't restore the selection if ( $object->GetCurrentPos != $object->GetAnchor ) { return; } # Is the same content still at the original selection location if ( $_[0]->{text} ne $object->GetTextRange( $_[0]->{start}, $_[0]->{end} ) ) { return; } # Restore the selection my $lock = Wx::WindowUpdateLocker->new($object); $object->SetCurrentPos( $_[0]->{position} ); $object->SetAnchor( $_[0]->{anchor} ); # If the selection was on screen, restore to the same vertical # location in the editor. my $vstart = $object->VisibleFromDocLine( $_[0]->{start} ); my $scroll = $vstart - $_[0]->{vdelta}; ### TO BE COMPLETED } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ReplaceInFiles.pm�����������������������������������������������������������0000644�0001750�0001750�00000014015�12237327555�016537� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::ReplaceInFiles; # Class for the output window at the bottom of Padre that is used to display # results from Replace in Files searches. use 5.008; use strict; use warnings; use File::Spec (); use Padre::Role::Task (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Main (); use Padre::Wx::Role::Context (); use Padre::Wx::TreeCtrl (); use Padre::Wx (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Idle Padre::Wx::Role::View Padre::Wx::Role::Main Padre::Wx::Role::Context Padre::Wx::TreeCtrl }; ###################################################################### # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->bottom; # Create the underlying object my $self = $class->SUPER::new( $panel, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TR_SINGLE | Wx::TR_FULL_ROW_HIGHLIGHT | Wx::TR_HAS_BUTTONS | Wx::CLIP_CHILDREN ); # Create the image list my $images = Wx::ImageList->new( 16, 16 ); $self->{images} = { folder => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_FOLDER', 'wxART_OTHER_C', [ 16, 16 ], ), ), file => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_NORMAL_FILE', 'wxART_OTHER_C', [ 16, 16 ], ), ), result => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_GO_FORWARD', 'wxART_OTHER_C', [ 16, 16 ], ), ), root => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_HELP_FOLDER', 'wxART_OTHER_C', [ 16, 16 ], ), ), }; $self->AssignImageList($images); Wx::Event::EVT_TREE_ITEM_ACTIVATED( $self, $self, sub { $_[0]->idle_method( item_clicked => $_[1]->GetItem, ); }, ); # $self->context_bind; # Inialise statistics $self->{files} = 0; $self->{matches} = 0; return $self; } ###################################################################### # Event Handlers sub item_clicked { my $self = shift; my $item = shift; my $data = $self->GetPlData($item) or return; my $dir = $data->{dir} or return; my $file = $data->{file} or return; my $path = File::Spec->catfile( $dir, $file ); $self->main->setup_editor($path); } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'bottom'; } sub view_label { Wx::gettext('Replace in Files'); } sub view_close { $_[0]->task_reset; $_[0]->main->show_replaceinfiles(0); } ###################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; $self->context_append_options( $menu => 'main_foundinfiles_panel' ); return; } ###################################################################### # Search Methods sub replace { my $self = shift; my %param = @_; # If we are given a root and no project, and the root path # is precisely the root of a project, switch so that the search # will automatically pick up the manifest/skip rules for it. if ( defined $param{root} and not exists $param{project} ) { my $project = $self->ide->project_manager->project( $param{root} ); $param{project} = $project if $project; } # Kick off the replace task $self->task_reset; $self->task_request( task => 'Padre::Task::ReplaceInFiles', on_message => 'replace_message', on_finish => 'replace_finish', dryrun => 0, %param, ); $self->clear; my $root = $self->AddRoot('Root'); $self->SetItemText( $root, sprintf( Wx::gettext(q{Replacing '%s' in '%s'...}), $param{search}->find_term, $param{root} ) ); $self->SetItemImage( $root, $self->{images}->{root} ); return 1; } sub replace_message { TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = shift; my $path = shift; my $root = $self->GetRootItem; # Lock the tree to reduce flicker and prevent auto-scrolling my $lock = $self->lock_scroll; # Add the file node to the tree. # Added to avoid crash in next line. require Padre::Wx::Directory::Path; my $name = $path->name; my $dir = File::Spec->catfile( $task->root, $path->dirs ); my $full = File::Spec->catfile( $task->root, $path->path ); my $count = shift or next; if ( $count > 0 ) { my $label = sprintf( Wx::gettext('%s (%s changed)'), $full, $count ); my $file = $self->AppendItem( $root, $label, $self->{images}->{file} ); $self->SetPlData( $file, { dir => $dir, file => $name } ); # Update statistics $self->{matches} += $count; $self->{files} += 1; } else { my $label = sprintf( Wx::gettext('%s (crashed)'), $full ); my $file = $self->AppendItem( $root, $label, $self->{images}->{file} ); $self->SetItemTextColour( $file => Padre::Wx::color('990000') ); $self->SetItemBold( $file => 1 ); $self->SetPlData( $file => { dir => $dir, file => $name } ); } # Ensure the root is expanded $self->Expand($root); return 1; } sub replace_finish { TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = shift; my $term = $task->{search}->find_term; my $dir = $task->{root}; # Display the summary my $root = $self->GetRootItem; if ( $self->{files} ) { $self->SetItemText( $root, sprintf( Wx::gettext(q{Replace complete, found '%s' %d time(s) in %d file(s) inside '%s'}), $term, $self->{matches}, $self->{files}, $dir, ) ); } else { $self->SetItemText( $root, sprintf( Wx::gettext(q{No results found for '%s' inside '%s'}), $term, $dir, ) ); } return 1; } ##################################################################### # General Methods sub select { my $self = shift; my $parent = $self->GetParent; $parent->SetSelection( $parent->GetPageIndex($self) ); return; } sub clear { my $self = shift; $self->{files} = 0; $self->{matches} = 0; $self->DeleteAllItems; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Constant.pm�����������������������������������������������������������������0000644�0001750�0001750�00000020065�12237327555�015505� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Constant; use 5.008; use strict; use warnings; our $VERSION = '1.00'; use constant WANT => qw{ wxCLRP_SHOW_LABEL wxCLRP_USE_TEXTCTRL wxCLRP_DEFAULT_STYLE wxDIRP_DIR_MUST_EXIST wxDIRP_CHANGE_DIR wxDIRP_USE_TEXTCTRL wxDIRP_DEFAULT_STYLE wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED wxEVT_COMMAND_HYPERLINK wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING wxEVT_COMMAND_BUTTON_CLICKED wxEVT_COMMAND_CHECKBOX_CLICKED wxEVT_COMMAND_CHOICE_SELECTED wxEVT_COMMAND_LISTBOX_SELECTED wxEVT_COMMAND_LISTBOX_DOUBLECLICKED wxEVT_COMMAND_CHECKLISTBOX_TOGGLED wxEVT_COMMAND_TEXT_UPDATED wxEVT_COMMAND_TEXT_ENTER wxEVT_COMMAND_MENU_SELECTED wxEVT_COMMAND_TOOL_CLICKED wxEVT_COMMAND_SLIDER_UPDATED wxEVT_COMMAND_RADIOBOX_SELECTED wxEVT_COMMAND_RADIOBUTTON_SELECTED wxEVT_COMMAND_SCROLLBAR_UPDATED wxEVT_COMMAND_VLBOX_SELECTED wxEVT_COMMAND_COMBOBOX_SELECTED wxEVT_COMMAND_TOGGLEBUTTON_CLICKED wxEVT_COMMAND_TEXT_MAXLEN wxEVT_COMMAND_TEXT_URL wxEVT_COMMAND_TEXT_COPY wxEVT_COMMAND_TEXT_CUT wxEVT_COMMAND_TEXT_PASTE wxEVT_COMMAND_TOOL_RCLICKED wxEVT_COMMAND_TOOL_ENTER wxEVT_COMMAND_SPINCTRL_UPDATED wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED wxEVT_COMMAND_SPLITTER_UNSPLIT wxEVT_COMMAND_SPLITTER_DOUBLECLICKED wxEVT_TIMER wxEVT_TASKBAR_MOVE wxEVT_TASKBAR_LEFT_DOWN wxEVT_TASKBAR_LEFT_UP wxEVT_TASKBAR_RIGHT_DOWN wxEVT_TASKBAR_RIGHT_UP wxEVT_TASKBAR_LEFT_DCLICK wxEVT_TASKBAR_RIGHT_DCLICK wxEVT_COMMAND_FIND wxEVT_COMMAND_FIND_NEXT wxEVT_COMMAND_FIND_REPLACE wxEVT_COMMAND_FIND_REPLACE_ALL wxEVT_COMMAND_FIND_CLOSE wxEVT_LEFT_DOWN wxEVT_LEFT_UP wxEVT_LEFT_DCLICK wxEVT_MIDDLE_DOWN wxEVT_MIDDLE_UP wxEVT_MIDDLE_DCLICK wxEVT_RIGHT_DOWN wxEVT_RIGHT_UP wxEVT_RIGHT_DCLICK wxEVT_MOTION wxEVT_ENTER_WINDOW wxEVT_LEAVE_WINDOW wxEVT_SET_FOCUS wxEVT_KILL_FOCUS wxEVT_SASH_DRAGGED wxEVT_NC_LEFT_DOWN wxEVT_NC_LEFT_UP wxEVT_NC_MIDDLE_DOWN wxEVT_NC_MIDDLE_UP wxEVT_NC_RIGHT_DOWN wxEVT_NC_RIGHT_UP wxEVT_NC_MOTION wxEVT_NC_ENTER_WINDOW wxEVT_NC_LEAVE_WINDOW wxEVT_NC_LEFT_DCLICK wxEVT_NC_MIDDLE_DCLICK wxEVT_NC_RIGHT_DCLICK wxEVT_CHAR wxEVT_CHAR_HOOK wxEVT_CHILD_FOCUS wxEVT_NAVIGATION_KEY wxEVT_KEY_DOWN wxEVT_KEY_UP wxEVT_SET_CURSOR wxEVT_SCROLL_TOP wxEVT_SCROLL_BOTTOM wxEVT_SCROLL_LINEUP wxEVT_SCROLL_LINEDOWN wxEVT_SCROLL_PAGEUP wxEVT_SCROLL_PAGEDOWN wxEVT_SCROLL_THUMBTRACK wxEVT_SCROLL_THUMBRELEASE wxEVT_SCROLLWIN_TOP wxEVT_SCROLLWIN_BOTTOM wxEVT_SCROLLWIN_LINEUP wxEVT_SCROLLWIN_LINEDOWN wxEVT_SCROLLWIN_PAGEUP wxEVT_SCROLLWIN_PAGEDOWN wxEVT_SCROLLWIN_THUMBTRACK wxEVT_SCROLLWIN_THUMBRELEASE wxEVT_SIZE wxEVT_MOVE wxEVT_CLOSE_WINDOW wxEVT_END_SESSION wxEVT_QUERY_END_SESSION wxEVT_ACTIVATE_APP wxEVT_POWER_SUSPENDING wxEVT_POWER_SUSPENDED wxEVT_POWER_SUSPEND_CANCEL wxEVT_POWER_RESUME wxEVT_POWER wxEVT_ACTIVATE wxEVT_CREATE wxEVT_DESTROY wxEVT_SHOW wxEVT_ICONIZE wxEVT_MAXIMIZE wxEVT_PAINT wxEVT_ERASE_BACKGROUND wxEVT_NC_PAINT wxEVT_MENU_HIGHLIGHT wxEVT_MENU_OPEN wxEVT_MENU_CLOSE wxEVT_CONTEXT_MENU wxEVT_SYS_COLOUR_CHANGED wxEVT_QUERY_NEW_PALETTE wxEVT_PALETTE_CHANGED wxEVT_JOY_BUTTON_DOWN wxEVT_JOY_BUTTON_UP wxEVT_JOY_MOVE wxEVT_JOY_ZMOVE wxEVT_DROP_FILES wxEVT_INIT_DIALOG wxEVT_IDLE wxEVT_UPDATE_UI wxEVT_MOVING wxEVT_SIZING wxEVT_END_PROCESS wxEVT_COMMAND_LEFT_CLICK wxEVT_COMMAND_LEFT_DCLICK wxEVT_COMMAND_RIGHT_CLICK wxEVT_COMMAND_RIGHT_DCLICK wxEVT_COMMAND_SET_FOCUS wxEVT_COMMAND_KILL_FOCUS wxEVT_COMMAND_ENTER wxEVT_HELP wxEVT_DETAILED_HELP wxEVT_COMMAND_LIST_BEGIN_DRAG wxEVT_COMMAND_LIST_BEGIN_RDRAG wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT wxEVT_COMMAND_LIST_CACHE_HINT wxEVT_COMMAND_LIST_COL_RIGHT_CLICK wxEVT_COMMAND_LIST_COL_BEGIN_DRAG wxEVT_COMMAND_LIST_COL_DRAGGING wxEVT_COMMAND_LIST_COL_END_DRAG wxEVT_COMMAND_LIST_END_LABEL_EDIT wxEVT_COMMAND_LIST_DELETE_ITEM wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS wxEVT_COMMAND_LIST_SET_INFO wxEVT_COMMAND_LIST_GET_INFO wxEVT_COMMAND_LIST_ITEM_SELECTED wxEVT_COMMAND_LIST_ITEM_DESELECTED wxEVT_COMMAND_LIST_KEY_DOWN wxEVT_COMMAND_LIST_INSERT_ITEM wxEVT_COMMAND_LIST_COL_CLICK wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK wxEVT_COMMAND_LIST_ITEM_ACTIVATED wxEVT_COMMAND_LIST_ITEM_FOCUSED wxEVT_COMMAND_TREE_BEGIN_DRAG wxEVT_COMMAND_TREE_BEGIN_RDRAG wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT wxEVT_COMMAND_TREE_END_LABEL_EDIT wxEVT_COMMAND_TREE_DELETE_ITEM wxEVT_COMMAND_TREE_GET_INFO wxEVT_COMMAND_TREE_SET_INFO wxEVT_COMMAND_TREE_ITEM_EXPANDED wxEVT_COMMAND_TREE_ITEM_EXPANDING wxEVT_COMMAND_TREE_ITEM_COLLAPSED wxEVT_COMMAND_TREE_ITEM_COLLAPSING wxEVT_COMMAND_TREE_SEL_CHANGED wxEVT_COMMAND_TREE_SEL_CHANGING wxEVT_COMMAND_TREE_KEY_DOWN wxEVT_COMMAND_TREE_ITEM_ACTIVATED wxEVT_COMMAND_TREE_ITEM_MENU wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK wxEVT_COMMAND_TREE_END_DRAG wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP wxFLP_OPEN wxFLP_SAVE wxFLP_OVERWRITE_PROMPT wxFLP_FILE_MUST_EXIST wxFLP_CHANGE_DIR wxFLP_DEFAULT_STYLE wxFLP_USE_TEXTCTRL wxFNTP_USE_TEXTCTRL wxFNTP_DEFAULT_STYLE wxFNTP_FONTDESC_AS_LABEL wxFNTP_USEFONT_FOR_LABEL wxFNTP_MAXPOINT_SIZE wxLayout_Default wxLayout_LeftToRight wxLayout_RightToLeft wxMOD_NONE wxMOD_ALT wxMOD_CONTROL wxMOD_SHIFT wxMOD_WIN wxMOD_ALTGR wxMOD_META wxMOD_CMD wxMOD_ALL wxNOT_FOUND :aui :bitmap :button :bookctrl :brush :checkbox :choicebook :clipboard :collapsiblepane :colour :combobox :comboctrl :constraints :control :dc :dialog :dirctrl :dirdialog :dnd :filedialog :font :frame :gauge :html :hyperlink :icon :id :image :imagelist :keycode :layout :listbook :listbox :listctrl :locale :menu :miniframe :misc :notebook :ownerdrawncombobox :palette :panel :pen :power :process :progressdialog :radiobox :radiobutton :richtextctrl :sashwindow :scrollbar :scrolledwindow :sizer :slider :socket :spinbutton :spinctrl :splitterwindow :staticline :statictext :statusbar :systemsettings :textctrl :timer :toolbar :toplevelwindow :treectrl :window }; # Read the sets of constants we care about use Wx WANT, ':stc'; # Prevent duplicates my %seen = (); sub load { my %constants = ( THREADS => Wx::wxTHREADS, MOTIF => Wx::wxMOTIF, MSW => Wx::wxMSW, GTK => Wx::wxGTK, MAC => Wx::wxMAC, X11 => Wx::wxX11, ); foreach ( keys %constants ) { # Prevent duplicates on 2nd or later runs delete $constants{$_} if defined $seen{$_}; } foreach ( map { s/^:// ? @{ $Wx::EXPORT_TAGS{$_} } : $_ } WANT ) { next unless s/^(wx)(.+)//i; my $wx = $1; my $name = $2; next if defined $seen{$name}; next if defined $constants{$name}; if ( Wx->can($name) ) { warn "Clash with function Wx::$name"; next; } if ( exists $Wx::{"$name\::"} ) { warn "Pseudoclash with namespace Wx::$name\::"; next; } no strict 'refs'; local $@; my $value = eval { &{"Wx::$wx$name"}(); }; if ($@) { # print "# Wx::wx$name failed to load\n"; next; } unless ( defined $value ) { print "# Wx::$wx$name is undefined\n"; next; } $constants{$name} = $value; } # NOTE: This completes the conversion of Wx::wxFoo constants to Wx::Foo. # NOTE: On separate lines to prevent the PAUSE indexer thingkng that we # are trying to claim ownership of Wx.pm package ## no critic Wx; require constant; constant::->import( \%constants ); # Save the generated constants to prevent duplicates %seen = ( %seen, %constants ); } load(); # Aliases for other things that aren't actual constants no warnings 'once'; *Wx::TheApp = *Wx::wxTheApp; 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Command.pm������������������������������������������������������������������0000644�0001750�0001750�00000015620�12237327555�015273� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Command; # Class for the command window at the bottom of Padre. # This currently has very little customisation code in it, # but that will change in future. use 5.008; use strict; use warnings; use utf8; use Encode (); use File::Spec (); use Params::Util (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Main (); use Padre::Wx (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::View Padre::Wx::Role::Main Wx::SplitterWindow }; ###################################################################### # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->bottom; my $self = $class->SUPER::new( $panel, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::NO_FULL_REPAINT_ON_RESIZE | Wx::CLIP_CHILDREN ); my $output = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_READONLY | Wx::TE_MULTILINE | Wx::NO_FULL_REPAINT_ON_RESIZE ); my $input = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::NO_FULL_REPAINT_ON_RESIZE | Wx::TE_PROCESS_ENTER ); $self->{_output_} = $output; $self->{_input_} = $input; # Do custom start-up stuff here #$self->clear; #$self->set_font; # Moves the focus the input window but does not allow selecting text in the output window #Wx::Event::EVT_SET_FOCUS( $output, sub { $input->SetFocus; } ); Wx::Event::EVT_TEXT_ENTER( $main, $input, sub { $self->text_entered(@_); } ); Wx::Event::EVT_KEY_UP( $input, sub { $self->key_up(@_) } ); my $height = $main->{bottom}->GetSize->GetHeight; #print "Height: $height\n"; #print $self->GetSize->GetHeight, "\n"; # gives 20 on startup? $self->SplitHorizontally( $output, $input, $height - 120 ); ## TODO ??? $input->SetFocus; $self->{_history_} = Padre::DB::History->recent('commands') || []; #$self->{_history_pointer_} = @{ $self->{_history_} } - 1; $self->{_output_}->WriteText( Wx::gettext( "Experimental feature. Type '?' at the bottom of the page to get list of commands. If it does not work, blame szabgab.\n\n" ) ); return $self; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'bottom'; } sub view_label { Wx::gettext('Command'); } sub view_close { shift->main->show_command(0); } ###################################################################### # Event Handlers sub text_entered { my ( $self, $main, $event ) = @_; my $text = $self->{_input_}->GetRange( 0, $self->{_input_}->GetLastPosition ); $self->{_input_}->Clear; $self->out(">> $text\n"); my %commands = ( ':e filename' => 'Open file', ':! cmd' => 'Run command in shell', '?' => 'This help', ':history' => 'History of all the command', ':padre cmd' => 'Execute cmd withing the current Padre process', ':keycatcher Number' => 'Turn on catching keyboard for a single event (defaults to 2)', ); push @{ $self->{_history_} }, $text; Padre::DB::History->create( type => 'commands', name => $text, ); #$self->{_history_pointer_} = @{ $self->{_history_} } - 1; if ( $text eq '?' ) { foreach my $cmd ( sort keys %commands ) { $self->outn("$cmd - $commands{$cmd}"); } } elsif ( $text eq ':history' ) { foreach my $cmd ( @{ $self->{_history_} } ) { $self->outn($cmd); } } elsif ( $text =~ m/^:keycatcher(\s+(\d+))?\s*$/ ) { $self->{_keycatcher_} = $2 || 2; } elsif ( $text =~ /^:e\s+(.*?)\s*$/ ) { my $path = $1; if ( not -e $path ) { $self->outn("File ($path) does not exist"); } elsif ( not -f $path ) { $self->outn("($path) is not a file"); } else { $main->setup_editors($path); } } elsif ( $text =~ /^:!\s*(.*?)\s*$/ ) { # TODO: what about long running commands? my $cmd = $1; # TODO: when reqire and import is used it blows up with # Can't call method "capture_merged" without a package or object reference at # so we "use" it now #require Capture::Tiny; #import Capture::Tiny qw(capture_merged); use Capture::Tiny qw(capture_merged); my $out = capture_merged { system($cmd); }; if ( defined $out ) { $self->out($out); } } elsif ( $text =~ m/^:padre\s+(.*?)\s*$/ ) { my $ret; my $out = capture_merged { $ret = eval $1; }; my $err = $@; if ( defined $out and $out ne '' ) { $self->outn($out); } if ( defined $ret and $ret ne '' ) { $self->outn($ret); } if ($err) { $self->outn($err); } } else { $self->outn("Invalid command"); } return; } sub key_up { my ( $self, $input, $event ) = @_; #print $self; #print $event; my $mod = $event->GetModifiers || 0; my $code = $event->GetKeyCode; if ( $self->{_keycatcher_} ) { $self->{_keycatcher_}--; $self->outn("Mode: $mod Code: $code"); } my $text = $self->{_input_}->GetRange( 0, $self->{_input_}->GetLastPosition ); if ( not defined $text or $text eq '' ) { delete $self->{_history_pointer_}; } my $new_text; if ( $mod == 0 and $code == 9 ) { # TAB #print "Text: $text\n"; require Padre::Util::CommandLine; $new_text = Padre::Util::CommandLine::tab($text); } elsif ( $mod == 0 and $code == 317 ) { # Down return if not @{ $self->{_history_} }; if ( not defined $self->{_history_pointer_} ) { $self->{_history_pointer_} = 0; } else { $self->{_history_pointer_}++; if ( $self->{_history_pointer_} >= @{ $self->{_history_} } ) { $self->{_history_pointer_} = 0; } } $new_text = $self->{_history_}[ $self->{_history_pointer_} ]; } elsif ( $mod == 0 and $code == 315 ) { # Up return if not @{ $self->{_history_} }; if ( not defined $self->{_history_pointer_} ) { $self->{_history_pointer_} = @{ $self->{_history_} } - 1; } else { $self->{_history_pointer_}--; } if ( $self->{_history_pointer_} < 0 ) { $self->{_history_pointer_} = @{ $self->{_history_} } - 1; } $new_text = $self->{_history_}[ $self->{_history_pointer_} ]; } elsif ( $mod == 2 and $code == 85 ) { # Ctrl-u $new_text = ''; } else { return; } #print "New text: $new_text\n"; if ( defined $new_text ) { $self->{_input_}->Clear; $self->{_input_}->WriteText($new_text); } } sub out { my ( $self, $text ) = @_; $self->{_output_}->WriteText($text); } sub outn { my ( $self, $text ) = @_; $self->{_output_}->WriteText("$text\n"); } ##################################################################### # General Methods sub select { my $self = shift; my $parent = $self->GetParent; $parent->SetSelection( $parent->GetPageIndex($self) ); return; } sub clear { my $self = shift; #$self->SetBackgroundColour('#FFFFFF'); #$self->Remove( 0, $self->GetLastPosition ); #$self->Refresh; return 1; } sub relocale { # do nothing } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Diff2.pm��������������������������������������������������������������������0000644�0001750�0001750�00000012212�12237327555�014641� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Diff2; use 5.008; use strict; use warnings; use Algorithm::Diff (); use Padre::Wx (); use Padre::Wx::FBP::Diff (); use Wx::Scintilla::Constant (); use Padre::Logger qw(TRACE); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx Padre::Wx::FBP::Diff }; # Constructor sub new { my $class = shift; my $main = shift; my $self = $class->SUPER::new($main); # Bitmap tooltips and icons $self->{prev_diff}->SetBitmapLabel( Padre::Wx::Icon::find("actions/go-up") ); $self->{prev_diff}->SetToolTip( Wx::gettext('Previous difference') ); $self->{next_diff}->SetBitmapLabel( Padre::Wx::Icon::find("actions/go-down") ); $self->{next_diff}->SetToolTip( Wx::gettext('Next difference') ); # Readonly! $self->{left_editor}->SetReadOnly(1); $self->{right_editor}->SetReadOnly(1); return $self; } sub show { my $self = shift; # TODO replace these with parameter-based stuff once it is working my $left_text = <<'CODE'; 1 2 3 4 5 7 CODE my $right_text = <<'CODE'; 1 1.1 2 4 5 8 CODE # TODO this should be task-based once it is working my $diffs = $self->find_diffs( $left_text, $right_text ); # Set the left side text my $left_editor = $self->{left_editor}; $self->show_line_numbers($left_editor); $left_editor->SetReadOnly(0); $left_editor->SetText($left_text); $left_editor->SetReadOnly(1); # Set the right side text my $right_editor = $self->{right_editor}; $self->show_line_numbers($right_editor); $right_editor->SetReadOnly(0); $right_editor->SetText($right_text); $right_editor->SetReadOnly(1); my $font = Wx::Font->new( 10, Wx::TELETYPE, Wx::NORMAL, Wx::NORMAL ); $left_editor->SetFont($font); $right_editor->SetFont($font); $left_editor->StyleSetFont( Wx::Scintilla::Constant::STYLE_DEFAULT, $font ); $right_editor->StyleSetFont( Wx::Scintilla::Constant::STYLE_DEFAULT, $font ); my $deleted_color = Wx::Colour->new( 0xFF, 0xD8, 0xD8 ); my $added_color = Wx::Colour->new( 0xDD, 0xF8, 0xCC ); my $text_color = Wx::Colour->new('black'); $left_editor->StyleSetForeground( 1, $text_color ); $left_editor->StyleSetBackground( 1, $deleted_color ); $left_editor->StyleSetEOLFilled( 1, 1 ); $left_editor->StyleSetForeground( 2, $text_color ); $left_editor->StyleSetBackground( 2, $added_color ); $left_editor->StyleSetEOLFilled( 2, 1 ); $right_editor->StyleSetForeground( 1, $text_color ); $right_editor->StyleSetBackground( 1, $deleted_color ); $right_editor->StyleSetEOLFilled( 1, 1 ); $right_editor->StyleSetForeground( 2, $text_color ); $right_editor->StyleSetBackground( 2, $added_color ); $right_editor->StyleSetEOLFilled( 2, 1 ); $left_editor->IndicatorSetStyle( 0, Wx::Scintilla::Constant::INDIC_STRIKE ); $right_editor->IndicatorSetStyle( 0, Wx::Scintilla::Constant::INDIC_STRIKE ); $left_editor->SetCaretLineBackground( Wx::Colour->new('gray') ); $right_editor->SetCaretLineBackground( Wx::Colour->new('gray') ); $left_editor->SetCaretLineVisible(1); $right_editor->SetCaretLineVisible(1); for my $diff_chunk (@$diffs) { TRACE("new_chunk"); my ( $lines_added, $lines_deleted ) = ( 0, 0 ); for my $diff (@$diff_chunk) { my ( $type, $line, $text ) = @$diff; TRACE("$type, $line, $text"); if ( $type eq '-' ) { $lines_deleted++; # left side $left_editor->StartStyling( $left_editor->PositionFromLine($line), 0xFF ); $left_editor->SetStyling( length($text), 1 ); $left_editor->SetIndicatorCurrent(0); $left_editor->IndicatorFillRange( $left_editor->PositionFromLine($line), length($text) ); } else { # right side $lines_added++; my @lines = split /^/, $text; $left_editor->AnnotationSetText( $line - 1, "\n" x ( scalar @lines - 1 ) ); $right_editor->StartStyling( $right_editor->PositionFromLine($line), 0xFF ); $right_editor->SetStyling( length($text), 2 ); } } # if ( $lines_deleted > 0 && $lines_added > 0 ) { # print "changed!\n"; # } elsif ( $lines_deleted > 0 ) { # print "lines deleted\n"; # # } elsif ( $lines_added > 0 ) { # print "lines added\n"; # } } $left_editor->AnnotationSetVisible(Wx::Scintilla::Constant::ANNOTATION_STANDARD); $right_editor->AnnotationSetVisible(Wx::Scintilla::Constant::ANNOTATION_STANDARD); $self->Show; return; } sub show_line_numbers { my $self = shift; my $editor = shift; my $width = $editor->TextWidth( Wx::Scintilla::Constant::STYLE_LINENUMBER, "m" x List::Util::max( 2, length $editor->GetLineCount ) ) + 5; # 5 pixel left "margin of the margin $editor->SetMarginWidth( Padre::Constant::MARGIN_LINE, $width, ); return; } # Find differences between left and right text sub find_diffs { my ( $self, $left_text, $right_text ) = @_; my @left_seq = split /^/, $left_text; my @right_seq = split /^/, $right_text; my @diff = Algorithm::Diff::diff( \@left_seq, \@right_seq ); return \@diff; } sub on_prev_diff_click { $_[0]->main->error('on_prev_diff_click'); } sub on_next_diff_click { $_[0]->main->error('on_next_diff_click'); } sub on_close_click { $_[0]->Destroy; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/VCS.pm����������������������������������������������������������������������0000644�0001750�0001750�00000033335�12237327555�014353� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::VCS; use 5.008; use strict; use warnings; use Padre::Feature (); use Padre::Role::Task (); use Padre::Wx (); use Padre::Wx::Util (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::View (); use Padre::Wx::FBP::VCS (); use Padre::Task::VCS (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Idle Padre::Wx::Role::View Padre::Wx::FBP::VCS }; use constant { RED => Wx::Colour->new('red'), DARK_GREEN => Wx::Colour->new( 0x00, 0x90, 0x00 ), BLUE => Wx::Colour->new('blue'), GRAY => Wx::Colour->new('gray'), BLACK => Wx::Colour->new('black'), }; # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->right; my $self = $class->SUPER::new($panel); # Set the bitmap button icons $self->{add}->SetBitmapLabel( Padre::Wx::Icon::find('actions/list-add') ); $self->{delete}->SetBitmapLabel( Padre::Wx::Icon::find('actions/list-remove') ); $self->{update}->SetBitmapLabel( Padre::Wx::Icon::find('actions/stock_update-data') ); $self->{commit}->SetBitmapLabel( Padre::Wx::Icon::find('actions/document-save') ); $self->{revert}->SetBitmapLabel( Padre::Wx::Icon::find('actions/edit-undo') ); $self->{refresh}->SetBitmapLabel( Padre::Wx::Icon::find('actions/view-refresh') ); # Set up column sorting $self->{sort_column} = 0; $self->{sort_desc} = 1; # Setup columns my @column_headers = ( Wx::gettext('Status'), Wx::gettext('Path'), Wx::gettext('Author'), Wx::gettext('Revision'), ); my $index = 0; for my $column_header (@column_headers) { $self->{list}->InsertColumn( $index++, $column_header ); } # Column ascending/descending image my $images = Wx::ImageList->new( 16, 16 ); $self->{images} = { asc => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_GO_UP', 'wxART_OTHER_C', [ 16, 16 ], ), ), desc => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_GO_DOWN', 'wxART_OTHER_C', [ 16, 16 ], ), ), }; $self->{list}->AssignImageList( $images, Wx::IMAGE_LIST_SMALL ); # Tidy the list Padre::Wx::Util::tidy_list( $self->{list} ); # Add the idle-delayed event handler Wx::Event::EVT_LIST_ITEM_ACTIVATED( $self, $self->{list}, sub { $_[0]->idle_method( item_activated => $_[1]->GetIndex ); }, ); # Update the checkboxes with their corresponding values in the # configuration my $config = $main->config; $self->{show_normal}->SetValue( $config->vcs_normal_shown ); $self->{show_unversioned}->SetValue( $config->vcs_unversioned_shown ); $self->{show_ignored}->SetValue( $config->vcs_ignored_shown ); # Hide vcs command buttons at startup $self->{commit}->Hide; $self->{add}->Hide; $self->{delete}->Hide; $self->{revert}->Hide; $self->{update}->Hide; return $self; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'right'; } sub view_label { Wx::gettext('Version Control'); } sub view_close { $_[0]->main->show_vcs(0); } sub view_start { } sub view_stop { my $self = shift; # Clear out any state and tasks $self->task_reset; $self->clear; return; } ##################################################################### # Event Handlers sub on_refresh_click { $_[0]->main->vcs->refresh( $_[0]->current ); } ##################################################################### # General Methods # Clear everything... sub clear { my $self = shift; $self->{list}->DeleteAllItems; $self->_show_command_bar(0); return; } # Nothing to implement here sub relocale { return; } sub refresh { my $self = shift; my $current = shift or return; my $command = shift || Padre::Task::VCS::VCS_STATUS; my $document = $current->document; # Abort any in-flight checks $self->task_reset; # Flush old results $self->clear; # Do not display anything where there is no open documents return unless $document; # Shortcut if there is nothing in the document to do if ( $document->is_unused ) { $self->{status}->SetValue( Wx::gettext('Current file is not saved in a version control system') ); return; } # Retrieve project version control system my $vcs = $document->project->vcs; # No version control system? unless ($vcs) { $self->{status}->SetValue( Wx::gettext('Current file is not in a version control system') ); return; } # Not supported VCS check if ( $vcs ne Padre::Constant::SUBVERSION and $vcs ne Padre::Constant::GIT ) { $self->{status}->SetValue( sprintf( Wx::gettext('%s version control is not currently available'), $vcs ) ); return; } # Start a background VCS status task $self->task_request( task => 'Padre::Task::VCS', command => $command, document => $document, ); return 1; } sub task_finish { my $self = shift; my $task = shift; $self->{model} = Params::Util::_ARRAY0( $task->{model} ) or return; $self->{vcs} = $task->{vcs} or return; $self->render; } sub render { my $self = shift; # Clear if needed. Please note that this is needed # for sorting $self->clear; return unless $self->{model}; # Subversion status codes my %SVN_STATUS = ( ' ' => { name => Wx::gettext('Normal') }, 'A' => { name => Wx::gettext('Added') }, 'D' => { name => Wx::gettext('Deleted') }, 'M' => { name => Wx::gettext('Modified') }, 'C' => { name => Wx::gettext('Conflicted') }, 'I' => { name => Wx::gettext('Ignored') }, '?' => { name => Wx::gettext('Unversioned') }, '!' => { name => Wx::gettext('Missing') }, '~' => { name => Wx::gettext('Obstructed') } ); # GIT status code my %GIT_STATUS = ( ' ' => { name => Wx::gettext('Unmodified') }, 'M' => { name => Wx::gettext('Modified') }, 'A' => { name => Wx::gettext('Added') }, 'D' => { name => Wx::gettext('Deleted') }, 'R' => { name => Wx::gettext('Renamed') }, 'C' => { name => Wx::gettext('Copied') }, 'U' => { name => Wx::gettext('Updated but unmerged') }, '?' => { name => Wx::gettext('Unversioned') }, ); my %vcs_status = $self->{vcs} eq Padre::Constant::SUBVERSION ? %SVN_STATUS : %GIT_STATUS; # Add a zero count key for VCS status hash $vcs_status{$_}->{count} = 0 for keys %vcs_status; # Retrieve the state of the checkboxes my $show_normal = $self->{show_normal}->IsChecked ? 1 : 0; my $show_unversioned = $self->{show_unversioned}->IsChecked ? 1 : 0; my $show_ignored = $self->{show_ignored}->IsChecked ? 1 : 0; my $index = 0; my $list = $self->{list}; $self->_sort_model(%vcs_status); my $model = $self->{model}; my $model_index = 0; for my $rec (@$model) { my $status = $rec->{status}; my $path_status = $vcs_status{$status}; if ( defined $path_status ) { if ( $show_normal or $status ne ' ' ) { if ( $show_unversioned or $status ne '?' ) { if ( $show_ignored or $status ne 'I' ) { # Add a version control path to the list $list->InsertImageStringItem( $index, $path_status->{name}, -1 ); $list->SetItemData( $index, $model_index ); $list->SetItem( $index, 1, $rec->{path} ); my $color; if ( $status eq ' ' ) { $color = DARK_GREEN; } elsif ( $status eq 'A' or $status eq 'D' ) { $color = RED; } elsif ( $status eq 'M' ) { $color = BLUE; } elsif ( $status eq 'I' ) { $color = GRAY; } else { $color = BLACK; } $list->SetItemTextColour( $index, $color ); $list->SetItem( $index, 2, $rec->{author} ); $list->SetItem( $index++, 3, $rec->{revision} ); } } } } $path_status->{count}++; $model_index++; } # Select the first item if ( $list->GetItemCount > 0 ) { $list->SetItemState( 0, Wx::LIST_STATE_SELECTED, Wx::LIST_STATE_SELECTED ); } # Show Subversion statistics my $message = ''; for my $status ( sort keys %vcs_status ) { my $vcs_status_obj = $vcs_status{$status}; next if $vcs_status_obj->{count} == 0; if ( length($message) > 0 ) { $message .= Wx::gettext(', '); } $message .= sprintf( '%s=%d', $vcs_status_obj->{name}, $vcs_status_obj->{count} ); } $self->{status}->SetValue($message); $self->_show_command_bar( $list->GetItemCount > 0 ) if $self->main->config->vcs_enable_command_bar; # Update the list sort image $self->set_icon_image( $self->{sort_column}, $self->{sort_desc} ); # Tidy the list Padre::Wx::Util::tidy_list($list); return 1; } sub _show_command_bar { my ( $self, $shown ) = @_; $self->{commit}->Show($shown); $self->{add}->Show($shown); $self->{delete}->Show($shown); $self->{revert}->Show($shown); $self->{update}->Show($shown); $self->Layout; } sub _sort_model { my ( $self, %vcs_status ) = @_; my @model = @{ $self->{model} }; if ( $self->{sort_column} == 0 ) { # Sort by status @model = sort { $vcs_status{ $a->{status} }{name} cmp $vcs_status{ $b->{status} }{name} } @model; } elsif ( $self->{sort_column} == 1 ) { # Sort by path @model = sort { $a->{path} cmp $b->{path} } @model; } elsif ( $self->{sort_column} == 2 ) { # Sort by author @model = sort { $a->{author} cmp $b->{author} } @model; } elsif ( $self->{sort_column} == 3 ) { # Sort by revision @model = sort { $a->{revision} cmp $b->{revision} } @model; } if ( $self->{sort_desc} ) { # reverse the sorting @model = reverse @model; } $self->{model} = \@model; } # Called when a version control list column is clicked sub on_list_column_click { my ( $self, $event ) = @_; my $column = $event->GetColumn; my $prevcol = $self->{sort_column}; my $reversed = $self->{sort_desc}; $reversed = $column == $prevcol ? !$reversed : 0; $self->{sort_column} = $column; $self->{sort_desc} = $reversed; # Reset the previous column sort image $self->set_icon_image( $prevcol, -1 ); $self->render; return; } sub set_icon_image { my ( $self, $column, $image_index ) = @_; my $item = Wx::ListItem->new; $item->SetMask(Wx::LIST_MASK_IMAGE); $item->SetImage($image_index); $self->{list}->SetColumn( $column, $item ); return; } sub item_activated { my $self = shift; my $index = shift; my $data = $self->{list}->GetItemData($index); my $rec = $self->{model}->[$data]; my $filename = $rec->{fullpath}; my $main = $self->main; eval { # Try to open the file now if ( my $id = $main->editor_of_file($filename) ) { my $page = $main->notebook->GetPage($id); $page->SetFocus; } else { $main->setup_editor($filename); } }; $main->error( Wx::gettext('Error while trying to perform Padre action') ) if $@; } # Called when "Show normal" checkbox is clicked sub on_show_normal_click { my ( $self, $event ) = @_; # Save to configuration my $config = $self->main->config; $config->apply( vcs_normal_shown => $event->IsChecked ? 1 : 0 ); $config->write; # refresh list $self->render; } # Called when "Show unversioned" checkbox is clicked sub on_show_unversioned_click { my ( $self, $event ) = @_; # Save to configuration my $config = $self->main->config; $config->apply( vcs_unversioned_shown => $event->IsChecked ? 1 : 0 ); $config->write; # refresh list $self->render; } # Called when "Show ignored" checkbox is clicked sub on_show_ignored_click { my ( $self, $event ) = @_; # Save to configuration my $config = $self->main->config; $config->apply( vcs_ignored_shown => $event->IsChecked ? 1 : 0 ); $config->write; # refresh list $self->render; } # Called when "Commit" button is clicked sub on_commit_click { my $self = shift; my $main = $self->main; return unless $main->yes_no( Wx::gettext("Do you want to commit?"), Wx::gettext('Commit file/directory to repository?') ); $main->vcs->refresh( $self->current, Padre::Task::VCS::VCS_COMMIT ); } # Called when "Add" button is clicked sub on_add_click { my $self = shift; my $main = $self->main; my $list = $self->{list}; my $selected_index = $list->GetNextItem( -1, Wx::LIST_NEXT_ALL, Wx::LIST_STATE_SELECTED ); return if $selected_index == -1; my $rec = $self->{model}->[ $list->GetItemData($selected_index) ] or return; my $filename = $rec->{fullpath}; return unless $main->yes_no( sprintf( Wx::gettext("Do you want to add '%s' to your repository"), $filename ), Wx::gettext('Add file to repository?') ); $main->vcs->refresh( $self->current, Padre::Task::VCS::VCS_ADD ); } # Called when "Delete" checkbox is clicked sub on_delete_click { my $self = shift; my $main = $self->main; my $list = $self->{list}; my $selected_index = $list->GetNextItem( -1, Wx::LIST_NEXT_ALL, Wx::LIST_STATE_SELECTED ); return if $selected_index == -1; my $rec = $self->{model}->[ $list->GetItemData($selected_index) ] or return; my $filename = $rec->{fullpath}; return unless $main->yes_no( sprintf( Wx::gettext("Do you want to delete '%s' from your repository"), $filename ), Wx::gettext('Delete file from repository??') ); $main->vcs->refresh( $self->current, Padre::Task::VCS::VCS_DELETE ); } # Called when "Update" button is clicked sub on_update_click { my $self = shift; my $main = $self->main; $main->vcs->refresh( $main->current, Padre::Task::VCS::VCS_UPDATE ); } # Called when "Revert" button is clicked sub on_revert_click { my $self = shift; my $main = $self->main; my $list = $self->{list}; my $selected_index = $list->GetNextItem( -1, Wx::LIST_NEXT_ALL, Wx::LIST_STATE_SELECTED ); return if $selected_index == -1; my $rec = $self->{model}->[ $list->GetItemData($selected_index) ] or return; my $filename = $rec->{fullpath}; return unless $main->yes_no( sprintf( Wx::gettext("Do you want to revert changes to '%s'"), $filename ), Wx::gettext('Revert changes?') ); $main->vcs->refresh( $self->current, Padre::Task::VCS::VCS_REVERT ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Role/�����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014244� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Role/Timer.pm���������������������������������������������������������������0000644�0001750�0001750�00000007401�12237327555�015674� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Role::Timer; =pod =head1 NAME Padre::Wx::Role::Timer - Convenience methods for working with Wx timers =head1 DESCRIPTION This role implements a set of methods for letting L<Wx> objects in Padre implement dwell events on elements that do not otherwise natively support them. In this initial simplified implementation, we support only one common dwell event for each combination of object class and dwell method. If multiple instances of a class are used, then the timer id will collide across multiple timers and unexpected behaviour may occur. =head1 METHODS =cut use 5.008; use strict; use warnings; use Padre::Wx (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; # Track timer Wx id values for each dwell event my %ID = (); ###################################################################### # Dwell Interface Methods =pod =head2 dwell_start # Half second dwell timer on a text input $wx_object->dwell_start( on_text => 500 ); The C<dwell_start> method starts (or restarts) the dwell timer. It has two required parameters of the method to call, and the amount of time (in thousands of a second) that the event should be delayed. Note that when the dwell-delayed event is actually called, it will NOT be passed the original Wx event object. The method will be called directly and with no parameters. Please note that calling this method will result in the creating of a L<Wx::Timer> object in an object HASH slot that matches the name of the method. As a result, if you wish to create a dwell to a method "foo" you may never make use of the C<$wx_object-E<gt>{foo}> slot on that object. =cut sub dwell_start { my $self = shift; my $method = shift; my $msec = shift; # If this is the first time the dwell event is being called # create the timer object to support the dwell. unless ( $self->{$method} ) { # Fetch a usable id for the timer my $name = ref($self) . '::' . $method; my $id = ( $ID{$name} or $ID{$name} = Wx::NewId() ); # Create the reusable timer object $self->{$method} = Wx::Timer->new( $self, $id ); Wx::Event::EVT_TIMER( $self, $id, sub { $self->$method() if $self->can($method); }, ); } # Start (or restart) the dwell timer. $self->{$method}->Start( $msec, Wx::TIMER_ONE_SHOT ); } =pod =head2 dwell_stop $wx_object->dwell_stop( 'on_text' ); The C<dwell_stop> method prevents a single named dwell event from firing, if there is a timer underway. If there is no dwell for the named event the method will silently succeed. =cut sub dwell_stop { my $self = shift; my $method = shift; if ( $self->{$method} ) { $self->{$method}->Stop; } return 1; } ###################################################################### # Poll Interface Methods sub poll_start { my $self = shift; my $method = shift; my $msec = shift; # If this is the first time the dwell event is being called # create the timer object to support the alarm. unless ( $self->{$method} ) { # Fetch a usable id for the timer my $name = ref($self) . '::' . $method; my $id = ( $ID{$name} or $ID{$name} = Wx::NewId() ); # Create the reusable timer object $self->{$method} = Wx::Timer->new( $self, $id ); Wx::Event::EVT_TIMER( $self, $id, sub { $self->$method(); }, ); } # Start (or restart) the polling timer. $self->{$method}->Start( $msec, 0 ); } sub poll_stop { my $self = shift; my $method = shift; if ( $self->{$method} ) { $self->{$method}->Stop; } return 1; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Role/Main.pm����������������������������������������������������������������0000644�0001750�0001750�00000006465�12237327555�015511� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Role::Main; =pod =head1 NAME Padre::Wx::Role::Main - Convenience methods for children of the main window =head1 DESCRIPTION This role implements the fairly common method pattern for Wx elements that are children of L<Padre::Wx::Main>. It provides accessors for easy access to the most commonly needed elements, and shortcut integration with the L<Padre::Current> context system. =head1 METHODS =cut use 5.008; use strict; use warnings; use Params::Util (); use Padre::Current (); our $VERSION = '1.00'; =pod =head2 C<ide> my $ide = $object->ide; Get the L<Padre> IDE instance that this object is a child of. =cut sub ide { shift->main->ide; } =pod =head2 C<config> my $config = $object->config; Get the L<Padre::Config> for the current user. Provided mainly as a convenience because it is needed so often. Please note that this method does NOT integrate with the L<Padre::Current> context system. Any project-specific configuration of overrides of default behaviour will not be present in this configuration object. For a project-aware configuration, use the following instead. $self->current->config; =cut sub config { shift->main->config; } =pod =head2 C<main> my $main = $object->main; Get the L<Padre::Wx::Main> main window that this object is a child of. =cut sub main { my $main = Wx::GetTopLevelParent(shift); return $main if Params::Util::_INSTANCE( $main, 'Padre::Wx::Main' ); return $main->GetParent; } =pod =head2 C<aui> my $aui = $object->aui; Convenient access to the Wx Advanced User Interface (AUI) Manager object. =cut sub aui { shift->main->aui; } =pod =head2 current my $current = $object->current; Get a new C<Padre::Current> context object, for access to other parts of the current context. =cut sub current { Padre::Current->new( main => shift->main ); } =pod =head2 lock_update my $lock = $object->lock_update; The L<Padre::Locker> API in Padre provides a solid and extensible system for locking of IDE resources when large-scale change of state is to occur. Unfortunately, there are some cases in which this mechanism can cause problems. Window update locking using this API is done on the entire main window. The resulting C<Freeze>/C<Thaw> calls are recursive on Windows, and as C<Thaw> calls invalidate the painted state of widgets, this results in a global redraw and on the non-double-bufferred Windows platform this causes flickering. When a piece of code is making very targetted changes to just the graphical state of the application and will only need an UPDATE lock (i.e. does not need refresh or database locks) the alternative C<lock_update> method provides a convenience for creating a L<Wx::WindowUpdateLocker> independant of the main locking API. By using a localised lock and avoiding a global update lock, this should remove global flickering on these changes, and limit flickering to just the element being update, which should be much less noticable. =cut sub lock_update { Wx::WindowUpdateLocker->new( $_[0] ); } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Role/Dialog.pm��������������������������������������������������������������0000644�0001750�0001750�00000010262�12237327555�016012� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Role::Dialog; =pod =head1 NAME Padre::Wx::Role::Dialog - Allow dialogs or frames to host simple common dialogs =head1 SYNOPSIS package MyDialog; use Padre::Wx (); use Padre::Wx::Role::Dialog (); @ISA = qw{ Padre::Wx::Role::Dialog Wx::Dialog }; # ... sub foo { my $self = shift; # Say something $self->message("Hello World!"); return 1; } =head1 DESCRIPTION In a large Wx application with multiple dialogs or windows, many different parts of the application may want to post messages or prompt the user. The C<Padre::Wx::Role::Dialog> role allows dialog or window classes to "host" these messages. Providing these as a role means that each part of your application can post messages and have the positioning of the dialogs be made appropriate for each dialog. =head1 METHODS =cut use 5.008005; use strict; use warnings; use Padre::Wx (); our $VERSION = '1.00'; =pod =head2 C<message> $parent->message( $text, $title ); Open a dialog box with C<$text> as the main text and C<$title> (title defaults to C<Message>). There's only one OK button. No return value. =cut sub message { my $self = shift; my $message = shift; my $title = shift || Wx::gettext('Message'); Wx::MessageBox( $message, $title, Wx::OK | Wx::CENTRE, $self, ); return; } =pod =head3 C<error> $parent->error( $text ); Open an error dialog box with C<$text> as main text. There's only one OK button. No return value. =cut sub error { my $self = shift; my $message = shift || Wx::gettext('Unknown error from ') . caller; Wx::MessageBox( $message, Wx::gettext('Error'), Wx::OK | Wx::CENTRE | Wx::ICON_HAND, $self, ); return; } =pod =head3 C<password> my $password = $parent->password( $message, $title ); Generate a standard L<Wx> password dialog, using the internal L<Wx::PasswordEntryDialog> class. =cut sub password { my $self = shift; my $dialog = Wx::PasswordEntryDialog->new( $self, @_ ); my $result = undef; $dialog->CenterOnParent; unless ( $dialog->ShowModal == Wx::ID_CANCEL ) { $result = $dialog->GetValue; } $dialog->Destroy; return $result; } =pod =head3 C<yes_no> my $boolean = $parent->yes_no( $message, $title, ); Generates a standard L<Wx> Yes/No dialog. =cut sub yes_no { my $self = shift; my $message = shift; my $title = shift || Wx::gettext('Message'); my $dialog = Wx::MessageDialog->new( $self, $message, $title, Wx::YES_NO | Wx::YES_DEFAULT | Wx::ICON_QUESTION, ); $dialog->CenterOnParent; my $result = ( $dialog->ShowModal == Wx::ID_YES ) ? 1 : 0; $dialog->Destroy; return $result; } =pod =head3 C<single_choice> my $choice = $parent->single_choice( $message, $title, [ 'Option One', 'Option Two', 'Option Three', ], ); Generates a standard L<Wx> single-choice dialog, using the standard internal L<Wx::SingleChoiceDialog> class. Returns the selected string, or C<undef> if the user selects C<Cancel>. =cut sub single_choice { my $self = shift; my $dialog = Wx::SingleChoiceDialog->new( $self, @_ ); my $result = undef; $dialog->CenterOnParent; unless ( $dialog->ShowModal == Wx::ID_CANCEL ) { $result = $_[2]->[ $dialog->GetSelection ]; } $dialog->Destroy; return $result; } =pod =head3 C<multi_choice> my @choices = $parent->multi_choice( $message, $title, [ 'Option One', 'Option Two', 'Option Three', ], ); Generates a standard L<Wx> multi-choice dialog, using the internal L<Wx::MultiChoiceDialog> class. =cut sub multi_choice { my $self = shift; my $dialog = Wx::MultiChoiceDialog->new( $self, @_ ); my @result = (); $dialog->CenterOnParent; unless ( $dialog->ShowModal == Wx::ID_CANCEL ) { @result = map { $_[2]->[$_] } $dialog->GetSelections; } $dialog->Destroy; return @result; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Role/Context.pm�������������������������������������������������������������0000644�0001750�0001750�00000013015�12237327555�016236� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Role::Context; =pod =head1 NAME Padre::Wx::Role::Context - Role for Wx objects that implement context menus =head1 DESCRIPTION =head1 METHODS =cut use 5.008; use strict; use warnings; use Padre::Wx (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; ###################################################################### # Main Methods =pod =head2 context_bind sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->context_bind('my_menu'); return $self; } sub my_menu { # Fill the menu here } The C<context_bind> method binds an context menu event to default menu creation and popup logic, and specifies the method that should be called to fill the context menu with the menu entries. It takes a single optional parameter of the method to be called to fill the menu. If no method is provided then the method C<context_menu> will be bound to the context menu event by default. =cut sub context_bind { my $self = shift; my $method = shift || 'context_menu'; unless ( defined $method and $self->can($method) ) { die "Missing or invalid content menu method '$method'"; } Wx::Event::EVT_CONTEXT( $self, sub { shift->context_popup($method); }, ); } =pod =head2 context_popup $self->context_popup('context_menu'); The C<context_popup> menu triggers the immediate display of the popup menu for the object. It takes a compulsory single parameter, which should be the method to be used to fill the menu with entries. =cut sub context_popup { my $self = shift; my $method = shift; # Create the empty menu my $menu = Wx::Menu->new; # Fill the menu $self->$method($menu); # Show the menu at the current cursor position $self->PopupMenu( $menu => Wx::DefaultPosition ); } =pod =head2 context_menu The C<context_menu> method is the default method called to fill a context menu with menu entries. It should be overloaded in any class that uses the context menu role. A minimalist default implementation is provided which will show a single meny entry to launch the C<About Padre> dialog. =cut sub context_menu { my $self = shift; my $menu = shift; $self->context_append_action( $menu => 'help.about' ); } ###################################################################### # Menu Construction Methods =pod =head2 context_append_function $self->context_append_function( $menu, Wx::gettext('Do Something'), sub { # Do something }, ); The C<context_append_function> method adds a menu entry bound to an arbitrary function call. The function will be passed the parent object (C<$self> in the above example) and the event object. =cut sub context_append_function { my ( $self, $menu, $label, $function ) = @_; Wx::Event::EVT_MENU( $self, $menu->Append( -1, $label ), $function, ); } =pod =head2 context_append_method $self->context_append_method $menu, Wx::gettext('Do Something'), 'my_method', ); The C<context_append_method> method adds a mene entry bound to a named method on the object. The method will be passed the event object. =cut sub context_append_method { my ( $self, $menu, $label, $method ) = @_; Wx::Event::EVT_MENU( $self, $menu->Append( -1, $label ), sub { shift->$method(@_); }, ); } =pod =head2 context_append_action $self->context_append_action( $menu, 'help.about', ); The C<context_append_action> method adds a menu entry bound to execute a named action from L<Padre::Wx::ActionLibrary>. The menu entry created as a result of this call is functionally identical to a normal menu entry from the menu bar on the main window. =cut sub context_append_action { my $self = shift; my $menu = shift; my $name = shift; my $action = $self->ide->actions->{$name} or return 0; # Create the menu item object my $method = $action->menu_method || 'Append'; my $item = $menu->$method( $action->id, $action->label_menu, ); # Assign help if applicable my $comment = $action->comment; $item->SetHelp($comment) if $comment; # Unlike the regular stuff, bind actions to the main window Wx::Event::EVT_MENU( $self->main, $item, $action->menu_event, ); } =pod =head2 context_append_options $self->context_append_options( $menu, 'main_functions_panel', ); The C<context_append_options> method adds a group of several radio menu entries that allow changing a configuration preference immediately. The current value of the configuration preference will be checked in the radio group for information purposes. =cut sub context_append_options { my $self = shift; my $menu = shift; my $name = shift; my $config = $self->config; my $old = $config->$name(); # Get the set of (sorted) options my $options = $config->meta($name)->options; my @list = sort { $a->[1] cmp $b->[1] } map { [ $_, Wx::gettext( $options->{$_} ) ] } keys %$options; # Add the menu items foreach my $option (@list) { my $radio = $menu->AppendRadioItem( -1, $option->[1] ); my $new = $option->[0]; if ( $new eq $old ) { $radio->Check(1); } Wx::Event::EVT_MENU( $self, $radio, sub { shift->config->apply( $name => $new ); }, ); } } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Role/Config.pm��������������������������������������������������������������0000644�0001750�0001750�00000024425�12237327555�016026� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Role::Config; =pod =head1 NAME Padre::Wx::Role::Config - Role for Wx forms that control preference data =head1 DESCRIPTION B<Padre::Wx::Role::Config> is a role for dialogs and form panels that enables the load and saving of configuration data in a standard manner. It was originally created to power the main Preferences dialog, but can be reused by any dialog of panel that wants to load preference entries and allow them to be changed. To use this role, create a dialog or panel which has public getter methods for the preference form elements. The public getter method must exactly match the name of the preference method you wish to load. For example, the following demonstrates a text box that can load and save the identify of the Padre user. # In your constructor, create the text control $self->{identity_name} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); # Later in the module, create a public getter for the control sub identity_name { $_[0]->{identity_name}; } Once your public form controls have been set up, the preference information is loaded from configuration by the C<config_load> method and then the C<config_save> method is used to apply the changes to the active Padre instance and save the changes to configuration. =head1 METHODS =cut use 5.008; use strict; use warnings; use Params::Util (); use Padre::Constant (); use Padre::Wx (); our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; =pod =head2 config_load $dialog->config_load( Padre::Current->config, qw{ identity_name identity_nick identity_email } ); The C<config_load> method loads preference information from configuration into the public form controls for the current object. The first parameter to C<config_load> should be a valid L<Padre::Config> object to load from (usually the main or current configuration object). After the configuration object you should provide a list of preferences names that should be loaded. Returns the number of configuration form controls that were successfully loaded, which should match the number of names you passed in. =cut sub config_load { my $self = shift; my $config = shift; my $loaded = 0; foreach my $name (@_) { my $meta = $config->meta($name); my $value = $config->$name(); $self->config_set( $meta => $value ) or next; $loaded++; } return $loaded; } =pod =head2 config_save $dialog->config_save( Padre::Current->config, qw{ identity_name identity_nick identity_email } ); The C<config_save> method saves preference information from public form controls into configuration, applying the changes to the current Padre instance as it does so. The first parameter to C<config_load> should be a valid L<Padre::Config> object to load from (usually the main or current configuration object). After the configuration object you should provide a list of preferences names that should be loaded. The changes are applied inside of a complete L<Padre::Lock> of all possible subsystems and GUI lock modes to ensure that changes apply as a single fast visual change, and will not cause weird flickering of the user interface. Returns the number of changes that were made to configuration, which may be zero if all config fields match the current values. No lock will be taken in the case where the number of config changes to make is zero. =cut sub config_save { my $self = shift; my $config = shift; my $current = $self->current; # Find the changes we need to save, if any my $diff = $self->config_diff( $config, @_ ) or return 0; # Lock most of Padre so any apply handlers run quickly my $lock = $self->main->lock(qw{ UPDATE REFRESH AUI CONFIG DB }); # Apply the changes to the configuration foreach my $name ( sort keys %$diff ) { $config->apply( $name, $diff->{$name}, $current ); } return scalar keys %$diff; } =pod =head2 config_diff $dialog->config_diff( Padre::Current->config, qw{ identity_name identity_nick identity_email } ); The C<config_diff> method calculates changes to preference information from the public form controls, but does not save or apply them. The first parameter to C<config_load> should be a valid L<Padre::Config> object to load from (usually the main or current configuration object). After the configuration object you should provide a list of preferences names that should be loaded. Since the C<config_diff> method is used by C<config_save> to find the list of changes to make, overloading C<config_diff> with custom functionality will also result in this custom behaviour being used when saving the changes for real. Returns a reference to a C<HASH> containing a set of name/value pairs of the new values to be applied to configuration, or C<undef> if there are no changes to configuration. =cut sub config_diff { my $self = shift; my $config = shift; my %diff = (); foreach my $name (@_) { my $meta = $config->meta($name); # Can we get a value from the control my $new = $self->config_get($meta); next unless defined $new; # Change the setting if different unless ( $new eq $config->$name() ) { $diff{$name} = $new; } } return undef unless %diff; return \%diff; } =pod =head2 config_get $dialog->config_get( Padre::Current->config->meta('identity_name') ); The C<config_get> method fetches a single configuration value form a the public dialog control. It takes a single parameter, which should be the L<Padre::Config::Setting> metadata object for the configuration preference to fetch. Successfully getting a value is by no means certain, there can be a number of different reasons why no value may be returned. These include: =over =item The lack of a public getter method for the form control =item The form control being disabled (i.e. not $control->IsEnabled) =item The form control returning C<undef> (which native Wx controls won't) =item The form control being incompatible with the config data type =back Returns a simple defined scalar value suitable for being passed L<Padre::Config/set> on success, or C<undef> if no value can be found. =cut sub config_get { my $self = shift; my $meta = shift; my $name = $meta->name; # Ignore config elements we don't have unless ( $self->can($name) ) { return undef; } # Ignore controls that are disabled my $ctrl = $self->$name(); unless ( $ctrl->IsEnabled ) { return undef; } # Extract the value from the control my $value = undef; if ( $ctrl->isa('Wx::CheckBox') ) { $value = $ctrl->GetValue ? 1 : 0; } elsif ( $ctrl->isa('Wx::TextCtrl') ) { $value = $ctrl->GetValue; } elsif ( $ctrl->isa('Wx::SpinCtrl') ) { $value = $ctrl->GetValue; } elsif ( $ctrl->isa('Wx::FilePickerCtrl') ) { $value = $ctrl->GetPath; } elsif ( $ctrl->isa('Wx::DirPickerCtrl') ) { $value = $ctrl->GetPath; } elsif ( $ctrl->isa('Wx::ColourPickerCtrl') ) { $value = $ctrl->GetColour->GetAsString(Wx::C2S_HTML_SYNTAX); $value =~ s/^#// if defined $value; } elsif ( $ctrl->isa('Wx::FontPickerCtrl') ) { $value = $ctrl->GetSelectedFont->GetNativeFontInfoUserDesc; } elsif ( $ctrl->isa('Wx::Choice') ) { my $options = $meta->options; if ($options) { my @k = sort keys %$options; my $i = $ctrl->GetSelection; $value = $k[$i]; } } unless ( defined $value ) { return undef; } # For various strictly formatted configuration values, # attempt to determine a clean version. my $type = $meta->type; if ( $type == Padre::Constant::POSINT ) { $value =~ s/[^0-9]//g; $value =~ s/^0+//; if ( Params::Util::_POSINT($value) ) { return $value; } # Fall back to the setting default return $meta->default; } else { # Implement cleaning for many more data types } return $value; } =pod =head2 config_set $dialog->config_set( Padre::Current->config->meta('identity_name'), 'My Name', ); The C<config_set> method applies a simple scalar value to a form control. It takes two parameters, a L<Padre::Config::Setting> metadata object for the configuration preference to load, and a value to load into the form control. Returns true if the value was loaded into the form control, false if the form control was unknown or not compatible with the preference, or C<undef> if the form control does not exist at all in the dialog. =cut sub config_set { my $self = shift; my $meta = shift; my $value = shift; my $name = $meta->name; # Ignore config elements we don't have unless ( $self->can($name) ) { return undef; } # Apply to the relevant element my $ctrl = $self->$name(); if ( $ctrl->can('config_set') ) { # Allow specialised widgets to load their own setting $ctrl->config_set( $meta, $value ); } elsif ( $ctrl->isa('Wx::CheckBox') ) { $ctrl->SetValue($value); } elsif ( $ctrl->isa('Wx::TextCtrl') ) { $ctrl->SetValue($value); } elsif ( $ctrl->isa('Wx::SpinCtrl') ) { $ctrl->SetValue($value); } elsif ( $ctrl->isa('Wx::FilePickerCtrl') ) { $ctrl->SetPath($value); } elsif ( $ctrl->isa('Wx::DirPickerCtrl') ) { $ctrl->SetPath($value); } elsif ( $ctrl->isa('Wx::ColourPickerCtrl') ) { $ctrl->SetColour( Padre::Wx::color($value) ); } elsif ( $ctrl->isa('Wx::FontPickerCtrl') ) { my $font = Padre::Wx::native_font($value); return 0 unless $font->IsOk; $ctrl->SetSelectedFont($font); } elsif ( $ctrl->isa('Wx::Choice') ) { my $options = $meta->options; if ($options) { $ctrl->Clear; # NOTE: This assumes that the list will not be # sorted in Wx via a style flag and that the # order of the fields should be that of the key # and not of the translated label. # Doing sort in Wx will probably break this. foreach my $option ( sort keys %$options ) { my $label = $options->{$option}; $ctrl->Append( Wx::gettext($label), $option, ); next unless $option eq $value; $ctrl->SetSelection( $ctrl->GetCount - 1 ); } } } else { return 0; } return 1; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Role/View.pm����������������������������������������������������������������0000644�0001750�0001750�00000004734�12237327555�015534� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Role::View; use 5.008005; use strict; use warnings; our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; 1; __END__ =pod =head1 NAME Padre::Wx::Role::View - A role for GUI tools that live in panels =head1 SYNOPSIS # From the Padre::Wx::Role::View section of Padre::Wx::FunctionList sub view_panel { return 'right'; } sub view_label { Wx::gettext('Functions'); } sub view_close { shift->{main}->show_functions(0); } =head1 DESCRIPTION This is a role that should be inherited from by GUI components that live in the left, right or bottom notebook panels of Padre. Anything that inherits from this role is expected to implement a number of methods that allow it to play nicely with the Padre object model. =head1 METHODS To help compartmentalise methods that are provided by different roles, a "view_" prefix is used across methods expected by the role. =head2 view_panel This method describes which panel the tool lives in. Returns the string 'right', 'left', or 'bottom'. =head2 view_label The method returns the string that the notebook label should be filled with. This should be internationalised properly. This method is called once when the object is constructed, and again if the user triggers a C<relocale> cascade to change their interface language. =head2 view_close This method is called on the object by the event handler for the "X" control on the notebook label, if it has one. The method should generally initiate whatever is needed to close the tool via the highest level API. Note that while we aren't calling the equivalent menu handler directly, we are calling the high-level method on the main window that the menu itself calls. =head1 OPTIONAL =head2 view_icon This method should return a valid Wx bitmap to be used as the icon for a notebook page (displayed alongside C<view_label>). =head2 view_start Called immediately after the view has been displayed, to allow the view to kick off any timers or do additional post-creation setup. =head2 view_stop Called immediately before the view is hidden, to allow the view to cancel any timers, cancel tasks or do pre-destruction teardown. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ������������������������������������Padre-1.00/lib/Padre/Wx/Role/Idle.pm����������������������������������������������������������������0000644�0001750�0001750�00000007426�12237327555�015500� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Role::Idle; =pod =head1 NAME Padre::Wx::Role::Idle - Role for delaying method calls until idle time =head1 SYNOPSIS # Manually schedule some work on idle $self->idle_method( my_method => 'param' ); # Delay work until idle time in response to an event Wx::Event::EVT_TREE_ITEM_ACTIVATED( $self, $self, sub { shift->idle_method( my_method => 'param' ); }, ); # The handler for the event sub my_method { my $self = shift; my $param = shift; # Functionality is implemented here } =head1 DESCRIPTION This role provides a standard mechanism for delaying method call dispatch until idle time. The role maintains a dispatch queue for each object, binds or unbinds an C<EVT_IDLE> handler depending on whether there is anything in the queue, and dispatches one method from the queue each time idle is fired (to ensure that any large series of tasks will be spread out over time instead of all blocking at once on the first idle event). =head1 METHODS =cut use 5.008; use strict; use warnings; use Carp (); use Padre::Wx (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; =pod =head2 idle_method $self->idle_method( method_name => @params ); The C<idle_method> method is used to schedule a method for execution at idle time. The first parameter to the call should be the name of the method to be called on this object. The method will be checked before it is added to the queue to ensure that it exists. Any remaining parameters to C<idle_method> will be passed through as parameters to the specified method call. Please note that L<Wx::Event> objects B<must not be used> as paramters to this method. While the Perl level object will survive until idle time, the underlying Wx event structure for the event will no longer exist, and any attempt to call a method on the event object will segfault Perl. You should unpack any information you need from the L<Wx::Event> before making the call to C<idle_method> and pass it through as data instead. =cut sub idle_method { my $self = shift; if ( $self->{idle} ) { # Add to the existing idle queue push @{ $self->{idle} }, [@_]; } else { # Create the idle queue and bind the event $self->{idle} = [ [@_] ]; $self->Connect( -1, -1, Wx::EVT_IDLE, sub { $_[0]->idle_handler( $_[1] ); }, ); } } =pod =head2 idle_handler The C<idle_handler> method is called internally to dispatch the next method in the idle queue. It will dispatch one and only one call on the queue, returning true if there are any remaining calls on the queue of false if the queue is empty. While you generally should not need to know about this method, there are two ways to use this method to influence the behaviour of the role. Firstly, the method call be called directly to trigger the immediate dispatch of an idle method without waiting for the C<EVT_IDLE> event to fire. Secondly, you could overload the C<idle_handler> method to add extra functionality that should be run any time a delayed call of any other type is made. =cut sub idle_handler { my $self = shift; my $idle = $self->{idle}; # Process one item on the idle queue per idle call if ($idle) { my $call = shift @$idle; # Remove the idle handler if there are no other calls unless (@$idle) { $self->Disconnect( -1, -1, Wx::EVT_IDLE ); delete $self->{idle}; } # Dispatch the method call my $method = shift @$call; $self->$method(@$call); } return !!$self->{idle}; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Role/Conduit.pm�������������������������������������������������������������0000644�0001750�0001750�00000007414�12237327555�016225� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Role::Conduit; =pod =head1 NAME Padre::Wx::Role::Conduit - Role to allow an object to receive Wx events =head1 SYNOPSIS package My::MainFrame; use strict; use Padre::Wx (); use Padre::Wx::Role::Conduit (); use My::ChildHandler (); our @ISA = qw{ Padre::Wx::Role::Conduit Wx::Frame }; sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Register to receive events $self->conduit_init( My::ChildHander->singleton ); return $self; } =head1 DESCRIPTION This role provides the functionality needed to receive L<Wx::PlThreadEvent> objects from child threads. You should only use this role once and once only in the parent process, and then allow that single event conduit to pass the events on to the other parts of your program, or to some dispatcher object that will do so. It is implemented as a role so that the functionality can be used across the main process and various testing classes (and will be easier to turn into a CPAN spinoff later). =head1 PARENT METHODS =cut use 5.008; use strict; use warnings; use Storable (); use Wx (); our $VERSION = '1.00'; our $SIGNAL : shared; BEGIN { $SIGNAL = Wx::NewEventType(); } my $CONDUIT = undef; my $HANDLER = undef; =pod =head2 conduit_init $window->conduit_init($handler); The C<conduit_init> method is called on the parent receiving object once it has been created. It takes the handler that deserialised messages should be passed to once they have been extracted from the incoming L<Wx::PlThreadEvent> and deserialised into a message structure. =cut sub conduit_init { $CONDUIT = $_[0]; $HANDLER = $_[1]; Wx::Event::EVT_COMMAND( $CONDUIT, -1, $SIGNAL, \&on_signal ); return 1; } =pod =head2 handler $window->handler($handler); The C<handler> accessor is a convenience method that allows you to change the message handler after the conduit has been initialised. =cut sub handler { $HANDLER = $_[1]; } =pod =head2 on_signal $window->on_signal( $pl_thread_event ); The C<on_signal> method is called by the L<Wx> system on the parent object when a L<Wx::PlThreadEvent> arrives from a child thread. The default implementation will extra the packaged data for the event, deserialise it, and then pass off the C<on_signal> method of the handler. You might overload this method if you need to something exotic with the event handling, but this is highly unlikely and this documentation is provided only for completeness. =cut sub on_signal { if ($HANDLER) { # Deserialise the message from the Wx event so that our handler does not # need to be aware we are implemented via Wx. my $frozen = $_[1]->GetData; local $@; my $message = eval { Storable::thaw($frozen) }; return if $@; $HANDLER->on_signal($message); } return 1; } =pod =head2 signal Padre::Wx::Role::Conduit->signal( Storable::freeze( [ 'My message' ] ) ); The static C<signal> method is called in child threads to send a message to the parent window. The message can be any legal Perl structure that has been serialised by the L<Storable> module. =cut sub signal { # We use Wx::PostEvent rather than AddPendingEvent because this # function passes the data through a thread-safe stash. # Using AddPendingEvent directly will cause occasional segfaults. if ($CONDUIT) { Wx::PostEvent( $CONDUIT, Wx::PlThreadEvent->new( -1, $SIGNAL, Storable::freeze( $_[1] ), ), ); } return 1; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Bottom.pm�������������������������������������������������������������������0000644�0001750�0001750�00000007464�12237327555�015170� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Bottom; # The bottom notebook for tool views use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::AuiNotebook }; sub new { my $class = shift; my $main = shift; my $aui = $main->aui; my $unlock = $main->config->main_lockinterface ? 0 : 1; # Create the basic object my $self = $class->SUPER::new( $main, -1, Wx::DefaultPosition, Wx::Size->new( 350, 300 ), # Used when floating Wx::AUI_NB_SCROLL_BUTTONS | Wx::AUI_NB_TOP | Wx::BORDER_NONE | Wx::AUI_NB_CLOSE_ON_ACTIVE_TAB ); # Add ourself to the window manager $aui->AddPane( $self, Padre::Wx->aui_pane_info( Name => 'bottom', Resizable => 1, PaneBorder => 0, CloseButton => 0, DestroyOnClose => 0, MaximizeButton => 1, Position => 2, Layer => 4, CaptionVisible => $unlock, Floatable => $unlock, Dockable => $unlock, Movable => $unlock, BestSize => [ -1, 180 ], )->Bottom->Hide, ); $aui->caption( bottom => Wx::gettext('Output View'), ); return $self; } ##################################################################### # Page Management sub show { my $self = shift; my $page = shift; # Are we currently showing the page my $position = $self->GetPageIndex($page); if ( $position >= 0 ) { # Already showing, switch to it $self->SetSelection($position); return; } # Add the page $self->AddPage( $page, $page->view_label, 1, ); if ( $page->can('view_icon') ) { my $pos = $self->GetPageIndex($page); $self->SetPageBitmap( $pos, $page->view_icon ); } $page->Show; $self->Show; $self->aui->GetPane($self)->Show; Wx::Event::EVT_AUINOTEBOOK_PAGE_CLOSE( $self, $self, sub { shift->on_close(@_); } ); if ( $page->can('view_start') ) { $page->view_start; } return; } sub hide { my $self = shift; my $page = shift; my $position = $self->GetPageIndex($page); if ( $position < 0 ) { # Not showing this return 1; } # Shut down the page if it is running something if ( $page->can('view_stop') ) { $page->view_stop; } # Remove the page $page->Hide; $self->RemovePage($position); # Is this the last page? if ( $self->GetPageCount == 0 ) { $self->Hide; $self->aui->GetPane($self)->Hide; } return; } # Allows for content-adaptive labels sub refresh { my $self = shift; foreach my $i ( 0 .. $self->GetPageCount - 1 ) { $self->SetPageText( $i, $self->GetPage($i)->view_label ); } return; } sub relocale { my $self = shift; foreach my $i ( 0 .. $self->GetPageCount - 1 ) { my $tool = $self->GetPage($i); $self->SetPageText( $i, $tool->view_label ); if ( $tool->can('relocale') ) { $tool->relocale; } else { my $class = ref $tool; warn "'$class' cannot do relocale"; } } return; } # It is unscalable for the view notebooks to have to know what they might contain # and then re-implement the show/hide logic (probably wrong). # Instead, tunnel the close action to the tool and let the tool decide how to go # about closing itself (which will usually be by delegating up to the main window). sub on_close { my $self = shift; my $event = shift; # Tunnel the request through to the tool if possible. my $position = $event->GetSelection; my $tool = $self->GetPage($position); unless ( $tool->can('view_close') ) { my $class = ref $tool; return $self->hide($tool) if $class eq 'Wx::ListCtrl'; warn "Panel tool $class does not define 'view_close' method"; $self->hide($tool); return; } $tool->view_close; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Editor.pm�������������������������������������������������������������������0000644�0001750�0001750�00000165077�12237327555�015157� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Editor; =pod =head1 NAME Padre::Wx::Editor - Padre document editor object =head1 DESCRIPTION B<Padre::Wx::Editor> implements the Scintilla-based document editor for Padre. It implements the majority of functionality relating to visualisation and navigation of documents. =head1 METHODS =cut use 5.008; use strict; use warnings; use Time::HiRes (); use Params::Util (); use Wx::Scintilla 0.34 (); use Padre::Constant (); use Padre::Config (); use Padre::Feature (); use Padre::Util (); use Padre::DB (); use Padre::Breakpoints (); use Padre::Wx (); use Padre::Wx::FileDropTarget (); use Padre::Wx::Role::Main (); use Padre::Wx::Role::Timer (); use Padre::Logger; our $VERSION = '1.00'; our $COMPATIBLE = '0.91'; our @ISA = ( 'Padre::Wx::Role::Main', 'Padre::Wx::Role::Timer', 'Wx::Scintilla::TextCtrl', ); use constant { # Convenience colour constants # NOTE: DO NOT USE "orange" string since it is actually red on win32 ORANGE => Wx::Colour->new( 255, 165, 0 ), RED => Wx::Colour->new("red"), GREEN => Wx::Colour->new("green"), BLUE => Wx::Colour->new("blue"), YELLOW => Wx::Colour->new("yellow"), DARK_GREEN => Wx::Colour->new( 0x00, 0x90, 0x00 ), LIGHT_RED => Wx::Colour->new( 0xFF, 0xA0, 0xB4 ), LIGHT_BLUE => Wx::Colour->new( 0xA0, 0xC8, 0xFF ), GRAY => Wx::Colour->new('gray'), }; # End-Of-Line modes: # MAC is actually Mac classic. # MAC OS X and later uses UNIX EOLs # # Please note that WIN32 is the API. DO NOT change it to that :) # # Initialize variables after loading either Wx::Scintilla or Wx::STC my %WXEOL = ( WIN => Wx::Scintilla::SC_EOL_CRLF, MAC => Wx::Scintilla::SC_EOL_CR, UNIX => Wx::Scintilla::SC_EOL_LF, ); ###################################################################### # Constructor and Accessors sub new { my $class = shift; my $parent = shift; # NOTE: This hack is only here because the Preferences dialog uses # an editor object for their style preview thingy. my $main = $parent; while ( not $main->isa('Padre::Wx::Main') ) { $main = $main->GetParent; } # Create the underlying Wx object my $lock = $main->lock( 'UPDATE', 'refresh_windowlist' ); my $self = $class->SUPER::new($parent); # Hide the editor as quickly as possible so it isn't # visible during the period we are setting it up. $self->Hide; # This is supposed to be Wx::Scintilla::CP_UTF8 # and Wx::wxUNICODE or wxUSE_UNICODE should be on $self->SetCodePage(65001); # Code always lays out left to right if ( $self->can('SetLayoutDirection') ) { $self->SetLayoutDirection(Wx::Layout_LeftToRight); } # Allow scrolling past the end of the document for those of us # used to Ultraedit where you can type into a relaxing clear space. $self->SetEndAtLastLine(0); # Integration with the rest of Padre $self->SetDropTarget( Padre::Wx::FileDropTarget->new($main) ); # Set the code margins a little larger than the default. # This seems to noticably reduce eye strain. $self->SetMarginLeft(2); $self->SetMarginRight(0); # Clear out all the other margins $self->SetMarginWidth( Padre::Constant::MARGIN_LINE, 0 ); $self->SetMarginWidth( Padre::Constant::MARGIN_MARKER, 0 ); $self->SetMarginWidth( Padre::Constant::MARGIN_FOLD, 0 ); # Set the margin types (whether we show them or not) $self->SetMarginType( Padre::Constant::MARGIN_LINE, Wx::Scintilla::SC_MARGIN_NUMBER, ); $self->SetMarginType( Padre::Constant::MARGIN_MARKER, Wx::Scintilla::SC_MARGIN_SYMBOL, ); if (Padre::Feature::FOLDING) { $self->SetMarginType( Padre::Constant::MARGIN_FOLD, Wx::Scintilla::SC_MARGIN_SYMBOL, ); $self->SetMarginMask( Padre::Constant::MARGIN_FOLD, Wx::Scintilla::SC_MASK_FOLDERS, ); } # Set up all of the default markers $self->MarkerDefine( Padre::Constant::MARKER_ERROR, Wx::Scintilla::SC_MARK_SMALLRECT, RED, RED, ); $self->MarkerDefine( Padre::Constant::MARKER_WARN, Wx::Scintilla::SC_MARK_SMALLRECT, ORANGE, ORANGE, ); $self->MarkerDefine( Padre::Constant::MARKER_LOCATION, Wx::Scintilla::SC_MARK_SMALLRECT, GREEN, GREEN, ); $self->MarkerDefine( Padre::Constant::MARKER_BREAKPOINT, # Wx::Scintilla::MARK_SMALLRECT, Wx::Scintilla::SC_MARK_DOTDOTDOT, BLUE, BLUE, ); $self->MarkerDefine( Padre::Constant::MARKER_NOT_BREAKABLE, Wx::Scintilla::SC_MARK_DOTDOTDOT, GRAY, GRAY, ); $self->MarkerDefine( Padre::Constant::MARKER_ADDED, Wx::Scintilla::SC_MARK_PLUS, DARK_GREEN, DARK_GREEN, ); $self->MarkerDefine( Padre::Constant::MARKER_CHANGED, Wx::Scintilla::SC_MARK_ARROW, LIGHT_BLUE, LIGHT_BLUE, ); $self->MarkerDefine( Padre::Constant::MARKER_DELETED, Wx::Scintilla::SC_MARK_MINUS, LIGHT_RED, LIGHT_RED, ); # CTRL-L or line cut should only work when there is no empty line # This prevents the accidental destruction of the clipboard $self->CmdKeyClear( ord('L'), Wx::Scintilla::SCMOD_CTRL ); # Disable CTRL keypad -/+. These seem to emit wrong scan codes # on some laptop keyboards. (e.g. CTRL-Caps lock is the same as CTRL -) # Please see bug #790 $self->CmdKeyClear( Wx::Scintilla::SCK_SUBTRACT, Wx::Scintilla::SCMOD_CTRL ); $self->CmdKeyClear( Wx::Scintilla::SCK_ADD, Wx::Scintilla::SCMOD_CTRL ); # Setup the editor indicators which we will use in smart, warning and error highlighting # Indicator #0: Green round box indicator for smart highlighting $self->IndicatorSetStyle( Padre::Constant::INDICATOR_SMART_HIGHLIGHT, Wx::Scintilla::INDIC_ROUNDBOX, ); # Indicator #1, Orange squiggle for warning highlighting $self->IndicatorSetForeground( Padre::Constant::INDICATOR_WARNING, ORANGE, ); $self->IndicatorSetStyle( Padre::Constant::INDICATOR_WARNING, Wx::Scintilla::INDIC_SQUIGGLE, ); # Indicator #2, Red squiggle for error highlighting $self->IndicatorSetForeground( Padre::Constant::INDICATOR_ERROR, RED, ); $self->IndicatorSetStyle( Padre::Constant::INDICATOR_ERROR, Wx::Scintilla::INDIC_SQUIGGLE, ); # Indicator #3, underline for mouse-clickable tokens $self->IndicatorSetForeground( Padre::Constant::INDICATOR_UNDERLINE, BLUE, ); $self->IndicatorSetStyle( Padre::Constant::INDICATOR_UNDERLINE, Wx::Scintilla::INDIC_PLAIN, ); # Basic event bindings Wx::Event::EVT_SET_FOCUS( $self, sub { shift->on_set_focus(@_); }, ); Wx::Event::EVT_KILL_FOCUS( $self, sub { shift->on_kill_focus(@_); }, ); Wx::Event::EVT_KEY_UP( $self, sub { shift->on_key_up(@_); }, ); Wx::Event::EVT_CHAR( $self, sub { shift->on_char(@_); }, ); Wx::Event::EVT_MOTION( $self, sub { shift->on_mouse_moving(@_); }, ); Wx::Event::EVT_MOUSEWHEEL( $self, sub { shift->on_mousewheel(@_); }, ); Wx::Event::EVT_LEFT_DOWN( $self, sub { shift->on_left_down(@_); }, ); Wx::Event::EVT_LEFT_UP( $self, sub { shift->on_left_up(@_); }, ); Wx::Event::EVT_MIDDLE_UP( $self, sub { shift->on_middle_up(@_); }, ); Wx::Event::EVT_CONTEXT( $self, sub { shift->on_context_menu(@_); }, ); # Scintilla specific event bindings Wx::Event::EVT_STC_DOUBLECLICK( $self, -1, sub { shift->on_left_double(@_); }, ); Wx::Event::EVT_STC_MARGINCLICK( $self, -1, sub { my ( $editor, $event ) = @_; my $main = $self->main; my $line_clicked = $editor->LineFromPosition( $event->GetPosition ); #my $level_clicked = $editor->GetFoldLevel($line_clicked); if ( $event->GetMargin == 2 ) { # TO DO check this (cf. ~/contrib/samples/stc/edit.cpp from wxWidgets) #if ( $level_clicked && Wx::Scintilla::FOLDLEVELHEADERFLAG) > 0) { $editor->ToggleFold($line_clicked); #} } elsif ( $event->GetMargin == 1 ) { Padre::Breakpoints->set_breakpoints_clicked($line_clicked); } } ); # Capture change events that result in an actual change to the text # of the document, so we can refire content-dependent editor tools. $self->SetModEventMask( Wx::Scintilla::SC_PERFORMED_USER | Wx::Scintilla::SC_PERFORMED_UNDO | Wx::Scintilla::SC_PERFORMED_REDO | Wx::Scintilla::SC_MOD_INSERTTEXT | Wx::Scintilla::SC_MOD_DELETETEXT ); Wx::Event::EVT_STC_CHANGE( $self, $self, sub { shift->on_change(@_); }, ); # Smart highlighting: # Selecting a word or small block of text causes all other occurrences to be highlighted # with a round box around each of them $self->{styles} = []; # Apply settings based on configuration # TO DO: Make this suck less (because it really does suck a lot) $self->setup_config; return $self; } sub document { $_[0]->{Document}; } sub notebook { Params::Util::_INSTANCE( $_[0]->GetParent, 'Padre::Wx::Notebook' ); } ###################################################################### # Event Handlers # When the focus is received by the editor sub on_set_focus { TRACE() if DEBUG; my $self = shift; my $event = shift; my $document = $self->document or return; TRACE( "Focus received file:" . $document->get_title ) if DEBUG; # Update the line number width $self->refresh_line_numbers; # NOTE: The editor focus event fires a LOT, even for trivial things # like changing focus to another application and immediately back again, # or switching between tools in Padre. # Try to avoid refreshing here, it is an excessive waste of resources. # Instead, put them in the events that ACTUALLY change application # state. $self->on_change; # TO DO # This is called even if the mouse is moved away from padre and back # again we should restrict some of the updates to cases when we switch # from one file to another. if ( $self->needs_manual_colorize ) { TRACE("needs_manual_colorize") if DEBUG; my $lock = $self->lock_update; my $lexer = $self->GetLexer; if ( $lexer == Wx::Scintilla::SCLEX_CONTAINER ) { $document->colorize; } else { $self->remove_color; $self->Colourise( 0, $self->GetLength ); } $self->needs_manual_colorize(0); } # Keep processing $event->Skip(1); } # When the focus is leaving the editor sub on_kill_focus { TRACE( $_[0] ) if DEBUG; my $self = shift; my $event = shift; # Squelch the change dwell timer $self->dwell_stop('on_change_dwell'); # Keep processing $event->Skip(1); } # Called when a key is released sub on_key_up { my $self = shift; my $event = shift; # The new behavior for a non-destructive CTRL-L if ( $event->GetKeyCode == ord('L') and $event->ControlDown ) { my $line = $self->GetLine( $self->GetCurrentLine ); if ( $line !~ /^\s*$/ ) { # Only cut on non-blank lines $self->LineCut; } else { # Otherwise delete the line $self->LineDelete; } $event->Skip(0); # done processing this nothing more to do return; } # Apply smart highlighting when the shift key is down if ( $event->ShiftDown and $self->config->editor_smart_highlight_enable ) { $self->smart_highlight_show; } # Doc specific processing my $doc = $self->document or return; if ( $doc->can('event_key_up') ) { $doc->event_key_up( $self, $event ); } # Keep processing $event->Skip(1); } # Called when a character is added or changed in the editor sub on_char { my $self = shift; my $event = shift; # Hide the smart highlight when a character is added or changed # in the editor $self->smart_highlight_hide; my $document = $self->document or return; if ( $document->can('event_on_char') ) { $document->event_on_char( $self, $event ); } # Keep processing $event->Skip(1); } # Called on any change to text. # NOTE: This gets called twice for every change, it may be a bug. sub on_change { my $self = shift; # Tickle the dwell for all the dependant gui refreshing $self->dwell_start( 'on_change_dwell', $self->config->editor_dwell ); # If the document changes, memory of search matches are reset delete $self->{match}; return; } # Fires half a second after the user stops typing or otherwise stops changing sub on_change_dwell { my $self = shift; my $main = $self->main; my $current = $main->current; my $editor = $current->editor; # Only trigger tool refresh actions if we are the active document if ( $editor and $self->GetId == $editor->GetId ) { $self->refresh_line_numbers; $main->refresh_functions($current); $main->refresh_outline($current); $main->refresh_syntax($current); $main->refresh_tasks($current); $main->refresh_diff($current); } return; } # Called while the mouse is moving sub on_mouse_moving { my $self = shift; my $event = shift; if ( $event->Moving ) { my $doc = $self->document or return; if ( $doc->can('event_mouse_moving') ) { $doc->event_mouse_moving( $self, $event ); } } # Keep processing $event->Skip(1); } # Convert the Ctrl-Scroll behaviour of changing the font size # to the non-Ctrl behaviour of scrolling. sub on_mousewheel { my $self = shift; my $event = shift; # Ignore this handler if it's a normal wheel movement unless ( $event->ControlDown ) { $event->Skip(1); return; } if (Padre::Feature::FONTSIZE) { # The default handler zooms in the wrong direction $self->SetZoom( $self->GetZoom + int( $event->GetWheelRotation / $event->GetWheelDelta ) ); } else { # Behave as if Ctrl wasn't down $self->ScrollLines( $event->GetLinesPerAction * int( $event->GetWheelRotation / $event->GetWheelDelta * -1 ) ); } return; } sub on_left_down { my $self = shift; my $event = shift; $self->smart_highlight_hide; # Keep processing $event->Skip(1); } sub on_left_up { my $self = shift; my $event = shift; my $config = $self->config; my $text = $self->GetSelectedText; if ( Wx::GTK and defined $text and $text ne '' ) { # Only on X11 based platforms # if ( $config->mid_button_paste ) { # $self->put_text_to_clipboard( $text, 1 ); # } else { # $self->put_text_to_clipboard($text); # } } my $doc = $self->document; if ( $doc and $doc->can('event_on_left_up') ) { $doc->event_on_left_up( $self, $event ); } # Keep processing $event->Skip(1); } sub on_left_double { my $self = shift; my $event = shift; $self->smart_highlight_show; # Keep processing $event->Skip(1); } sub on_middle_up { my $self = shift; my $event = shift; my $config = $self->config; # TO DO: Sometimes there are unexpected effects when using the middle button. # It seems that another event is doing something but not within this module. # Please look at ticket #390 for details! if ( $config->mid_button_paste ) { Wx::TheClipboard->UsePrimarySelection(1); } if ( Padre::Constant::WIN32 or not $config->mid_button_paste ) { $self->Paste; } my $doc = $self->document; if ( $doc->can('event_on_middle_up') ) { $doc->event_on_middle_up( $self, $event ); } if ( $config->mid_button_paste ) { Wx::TheClipboard->UsePrimarySelection(0); $event->Skip(1); } else { $event->Skip(0); } } sub on_context_menu { my $self = shift; my $event = shift; my $main = $self->main; require Padre::Wx::Editor::Menu; my $menu = Padre::Wx::Editor::Menu->new( $self, $event ); # Try to determine where to show the context menu if ( $event->isa('Wx::MouseEvent') ) { # Position is already window relative $self->PopupMenu( $menu->wx, $event->GetX, $event->GetY ); } elsif ( $event->can('GetPosition') ) { # Assume other event positions are screen relative my $screen = $event->GetPosition; my $client = $self->ScreenToClient($screen); $self->PopupMenu( $menu->wx, $client->x, $client->y ); } else { # Probably a wxCommandEvent # TO DO Capture a better location from the mouse directly $self->PopupMenu( $menu->wx, 1, 1 ); } } ###################################################################### # Setup and Preferences Methods # An alternative to GetWrapMode that returns the mode in text form, # primarily so that the view menu does not need to load Wx::Scintilla # for access to the constants sub get_wrap_mode { my $self = shift; my $mode = $self->GetWrapMode; return 'WORD' if $mode == Wx::Scintilla::SC_WRAP_WORD; return 'CHAR' if $mode == Wx::Scintilla::SC_WRAP_CHAR; return 'NONE'; } # Fill the editor with the document sub set_document { my $self = shift; my $document = shift or return; my $eol = $WXEOL{ $document->newline_type }; $self->SetEOLMode($eol) if defined $eol; if ( defined $document->{original_content} ) { $self->SetText( $document->{original_content} ); } $self->EmptyUndoBuffer; return; } sub SetWordChars { my $self = shift; my $document = shift; if ($document) { $self->SUPER::SetWordChars( $document->scintilla_word_chars ); } else { $self->SUPER::SetWordChars(''); } return; } sub SetLexer { my $self = shift; my $lexer = shift; if ( Params::Util::_INSTANCE( $lexer, 'Padre::Document' ) ) { $lexer = $lexer->mimetype; } unless ( Params::Util::_NUMBER($lexer) ) { require Padre::Wx::Scintilla; $lexer = Padre::Wx::Scintilla->lexer($lexer); } if ( Params::Util::_NUMBER($lexer) ) { return $self->SUPER::SetLexer($lexer); } return; } sub SetKeyWords { my $self = shift; # Handle the pass through case return shift->SUPER::SetKeyWords(@_) if @_ == 3; # Handle the higher order cases my $keywords = shift; if ( Params::Util::_INSTANCE( $keywords, 'Padre::Document' ) ) { $keywords = $keywords->mimetype; } unless ( Params::Util::_ARRAY0($keywords) ) { require Padre::Wx::Scintilla; $keywords = Padre::Wx::Scintilla->keywords($keywords); } if ( Params::Util::_ARRAY($keywords) ) { foreach my $i ( 0 .. $#$keywords ) { $self->SUPER::SetKeyWords( $i, $keywords->[$i] ); } } return; } sub StyleAllForeground { my $self = shift; my $colour = shift; foreach my $i ( 0 .. 31 ) { $self->StyleSetBackground( $i, $colour ); } return; } sub StyleAllBackground { my $self = shift; my $colour = shift; foreach my $i ( 0 .. 31 ) { $self->StyleSetBackground( $i, $colour ); } return; } # Allow projects to override editor preferences sub config { my $self = shift; my $project = $self->current->project; return $project->config if $project; return $self->SUPER::config(@_); } # Apply global configuration settings to the editor sub setup_config { my $self = shift; my $config = $self->config; # Apply various settings that largely map directly $self->SetCaretPeriod( $config->editor_cursor_blink ); $self->SetCaretLineVisible( $config->editor_currentline ); $self->SetViewEOL( $config->editor_eol ); $self->SetViewWhiteSpace( $config->editor_whitespace ); $self->show_line_numbers( $config->editor_linenumbers ); $self->SetIndentationGuides( $config->editor_indentationguides ); # Enable or disable word wrapping if ( $config->editor_wordwrap ) { $self->SetWrapMode(Wx::Scintilla::SC_WRAP_WORD); } else { $self->SetWrapMode(Wx::Scintilla::SC_WRAP_NONE); } # Enable or disable the right hand margin guideline if ( $config->editor_right_margin_enable ) { $self->SetEdgeColumn( $config->editor_right_margin_column ); $self->SetEdgeMode(Wx::Scintilla::EDGE_LINE); } else { $self->SetEdgeMode(Wx::Scintilla::EDGE_NONE); } # Enable the symbol margin if anything needs it if ( Padre::Feature::DIFF_DOCUMENT or $config->main_syntax ) { if ( $self->GetMarginWidth(1) == 0 ) { # Set margin 1 as a 16 pixel symbol margin $self->SetMarginWidth( Padre::Constant::MARGIN_MARKER, 16 ); } } return; } # Most of this should be read from some external files # but for now we use this if statement sub setup_document { my $self = shift; my $config = $self->config; my $document = $self->document; # Reset word characters, most languages don't change it $self->SetWordChars(''); # Configure lexing for the editor based on the document type if ($document) { $self->SetLexer($document); $self->SetStyleBits( $self->GetStyleBitsNeeded ); $self->SetWordChars($document); $self->SetKeyWords($document); # Setup indenting my $indent = $document->get_indentation_style; $self->SetTabWidth( $indent->{tabwidth} ); # Tab char width $self->SetIndent( $indent->{indentwidth} ); # Indent columns $self->SetUseTabs( $indent->{use_tabs} ); # Enable or disable folding (if folding is turned on) # Please enable it when the lexer is changed because it is # the one that creates the code folding for that particular # document if (Padre::Feature::FOLDING) { $self->show_folding( $config->editor_folding ); } } # Apply the current style to the editor $self->main->theme->apply($self); # When we apply the style, refresh the line number margin in case # the changed style results in a different size font. $self->refresh_line_numbers; return; } ###################################################################### # Selection and Introspection # Return the character at a given position as a perl string sub GetTextAt { chr $_[0]->GetCharAt( $_[1] ); } sub GetSelectionLength { $_[0]->GetSelectionStart - $_[0]->GetSelectionEnd; } sub GetFirstDocumentLine { $_[0]->DocLineFromVisible( $_[0]->GetFirstVisibleLine ); } sub get_selection_lines { return ( $_[0]->get_selection_lines_start, $_[0]->get_selection_lines_end, ); } sub get_selection_lines_start { $_[0]->LineFromPosition( $_[0]->GetSelectionStart ); } sub get_selection_lines_end { $_[0]->LineFromPosition( $_[0]->GetSelectionEnd ); } sub get_selection_block { my $self = shift; my $startp = $self->GetSelectionStart; my $startl = $self->LineFromPosition($startp); my $endp = $self->GetSelectionEnd; my $endl = $self->LineFromPosition($endp); # Do nothing unless the selection spans lines return ( $startl, $endl ) if $startl == $endl; # Trim off the bottom lines while no content is selected while ( $endp == $self->PositionFromLine($endl) ) { $endp = $self->GetLineEndPosition( --$endl ); return ( $startl, $endl ) if $startl == $endl; } # Trim off the top lines while no content is selected while ( $startp == $self->GetLineEndPosition($startl) ) { $startp = $self->PositionFromLine( ++$startl ); return ( $startl, $endl ) if $startl == $endl; } # The final result is the range of lines containing content # within the original selection. return ( $startl, $endl ); } # Indicate a selection based on a search match and remember where it was # so we know whether to continue or start a new search next time they hit F3 sub match { my $self = shift; my $search = shift; my $from = shift; my $to = shift; # Set the selection $self->goto_selection_centerize( $from, $to ); # Save the match details $self->{matched} = [ $search, $from, $to ]; return 1; } # Fetch the search result the current selection is a match for, if any sub matched { $_[0]->{matched}; } ###################################################################### # General Methods # Take a temporary readonly lock on the object sub lock_readonly { require Padre::Wx::Editor::Lock; Padre::Wx::Editor::Lock->new(shift); } # Recalculate the line number margins whenever we change the zoom level sub SetZoom { my $self = shift; my @rv = $self->SUPER::SetZoom(@_); $self->refresh_line_numbers; return @rv; } # Error Message sub error { my $self = shift; my $text = shift; Wx::MessageBox( $text, Wx::gettext("Error"), Wx::OK, $self->main ); } sub remove_color { TRACE( $_[0] ) if DEBUG; my $self = shift; # TO DO this is strange, do we really need to do it with all? foreach my $i ( 0 .. 31 ) { $self->StartStyling( 0, $i ); $self->SetStyling( $self->GetLength, 0 ); } return; } =head2 get_brace_info Look at a given position in the editor if there is a brace (according to the setting editor_braces) before or after, and return the information about the context It always look first at the character after the position. Params: pos - the cursor position in the editor [defaults to cursor position) : int Return: undef if no brace, otherwise [brace, actual_pos, is_after, is_opening] where: brace - the brace char at actual_pos actual_pos - the actual position where the brace has been found is_after - true iff the brace is after the cursor : boolean is_opening - true iff only the brace is an opening one Examples: |{} => should find the { : [0,{,1,1] {|} => should find the } : [1,},1,0] {| } => should find the { : [0,{,0,1] =cut sub get_brace_info { my ( $self, $pos ) = @_; $pos = $self->GetCurrentPos unless defined $pos; # try the after position first (default one for BraceMatch) my $is_after = 1; my $brace = $self->GetTextAt($pos); my $is_brace = $self->get_brace_type($brace); if ( !$is_brace && $pos > 0 ) { # try the before position $brace = $self->GetTextAt( --$pos ); $is_brace = $self->get_brace_type($brace) or return undef; $is_after = 0; } my $is_opening = $is_brace % 2; # odd values are opening return [ $pos, $brace, $is_after, $is_opening ]; } =head2 get_brace_type Tell if a character is a brace, and if it is an opening or a closing one Params: char - a character : string Return: int : 0 if this is not a brace, an odd value if it is an opening brace and an even one for a closing brace =cut my %_cached_braces; sub get_brace_type { my $self = shift; my $char = shift; unless (%_cached_braces) { my $i = 1; # start from one so that all values are true $_cached_braces{$_} = $i++ foreach ( split //, '{}[]()' ); } my $v = $_cached_braces{$char} or return 0; return $v; } my $previous_expr_hiliting_style; sub highlight_braces { my $self = shift; my $expression_highlighting = $self->config->editor_brace_expression_highlighting; # remove current highlighting if any $self->BraceHighlight( Wx::Scintilla::INVALID_POSITION, Wx::Scintilla::INVALID_POSITION ); if ($previous_expr_hiliting_style) { $self->apply_style($previous_expr_hiliting_style); $previous_expr_hiliting_style = undef; } my $pos1 = $self->GetCurrentPos; my $info1 = $self->get_brace_info($pos1) or return; my ($actual_pos1) = @$info1; my $actual_pos2 = $self->BraceMatch($actual_pos1); return if $actual_pos2 == Wx::Scintilla::INVALID_POSITION; #Wx::Scintilla::INVALID_POSITION #???? $self->BraceHighlight( $actual_pos1, $actual_pos2 ); if ($expression_highlighting) { my $pos2 = $self->find_matching_brace($pos1) or return; my %style = ( start => $pos1 < $pos2 ? $pos1 : $pos2, len => abs( $pos1 - $pos2 ), style => Wx::Scintilla::STYLE_DEFAULT ); $previous_expr_hiliting_style = $self->apply_style( \%style ); } return; } # some uncorrect behaviour (| is the cursor) # {} : never highlighted # { } : always correct # # sub apply_style { my $self = shift; my $style_info = shift; my %previous_style = %$style_info; $previous_style{style} = $self->GetStyleAt( $style_info->{start} ); $self->StartStyling( $style_info->{start}, 0xFF ); $self->SetStyling( $style_info->{len}, $style_info->{style} ); return \%previous_style; } =head2 find_matching_brace Find the position of to the matching brace if any. If the cursor is inside the braces the destination will be inside too, same it is outside. Params: pos - the cursor position in the editor [defaults to cursor position) : int Return: matching_pos - the matching position, or undef if none =cut sub find_matching_brace { my ( $self, $pos ) = @_; $pos = $self->GetCurrentPos unless defined $pos; my $info1 = $self->get_brace_info($pos) or return; my ( $actual_pos1, $brace, $is_after, $is_opening ) = @$info1; my $actual_pos2 = $self->BraceMatch($actual_pos1); return if $actual_pos2 == Wx::Scintilla::INVALID_POSITION; $actual_pos2++ if $is_after; # ensure is stays inside if origin is inside, same four outside return $actual_pos2; } =head2 goto_matching_brace Move the cursor to the matching brace if any. If the cursor is inside the braces the destination will be inside too, same it is outside. Params: pos - the cursor position in the editor [defaults to cursor position) : int =cut sub goto_matching_brace { my ( $self, $pos ) = @_; my $pos2 = $self->find_matching_brace($pos) or return; $self->GotoPos($pos2); } =head2 select_to_matching_brace Select to the matching opening or closing brace. If the cursor is inside the braces the destination will be inside too, same it is outside. Params: pos - the cursor position in the editor [defaults to cursor position) : int =cut sub select_to_matching_brace { my ( $self, $pos ) = @_; $pos = $self->GetCurrentPos unless defined $pos; my $pos2 = $self->find_matching_brace($pos) or return; my $start = ( $pos < $pos2 ) ? $self->GetSelectionStart : $self->GetSelectionEnd; $self->SetSelection( $start, $pos2 ); } sub refresh_notebook { my $self = shift; my $document = $self->document or return; my $notebook = Params::Util::_INSTANCE( $self->GetParent, 'Padre::Wx::Notebook', ) or return; # Find the page we are in my $id = $notebook->GetPageIndex($self); return if $id == Wx::NOT_FOUND; # Generate the page title my $old = $notebook->GetPageText($id); my $filename = $document->filename || ''; my $modified = $self->GetModify ? '*' : ' '; my $title = $modified . ( $filename ? File::Basename::basename($filename) : substr( $old, 1 ) ); # Fixed ticket #190: Massive GDI object leakages # http://padre.perlide.org/ticket/190 # Please remember to call SetPageText once per the same text # This still leaks but far less slowly (just on undo) return if $old eq $title; $notebook->SetPageText( $id, $title ); } sub refresh_line_numbers { my $self = shift; $self->show_line_numbers( $self->config->editor_linenumbers ); } # Calculate the maximum possible width, and set to that plus a few pixels. # We don't allow any excess space for future growth as we anticipate calling # this function relatively frequently. sub show_line_numbers { my $self = shift; my $on = shift; my $width = 0; if ($on) { $width = $self->TextWidth( Wx::Scintilla::STYLE_LINENUMBER, "m" x List::Util::max( 2, length $self->GetLineCount ) ) + 5; # 5 pixel left "margin of the margin } $self->SetMarginWidth( Padre::Constant::MARGIN_LINE, $width, ); } sub show_calltip { my $self = shift; my $config = $self->config; return unless $config->editor_calltips; my $pos = $self->GetCurrentPos; my $line = $self->LineFromPosition($pos); my $first = $self->PositionFromLine($line); my $prefix = $self->GetTextRange( $first, $pos ); # line from beginning to current position $self->CallTipCancel if $self->CallTipActive; my $doc = $self->current->document or return; my $keywords = $doc->get_calltip_keywords; my $regex = join '|', sort { length $a <=> length $b } keys %$keywords; my $tip; if ( $prefix =~ /(?:^|[^\w\$\@\%\&])($regex)[ (]?$/ ) { my $z = $keywords->{$1}; return if not $z or not ref($z) or ref($z) ne 'HASH'; $tip = "$z->{cmd}\n$z->{exp}"; } if ($tip) { $self->CallTipShow( $self->CallTipPosAtStart + 1, $tip ); } return; } # For auto-indentation (i.e. one more level), we do the following: # 1) get the white spaces of the previous line and add them here as well # 2) after a brace indent one level more than previous line # 3) while doing all this, respect the current (sadly global) indentation settings # For auto-de-indentation (i.e. closing brace), we remove one level of indentation # instead. # FIX ME/TO DO: needs some refactoring sub autoindent { my ( $self, $mode ) = @_; my $config = $self->config; return unless $config->editor_autoindent; return if $config->editor_autoindent eq 'no'; if ( $mode eq 'deindent' ) { $self->_auto_deindent($config); } else { # default to "indent" $self->_auto_indent($config); } return; } sub _auto_indent { my ( $self, $config ) = @_; my $pos = $self->GetCurrentPos; my $prev_line = $self->LineFromPosition($pos) - 1; return if $prev_line < 0; my $indent_style = $self->document->get_indentation_style; my $content = $self->GetLine($prev_line); my $eol = $self->document->newline; $content =~ s/$eol$//; my $indent = ( $content =~ /^(\s+)/ ? $1 : '' ); if ( $config->editor_autoindent eq 'deep' and $content =~ /\{\s*$/ ) { my $indent_width = $indent_style->{indentwidth}; my $tab_width = $indent_style->{tabwidth}; if ( $indent_style->{use_tabs} and $indent_width != $tab_width ) { # do tab compression if necessary # - First, convert all to spaces (aka columns) # - Then, add an indentation level # - Then, convert to tabs as necessary my $tab_equivalent = " " x $tab_width; $indent =~ s/\t/$tab_equivalent/g; $indent .= $tab_equivalent; $indent =~ s/$tab_equivalent/\t/g; } elsif ( $indent_style->{use_tabs} ) { # use tabs only $indent .= "\t"; } else { $indent .= " " x $indent_width; } } if ( $indent ne '' ) { $self->InsertText( $pos, $indent ); $self->GotoPos( $pos + length($indent) ); } return; } sub _auto_deindent { my ( $self, $config ) = @_; my $pos = $self->GetCurrentPos; my $line = $self->LineFromPosition($pos); my $indent_style = $self->document->get_indentation_style; my $content = $self->GetLine($line); my $indent = ( $content =~ /^(\s+)/ ? $1 : '' ); # This is for } on a new line: if ( $config->editor_autoindent eq 'deep' and $content =~ /^\s*\}\s*$/ ) { my $prev_line = $line - 1; my $prev_content = ( $prev_line < 0 ? '' : $self->GetLine($prev_line) ); my $prev_indent = ( $prev_content =~ /^(\s+)/ ? $1 : '' ); # de-indent only in these cases: # - same indentation level as prev. line and not a brace on prev line # - higher indentation than pr. l. and a brace on pr. line if ( $prev_indent eq $indent && $prev_content !~ /^\s*{/ or length($prev_indent) < length($indent) && $prev_content =~ /\{\s*$/ ) { my $indent_width = $indent_style->{indentwidth}; my $tab_width = $indent_style->{tabwidth}; if ( $indent_style->{use_tabs} and $indent_width != $tab_width ) { # do tab compression if necessary # - First, convert all to spaces (aka columns) # - Then, add an indentation level # - Then, convert to tabs as necessary my $tab_equivalent = " " x $tab_width; $indent =~ s/\t/$tab_equivalent/g; $indent =~ s/$tab_equivalent$//; $indent =~ s/$tab_equivalent/\t/g; } elsif ( $indent_style->{use_tabs} ) { # use tabs only $indent =~ s/\t$//; } else { my $indentation_level = " " x $indent_width; $indent =~ s/$indentation_level$//; } } # replace indentation of the current line $self->GotoPos( $pos - 1 ); $self->DelLineLeft; $pos = $self->GetCurrentPos; $self->InsertText( $pos, $indent ); $self->GotoPos( $self->GetLineEndPosition($line) ); } # this is if the line matches "blahblahSomeText}". elsif ( $config->editor_autoindent eq 'deep' and $content =~ /\}\s*$/ ) { # TO DO: What should happen in this case? } return; } sub text_selection_mark_start { my $self = shift; $self->{selection_mark_start} = $self->GetCurrentPos; # Change selection if start and end are defined if ( defined $self->{selection_mark_end} ) { $self->SetSelection( $self->{selection_mark_start}, $self->{selection_mark_end} ); } } sub text_selection_mark_end { my $self = shift; $self->{selection_mark_end} = $self->GetCurrentPos; # Change selection if start and end are defined if ( defined $self->{selection_mark_start} ) { $self->SetSelection( $self->{selection_mark_start}, $self->{selection_mark_end} ); } } sub text_selection_clear { my $editor = shift; $editor->{selection_mark_start} = undef; $editor->{selection_mark_end} = undef; } # # my ($begin, $end) = $self->current_paragraph; # # return $begin and $end position of current paragraph. # sub current_paragraph { my ($editor) = @_; my $curpos = $editor->GetCurrentPos; my $lineno = $editor->LineFromPosition($curpos); # check if we're in between paragraphs return ( $curpos, $curpos ) if $editor->GetLine($lineno) =~ /^\s*$/; # find the start of paragraph by searching backwards till we find a # line with only whitespace in it. my $para1 = $lineno; while ( $para1 > 0 ) { my $line = $editor->GetLine($para1); last if $line =~ /^\s*$/; $para1--; } # now, find the end of paragraph by searching forwards until we find # only white space my $lastline = $editor->GetLineCount; my $para2 = $lineno; while ( $para2 < $lastline ) { $para2++; my $line = $editor->GetLine($para2); last if $line =~ /^\s*$/; } # return the position my $begin = $editor->PositionFromLine( $para1 + 1 ); my $end = $editor->PositionFromLine($para2); return ( $begin, $end ); } # TO DO: include the changing of file type in the undo/redo actions # or better yet somehow fetch it from the document when it is needed. sub convert_eols { my $self = shift; my $newline = shift; my $mode = $WXEOL{$newline}; # Apply the change to the underlying document my $document = $self->document or return; $document->set_newline_type($newline); # Convert and Set the EOL mode in the editor $self->ConvertEOLs($mode); $self->SetEOLMode($mode); return 1; } # hack for cut n paste - start sub Cut { my $self = shift; $self->{internal_copy} = $self->GetSelectedText; return $self->SUPER::Cut(@_); } sub Copy { my $self = shift; $self->{internal_copy} = $self->GetSelectedText; return $self->SUPER::Copy(@_); } sub CanPaste { my $self = shift; return 1 if $self->{internal_copy}; return 0 unless $self->SUPER::CanPaste; return 0 unless $self->clipboard_length; return 1; } sub Paste { my $self = shift; # Workaround for Copy/Paste bug ticket #390 my $text = $self->get_text_from_clipboard; if ($text) { # Conversion of pasted text is really needed since it usually comes # with the platform's line endings # # Please see ticket:589, "Pasting in a UNIX document in win32 # corrupts it to MIXEd" $self->ReplaceSelection( $self->_convert_paste_eols($text) ); } else { $self->ReplaceSelection( $self->_convert_paste_eols( $self->{internal_copy} ) ); } return 1; } # hack for cut n past - end # # This method converts line ending based on current document EOL mode # and the newline type for the current text # sub _convert_paste_eols { my ( $self, $paste ) = @_; my $newline_type = Padre::Util::newline_type($paste); my $eol_mode = $self->GetEOLMode; # Handle the 'None' one-liner case if ( $newline_type eq 'None' ) { $newline_type = $self->config->default_line_ending; } #line endings my $CR = "\015"; my $LF = "\012"; my $CRLF = "$CR$LF"; my ( $from, $to ); # From what to convert from? if ( $newline_type eq 'WIN' ) { $from = $CRLF; } elsif ( $newline_type eq 'UNIX' ) { $from = $LF; } elsif ( $newline_type eq 'MAC' ) { $from = $CR; } # To what to convert to? if ( $eol_mode eq Wx::Scintilla::SC_EOL_CRLF ) { $to = $CRLF; } elsif ( $eol_mode eq Wx::Scintilla::SC_EOL_LF ) { $to = $LF; } else { #must be Wx::Scintilla::EOL_CR $to = $CR; } # Convert only when it is needed if ( $from ne $to ) { $paste =~ s/$from/$to/g; } return $paste; } # Toggle the commenting for the content block at the selection sub comment_toggle { my $self = shift; my $document = $self->document or return; my $comment = $document->mime->comment or return; my ( $start, $end ) = @_ ? @_ : $self->get_selection_block; # The block is uncommented if any non-blank line within it is my $commented = $comment->line_match; foreach my $line ( $start .. $end ) { my $text = $self->GetLine($line); next unless $text =~ /\S/; next if $text =~ $commented; # Block is NOT commented, comment it return $self->comment_indent( $start, $end ); } # Block IS commented, uncomment it return $self->comment_outdent( $start, $end ); } # Indent commenting for a line range representing a block of code sub comment_indent { my $self = shift; my $document = $self->document or return; my $comment = $document->mime->comment or return; my $left = $comment->left; my $right = $comment->right; my @targets = (); my ( $start, $end ) = @_ ? @_ : $self->get_selection_block; if ($right) { # Handle languages which use multi-line comment push @targets, [ $end, $end, "$left " ]; push @targets, [ $start, $start, " $right" ]; } else { # Handle line-by-line comments $comment .= ' '; for ( my $line = $end; $line >= $start; $line-- ) { my $text = $self->GetLine($line); next unless $text =~ /\S/; # Insert the comment after the indent to retain safe tab # usage for those people that use them. my $pos = $self->GetLineIndentPosition($line); push @targets, [ $pos, $pos, "$left " ]; } } # Apply the changes to the editor require Padre::Delta; Padre::Delta->new( position => @targets )->to_editor($self); } # Outdent commenting for a line range representing a block of code sub comment_outdent { my $self = shift; my $document = $self->document or return; my $comment = $document->mime->comment or return; my $left = $comment->left; my $right = $comment->right; my @targets = (); my ( $start, $end ) = @_ ? @_ : $self->get_selection_block; if ( Params::Util::_ARRAY($comment) ) { # Handle languages which use multi-line comment # TO DO to be completed } else { # Handle line-by-line comments my $regexp = qr/^(\s*)(\Q$left\E ?)/; for ( my $line = $end; $line >= $start; $line-- ) { my $text = $self->GetLine($line); next unless $text =~ /\S/; # Special hack, don't uncomment #! lines if ( $line == 0 and $text =~ /^#!/ ) { next; } # Remove the comment characters next unless $text =~ $regexp; my $left = $self->PositionFromLine($line) + length($1); my $right = $left + length($2); push @targets, [ $left, $right, '' ]; } } # Apply the changes to the editor require Padre::Delta; Padre::Delta->new( position => @targets )->to_editor($self); } =pod =head2 find_line my $line_number = $editor->find_line( 123, "sub foo {" ); The C<find_line> method locates a line in a document using a line number and the content of the line. It is intended for use in situations where a search function has determined that a particular line is of interest, but the document may have changed in the time since the original search was made. Starting at the suggested line, it will locate the line containing the text which is the closest to line provided. If no text is provided the method acts as a simple pass-through. Returns an integer line number guaranteed to exist in the document, or C<undef> if the hint text could not be found anywhere in the document. =cut sub find_line { my $self = shift; my $line = shift; # Handle the trivial case with no hint text unless (@_) { return $self->line($line); } # Look for the text on the specific expected line my $text = quotemeta shift; my $regex = qr/^$text[\012\015]*\Z/; if ( $line == $self->line($line) ) { if ( $self->GetLine($line) =~ $regex ) { return $line; } } else { $line = $self->line($line); } # Search outwards from the expected line my $max = $self->GetLineCount; my $low = $line; my $high = $line; while ( $low >= 0 or $high <= $max ) { # Search down one line if ( $high <= $max ) { if ( $self->GetLine($high) =~ $regex ) { return $high; } $high++; } if ( $low >= 0 ) { if ( $self->GetLine($low) =~ $regex ) { return $low; } $low--; } } # If we can't find the content text anywhere, # fall back to the explicit line number. return $line; } sub find_function { my $self = shift; my $name = shift; my $document = $self->document or return; my $regex = $document->get_function_regex($name) or return; # Run the search require Padre::Search; my ( $from, $to ) = $self->GetSelection; my ( $start, $end ) = Padre::Search->matches( text => $self->GetText, regex => $regex, submatch => 1, from => $from, to => $to, ); return $start; } sub has_function { defined shift->find_function(@_); } =pod =head2 position my $position = $editor->position($untrusted); The C<position> method is used to clean parameters that are supposed to refer to a position within the editor. It takes what should be an numeric document position, constrains the value to the actual position range of the document, and removes any fractional characters. This method should generally be used when doing something to a document somewhere in it preferable aborting that functionality completely. Returns an integer character position guaranteed to exist in the document. =cut sub position { my $self = shift; my $pos = shift; my $max = $self->GetLength; $pos = 0 unless $pos; $pos = 0 unless $pos > 0; $pos = $max if $pos > $max; return int $pos; } =pod =head2 line my $line = $editor->line($untrusted); The C<line> method is used to clean parameters that are supposed to refer to a line within the editor. It takes what should be an numeric document line, constrains the value to the actual line range of the document, and removes any fractional characters. This method should generally be used when doing something to a document somewhere in it preferable aborting that functionality completely. Returns an integer line number guaranteed to exist in the document. =cut sub line { my $self = shift; my $line = shift; my $max = $self->GetLineCount - 1; $line = 0 unless $line; $line = 0 unless $line > 0; $line = $max if $line > $max; return int $line; } sub goto_function { my $self = shift; my $start = $self->find_function(shift); return unless defined $start; $self->goto_pos_centerize($start); } sub goto_line_centerize { my $self = shift; my $line = $self->find_line(@_); $self->goto_pos_centerize( $self->GetLineIndentPosition($line) ); } # CREDIT: Borrowed from Kephra sub goto_pos_centerize { my $self = shift; my $pos = $self->position(shift); my $line = $self->LineFromPosition($pos); # Set the selection $self->SetCurrentPos($pos); $self->SetAnchor($pos); # Move to the position $self->ScrollToLine( $self->line( $line - $self->LinesOnScreen / 2 ) ); $self->SetFocus; return 1; } sub goto_selection_centerize { my $self = shift; my $spos = $self->position(shift); my $epos = $self->position(shift); my $sline = $self->LineFromPosition($spos); my $eline = $self->LineFromPosition($epos); # Set the selection $self->SetCurrentPos($spos); $self->SetAnchor($epos); # Move to the mid-point of the selection as a starting point. # If the selection is bigger than the screen, # move the caret back onto the screen. $self->ScrollToLine( $self->line( ( $sline + $eline - $self->LinesOnScreen ) / 2 ) ); $self->EnsureCaretVisible; return 1; } sub insert_text { my $self = shift; my $text = shift; my $size = Wx::TextDataObject->new($text)->GetTextLength; my $pos = $self->GetCurrentPos; $self->ReplaceSelection(''); $self->InsertText( $pos, $text ); $self->GotoPos( $pos + $size + 1 ); return 1; } sub insert_from_file { my $self = shift; my $file = shift; open( my $fh, '<', $file ) or return; binmode($fh); local $/ = undef; my $text = <$fh>; close $fh; $self->insert_text($text); } # Default (fast) method for deleting all leading spaces sub delete_leading_spaces { my $self = shift; my $lines = $self->GetLineCount; my $changed = 0; foreach my $i ( 0 .. $self->GetLineCount ) { my $line = $self->GetLine($i); unless ( $line =~ /\A([ \t]+)/ ) { next; } my $start = $self->PositionFromLine($i); $self->SetTargetStart($start); $self->SetTargetEnd( $start + length $1 ); $self->BeginUndoAction unless $changed++; $self->ReplaceTarget(''); } $self->EndUndoAction if $changed; return $changed; } # Default (fast) method for deleting all trailing spaces sub delete_trailing_spaces { my $self = shift; my $lines = $self->GetLineCount; my $changed = 0; foreach my $i ( 0 .. $self->GetLineCount ) { my $line = $self->GetLine($i); unless ( $line =~ /\A(.*?)([ \t]+)([\015\012]*)\z/ ) { next; } my $start = $self->PositionFromLine($i) + length $1; $self->SetTargetStart($start); $self->SetTargetEnd( $start + length $2 ); $self->BeginUndoAction unless $changed++; $self->ReplaceTarget(''); } $self->EndUndoAction if $changed; return $changed; } sub vertically_align { my $self = shift; # Get the selected lines my $begin = $self->LineFromPosition( $self->GetSelectionStart ); my $end = $self->LineFromPosition( $self->GetSelectionEnd ); if ( $begin == $end ) { $self->error( Wx::gettext("You must select a range of lines") ); return; } my @line = ( $begin .. $end ); my @text = (); foreach (@line) { my $x = $self->PositionFromLine($_); my $y = $self->GetLineEndPosition($_); push @text, $self->GetTextRange( $x, $y ); } # Get the align character from the selection start # (which must be a non-whitespace non-word character) my $start = $self->GetSelectionStart; my $c = $self->GetTextRange( $start, $start + 1 ); unless ( defined $c and $c =~ /^[^\s\w]$/ ) { $self->error( Wx::gettext("First character of selection must be a non-word character to align") ); } # Locate the position of the align character, # and the position of the earliest whitespace before it. my $qc = quotemeta $c; my @position = (); foreach (@text) { if (/^(.+?)(\s*)$qc/) { push @position, [ length("$1"), length("$2") ]; } else { # This line is not a member of the align set push @position, undef; } } # Find the latest position of the starting whitespace. my $longest = List::Util::max map { $_->[0] } grep {$_} @position; # Generate the target list to line them all up my @targets = (); foreach ( 0 .. $#line ) { next unless $position[$_]; my $spaces = $longest - $position[$_]->[0] - $position[$_]->[1] + 1; if ( $_ == 0 ) { $start = $start + $spaces; } my $insert = $self->PositionFromLine( $line[$_] ) + $position[$_]->[0] + 1; if ( $spaces > 0 ) { push @targets, [ $insert, $insert, ' ' x $spaces ]; } elsif ( $spaces < 0 ) { push @targets, [ $insert, $insert - $spaces, '' ]; } } # Apply the changes via a delta object require Padre::Delta; my $delta = Padre::Delta->new( position => reverse @targets ); $delta->to_editor($self); } sub needs_manual_colorize { if ( defined $_[1] ) { $_[0]->{needs_manual_colorize} = $_[1]; } return $_[0]->{needs_manual_colorize}; } ###################################################################### # Clipboard Methods # This is not necesarily the right place for these, since things other # than editors might want to make use of the clipboard. # But it will do for now as a starting point. =pod =head2 clipboard_length my $chars = Padre::Wx::Editor->clipboard_length; The C<clipboard_length> method returns the number of characters of text currently in the clipboard, if any. Returns an integer number of characters, or zero if the clipboard is empty or contains non-text data. =cut sub clipboard_length { my $class = shift; my $chars = 0; Wx::TheClipboard->Open; if ( Wx::TheClipboard->IsSupported(Wx::DF_TEXT) ) { my $data = Wx::TextDataObject->new; if ( Wx::TheClipboard->GetData($data) ) { $chars = $data->GetTextLength if defined $data; } } Wx::TheClipboard->Close; return $chars; } # TODO Change this to clipboard_set sub put_text_to_clipboard { my ( $self, $text, $clipboard ) = @_; @_ = (); # Feeble attempt to kill Scalars Leaked return if $text eq ''; my $config = $self->config; $clipboard ||= 0; # Backup last clipboard value: $self->{Clipboard_Old} = $self->get_text_from_clipboard; # if $self->{Clipboard_Old} ne $self->get_text_from_clipboard; Wx::TheClipboard->Open; # Wx::TheClipboard->UsePrimarySelection($clipboard) # if $config->mid_button_paste; Wx::TheClipboard->SetData( Wx::TextDataObject->new($text) ); Wx::TheClipboard->Close; return; } # TODO Change this to clipboard_text sub get_text_from_clipboard { my $self = shift; my $text = ''; Wx::TheClipboard->Open; if ( Wx::TheClipboard->IsSupported(Wx::DF_TEXT) ) { my $data = Wx::TextDataObject->new; if ( Wx::TheClipboard->GetData($data) ) { $text = $data->GetText if defined $data; } } if ( $text eq $self->GetSelectedText ) { $text = $self->{Clipboard_Old}; } Wx::TheClipboard->Close; return $text; } ###################################################################### # Highlighting # The main purpose of these manual highlighting methods is to prevent # the document classes from having to use Wx code directly. sub manual_highlight_show { my $self = shift; my $position = shift; my $characters = shift; $self->SetIndicatorCurrent(Padre::Constant::INDICATOR_UNDERLINE); $self->IndicatorFillRange( $position, $characters ); return 1; } sub manual_highlight_hide { my $self = shift; my $position = shift; my $characters = shift; $self->SetIndicatorCurrent(Padre::Constant::INDICATOR_UNDERLINE); $self->IndicatorClearRange( $position, $characters ); } sub smart_highlight_show { my $self = shift; my $selection = $self->GetSelectedText; my $selection_length = length $selection; # Zero length selection should be ignored return if $selection_length == 0; # Whitespace should be ignored return if $selection =~ /^\s+$/; my $selection_re = quotemeta $selection; my $line_count = $self->GetLineCount; my $line_num = $self->GetCurrentLine; # Limits search to C+N..C-N from current line respecting limits ofcourse # to optimize CPU usage my $NUM_LINES = 400; my $from = ( $line_num - $NUM_LINES <= 0 ) ? 0 : $line_num - $NUM_LINES; my $to = ( $line_count <= $line_num + $NUM_LINES ) ? $line_count : $line_num + $NUM_LINES; # Clear previous smart highlights $self->smart_highlight_hide; # find matching occurrences foreach my $i ( $from .. $to ) { my $line_start = $self->PositionFromLine($i); my $line = $self->GetLine($i); while ( $line =~ /$selection_re/g ) { my $start = $line_start + pos($line) - $selection_length; push @{ $self->{styles} }, { start => $start, len => $selection_length, }; } } # smart highlight if there are more than one occurrence... if ( scalar @{ $self->{styles} } > 1 ) { foreach my $style ( @{ $self->{styles} } ) { $self->SetIndicatorCurrent(Padre::Constant::INDICATOR_SMART_HIGHLIGHT); $self->IndicatorFillRange( $style->{start}, $style->{len} ); } } } sub smart_highlight_hide { my $self = shift; my @styles = @{ $self->{styles} }; if ( scalar @styles ) { # Clear indicators for all available text $self->SetIndicatorCurrent(Padre::Constant::INDICATOR_SMART_HIGHLIGHT); my $text_length = $self->GetTextLength; $self->IndicatorClearRange( 0, $text_length ) if $text_length > 0; # Clear old styles $#{ $self->{styles} } = -1; } } ###################################################################### # Code Folding no warnings 'once'; BEGIN { *show_folding = sub { my $self = shift; my $on = shift; if ($on) { # Setup a margin to hold fold markers # This one needs to be mouse-aware. $self->SetMarginSensitive( Padre::Constant::MARGIN_FOLD, 1, ); $self->SetMarginWidth( Padre::Constant::MARGIN_FOLD, 16, ); # Define folding markers. The colours are really dummy # as the themes will override them my $w = Wx::Colour->new("white"); my $b = Wx::Colour->new("black"); $self->MarkerDefine( Wx::Scintilla::SC_MARKNUM_FOLDEREND, Wx::Scintilla::SC_MARK_BOXPLUSCONNECTED, $w, $b ); $self->MarkerDefine( Wx::Scintilla::SC_MARKNUM_FOLDEROPENMID, Wx::Scintilla::SC_MARK_BOXMINUSCONNECTED, $w, $b ); $self->MarkerDefine( Wx::Scintilla::SC_MARKNUM_FOLDERMIDTAIL, Wx::Scintilla::SC_MARK_TCORNER, $w, $b ); $self->MarkerDefine( Wx::Scintilla::SC_MARKNUM_FOLDERTAIL, Wx::Scintilla::SC_MARK_LCORNER, $w, $b ); $self->MarkerDefine( Wx::Scintilla::SC_MARKNUM_FOLDERSUB, Wx::Scintilla::SC_MARK_VLINE, $w, $b ); $self->MarkerDefine( Wx::Scintilla::SC_MARKNUM_FOLDER, Wx::Scintilla::SC_MARK_BOXPLUS, $w, $b ); $self->MarkerDefine( Wx::Scintilla::SC_MARKNUM_FOLDEROPEN, Wx::Scintilla::SC_MARK_BOXMINUS, $w, $b ); # Activate $self->SetProperty( 'fold' => 1 ); } else { $self->SetMarginSensitive( Padre::Constant::MARGIN_FOLD, 0, ); $self->SetMarginWidth( Padre::Constant::MARGIN_FOLD, 0, ); # Deactivate $self->SetProperty( 'fold' => 1 ); $self->unfold_all; } return; } if Padre::Feature::FOLDING; *fold_this = sub { my $self = shift; my $currentLine = $self->GetCurrentLine; unless ( $self->GetFoldExpanded($currentLine) ) { $self->ToggleFold($currentLine); return; } while ( $currentLine >= 0 ) { if ( ( my $parentLine = $self->GetFoldParent($currentLine) ) > 0 ) { $self->ToggleFold($parentLine); return; } else { $currentLine--; } } return; } if Padre::Feature::FOLDING; *fold_all = sub { my $self = shift; my $lineCount = $self->GetLineCount; my $currentLine = $lineCount; while ( $currentLine >= 0 ) { if ( ( my $parentLine = $self->GetFoldParent($currentLine) ) > 0 ) { if ( $self->GetFoldExpanded($parentLine) ) { $self->ToggleFold($parentLine); $currentLine = $parentLine; } else { $currentLine--; } } else { $currentLine--; } } return; } if Padre::Feature::FOLDING; *unfold_all = sub { my $self = shift; my $lineCount = $self->GetLineCount; my $currentLine = 0; while ( $currentLine <= $lineCount ) { if ( !$self->GetFoldExpanded($currentLine) ) { $self->ToggleFold($currentLine); } $currentLine++; } return; } if Padre::Feature::FOLDING; *fold_pod = sub { my $self = shift; my $currentLine = 0; my $lastLine = $self->GetLineCount; while ( $currentLine <= $lastLine ) { if ( $self->GetLine($currentLine) =~ /^=(pod|head)/ ) { if ( $self->GetFoldExpanded($currentLine) ) { $self->ToggleFold($currentLine); my $foldLevel = $self->GetFoldLevel($currentLine); $currentLine = $self->GetLastChild( $currentLine, $foldLevel ); } $currentLine++; } else { $currentLine++; } } return; } if Padre::Feature::FOLDING; } ###################################################################### # Cursor Memory BEGIN { # # $doc->store_cursor_position # # store document's current cursor position in padre's db. # no params, no return value. # *store_cursor_position = sub { my $self = shift; my $document = $self->document or return; my $file = $document->{file} or return; Padre::DB::LastPositionInFile->set_last_pos( $file->filename, $self->GetCurrentPos, ); } if Padre::Feature::CURSORMEMORY; # # $doc->restore_cursor_position # # restore document's cursor position from padre's db. # no params, no return value. # *restore_cursor_position = sub { my $self = shift; my $document = $self->document or return; my $file = $document->{file} or return; my $filename = $file->filename; my $position = Padre::DB::LastPositionInFile->get_last_pos($filename); return unless defined $position; $self->goto_pos_centerize($position); } if Padre::Feature::CURSORMEMORY; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/StatusBar.pm����������������������������������������������������������������0000644�0001750�0001750�00000024473�12237327555�015633� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::StatusBar; =pod =head1 NAME Padre::Wx::StatusBar - Encapsulates status bar customizations =head1 DESCRIPTION C<Padre::Wx::StatusBar> implements Padre's status bar. It is the bottom pane holding various, err, status information on Padre. The information shown are (in order): =over 4 =item * File name of current document, with a leading star if file has been updated and not saved =item * (Optional) Icon showing status of background tasks =item * (Optional) MIME type of current document =item * Type of end of lines of current document =item * Position in current document =back It inherits from C<Wx::StatusBar>, so check Wx documentation to see all the available methods that can be applied to it besides the added ones (see below). =cut use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Current (); use Padre::Util (); use Padre::Wx (); use Padre::Wx::Icon (); use Padre::Wx::Role::Main (); use Padre::MIME (); use Class::XSAccessor { accessors => { _task_sbmp => '_task_sbmp', # Static bitmap holding the task status _task_status => '_task_status', # Current task status _task_width => '_task_width', # Current width of task field } }; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::StatusBar }; use constant { FILENAME => 0, TASKLOAD => 1, MIMETYPE => 2, NEWLINE => 3, POSTRING => 4, RDONLY => 5, }; ##################################################################### =pod =head1 METHODS =head2 C<new> my $statusbar = Padre::Wx::StatusBar->new( $main ); Create and return a new Padre status bar. One should pass the C<$main> Padre window as argument, to get a reference to the status bar parent. =cut sub new { my $class = shift; my $main = shift; # Create the basic object my $self = $class->SUPER::new( $main, -1, Wx::ST_SIZEGRIP | Wx::FULL_REPAINT_ON_RESIZE ); $self->{main} = $main; # create the static bitmap that will hold the task load status my $sbmp = Wx::StaticBitmap->new( $self, -1, Wx::NullBitmap ); $self->_task_sbmp($sbmp); $self->_task_status('foobar'); # init status to sthg defined # Wx::Event::EVT_LEFT_DOWN( # $sbmp, # sub { # require Padre::TaskManager; # Padre::TaskManager::on_dump_running_tasks(@_); # }, # ); # Set up the fields $self->SetFieldsCount(6); #$self->SetStatusWidths( -1, 0, 100, 100, 50, 100 ); # react to resize events, to adapt size of icon field Wx::Event::EVT_SIZE( $self, \&on_resize ); return $self; } ##################################################################### =pod =head2 C<clear> $statusbar->clear; Clear all the status bar fields, i.e. they will display an empty string in all fields. =cut sub clear { my $self = shift; $self->SetStatusText( "", FILENAME ); $self->SetStatusText( "", MIMETYPE ); $self->SetStatusText( "", NEWLINE ); $self->SetStatusText( "", POSTRING ); $self->SetStatusText( "", RDONLY ); return; } =pod =head2 C<say> $statusbar->say('Hello World!'); Temporarily overwrite only the leftmost filename part of the status bar. It will return to it's normal value when the status bar is next refreshed for normal reasons (such as a keystroke or a file panel switch). =cut sub say { $_[0]->SetStatusText( $_[1], FILENAME ); } =pod =head2 C<refresh> $statusbar->refresh; Force an update of the document fields in the status bar. =cut sub refresh { my $self = shift; my $current = $self->current; # Blank the status bar if no document is open my $editor = $current->editor or return $self->clear; # Prepare the various strings that form the status bar my $main = $self->{main}; my $document = $current->document; my $newline = $document->newline_type || Padre::Constant::NEWLINE; $self->{_last_editor} = $editor; $self->{_last_modified} = $editor->GetModify; my $position = $editor->GetCurrentPos; my $line = $editor->GetCurrentLine; my $start = $editor->PositionFromLine($line); my $lines = $editor->GetLineCount; my $char = $position - $start; my $width = $self->GetCharWidth; my $percent = int( 100 * $line / $lines ); my $mime_name = Wx::gettext( $document->mime->name ); my $format = '%' . length( $lines + 1 ) . 's,%-3s %3s%%'; my $length = length( $lines + 1 ) + 8; my $postring = sprintf( $format, ( $line + 1 ), $char, $percent ); my $rdstatus = $self->is_read_only; # update task load status $self->update_task_status; # Write the new values into the status bar and update sizes if ( defined( $main->{infomessage} ) and ( $main->{infomessage} ne '' ) and ( $main->{infomessage_timeout} > time ) ) { $self->SetStatusText( $main->{infomessage}, FILENAME ); } else { my $config = $self->config; $self->{_template_} = $main->process_template( $config->main_statusbar_template ); my $status = $main->process_template_frequent( $self->{_template_} ); $self->SetStatusText( $status, FILENAME ); } $self->SetStatusText( $mime_name, MIMETYPE ); $self->SetStatusText( $newline, NEWLINE ); $self->SetStatusText( $postring, POSTRING ); $self->SetStatusText( $rdstatus, RDONLY ); $self->SetStatusWidths( -1, $self->_task_width, ( length($mime_name) + 2 ) * $width, ( length($newline) + 2 ) * $width, ( $length + 2 ) * $width, ( length($rdstatus) + 2 ) * $width, ); # Move the static bitmap holding the task load status $self->_move_bitmap; return; } =pod =head2 C<update_task_status> $statusbar->update_task_status; Checks whether a task status icon update is in order and if so, changes the icon to one of the other states =cut sub update_task_status { my $self = shift; my $status = $self->_get_task_status; return if $status eq $self->_task_status; # Nothing to do # Store new status $self->_task_status($status); my $sbmp = $self->_task_sbmp; # If we're idling, just hide the icon in the statusbar if ( $status eq 'idle' ) { $sbmp->Hide; $sbmp->SetBitmap(Wx::NullBitmap); $sbmp->SetToolTip(''); $self->_task_width(0); return; } # Not idling, show the correct icon in the statusbar $sbmp->SetBitmap( Padre::Wx::Icon::find("status/padre-tasks-$status") ); $sbmp->SetToolTip( $status eq 'running' ? Wx::gettext('Background Tasks are running') : Wx::gettext('Background Tasks are running with high load') ); $sbmp->Show; $self->_task_width(20); } =pod =head2 C<update_pos> $statusbar->update_pos; Update the cursor position =cut sub update_pos { my $self = shift; my $current = $self->current; my $editor = $current->editor or return $self->clear; my $position = $editor->GetCurrentPos; # Skip expensive update if there is nothing to update: return if defined( $self->{Last_Pos} ) and ( $self->{Last_Pos} == $position ); # Detect modification: unless (defined( $self->{_last_editor} ) and ( $self->{_last_editor} eq $editor ) and defined( $self->{_last_modified} ) and ( $self->{_last_modified} == $editor->GetModify ) ) { # Either the tab has changed or the file has been modified: $self->refresh; } $self->{Last_Pos} = $position; my $line = $editor->GetCurrentLine; my $start = $editor->PositionFromLine($line); my $lines = $editor->GetLineCount; my $char = $position - $start; my $percent = int( 100 * ( $line + 1 ) / $lines ); my $format = '%' . length( $lines + 1 ) . 's,%-3s %3s%%'; my $postring = sprintf( $format, ( $line + 1 ), $char, $percent ); $self->SetStatusText( $postring, POSTRING ); } # this sub is called frequently, on every key stroke or mouse movement # TODO speed should be improved sub refresh_from_template { my $self = shift; return unless $self->{_template_}; my $main = $self->{main}; my $status = $main->process_template_frequent( $self->{_template_} ); $self->SetStatusText( $status, FILENAME ); return; } ##################################################################### =pod =head2 C<on_resize> $statusbar->on_resize( $event ); Handler for the C<EVT_SIZE> C<$event>. Used to move the task load bitmap to its position. =cut sub on_resize { my ($self) = @_; # note: parent resize method will be called automatically $self->_move_bitmap; $self->Refresh; } ##################################################################### # Private methods # # my $status = $self->_get_task_status; # # return 'idle', 'running' or 'load' depending on the number of threads # currently working. # sub _get_task_status { my $self = shift; my $manager = undef; # $self->current->ide->task_manager; # still in editor start-up phase, default to idle return 'idle' unless defined $manager; my $running = $manager->running_tasks; return 'idle' unless $running; my $max_workers = $manager->max_no_workers; my $jobs = $manager->task_queue->pending + $running; # high load is defined as the state when the number of # running and pending jobs is larger that twice the # MAXIMUM number of workers return ( $jobs > 2 * $max_workers ) ? 'load' : 'running'; } # # $statusbar->_move_bitmap; # # move the static bitmap holding the task load status to its proper location. # sub _move_bitmap { my ($self) = @_; my $sbmp = $self->_task_sbmp; my $rect = $self->GetFieldRect(TASKLOAD); my $size = $sbmp->GetSize; $sbmp->Move( $rect->GetLeft + ( $rect->GetWidth - $size->GetWidth ) / 2, $rect->GetTop + ( $rect->GetHeight - $size->GetHeight ) / 2, ); $sbmp->Refresh; } sub is_read_only { my ($self) = @_; my $document = $self->current->document; return '' unless defined($document); return $document->is_readonly ? Wx::gettext('Read Only') : Wx::gettext('Read Write'); } 1; =pod =head1 SEE ALSO Icons for background status courtesy of Mark James, at L<http://www.famfamfam.com/lab/icons/silk/>. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Style.pm��������������������������������������������������������������������0000644�0001750�0001750�00000001506�12237327555�015013� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Style; # A single sequence of styling method calls to be applied to an object use 5.008; use strict; use warnings; our $VERSION = '1.00'; sub new { my $class = shift; my $self = bless [], $class; return $self; } sub add { my $self = shift; push @$self, @_; return 1; } sub list { my $self = shift; return @$self; } sub include { my $self = shift; my $style = shift; push @$self, $style->list; return 1; } sub apply { my $self = shift; my $object = shift; my $i = 0; while ( my $method = $self->[ $i++ ] ) { my $params = $self->[ $i++ ]; $object->$method(@$params); } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/���������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014542� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/OpenURL.pm�����������������������������������������������������������0000644�0001750�0001750�00000007243�12237327555�016402� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::OpenURL; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; =pod =head1 NAME Padre::Wx::Dialog::OpenURL - a dialog for opening URLs =head2 C<new> my $find = Padre::Wx::Dialog::OpenURL->new($main); Create and return a C<Padre::Wx::Dialog::OpenURL> "Open URL" widget. =cut sub new { my $class = shift; my $main = shift; # Create the Wx dialog my $self = $class->SUPER::new( $main, -1, Wx::gettext('Open URL'), Wx::DefaultPosition, Wx::DefaultSize, Wx::CAPTION | Wx::CLOSE_BOX | Wx::SYSTEM_MENU ); # Form Components # Input combobox for the URL $self->{openurl_text} = Wx::ComboBox->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [], Wx::CB_DROPDOWN ); $self->{openurl_text}->SetSelection(-1); $self->{openurl_text}->SetFocus; # OK button (obviously) $self->{button_ok} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("&OK"), ); $self->{button_ok}->SetDefault; # Cancel button (obviously) $self->{button_cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("&Cancel"), ); # Form Layout # Sample URL label my $openurl_label = Wx::StaticText->new( $self, -1, Wx::gettext('e.g.') . ' http://svn.perlide.org/padre/trunk/Padre/Makefile.PL', Wx::DefaultPosition, Wx::DefaultSize, ); # Separator line between the controls and the buttons my $line_1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, ); # Main button cluster my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( $self->{button_ok}, 1, 0, 0 ); $button_sizer->Add( $self->{button_cancel}, 1, Wx::LEFT, 5 ); # The main layout for the dialog is vertical my $sizer_2 = Wx::BoxSizer->new(Wx::VERTICAL); $sizer_2->Add( $openurl_label, 0, 0, 0 ); $sizer_2->Add( $self->{openurl_text}, 0, Wx::TOP | Wx::EXPAND, 5 ); $sizer_2->Add( $line_1, 0, Wx::TOP | Wx::BOTTOM | Wx::EXPAND, 5 ); $sizer_2->Add( $button_sizer, 1, Wx::ALIGN_RIGHT, 5 ); # Wrap it in a horizontal to create an top level border my $sizer_1 = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizer_1->Add( $sizer_2, 1, Wx::ALL | Wx::EXPAND, 5 ); # Apply the top sizer in the stack to the window, # and tell the window and the sizer to alter size to fit # to each other correctly, regardless of the platform. # This type of sizing is NOT adaptive, so we must not use # Wx::RESIZE_BORDER with this dialog. $self->SetSizer($sizer_1); $sizer_1->Fit($self); $self->Layout; return $self; } =pod =head2 C<modal> my $url = Padre::Wx::Dialog::OpenURL->modal($main); Single-shot modal dialog call to get a URL from the user. Returns a string if the user clicks B<OK> (it may be a null string if they did not enter anything). Returns C<undef> if the user hits the cancel button. =cut sub modal { my $class = shift; my $self = $class->new(@_); my $ok = $self->ShowModal; my $rv = ( $ok == Wx::ID_OK ) ? $self->{openurl_text}->GetValue : undef; $self->Destroy; return $rv; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Replace.pm�����������������������������������������������������������0000644�0001750�0001750�00000007574�12237327555�016500� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Replace; use 5.008; use strict; use warnings; use Padre::Search (); use Padre::Wx::FBP::Replace (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::Replace'; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->CenterOnParent; return $self; } ###################################################################### # Main Methods sub run { my $self = shift; my $main = $self->main; my $find = $self->find_term; # If Find Fast is showing inherit settings from it if ( $main->has_findfast and $main->findfast->IsShown ) { $find->refresh( $main->findfast->find_term->GetValue ); $main->show_findfast(0); } else { $find->refresh( $self->current->text ); } $self->replace_term->refresh(''); # Refresh the dialog and prepare to show $self->refresh; if ( length $find->GetValue ) { $self->replace_term->SetFocus; } else { $find->SetFocus; } # Show the dialog $self->Show; } ###################################################################### # Event Handlers sub on_close { my $self = shift; my $event = shift; $self->Hide; $self->main->editor_focus; $event->Skip(1); } # Makes sure the find button is only enabled when the field # values are valid sub refresh { my $self = shift; my $show = $self->as_search ? 1 : 0; $self->find_next->Enable($show); $self->replace->Enable($show); $self->replace_all->Enable($show); return; } sub find_next_clicked { my $self = shift; my $search = $self->as_search or return; # Apply the search to the current editor if ( $self->main->search_next($search) ) { $self->find_term->SaveValue; $self->replace_term->SaveValue; } else { $self->no_matches; } return; } sub replace_clicked { my $self = shift; my $search = $self->as_search or return; # Replace the current selection, or find the next match # if the current selection is not a match. if ( $self->main->replace_next($search) ) { $self->find_term->SaveValue; $self->replace_term->SaveValue; } else { $self->no_matches; } return; } sub replace_all_clicked { my $self = shift; my $main = $self->main; my $search = $self->as_search or return; # Apply the search to the current editor my $changes = $main->replace_all($search); if ($changes) { $self->find_term->SaveValue; $self->replace_term->SaveValue; # remark: It would be better to use gettext for plural handling, but wxperl does not seem to support this at the moment. my $message_text = $changes == 1 ? Wx::gettext('Replaced %d match') : Wx::gettext('Replaced %d matches'); $main->info( sprintf( $message_text, $changes ), Wx::gettext('Search and Replace') ); } else { $main->info( sprintf( Wx::gettext('No matches found for "%s".'), $self->find_term->GetValue ), Wx::gettext('Search and Replace'), ); } # Move the focus back to the search text # so they can change it if they want. $self->find_term->SetFocus; return; } ###################################################################### # Support Methods sub no_matches { my $self = shift; $self->main->message( sprintf( Wx::gettext('No matches found for "%s".'), $self->find_term->GetValue, ), Wx::gettext('Search and Replace'), ); # Move the focus back to the search text # so they can change it if they want. $self->find_term->SetFocus; } # Generate a search object for the current dialog state sub as_search { my $self = shift; Padre::Search->new( find_term => $self->find_term->GetValue, find_case => $self->find_case->GetValue, find_regex => $self->find_regex->GetValue, replace_term => $self->replace_term->GetValue, ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/FilterTool.pm��������������������������������������������������������0000644�0001750�0001750�00000010610�12237327555�017171� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::FilterTool; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Icon (); our $VERSION = '1.00'; our @ISA = 'Wx::Dialog'; use Class::XSAccessor { accessors => { _butrun => '_butrun', # run button _combo => '_combo', # combo box _names => '_names', # list of all recent commands _sizer => '_sizer', # the window sizer } }; # -- constructor sub new { my ( $class, $parent ) = @_; # create object my $self = $class->SUPER::new( $parent, -1, Wx::gettext('Filter through tool'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE | Wx::TAB_TRAVERSAL, ); $self->SetIcon(Padre::Wx::Icon::PADRE); # create dialog $self->_create; return $self; } # -- public methods sub show { my $self = shift; $self->_refresh_combo; $self->Show; } # -- gui handlers # # $self->_on_butclose_clicked; # # handler called when the close button has been clicked. # sub _on_butclose_clicked { my $self = shift; $self->Destroy; } # # $self->_on_butrun_clicked; # # handler called when the run button has been clicked. # sub _on_butrun_clicked { my $self = shift; my $main = $self->GetParent; my $tool = $self->_combo->GetValue; if ( defined($tool) and ( $tool ne '' ) ) { # $filtertool = Padre::DB::FilterTool->new( # name => $self->_combo->GetValue, # last_update => time, # ); # $filtertool->insert; $main->filter_tool($tool); } # close dialog $self->Destroy; } # -- private methods # # $self->_create; # # create the dialog itself. # # no params, no return values. # sub _create { my $self = shift; # create sizer that will host all controls my $box = Wx::BoxSizer->new(Wx::VERTICAL); my $sizer = Wx::GridBagSizer->new( 5, 5 ); $sizer->AddGrowableCol(1); $box->Add( $sizer, 1, Wx::EXPAND | Wx::ALL, 5 ); $self->_sizer($sizer); $self->_create_fields; $self->_create_buttons; $self->SetSizer($box); $box->SetSizeHints($self); $self->CenterOnParent; $self->_combo->SetFocus; } # # $dialog->_create_fields; # # create the combo box with the recent commands. # # no params. no return values. # sub _create_fields { my $self = shift; my $sizer = $self->_sizer; my $lab1 = Wx::StaticText->new( $self, -1, Wx::gettext('Filter command:') ); my $combo = Wx::ComboBox->new( $self, -1, '' ); $sizer->Add( $lab1, Wx::GBPosition->new( 0, 0 ) ); $sizer->Add( $combo, Wx::GBPosition->new( 0, 1 ), Wx::GBSpan->new( 1, 3 ), Wx::EXPAND ); $self->_combo($combo); } # # $dialog->_create_buttons; # # create the buttons pane. # # no params. no return values. # sub _create_buttons { my $self = shift; my $sizer = $self->_sizer; # the buttons my $bs = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext('Run') ); my $bc = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('Close') ); Wx::Event::EVT_BUTTON( $self, $bs, \&_on_butrun_clicked ); Wx::Event::EVT_BUTTON( $self, $bc, \&_on_butclose_clicked ); $sizer->Add( $bs, Wx::GBPosition->new( 2, 2 ) ); $sizer->Add( $bc, Wx::GBPosition->new( 2, 3 ) ); $bs->SetDefault; $self->_butrun($bs); } # # $dialog->_refresh_combo; # # refresh combo box # sub _refresh_combo { my ( $self, $column, $reverse ) = @_; # get list of recent commands, sorted. # my @names = map { $_->name } Padre::DB::FilterTool->select('ORDER BY name'); # $self->_names( \@names ); # clear list & fill it again my $combo = $self->_combo; $combo->Clear; # $combo->Append($_) foreach @names; } 1; __END__ =head1 NAME Padre::Wx::Dialog::FilterTool - dialog to filter selection or document through an external tool =head1 DESCRIPTION This dialog asks for the tool which should be used to filter the current selection or the whole document. =head1 PUBLIC API =head2 Constructor =head3 C<new> my $dialog = Padre::Wx::Dialog::FilterTool->new( $parent ) Create and return a new Wx dialog allowing to select a filter tool. It needs a C<$parent> window (usually Padre's main window). =head2 Public methods =head3 C<show> $dialog->show; Request the dialog to be shown. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/PerlFilter.pm��������������������������������������������������������0000644�0001750�0001750�00000022024�12237327555�017160� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::PerlFilter; # Filter text through Perl source use 5.008; use strict; use warnings; use Padre::Wx 'RichText'; use Padre::Wx::Icon (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; ###################################################################### # Constructor sub new { my $class = shift; my $parent = shift; # Create the basic object my $self = $class->SUPER::new( $parent, -1, Wx::gettext('Perl Filter'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE, ); # Set basic dialog properties $self->SetIcon(Padre::Wx::Icon::PADRE); $self->SetMinSize( [ 380, 500 ] ); # create sizer that will host all controls my $sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->{sizer} = $sizer; # Create the controls $self->_create_controls($sizer); # Bind the control events $self->_bind_events; # Tune the size and position it appears $self->SetSizer($sizer); $self->Fit; $self->CentreOnParent; return $self; } sub _create_controls { my ( $self, $sizer ) = @_; # Dialog Controls, created in keyboard navigation order # Filter type $self->{filter_mode} = Wx::RadioBox->new( $self, -1, Wx::gettext('Input/output:'), Wx::DefaultPosition, Wx::DefaultSize, [ Wx::gettext('$_ for both'), # Wx::gettext('STDIN/STDOUT'), Wx::gettext('wrap in map { }'), Wx::gettext('wrap in grep { }'), ] ); $self->{filter_mode_values} = { # Set position of each filter mode default => 0, std => -1, 'map' => 1, 'grep' => 2, }; # Perl source my $source_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Perl filter source:') ); $self->{source} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::RE_MULTILINE | Wx::WANTS_CHARS ); # Input text my $original_label = Wx::StaticText->new( $self, -1, Wx::gettext('Or&iginal text:') ); $self->{original_text} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_MULTILINE | Wx::NO_FULL_REPAINT_ON_RESIZE ); # Matched readonly text field my $result_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Output text:') ); $self->{result_text} = Wx::RichTextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::RE_MULTILINE | Wx::RE_READONLY | Wx::WANTS_CHARS # Otherwise arrows will not work on win32 ); # Run the filter $self->{run_button} = Wx::Button->new( $self, -1, Wx::gettext('Run filter'), ); # Insert result into current document button_name $self->{insert_button} = Wx::Button->new( $self, -1, Wx::gettext('Insert'), ); # Close button $self->{close_button} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Close'), ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->AddStretchSpacer; $buttons->Add( $self->{run_button}, 0, Wx::ALL, 1 ); $buttons->Add( $self->{insert_button}, 0, Wx::ALL, 1 ); $buttons->Add( $self->{close_button}, 0, Wx::ALL, 1 ); $buttons->AddStretchSpacer; # Dialog Layout # Vertical layout of the left hand side my $left = Wx::BoxSizer->new(Wx::VERTICAL); $left->Add( $self->{filter_mode}, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $source_label, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{source}, 1, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $original_label, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{original_text}, 1, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $result_label, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{result_text}, 1, Wx::ALL | Wx::EXPAND, 1 ); $left->AddSpacer(5); $left->Add( $buttons, 0, Wx::ALL | Wx::EXPAND, 1 ); # Main sizer $sizer->Add( $left, 1, Wx::ALL | Wx::EXPAND, 5 ); } sub _bind_events { my $self = shift; # Wx::Event::EVT_KEY_DOWN( # $self, # sub { # my ($key_event) = $_[1]; # $self->Hide if $key_event->GetKeyCode == Wx::K_ESCAPE; # return; # } # ); Wx::Event::EVT_TEXT( $self, $self->{original_text}, sub { $_[0]->run; }, ); # Wx::Event::EVT_KEY_DOWN( # $self->{source}, # sub { # my ($key_event) = $_[1]; # $self->Hide if $key_event->GetKeyCode == Wx::K_ESCAPE; # return; # } # ); # # Wx::Event::EVT_KEY_DOWN( # $self->{original_text}, # sub { # my ($key_event) = $_[1]; # $self->Hide if $key_event->GetKeyCode == Wx::K_ESCAPE; # return; # } # ); # # Wx::Event::EVT_KEY_DOWN( # $self->{result_text}, # sub { # my ($key_event) = $_[1]; # $self->Hide if $key_event->GetKeyCode == Wx::K_ESCAPE; # return; # } # ); Wx::Event::EVT_BUTTON( $self, $self->{run_button}, sub { shift->run; }, ); Wx::Event::EVT_BUTTON( $self, $self->{insert_button}, sub { shift->_insert_result; }, ); } # # A private method that inserts the current regex into the current document # sub _insert_result { my $self = shift; my $editor = $self->current->editor or return; $editor->InsertText( $editor->GetCurrentPos, $self->{result_text}->GetValue ); return; } # -- public methods sub show { my $self = shift; if ( $self->IsShown ) { $self->SetFocus; } else { my $editor = $self->current->editor; # Insert sample, but do not overwrite an exisiting filter source $self->{source}->ChangeValue( Wx::gettext("# Input is in \$_\n\$_ = \$_;\n# Output goes to \$_\n") ) unless $self->{source}->GetValue; if ($editor) { my $selection = $editor->GetSelectedText; my $selection_length = length $selection; if ( $selection_length > 0 ) { $self->{original_text}->ChangeValue($selection); } else { $self->{original_text}->ChangeValue( $editor->GetText ); } } else { $self->{original_text}->ChangeValue(''); } $self->{result_text}->SetValue(''); $self->Show; } $self->{source}->SetFocus; return; } # # Returns the user input data of the dialog as a hashref # sub get_data { my $self = shift; my %data = ( text => { source => $self->{source}->GetValue, original_text => $self->{original_text}->GetValue, result_text => $self->{result_text}->GetValue, }, ); return \%data; } # # Sets the user input data of the dialog given a hashref containing the results of get_data # sub set_data { my ( $self, $data_ref ) = @_; foreach my $text_field ( keys %{ $data_ref->{text} } ) { $self->{$text_field}->SetValue( $data_ref->{text}->{$text_field} ); } return; } sub run { my $self = shift; my $source = $self->{source}->GetValue; my $original_text = $self->{original_text}->GetValue; my $filter_mode = $self->{filter_mode}->GetSelection; my $document = $self->current->document; my $nl = defined($document) ? $document->newline : "\n"; # Use (bad) default my $result_text; $self->{result_text}->Clear; local $@; my $code = eval "use utf8;package " . __PACKAGE__ . "::Sandbox;sub{$source\n}"; unless ($@) { if ( $filter_mode == $self->{filter_mode_values}->{default} ) { $result_text = eval { local $_ = $original_text; $code->(); $_; }; } elsif ( $filter_mode == $self->{filter_mode_values}->{std} ) { # TODO: use STDIN/STDOUT # $_ = $original_text; # $result_text = eval $source; } elsif ( $filter_mode == $self->{filter_mode_values}->{map} ) { $result_text = eval { join( $nl, map { $code->() } split( /$nl/, $original_text ) ); }; } elsif ( $filter_mode == $self->{filter_mode_values}->{grep} ) { $result_text = eval { join( $nl, grep { $code->() } split( /$nl/, $original_text ) ); }; } } # Common eval error handling if ($@) { # TODO: Set text color red $self->{result_text}->SetValue( Wx::gettext("Error:\n") . $@ ); } elsif ( defined $result_text ) { $self->{result_text}->SetValue($result_text); } else { # TODO: Set text color red $self->{result_text}->SetValue('undef'); } return; } 1; __END__ =pod =head1 NAME Padre::Wx::Dialog::PerlFilter - dialog to make it easy to create a regular expression =head1 DESCRIPTION The C<Regex Editor> provides an interface to easily create regular expressions used in Perl. The user can insert a regular expression (the surrounding C</> characters are not needed) and a text. The C<Regex Editor> will automatically display the matching text in the bottom right window. At the top of the window the user can select any of the four regular expression modifiers: =over =item Ignore case (i) =item Single-line (s) =item Multi-line (m) =item Extended (x) =back Global match Allow the change/replacement of the // around the regular expression Highlight the match in the source text instead of in a separate window Display the captured groups in a tree hierarchy similar to Rx ? Group Span (character) Value Match 0 (Group 0) 4-7 the actual match Display the various Perl variable containing the relevant values e.g. the C<@-> and C<@+> arrays, the C<%+> hash C<$1>, C<$2>... point out what to use instead of C<$@> and C<$'> and C<$`> English explanation of the regular expression =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/WindowList.pm��������������������������������������������������������0000644�0001750�0001750�00000025334�12237327555�017222� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::WindowList; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Icon (); our $VERSION = '1.00'; our @ISA = 'Wx::Dialog'; use Class::XSAccessor { accessors => { _butdelete => '_butdelete', # delete button _butopen => '_butopen', # open button _list => '_list', # list on the left of the pane _sortcolumn => '_sortcolumn', # column used for list sorting _sortreverse => '_sortreverse', # list sorting is reversed _vbox => '_vbox', # the window vbox sizer } }; # -- constructor sub new { my $class = shift; my $parent = shift; my %args = @_; # create object my $self = $class->SUPER::new( $parent, -1, Wx::gettext( $args{title} || Wx::gettext('Window list') ), Wx::DefaultPosition, Wx::Size->new( 480, 300 ), Wx::DEFAULT_FRAME_STYLE | Wx::TAB_TRAVERSAL, ); foreach ( keys %args ) { $self->{$_} = $args{$_}; } $self->{button_clicks} = [ \&_button_clicked_0, \&_button_clicked_1, \&_button_clicked_2, \&_button_clicked_3, \&_button_clicked_4, \&_button_clicked_5, \&_button_clicked_6, \&_button_clicked_7, \&_button_clicked_8, \&_button_clicked_9 ]; $self->SetIcon(Padre::Wx::Icon::PADRE); if ( scalar Padre->ide->wx->main->editors ) { # Create dialog $self->_create; } else { $self->{_empty} = 1; } return $self; } # -- public methods sub show { my $self = shift; if ( $self->{_empty} ) { $self->Destroy; return 0; } $self->{visible} = 1; $self->_refresh_list; $self->_select_first_item; $self->ShowModal; } # -- gui handlers # # $self->_on_butclose_clicked; # # handler called when the close button has been clicked. # sub _on_butclose_clicked { my $self = shift; $self->Destroy; $self->{visible} = 0; } sub _on_button_clicked { my $self = shift; my $button_no = shift; my @pages; foreach my $listitem ( 0 .. ( $self->_list->GetItemCount - 1 ) ) { my $item = $self->{items}->[ $self->_list->GetItem($listitem)->GetData ]; next unless $item->{selected}; push @pages, $item->{page}; } my $code = $self->{buttons}->[$button_no]->[1]; if ( ref($code) eq 'CODE' ) { &{$code}(@pages); } else { warn 'Button code is no CODE reference: ' . $code . ' (' . ref($code) . ')'; } $self->Destroy; $self->{visible} = 0; } # # $self->_on_list_col_click; # # handler called when a column has been clicked, to reorder the list. # sub _on_list_col_click { my ( $self, $event ) = @_; my $col = $event->GetColumn; my $prevcol = $self->_sortcolumn || 0; my $reversed = $self->_sortreverse || 0; $reversed = $col == $prevcol ? !$reversed : 0; $self->_sortcolumn($col); $self->_sortreverse($reversed); $self->_refresh_list( $col, $reversed ); } # # $self->_on_list_item_selected( $event ); # # handler called when a list item has been selected. it will in turn update # the buttons state. # # $event is a Wx::ListEvent. # sub _on_list_item_selected { my ( $self, $event ) = @_; $self->{items}->[ $event->GetIndex ]->{selected} = 1; # update buttons $self->_update_buttons_state; } # # $self->_on_list_item_deselected( $event ); # # handler called when a list item has lost selection. it will in turn update # the buttons state. # # $event is a Wx::ListEvent. # sub _on_list_item_deselected { my ( $self, $event ) = @_; $self->{items}->[ $event->GetIndex ]->{selected} = 0; # update buttons $self->_update_buttons_state; } # -- private methods # # $self->_create; # # create the dialog itself. it will have a list with all open files, and # some buttons to manage them. # # no params, no return values. # sub _create { my $self = shift; # create vertical box that will host all controls my $vbox = Wx::BoxSizer->new(Wx::VERTICAL); $self->SetSizer($vbox); $self->CenterOnParent; #$self->SetMinSize( [ 640, 480 ] ); $self->_vbox($vbox); $self->_create_list; $self->_create_options; $self->_create_buttons; $self->_list->SetFocus; } # # $dialog->_create_list; # # create the open file list. # # no params. no return values. # sub _create_list { my $self = shift; my $vbox = $self->_vbox; # title label my $label = Wx::StaticText->new( $self, -1, $self->{list_title} || Wx::gettext('List of open files') ); $vbox->Add( $label, 0, Wx::ALL, 5 ); # create list my $list = Wx::ListCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT, ); $list->InsertColumn( 0, Wx::gettext('Project') ); $list->InsertColumn( 1, Wx::gettext('File') ); $list->InsertColumn( 2, Wx::gettext('Editor') ); $list->InsertColumn( 3, Wx::gettext('Disk') ); $self->_list($list); # install event handler Wx::Event::EVT_LIST_ITEM_DESELECTED( $self, $list, \&_on_list_item_deselected ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $list, \&_on_list_item_selected ); Wx::Event::EVT_LIST_COL_CLICK( $self, $list, \&_on_list_col_click ); # pack the list $vbox->Add( $list, 1, Wx::ALL | Wx::EXPAND, 5 ); } # # $dialog->_create_options; # # create the options # # no params. no return values. # sub _create_options { my $self = shift; my $config = Padre->ide->config; # the hbox my $hbox = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->_vbox->Add( $hbox, 0, Wx::ALL | Wx::EXPAND, 5 ); # CheckBox # $self->{autosave} = Wx::CheckBox->new( # $self, # -1, # Wx::gettext('Save session automatically'), # ); # $self->{autosave}->SetValue( $config->session_autosave ? 1 : 0 ); # # $hbox->Add( $self->{autosave}, 0, Wx::ALL, 5 ); } # # $dialog->_create_buttons; # # create the buttons pane. # # no params. no return values. # sub _create_buttons { my $self = shift; # the hbox my $hbox = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->_vbox->Add( $hbox, 0, Wx::ALL | Wx::EXPAND, 5 ); # the buttons my $bc = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('Close') ); Wx::Event::EVT_BUTTON( $self, $bc, \&_on_butclose_clicked ); foreach my $button_no ( 0 .. $#{ $self->{buttons} || [] } ) { if ( !defined( $self->{button_clicks}->[$button_no] ) ) { warn 'Too many buttons defined!'; last; } my $button = $self->{buttons}->[$button_no]; $button->[2] = Wx::Button->new( $self, -1, $button->[0] ); Wx::Event::EVT_BUTTON( $self, $button->[2], $self->{button_clicks}->[$button_no] ); $hbox->Add( $button->[2], 0, Wx::ALL, 5 ); } $hbox->AddStretchSpacer; $hbox->Add( $bc, 0, Wx::ALL, 5 ); } # # $dialog->_refresh_list($column, $reverse); # # refresh list of open files. list is sorted according to $column (default to # first column), and may be reversed (default to no). # sub _refresh_list { my ( $self, $column, $reverse ) = @_; my $main = Padre->ide->wx->main; # default sorting $column ||= 0; $reverse ||= 0; # clear list & fill it again my $list = $self->_list; $list->DeleteAllItems; $self->{items} = []; # Clear foreach my $editor ( $main->editors ) { my $document = $editor->{Document}; my $disk_state = $document->has_changed_on_disk; next if $self->{no_fresh} and ( !( $document->is_modified or $disk_state ) ); my $filename; my $documentfile = $document->file; if ( defined($documentfile) ) { $filename = $documentfile->filename; my $project_dir = $document->project_dir; $filename =~ s/^\Q$project_dir\E// if defined($project_dir); # Apply filter (if any) if ( defined( $self->{filter} ) ) { next unless &{ $self->{filter} }( $editor, $project_dir, $filename, $document ); } } else { $filename = $document->get_title; } # inserting the file in the list my $item = Wx::ListItem->new; $item->SetId(0); $item->SetColumn(0); $item->SetText( defined( $document->project ) ? $document->project->name : '' ); $item->SetData( $#{ $self->{items} } ); my $idx = $list->InsertItem($item); splice @{ $self->{items} }, $idx, 0, { page => $editor }; $list->SetItem( $idx, 1, $filename ); $list->SetItem( $idx, 2, $document->is_modified ? Wx::gettext('CHANGED') : Wx::gettext('fresh') ); my $disk_text; if ( $disk_state == 0 ) { $disk_text = Wx::gettext('fresh'); } elsif ( $disk_state == -1 ) { $disk_text = Wx::gettext('DELETED'); } else { $disk_text = Wx::gettext('CHANGED'); } $list->SetItem( $idx, 3, $disk_text ); } # auto-resize columns my $flag = $list->GetItemCount ? Wx::LIST_AUTOSIZE : Wx::LIST_AUTOSIZE_USEHEADER; $list->SetColumnWidth( $_, $flag ) for 0 .. 2; # making sure the list can show all columns my $width = 15; # taking vertical scrollbar into account $width += $list->GetColumnWidth($_) for 0 .. 2; $list->SetMinSize( [ $width, -1 ] ); } # # $self->_select_first_item; # # select first item in the list, or none if there are none. in that case, # update the current row and name selection to undef. # sub _select_first_item { my $self = shift; # Select first item in the list my $list = $self->_list; if ( $list->GetItemCount ) { my $item = $list->GetItem(0); $item->SetState(Wx::LIST_STATE_SELECTED); $list->SetItem($item); } else { # Remove current selection foreach my $method (qw{ _currow _curname }) { next unless $self->can($method); $self->$method(undef); } } } # # $self->_update_buttons_state; # # update state of delete and open buttons: they should not be clickable if nothing # is selected. # sub _update_buttons_state { my ($self) = @_; my $count; foreach my $item ( @{ $self->{items} } ) { ++$count if $item->{selected}; } my $method = $count ? 'Enable' : 'Disable'; foreach my $button ( @{ $self->{buttons} || [] } ) { $button->[2]->$method if defined( $button->[2] ); } } # Sorry, I found no other way to solve this sub _button_clicked_0 { $_[0]->_on_button_clicked(0); } sub _button_clicked_1 { $_[0]->_on_button_clicked(1); } sub _button_clicked_2 { $_[0]->_on_button_clicked(2); } sub _button_clicked_3 { $_[0]->_on_button_clicked(3); } sub _button_clicked_4 { $_[0]->_on_button_clicked(4); } sub _button_clicked_5 { $_[0]->_on_button_clicked(5); } sub _button_clicked_6 { $_[0]->_on_button_clicked(6); } sub _button_clicked_7 { $_[0]->_on_button_clicked(7); } sub _button_clicked_8 { $_[0]->_on_button_clicked(8); } sub _button_clicked_9 { $_[0]->_on_button_clicked(9); } 1; __END__ =head1 NAME Padre::Wx::Dialog::WindowList - Windows list dialog for Padre =head1 DESCRIPTION This module could be used to apply custom actions to some of the open files/windows. =head1 PUBLIC API =head2 Constructor =head3 C<new> my $dialog = PWD::SM->new( $parent ) Create and return a new Wx dialog listing all the windows. It needs a C<$parent> window (usually Padre's main window). =head2 Public methods =head3 C<show> $dialog->show; Request the window list dialog to be shown. It will be refreshed first with a current list of open files/windows. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/RegexEditor.pm�������������������������������������������������������0000644�0001750�0001750�00000055362�12237327555�017344� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::RegexEditor; # The Regex Editor for Padre use 5.008; use strict; use warnings; use Padre::Wx 'RichText'; use Padre::Wx::Icon (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; ###################################################################### # Constructor sub new { my $class = shift; my $parent = shift; # Create the basic object my $self = $class->SUPER::new( $parent, -1, Wx::gettext('Regex Editor'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE, ); # Set basic dialog properties $self->SetIcon(Padre::Wx::Icon::PADRE); $self->SetMinSize( [ 380, 500 ] ); # create sizer that will host all controls my $sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->{sizer} = $sizer; # Create the controls $self->_create_controls($sizer); # Bind the control events $self->_bind_events; # Tune the size and position it appears $self->SetSizer($sizer); $self->Fit; $self->CentreOnParent; return $self; } # # A private method that returns a hash of regex groups along with their meaning # sub _regex_groups { my $self = shift; return ( '00' => { label => Wx::gettext('Character classes'), value => { '00.' => Wx::gettext('Any character except a newline'), '01\d' => Wx::gettext('Any decimal digit'), '02\D' => Wx::gettext('Any non-digit'), '03\s' => Wx::gettext('Any whitespace character'), '04\S' => Wx::gettext('Any non-whitespace character'), '05\w' => Wx::gettext('Any word character'), '06\W' => Wx::gettext('Any non-word character'), } }, '01' => { label => Wx::gettext('&POSIX Character classes'), value => { '00[:alpha:]' => Wx::gettext('Alphabetic characters'), '01[:alnum:]' => Wx::gettext('Alphanumeric characters'), '02[:ascii:]' => Wx::gettext('7-bit US-ASCII character'), '03[:blank:]' => Wx::gettext('Space and tab'), '04[:cntrl:]' => Wx::gettext('Control characters'), '05[:digit:]' => Wx::gettext('Digits'), '06[:graph:]' => Wx::gettext('Visible characters'), '07[:lower:]' => Wx::gettext('Lowercase characters'), '08[:print:]' => Wx::gettext('Visible characters and spaces'), '09[:punct:]' => Wx::gettext('Punctuation characters'), '10[:space:]' => Wx::gettext('Whitespace characters'), '11[:upper:]' => Wx::gettext('Uppercase characters'), '12[:word:]' => Wx::gettext('Alphanumeric characters plus "_"'), '13[:xdigit:]' => Wx::gettext('Hexadecimal digits'), } }, '02' => { label => Wx::gettext('&Quantifiers'), value => { '00*' => Wx::gettext('Match 0 or more times'), '01+' => Wx::gettext('Match 1 or more times'), '02?' => Wx::gettext('Match 1 or 0 times'), '03{m}' => Wx::gettext('Match exactly m times'), '05{n,}' => Wx::gettext('Match at least n times'), '05{m,n}' => Wx::gettext('Match at least m but not more than n times'), } }, '03' => { label => Wx::gettext('Miscellaneous'), value => { '00|' => Wx::gettext('Alternation'), '01[ ]' => Wx::gettext('Character set'), '02^' => Wx::gettext('Beginning of line'), '03$' => Wx::gettext('End of line'), '04\b' => Wx::gettext('A word boundary'), '05\B' => Wx::gettext('Not a word boundary'), '06(?# )' => Wx::gettext('A comment'), } }, '04' => { label => Wx::gettext('Grouping constructs'), value => { '00( )' => Wx::gettext('A group'), '01(?: )' => Wx::gettext('Non-capturing group'), '02(?= )' => Wx::gettext('Positive lookahead assertion'), '03(?! )' => Wx::gettext('Negative lookahead assertion'), '04(?<=)' => Wx::gettext('Positive lookbehind assertion'), '05(?<! )' => Wx::gettext('Negative lookbehind assertion'), '06\n' => Wx::gettext('Backreference to the nth group'), } }, # next list taken from perldoc perlre # most of these are not interesting for beginners so I am not sure we need to show them '05' => { label => Wx::gettext('Escape characters'), value => { '00\t' => Wx::gettext('Tab'), '01\n' => Wx::gettext('Newline'), '02\r' => Wx::gettext('Return'), '03\f' => Wx::gettext('Form feed'), '04\a' => Wx::gettext('Alarm'), '05\e' => Wx::gettext('Escape (Esc)'), '06\033' => Wx::gettext('Octal character'), '07\x1B' => Wx::gettext('Hex character'), '08\x{263a}' => Wx::gettext('Long hex character'), '09\cK' => Wx::gettext('Control character'), '10\N{name}' => Wx::gettext("Unicode character 'name'"), '11\l' => Wx::gettext('Lowercase next character'), '12\u' => Wx::gettext('Uppercase next character'), '13\L' => Wx::gettext('Lowercase till \E'), '14\U' => Wx::gettext('Uppercase till \E'), '15\E' => Wx::gettext('End case modification/metacharacter quoting'), '16\Q' => Wx::gettext('Quote (disable) pattern metacharacters till \E'), } }, ); } sub _create_controls { my ( $self, $sizer ) = @_; # Dialog Controls, created in keyboard navigation order # Regex text field my $regex_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Regular expression:') ); $self->{regex} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::RE_MULTILINE | Wx::WANTS_CHARS # Otherwise arrows will not work on win32 ); my %regex_groups = $self->_regex_groups; foreach my $code ( sort keys %regex_groups ) { my %sub_group = %{ $regex_groups{$code} }; my $button_name = $code . '_button'; $self->{$button_name} = Wx::Button->new( $self, -1, $sub_group{label}, ); my $menu_name = $code . '_menu'; Wx::Event::EVT_BUTTON( $self, $self->{$button_name}, sub { my @pos = $self->{$button_name}->GetPositionXY; my @size = $self->{$button_name}->GetSizeWH; $self->PopupMenu( $self->{$menu_name}, $pos[0], $pos[1] + $size[1] ); }, ); $self->{$menu_name} = Wx::Menu->new; my %sub_group_value = %{ $sub_group{value} }; foreach my $element ( sort keys %sub_group_value ) { my $label = $element; $label =~ s/^\d{2}//; my $menu_item = $self->{$menu_name}->Append( -1, $label . ' ' . $sub_group_value{$element} ); Wx::Event::EVT_MENU( $self, $menu_item, sub { $_[0]->{regex}->WriteText($label); }, ); } } # Optionally toggle the visibility of the description field $self->{description_checkbox} = Wx::CheckBox->new( $self, -1, Wx::gettext('Show &Description'), ); # Describe-the-regex text field $self->{description_text} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_MULTILINE | Wx::NO_FULL_REPAINT_ON_RESIZE ); # Description is hidden by default $self->{description_text}->Hide; # Original input text field my $original_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Original text:') ); $self->{original_text} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_MULTILINE | Wx::NO_FULL_REPAINT_ON_RESIZE ); # Matched readonly text field my $matched_label = Wx::StaticText->new( $self, -1, Wx::gettext('Matched text:') ); $self->{matched_text} = Wx::RichTextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::RE_MULTILINE | Wx::RE_READONLY | Wx::WANTS_CHARS # Otherwise arrows will not work on win32 ); # Toggle the visibility of the replace (substitution) fields $self->{replace_checkbox} = Wx::CheckBox->new( $self, -1, Wx::gettext('Show Subs&titution'), ); # Replace regex text field $self->{replace_label} = Wx::StaticText->new( $self, -1, Wx::gettext('&Replace text with:') ); $self->{replace_text} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_MULTILINE | Wx::NO_FULL_REPAINT_ON_RESIZE ); $self->{replace_label}->Hide; $self->{replace_text}->Hide; # Result from replace text field $self->{result_label} = Wx::StaticText->new( $self, -1, Wx::gettext('&Result from replace:') ); $self->{result_text} = Wx::RichTextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::RE_MULTILINE | Wx::RE_READONLY | Wx::WANTS_CHARS # otherwise arrows will not work on win32 ); $self->{result_label}->Hide; $self->{result_text}->Hide; # Insert regex into current document $self->{insert_button} = Wx::Button->new( $self, -1, Wx::gettext('Insert'), ); # Close button $self->{close_button} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Close'), ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->AddStretchSpacer; $buttons->Add( $self->{insert_button}, 0, Wx::ALL, 1 ); $buttons->Add( $self->{close_button}, 0, Wx::ALL, 1 ); $buttons->AddStretchSpacer; # Modifiers my %m = $self->_modifiers; foreach my $name ( $self->_modifier_keys ) { $self->{$name} = Wx::CheckBox->new( $self, -1, $m{$name}{name}, ); $self->{$name}->SetToolTip( Wx::ToolTip->new( $m{$name}{tooltip} ) ); } # Dialog Layout my $modifiers = Wx::BoxSizer->new(Wx::HORIZONTAL); $modifiers->AddStretchSpacer; $modifiers->Add( $self->{ignore_case}, 0, Wx::ALL, 1 ); $modifiers->Add( $self->{single_line}, 0, Wx::ALL, 1 ); $modifiers->Add( $self->{multi_line}, 0, Wx::ALL, 1 ); $modifiers->Add( $self->{extended}, 0, Wx::ALL, 1 ); $modifiers->Add( $self->{global}, 0, Wx::ALL, 1 ); $modifiers->AddStretchSpacer; my $regex = Wx::BoxSizer->new(Wx::VERTICAL); $regex->Add( $self->{regex}, 1, Wx::ALL | Wx::EXPAND, 1 ); my $regex_groups = Wx::BoxSizer->new(Wx::VERTICAL); foreach my $code ( sort keys %regex_groups ) { my $button_name = $code . '_button'; $regex_groups->Add( $self->{$button_name}, 0, Wx::EXPAND, 1 ); } my $combined = Wx::BoxSizer->new(Wx::HORIZONTAL); $combined->Add( $regex, 2, Wx::ALL | Wx::EXPAND, 0 ); $combined->Add( $regex_groups, 0, Wx::ALL | Wx::EXPAND, 0 ); # Vertical layout of the left hand side my $left = Wx::BoxSizer->new(Wx::VERTICAL); $left->Add( $modifiers, 0, Wx::ALL | Wx::EXPAND, 2 ); $left->AddSpacer(5); $left->Add( $regex_label, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $combined, 0, Wx::ALL | Wx::EXPAND, 2 ); $left->Add( $self->{description_checkbox}, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{description_text}, 2, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $original_label, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{original_text}, 1, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $matched_label, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{matched_text}, 1, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{replace_checkbox}, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{replace_label}, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{replace_text}, 1, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{result_label}, 0, Wx::ALL | Wx::EXPAND, 1 ); $left->Add( $self->{result_text}, 1, Wx::ALL | Wx::EXPAND, 1 ); $left->AddSpacer(5); $left->Add( $buttons, 0, Wx::ALL | Wx::EXPAND, 1 ); # Main sizer $sizer->Add( $left, 1, Wx::ALL | Wx::EXPAND, 5 ); } sub _bind_events { my $self = shift; Wx::Event::EVT_TEXT( $self, $self->{regex}, sub { $_[0]->run; }, ); Wx::Event::EVT_KEY_DOWN( $self, sub { my ($key_event) = $_[1]; $self->Hide if $key_event->GetKeyCode == Wx::K_ESCAPE; return; } ); Wx::Event::EVT_TEXT( $self, $self->{replace_text}, sub { $_[0]->run; }, ); Wx::Event::EVT_TEXT( $self, $self->{original_text}, sub { $_[0]->run; }, ); # Modifiers foreach my $name ( $self->_modifier_keys ) { Wx::Event::EVT_CHECKBOX( $self, $self->{$name}, sub { $_[0]->box_clicked($name); }, ); } # Description checkbox Wx::Event::EVT_CHECKBOX( $self, $self->{description_checkbox}, sub { # toggles the visibility of the description field if ( $self->{description_checkbox}->IsChecked ) { my $regex = $self->{regex}->GetValue; $self->{description_text}->SetValue( $self->_dump_regex($regex) ); } $self->{description_text}->Show( $self->{description_checkbox}->IsChecked ); $self->{sizer}->Layout; }, ); # Replace checkbox Wx::Event::EVT_CHECKBOX( $self, $self->{replace_checkbox}, sub { $self->replace; # toggles the visibility of the replace fields foreach my $field (qw(replace_label replace_text result_label result_text)) { $self->{$field}->Show( $self->{replace_checkbox}->IsChecked ); } $self->{sizer}->Layout; }, ); Wx::Event::EVT_KEY_DOWN( $self->{matched_text}, sub { my ($key_event) = $_[1]; $self->Hide if $key_event->GetKeyCode == Wx::K_ESCAPE; return; } ); Wx::Event::EVT_KEY_DOWN( $self->{result_text}, sub { my ($key_event) = $_[1]; $self->Hide if $key_event->GetKeyCode == Wx::K_ESCAPE; return; } ); Wx::Event::EVT_BUTTON( $self, $self->{insert_button}, sub { shift->_insert_regex; }, ); } # # A private method that inserts the current regex into the current document # sub _insert_regex { my $self = shift; my $match_part = $self->{regex}->GetValue; my $replace_part = $self->{replace_text}->GetValue; my ($modifiers) = $self->_get_modifier_settings; my $editor = $self->current->editor or return; if ( $self->{replace_checkbox}->IsChecked ) { $editor->InsertText( $editor->GetCurrentPos, "s/$match_part/$replace_part/$modifiers" ); } else { $editor->InsertText( $editor->GetCurrentPos, "m/$match_part/$modifiers" ); } return; } # # A private method that returns a hash of regex modifiers # sub _modifiers { return ( ignore_case => { mod => 'i', name => Wx::gettext('Ignore case (&i)'), tooltip => Wx::gettext('Case-insensitive matching') }, single_line => { mod => 's', name => Wx::gettext('Single-line (&s)'), tooltip => Wx::gettext('"." also matches newline') }, multi_line => { mod => 'm', name => Wx::gettext('Multi-line (&m)'), tooltip => Wx::gettext('"^" and "$" match the start and end of any line inside the string') }, extended => { mod => 'x', name => Wx::gettext('Extended (&x)'), tooltip => Wx::gettext('Extended regular expressions allow free formatting (whitespace is ignored) and comments') }, global => { mod => 'g', name => Wx::gettext('Global (&g)'), tooltip => Wx::gettext('Replace all occurrences of the pattern') }, ); } # # returns the regex modifier keys in the order they appear in the GUI # sub _modifier_keys { return qw{ ignore_case single_line multi_line extended global}; } # -- public methods sub show { my $self = shift; if ( $self->IsShown ) { $self->SetFocus; } else { my $editor = $self->current->editor; if ($editor) { my $selection = $editor->GetSelectedText; my $selection_length = length $selection; if ( $selection_length > 0 ) { $self->{regex}->ChangeValue($selection); } else { $self->{regex}->ChangeValue('\w+'); } } else { $self->{regex}->ChangeValue('\w+'); } $self->{replace_text}->ChangeValue('Baz'); $self->{original_text}->SetValue('Foo Bar'); $self->Show; } $self->{regex}->SetFocus; return; } # # Private method to dump the regular expression description as text # sub _dump_regex { if ( scalar @_ == 2 ) { my ( $self, $regex ) = @_; require PPIx::Regexp; return $self->_dump_regex( PPIx::Regexp->new("/$regex/"), '', 0 ); } my ( $self, $parent, $str, $level ) = @_; $str = '' unless $str; $level = 0 unless $level; my @children = $parent->isa('PPIx::Regexp::Node') ? $parent->children : (); foreach my $child (@children) { next if $child->content eq ''; my $class_name = $child->class; $class_name =~ s/PPIx::Regexp:://; $str .= ( ' ' x ( $level * 4 ) ) . $class_name . ' (' . $child->content . ")\n"; $str = $self->_dump_regex( $child, $str, $level + 1 ); } return $str; } # # Private method to return all the parsed regex elements as an array # sub _parse_regex_elements { my ( $parent, $position, @array ) = @_; $position = 0 unless $position; @array = () unless @array; my @elements = $parent->isa('PPIx::Regexp::Node') ? $parent->elements : (); foreach my $element (@elements) { my $content = $element->content; next if $content eq ''; my $class_name = $element->class; push @array, { element => $element, offset => $position, len => length $content }; @array = _parse_regex_elements( $element, $position, @array ); $position += length $content; } return @array; } # # Returns the user input data of the dialog as a hashref # sub get_data { my $self = shift; my %data = ( text => { regex => $self->{regex}->GetValue, replace => $self->{replace_text}->GetValue, original_text => $self->{original_text}->GetValue, }, modifiers => [ $self->_get_modifier_settings ], ); return \%data; } # # Sets the user input data of the dialog given a hashref containing the results of get_data # sub set_data { my ( $self, $data_ref ) = @_; foreach my $text_field ( keys %{ $data_ref->{text} } ) { $self->{$text_field}->SetValue( $data_ref->{text}->{$text_field} ); } my $modifier_string = $data_ref->{modifiers}->[0]; my %modifiers = $self->_modifiers; foreach my $name ( keys %modifiers ) { $self->{$name}->SetValue(1) if $modifier_string =~ s/$modifiers{$name}{mod}//; } return; } # # Private method to get the modifier settings as two strings # the first strings returns the active modifiers, the second the # inactive ones # sub _get_modifier_settings { my $self = shift; my $active_modifiers = ''; my $inactive_modifiers = ''; my %modifiers = $self->_modifiers; foreach my $name ( keys %modifiers ) { if ( $self->{$name}->IsChecked ) { $active_modifiers .= $modifiers{$name}{mod}; } else { $inactive_modifiers .= $modifiers{$name}{mod}; } } return ( $active_modifiers, $inactive_modifiers ); } sub run { my $self = shift; my $regex = $self->{regex}->GetValue; my $original_text = $self->{original_text}->GetValue; # TODO what about white space only regexes? if ( $regex eq '' ) { $self->{matched_text}->BeginTextColour(Wx::RED); $self->{matched_text}->SetValue( Wx::gettext('Empty regex') ); $self->{matched_text}->EndTextColour; return; } my ( $active, $inactive ) = $self->_get_modifier_settings; $self->{matched_text}->Clear; $self->{matched_text}->BeginTextColour(Wx::BLACK); my $match; my $match_start; my $match_end; my $result; my $warning; # Ignore warnings on win32. It's ugly but it works :) local $SIG{__WARN__} = sub { $warning = $_[0] }; # TODO loop on all matches in case of /g my $code = "\$result = \$original_text =~ /\$regex/$active; (\$match_start, \$match_end) = (\$-[0], \$+[0])"; eval $code; if ($@) { $self->{matched_text}->BeginTextColour(Wx::RED); $self->{matched_text}->SetValue( sprintf( Wx::gettext('Match failure in %s: %s'), $regex, $@ ) ); $self->{matched_text}->EndTextColour; return; } if ($result) { $match = substr( $original_text, $match_start, $match_end - $match_start ); } if ($warning) { $self->{matched_text}->BeginTextColour(Wx::RED); $self->{matched_text}->SetValue( sprintf( Wx::gettext('Match warning in %s: %s'), $regex, $warning ) ); $self->{matched_text}->EndTextColour; return; } if ( defined $match ) { if ( $match_start == $match_end ) { $self->{matched_text}->BeginTextColour(Wx::RED); $self->{matched_text} ->SetValue( sprintf( Wx::gettext('Match with 0 width at character %s'), $match_start ) ); $self->{matched_text}->EndTextColour; } else { my @chars = split( //, $original_text ); my $pos = 0; foreach my $char (@chars) { if ( $pos == $match_start ) { $self->{matched_text}->BeginTextColour(Wx::BLUE); $self->{matched_text}->BeginUnderline; } elsif ( $pos == $match_end ) { $self->{matched_text}->EndTextColour; $self->{matched_text}->EndUnderline; } $self->{matched_text}->AppendText($char); $pos++; } } } else { $self->{matched_text}->BeginTextColour(Wx::RED); $self->{matched_text}->SetValue( Wx::gettext('No match') ); $self->{matched_text}->EndTextColour; } $self->{matched_text}->EndTextColour; $self->replace; $self->{description_text}->SetValue( $self->_dump_regex($regex) ) if $self->{description_text}->IsShown; # $self->{regex}->Clear; # my @elements = _parse_regex_elements; # foreach my $element (@elements) { # my $class_name = $element->element->class; # if ($class_name eq 'PPIx::Regexp::Token::CharClass::Simple') { # $self->{regex}->BeginTextColour(Wx::RED); # } elsif( $class_name eq 'PPIx::Regexp::Token::Quantifier') { # $self->{regex}->BeginTextColour(Wx::BLUE); # } elsif( $class_name eq 'PPIx::Regexp::Token::Operator') { # $self->{regex}->BeginTextColour(Wx::LIGHT_GREY); # } elsif( $class_name eq 'PPIx::Regexp::Structure::Capture') { # $self->{regex}->BeginTextColour(Wx::CYAN); # } # $self->{regex}->AppendText($element->content); # $self->{regex}->EndTextColour; # } return; } sub replace { my $self = shift; return if !$self->{replace_checkbox}->IsChecked; my $regex = $self->{regex}->GetValue; my $result_text = $self->{original_text}->GetValue; my $replace = $self->{replace_text}->GetValue; my ( $active, $inactive ) = $self->_get_modifier_settings; $self->{result_text}->Clear; my $code = "\$result_text =~ s{\$regex}{$replace}$active"; eval $code; if ($@) { $self->{result_text}->BeginTextColour(Wx::RED); $self->{result_text}->AppendText( sprintf( Wx::gettext('Replace failure in %s: %s'), $regex, $@ ) ); $self->{result_text}->EndTextColour; return; } if ( defined $result_text ) { $self->{result_text}->SetValue($result_text); } return; } sub box_clicked { my $self = shift; $self->run; return; } 1; __END__ =pod =head1 NAME Padre::Wx::Dialog::RegexEditor - dialog to make it easy to create a regular expression =head1 DESCRIPTION The C<Regex Editor> provides an interface to easily create regular expressions used in Perl. The user can insert a regular expression (the surrounding C</> characters are not needed) and a text. The C<Regex Editor> will automatically display the matching text in the bottom right window. At the top of the window the user can select any of the four regular expression modifiers: =over =item Ignore case (i) =item Single-line (s) =item Multi-line (m) =item Extended (x) =back Global match Allow the change/replacement of the // around the regular expression Highlight the match in the source text instead of in a separate window Display the captured groups in a tree hierarchy similar to Rx ? Group Span (character) Value Match 0 (Group 0) 4-7 the actual match Display the various Perl variable containing the relevant values e.g. the C<@-> and C<@+> arrays, the C<%+> hash C<$1>, C<$2>... point out what to use instead of C<$@> and C<$'> and C<$`> English explanation of the regular expression =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Form.pm��������������������������������������������������������������0000644�0001750�0001750�00000006334�12237327555�016021� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Form; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Locale (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; =pod =head1 NAME Padre::Wx::Dialog::Form - A Dialog =cut sub new { my $class = shift; my $main = shift; # Create the Wx dialog my $self = $class->SUPER::new( $main, -1, Wx::gettext('A Dialog'), Wx::DefaultPosition, Wx::DefaultSize, Wx::CAPTION | Wx::CLOSE_BOX | Wx::SYSTEM_MENU ); my $label_1 = Wx::StaticText->new( $self, -1, Wx::gettext("Label One"), Wx::DefaultPosition, Wx::DefaultSize, ); my $text_ctrl_1 = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); my $label_2 = Wx::StaticText->new( $self, -1, Wx::gettext("Second Label"), Wx::DefaultPosition, Wx::DefaultSize, ); my $combo_box_1 = Wx::ComboBox->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [], Wx::CB_DROPDOWN, ); my $label_3 = Wx::StaticText->new( $self, -1, Wx::gettext("Whatever"), Wx::DefaultPosition, Wx::DefaultSize, ); my $choice_1 = Wx::Choice->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); my $static_line_1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, ); $self->{ok} = Wx::Button->new( $self, Wx::ID_OK, "", ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, "", ); $self->SetTitle( Wx::gettext("Padre") ); $combo_box_1->SetSelection(-1); $choice_1->SetSelection(0); $self->{ok}->SetDefault; my $sizer_7 = Wx::BoxSizer->new(Wx::HORIZONTAL); my $sizer_8 = Wx::BoxSizer->new(Wx::VERTICAL); $self->{button_sizer} = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->{form_sizer} = Wx::GridSizer->new( 3, 2, 5, 5, ); $self->{form_sizer}->Add( $label_1, 0, Wx::ALIGN_CENTER_VERTICAL, 0 ); $self->{form_sizer}->Add( $text_ctrl_1, 0, 0, 0 ); $self->{form_sizer}->Add( $label_2, 0, Wx::ALIGN_CENTER_VERTICAL, 0 ); $self->{form_sizer}->Add( $combo_box_1, 0, 0, 0 ); $self->{form_sizer}->Add( $label_3, 0, Wx::ALIGN_CENTER_VERTICAL, 0 ); $self->{form_sizer}->Add( $choice_1, 0, 0, 0 ); $sizer_8->Add( $self->{form_sizer}, 1, Wx::EXPAND, 0 ); $sizer_8->Add( $static_line_1, 0, Wx::TOP | Wx::BOTTOM | Wx::EXPAND, 5 ); $self->{button_sizer}->Add( $self->{ok}, 1, 0, 0 ); $self->{button_sizer}->Add( $self->{cancel}, 1, Wx::LEFT, 5 ); $sizer_8->Add( $self->{button_sizer}, 0, Wx::ALIGN_RIGHT, 5 ); $sizer_7->Add( $sizer_8, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizer($sizer_7); $sizer_7->Fit($self); return $self; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/OpenResource.pm������������������������������������������������������0000644�0001750�0001750�00000040012�12237327555�017516� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::OpenResource; use 5.008; use strict; use warnings; use Cwd (); use Padre::DB (); use Padre::MIME (); use Padre::Role::Task (); use Padre::Wx (); use Padre::Wx::Icon (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::Main (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Idle Padre::Wx::Role::Main Wx::Dialog }; # -- constructor sub new { my $class = shift; my $main = shift; # Create object my $self = $class->SUPER::new( $main, -1, Wx::gettext('Open Resources'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE | Wx::TAB_TRAVERSAL, ); $self->init_search; # Dialog's icon as is the same as Padre $self->SetIcon(Padre::Wx::Icon::PADRE); # Create dialog $self->_create; return $self; } # # Initialize search # sub init_search { my $self = shift; my $current = $self->current; my $document = $current->document; my $filename = $current->filename; my $project = $current->project; # Check if we have an open file so we can use its directory my $directory = $filename # Current document's project or base directory ? $project ? $project->root : File::Basename::dirname($filename) # Current working directory : Cwd::getcwd(); # Restart search if the project/current directory is different my $previous = $self->{directory}; if ( $previous && $previous ne $directory ) { $self->{matched_files} = undef; } $self->{directory} = $directory; $self->SetLabel( Wx::gettext('Open Resources') . ' - ' . $directory ); } # -- event handler # # handler called when the ok button has been clicked. # sub ok_button { my $self = shift; my $main = $self->main; $self->Hide; # Open the selected resources here if the user pressed OK my $lock = $main->lock('DB'); my $list = $self->{matches_list}; foreach my $selection ( $list->GetSelections ) { my $filename = $list->GetClientData($selection); # Fetch the recently used files from the database require Padre::DB::RecentlyUsed; my $recent = Padre::DB::RecentlyUsed->select( "where type = ? and value = ?", 'RESOURCE', $filename, ) || []; my $found = scalar @$recent > 0; eval { # Try to open the file now if ( my $id = $main->editor_of_file($filename) ) { my $page = $main->notebook->GetPage($id); $page->SetFocus; } else { $main->setup_editors($filename); } }; if ($@) { $main->error( sprintf( Wx::gettext('Error while trying to perform Padre action: %s'), $@ ) ); TRACE("Error while trying to perform Padre action: $@") if DEBUG; } else { # And insert a recently used tuple if it is not found # and the action is successful. if ($found) { Padre::DB->do( "update recently_used set last_used = ? where name = ? and type = ?", {}, time(), $filename, 'RESOURCE', ); } else { Padre::DB::RecentlyUsed->create( name => $filename, value => $filename, type => 'RESOURCE', last_used => time(), ); } } } } # -- private methods # # create the dialog itself. # sub _create { my $self = shift; # create sizer that will host all controls $self->{sizer} = Wx::BoxSizer->new(Wx::VERTICAL); # create the controls $self->_create_controls; $self->_create_buttons; # wrap everything in a vbox to add some padding $self->SetMinSize( [ 360, 340 ] ); $self->SetSizer( $self->{sizer} ); # center/fit the dialog $self->Fit; $self->CentreOnParent; } # # create the buttons pane. # sub _create_buttons { my $self = shift; $self->{ok_button} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext('&OK'), ); $self->{ok_button}->SetDefault; $self->{cancel_button} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Cancel'), ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->AddStretchSpacer; $buttons->Add( $self->{ok_button}, 0, Wx::ALL | Wx::EXPAND, 5 ); $buttons->Add( $self->{cancel_button}, 0, Wx::ALL | Wx::EXPAND, 5 ); $self->{sizer}->Add( $buttons, 0, Wx::ALL | Wx::EXPAND | Wx::ALIGN_CENTER, 5 ); Wx::Event::EVT_BUTTON( $self, Wx::ID_OK, \&ok_button ); } # # create controls in the dialog # sub _create_controls { my $self = shift; # search textbox my $search_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Select an item to open (? = any character, * = any string):') ); $self->{search_text} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, ); $self->{search_text}->SetToolTip( Wx::gettext('Enter parts of the resource name to find it') ); $self->{popup_button} = Wx::BitmapButton->new( $self, -1, Padre::Wx::Icon::find("actions/go-down") ); $self->{popup_button}->SetToolTip( Wx::gettext('Click on the arrow for filter settings') ); # matches result list my $matches_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Matching Items:') ); $self->{matches_list} = Wx::ListBox->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], Wx::LB_EXTENDED, ); $self->{matches_list}->SetToolTip( Wx::gettext('Select one or more resources to open') ); # Shows how many items are selected and information about what is selected $self->{status_text} = Wx::TextCtrl->new( $self, -1, Wx::gettext('Current Directory: ') . $self->{directory}, Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_READONLY, ); my $folder_image = Wx::StaticBitmap->new( $self, -1, Padre::Wx::Icon::find("places/stock_folder") ); $self->{copy_button} = Wx::BitmapButton->new( $self, -1, Padre::Wx::Icon::find("actions/edit-copy"), ); $self->{copy_button}->SetToolTip( Wx::gettext('Copy filename to clipboard') ); $self->{popup_menu} = Wx::Menu->new; $self->{skip_vcs_files} = $self->{popup_menu}->AppendCheckItem( -1, Wx::gettext("Skip version control system files"), ); $self->{skip_using_manifest_skip} = $self->{popup_menu}->AppendCheckItem( -1, Wx::gettext("Skip using MANIFEST.SKIP"), ); $self->{skip_vcs_files}->Check(1); $self->{skip_using_manifest_skip}->Check(1); my $hb; $self->{sizer}->AddSpacer(10); $self->{sizer}->Add( $search_label, 0, Wx::ALL | Wx::EXPAND, 2 ); $hb = Wx::BoxSizer->new(Wx::HORIZONTAL); $hb->AddSpacer(2); $hb->Add( $self->{search_text}, 1, Wx::ALIGN_CENTER_VERTICAL, 2 ); $hb->Add( $self->{popup_button}, 0, Wx::ALL | Wx::EXPAND, 2 ); $hb->AddSpacer(1); $self->{sizer}->Add( $hb, 0, Wx::BOTTOM | Wx::EXPAND, 5 ); $self->{sizer}->Add( $matches_label, 0, Wx::ALL | Wx::EXPAND, 2 ); $self->{sizer}->Add( $self->{matches_list}, 1, Wx::ALL | Wx::EXPAND, 2 ); $hb = Wx::BoxSizer->new(Wx::HORIZONTAL); $hb->AddSpacer(2); $hb->Add( $folder_image, 0, Wx::ALL | Wx::EXPAND, 1 ); $hb->Add( $self->{status_text}, 1, Wx::ALIGN_CENTER_VERTICAL, 1 ); $hb->Add( $self->{copy_button}, 0, Wx::ALL | Wx::EXPAND, 1 ); $hb->AddSpacer(1); $self->{sizer}->Add( $hb, 0, Wx::BOTTOM | Wx::EXPAND, 5 ); $self->_setup_events; return; } # # Adds various events # sub _setup_events { my $self = shift; Wx::Event::EVT_CHAR( $self->{search_text}, sub { my $this = shift; my $event = shift; my $code = $event->GetKeyCode; $self->{matches_list}->SetFocus if ( $code == Wx::K_DOWN ) or ( $code == Wx::K_UP ) or ( $code == Wx::K_NUMPAD_PAGEDOWN ) or ( $code == Wx::K_PAGEDOWN ) or ( $code == Wx::K_NUMPAD_PAGEUP ) or ( $code == Wx::K_PAGEUP ); $event->Skip(1); } ); Wx::Event::EVT_CHAR( $self->{matches_list}, sub { my $this = shift; my $event = shift; my $code = $event->GetKeyCode; $self->{search_text}->SetFocus unless ( $code == Wx::K_DOWN ) or ( $code == Wx::K_UP ) or ( $code == Wx::K_NUMPAD_PAGEDOWN ) or ( $code == Wx::K_PAGEDOWN ) or ( $code == Wx::K_NUMPAD_PAGEUP ) or ( $code == Wx::K_PAGEUP ); $event->Skip(1); } ); Wx::Event::EVT_TEXT( $self, $self->{search_text}, sub { unless ( $self->{matched_files} ) { $self->search; } $self->render; return; } ); Wx::Event::EVT_LISTBOX( $self, $self->{matches_list}, sub { my $self = shift; my @matches = $self->{matches_list}->GetSelections; my $num_selected = scalar @matches; if ( $num_selected == 1 ) { $self->{status_text} ->ChangeValue( $self->_path( $self->{matches_list}->GetClientData( $matches[0] ) ) ); $self->{copy_button}->Enable(1); } elsif ( $num_selected > 1 ) { $self->{status_text}->ChangeValue( $num_selected . " items selected" ); $self->{copy_button}->Enable(0); } else { $self->{status_text}->ChangeValue(''); $self->{copy_button}->Enable(0); } return; } ); Wx::Event::EVT_LISTBOX_DCLICK( $self, $self->{matches_list}, sub { $self->ok_button; } ); Wx::Event::EVT_BUTTON( $self, $self->{copy_button}, sub { my @matches = $self->{matches_list}->GetSelections; my $num_selected = scalar @matches; if ( $num_selected == 1 ) { if ( Wx::TheClipboard->Open ) { Wx::TheClipboard->SetData( Wx::TextDataObject->new( $self->{matches_list}->GetClientData( $matches[0] ) ) ); Wx::TheClipboard->Close; } } } ); Wx::Event::EVT_MENU( $self, $self->{skip_vcs_files}, sub { $self->restart; }, ); Wx::Event::EVT_MENU( $self, $self->{skip_using_manifest_skip}, sub { $self->restart; }, ); Wx::Event::EVT_BUTTON( $self, $self->{popup_button}, sub { my ( $self, $event ) = @_; $self->PopupMenu( $self->{popup_menu}, $self->{popup_button}->GetPosition->x, $self->{popup_button}->GetPosition->y + $self->{popup_button}->GetSize->GetHeight ); } ); $self->idle_method('show_recent'); } # # Restarts search # sub restart { my $self = shift; $self->search; $self->render; } # # Focus on it if it shown or restart its state and show it if it is hidden. # sub show { my $self = shift; $self->init_search; if ( $self->IsShown ) { $self->SetFocus; } else { my $editor = $self->current->editor; if ($editor) { my $selection = $editor->GetSelectedText; my $selection_length = length $selection; if ( $selection_length > 0 ) { $self->{search_text}->ChangeValue($selection); $self->restart; } else { $self->{search_text}->ChangeValue(''); } } else { $self->{search_text}->ChangeValue(''); } $self->idle_method('show_recent'); $self->Show(1); } } # Show recently opened resources sub show_recent { my $self = shift; $self->_show_recently_opened_resources; $self->{search_text}->SetFocus; return; } # # Shows the recently opened resources # sub _show_recently_opened_resources { my $self = shift; # Fetch them from Padre's RecentlyUsed database table require Padre::DB::RecentlyUsed; my $recently_used = Padre::DB::RecentlyUsed->select( 'where type = ? order by last_used desc', 'RESOURCE' ) || []; my @recent_files = (); foreach my $e (@$recently_used) { push @recent_files, $self->_path( $e->value ); } # Show results in matching items list $self->{matched_files} = \@recent_files; $self->render; # No need to store them anymore $self->{matched_files} = undef; } # # Search for files and cache result # sub search { my $self = shift; $self->{status_text}->ChangeValue( Wx::gettext('Reading items. Please wait...') ); # Kick off the resource search $self->task_request( task => 'Padre::Task::OpenResource', directory => $self->{directory}, skip_vcs_files => $self->{skip_vcs_files}->IsChecked, skip_using_manifest_skip => $self->{skip_using_manifest_skip}->IsChecked, ); return; } sub task_finish { my $self = shift; my $task = shift; my $matched = $task->{matched} or return; $self->{matched_files} = $matched; $self->render; return 1; } # # Update matches list box from matched files list # sub render { my $self = shift; return unless $self->{matched_files}; my $search_expr = $self->{search_text}->GetValue; # Quote the search string to make it safer # and then tranform * and ? into .* and . $search_expr = quotemeta $search_expr; $search_expr =~ s/\\\*/.*?/g; $search_expr =~ s/\\\?/./g; # Save user selections for later my @matches = $self->{matches_list}->GetSelections; # prepare more general search expression my $is_perl_package_expr = 0; if ( $search_expr =~ s/\\:\\:/\//g ) { # undo quotemeta and substitute / for :: $is_perl_package_expr = 1; } if ( $search_expr =~ s/\\:/\//g ) { # undo quotemeta and substitute / for : $is_perl_package_expr = 1; } # Populate the list box $self->{matches_list}->Clear; my $pos = 0; my %contains_file; # direct filename matches foreach my $file ( @{ $self->{matched_files} } ) { my $filename = File::Basename::fileparse($file); if ( $filename =~ /^$search_expr/i ) { # display package name if it is a Perl file my $pkg = ''; my $mime_type = Padre::MIME->detect( file => $file, perl6 => $self->config->lang_perl6_auto_detection, ); if ( $mime_type eq 'application/x-perl' or $mime_type eq 'application/x-perl6' ) { my $contents = Padre::Util::slurp($file); if ( $contents && $$contents =~ /\s*package\s+(.+);/ ) { $pkg = " ($1)"; } } $self->{matches_list}->Insert( $filename . $pkg, $pos, $file ); $contains_file{ $filename . $pkg } = 1; $pos++; } } # path matches my @ignore_path_extensions = '.t'; foreach my $file ( @{ $self->{matched_files} } ) { if ( $file =~ /^$self->{directory}.+$search_expr/i ) { my ( $filename, $path, $suffix ) = File::Basename::fileparse( $file, @ignore_path_extensions ); my $pkg_name = ''; if ( length $suffix > 0 ) { next unless $filename =~ /$search_expr/i; # ignore path for certain files $filename .= $suffix; # add suffix again } else { # display package name if it is a Perl file my $mime_type = Padre::MIME->detect( file => $file, perl6 => $self->config->lang_perl6_auto_detection, ); if ( $mime_type eq 'application/x-perl' or $mime_type eq 'application/x-perl6' ) { my $contents = Padre::Util::slurp($file); if ( $contents && $$contents =~ /\s*package\s+(.+);/ ) { $pkg_name = " ($1)"; } } else { next if $is_perl_package_expr; # do nothing if input contains : or :: } } unless ( exists $contains_file{ $filename . $pkg_name } ) { $self->{matches_list}->Insert( $filename . $pkg_name, $pos, $file ); $pos++; } } } if ( $pos > 0 ) { # keep the old user selection if it is possible $self->{matches_list}->Select( scalar @matches > 0 ? $matches[0] : 0 ); $self->{status_text}->ChangeValue( $self->_path( $self->{matches_list}->GetClientData(0) ) ); $self->{status_text}->Enable(1); $self->{copy_button}->Enable(1); $self->{ok_button}->Enable(1); } else { $self->{status_text}->ChangeValue(''); $self->{status_text}->Enable(0); $self->{copy_button}->Enable(0); $self->{ok_button}->Enable(0); } return; } # # Cleans a path on various platforms # sub _path { my $self = shift; my $path = shift; if (Padre::Constant::WIN32) { $path =~ s/\//\\/g; } return $path; } 1; __END__ =pod =head1 NAME Padre::Wx::Dialog::OpenResource - Open Resources dialog =head1 DESCRIPTION =head2 Open Resource (Shortcut: C<Ctrl+Shift+R>) This opens a nice dialog that allows you to find any file that exists in the current document or working directory. You can use C<?> to replace a single character or C<*> to replace an entire string. The matched files list are sorted alphabetically and you can select one or more files to be opened in Padre when you press the B<OK> button. You can simply ignore F<CVS>, F<.svn> and F<.git> folders using a simple check-box (enhancement over Eclipse). =head1 AUTHOR Ahmad M. Zawawi E<lt>ahmad.zawawi at gmail.comE<gt> =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/RefactorSelectFunction.pm��������������������������������������������0000644�0001750�0001750�00000013723�12237327555�021531� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::RefactorSelectFunction; # stolen from Padre::Wx::Dialog::SessionManager # This file is part of Padre, the Perl ide. use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Icon (); our $VERSION = '1.00'; our @ISA = 'Wx::Dialog'; use Class::XSAccessor { accessors => { _butselect => '_butselect', # select _currow => '_currow', # current list row number _curname => '_curname', # name of current session selected _list => '_list', # list on the left of the pane _sortcolumn => '_sortcolumn', # column used for list sorting _sortreverse => '_sortreverse', # list sorting is reversed _vbox => '_vbox', # the window vbox sizer } }; # -- constructor # pass in array reference for functions sub new { my ( $class, $parent, $functions ) = @_; # create object my $self = $class->SUPER::new( $parent, -1, Wx::gettext('Select Function'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE | Wx::TAB_TRAVERSAL, ); $self->{cancelled} = 0; $self->{functions} = $functions; $self->SetIcon(Padre::Wx::Icon::PADRE); # create dialog $self->_create; return $self; } sub get_function_name { my $self = shift; return $self->_curname; } sub show { my $self = shift; $self->_refresh_list; $self->_select_first_item; $self->ShowModal; } sub _create { my $self = shift; # create vertical box that will host all controls my $vbox = Wx::BoxSizer->new(Wx::VERTICAL); $self->SetSizer($vbox); $self->CenterOnParent; #$self->SetMinSize( [ 640, 480 ] ); $self->_vbox($vbox); $self->_create_list; $self->_create_buttons; $self->_list->SetFocus; } sub _create_list { my $self = shift; my $vbox = $self->_vbox; # title label my $label = Wx::StaticText->new( $self, -1, Wx::gettext("Select which subroutine you want the new subroutine\ninserted before.") ); $vbox->Add( $label, 0, Wx::ALL, 5 ); # create list my $list = Wx::ListView->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); $list->InsertColumn( 0, Wx::gettext('Function') ); $self->_list($list); # install event handler Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $list, \&_on_list_item_selected ); Wx::Event::EVT_LIST_ITEM_ACTIVATED( $self, $list, \&_on_list_item_activated ); Wx::Event::EVT_LIST_COL_CLICK( $self, $list, \&_on_list_col_click ); # pack the list $vbox->Add( $list, 1, Wx::ALL | Wx::EXPAND, 5 ); } sub _create_buttons { my $self = shift; # the hbox my $hbox = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->_vbox->Add( $hbox, 0, Wx::ALL | Wx::EXPAND, 5 ); # the buttons my $bs = Wx::Button->new( $self, -1, Wx::gettext('Select') ); my $bc = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('Cancel') ); $self->_butselect($bs); Wx::Event::EVT_BUTTON( $self, $bs, \&_on_butselect_clicked ); Wx::Event::EVT_BUTTON( $self, $bc, \&_on_butclose_clicked ); $hbox->Add( $bs, 0, Wx::ALL, 5 ); $hbox->AddStretchSpacer; $hbox->Add( $bc, 0, Wx::ALL, 5 ); } sub _refresh_list { my ( $self, $column, $reverse ) = @_; # default sorting $column ||= 0; $reverse ||= 0; my @sorted; if ($reverse) { @sorted = sort { uc($b) cmp uc($a) } @{ $self->{functions} }; } else { @sorted = sort { uc($a) cmp uc($b) } @{ $self->{functions} }; } # clear list & fill it again my $list = $self->_list; $list->DeleteAllItems; foreach my $function (@sorted) { # inserting the session in the list my $item = Wx::ListItem->new; $item->SetId(0); $item->SetColumn(0); $item->SetText($function); my $idx = $list->InsertItem($item); } # auto-resize columns my $flag = $list->GetItemCount ? Wx::LIST_AUTOSIZE : Wx::LIST_AUTOSIZE_USEHEADER; $list->SetColumnWidth( $_, $flag ) for 0 .. 2; # making sure the list can show all columns my $width = 15; # taking vertical scrollbar into account $width += $list->GetColumnWidth($_) for 0 .. 2; $list->SetMinSize( [ $width, -1 ] ); } sub _select_first_item { my ($self) = @_; # select first item in the list my $list = $self->_list; if ( $list->GetItemCount ) { my $item = $list->GetItem(0); $item->SetState(Wx::LIST_STATE_SELECTED); $list->SetItem($item); } else { # remove current selection $self->_currow(undef); $self->_curname(undef); } } sub _on_butclose_clicked { my $self = shift; $self->{cancelled} = 1; $self->Destroy; } # # $self->_on_butselect_clicked; # # handler called when the open button has been clicked. # sub _on_butselect_clicked { my $self = shift; # prevents crash if user double-clicks on list # item and tries to click buttons #$self->_butdelete->Disable; $self->_butselect->Disable; $self->Destroy; } # # $self->_on_list_col_click; # # handler called when a column has been clicked, to reorder the list. # sub _on_list_col_click { my ( $self, $event ) = @_; my $col = $event->GetColumn; my $prevcol = $self->_sortcolumn || 0; my $reversed = $self->_sortreverse || 0; $reversed = $col == $prevcol ? !$reversed : 0; $self->_sortcolumn($col); $self->_sortreverse($reversed); $self->_refresh_list( $col, $reversed ); } # # $self->_on_list_item_selected( $event ); # # handler called when a list item has been selected. it will in turn update # the buttons state. # # $event is a Wx::ListEvent. # sub _on_list_item_selected { my ( $self, $event ) = @_; my $name = $event->GetLabel; $self->_curname($name); # storing selected session $self->_currow( $event->GetIndex ); # storing selected row } # # $self->_on_list_item_activated( $event ); # # handler called when a list item has been double clicked. it will automatically open # the selected session # # $event is a Wx::ListEvent. # sub _on_list_item_activated { my ( $self, $event ) = @_; $self->_on_list_item_selected($event); $self->_on_butselect_clicked; } 1; __END__ # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Find.pm��������������������������������������������������������������0000644�0001750�0001750�00000004760�12237327555�015777� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Find; use 5.008; use strict; use warnings; use Padre::Search (); use Padre::Wx::FBP::Find (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::FBP::Find }; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->CenterOnParent; return $self; } ###################################################################### # Event Handlers sub on_close { my $self = shift; my $event = shift; $self->Hide; $self->main->editor_focus; $event->Skip(1); } sub find_next_clicked { my $self = shift; my $main = $self->main; my $search = $self->as_search; if ($search) { $self->find_term->SaveValue; } else { # Move the focus back to the search text # so they can tweak their search. $self->find_term->SetFocus; return; } # Apply the search to the current editor $main->search_next($search) and return; # If we're only searching once, we won't need the dialog any more $main->info( sprintf( Wx::gettext('No matches found for "%s".'), $self->find_term->GetValue, ), Wx::gettext('Search') ); # Move the focus back to the search text # so they can tweak their search. $self->find_term->SetFocus; return; } ###################################################################### # Main Methods sub run { my $self = shift; my $main = $self->main; my $find = $self->find_term; # If Find Fast is showing inherit settings from it if ( $main->has_findfast and $main->findfast->IsShown ) { $find->refresh( $main->findfast->find_term->GetValue ); $main->show_findfast(0); } else { $find->refresh( $self->current->text ); } # Refresh and show the dialog $self->refresh; $find->SetFocus; $self->Show; } # Ensure the find button is only enabled if the field values are valid sub refresh { my $self = shift; my $enable = $self->find_term->GetValue ne ''; $self->find_next->Enable($enable); $self->find_all->Enable($enable); } # Generate a search object for the current dialog state sub as_search { my $self = shift; Padre::Search->new( find_term => $self->find_term->GetValue, find_case => $self->find_case->GetValue, find_regex => $self->find_regex->GetValue, find_reverse => $self->find_reverse->GetValue, ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������Padre-1.00/lib/Padre/Wx/Dialog/Goto.pm��������������������������������������������������������������0000644�0001750�0001750�00000017644�12237327555�016034� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Goto; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; =pod =head1 NAME Padre::Wx::Dialog::Goto - a dialog to jump to a user-specified line/position =head1 PUBLIC API =head2 C<new> my $goto = Padre::Wx::Dialog::Goto->new($main); Returns a new C<Padre::Wx::Dialog::Goto> instance =cut sub new { my $class = shift; my $main = shift; # Create the Wx dialog my $self = $class->SUPER::new( $main, -1, Wx::gettext('Go to'), Wx::DefaultPosition, Wx::DefaultSize, Wx::RESIZE_BORDER | Wx::SYSTEM_MENU | Wx::CAPTION | Wx::CLOSE_BOX ); # Minimum dialog size $self->SetMinSize( [ 330, 180 ] ); # create sizer that will host all controls my $sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); # Create the controls $self->_create_controls($sizer); # Bind the control events $self->_bind_events; # wrap everything in a vbox to add some padding $self->SetSizer($sizer); $self->Fit; $self->CentreOnParent; return $self; } # # Create dialog controls # sub _create_controls { my ( $self, $sizer ) = @_; # a label to display current line/position $self->{current} = Wx::StaticText->new( $self, -1, '' ); # Goto line label $self->{goto_label} = Wx::StaticText->new( $self, -1, '' ); # Text field for the line number/position $self->{goto_text} = Wx::TextCtrl->new( $self, -1, '' ); # Status label $self->{status_line} = Wx::StaticText->new( $self, -1, '' ); # Line or position choice $self->{line_mode} = Wx::RadioBox->new( $self, -1, Wx::gettext('Position type'), Wx::DefaultPosition, Wx::DefaultSize, [ _ln(), _cp() ] ); # OK button (obviously) $self->{button_ok} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext('&OK'), ); $self->{button_ok}->SetDefault; $self->{button_ok}->Enable(0); # Cancel button (obviously) $self->{button_cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Cancel'), ); #----- Dialog Layout # Main button sizer my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( $self->{button_ok}, 1, 0, 0 ); $button_sizer->Add( $self->{button_cancel}, 1, Wx::LEFT, 5 ); $button_sizer->AddSpacer(5); # Create the main vertical sizer my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $self->{line_mode}, 0, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->Add( $self->{current}, 0, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->Add( $self->{goto_label}, 0, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->Add( $self->{goto_text}, 0, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->Add( $self->{status_line}, 0, Wx::ALL | Wx::EXPAND, 2 ); $vsizer->AddSpacer(5); $vsizer->Add( $button_sizer, 0, Wx::ALIGN_RIGHT, 5 ); $vsizer->AddSpacer(5); # Wrap with a horizontal sizer to get left/right padding $sizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); return; } # # Binds control events # sub _bind_events { my $self = shift; Wx::Event::EVT_ACTIVATE( $self, sub { my $self = shift; $self->_update_from_editor; $self->_update_label; $self->_validate; return; } ); Wx::Event::EVT_TEXT( $self, $self->{goto_text}, sub { $_[0]->_validate; return; } ); Wx::Event::EVT_RADIOBOX( $self, $self->{line_mode}, sub { my $self = shift; $self->_update_label; $self->_validate; return; }, ); Wx::Event::EVT_BUTTON( $self, $self->{button_cancel}, sub { $_[0]->Hide; return; } ); Wx::Event::EVT_BUTTON( $self, $self->{button_ok}, sub { $_[0]->_on_ok_button; return; }, ); } # # Private method to handle the pressing of the OK button # sub _on_ok_button { my $self = shift; # Fetch values my $line_mode = $self->{line_mode}->GetStringSelection eq _ln(); my $value = $self->{goto_text}->GetValue; # Destroy the dialog $self->Hide; if ( $value !~ m{^\d+$} ) { Padre::Current::_CURRENT->main->error( Wx::gettext('Not a positive number.') ); return; } my $editor = $self->current->editor; # Bounds checking my $max_value = $line_mode ? $self->{max_line_number} : $self->{max_position}; $value = $max_value if $value > $max_value; $value--; require Padre::Wx::Dialog::Positions; Padre::Wx::Dialog::Positions->set_position; # And then goto to the line or position # keeping it in the center of the editor # if possible if ($line_mode) { $editor->goto_line_centerize($value); } else { $editor->goto_pos_centerize($value); } return; } # # Private method to update the goto line/position label # sub _update_label { my $self = shift; my $line_mode = $self->{line_mode}->GetStringSelection; if ( $line_mode eq _ln() ) { $self->{goto_label} ->SetLabel( sprintf( Wx::gettext('&Enter a line number between 1 and %s:'), $self->{max_line_number} ) ); $self->{current}->SetLabel( sprintf( Wx::gettext('Current line number: %s'), $self->{current_line_number} ) ); } elsif ( $line_mode eq _cp() ) { $self->{goto_label} ->SetLabel( sprintf( Wx::gettext('&Enter a position between 1 and %s:'), $self->{max_position} ) ); $self->{current}->SetLabel( sprintf( Wx::gettext('Current position: %s'), $self->{current_position} ) ); } else { warn "Invalid choice value '$line_mode'\n"; } } # # Private method to validate user input # sub _validate { my $self = shift; my $line_mode = $self->{line_mode}->GetStringSelection eq _ln(); my $value = $self->{goto_text}->GetValue; # If it is empty, do not warn about it but disable it though if ( $value eq '' ) { $self->{status_line}->SetLabel(''); $self->{button_ok}->Enable(0); return; } # Should be an integer number if ( $value !~ /^\d+$/ ) { $self->{status_line}->SetLabel( Wx::gettext('Not a positive number.') ); $self->{button_ok}->Enable(0); return; } # Bounds checking my $editor = $self->current->editor; my $max_value = $line_mode ? $self->{max_line_number} : $self->{max_position}; if ( $value == 0 or $value > $max_value ) { $self->{status_line}->SetLabel( Wx::gettext('Out of range.') ); $self->{button_ok}->Enable(0); return; } # Not problem, enable everything and clear errors $self->{button_ok}->Enable(1); $self->{status_line}->SetLabel(''); } # # Private method to update statistics from the current editor # sub _update_from_editor { my $self = shift; # Get the current editor my $editor = $self->current->editor; unless ($editor) { $self->Hide; return 0; } # Update max line number and position fields $self->{max_line_number} = $editor->GetLineCount; $self->{max_position} = $editor->GetLength + 1; $self->{current_line_number} = $editor->GetCurrentLine + 1; $self->{current_position} = $editor->GetCurrentPos + 1; return 1; } =pod =head2 C<show> $goto->show($main); Show the dialog that the user can use to go to to a line number or character position. Returns C<undef>. =cut sub show { my $self = shift; # Update current, and max bounds from the current editor return unless $self->_update_from_editor; # Update Goto labels $self->_update_label; # Select all of the line number/position so the user can overwrite # it quickly if he wants it $self->{goto_text}->SetSelection( -1, -1 ); unless ( $self->IsShown ) { # If it is not shown, show the dialog $self->Show; } # Win32 tip: Always focus on wxwidgets controls only after # showing the dialog, otherwise you will lose the focus $self->{goto_text}->SetFocus; return; } sub _ln { Wx::gettext('Line number') } sub _cp { Wx::gettext('Character position') } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/SessionManager.pm����������������������������������������������������0000644�0001750�0001750�00000026411�12237327555�020032� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::SessionManager; # This file is part of Padre, the Perl ide. use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Icon (); use Padre::Current (); our $VERSION = '1.00'; our @ISA = 'Wx::Dialog'; use Class::XSAccessor { accessors => { _butdelete => '_butdelete', # delete button _butopen => '_butopen', # open button _currow => '_currow', # current list row number _curname => '_curname', # name of current session selected _list => '_list', # list on the left of the pane _sortcolumn => '_sortcolumn', # column used for list sorting _sortreverse => '_sortreverse', # list sorting is reversed _vbox => '_vbox', # the window vbox sizer } }; # -- constructor sub new { my ( $class, $parent ) = @_; # create object my $self = $class->SUPER::new( $parent, -1, Wx::gettext('Session Manager'), Wx::DefaultPosition, Wx::Size->new( 480, 300 ), Wx::DEFAULT_FRAME_STYLE | Wx::TAB_TRAVERSAL, ); $self->SetIcon(Padre::Wx::Icon::PADRE); # create dialog $self->_create; return $self; } # -- public methods sub show { my $self = shift; $self->_refresh_list; $self->_select_first_item; $self->_update_buttons_state; $self->Show; } # -- gui handlers # # $self->_on_butclose_clicked; # # handler called when the close button has been clicked. # sub _on_butclose_clicked { my $self = shift; $self->Destroy; } # # $self->_on_butdelete_clicked; # # handler called when the delete button has been clicked. # sub _on_butdelete_clicked { my $self = shift; my $current = $self->_current_session; # remove session: files, then session itself my $transaction = $self->GetParent->lock('DB'); Padre::DB::SessionFile->delete_where( 'session = ?', $current->id ); $current->delete; # update gui $self->_refresh_list; $self->_select_first_item; $self->_update_buttons_state; } # # $self->_on_butopen_clicked; # # handler called when the open button has been clicked. # sub _on_butopen_clicked { my $self = shift; my $main = $self->GetParent; # prevents crash if user double-clicks on list # item and tries to click buttons $self->_butdelete->Disable; $self->_butopen->Disable; if ( !defined( $self->_current_session ) ) { $main->error( sprintf( Wx::gettext("Something is wrong with your Padre database:\nSession %s is listed but there is no data"), $self->_curname ) ); return; } # Save autosave setting my $config = Padre->ide->config; $config->set( 'session_autosave', $self->{autosave}->GetValue ? 1 : 0 ); $config->write; # Open session $main->open_session( $self->_current_session, $self->{autosave}->GetValue ? 1 : 0 ); $self->Destroy; } # # $self->_on_list_col_click; # # handler called when a column has been clicked, to reorder the list. # sub _on_list_col_click { my ( $self, $event ) = @_; my $col = $event->GetColumn; my $prevcol = $self->_sortcolumn || 0; my $reversed = $self->_sortreverse || 0; $reversed = $col == $prevcol ? !$reversed : 0; $self->_sortcolumn($col); $self->_sortreverse($reversed); $self->_refresh_list( $col, $reversed ); } # # $self->_on_list_item_selected( $event ); # # handler called when a list item has been selected. it will in turn update # the buttons state. # # $event is a Wx::ListEvent. # sub _on_list_item_selected { my ( $self, $event ) = @_; my $name = $event->GetLabel; $self->_curname($name); # storing selected session $self->_currow( $event->GetIndex ); # storing selected row # update buttons $self->_update_buttons_state; } # # $self->_on_list_item_activated( $event ); # # handler called when a list item has been double clicked. it will automatically open # the selected session # # $event is a Wx::ListEvent. # sub _on_list_item_activated { my ( $self, $event ) = @_; $self->_on_list_item_selected($event); $self->_on_butopen_clicked; } # -- private methods # # $self->_create; # # create the dialog itself. it will have a list with all found sessions, and # some buttons to manage them. # # no params, no return values. # sub _create { my $self = shift; # create vertical box that will host all controls my $vbox = Wx::BoxSizer->new(Wx::VERTICAL); $self->SetSizer($vbox); $self->CenterOnParent; #$self->SetMinSize( [ 640, 480 ] ); $self->_vbox($vbox); $self->_create_list; $self->_create_options; $self->_create_buttons; $self->_list->SetFocus; } # # $dialog->_create_list; # # create the sessions list. it will hold a list of available sessions, along # with their description & last update. # # no params. no return values. # sub _create_list { my $self = shift; my $vbox = $self->_vbox; # title label my $label = Wx::StaticText->new( $self, -1, Wx::gettext('List of sessions') ); $vbox->Add( $label, 0, Wx::ALL, 5 ); # create list my $list = Wx::ListView->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); $list->InsertColumn( 0, Wx::gettext('Name') ); $list->InsertColumn( 1, Wx::gettext('Description') ); $list->InsertColumn( 2, Wx::gettext('Last update') ); $self->_list($list); # install event handler Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $list, \&_on_list_item_selected ); Wx::Event::EVT_LIST_ITEM_ACTIVATED( $self, $list, \&_on_list_item_activated ); Wx::Event::EVT_LIST_COL_CLICK( $self, $list, \&_on_list_col_click ); # pack the list $vbox->Add( $list, 1, Wx::ALL | Wx::EXPAND, 5 ); } # # $dialog->_create_options; # # create the options # # no params. no return values. # sub _create_options { my $self = shift; my $config = Padre->ide->config; # the hbox my $hbox = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->_vbox->Add( $hbox, 0, Wx::ALL | Wx::EXPAND, 5 ); # CheckBox $self->{autosave} = Wx::CheckBox->new( $self, -1, Wx::gettext('&Save session automatically'), ); $self->{autosave}->SetValue( $config->session_autosave ? 1 : 0 ); # Wx::Event::EVT_CHECKBOX( # $self, # $self->{autosave}, # sub { # $_[0]->{find_text}->SetFocus; # } # ); $hbox->Add( $self->{autosave}, 0, Wx::ALL, 5 ); } # # $dialog->_create_buttons; # # create the buttons pane. # # no params. no return values. # sub _create_buttons { my $self = shift; # the hbox my $hbox = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->_vbox->Add( $hbox, 0, Wx::ALL | Wx::EXPAND, 5 ); # the buttons my $bo = Wx::Button->new( $self, -1, Wx::gettext('&Open') ); my $bd = Wx::Button->new( $self, -1, Wx::gettext('&Delete') ); my $bc = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Close') ); $self->_butopen($bo); $self->_butdelete($bd); Wx::Event::EVT_BUTTON( $self, $bo, \&_on_butopen_clicked ); Wx::Event::EVT_BUTTON( $self, $bd, \&_on_butdelete_clicked ); Wx::Event::EVT_BUTTON( $self, $bc, \&_on_butclose_clicked ); $hbox->Add( $bo, 0, Wx::ALL, 5 ); $hbox->Add( $bd, 0, Wx::ALL, 5 ); $hbox->AddStretchSpacer; $hbox->Add( $bc, 0, Wx::ALL, 5 ); } # # my $session = $self->_current_session; # # return the padre::db::session object corresponding to currently selected line # in the list. return undef if no object selected. # sub _current_session { my $self = shift; my ($current) = Padre::DB::Session->select( 'where name = ?', $self->_curname ); # The session name may get some spaces around it even if they are not in the database # This workaround removes all leading/following spaces and tries loading again if ( !defined($current) ) { my $curname = $self->_curname; $curname =~ s/^\s*(.+?)\s*$/$1/; ($current) = Padre::DB::Session->select( 'where name = ?', $curname ); } return $current; } # # $dialog->_refresh_list($column, $reverse); # # refresh list of sessions. list is sorted according to $column (default to # first column), and may be reversed (default to no). # sub _refresh_list { my ( $self, $column, $reverse ) = @_; my $config = Padre::Current->config; if ( defined($column) and defined($reverse) ) { $config->set( 'sessionmanager_sortorder', join( ',', $column, $reverse ) ); $config->write; } else { ( $column, $reverse ) = split( /,/, $config->sessionmanager_sortorder ); } # default sorting $column ||= 0; $reverse ||= 0; my @fields = qw{ name description last_update }; # db fields of table session # get list of sessions, sorted. my $sort = "ORDER BY $fields[$column]"; $sort .= ' DESC' if $reverse; my @sessions = Padre::DB::Session->select($sort); # clear list & fill it again my $list = $self->_list; $list->DeleteAllItems; foreach my $session ( reverse @sessions ) { my $name = $session->name; my $descr = $session->description; # adjust name and description length (fix #1124) if ( length $name < 10 ) { $name .= ' ' x ( 10 - length $name ); } if ( length $descr < 30 ) { $descr .= ' ' x ( 30 - length $descr ); } require POSIX; my $update = POSIX::strftime( '%Y-%m-%d %H:%M:%S', localtime $session->last_update, ); # insert the session in the list my $item = Wx::ListItem->new; $item->SetId(0); $item->SetColumn(0); $item->SetText($name); my $idx = $list->InsertItem($item); $list->SetItem( $idx, 1, $descr ); $list->SetItem( $idx, 2, $update ); } # auto-resize columns my $flag = $list->GetItemCount ? Wx::LIST_AUTOSIZE : Wx::LIST_AUTOSIZE_USEHEADER; $list->SetColumnWidth( $_, $flag ) for 0 .. 2; # making sure the list can show all columns my $width = 15; # taking vertical scrollbar into account $width += $list->GetColumnWidth($_) for 0 .. 2; $list->SetMinSize( [ $width, -1 ] ); } # # $self->_select_first_item; # # select first item in the list, or none if there are none. in that case, # update the current row and name selection to undef. # sub _select_first_item { my ($self) = @_; # select first item in the list my $list = $self->_list; if ( $list->GetItemCount ) { my $item = $list->GetItem(0); $item->SetState(Wx::LIST_STATE_SELECTED); $list->SetItem($item); } else { # remove current selection $self->_currow(undef); $self->_curname(undef); } } # # $self->_update_buttons_state; # # update state of delete and open buttons: they should not be clickable if no # session is selected. # sub _update_buttons_state { my ($self) = @_; my $method = defined( $self->_currow ) ? 'Enable' : 'Disable'; $self->_butdelete->$method; $self->_butopen->$method; } 1; __END__ =head1 NAME Padre::Wx::Dialog::SessionManager - Session manager dialog for Padre =head1 DESCRIPTION Padre supports sessions, that is, a bunch of files opened. But we need to provide a way to manage those sessions: listing, removing them, etc. This module implements this task as a dialog for Padre. =head1 PUBLIC API =head2 Constructor =head3 C<new> my $dialog = PWD::SM->new( $parent ) Create and return a new Wx dialog listing all the sessions. It needs a C<$parent> window (usually Padre's main window). =head2 Public methods =head3 C<show> $dialog->show; Request the session manager dialog to be shown. It will be refreshed first with a current list of sessions. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Warning.pm�����������������������������������������������������������0000644�0001750�0001750�00000004470�12237327555�016522� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Warning; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Locale (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; =pod =head1 NAME Padre::Wx::Dialog::Warning - A Dialog =cut sub new { my $class = shift; my $main = shift; # Create the Wx dialog my $self = $class->SUPER::new( $main, -1, Wx::gettext('A Dialog'), Wx::DefaultPosition, Wx::DefaultSize, Wx::CAPTION | Wx::CLOSE_BOX | Wx::SYSTEM_MENU ); $self->{warning_label} = Wx::StaticText->new( $self, -1, Wx::gettext("See http://padre.perlide.org/ for update information"), Wx::DefaultPosition, Wx::DefaultSize, Wx::ALIGN_CENTRE, ); $self->{warning_checkbox} = Wx::CheckBox->new( $self, -1, Wx::gettext("Do not show this again"), Wx::DefaultPosition, Wx::DefaultSize, ); my $line_1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, ); $self->{ok_button} = Wx::Button->new( $self, Wx::ID_OK, "", ); $self->SetTitle( Wx::gettext("Warning") ); my $sizer_4 = Wx::BoxSizer->new(Wx::HORIZONTAL); my $sizer_5 = Wx::BoxSizer->new(Wx::VERTICAL); my $sizer_6 = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizer_5->Add( $self->{warning_label}, 0, 0, 0 ); $sizer_5->Add( $self->{warning_checkbox}, 0, Wx::TOP | Wx::EXPAND, 5 ); $sizer_5->Add( $line_1, 0, Wx::TOP | Wx::BOTTOM | Wx::EXPAND, 5 ); $sizer_6->Add( $self->{ok_button}, 0, 0, 0 ); $sizer_5->Add( $sizer_6, 1, Wx::ALIGN_CENTER_HORIZONTAL, 5 ); $sizer_4->Add( $sizer_5, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizer($sizer_4); $sizer_4->Fit($self); return $self; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/PluginManager.pm�����������������������������������������������������0000644�0001750�0001750�00000021410�12237327555�017637� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::PluginManager; use 5.010; use strict; use warnings; no if $] > 5.017010, warnings => 'experimental::smartmatch'; use Padre::Wx::Util (); use Padre::Wx::Icon (); use Padre::Wx::FBP::PluginManager (); use Padre::Locale::T; use Try::Tiny; our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::PluginManager'; use constant { RED => Wx::Colour->new('red'), DARK_GREEN => Wx::Colour->new( 0x00, 0x90, 0x00 ), BLUE => Wx::Colour->new('blue'), GRAY => Wx::Colour->new('gray'), DARK_GRAY => Wx::Colour->new( 0x7f, 0x7f, 0x7f ), BLACK => Wx::Colour->new('black'), }; ###################################################################### # Class Methods ##### sub run { my $class = shift; my $self = $class->new(@_); $self->ShowModal; $self->Destroy; return 1; } ###################################################################### # Constructor ##### sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->{handle} = 'empty'; # This is a core dialog so apply the Padre icon $self->SetIcon(Padre::Wx::Icon::PADRE); # Prepare to be shown $self->SetSize( [ 760, 480 ] ); $self->CenterOnParent; # TODO Active should be droped, just on show for now # Setup columns names, Active should be droped, just and order here # my @column_headers = qw( Path Line Active ); do not remove my @column_headers = ( 'Plug-in Name', 'Version', 'Status', 'Plug-in Class' ); my $index = 0; for my $column_header (@column_headers) { $self->{list}->InsertColumn( $index++, Wx::gettext($column_header) ); } # Select the first item in CrtList $self->{list_focus} = 0; # Image List $self->{imagelist} = Wx::ImageList->new( 16, 16, 1 ); $self->{list}->AssignImageList( $self->{imagelist}, Wx::IMAGE_LIST_SMALL, ); # Do an initial refresh of the plugin list_two $self->refresh; $self->refresh_plugin; return $self; } ###################################################################### # Event Handlers sub refresh_plugin { my $self = shift; my $handle = $self->selected or return; # Update the basic fields SCOPE: { my $lock = $self->lock_update; # Update the details fields $self->{plugin_name}->SetLabel( $handle->plugin_name ); $self->{plugin_version}->SetLabel( $handle->plugin_version ); $self->{plugin_status}->SetLabel( $handle->status_localized ); # Only show the preferences button if the plugin has them if ( $handle->plugin_can('plugin_preferences') ) { $self->{preferences}->Show; } else { $self->{preferences}->Hide; } # Update the action button if ( $handle->error or $handle->incompatible ) { $self->{action}->{method} = 'explain_selected'; $self->{action}->SetLabel( Wx::gettext('&Show Error Message') ); $self->{action}->Enable; $self->{preferences}->Disable; } elsif ( $handle->enabled ) { $self->{action}->{method} = 'disable_selected'; $self->{action}->SetLabel( Wx::gettext('&Disable') ); $self->{action}->Enable; $self->{preferences}->Disable; } elsif ( $handle->can_enable ) { $self->{action}->{method} = 'enable_selected'; $self->{action}->SetLabel( Wx::gettext('&Enable') ); $self->{action}->Enable; $self->{preferences}->Enable; } else { $self->{action}->{method} = 'enable_selected'; $self->{action}->SetLabel( Wx::gettext('&Enable') ); $self->{action}->Disable; $self->{preferences}->Disable; } # Update the layout for the changed interface $self->{details}->Layout; } # Find the documentation require Padre::Browser; my $browser = Padre::Browser->new; my $class = $handle->class // 'Padre::Plugin::My'; my $doc = $browser->resolve($class); # Render the documentation. # TODO Convert this to a background task later local $@; my $output = eval { $browser->browse($doc) }; my $html = $@ ? sprintf( Wx::gettext("Error loading pod for class '%s': %s"), $class, $@, ) : $output->body; $self->{whtml}->SetPage($html); return 1; } sub action_clicked { my $self = shift; # say 'in action_clicked'; my $method = $self->{action}->{method} or return; # p $method; # p $self->$method(); $self->$method(); } sub preferences_clicked { my $self = shift; my $handle = $self->selected or return; # p $handle; # my $handle = $self->handle or return; $handle->plugin_preferences; } ###################################################################### # Main Methods sub refresh { my $self = shift; # Clear image list & fill it again $self->{imagelist}->RemoveAll; # Default plug-in icon $self->{imagelist}->Add( Padre::Wx::Icon::find('status/padre-plugin') ); # Clear ListCtrl items $self->{list}->DeleteAllItems; my $index = 0; # Fill the list_two from the plugin handles foreach my $handle ( $self->ide->plugin_manager->handles ) { if ( $self->{handle} eq 'empty' ) { if ( $handle->plugin_name eq 'My Plugin' ) { $self->{handle} = $handle; } } # Check if plug-in is supplying its own icon my $position = 0; my $icon = $handle->plugin_icon; if ( defined $icon ) { $self->{imagelist}->Add($icon); $position = $self->{imagelist}->GetImageCount - 1; } # Inserting the plug-in in the list $self->{list}->InsertStringImageItem( $index, $handle->plugin_name, $position, ); given ( $handle->status ) { when ( $_ eq 'enabled' ) { $self->{list}->SetItemTextColour( $index, BLUE ); } when ( $_ eq 'disabled' ) { $self->{list}->SetItemTextColour( $index, BLACK ); } when ( $_ eq 'incompatible' ) { $self->{list}->SetItemTextColour( $index, DARK_GRAY ); } when ( $_ eq 'error' ) { $self->{list}->SetItemTextColour( $index, RED ); } } # $self->{list}->SetItem( $index, 0, $handle->plugin_name ); $self->{list}->SetItem( $index, 1, $handle->plugin_version || '???' ); $self->{list}->SetItem( $index, 2, $handle->status ); $self->{list}->SetItem( $index++, 3, $handle->class ); # Tidy the list Padre::Wx::Util::tidy_list( $self->{list} ); } # Select the current list item if ( $self->{list}->GetItemCount > 0 ) { $self->{list}->SetItemState( $self->{list_focus}, Wx::LIST_STATE_SELECTED, Wx::LIST_STATE_SELECTED ); $self->{list}->EnsureVisible( $self->{list_focus} ); } return 1; } sub enable_selected { my $self = shift; my $handle = $self->selected or return; my $lock = $self->main->lock( 'DB', 'refresh_menu_plugins' ); $self->ide->plugin_manager->user_enable($handle); $self->refresh; $self->refresh_plugin; } sub disable_selected { my $self = shift; my $handle = $self->selected or return; my $lock = $self->main->lock( 'DB', 'refresh_menu_plugins' ); $self->ide->plugin_manager->user_disable($handle); $self->refresh; $self->refresh_plugin; } sub explain_selected { my $self = shift; my $handle = $self->selected or return; # @INC gets printed out between () remove that for now my $message = $handle->errstr; $message =~ s/\(\@INC.*\)//; # Show the message box Wx::MessageBox( $message, Wx::gettext('Error'), Wx::OK | Wx::CENTRE, $self, ); } ####### # Event Handler _on_list_item_selected ####### sub _on_list_item_selected { my $self = shift; my $event = shift; $self->{list_focus} = $event->GetIndex; # zero based my $plugin_name = $event->GetText; my $module_name; # Find the plugin module given plugin name foreach my $handle ( $self->ide->plugin_manager->handles ) { if ( $handle->plugin_name eq $plugin_name ) { $module_name = $handle->class; } } $self->{handle} = $self->ide->plugin_manager->handle($module_name); $self->refresh_plugin; return 1; } ###################################################################### # Support Methods sub selected { my $self = shift; if ( defined $self->{handle} ) { return $self->{handle}; } else { return 0; } } 1; __END__ =pod =head1 NAME Padre::Wx::Dialog::PluginManager - Padre Plug-in Manager Dialog =head1 SYNOPSIS Padre::Wx::Dialog::PluginManager->run($main); =head1 DESCRIPTION Padre will have a lot of plug-ins. First plug-in manager was not taking this into account, and the first plug-in manager window was too small & too crowded to show them all properly. This revamped plug-in manager is now using a list_two control, and thus can show lots of plug-ins in an effective manner. Upon selection, the right pane will be updated with the plug-in name & plug-in documentation. Two buttons will allow to de/activate the plug-in (or see plug-in error message) and set plug-in preferences. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/SessionManager2.pm���������������������������������������������������0000644�0001750�0001750�00000002005�12237327555�020105� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::SessionManager2; use 5.008; use strict; use warnings; use Padre::DB (); use Padre::Wx::Icon (); use Padre::Wx::FBP::SessionManager (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::FBP::SessionManager }; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->SetIcon(Padre::Wx::Icon::PADRE); # Add the columns for the list $self->{list}->InsertColumn( 0, Wx::gettext('Name') ); $self->{list}->InsertColumn( 1, Wx::gettext('Description') ); $self->{list}->InsertColumn( 2, Wx::gettext('Last Updated') ); $self->CenterOnParent; return $self; } ###################################################################### # Event Handlers 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/FindInFiles.pm�������������������������������������������������������0000644�0001750�0001750�00000006451�12237327555�017250� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::FindInFiles; use 5.008; use strict; use warnings; use Padre::Wx::FBP::FindInFiles (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::FBP::FindInFiles }; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->CenterOnParent; Wx::Event::EVT_KEY_UP( $self, sub { shift->key_up(@_); }, ); return $self; } ###################################################################### # Event Handlers sub directory { my $self = shift; my $default = $self->find_directory->GetValue; unless ($default) { $default = $self->config->default_projects_directory; } # Ask the user for a directory my $dialog = Wx::DirDialog->new( $self, Wx::gettext("Select Directory"), $default, ); my $result = $dialog->ShowModal; $dialog->Destroy; # Update the dialog unless ( $result == Wx::ID_CANCEL ) { $self->find_directory->SetValue( $dialog->GetPath ); } return; } ###################################################################### # Main Methods sub run { my $self = shift; my $main = $self->main; my $find = $self->find_term; my $current = $self->current; # Clear out and reset the search term box if ( $main->has_findfast and $main->findfast->IsShown ) { $find->refresh( $main->findfast->find_term->GetValue ); $main->show_findfast(0); } else { $find->refresh( $current->text ); } # Default the search directory to the root of the current project my $project = $current->project; if ( defined $project ) { $self->find_directory->SetValue( $project->root ); } # Update the user interface $self->refresh; $find->SetFocus; # Show the dialog my $result = $self->ShowModal; if ( $result == Wx::ID_CANCEL ) { # As we leave the Find dialog, return the user to the current editor # window so they don't need to click it. $main->editor_focus; return; } # Save user input for next time my $lock = $main->lock('DB'); $self->find_term->SaveValue; $self->find_directory->SaveValue; # Run the search in the Find in Files view $main->show_foundinfiles; $main->foundinfiles->search( search => $self->as_search, root => $self->find_directory->GetValue, mime => $self->find_types->GetClientData( $self->find_types->GetSelection ), ); $main->editor_focus; } # Makes sure the find button is only enabled when the field # values are valid sub refresh { my $self = shift; $self->find->Enable( $self->find_term->GetValue ne '' ); } # Generate a search object for the current dialog state sub as_search { my $self = shift; require Padre::Search; Padre::Search->new( find_term => $self->find_term->GetValue, find_case => $self->find_case->GetValue, find_regex => $self->find_regex->GetValue, ); } sub key_up { my $self = shift; my $event = shift; my $mod = $event->GetModifiers || 0; my $code = $event->GetKeyCode; # A fixed key binding isn't good at all. # TODO: Change this to the action's keybinding # Handle Ctrl-F only return unless $mod == 2; return unless $code == 70; $self->Hide; return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/SLOC.pm��������������������������������������������������������������0000644�0001750�0001750�00000006327�12237327555�015660� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::SLOC; # Project source lines of code calculator use 5.008; use strict; use warnings; use Padre::SLOC (); use Padre::Locale::Format (); use Padre::Role::Task (); use Padre::Wx::Role::Main (); use Padre::Wx::Role::Timer (); use Padre::Wx::FBP::SLOC (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Main Padre::Wx::Role::Timer Padre::Wx::FBP::SLOC }; ###################################################################### # Constructor and Accessors sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Clear and reset all state $self->clear; return $self; } ###################################################################### # Padre::Role::Task Methods sub refresh { my $self = shift; # Find the current project my $project = $self->current->project; return unless defined $project; # Set the project title $self->{root}->SetLabel( $project->root ); # Reset any existing state $self->clear; # Kick off the SLOC counting task $self->task_request( task => 'Padre::Task::SLOC', on_message => 'refresh_message', on_finish => 'refresh_finish', project => $project, ); # Start the render timer $self->poll_start( render => 250 ); return 1; } sub refresh_message { $_[0]->{count}++; $_[0]->{sloc}->add( $_[3] ); } # Do a final render and end the poll loop sub refresh_finish { $_[0]->poll_stop('render'); $_[0]->render; } ###################################################################### # Main Methods sub run { my $class = shift; my $self = $class->new(@_); $self->refresh; $self->ShowModal; $self->poll_stop('render'); $self->Destroy; } sub clear { my $self = shift; $self->poll_stop('render'); $self->task_reset; $self->{count} = 0; $self->{sloc} = Padre::SLOC->new; $self->render; } sub render { my $self = shift; my $lock = $self->lock_update; my $sloc = $self->{sloc}->smart_types; my $count = $self->{count}; my $code = $sloc->{code} || 0; my $comment = $sloc->{comment} || 0; my $blank = $sloc->{blank} || 0; # Calculate Basic COCOMO Model values my $pax_months = 2.4 * ( $code / 1000 )**1.05; my $pax_years = $pax_months / 12; my $cal_months = 2.5 * ( $pax_months**0.38 ); my $cal_years = $cal_months / 12; my $dev_count = $cal_months ? $pax_months / $cal_months : 0; my $dev_salary = 56286; my $dev_cost = $pax_years * $dev_salary * 2.4; $self->{files}->SetLabel( Padre::Locale::Format::integer($count) ); $self->{code}->SetLabel( Padre::Locale::Format::integer($code) ); $self->{comment}->SetLabel( Padre::Locale::Format::integer($comment) ); $self->{blank}->SetLabel( Padre::Locale::Format::integer($blank) ); $self->{pax_months}->SetLabel( sprintf( '%0.2f', $pax_months ) ); $self->{cal_years}->SetLabel( sprintf( '%0.2f', $cal_years ) ); $self->{dev_count}->SetLabel( sprintf( '%0.2f', $dev_count ) ); $self->{dev_cost}->SetLabel( '$' . Padre::Locale::Format::integer( int $dev_cost ) ); $self->Fit; $self->Layout; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Preferences.pm�������������������������������������������������������0000644�0001750�0001750�00000034335�12237327555�017361� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Preferences; use 5.010; use strict; use warnings; use Padre::Locale (); use Padre::Feature (); use Padre::Document (); use Padre::Wx (); use Padre::Wx::Util (); use Padre::Wx::Role::Config (); use Padre::Wx::FBP::Preferences (); use Padre::Wx::Choice::Theme (); use Padre::Wx::Theme (); use Padre::Wx::Role::Dialog (); use Padre::Locale::T; use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Config Padre::Wx::Role::Dialog Padre::Wx::FBP::Preferences }; use constant { LIST_COLUMN_SHORTCUT => 0, LIST_COLUMN_NAME => 1, }; my @KEYS = ( _T('None'), _T('Backspace'), _T('Tab'), _T('Space'), _T('Up'), _T('Down'), _T('Left'), _T('Right'), _T('Insert'), _T('Delete'), _T('Home'), _T('End'), _T('PageUp'), _T('PageDown'), _T('Enter'), _T('Escape'), 'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12', 'A' .. 'Z', '0' .. '9', '~', '-', '=', '[', ']', ';', '\'', ',', '.', '/' ); ##################################################################### # Class Methods # One-shot creation, display and execution. # Does return the object, but we don't expect anyone to use it. sub run { my $class = shift; my $main = shift; my $self = $class->new($main); # Show the optional sections if (Padre::Feature::CPAN) { $self->{label_cpan}->Show; $self->{main_cpan_panel}->Show; } if (Padre::Feature::VCS) { $self->{label_vcs}->Show; $self->{main_vcs_panel}->Show; } # Always show the first tab regardless of which one # was selected in wxFormBuilder. $self->treebook->ChangeSelection(0); # Load preferences from configuration my $config = $main->config; $self->config_load($config); # Refresh the sizing, layout and position after the config load $self->GetSizer->SetSizeHints($self); $self->CentreOnParent; # Hide value and info sizer at startup if ( $self->{keybindings_panel} ) { my $sizer = $self->{keybindings_panel}->GetSizer; $sizer->Show( 2, 0 ); $sizer->Show( 3, 0 ); $sizer->Layout; $self->{list}->tidy; } # Show the dialog if ( $self->ShowModal == Wx::ID_CANCEL ) { return; } # Save back to configuration $self->config_save($config); # Re-create menu to activate shortcuts $self->_recreate_menubar; # Clean up $self->Destroy; return 1; } ##################################################################### # Constructor and Accessors sub new { TRACE( $_[0] ) if DEBUG; my $self = shift->SUPER::new(@_); # Set the content of the editor preview my $preview = $self->preview; $preview->{Document} = Padre::Document->new( mimetype => 'application/x-perl', ); $preview->{Document}->set_editor( $self->preview ); $preview->SetLexer('application/x-perl'); $preview->SetText( <<'END_PERL' . '__END__' ); #!/usr/bin/perl use strict; main(); exit 0; sub main { # some senseless comment my $x = $_[0] ? $_[0] : 5; print "x is $x\n"; if ( $x > 5 ) { return 1; } else { return 0; } } END_PERL $preview->SetReadOnly(1); $preview->Show(1); # Build the list of configuration dialog elements. # We assume all public dialog elements will match a wx widget with # a public method returning it. $self->{names} = [ grep { $self->can($_) } $self->config->settings ]; # Set some internal parameters for key bindings $self->{sortcolumn} = 1; $self->{sortreverse} = 0; # Fill the key choice list for my $key ( map { Wx::gettext($_) } @KEYS ) { $self->{key}->Append($key); } $self->{key}->SetSelection(0); # Create the list columns $self->{list}->init( Wx::gettext('Shortcut'), Wx::gettext('Action'), Wx::gettext('Description'), ); # Update the key bindings list $self->_update_list; # Tidy the list $self->{list}->tidy; return $self; } sub names { return @{ $_[0]->{names} }; } ##################################################################### # Padre::Wx::Role::Config Methods sub config_load { TRACE( $_[0] ) if DEBUG; my $self = shift; my $config = shift; # We assume all public dialog elements will match a wx widget with # a public method returning it. $self->SUPER::config_load( $config, $self->names ); # Do an initial style refresh of the editor preview $self->preview_refresh; return 1; } sub config_diff { TRACE( $_[0] ) if DEBUG; my $self = shift; my $config = shift; # We assume all public dialog elements will match a wx widget # with a public method returning it. $self->SUPER::config_diff( $config, $self->names ); } ###################################################################### # Event Handlers sub cancel { TRACE( $_[0] ) if DEBUG; my $self = shift; # Cancel the preferences dialog in Wx $self->EndModal(Wx::ID_CANCEL); return; } sub advanced { TRACE( $_[0] ) if DEBUG; my $self = shift; # Cancel the preferences dialog since it is not needed # but save it first $self->config_save( $self->main->config ); $self->cancel; # Show the advanced settings dialog instead require Padre::Wx::Dialog::Advanced; my $advanced = Padre::Wx::Dialog::Advanced->new( $self->main ); my $ret = $advanced->show; return; } sub guess { my $self = shift; my $document = $self->current->document or return; my $indent = $document->guess_indentation_style; $self->editor_indent_tab->SetValue( $indent->{use_tabs} ); $self->editor_indent_tab_width->SetValue( $indent->{tabwidth} ); $self->editor_indent_width->SetValue( $indent->{indentwidth} ); return; } # We do this the long-hand way for now, as we don't have a suitable # method for generating proper logical style objects. sub preview_refresh { TRACE( $_[0] ) if DEBUG; my $self = shift; my $config = $self->config; my $preview = $self->preview; my $lock = $preview->lock_update; # Create a tailored theme my $style = $self->choice('editor_style'); my $theme = Padre::Wx::Theme->find($style)->clone; foreach ( 'editor_font', 'editor_currentline_color' ) { $theme->{$_} = $self->config_get( $config->meta($_) ); } # Apply the tailored theme $theme->apply($preview); } ###################################################################### # Support Methods # Convenience method to get the current value for a single named choice sub choice { my $self = shift; my $name = shift; my $ctrl = $self->$name() or return; my $setting = $self->config->meta($name) or return; my $options = $setting->options or return; my @results = sort keys %$options; return $results[ $ctrl->GetSelection ]; } ####################################################################### # Key Bindings panel methods # Private method to update the key bindings list view sub _update_list { my $self = shift; my $list = $self->{list}; my $lock = $list->lock_update; my $actions = $self->ide->actions; my @names = keys %$actions; # Build the data for the table my @table = map { [ _translate_shortcut( $actions->{$_}->shortcut ), $_, $actions->{$_}->label_text, ] } keys %$actions; # Apply term filtering my $filter = quotemeta $self->{filter}->GetValue; @table = grep { $_->[0] =~ /$filter/i or $_->[1] =~ /$filter/i or $_->[2] =~ /$filter/i } @table; # Apply sorting @table = sort { $a->[ $self->{sortcolumn} ] cmp $b->[ $self->{sortcolumn} ] } @table; if ( $self->{sortreverse} ) { @table = reverse @table; } # Find the alternate row colour my $color = Wx::SystemSettings::GetColour(Wx::SYS_COLOUR_WINDOW); my $altcol = Wx::Colour->new( int( $color->Red * 0.9 ), int( $color->Green * 0.9 ), $color->Blue, ); # Refill the table with the filtered list my $index = -1; $list->DeleteAllItems; foreach my $row (@table) { my $name = $row->[1]; my $action = $actions->{$name}; # Add the row to the list $list->InsertStringItem( ++$index, $row->[0] ); $list->SetItem( $index, 1, $row->[1] ); $list->SetItem( $index, 2, $row->[2] ); # Non-default (i.e. overriden) shortcuts should have a bold font my $shortcut = $action->shortcut; my $setting = $action->shortcut_setting; my $default = $self->config->default($setting); unless ( $shortcut eq $default ) { $list->set_item_bold( $index, 1 ); } # Alternating table colors unless ( $index % 2 ) { $list->SetItemBackgroundColour( $index, $altcol ); } } return; } # Translates the shortcut to its native language sub _translate_shortcut { my ($shortcut) = @_; my @parts = split /-/, $shortcut; my $regular_key = @parts ? $parts[-1] : ''; return join '-', map { Wx::gettext($_) } @parts; } sub _on_list_col_click { my $self = shift; my $event = shift; my $column = $event->GetColumn; my $prevcol = $self->{sortcolumn}; my $reversed = $self->{sortreverse}; $reversed = $column == $prevcol ? !$reversed : 0; $self->{sortcolumn} = $column; $self->{sortreverse} = $reversed; $self->_update_list; return; } # Private method to handle the selection of a key binding item sub _on_list_item_selected { my $self = shift; my $event = shift; my $name = $self->_selected_list_name; my $action = $self->_action($name); my $shortcut = $action->shortcut; $self->{button_reset}->Enable( $shortcut ne $self->config->default( $action->shortcut_setting ) ); $self->{button_delete}->Enable( $shortcut ne '' ); $self->_update_shortcut_ui($shortcut); return; } # Updates the shortcut UI sub _update_shortcut_ui { my ( $self, $shortcut ) = @_; my @parts = split /-/, $shortcut; my $regular_key = @parts ? $parts[-1] : ''; # Find the regular key index in the choice box my $regular_index = 0; for ( my $i = 0; $i < scalar @KEYS; $i++ ) { if ( $regular_key eq $KEYS[$i] ) { $regular_index = $i; last; } } # and update the UI $self->{key}->SetSelection($regular_index); $self->{ctrl}->SetValue( $shortcut =~ /Ctrl/ ? 1 : 0 ); $self->{alt}->SetValue( $shortcut =~ /Alt/ ? 1 : 0 ); $self->{shift}->SetValue( $shortcut =~ /Shift/ ? 1 : 0 ); # Make sure the value and info sizer are not hidden if ( $self->{keybindings_panel} ) { my $sizer = $self->{keybindings_panel}->GetSizer; $sizer->Show( 2, 1 ); $sizer->Show( 3, 1 ); $sizer->Layout; } return; } # Private method to handle the pressing of the set value button sub _on_set_button { my $self = shift; my $name = $self->_selected_list_name; my @key_list = (); for my $regular_key ( 'Ctrl', 'Shift', 'Alt' ) { push @key_list, $regular_key if $self->{ lc $regular_key }->GetValue; } my $key_index = $self->{key}->GetSelection; my $regular_key = $KEYS[$key_index]; push @key_list, $regular_key if not $regular_key eq 'None'; my $shortcut = join '-', @key_list; $self->_try_to_set_binding( $name, $shortcut ); return; } # Tries to set the binding and asks the user if he want to set the shortcut if has already be used elsewhere sub _try_to_set_binding { my ( $self, $name, $shortcut ) = @_; my $other_action = $self->ide->shortcuts->{$shortcut}; if ( defined $other_action && $other_action->name ne $name ) { return unless $self->yes_no( sprintf( Wx::gettext("The shortcut '%s' is already used by the action '%s'.\n"), $shortcut, $other_action->label_text ) . Wx::gettext('Do you want to override it with the selected action?'), Wx::gettext('Override Shortcut') ); $self->_set_binding( $other_action->name, '' ); } $self->_set_binding( $name, $shortcut ); return; } # Sets the key binding in Padre's configuration sub _set_binding { my ( $self, $name, $shortcut ) = @_; my $shortcuts = $self->ide->shortcuts; my $action = $self->_action($name); # modify shortcut registry my $old_shortcut = $action->shortcut; delete $shortcuts->{$old_shortcut} if defined $old_shortcut; $shortcuts->{$shortcut} = $action; # set the action's shortcut $action->shortcut( $shortcut eq '' ? undef : $shortcut ); # modify the configuration database $self->config->set( $action->shortcut_setting, $shortcut ); $self->config->write; # Update the action's UI my $non_default = $self->config->default( $action->shortcut_setting ) ne $shortcut; $self->_update_action_ui( $name, $shortcut, $non_default ); return; } # Private method to update the UI from the provided preference sub _update_action_ui { my $self = shift; my $name = shift; my $shortcut = shift; my $non_default = shift; my $list = $self->{list}; my $index = $self->_named_action_index($name); $self->{button_reset}->Enable($non_default); $list->SetItem( $index, LIST_COLUMN_SHORTCUT, _translate_shortcut($shortcut) ); $list->set_item_bold( $index, $non_default ); $self->_update_shortcut_ui($shortcut); return; } # Private method to handle the pressing of the delete button sub _on_delete_button { my $self = shift; my $name = $self->_selected_action_name; $self->_set_binding( $name, '' ); return; } # Private method to handle the pressing of the reset button sub _on_reset_button { my $self = shift; my $name = $self->_selected_action_name; my $action = $self->_action($name); if ($name) { $self->_try_to_set_binding( $name, $self->config->default( $action->shortcut_setting ) ); } return; } #ToDo needs to be hacked - incompleate sub _selected_action_name { my $self = shift; # added to stop errors, see #1479 # See -> package Padre::Wx::Dialog::Advanced->_on_reset_button return; } # re-create menu to activate shortcuts # TO DO Massive encapsulation violation sub _recreate_menubar { my $self = shift; my $main = $self->main; #ToDo this is just a quick fix, to stop menu bar Fup's from happing (BOWTIE) # delete $main->{menu}; # $main->{menu} = Padre::Wx::Menubar->new($main); # $main->SetMenuBar( $main->menu->wx ); $main->refresh; } sub _selected_list_name { my $self = shift; my $index = $self->{list}->GetFirstSelected; my $item = $self->{list}->GetItem( $index, LIST_COLUMN_NAME ); return $item->GetText; } sub _named_action_index { my $self = shift; my $name = shift; my $list = $self->{list}; my $items = $list->GetItemCount; for my $i ( 0 .. $items - 1 ) { my $item = $list->GetItem( $i, LIST_COLUMN_NAME ); if ( $item->GetText eq $name ) { return $i; } } return undef; } sub _action { my $self = shift; my $name = shift; return $self->ide->actions->{$name}; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/ReplaceInFiles.pm����������������������������������������������������0000644�0001750�0001750�00000006265�12237327555�017746� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::ReplaceInFiles; use 5.008; use strict; use warnings; use Padre::Wx::FBP::ReplaceInFiles (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::FBP::ReplaceInFiles }; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->CenterOnParent; return $self; } ###################################################################### # Event Handlers sub directory { my $self = shift; my $default = $self->find_directory->GetValue; unless ($default) { $default = $self->config->default_projects_directory; } # Ask the user for a directory my $dialog = Wx::DirDialog->new( $self, Wx::gettext("Select Directory"), $default, ); # Update the dialog my $result = $dialog->ShowModal; unless ( $result == Wx::ID_CANCEL ) { $self->find_directory->SetValue( $dialog->GetPath ); } $dialog->Destroy; } ###################################################################### # Main Methods sub run { my $self = shift; my $main = $self->main; my $find = $self->find_term; my $current = $self->current; # Inherit the search term from the other search tools if ( $main->has_findfast and $main->findfast->IsShown ) { $find->refresh( $main->findfast->find_term->GetValue ); $main->show_findfast(0); } else { $find->refresh( $current->text ); } $self->replace_term->refresh(''); # Default the search directory to the root of the current project my $project = $current->project; if ( defined $project ) { $self->find_directory->SetValue( $project->root ); } # Refresh the dialog and prepare to show $self->refresh; if ( length $find->GetValue ) { $self->replace_term->SetFocus; } else { $find->SetFocus; } # Show the dialog my $result = $self->ShowModal; if ( $result == Wx::ID_CANCEL ) { # As we leave the dialog return the user to the current editor # window so they don't need to click it. $main->editor_focus; return; } # Save user input for next time my $lock = $main->lock('DB'); $self->find_term->SaveValue; $self->find_directory->SaveValue; $self->replace_term->SaveValue; # Run the search in the Replace in Files tool $main->show_replaceinfiles; $main->replaceinfiles->replace( search => $self->as_search, replace => $self->replace_term->GetValue, root => $self->find_directory->GetValue, mime => $self->find_types->GetClientData( $self->find_types->GetSelection ), ); $main->editor_focus; } # Makes sure the find button is only enabled when the field # values are valid sub refresh { my $self = shift; $self->replace->Enable( $self->find_term->GetValue ne '' ); } # Generate a search object for the current dialog state sub as_search { my $self = shift; require Padre::Search; Padre::Search->new( find_term => $self->find_term->GetValue, find_case => $self->find_case->GetValue, find_regex => $self->find_regex->GetValue, replace_term => $self->replace_term->GetValue, ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/HelpSearch.pm��������������������������������������������������������0000644�0001750�0001750�00000024302�12237327555�017127� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::HelpSearch; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Icon (); use Padre::Wx::HtmlWindow (); use Padre::Wx::Role::Idle (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Idle Wx::Dialog }; # accessors use Class::XSAccessor { accessors => { _hbox => '_hbox', # horizontal box sizer _topic_selector => '_topic_selector', # Topic selector _search_text => '_search_text', # search text control _list => '_list', # matches list _index => '_index', # help topic list _help_viewer => '_help_viewer', # HTML Help Viewer _main => '_main', # Padre's main window _topic => '_topic', # default help topic _help_provider => '_help_provider', # Help Provider _status => '_status' # status label } }; # -- constructor sub new { my ( $class, $main, %opt ) = @_; # create object my $self = $class->SUPER::new( $main, -1, Wx::gettext('Help Search'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE | Wx::TAB_TRAVERSAL, ); $self->_main($main); $self->_topic( $opt{topic} || '' ); # Dialog's icon as is the same as Padre $self->SetIcon(Padre::Wx::Icon::PADRE); # create dialog $self->_create; # fit and center the dialog $self->Fit; $self->CentreOnParent; return $self; } # Display a message in the help html window in big bold letters sub _display_msg { my ( $self, $text ) = @_; $self->_help_viewer->SetPage(qq{<b><font size="+2">$text</font></b>}); } # # Fetches the current selection's help HTML # sub _display_help_in_viewer { my $self = shift; my ( $html, $location ); my $selection = $self->_list->GetSelection; if ( $selection != -1 ) { my $topic = $self->_list->GetClientData($selection); if ( $topic && $self->_help_provider ) { eval { ( $html, $location ) = $self->_help_provider->help_render($topic); }; if ($@) { $self->_display_msg( sprintf( Wx::gettext('Error while calling %s %s'), 'help_render', $@ ) ); return; } } } if ($html) { # Highlights <pre> code sections with a grey background $html =~ s/<pre>/<table border="0" width="100%" bgcolor="#EEEEEE"><tr><td><pre>/ig; $html =~ s/<\/pre>/<\/pre\><\/td><\/tr><\/table>/ig; } else { $html = '<b><font size="+2">' . Wx::gettext('No Help found') . '</font></b>'; } $self->SetTitle( Wx::gettext('Help Search') . ( defined $location ? ' - ' . $location : '' ) ); $self->_help_viewer->SetPage($html); return; } # # create the dialog itself. # sub _create { my $self = shift; # create sizer that will host all controls $self->_hbox( Wx::BoxSizer->new(Wx::HORIZONTAL) ); # create the controls $self->_create_controls; # wrap everything in a box to add some padding $self->SetMinSize( [ 750, 550 ] ); $self->SetSizer( $self->_hbox ); return; } # # create controls in the dialog # sub _create_controls { my $self = shift; my $topic_label = Wx::StaticText->new( $self, -1, Wx::gettext('Select the help &topic') ); my @topics = ('perl 5'); $self->_topic_selector( Wx::Choice->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, \@topics, ) ); #Wx::Event::EVT_CHOICE($self, $topic_selector, \&select_topic); # search textbox my $search_label = Wx::StaticText->new( $self, -1, Wx::gettext('Type a help &keyword to read:') ); $self->_search_text( Wx::TextCtrl->new( $self, -1, '' ) ); # matches result list my $matches_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Matching Help Topics:') ); $self->_list( Wx::ListBox->new( $self, -1, Wx::DefaultPosition, [ 180, -1 ], [], Wx::LB_SINGLE ) ); # HTML Help Viewer $self->_help_viewer( Padre::Wx::HtmlWindow->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::BORDER_STATIC ) ); $self->_help_viewer->SetPage(''); my $close_button = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Close') ); $self->_status( Wx::StaticText->new( $self, -1, '' ) ); my $vbox = Wx::BoxSizer->new(Wx::VERTICAL); $vbox->Add( $topic_label, 0, Wx::ALL | Wx::EXPAND, 2 ); $vbox->Add( $self->_topic_selector, 0, Wx::ALL | Wx::EXPAND, 2 ); $vbox->Add( $search_label, 0, Wx::ALL | Wx::EXPAND, 2 ); $vbox->Add( $self->_search_text, 0, Wx::ALL | Wx::EXPAND, 2 ); $vbox->Add( $matches_label, 0, Wx::ALL | Wx::EXPAND, 2 ); $vbox->Add( $self->_list, 1, Wx::ALL | Wx::EXPAND, 2 ); $vbox->Add( $self->_status, 0, Wx::ALL | Wx::EXPAND, 0 ); $vbox->Add( $close_button, 0, Wx::ALL | Wx::ALIGN_LEFT, 0 ); $self->_hbox->Add( $vbox, 0, Wx::ALL | Wx::EXPAND, 2 ); $self->_hbox->Add( $self->_help_viewer, 1, Wx::ALL | Wx::ALIGN_TOP | Wx::ALIGN_CENTER_HORIZONTAL | Wx::EXPAND, 1 ); $self->_setup_events; return; } # # Adds various events # sub _setup_events { my $self = shift; Wx::Event::EVT_CHAR( $self->_search_text, sub { my $this = shift; my $event = shift; my $code = $event->GetKeyCode; if ( $code == Wx::K_DOWN || $code == Wx::K_PAGEDOWN ) { $self->_list->SetFocus; } $event->Skip(1); } ); Wx::Event::EVT_TEXT( $self, $self->_search_text, sub { $self->_update_list_box; return; } ); Wx::Event::EVT_HTML_LINK_CLICKED( $self, $self->_help_viewer, \&_on_link_clicked, ); Wx::Event::EVT_LISTBOX( $self, $self->_list, sub { $self->_display_help_in_viewer; } ); return; } # # Focus on it if it shown or restart its state and show it if it is hidden. # sub show { my ( $self, $topic ) = @_; if ( not $self->IsShown ) { if ( not $topic ) { $topic = $self->_find_help_topic || ''; } $self->_topic($topic); $self->_search_text->ChangeValue( $self->_topic ); my $document = Padre::Current->document; if ($document) { $self->_help_provider(undef); } $self->Show(1); $self->_search_text->Enable(0); $self->_topic_selector->Enable(0); $self->_list->Enable(0); $self->_display_msg( Wx::gettext('Reading items. Please wait') ); $self->idle_method('_reindex'); } $self->_search_text->SetFocus; return; } sub _reindex { my $self = shift; $self->_index(undef); if ( $self->_update_list_box ) { $self->_search_text->Enable(1); $self->_topic_selector->Enable(1); $self->_list->Enable(1); $self->_search_text->SetFocus; } else { $self->_search_text->ChangeValue(''); } } # # Search for files and cache result # sub _search { my $self = shift; # Generate a sorted file-list based on filename if ( not $self->_help_provider ) { my $document = Padre::Current->document; if ($document) { eval { $self->_help_provider( $document->get_help_provider ); }; if ($@) { $self->_display_msg( sprintf( Wx::gettext('Error while calling %s %s'), 'get_help_provider', $@ ) ); return; } if ( not $self->_help_provider ) { $self->_display_msg( Wx::gettext("Could not find a help provider for ") . Wx::gettext( $document->mime->name ) ); return; } } else { # If there no document, use Perl 5 help provider require Padre::Document::Perl::Help; $self->_help_provider( Padre::Document::Perl::Help->new ); } } return unless $self->_help_provider; eval { $self->_index( $self->_help_provider->help_list ); }; if ($@) { $self->_display_msg( sprintf( Wx::gettext('Error while calling %s %s'), 'help_list', $@ ) ); return; } return 1; } # # Returns the selected or under the cursor help topic # sub _find_help_topic { my $self = shift; my $document = Padre::Current->document; return '' unless $document; my $topic = $document->find_help_topic; #fallback unless ($topic) { my $editor = $document->editor; my $pos = $editor->GetCurrentPos; # The selected/under the cursor word is a help topic $topic = $editor->GetSelectedText; if ( not $topic ) { $topic = $editor->GetTextRange( $editor->WordStartPosition( $pos, 1 ), $editor->WordEndPosition( $pos, 1 ) ); } # trim whitespace $topic =~ s/^\s*(.*?)\s*$/$1/; } return $topic; } # # Update matches list box from matched files list # sub _update_list_box { my $self = shift; # Clear the list and status $self->_list->Clear; $self->_status->SetLabel(''); # Try to fetch a help index and return nothing if otherwise $self->_search unless $self->_index; return unless $self->_index; my $search_expr = $self->_search_text->GetValue; $search_expr = quotemeta $search_expr; #Populate the list box now my $pos = 0; foreach my $target ( @{ $self->_index } ) { if ( $target =~ /^$search_expr$/i ) { $self->_list->Insert( $target, 0, $target ); $pos++; } elsif ( $target =~ /$search_expr/i ) { $self->_list->Insert( $target, $pos, $target ); $pos++; } } if ( $pos > 0 ) { $self->_list->Select(0); } $self->_status->SetLabel( sprintf( Wx::gettext("Found %s help topic(s)\n"), $pos ) ); $self->_display_help_in_viewer; return 1; } # # Called when the user clicks a link in the # help viewer HTML window # sub _on_link_clicked { my $self = shift; require URI; my $uri = URI->new( $_[0]->GetLinkInfo->GetHref ); my $linkinfo = $_[0]->GetLinkInfo; my $scheme = $uri->scheme; if ( defined($scheme) and $scheme eq 'perldoc' ) { # handle 'perldoc' links my $topic = $uri->path; $topic =~ s/^\///; $self->_search_text->SetValue($topic); } else { # otherwise, let the default browser handle it... Padre::Wx::launch_browser($uri); } } 1; __END__ =pod =head1 NAME Padre::Wx::Dialog::HelpSearch - Padre Shiny Help Search Dialog =head1 DESCRIPTION This opens a dialog where you can search for help topics... Note: This used to be Perl 6 Help Dialog (in C<Padre::Plugin::Perl6>) and but it has been moved to Padre core. In order to setup a help system see L<Padre::Help>. =head1 AUTHOR Ahmad M. Zawawi C<< <ahmad.zawawi at gmail.com> >> =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/DebugOptions.pm������������������������������������������������������0000644�0001750�0001750�00000004131�12237327555�017511� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::DebugOptions; use 5.008; use strict; use warnings; use Padre::Search (); use Padre::Wx::FBP::DebugOptions (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::FBP::DebugOptions }; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->CenterOnParent; return $self; } ###################################################################### # Event Handlers ###################################################################### # Event Handlers sub browse_scripts { my $self = shift; my $default = $self->find_script->GetValue; unless ($default) { $default = $self->config->default_projects_directory; } use File::Spec; my ( $volume, $directory, $file ) = File::Spec->splitpath( $default, -d $default ); my $dialog = Wx::FileDialog->new( $self, Wx::gettext("Select Script to debug into"), File::Spec->catpath( $volume, $directory, '' ) ); my $result = $dialog->ShowModal; $dialog->Destroy; # Update the dialog unless ( $result == Wx::ID_CANCEL ) { $self->find_script->SetValue( $dialog->GetPath ); } return; } sub browse_run_directory { my $self = shift; my $default = $self->run_directory->GetValue; unless ($default) { $default = $self->config->default_run_directory; } use File::Spec; my ( $volume, $directory, $file ) = File::Spec->splitpath( $default, -d $default ); my $dialog = Wx::DirDialog->new( $self, Wx::gettext("Select Directory to run script in"), File::Spec->catpath( $volume, $directory, '' ) ); my $result = $dialog->ShowModal; $dialog->Destroy; # Update the dialog unless ( $result == Wx::ID_CANCEL ) { $self->run_directory->SetValue( $dialog->GetPath ); } return; } sub on_close { my $self = shift; my $event = shift; $self->Hide; $self->main->editor_focus; $event->Skip(1); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Advanced.pm����������������������������������������������������������0000644�0001750�0001750�00000055236�12237327555�016630� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Advanced; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Config (); use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; # Copy menu constants use constant { COPY_ALL => 1, COPY_NAME => 2, COPY_VALUE => 3, }; # Padre config type to description hash my %TYPES = ( Padre::Constant::BOOLEAN => Wx::gettext('Boolean'), Padre::Constant::POSINT => Wx::gettext('Positive Integer'), Padre::Constant::INTEGER => Wx::gettext('Integer'), Padre::Constant::ASCII => Wx::gettext('String'), Padre::Constant::PATH => Wx::gettext('File/Directory'), ); =pod =head1 NAME Padre::Wx::Dialog::Advanced - a dialog to show and configure advanced preferences =head1 DESCRIPTION The idea is to implement a Mozilla-style C<about:config> for Padre. This will make playing with experimental, advanced, and secret settings a breeze. =head1 PUBLIC API =head2 C<new> my $advanced = Padre::Wx::Dialog::Advanced->new($main); Returns a new C<Padre::Wx::Dialog::Advanced> instance =cut sub new { my $class = shift; my $main = shift; # Create the Wx dialog my $self = $class->SUPER::new( $main, -1, Wx::gettext('Advanced Settings'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE, ); # Set some internal parameters $self->{sortcolumn} = 0; $self->{sortreverse} = 0; # Minimum dialog size $self->SetMinSize( [ 750, 550 ] ); # Create sizer that will host all controls my $sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); # Create the controls $self->_create_controls($sizer); # Bind the control events $self->_bind_events; # Wrap everything in a vbox to add some padding $self->SetSizer($sizer); $self->Fit; $self->CentreOnParent; return $self; } # Create dialog controls sub _create_controls { my ( $self, $sizer ) = @_; # Filter label my $filter_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Filter:') ); # Filter text field $self->{filter} = Wx::TextCtrl->new( $self, -1, '' ); # Filtered preferences list $self->{list} = Wx::ListView->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); $self->{list}->InsertColumn( 0, Wx::gettext('Preference Name') ); $self->{list}->InsertColumn( 1, Wx::gettext('Status') ); $self->{list}->InsertColumn( 2, Wx::gettext('Type') ); $self->{list}->InsertColumn( 3, Wx::gettext('Value') ); # Popup right-click menu $self->{popup} = Wx::Menu->new; $self->{copy} = $self->{popup}->Append( -1, Wx::gettext('Copy') ); $self->{copy_name} = $self->{popup}->Append( -1, Wx::gettext('Copy Name') ); $self->{copy_value} = $self->{popup}->Append( -1, Wx::gettext('Copy Value') ); # Preference value label my $value_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Value:') ); # Preference value text field $self->{value} = Wx::TextCtrl->new( $self, -1, '' ); $self->{value}->Enable(0); # Boolean value radio button fields $self->{true} = Wx::RadioButton->new( $self, -1, Wx::gettext('True') ); $self->{false} = Wx::RadioButton->new( $self, -1, Wx::gettext('False') ); $self->{true}->Hide; $self->{false}->Hide; # System default my $default_label = Wx::StaticText->new( $self, -1, Wx::gettext('Default value:') ); $self->{default_value} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_READONLY ); $self->{default_value}->Enable(0); # preference options my $options_label = Wx::StaticText->new( $self, -1, Wx::gettext('Options:') ); $self->{options} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_READONLY ); $self->{options}->Enable(0); my $help_label = Wx::StaticText->new( $self, -1, Wx::gettext('Description:') ); $self->{help} = Wx::TextCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_READONLY | Wx::TE_MULTILINE | Wx::NO_FULL_REPAINT_ON_RESIZE ); $self->{help}->Enable(0); # Set preference value button $self->{button_set} = Wx::Button->new( $self, -1, Wx::gettext('&Set'), ); $self->{button_set}->Enable(0); # Reset to default preference value button $self->{button_reset} = Wx::Button->new( $self, -1, Wx::gettext('&Reset'), ); $self->{button_reset}->Enable(0); # Save button $self->{button_save} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext('S&ave'), ); $self->{button_save}->SetDefault; # Cancel button $self->{button_cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Cancel'), ); # #----- Dialog Layout ------- # # Filter sizer my $filter_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $filter_sizer->Add( $filter_label, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $filter_sizer->Add( $self->{filter}, 1, Wx::ALIGN_CENTER_VERTICAL, 5 ); # Boolean sizer my $boolean_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $boolean_sizer->AddStretchSpacer; $boolean_sizer->Add( $self->{true}, 1, Wx::ALIGN_CENTER_VERTICAL, 5 ); $boolean_sizer->Add( $self->{false}, 1, Wx::ALIGN_CENTER_VERTICAL, 5 ); $boolean_sizer->AddStretchSpacer; # Store boolean sizer reference for later usage $self->{boolean} = $boolean_sizer; # Value setter sizer my $value_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $value_sizer->Add( $value_label, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $value_sizer->Add( $self->{value}, 1, Wx::ALIGN_CENTER_VERTICAL, 5 ); $value_sizer->Add( $boolean_sizer, 1, Wx::ALIGN_CENTER_VERTICAL | Wx::EXPAND, 5 ); $value_sizer->Add( $self->{button_set}, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $value_sizer->Add( $self->{button_reset}, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); # Default value and options sizer my $info_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $info_sizer->Add( $default_label, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $info_sizer->Add( $self->{default_value}, 1, Wx::ALIGN_CENTER_VERTICAL, 5 ); $info_sizer->AddSpacer(5); $info_sizer->Add( $options_label, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $info_sizer->Add( $self->{options}, 1, Wx::ALIGN_CENTER_VERTICAL, 5 ); my $help_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $help_sizer->Add( $help_label, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $help_sizer->Add( $self->{help}, 1, Wx::ALIGN_CENTER_VERTICAL, 5 ); # Button sizer my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( $self->{button_save}, 1, 0, 0 ); $button_sizer->Add( $self->{button_cancel}, 1, Wx::LEFT, 5 ); $button_sizer->AddSpacer(5); # Main vertical sizer my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $filter_sizer, 0, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->Add( $self->{list}, 1, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->Add( $value_sizer, 0, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->Add( $info_sizer, 0, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->Add( $help_sizer, 0, Wx::ALL | Wx::EXPAND, 3 ); $vsizer->AddSpacer(5); $vsizer->Add( $button_sizer, 0, Wx::ALIGN_RIGHT, 5 ); $vsizer->AddSpacer(5); # Hide value and info sizer at startup $vsizer->Show( 2, 0 ); $vsizer->Show( 3, 0 ); $vsizer->Show( 4, 0 ); # Store vertical sizer reference for later usage $self->{vsizer} = $vsizer; # Wrap with a horizontal sizer to get left/right padding $sizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); return; } # A Private method to binds events to controls sub _bind_events { my $self = shift; # Set focus when Keypad Down or page down keys are pressed Wx::Event::EVT_CHAR( $self->{filter}, sub { $self->_on_char( $_[1] ); } ); # Update filter search results on each text change Wx::Event::EVT_TEXT( $self, $self->{filter}, sub { shift->_update_list; } ); # When the title is clicked, sort the items Wx::Event::EVT_LIST_COL_CLICK( $self, $self->{list}, sub { shift->list_col_click(@_); }, ); # When an item is selected, its values must be populated below Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{list}, sub { shift->_on_list_item_selected(@_); } ); # When an item is activated (e.g. double-clicked, space-ed or enter-ed) Wx::Event::EVT_LIST_ITEM_ACTIVATED( $self, $self->{list}, sub { shift->_on_list_item_activated(@_); } ); # When a list right click event is fired, let us show a popup menu Wx::Event::EVT_LIST_ITEM_RIGHT_CLICK( $self, $self->{list}, sub { shift->_on_list_item_right_click(@_); } ); # Handle boolean radio buttons state change Wx::Event::EVT_RADIOBUTTON( $self, $self->{true}, sub { shift->_on_radiobutton(@_); } ); Wx::Event::EVT_RADIOBUTTON( $self, $self->{false}, sub { shift->_on_radiobutton(@_); } ); # Copy everything to clipboard Wx::Event::EVT_MENU( $self, $self->{copy}, sub { shift->_on_copy_to_clipboard( @_, COPY_ALL ); } ); # Copy name to clipboard Wx::Event::EVT_MENU( $self, $self->{copy_name}, sub { shift->_on_copy_to_clipboard( @_, COPY_NAME ); } ); # Copy value to clipboard Wx::Event::EVT_MENU( $self, $self->{copy_value}, sub { shift->_on_copy_to_clipboard( @_, COPY_VALUE ); } ); # Set button Wx::Event::EVT_BUTTON( $self, $self->{button_set}, sub { shift->_on_set_button; } ); # Reset button Wx::Event::EVT_BUTTON( $self, $self->{button_reset}, sub { shift->_on_reset_button; } ); # Save button Wx::Event::EVT_BUTTON( $self, $self->{button_save}, sub { shift->_on_save_button; } ); # Cancel button Wx::Event::EVT_BUTTON( $self, $self->{button_cancel}, sub { shift->EndModal(Wx::ID_CANCEL); } ); return; } # Private method to copy preferences to clipboard sub _on_copy_to_clipboard { my ( $self, $event, $action ) = @_; my $list = $self->{list}; my $name = $list->GetItemText( $list->GetFirstSelected ); my $pref = $self->{preferences}->{$name}; my $text; if ( $action == COPY_ALL ) { $text = $name . ';' . $self->_status_name($pref) . ';' . $pref->{type_name} . ';' . $pref->{value}; } elsif ( $action == COPY_NAME ) { $text = $name; } elsif ( $action == COPY_VALUE ) { $text = $pref->{value}; } if ( $text and Wx::TheClipboard->Open ) { Wx::TheClipboard->SetData( Wx::TextDataObject->new($text) ); Wx::TheClipboard->Close; } return; } # Private method to retrieve the correct value for the preference status column sub _status_name { my ( $self, $pref ) = @_; return $pref->{is_default} ? Wx::gettext('Default') : $pref->{store_name}; } # Private method to show a popup menu when a list item is right-clicked sub _on_list_item_right_click { my $self = shift; my $event = shift; $self->{list}->PopupMenu( $self->{popup}, $event->GetPoint->x, $event->GetPoint->y, ); return; } # Private method to handle on character pressed event sub _on_char { my $self = shift; my $event = shift; my $code = $event->GetKeyCode; $self->{list}->SetFocus if ( $code == Wx::K_DOWN ) or ( $code == Wx::K_NUMPAD_PAGEDOWN ) or ( $code == Wx::K_PAGEDOWN ); $event->Skip(1); return; } # Private method to handle the selection of a preference item sub _on_list_item_selected { my $self = shift; my $event = shift; my $pref = $self->{preferences}->{ $event->GetLabel }; my $type = $pref->{type}; my $is_boolean = ( $pref->{type} == Padre::Constant::BOOLEAN ) ? 1 : 0; if ($is_boolean) { $self->{true}->SetValue( $pref->{value} ); $self->{false}->SetValue( not $pref->{value} ); } else { $self->{value}->SetValue( $self->_displayed_value( $type, $pref->{value} ) ); $self->{options}->SetValue( $pref->{options} ); } $self->{help}->SetValue( $pref->{help} ); # Show value and info sizers $self->{vsizer}->Show( 2, 1 ); $self->{vsizer}->Show( 3, 1 ); $self->{vsizer}->Show( 4, 1 ); # Toggle visibility of fields depending on preference type $self->{value}->Show( not $is_boolean ); $self->{true}->Show($is_boolean); $self->{false}->Show($is_boolean); # Hide spaces infront of true/false radiobuttons $self->{boolean}->Show( 0, $is_boolean ); $self->{boolean}->Show( 3, $is_boolean ); # Set button is not needed when it is a boolean $self->{button_set}->Show( not $is_boolean ); # Recalculate sizers $self->Layout; $self->{default_value}->SetLabel( $self->_displayed_value( $type, $pref->{default} ) ); $self->{value}->Enable(1); $self->{default_value}->Enable(1); $self->{options}->Enable(1); #$self->{help}->Enable(1); $self->{button_reset}->Enable( not $pref->{is_default} ); $self->{button_set}->Enable(1); return; } # Private method to handle the radio button selection sub _on_radiobutton { my $self = shift; my $event = shift; my $list = $self->{list}; my $name = $list->GetItemText( $list->GetFirstSelected ); my $pref = $self->{preferences}->{$name}; # Reverse boolean my $value = $pref->{value} ? 0 : 1; my $is_default = not $pref->{is_default}; $pref->{is_default} = $is_default; $pref->{value} = $value; # and update the fields/list items accordingly $self->_update_ui($pref); return; } # Private method to handle item activation # (i.e. the list item is SPACEd, ENTERed, or double-clicked). # It toggles the status of a boolean preference or changes focus # to the value text field if it is not a boolean sub _on_list_item_activated { my $self = shift; my $event = shift; my $index = $event->GetIndex; my $list = $self->{list}; my $pref = $self->{preferences}->{ $event->GetLabel }; if ( $pref->{type} == Padre::Constant::BOOLEAN ) { # Reverse boolean my $value = $pref->{value} ? 0 : 1; my $is_default = not $pref->{is_default}; $pref->{is_default} = $is_default; $pref->{value} = $value; # and update the fields/list items accordingly $self->_update_ui($pref); } else { # Focus on the text value so we can edit it... $self->{value}->SetFocus; } return; } # Private method to update the UI from the provided preference sub _update_ui { my ( $self, $pref ) = @_; my $list = $self->{list}; my $index = $list->GetFirstSelected; my $value = $pref->{value}; my $type = $pref->{type}; my $is_default = $pref->{is_default}; if ( $type == Padre::Constant::BOOLEAN ) { $self->{true}->SetValue($value); $self->{false}->SetValue( not $value ); } else { $self->{value}->SetValue( $self->_displayed_value( $type, $value ) ); $self->{options}->SetValue( $pref->{options} ); } $self->{help}->SetValue( $pref->{help} ); $self->{default_value}->SetLabel( $self->_displayed_value( $type, $pref->{default} ) ); $self->{button_reset}->Enable( not $is_default ); $list->SetItem( $index, 1, $self->_status_name($pref) ); $list->SetItem( $index, 3, $self->_displayed_value( $type, $value ) ); $self->_set_item_bold_font( $index, not $is_default ); return; } # Returns the correct displayed value depending on the type sub _displayed_value { my ( $self, $type, $value ) = @_; return ( $type == Padre::Constant::BOOLEAN ) ? ( $value ? Wx::gettext('True') : Wx::gettext('False') ) : $value; } # Determines whether the preference value is default or not based on its type sub _is_default { my ( $self, $type, $value, $default_value ) = @_; return ( $type == Padre::Constant::ASCII or $type == Padre::Constant::PATH ) ? $value eq $default_value : $value == $default_value; } # Private method to handle the pressing of the set value button sub _on_set_button { my $self = shift; # Prepare the preferences my $list = $self->{list}; my $index = $list->GetFirstSelected; my $name = $list->GetItemText($index); my $pref = $self->{preferences}->{$name}; #Set the value to the user input my $type = $pref->{type}; my $value = ( $type == Padre::Constant::BOOLEAN ) ? $self->{true}->GetValue : $self->{value}->GetValue; my $default_value = $pref->{default}; my $is_default = $self->_is_default( $type, $value, $default_value ); $pref->{value} = $value; $pref->{is_default} = $is_default; $self->_update_ui($pref); return; } # Private method to handle the pressing of the reset to default button sub _on_reset_button { my $self = shift; # Prepare the preferences my $list = $self->{list}; my $index = $list->GetFirstSelected; my $name = $list->GetItemText($index); my $pref = $self->{preferences}->{$name}; #Reset the value to the default setting my $value = $pref->{default}; $pref->{value} = $pref->{default}; $pref->{is_default} = 1; $self->_update_ui($pref); return; } # Private method to handle the pressing of the save button sub _on_save_button { my $self = shift; my $config = $self->config; my $current = $self->current; my $prefs = $self->{preferences}; # Lock most of Padre so any apply handlers run quickly my $lock = $self->main->lock( 'UPDATE', 'REFRESH', 'DB' ); # Find the values that have changed for my $name ( sort keys %$prefs ) { my $pref = $prefs->{$name}; my $type = $pref->{type}; my $value = $pref->{value}; my $original = $pref->{original}; if ( $type == Padre::Constant::ASCII or $type == Padre::Constant::PATH ) { next if $value eq $original; } else { next if $value == $original; } $config->apply( $name, $value, $current ); } # Save to disk/database $config->write; # Bye bye dialog $self->EndModal(Wx::ID_OK); return; } # Private method to update the preferences list sub _update_list { my $self = shift; my $config = $self->config; my $filter = quotemeta $self->{filter}->GetValue; my $list = $self->{list}; $list->DeleteAllItems; # Hide value and info sizer when searching for other entry $self->{vsizer}->Show( 2, 0 ); $self->{vsizer}->Show( 3, 0 ); $self->{vsizer}->Show( 4, 0 ); # Recalculate sizers $self->Layout; my $index = -1; my $preferences = $self->{preferences}; # Try to derive an alternate row colour based on the current system colour my $realColor = Wx::SystemSettings::GetColour(Wx::SYS_COLOUR_WINDOW); # Alternate candystripe is slightly darker and blueish my $alternateColor = Wx::Colour->new( int( $realColor->Red * 0.9 ), int( $realColor->Green * 0.9 ), $realColor->Blue, ); my @preference_names = sort { $a cmp $b } keys %$preferences; if ( $self->{sortcolumn} == 1 ) { # Sort by Status @preference_names = sort { $self->_status_name( $preferences->{$a} ) cmp $self->_status_name( $preferences->{$b} ) } @preference_names; } if ( $self->{sortcolumn} == 2 ) { # Sort by Type @preference_names = sort { $preferences->{$a}{type_name} cmp $preferences->{$b}{type_name} } @preference_names; } if ( $self->{sortcolumn} == 3 ) { # Sort by Value @preference_names = sort { $self->_displayed_value( $preferences->{$a}{type}, $preferences->{$a}{value} ) cmp $self->_displayed_value( $preferences->{$b}{type}, $preferences->{$b}{value} ) } @preference_names; } if ( $self->{sortreverse} ) { @preference_names = reverse @preference_names; } foreach my $name (@preference_names) { # Ignore setting if it does not match the filter # An empty pattern would use the last successful # regex which means arbitrary filter matching (MARKD) # next if $name !~ /$filter/i next if ( length($filter) && $name !~ /$filter/i ); # Add the setting to the list control my $pref = $preferences->{$name}; my $is_default = $pref->{is_default}; $list->InsertStringItem( ++$index, $name ); $list->SetItem( $index, 1, $self->_status_name($pref) ); $list->SetItem( $index, 2, $pref->{type_name} ); $list->SetItem( $index, 3, $self->_displayed_value( $pref->{type}, $pref->{value} ) ); # Alternating table colors $list->SetItemBackgroundColour( $index, $alternateColor ) unless $index % 2; # User-set or non-default preferences have bold font $self->_set_item_bold_font( $index, not $is_default ); } return; } # Private method to set item to bold # Somehow SetItemFont is not there... hence i had to write this long workaround sub _set_item_bold_font { my ( $self, $index, $bold ) = @_; my $list = $self->{list}; my $item = $list->GetItem($index); my $font = $item->GetFont; $font->SetWeight( $bold ? Wx::FONTWEIGHT_BOLD : Wx::FONTWEIGHT_NORMAL ); $item->SetFont($font); $list->SetItem($item); return; } # Private method to initialize a preferences hash from the local configuration sub _init_preferences { my $self = shift; my $config = $self->config; $self->{preferences} = (); for my $name ( Padre::Config->settings ) { my $setting = Padre::Config->meta($name); # Skip PROJECT settings my $store = $setting->store; next if $setting->store == Padre::Constant::PROJECT; my $type = $setting->type; my $type_name = $TYPES{$type}; unless ($type_name) { warn "Unknown type: $type while reading $name\n"; next; } my $options = ( $setting->options ) ? join( ',', keys %{ $setting->options } ) : ''; my $value = $config->$name; my $default = $setting->default; my $is_default = $self->_is_default( $type, $value, $default ); my $store_name = ( $store == Padre::Constant::HUMAN ) ? Wx::gettext('User') : Wx::gettext('Host'); $self->{preferences}->{$name} = { 'is_default' => $is_default, 'default' => $default, 'type' => $type, 'type_name' => $type_name, 'store_name' => $store_name, 'value' => $value, 'original' => $value, 'options' => $options, 'help' => ( $setting->help || '' ), }; } return; } # Private method to resize list columns sub _resize_columns { my $self = shift; # Resize all columns but the last to their biggest item width my $list = $self->{list}; for ( 0 .. 2 ) { $list->SetColumnWidth( $_, Wx::LIST_AUTOSIZE ); } # some columns can have a bold font $list->SetColumnWidth( 1, $list->GetColumnWidth(1) + 10 ); # the last column gets a bigger static width. # i.e. we do not want to be too long $list->SetColumnWidth( 3, 600 ); return; } sub list_col_click { my $self = shift; my $event = shift; my $column = $event->GetColumn; my $prevcol = $self->{sortcolumn}; my $reversed = $self->{sortreverse}; $reversed = $column == $prevcol ? !$reversed : 0; $self->{sortcolumn} = $column; $self->{sortreverse} = $reversed; $self->_update_list; return; } =pod =head2 C<show> $advanced->show($main); Shows the dialog. Returns C<undef>. =cut sub show { my $self = shift; # Initialize Preferences $self->_init_preferences; # Set focus on the filter text field $self->{filter}->SetFocus; # Update the preferences list $self->_update_list; # resize columns $self->_resize_columns; # If it is not shown, show the dialog return $self->ShowModal; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/SessionSave.pm�������������������������������������������������������0000644�0001750�0001750�00000016530�12237327555�017357� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::SessionSave; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Icon (); our $VERSION = '1.00'; our @ISA = 'Wx::Dialog'; use Class::XSAccessor { accessors => { _butsave => '_butsave', # save button _combo => '_combo', # combo box holding the session names _names => '_names', # list of all session names _sizer => '_sizer', # the window sizer _text => '_text', # text control holding the description } }; # -- constructor sub new { my ( $class, $parent ) = @_; # create object my $self = $class->SUPER::new( $parent, -1, Wx::gettext('Save session as...'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE | Wx::TAB_TRAVERSAL, ); $self->SetIcon(Padre::Wx::Icon::PADRE); # create dialog $self->_create; return $self; } # -- public methods sub show { my $self = shift; $self->_refresh_combo; $self->Show; } # -- gui handlers # # $self->_on_butclose_clicked; # # handler called when the close button has been clicked. # sub _on_butclose_clicked { my $self = shift; $self->Destroy; } # # $self->_on_butsave_clicked; # # handler called when the save button has been clicked. # sub _on_butsave_clicked { my $self = shift; my $main = $self->GetParent; my $lock = $main->lock('DB'); my $session = $self->_current_session; # TO DO: This must be switched to use the main methods: if ( defined $session ) { # session exist, remove all files associated to it Padre::DB::SessionFile->delete_where( 'session = ?', $session->id ); # Save Session description: Padre::DB->do( 'UPDATE session SET description = ? WHERE id = ?', {}, $self->_text->GetValue, $session->id, ); } else { # session did not exist, create a new one $session = Padre::DB::Session->create( name => $self->_combo->GetValue, description => $self->_text->GetValue, last_update => time, ); } # Capture session and save it my @session = $main->capture_session; $main->save_session( $session, @session ); # close dialog $self->Destroy; } # # $self->_on_combo_item_selected( $event ); # # handler called when a combo item has been selected. it will in turn update # the description text. # # $event is a Wx::CommandEvent. # sub _on_combo_item_selected { my ( $self, $event ) = @_; my $name = $self->_combo->GetValue; my $session = $self->_current_session; return unless $session; $self->_text->SetValue( $session->description ); } # # $self->_on_combo_text_changed( $event ); # # handler called when user types in the combo box. it will update the # description text, but only if the new session matches an existing one. # # $event is a Wx::CommandEvent. # sub _on_combo_text_changed { my ( $self, $event ) = @_; my $name = $self->_combo->GetValue; my $method = $name ? 'Enable' : 'Disable'; $self->_butsave->$method; my $session = $self->_current_session; return unless $session; $self->_text->SetValue( $session->description ); } # -- private methods # # $self->_create; # # create the dialog itself. # # no params, no return values. # sub _create { my $self = shift; # create sizer that will host all controls my $box = Wx::BoxSizer->new(Wx::VERTICAL); my $sizer = Wx::GridBagSizer->new( 5, 5 ); $sizer->AddGrowableCol(1); $box->Add( $sizer, 1, Wx::EXPAND | Wx::ALL, 5 ); $self->_sizer($sizer); $self->_create_fields; $self->_create_buttons; $self->SetSizer($box); $box->SetSizeHints($self); $self->CenterOnParent; $self->_combo->SetFocus; # Update description/button status in case of preloaded values # Better re-use the existing functions than rewrite the same # code during component creation $self->_on_combo_text_changed; } # # $dialog->_create_fields; # # create the combo box with the sessions. it will hold a list of # available sessions (but still allowing user to add another value), and # a description field. # # no params. no return values. # sub _create_fields { my $self = shift; my $sizer = $self->_sizer; my $Current_Session; if ( defined( Padre->ide->{session} ) ) { my $CS = Padre::DB::Session->select( 'name where id = ?', Padre->ide->{session} ); # was $CS->[0]->{name}; # but it crashed $Current_Session = $CS->[0]->[1]; } $Current_Session ||= ''; # Empty value for combo box, better than undef # session name my $lab1 = Wx::StaticText->new( $self, -1, Wx::gettext('Session name:') ); my $combo = Wx::ComboBox->new( $self, -1, $Current_Session ); $sizer->Add( $lab1, Wx::GBPosition->new( 0, 0 ) ); $sizer->Add( $combo, Wx::GBPosition->new( 0, 1 ), Wx::GBSpan->new( 1, 3 ), Wx::EXPAND ); $self->_combo($combo); Wx::Event::EVT_COMBOBOX( $self, $combo, \&_on_combo_item_selected ); Wx::Event::EVT_TEXT( $self, $combo, \&_on_combo_text_changed ); # session descritpion my $lab2 = Wx::StaticText->new( $self, -1, Wx::gettext('Description:') ); my $text = Wx::TextCtrl->new( $self, -1, '' ); $sizer->Add( $lab2, Wx::GBPosition->new( 1, 0 ) ); $sizer->Add( $text, Wx::GBPosition->new( 1, 1 ), Wx::GBSpan->new( 1, 3 ), Wx::EXPAND ); $self->_text($text); } # # $dialog->_create_buttons; # # create the buttons pane. # # no params. no return values. # sub _create_buttons { my $self = shift; my $sizer = $self->_sizer; # the buttons my $bs = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext('Save') ); my $bc = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('Close') ); Wx::Event::EVT_BUTTON( $self, $bs, \&_on_butsave_clicked ); Wx::Event::EVT_BUTTON( $self, $bc, \&_on_butclose_clicked ); $sizer->Add( $bs, Wx::GBPosition->new( 2, 2 ) ); $sizer->Add( $bc, Wx::GBPosition->new( 2, 3 ) ); $bs->SetDefault; # save button is disabled at first if there is nothing to save $bs->Disable; $self->_butsave($bs); } # # my $session = $self->_current_session; # # return the padre::db::session object corresponding to combo text. # return undef if no object selected. # sub _current_session { my $self = shift; my ($current) = Padre::DB::Session->select( 'where name = ?', $self->_combo->GetValue ); return $current; } # # $dialog->_refresh_combo; # # refresh combo box with list of sessions. # sub _refresh_combo { my ( $self, $column, $reverse ) = @_; # get list of sessions, sorted. my @names = map { $_->name } Padre::DB::Session->select('ORDER BY name'); $self->_names( \@names ); # clear list & fill it again my $combo = $self->_combo; my $preselection = $combo->GetValue; $combo->Clear; $combo->Append($_) foreach @names; $combo->SetStringSelection($preselection); } 1; __END__ =head1 NAME Padre::Wx::Dialog::SessionSave - dialog to save a Padre session =head1 DESCRIPTION Padre supports sessions, and this dialog provides Padre with a way to save a session. =head1 PUBLIC API =head2 Constructor =head3 C<new> my $dialog = PWD::SS->new( $parent ) Create and return a new Wx dialog allowing to save a session. It needs a C<$parent> window (usually Padre's main window). =head2 Public methods =head3 C<show> $dialog->show; Request the dialog to be shown. =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Special.pm�����������������������������������������������������������0000644�0001750�0001750�00000005113�12237327555�016470� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Special; use 5.008; use strict; use warnings; use Padre::Wx::FBP::Special (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::Special'; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); my $select = $self->select; # Fill the dropbox $select->Clear; foreach my $special ( $self->catalogue ) { $select->Append(@$special); } $select->SetSelection(0); # Set the initial preview $self->refresh; return $self; } ###################################################################### # Event Handlers sub refresh { my $self = shift; my $value = $self->value; $self->preview->SetValue($value); } sub insert_preview { my $self = shift; my $editor = $self->current->editor or return; $editor->insert_text( $self->value ); } ###################################################################### # Special Value Catalogue sub catalogue { my $date = Wx::gettext('Date/Time'); my $file = Wx::gettext('File'); return ( [ "$date - " . Wx::gettext('Now'), 'time_now' ], [ "$date - " . Wx::gettext('Today'), 'time_today' ], [ "$date - " . Wx::gettext('Year'), 'time_year' ], [ "$date - " . Wx::gettext('Epoch'), 'time_epoch' ], [ "$file - " . Wx::gettext('Name'), 'file_name' ], [ "$file - " . Wx::gettext('Size'), 'file_size' ], [ "$file - " . Wx::gettext('Lines'), 'file_lines' ], ); } sub value { my $self = shift; my @list = $self->catalogue; my $method = $list[ $self->select->GetSelection ]->[1]; return $self->$method; } sub time_now { return scalar localtime; } sub time_today { my @t = localtime; return sprintf( "%s-%02s-%02s", $t[5] + 1900, $t[4], $t[3] ); } sub time_year { my @t = localtime; return $t[5] + 1900; } sub time_epoch { return time; } sub file_name { my $self = shift; my $document = $self->current->document or return ''; if ( $document->file ) { return $document->{file}->filename; } # Use the title instead my $title = $document->get_title; $title =~ s/^\s+//; return $title; } sub file_size { my $self = shift; my $document = $self->current->document or return 0; my $filename = $document->filename || $document->tempfile or return 0; return -s $filename; } sub file_lines { my $self = shift; my $editor = $self->current->editor or return 0; return $editor->GetLineCount; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/About.pm�������������������������������������������������������������0000644�0001750�0001750�00000012522�12237327555�016164� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::About; use 5.008; use strict; use warnings; use utf8; use Config; use PPI (); use Padre::Wx (); use Wx::Perl::ProcessStream (); use Padre::Util (); use Padre::Locale::Format (); use Padre::Wx::FBP::About (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::FBP::About }; use constant { OFFSET => 24, }; sub run { my $class = shift; my $self = $class->SUPER::new(@_); # Always show the first tab regardless of which one # was selected in wxFormBuilder. $self->notebook->ChangeSelection(0); # Load the platform-adaptive splash image $self->{splash}->SetBitmap( Wx::Bitmap->new( Padre::Util::splash, Wx::BITMAP_TYPE_PNG ) ); # $self->creator->SetLabel("G\x{e1}bor Szab\x{f3}"); # don't work $self->creator->SetLabel('Created by Gábor Szabó'); # works # Set the system information $self->{output}->ChangeValue( $self->_information ); # Set the translators $self->_translation; $self->CenterOnParent; # Show the dialog $self->ShowModal; # As we leave the About dialog, return the user to the current editor # window so they don't need to click it. $self->main->editor_focus; $self->Destroy; } sub _translation { my $self = shift; #TODO will all translators please add there name # in native language please and uncommet please $self->ahmad_zawawi->SetLabel('أحمد محمد زواوي'); # $self->fayland_lam->SetLabel(''); # $self->chuanren_wu->SetLabel(''); $self->matthew_lien->SetLabel('練喆明'); $self->marcela_maslanova->SetLabel('Marcela Mašláňová'); # $self->dirk_de_nijs->SetLabel(''); $self->jerome_quelin->SetLabel('Jérôme Quelin'); $self->olivier_mengue->SetLabel('Olivier Mengué'); # $self->heiko_jansen->SetLabel(''); # $self->sebastian_willing->SetLabel(''); # $self->zeno_gantner->SetLabel(''); $self->omer_zak->SetLabel('עומר זק'); $self->shlomi_fish->SetLabel('שלומי פיש'); $self->amir_e_aharoni->SetLabel('אמיר א. אהרוני'); $self->gyorgy_pasztor->SetLabel('György Pásztor'); # $self->simone_blandino->SetLabel(''); $self->kenichi_ishigaki->SetLabel('石垣憲'); $self->keedi_kim->SetLabel('김도형'); # $self->kjetil_skotheim->SetLabel(''); # $self->cezary_morga->SetLabel(''); # $self->marek_roszkowski->SetLabel(''); # $self->breno_g_de_oliveira->SetLabel(''); # $self->gabriel_vieira->SetLabel(''); # $self->paco_alguacil->SetLabel(''); # $self->enrique_nell->SetLabel(''); # $self->andrew_shitov->SetLabel(''); $self->burak_gursoy->SetLabel('Burak Gürsoy'); return; } sub _information { my $self = shift; my $output = "\n"; $output .= sprintf "%*s %s\n", OFFSET, 'Padre', $VERSION; $output .= $self->_core_info; $output .= $self->_wx_info; $output .= "Other...\n"; $output .= sprintf "%*s %s\n", OFFSET, 'PPI', $PPI::VERSION; require Debug::Client; $output .= sprintf "%*s %s\n", OFFSET, 'Debug::Client', $Debug::Client::VERSION; require PPIx::EditorTools; $output .= sprintf "%*s %s\n", OFFSET, 'PPIx::EditorTools', $PPIx::EditorTools::VERSION; $output .= sprintf "%*s %s\n", OFFSET, Wx::gettext('Config'), Padre::Constant::CONFIG_DIR; return $output; } sub _core_info { my $self = shift; my $output = "Core...\n"; # Do not translate those labels $output .= sprintf "%*s %s\n", OFFSET, "osname", $Config{osname}; $output .= sprintf "%*s %s\n", OFFSET, "archname", $Config{archname}; if ( $Config{osname} eq 'linux' ) { # qx{...} ok here as linux my $distro = qx{cat /etc/issue}; chomp($distro); $distro =~ s/\\n \\l//g; $distro =~ s/\x0A//g; $output .= sprintf "%*s %s\n", OFFSET, Wx::gettext('Distribution'), $distro; # Do we really care for Padre? my $kernel = qx{uname -r}; chomp($kernel); $output .= sprintf "%*s %s\n", OFFSET, Wx::gettext('Kernel'), $kernel; } # Yes, THIS variable should have this upper case char :-) my $perl_version = $^V || $]; $perl_version =~ s/^v//; $output .= sprintf "%*s %s\n", OFFSET, 'Perl', $perl_version; # How many threads are running my $threads = $INC{'threads.pm'} ? scalar( threads->list ) : Wx::gettext('(disabled)'); $output .= sprintf "%*s %s\n", OFFSET, Wx::gettext('Threads'), $threads; # Calculate the current memory in use across all threads my $ram = Padre::Util::process_memory(); if ($ram) { $ram = Padre::Locale::Format::bytes($ram); } else { $ram = Wx::gettext('(unsupported)'); } $output .= sprintf "%*s %s\n", OFFSET, Wx::gettext("RAM"), $ram; return $output; } sub _wx_info { my $self = shift; my $output = "Wx...\n"; $output .= sprintf "%*s %s\n", OFFSET, 'Wx', $Wx::VERSION; # Reformat the native wxWidgets version string slightly my $wx_widgets = Wx::wxVERSION_STRING(); $wx_widgets =~ s/^wx\w+\s+//; $output .= sprintf "%*s %s\n", OFFSET, 'WxWidgets', $wx_widgets; $output .= sprintf "%*s %s\n", OFFSET, 'unicode', Wx::wxUNICODE(); require Alien::wxWidgets; $output .= sprintf "%*s %s\n", OFFSET, 'Alien::wxWidgets', $Alien::wxWidgets::VERSION; $output .= sprintf "%*s %s\n", OFFSET, 'Wx::Perl::ProcessStream', $Wx::Perl::ProcessStream::VERSION; require Wx::Scintilla; $output .= sprintf "%*s %s\n", OFFSET, 'Wx::Scintilla', $Wx::Scintilla::VERSION; return $output; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Patch.pm�������������������������������������������������������������0000644�0001750�0001750�00000042304�12237327555�016152� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Patch; use 5.008; use strict; use warnings; use Padre::Util (); use Padre::Wx (); use Padre::Wx::FBP::Patch (); use Padre::Logger; use Try::Tiny; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::FBP::Patch }; ####### # new ####### sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->CenterOnParent; $self->{action_request} = 'Patch'; $self->{selection} = 0; return $self; } ####### # Method run ####### sub run { my $self = shift; # auto-fill dialogue $self->set_up; # TODO but I want nonModal, ie $self->Show; # Show the dialog my $result = $self->ShowModal; if ( $result == Wx::ID_CANCEL ) { # As we leave the Find dialog, return the user to the current editor # window so they don't need to click it. $self->main->editor_focus; $self->Destroy; } return; } ####### # Method set_up ####### sub set_up { my $self = shift; # test for local svn_local $self->test_svn(); # generate open file bucket $self->current_files(); # display default saved file lists $self->file_lists_saved(); # display correct file-2 list $self->file2_list_type(); $self->against->SetSelection(0); return; } ####### # Event Handler process_clicked ####### sub process_clicked { my $self = shift; my $file1 = @{ $self->{file1_list_ref} }[ $self->file1->GetSelection() ]; my $file2 = @{ $self->{file2_list_ref} }[ $self->file2->GetCurrentSelection() ]; TRACE( '$self->file1->GetSelection(): ' . $self->file1->GetSelection() ) if DEBUG; TRACE( '$file1: ' . $file1 ) if DEBUG; TRACE( '$self->file2->GetCurrentSelection(): ' . $self->file2->GetCurrentSelection() ) if DEBUG; TRACE( '$file2: ' . $file2 ) if DEBUG; TRACE( $self->action->GetStringSelection() ) if DEBUG; if ( $self->action->GetStringSelection() eq 'Patch' ) { $self->apply_patch( $file1, $file2 ); } if ( $self->action->GetStringSelection() eq 'Diff' ) { if ( $self->against->GetStringSelection() eq 'File-2' ) { $self->make_patch_diff( $file1, $file2 ); } elsif ( $self->against->GetStringSelection() eq 'SVN' ) { $self->make_patch_svn($file1); } } # reset dialogue's display information $self->set_up; return; } ####### # Event Handler on_action ####### sub on_action { my $self = shift; # re-generate open file bucket $self->current_files(); if ( $self->action->GetStringSelection() eq 'Patch' ) { $self->{action_request} = 'Patch'; $self->set_up; $self->against->Enable(0); $self->file2->Enable(1); } else { $self->{action_request} = 'Diff'; $self->set_up; $self->against->Enable(1); $self->file2->Enable(1); # as we can not added items to a radio-box, # we can only enable & disable when radio-box enabled if ( !$self->{svn_local} ) { $self->against->EnableItem( 1, 0 ); } $self->against->SetSelection(0); } return; } ####### # Event Handler on_against ####### sub on_against { my $self = shift; if ( $self->against->GetStringSelection() eq 'File-2' ) { # show saved files only $self->file2->Enable(1); $self->file_lists_saved(); } elsif ( $self->against->GetStringSelection() eq 'SVN' ) { # SVN only display files that are part of a SVN $self->file2->Enable(0); $self->file1_list_svn(); } return; } ####### # Method current_files ####### sub current_files { my $self = shift; my $main = $self->main; my $current = $main->current; my $notebook = $current->notebook; my @label = $notebook->labels; # get last element # not size $self->{tab_cardinality} = $#label; # thanks Alias my @file_vcs = map { $_->project->vcs } $self->main->documents; # create a bucket for open file info, as only a current file bucket exist for ( 0 .. $self->{tab_cardinality} ) { $self->{open_file_info}->{$_} = ( { 'index' => $_, 'URL' => $label[$_][1], 'filename' => $notebook->GetPageText($_), 'changed' => 0, 'vcs' => $file_vcs[$_], }, ); if ( $notebook->GetPageText($_) =~ /^\*/sxm ) { TRACE("Found an unsaved file, will ignore: $notebook->GetPageText($_)") if DEBUG; $self->{open_file_info}->{$_}->{'changed'} = 1; } } return; } ####### # Composed Method file2_list_type ####### sub file2_list_type { my $self = shift; if ( $self->{action_request} eq 'Patch' ) { # update File-2 = *.patch $self->file2_list_patch(); } else { # File-1 = File-2 = saved files $self->file_lists_saved(); } return; } ####### # Composed Method file_lists_saved ####### sub file_lists_saved { my $self = shift; my @file_lists_saved; for ( 0 .. $self->{tab_cardinality} ) { unless ( $self->{open_file_info}->{$_}->{'changed'} || $self->{open_file_info}->{$_}->{'filename'} =~ /(patch|diff)$/sxm ) { push @file_lists_saved, $self->{open_file_info}->{$_}->{'filename'}; } } TRACE("file_lists_saved: @file_lists_saved") if DEBUG; $self->file1->Clear; $self->file1->Append( \@file_lists_saved ); $self->{file1_list_ref} = \@file_lists_saved; $self->set_selection_file1(); $self->file1->SetSelection( $self->{selection} ); $self->file2->Clear; $self->file2->Append( \@file_lists_saved ); $self->{file2_list_ref} = \@file_lists_saved; $self->set_selection_file2(); $self->file2->SetSelection( $self->{selection} ); return; } ####### # Composed Method file2_list_patch ####### sub file2_list_patch { my $self = shift; my @file2_list_patch; for ( 0 .. $self->{tab_cardinality} ) { if ( $self->{open_file_info}->{$_}->{'filename'} =~ /(patch|diff)$/sxm ) { push @file2_list_patch, $self->{open_file_info}->{$_}->{'filename'}; } } TRACE("file2_list_patch: @file2_list_patch") if DEBUG; $self->file2->Clear; $self->file2->Append( \@file2_list_patch ); $self->{file2_list_ref} = \@file2_list_patch; $self->set_selection_file2(); $self->file2->SetSelection( $self->{selection} ); return; } ####### # Composed Method file1_list_svn ####### sub file1_list_svn { my $self = shift; @{ $self->{file1_list_ref} } = (); for ( 0 .. $self->{tab_cardinality} ) { try { if ( $self->{open_file_info}->{$_}->{'vcs'} ) { if ( ( $self->{open_file_info}->{$_}->{'vcs'} =~ /SVN/sxm ) && !( $self->{open_file_info}->{$_}->{'changed'} ) && !( $self->{open_file_info}->{$_}->{'filename'} =~ /(patch|diff)$/sxm ) ) { push @{ $self->{file1_list_ref} }, $self->{open_file_info}->{$_}->{'filename'}; } } }; } TRACE("file1_list_svn: @{ $self->{file1_list_ref} }") if DEBUG; $self->file1->Clear; $self->file1->Append( $self->{file1_list_ref} ); $self->set_selection_file1(); $self->file1->SetSelection( $self->{selection} ); return; } ####### # Composed Method set_selection_file1 ####### sub set_selection_file1 { my $self = shift; my $main = $self->main; $self->{selection} = 0; if ( $main->current->title =~ /(patch|diff)$/sxm ) { my @pathch_target = split /\./, $main->current->title, 2; # TODO this is a padre internal issue, remove obtuse leading space if exists $pathch_target[0] =~ s/^\p{Space}{1}//; TRACE("Looking for File-1 to apply a patch to: $pathch_target[0]") if DEBUG; # SetSelection should be Patch target file foreach ( 0 .. $#{ $self->{file1_list_ref} } ) { # add optional leading space \p{Space}? if ( @{ $self->{file1_list_ref} }[$_] =~ /^\p{Space}?$pathch_target[0]/ ) { $self->{selection} = $_; return; } } } else { # SetSelection should be current file foreach ( 0 .. $#{ $self->{file1_list_ref} } ) { if ( @{ $self->{file1_list_ref} }[$_] eq $main->current->title ) { $self->{selection} = $_; return; } } } return; } ####### # Composed Method set_selection_file2 ####### sub set_selection_file2 { my $self = shift; my $main = $self->main; $self->{selection} = 0; # SetSelection should be current file foreach ( 0 .. $#{ $self->{file2_list_ref} } ) { if ( @{ $self->{file2_list_ref} }[$_] eq $main->current->title ) { $self->{selection} = $_; return; } } return; } ####### # Composed Method filename_url ####### sub filename_url { my $self = shift; my $filename = shift; # given tab name get url of file for ( 0 .. $self->{tab_cardinality} ) { if ( $self->{open_file_info}->{$_}->{'filename'} eq $filename ) { return $self->{open_file_info}->{$_}->{'URL'}; } } return; } ######## # Method apply_patch ######## sub apply_patch { my $self = shift; my $file1_name = shift; my $file2_name = shift; my $main = $self->main; $main->show_output(1); my $output = $main->output; $output->clear; my ( $source, $diff ); my $file1_url = $self->filename_url($file1_name); my $file2_url = $self->filename_url($file2_name); if ( -e $file1_url ) { TRACE("found file1 => $file1_name: $file1_url") if DEBUG; $source = ${ Padre::Util::slurp($file1_url) }; } if ( -e $file2_url ) { TRACE("found file2 => $file2_name: $file2_url") if DEBUG; $diff = ${ Padre::Util::slurp($file2_url) }; unless ( $file2_url =~ /(patch|diff)$/sxm ) { $main->info( Wx::gettext('Patch file should end in .patch or .diff, you should reselect & try again') ); return; } } if ( -e $file1_url && -e $file2_url ) { require Text::Patch; my $our_patch; if ( eval { $our_patch = Text::Patch::patch( $source, $diff, { STYLE => 'Unified', }, ) } ) { TRACE($our_patch) if DEBUG; # Open the patched file as a new file my $doc = $main->new_document_from_string( $our_patch => 'application/x-perl', ); $main->info( sprintf(Wx::gettext('Patch successful, you should see a new tab in editor called %s'), $doc->get_title) ); } else { TRACE("error trying to patch: $@") if DEBUG; $output->AppendText("Patch Dialog failed to Complete.\n"); $output->AppendText("Your requested Action Patch, with following parameters.\n"); $output->AppendText("File-1: $file1_url \n"); $output->AppendText("File-2: $file2_url \n"); $output->AppendText("What follows is the error I received from Text::Patch::patch, if any: \n"); $output->AppendText($@); $main->info( Wx::gettext('Sorry, patch failed, are you sure your choice of files was correct for this action') ); return; } } return; } ####### # Method make_patch_diff ####### sub make_patch_diff { my $self = shift; my $file1_name = shift; my $file2_name = shift; my $main = $self->main; $main->show_output(1); my $output = $main->output; $output->clear; my $file1_url = $self->filename_url($file1_name); my $file2_url = $self->filename_url($file2_name); if ( -e $file1_url ) { TRACE("found file1 => $file1_name: $file1_url") if DEBUG; } if ( -e $file2_url ) { TRACE("found file2 => $file2_name: $file2_url") if DEBUG; } if ( -e $file1_url && -e $file2_url ) { require Text::Diff; my $our_diff; if ( eval { $our_diff = Text::Diff::diff( $file1_url, $file2_url, { STYLE => 'Unified' } ) } ) { TRACE($our_diff) if DEBUG; my $patch_file = $file1_url . '.patch'; open my $fh, '>', $patch_file or die "open: $!"; print $fh $our_diff; close $fh; TRACE("writing file: $patch_file") if DEBUG; $main->setup_editor($patch_file); $main->info( sprintf( Wx::gettext('Diff successful, you should see a new tab in editor called %s'), $patch_file ) ); } else { TRACE("error trying to patch: $@") if DEBUG; $output->AppendText("Patch Dialog failed to Complete.\n"); $output->AppendText("Your requested Action Diff, with following parameters.\n"); $output->AppendText("File-1: $file1_url \n"); $output->AppendText("File-2: $file2_url \n"); $output->AppendText("What follows is the error I received from Text::Diff::diff, if any: \n"); $output->AppendText($@); $main->info( Wx::gettext('Sorry Diff Failed, are you sure your choice of files was correct for this action') ); return; } } return; } ####### # Composed Method test_svn ####### sub test_svn { my $self = shift; my $main = $self->main; $self->{svn_local} = 0; my $required_svn_version = '1.6.2'; if ( File::Which::which('svn') ) { # test svn version my $svn_client_info_ref = Padre::Util::run_in_directory_two( cmd => 'svn --version --quiet', option => '0' ); my %svn_client_info = %{$svn_client_info_ref}; if ( !$svn_client_info{error} ) { require Sort::Versions; # This is so much better, now we are testing for version as well if ( Sort::Versions::versioncmp( $required_svn_version, $svn_client_info{output}, ) == -1 ) { TRACE("Found local SVN v$svn_client_info{output}, good to go.") if DEBUG; $self->{svn_local} = 1; return; } else { TRACE("Found SVN v$svn_client_info{output} but require v$required_svn_version") if DEBUG; $main->info( sprintf( Wx::gettext( 'Warning: found SVN v%s but we require SVN v%s and it is now called "Apache Subversion"'), $svn_client_info{output}, $required_svn_version ) ); } } } return; } ####### # Method make_patch_svn # inspired by P-P-SVN ####### sub make_patch_svn { my $self = shift; my $file1_name = shift; my $main = $self->main; $main->show_output(1); my $output = $main->output; $output->clear; my $file1_url = $self->filename_url($file1_name); TRACE("file1_url to svn: $file1_url") if DEBUG; if ( $self->{svn_local} ) { TRACE('found local SVN, Good to go') if DEBUG; my $diff_str_ref; try { $diff_str_ref = Padre::Util::run_in_directory_two( cmd => "svn diff $file1_url", option => '0' ); }; my %svn_diff = %{$diff_str_ref}; if ( !$svn_diff{error} ) { TRACE( $svn_diff{output} ) if DEBUG; my $patch_file = $file1_url . '.patch'; open( my $fh, '>', $patch_file ) or die "open: $!"; print $fh $svn_diff{output}; close $fh; TRACE("writing file: $patch_file") if DEBUG; $main->setup_editor($patch_file); $main->info( sprintf( Wx::gettext('SVN Diff successful. You should see a new tab in editor called %s.'), $patch_file ) ); } else { TRACE("Error trying to get an SVN Diff: $svn_diff{error}") if DEBUG; $output->AppendText("Patch Dialog failed to Complete.\n"); $output->AppendText("Your requested Action Diff against SVN, with following parameters.\n"); $output->AppendText("File-1: $file1_url \n"); $output->AppendText("What follows is the error I received from SVN, if any: \n"); if ( $svn_diff{error} ) { $output->AppendText( $svn_diff{error} ); } else { $output->AppendText("Sorry, Diff to SVN failed. There are any diffrences in this file: $file1_name"); } $main->info( Wx::gettext('Sorry, Diff failed. Are you sure your have access to the repository for this action') ); return; } } return; } 1; __END__ =head1 NAME Padre::Wx::Dialog::Patch - The Padre Patch dialog =head1 DESCRIPTION You will find more infomation in our L<wiki|http://padre.perlide.org/trac/wiki/Features/EditPatch/> pages. A very simplistic tool, only works on open saved files, in the Padre editor. Patch a single file, in the editor with a patch/diff file that is also open. Diff between two open files, the resulting patch file will be in Unified form. Diff a single file to svn, only display files that are part of an SVN already, the resulting patch file will be in Unified form. All results will be a new Tab. =head1 METHODS =head2 new Constructor. Should be called with C<$main> by C<Patch::load_dialog_main()>. =head2 run C<run> configures the dialogue for your environment =head2 set_up C<set_up> configures the dialogue for your environment =head2 on_action Event handler for action, adjust dialogue accordingly =head2 on_against Event handler for against, adjust dialogue accordingly =head2 process_clicked Event handler for process_clicked, perform your chosen action, all results go into a new tab in editor. =head2 current_files extracts file info from Padre about all open files in editor =head2 apply_patch A convenience method to apply patch to chosen file. uses Text::Patch =head2 make_patch_diff A convenience method to generate a patch/diff file from two selected files. uses Text::Diff =head2 test_svn test for a local copy of svn in Path and version greater than 1.6.2. =head2 make_patch_svn A convenience method to generate a patch/diff file from a selected file and svn if applicable, ie file has been checked out. =head2 file2_list_type composed method =head2 filename_url composed method =head2 set_selection_file1 composed method =head2 set_selection_file2 composed method =head2 file1_list_svn composed method =head2 file2_list_patch composed method =head2 file_lists_saved composed method =head1 BUGS AND LIMITATIONS List Order is that of load order, if you move your Tabs the List Order will not follow suite. If you have multiple files open with same name but with different paths only the first will get matched. =head1 AUTHORS BOWTIE E<lt>kevin.dawson@btclick.comE<gt> Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 LICENSE AND COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Document.pm����������������������������������������������������������0000644�0001750�0001750�00000007520�12237327555�016672� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Document; use 5.008; use strict; use warnings; use Scalar::Util (); use Padre::SLOC (); use Padre::Locale (); use Padre::Wx::FBP::Document (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::Document'; my @SELECTION_FIELDS = qw{ selection_label selection_bytes selection_characters selection_visible selection_lines selection_words selection_sloc }; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->CentreOnParent; # Save the label colours for later $self->{strong} = $self->{document_label}->GetForegroundColour; $self->{weak} = $self->{selection_label}->GetForegroundColour; return $self; } ###################################################################### # Main Methods sub run { my $class = shift; my $self = $class->new(@_); # Load all the document information $self->refresh; # Show the document information $self->ShowModal; # Clean up $self->Destroy; } sub refresh { my $self = shift; my $current = $self->current; my $document = $current->document or return; my $editor = $current->editor or return; my $mime = $document->mime; # Find the document encoding my $encoding = $document->encoding; unless ( $encoding and $encoding ne 'ascii' ) { $encoding = Padre::Locale::encoding_from_string( $editor->GetText ); } unless ( $encoding and $encoding ne 'ascii' ) { $encoding = "ASCII"; } # Update the general document information $self->{filename}->SetLabel( $document->get_title ); $self->{document_type}->SetLabel( $mime->name ); $self->{document_class}->SetLabel( Scalar::Util::blessed($document) ); $self->{mime_type}->SetLabel( $mime->type ); $self->{encoding}->SetLabel($encoding); $self->{newline_type}->SetLabel( $document->newline_type ); # Update the overall document statistics SCOPE: { my $text = $editor->GetText; my @words = $text =~ /(\w+)/g; $text =~ s/\s//g; my $sloc = Padre::SLOC->new; $sloc->add_document($document); $self->{document_bytes}->SetLabel( $editor->GetLength ); $self->{document_characters}->SetLabel( length $editor->GetText ); $self->{document_visible}->SetLabel( length $text ); $self->{document_lines}->SetLabel( $editor->GetLineCount ); $self->{document_words}->SetLabel( scalar @words ); $self->{document_sloc}->SetLabel( $sloc->total_content ); } # Update the selection statistics SCOPE: { my $text = $editor->GetSelectedText; if ( length $text ) { my $sloc = Padre::SLOC->new; $sloc->add_text( \$text, $document->mime ); my @words = $text =~ /(\w+)/g; $text =~ s/\s//g; my @lines = $editor->get_selection_lines; $self->{selection_bytes}->SetLabel( length $editor->GetSelectedText ); $self->{selection_characters}->SetLabel( length $editor->GetSelectedText ); $self->{selection_visible}->SetLabel( length $text ); $self->{selection_lines}->SetLabel( $lines[1] - $lines[0] + 1 ); $self->{selection_words}->SetLabel( scalar @words ); $self->{selection_sloc}->SetLabel( $sloc->total_content ); } else { $self->{selection_bytes}->SetLabel(0); $self->{selection_characters}->SetLabel(0); $self->{selection_visible}->SetLabel(0); $self->{selection_lines}->SetLabel(0); $self->{selection_words}->SetLabel(0); $self->{selection_sloc}->SetLabel(0); } # Set the colour of the selection labels my $colour = length($text) ? $self->{strong} : $self->{weak}; foreach my $field (@SELECTION_FIELDS) { $self->{$field}->SetForegroundColour($colour); } } # Recalculate the layout and fix the size $self->Layout; return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Text.pm��������������������������������������������������������������0000644�0001750�0001750�00000001403�12237327555�016032� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Text; use 5.008; use strict; use warnings; use Padre::Wx::FBP::Text; our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::Text'; ###################################################################### # Original API Emulation sub show { my $class = shift; my $main = shift; my $title = shift || ''; my $text = shift || ''; # Create the dialog my $self = $class->new($main); $self->SetTitle($title); $self->text->SetValue($text); $self->close->SetFocus; # Display the dialog $self->CentreOnParent; $self->ShowModal; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Expression.pm��������������������������������������������������������0000644�0001750�0001750�00000004757�12237327555�017264� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Expression; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::ScrollLock (); use Padre::Wx::Role::Timer (); use Padre::Wx::FBP::Expression (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Timer Padre::Wx::FBP::Expression }; ###################################################################### # Event Handlers sub on_combobox { return 1; } sub on_text { my $self = shift; my $event = shift; if ( $self->{watch}->GetValue ) { $self->{watch}->SetValue(0); $self->watch_clicked; } $self->{code}->SetBackgroundColour( Wx::SystemSettings::GetColour(Wx::SYS_COLOUR_WINDOW) ); $self->Refresh; $event->Skip(1); } sub on_text_enter { my $self = shift; my $event = shift; $self->run; $event->Skip(1); } sub evaluate_clicked { my $self = shift; my $event = shift; $self->run; $event->Skip(1); } sub watch_clicked { my $self = shift; my $event = shift; if ( $self->{watch}->GetValue ) { $self->dwell_start( 'watch_timer' => 1000 ); } else { $self->dwell_stop('watch_timer'); } $event->Skip(1) if $event; } sub watch_timer { my $self = shift; my $event = shift; if ( $self->IsShown ) { $self->run; } if ( $self->{watch}->GetValue ) { $self->dwell_start( 'watch_timer' => 1000 ); } return; } ###################################################################### # Main Methods sub run { my $self = shift; my $code = $self->{code}->GetValue; my @locks = ( Wx::WindowUpdateLocker->new( $self->{code} ), Wx::WindowUpdateLocker->new( $self->{output} ), ); # Reset the expression and blank old output $self->{code}->SetBackgroundColour( Wx::SystemSettings::GetColour(Wx::SYS_COLOUR_WINDOW) ); # Execute the code and handle errors local $@; my @rv = eval $code; if ($@) { $self->{output}->SetValue(''); $self->error($@); return; } # Dump to the output window require Devel::Dumpvar; $self->{output}->ChangeValue( Devel::Dumpvar->new( to => 'return' )->dump(@rv) ); unless ( $self->{watch}->GetValue ) { $self->{output}->SetSelection( 0, 0 ); } # Success $self->{code}->SetBackgroundColour( Wx::Colour->new('#CCFFCC') ); $self->Refresh; return; } sub error { $_[0]->{output}->SetValue( $_[1] ); $_[0]->{code}->SetBackgroundColour( Wx::Colour->new('#FFCCCC') ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������Padre-1.00/lib/Padre/Wx/Dialog/Positions.pm���������������������������������������������������������0000644�0001750�0001750�00000007135�12237327555�017105� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Positions; # TODO: This has no place as a separate class, and shouldn't be under dialogs, # and shouldn't store local class data. Move into Padre::Wx::Main??? use 5.008; use strict; use warnings; use Padre::DB (); use Padre::Wx (); our $VERSION = '1.00'; my @positions; =head1 NAME Padre::Wx::Dialog::Positions - Go to previous (or earlier) position =head1 SYNOPSIS In the places of the code before jumping to some other location add: require Padre::Wx::Dialog::Positions; Padre::Wx::Dialog::Positions->set_position =head1 DESCRIPTION Remember position before certain movements and allow the user to jump to the earlier positions and then maybe back to the newer ones. The location that will be remember are the location before and after non-simple movements, for example: =over 4 =item * before/after jump to function declaration =item * before/after jump to variable declaration =item * before/after goto line number =item * before/after goto search result =back =cut # TO DO Look for page_history and see if this can be united # also the Bookmarks are similar a bit # TO DO add keyboard short-cut ? # TO DO add item next to buttons under the menues # TO DO reset the rest of the history when someone moves forward from the middle # A, B, C, -> goto(B), D then the history should be A, B, D I think. sub set_position { my $class = shift; my $main = Padre::Current->main; my $current = $main->current; my $editor = $current->editor or return; my $path = $current->filename; return unless defined $path; # TO DO Cannot (yet) set position in unsaved document my $line = $editor->GetCurrentLine; my $file = File::Basename::basename( $path || '' ); my ($name) = $editor->GetLine($line); $name =~ s/\r?\n?$//; push @positions, { name => $name, file => $path, line => $line, }; return; } sub goto_prev_position { my $class = shift; my $main = shift; return _no_positions_yet($main) if not @positions; $class->goto_position( $main, scalar(@positions) - 1 ); return; } sub _no_positions_yet { my $main = shift; $main->message( Wx::gettext("There are no positions saved yet"), Wx::gettext("Show previous positions") ); return; } sub show_positions { my $class = shift; my $main = shift; return _no_positions_yet($main) if not @positions; my $position = $main->single_choice( Wx::gettext('Choose File'), '', [ reverse map { sprintf( Wx::gettext("%s. Line: %s File: %s - %s"), $_, $positions[ $_ - 1 ]{line}, $positions[ $_ - 1 ]{file}, $positions[ $_ - 1 ]{name} ) } 1 .. @positions ], ); return if not defined $position; if ( $position =~ /^(\d+)\./ ) { $class->goto_position( $main, $1 - 1 ); } return; } sub goto_position { my $class = shift; my $main = shift; my $pos = shift; return if not defined $pos or $pos !~ /^\d+$/; return if not defined $positions[$pos]; # $main->error( "" ); # Is the file already open my $file = $positions[$pos]{file}; my $line = $positions[$pos]{line}; my $pageid = $main->editor_of_file($file); unless ( defined $pageid ) { # Load the file if ( -e $file ) { $main->setup_editor($file); $pageid = $main->editor_of_file($file); } } # Go to the relevant editor and row if ( defined $pageid ) { $main->on_nth_pane($pageid); my $page = $main->notebook->GetPage($pageid); $page->goto_line_centerize($line); } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Sync.pm��������������������������������������������������������������0000644�0001750�0001750�00000020275�12237327555�016032� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Sync; use 5.008; use strict; use warnings; use Padre::ServerManager (); use Padre::Wx::FBP::Sync (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::Sync'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); my $config = $self->config; # Fill form elements from configuration $self->{txt_remote}->SetValue( $config->config_sync_server ); $self->{login_email}->SetFocus; $self->{login_email}->SetValue( $config->identity_email ); $self->{login_password}->SetValue( $config->config_sync_password ); # Registration prefill unless ( $config->config_sync_password ) { $self->{txt_email}->SetValue( $config->identity_email ); $self->{txt_email_confirm}->SetValue( $config->identity_email ); } # Create the sync manager and subscribe to events $self->{server_manager} = Padre::ServerManager->new( ide => $self->ide, ); $self->{server_manager}->subscribe( $self, { Padre::ServerManager::SERVER_VERSION => 'server_version', Padre::ServerManager::SERVER_ERROR => 'server_error', Padre::ServerManager::LOGIN_SUCCESS => 'login_success', Padre::ServerManager::LOGIN_FAILURE => 'login_failure', Padre::ServerManager::PUSH_SUCCESS => 'push_success', Padre::ServerManager::PUSH_FAILURE => 'push_failure', Padre::ServerManager::PULL_SUCCESS => 'pull_success', Padre::ServerManager::PULL_FAILURE => 'pull_failure', } ); # Update form to match sync manager $self->refresh; return $self; } sub run { my $class = shift; my $main = shift; my $self = $class->new($main); # Trigger a server version check $self->server_check; # Show the dialog $self->ShowModal; return 1; } ###################################################################### # Event Handlers sub btn_login { my $self = shift; my $manager = $self->{server_manager}; my $url = $self->{txt_remote}->GetValue; my $username = $self->{login_email}->GetValue; my $password = $self->{login_password}->GetValue; if ( $url ne $self->config->config_sync_server ) { $self->config->apply( 'config_sync_server' => $url ); } # Handle login / logout logic toggle if ( $manager->user ) { if ( $manager->logout =~ /success/ ) { Wx::MessageBox( sprintf('Successfully logged out.'), Wx::gettext('Error'), Wx::OK, $self, ); $self->{btn_login}->SetLabel('Log in'); } else { Wx::MessageBox( sprintf('Failed to log out.'), Wx::gettext('Error'), Wx::OK, $self, ); } $self->{lbl_status}->SetLabel( $self->server_status ); return; } unless ( $username and $password ) { Wx::MessageBox( sprintf( Wx::gettext('Please input a valid value for both username and password') ), Wx::gettext('Error'), Wx::OK, $self, ); return; } # Start the login attempt $manager->login( username => $username, password => $password, ); $self->refresh; } sub login_success { $_[0]->refresh; } sub login_failure { $_[0]->refresh; } sub btn_register { my $self = shift; my $email = $self->{txt_email}->GetValue; my $email_confirm = $self->{txt_email_confirm}->GetValue; my $password = $self->{txt_password}->GetValue; my $password_confirm = $self->{txt_password_confirm}->GetValue; # Validation of inputs unless ( $email and $email_confirm and $password and $password_confirm ) { Wx::MessageBox( sprintf( Wx::gettext('Please ensure all inputs have appropriate values.') ), Wx::gettext('Error'), Wx::OK, $self, ); return; } # Not sure if password quality rules should be enforced at this level? unless ( $password eq $password_confirm ) { Wx::MessageBox( sprintf( Wx::gettext('Password and confirmation do not match.') ), Wx::gettext('Error'), Wx::OK, $self, ); return; } unless ( $email eq $email_confirm ) { Wx::MessageBox( sprintf( Wx::gettext('Email and confirmation do not match.') ), Wx::gettext('Error'), Wx::OK, $self, ); return; } # Attempt registration my $rc = $self->{server_manager}->register( email => $email, email_confirm => $email_confirm, password => $password, password_confirm => $password_confirm, ); # Print the return information Wx::MessageBox( sprintf( '%s', $rc ), Wx::gettext('Error'), Wx::OK, $self, ); } sub btn_local { $_[0]->{server_manager}->push; } sub push_success { my $self = shift; Wx::MessageBox( "Pushed configuration to the server", Wx::gettext('Success'), Wx::OK, $self, ); } sub push_failure { my $self = shift; Wx::MessageBox( "Upload failed", Wx::gettext('Error'), Wx::OK, $self, ); } sub btn_remote { $_[0]->{server_manager}->pull; } sub pull_success { my $self = shift; Wx::MessageBox( "Pulled configuration from the server", Wx::gettext('Success'), Wx::OK, $self, ); } sub pull_failure { my $self = shift; Wx::MessageBox( "Download failed", Wx::gettext('Error'), Wx::OK, $self, ); } sub btn_delete { my $self = shift; my $rc = $self->{server_manager}->delete; Wx::MessageBox( sprintf( '%s', $rc ), Wx::gettext('Error'), Wx::OK, $self, ); } # Save changes to dialog inputs to config sub btn_ok { my $self = shift; my $config = $self->current->config; # Save the server access defaults $config->set( config_sync_server => $self->{txt_remote}->GetValue ); $config->set( identity_email => $self->{login_email}->GetValue ); $config->set( config_sync_password => $self->{login_password}->GetValue ); $self->Destroy; } ###################################################################### # Server Checks sub server_check { TRACE("Launching server check") if DEBUG; my $self = shift; $self->{txt_remote}->SetBackgroundColour($self->base_colour); $self->{txt_remote}->Refresh; $self->{server_manager}->version; return 1; } sub server_version { TRACE("Got server_version callback") if DEBUG; my $self = shift; $self->{txt_remote}->SetBackgroundColour($self->good_colour); $self->{txt_remote}->Refresh; $self->refresh; return 1; } sub server_error { TRACE("Got server_error callback") if DEBUG; my $self = shift; $self->{txt_remote}->SetBackgroundColour($self->bad_colour); $self->{txt_remote}->Refresh; return 1; } ## Added by Peter Lavender as it was detected ## in the missing methods test. ## Given the above two methods don't appear to ## do too much I think it's safe to add in the missing ## method. sub server_status { TRACE("Got server_status callback") if DEBUG; my $self = shift; $self->{txt_remote}->SetBackgroundColour($self->good_colour); $self->{txt_remote}->Refresh; return 1; } ################################################################################ # GUI Methods sub refresh { my $self = shift; my $manager = $self->{server_manager}; # Refresh the server status elements $self->refresh_server; # Are we logged in? my $in = $manager->user ? 1 : 0; my $out = $manager->user ? 0 : 1; $self->{btn_login}->SetLabel( $in ? 'Logout' : 'Login' ); $self->{btn_local}->Enable($in); $self->{btn_remote}->Enable($in); $self->{btn_delete}->Enable($in); $self->{login_email}->Enable($out); $self->{login_password}->Enable($out); $self->{txt_email}->Enable($out); $self->{txt_email_confirm}->Enable($out); $self->{txt_password}->Enable($out); $self->{txt_password_confirm}->Enable($out); $self->{btn_register}->Enable($out); return 1; } sub refresh_server { my $self = shift; my $manager = $self->{server_manager}; if ( $manager->user ) { $self->{lbl_status}->SetLabel("Logged In"); } elsif ( $manager->server ) { $self->{lbl_status}->SetLabel("Logged Out"); } else { $self->{lbl_status}->SetLabel("Server Unknown"); } return 1; } sub base_colour { Wx::SystemSettings::GetColour(Wx::SYS_COLOUR_WINDOW); } sub good_colour { my $self = shift; my $base = $self->base_colour; return Wx::Colour->new( int( $base->Red * 0.5 ), $base->Green, int( $base->Blue * 0.5 ), ); } sub bad_colour { my $self = shift; my $base = $self->base_colour; return Wx::Colour->new( $base->Red, int( $base->Green * 0.5 ), int( $base->Blue * 0.5 ), ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/QuickMenuAccess.pm���������������������������������������������������0000644�0001750�0001750�00000024640�12237327555�020141� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::QuickMenuAccess; use 5.008; use strict; use warnings; use Padre::Util (); use Padre::DB (); use Padre::Wx (); use Padre::Wx::Icon (); use Padre::Wx::HtmlWindow (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::Main (); use Padre::Logger; # package exports and version our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Idle Padre::Wx::Role::Main Wx::Dialog }; # accessors use Class::XSAccessor { accessors => { _sizer => '_sizer', # window sizer _search_text => '_search_text', # search text control _list => '_list', # matching items list _status_text => '_status_text', # status label _matched_results => '_matched_results', # matched results } }; # -- constructor sub new { my $class = shift; my $main = shift; # Create object my $self = $class->SUPER::new( $main, -1, Wx::gettext('Quick Menu Access'), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_FRAME_STYLE | Wx::TAB_TRAVERSAL, ); # Dialog's icon as is the same as Padre $self->SetIcon(Padre::Wx::Icon::PADRE); # Create dialog $self->_create; return $self; } # -- event handler # # handler called when the ok button has been clicked. # sub _on_ok_button_clicked { my $self = shift; my $main = $self->main; # Open the selected menu item if the user pressed OK my $selection = $self->_list->GetSelection; return if $selection == Wx::NOT_FOUND; my $action = $self->_list->GetClientData($selection); $self->Hide; my %actions = %{ Padre::ide->actions }; my $menu_action = $actions{ $action->{name} }; if ($menu_action) { my $event = $menu_action->menu_event; if ( $event && ref($event) eq 'CODE' ) { # Fetch the recently used actions from the database require Padre::DB::RecentlyUsed; my $recently_used = Padre::DB::RecentlyUsed->select( 'where type = ?', 'ACTION' ) || []; my $found = 0; foreach my $e (@$recently_used) { if ( $action->{name} eq $e->name ) { $found = 1; } } eval { &$event($main); }; if ($@) { $main->error( sprintf( Wx::gettext('Error while trying to perform Padre action: %s'), $@ ) ); TRACE("Error while trying to perform Padre action: $@") if DEBUG; } else { # And insert a recently used tuple if it is not found # and the action is successful. if ( not $found ) { Padre::DB::RecentlyUsed->create( name => $action->{name}, value => $action->{name}, type => 'ACTION', last_used => time(), ); } else { Padre::DB->do( "update recently_used set last_used = ? where name = ? and type = ?", {}, time(), $action->{name}, 'ACTION', ); } } } } } # -- private methods # # create the dialog itself. # sub _create { my $self = shift; # create sizer that will host all controls my $sizer = Wx::BoxSizer->new(Wx::VERTICAL); $self->_sizer($sizer); # create the controls $self->_create_controls; $self->_create_buttons; # wrap everything in a vbox to add some padding $self->SetMinSize( [ 360, 340 ] ); $self->SetSizer($sizer); # center/fit the dialog $self->Fit; $self->CentreOnParent; } # # create the buttons pane. # sub _create_buttons { my $self = shift; my $sizer = $self->_sizer; $self->{ok_button} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext('&OK'), ); $self->{ok_button}->SetDefault; $self->{cancel_button} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext('&Cancel'), ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->AddStretchSpacer; $buttons->Add( $self->{ok_button}, 0, Wx::ALL | Wx::EXPAND, 5 ); $buttons->Add( $self->{cancel_button}, 0, Wx::ALL | Wx::EXPAND, 5 ); $sizer->Add( $buttons, 0, Wx::ALL | Wx::EXPAND | Wx::ALIGN_CENTER, 5 ); Wx::Event::EVT_BUTTON( $self, Wx::ID_OK, \&_on_ok_button_clicked ); } # # create controls in the dialog # sub _create_controls { my $self = shift; # search textbox my $search_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Type a menu item name to access:') ); $self->_search_text( Wx::TextCtrl->new( $self, -1, '' ) ); # matches result list my $matches_label = Wx::StaticText->new( $self, -1, Wx::gettext('&Matching Menu Items:') ); $self->_list( Wx::ListBox->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], Wx::LB_SINGLE ) ); # Shows how many items are selected and information about what is selected $self->_status_text( Padre::Wx::HtmlWindow->new( $self, -1, Wx::DefaultPosition, [ -1, 70 ], Wx::BORDER_STATIC ) ); $self->_sizer->AddSpacer(10); $self->_sizer->Add( $search_label, 0, Wx::ALL | Wx::EXPAND, 2 ); $self->_sizer->Add( $self->_search_text, 0, Wx::ALL | Wx::EXPAND, 2 ); $self->_sizer->Add( $matches_label, 0, Wx::ALL | Wx::EXPAND, 2 ); $self->_sizer->Add( $self->_list, 1, Wx::ALL | Wx::EXPAND, 2 ); $self->_sizer->Add( $self->_status_text, 0, Wx::ALL | Wx::EXPAND, 2 ); $self->_setup_events; return; } # # Adds various events # sub _setup_events { my $self = shift; Wx::Event::EVT_CHAR( $self->_search_text, sub { my $this = shift; my $event = shift; my $code = $event->GetKeyCode; $self->_list->SetFocus if ( $code == Wx::K_DOWN ) or ( $code == Wx::K_UP ) or ( $code == Wx::K_NUMPAD_PAGEDOWN ) or ( $code == Wx::K_PAGEDOWN ); $event->Skip(1); } ); Wx::Event::EVT_TEXT( $self, $self->_search_text, sub { if ( not $self->_matched_results ) { $self->_search; } $self->_update_list_box; return; } ); Wx::Event::EVT_LISTBOX( $self, $self->_list, sub { my $selection = $self->_list->GetSelection; if ( $selection != Wx::NOT_FOUND ) { my $action = $self->_list->GetClientData($selection); $self->_status_text->SetPage( $self->_label( $action->{value}, $action->{name} ) ); } } ); Wx::Event::EVT_LISTBOX_DCLICK( $self, $self->_list, sub { $self->_on_ok_button_clicked; $self->EndModal(0); } ); # Delay the slower stuff till we are idle $self->idle_method('_update'); } # Update match list sub _update { my $self = shift; # Update lists $self->_update_list_box; $self->_show_recently_opened_actions; # Focus back to the search text box $self->_search_text->SetFocus; } # # Shows the recently opened menu actions # sub _show_recently_opened_actions { my $self = shift; # Fetch them from Padre's RecentlyUsed database table require Padre::DB::RecentlyUsed; my $recently_used = Padre::DB::RecentlyUsed->select( "where type = ? order by last_used desc", 'ACTION' ) || []; my @recent_actions = (); my %actions = %{ Padre::ide->actions }; foreach my $e (@$recently_used) { my $action_name = $e->name; my $action = $actions{$action_name}; if ($action) { push @recent_actions, { name => $action_name, value => $action->label_text, }; } else { TRACE("action '$action_name' is not defined anymore!") if DEBUG; } } $self->_matched_results( \@recent_actions ); # Show results in matching items list $self->_update_list_box; # No need to store them anymore $self->_matched_results(undef); } # # Search for files and cache result # sub _search { my $self = shift; $self->_status_text->SetPage( Wx::gettext('Reading items. Please wait...') ); my @menu_actions = (); my %actions = %{ Padre::ide->actions }; foreach my $action_name ( keys %actions ) { my $action = $actions{$action_name}; push @menu_actions, { name => $action_name, value => $action->label_text, }; } @menu_actions = sort { $a->{value} cmp $b->{value} } @menu_actions; $self->_matched_results( \@menu_actions ); return; } # # Update matching items list box from matched files list # sub _update_list_box { my $self = shift; return if not $self->_matched_results; my $search_expr = $self->_search_text->GetValue; #quote the search string to make it safer $search_expr = quotemeta $search_expr; #Populate the list box now $self->_list->Clear; my $pos = 0; #TODO: think how to make actions and menus relate to each other my %menu_name_by_prefix = ( file => Wx::gettext('File'), edit => Wx::gettext('Edit'), search => Wx::gettext('Search'), view => Wx::gettext('View'), perl => Wx::gettext('Perl'), refactor => Wx::gettext('Refactor'), run => Wx::gettext('Run'), debug => Wx::gettext('Debug'), plugins => Wx::gettext('Plugins'), window => Wx::gettext('Window'), help => Wx::gettext('Help'), ); my $first_label = undef; foreach my $action ( @{ $self->_matched_results } ) { my $label = $action->{value}; if ( $label =~ /$search_expr/i ) { my $action_name = $action->{name}; if ( not $first_label ) { $first_label = $self->_label( $label, $action_name ); } my $label_suffix = ''; my $prefix = $action_name; $prefix =~ s/^(\w+)\.\w+/$1/s; my $menu_name = $menu_name_by_prefix{$prefix}; $label_suffix = " ($menu_name)" if $menu_name; $self->_list->Insert( $label . $label_suffix, $pos, $action ); $pos++; } } if ( $pos > 0 ) { $self->_list->Select(0); $self->_status_text->SetPage($first_label); $self->_list->Enable(1); $self->_status_text->Enable(1); $self->{ok_button}->Enable(1); } else { $self->_status_text->SetPage(''); $self->_list->Enable(0); $self->_status_text->Enable(0); $self->{ok_button}->Enable(0); } return; } # # Returns a formatted html string of the action label, name and comment # sub _label { my ( $self, $action_label, $action_name ) = @_; my %actions = %{ Padre::ide->actions }; my $menu_action = $actions{$action_name}; my $comment = ( $menu_action and defined $menu_action->comment ) ? $menu_action->comment : ''; return '<b>' . $action_label . '</b> <i>' . $action_name . '</i><br>' . $comment; } 1; __END__ =head1 NAME Padre::Wx::Dialog::QuickMenuAccess - Quick Menu Access dialog =head1 DESCRIPTION =head2 Quick Menu Access (Shortcut: C<Ctrl+3>) This opens a dialog where you can search for menu labels. When you hit the OK button, the menu item will be selected. =head1 AUTHOR Ahmad M. Zawawi C<< <ahmad.zawawi at gmail.com> >> =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Diff.pm��������������������������������������������������������������0000644�0001750�0001750�00000012001�12237327555�015752� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Diff; use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Wx (); our $VERSION = '1.00'; our @ISA = ( 'Padre::Wx::Role::Main', 'Wx::PopupWindow', ); sub new { my $class = shift; my $self = $class->SUPER::new(@_); my $panel = Wx::Panel->new($self); $self->{prev_diff_button} = Wx::BitmapButton->new( $panel, -1, Padre::Wx::Icon::find("actions/go-up"), ); $self->{prev_diff_button}->SetToolTip( Wx::gettext('Previous difference') ); $self->{next_diff_button} = Wx::BitmapButton->new( $panel, -1, Padre::Wx::Icon::find("actions/go-down"), ); $self->{next_diff_button}->SetToolTip( Wx::gettext('Next difference') ); $self->{revert_button} = Wx::BitmapButton->new( $panel, -1, Padre::Wx::Icon::find("actions/edit-undo"), ); $self->{revert_button}->SetToolTip( Wx::gettext('Revert this change') ); $self->{close_button} = Wx::BitmapButton->new( $panel, -1, Padre::Wx::Icon::find("actions/window-close"), ); $self->{close_button}->SetToolTip( Wx::gettext('Close this window') ); $self->{status_label} = Wx::TextCtrl->new( $panel, -1, '', Wx::DefaultPosition, [ 130, -1 ], Wx::TE_READONLY, ); $self->{text_ctrl} = Wx::TextCtrl->new( $panel, -1, '', Wx::DefaultPosition, # (pbp line = 78 chrs) *2/3=52 # (9/16) 52 chrs plus a half; (52*9)+4 = 472 # 4 lines plus a half: (4*16)+8= 72 [ 472, 72 ], Wx::TE_READONLY | Wx::TE_MULTILINE | Wx::TE_DONTWRAP, ); my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( $self->{prev_diff_button}, 0, 0, 0 ); $button_sizer->Add( $self->{next_diff_button}, 0, 0, 0 ); $button_sizer->Add( $self->{revert_button}, 0, 0, 0 ); $button_sizer->AddSpacer(10); $button_sizer->Add( $self->{status_label}, 0, Wx::ALL, 0 ); $button_sizer->AddStretchSpacer; $button_sizer->Add( $self->{close_button}, 0, 0, 0 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->AddSpacer(1); $vsizer->Add( $button_sizer, 0, Wx::ALL | Wx::EXPAND, 1 ); $vsizer->Add( $self->{text_ctrl}, 0, Wx::ALL | Wx::EXPAND, 1 ); # Previous difference button Wx::Event::EVT_BUTTON( $self, $self->{prev_diff_button}, \&on_prev_diff_button, ); # Next difference button Wx::Event::EVT_BUTTON( $self, $self->{next_diff_button}, \&on_next_diff_button, ); # Revert button Wx::Event::EVT_BUTTON( $self, $self->{revert_button}, \&on_revert_button, ); # Close button Wx::Event::EVT_BUTTON( $self, $self->{close_button}, sub { $_[0]->Hide; } ); $panel->SetSizer($vsizer); $panel->Fit; $self->Fit; return $self; } sub on_prev_diff_button { $_[0]->main->diff->select_previous_difference; } sub on_next_diff_button { $_[0]->main->diff->select_next_difference; } sub on_revert_button { my $self = shift; my $editor = $self->{editor}; my $line = $self->{line}; my $diff = $self->{diff}; my $old_text = $diff->{old_text}; my $new_text = $diff->{new_text}; my $start = $editor->PositionFromLine($line); my $end = $editor->GetLineEndPosition( $line + $diff->{lines_added} ) + 1; $editor->SetTargetStart($start); $editor->SetTargetEnd( $start + length($new_text) ); $editor->ReplaceTarget( $old_text ? $old_text : '' ); $self->Hide; } sub show { my $self = shift; my $editor = shift; my $line = shift; my $diff = shift; my $pt = shift; my $type = $diff->{type} or return; # Store editor reference so we can access it in revert $self->{editor} = $editor; $self->{line} = $line; $self->{diff} = $diff; # Inherit font from current editor my $font = $editor->GetFont; $self->{status_label}->SetFont($font); $self->{text_ctrl}->SetFont($font); # Hack to workaround Wx::PopupWindow relative positioning bug if (Padre::Constant::WIN32) { $self->Move( $self->main->ScreenToClient( $editor->ClientToScreen($pt) ) ); } else { $self->Move( $editor->ClientToScreen($pt) ); } my $color; if ( $type eq 'A' ) { $color = Padre::Wx::Editor::DARK_GREEN(); } elsif ( $type eq 'D' ) { $color = Padre::Wx::Editor::LIGHT_RED(); } elsif ( $type eq 'C' ) { $color = Padre::Wx::Editor::LIGHT_BLUE(); } else { $color = Wx::Colour->new("black"); } $self->{text_ctrl}->SetBackgroundColour($color); $self->{status_label}->SetValue( $diff->{message} ); if ( $diff->{old_text} ) { $self->{text_ctrl}->SetValue( $diff->{old_text} ); $self->{text_ctrl}->Show(1); } else { $self->{text_ctrl}->Show(0); } # Hide when the editor loses focus my $popup = $self; Wx::Event::EVT_KILL_FOCUS( $editor, sub { $popup->Hide; } ); Wx::Event::EVT_KEY_UP( $editor, sub { my ( $self, $event ) = @_; if ( $event->GetKeyCode == Wx::WXK_ESCAPE ) { # Escape hides the diff box $popup->Hide; } $event->Skip; } ); my $panel = $self->{text_ctrl}->GetParent; $panel->Layout; $panel->Fit; $self->Fit; $self->Show(1); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/ModuleStarter.pm�����������������������������������������������������0000644�0001750�0001750�00000013762�12237327555�017713� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::ModuleStarter; use 5.010; use strict; use warnings; use Padre::Wx::Role::Config (); use Padre::Wx::FBP::ModuleStarter (); use Try::Tiny; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Config Padre::Wx::FBP::ModuleStarter }; ####### # new ####### sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Focus on the module name $self->module->SetFocus; return $self; } ####### # Method run ####### sub run { my $class = shift; my $main = shift; my $self = $class->new($main); my $config = $main->config; # Load preferences $self->config_load( $config, qw{ identity_name identity_email module_starter_directory module_starter_builder module_starter_license } ); # Show the dialog $self->Fit; $self->CentreOnParent; my $result = $self->ShowModal; if ( $result == Wx::ID_CANCEL ) { # As we leave the Find dialog, return the user to the current editor # window so they don't need to click it. $self->main->editor_focus; $self->Destroy; return; } # if ( $self->ShowModal == Wx::wxID_CANCEL ) { # $self->main->editor_focus; # $self->Destroy; # return; # } # Save preferences $self->config_save( $config, qw{ module_starter_directory module_starter_builder module_starter_license } ); # Generate the distribution ### TO BE COMPLETED # Clean up # $self->Destroy; return 1; } ####### # event handeler for ok_clicked ####### sub ok_clicked { my ( $self, $event ) = @_; my $main = $self->main; my $current = $main->current; my $config = $main->config; my $output = $main->output; my $data; $data->{module_name} = $self->module->GetValue(); $data->{author_name} = $self->config_get( $current->config->meta('identity_name') ); $data->{email} = $self->config_get( $current->config->meta('identity_email') ); $data->{builder_choice} = $self->config_get( $current->config->meta('module_starter_builder') ); $data->{license_choice} = $self->config_get( $current->config->meta('module_starter_license') ); $data->{directory} = $self->config_get( $current->config->meta('module_starter_directory') ); #TODO improve input validation !, is this realy needed my @fields = qw( module_name author_name email builder_choice license_choice ); foreach my $f (@fields) { if ( not $data->{$f} ) { $main->message( sprintf( Wx::gettext('Field %s was missing. Module not created.'), $f ), Wx::gettext('missing field'), ); return; } } # my $config = Padre->ide->config; $config->set( 'identity_name', $data->{author_name} ); $config->set( 'identity_email', $data->{email} ); $config->set( 'module_starter_builder', $data->{builder_choice} ); $config->set( 'module_starter_license', $data->{license_choice} ); $config->set( 'module_starter_directory', $data->{directory} ); my $parent_dir = $data->{directory} || './'; my $ms; try { require Padre::Util; require Module::Starter; my @cmd; #Deal with multiple cvs module names my @modules = split( /,\s*/, $data->{module_name} ); for (@modules) { push @cmd, ( '--module', $_, ); } push @cmd, ( '--author', '"' . $data->{author_name} . '"', '--email', $data->{email}, '--builder', $data->{builder_choice}, '--license', $data->{license_choice}, '--verbose', ); $ms = Padre::Util::run_in_directory_two( cmd => "module-starter @cmd", dir => $data->{directory}, option => 0 ); } catch { $main->error( sprintf( Wx::gettext("An error has occured while generating '%s':\n%s"), $data->{module_name}, $_ ), ); return; } finally { if ( $ms->{error} !~ /^Added to MANIFEST/ ) { $main->message( sprintf( Wx::gettext("module-starter error: %s"), $ms->{error} ), ); } else { $main->show_output(1); $output->clear; $output->AppendText( $ms->{output} ); } }; #Create dir structure my $module_name = $data->{module_name}; ($module_name) = split( ',', $module_name ); # for Foo::Bar,Foo::Bat # prepare Foo-Bar/lib/Foo/Bar.pm my @parts = split( '::', $module_name ); my $dir_name = join( '-', @parts ); $parts[-1] .= '.pm'; my $file = File::Spec->catfile( $parent_dir, $dir_name, 'lib', @parts ); Padre::DB::History->create( type => 'files', name => $file, ); $main->setup_editor($file); $main->refresh; # Clean up $self->Destroy; return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. __END__ #ToDo Dialog needs to support the following table licence list from Module::Build::API 'apache', ms # does not work w/ Module::Build 'artistic', # does not work w/ Module::Build 'artistic_2', # does not work w/ Module::Build 'bsd', ms 'gpl', ms 'lgpl', ms 'mit', ms 'mozilla', # does not work w/ Module::Build 'open_source', # does not work w/ Module::Build 'perl', ms 'restrictive', # does not work w/ Module::Build 'unrestricted', # does not work w/ Module::Build ms from module::starter::simple the previous comment # does not work w/ Module::Build dose not make sense *********** # require Padre::Util; # require Module::Starter; # my @cmd = ( # '--module', $data->{module_name}, # '--author', $data->{author_name}, # '--email', $data->{email}, # '--builder', $data->{builder_choice}, # '--license', $data->{license_choice}, # '--verbose', # ); # my $ms_ref = Padre::Util::run_in_directory_two(cmd => "module-starter @cmd", dir => $data->{directory}, option => 0); # p $ms_ref; ******* # use Module::Starter qw(Module::Starter::Simple); # my %ms_args = ( # modules => [ $data->{module_name} ], # author => $data->{author_name}, # email => $data->{email}, # builder => $data->{builder_choice}, # license => $data->{license_choice}, # basedir => $data->{directory}, # verbose => 1, # ignores_type => [ 'generic', 'manifest'], # ); # Module::Starter->create_distro(%ms_args); ��������������Padre-1.00/lib/Padre/Wx/Dialog/Shortcut.pm����������������������������������������������������������0000644�0001750�0001750�00000010234�12237327555�016723� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Shortcut; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Locale (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; =pod =head1 NAME Padre::Wx::Dialog::Shortcut - A Dialog =cut sub new { my $class = shift; my $main = shift; # Create the Wx dialog my $self = $class->SUPER::new( $main, -1, Wx::gettext('A Dialog'), Wx::DefaultPosition, Wx::DefaultSize, Wx::CAPTION | Wx::CLOSE_BOX | Wx::SYSTEM_MENU ); $self->{action_label} = Wx::StaticText->new( $self, -1, Wx::gettext("Action: %s"), Wx::DefaultPosition, Wx::DefaultSize, ); my $line_1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, ); $self->{ctrl_checkbox} = Wx::CheckBox->new( $self, -1, Wx::gettext("CTRL"), Wx::DefaultPosition, Wx::DefaultSize, ); my $label_3 = Wx::StaticText->new( $self, -1, Wx::gettext("+"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{alt_checkbox} = Wx::CheckBox->new( $self, -1, Wx::gettext("ALT"), Wx::DefaultPosition, Wx::DefaultSize, ); my $label_2 = Wx::StaticText->new( $self, -1, Wx::gettext("+"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{shift_checkbox} = Wx::CheckBox->new( $self, -1, Wx::gettext("SHIFT"), Wx::DefaultPosition, Wx::DefaultSize, ); my $label_1 = Wx::StaticText->new( $self, -1, Wx::gettext("+"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{key_box} = Wx::ComboBox->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [], Wx::CB_DROPDOWN, ); $self->{ok} = Wx::Button->new( $self, Wx::ID_OK, "", ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, "", ); Wx::Event::EVT_CHECKBOX( $self, $self->{shift_checkbox}->GetId, \&foo ); $self->SetTitle( Wx::gettext("Shortcut") ); $self->{key_box}->SetSelection(-1); my $sizer_1 = Wx::BoxSizer->new(Wx::HORIZONTAL); my $sizer_2 = Wx::BoxSizer->new(Wx::VERTICAL); $self->{button_sizer} = Wx::BoxSizer->new(Wx::HORIZONTAL); my $sizer_8 = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizer_2->Add( $self->{action_label}, 0, Wx::EXPAND, 0 ); $sizer_2->Add( $line_1, 0, Wx::TOP | Wx::BOTTOM | Wx::EXPAND, 5 ); $sizer_8->Add( $self->{ctrl_checkbox}, 0, Wx::ALIGN_CENTER_VERTICAL, 0 ); $sizer_8->Add( $label_3, 0, Wx::LEFT | Wx::RIGHT | Wx::ALIGN_CENTER_VERTICAL, 8 ); $sizer_8->Add( $self->{alt_checkbox}, 0, Wx::ALIGN_CENTER_VERTICAL, 0 ); $sizer_8->Add( $label_2, 0, Wx::LEFT | Wx::RIGHT | Wx::ALIGN_CENTER_VERTICAL, 8 ); $sizer_8->Add( $self->{shift_checkbox}, 0, Wx::ALIGN_CENTER_VERTICAL, 0 ); $sizer_8->Add( $label_1, 0, Wx::LEFT | Wx::RIGHT | Wx::ALIGN_CENTER_VERTICAL, 8 ); $sizer_8->Add( $self->{key_box}, 0, Wx::ALIGN_CENTER_VERTICAL, 0 ); $sizer_2->Add( $sizer_8, 1, Wx::EXPAND, 0 ); my $line_2 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, ); $sizer_2->Add( $line_2, 0, Wx::TOP | Wx::BOTTOM | Wx::EXPAND, 5 ); $self->{button_sizer}->Add( $self->{ok}, 1, 0, 0 ); $self->{button_sizer}->Add( $self->{cancel}, 1, Wx::LEFT, 5 ); $sizer_2->Add( $self->{button_sizer}, 1, Wx::ALIGN_RIGHT, 5 ); $sizer_1->Add( $sizer_2, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizer($sizer_1); $sizer_1->Fit($self); # my ($self, $event) = @_; # warn "Event handler (foo) not implemented"; # $event->Skip; return $self; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/WhereFrom.pm���������������������������������������������������������0000644�0001750�0001750�00000002571�12237327555�017013� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::WhereFrom; use 5.008; use strict; use warnings; use Padre::Role::Task (); use Padre::Wx::FBP::WhereFrom (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::FBP::WhereFrom }; use constant SERVER => 'http://perlide.org/popularity/v1/wherefrom.html'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Fill options my $choices = [ 'Google', Wx::gettext('Other search engine'), 'FOSDEM', 'CeBit', Wx::gettext('Other event'), Wx::gettext('Friend'), Wx::gettext('Reinstalling/installing on other computer'), Wx::gettext('Padre Developer'), Wx::gettext('Other (Please fill in here)'), ]; $self->{from}->Append($choices); # Prepare to be shown $self->CenterOnParent; $self->Fit; return $self; } sub run { my $self = shift; my $config = $self->config; # Show the dialog if ( $self->ShowModal == Wx::ID_OK ) { # Fire and forget the HTTP request to the server $self->task_request( task => 'Padre::Task::LWP', url => SERVER, query => { from => $self->{from}->GetValue, }, ); } # Don't ask again $config->set( nth_feedback => 1 ); $config->write; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Bookmarks.pm���������������������������������������������������������0000644�0001750�0001750�00000012160�12237327555�017040� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Bookmarks; use 5.008; use strict; use warnings; use Params::Util (); use Padre::DB (); use Padre::Wx::FBP::Bookmarks (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::Bookmarks'; ###################################################################### # Class Methods sub run_set { my $class = shift; my $main = shift; my $current = $main->current; my $editor = $current->editor or return; my $path = $current->filename; unless ( defined $path ) { $main->error( Wx::gettext("Cannot set bookmark in unsaved document") ); return; } # Determine the default name for the bookmark my $line = $editor->GetCurrentLine; my $file = File::Basename::basename( $path || '' ); my ($text) = $editor->GetLine($line); $text = $class->clean( sprintf( Wx::gettext("%s line %s: %s"), $file, $line, $text, ) ); # Create the bookmark dialog my $self = $class->new($main); # Prepare for display $self->set->SetValue($text); $self->set->SetFocus; $self->set->Show; $self->set_label->Show; $self->set_line->Show; $self->Fit; # Show the dialog $self->refresh; if ( $self->ShowModal == Wx::ID_CANCEL ) { return; } # Fetch and clean the name my $name = $class->clean( $self->set->GetValue ); unless ( defined Params::Util::_STRING($name) ) { $self->main->error( Wx::gettext('Did not provide a bookmark name') ); return; } # Save it to the database SCOPE: { my $transaction = $self->main->lock('DB'); Padre::DB::Bookmark->delete_where( 'name = ?', $name ); Padre::DB::Bookmark->create( name => $name, file => $path, line => $line, ); } return; } sub run_goto { my $class = shift; my $main = shift; my $self = $class->new($main); # Show the dialog $self->refresh; if ( $self->ShowModal == Wx::ID_CANCEL ) { return; } # Was a bookmark selected my $id = $self->list->GetSelection; if ( $id == Wx::NOT_FOUND ) { $self->main->error( Wx::gettext('Did not select a bookmark') ); return; } # Can we find it in the database my $name = $self->list->GetString($id); my @bookmark = Padre::DB::Bookmark->select( 'where name = ?', $name, ); unless (@bookmark) { # Deleted since the dialog was shown $main->error( sprintf( Wx::gettext("The bookmark '%s' no longer exists"), $name, ) ); return; } # Is the file already open my $file = $bookmark[0]->file; my $line = $bookmark[0]->line; my $pageid = $main->editor_of_file($file); # Load it if it isn't loaded unless ( defined $pageid ) { if ( -e $file ) { $main->setup_editor($file); $pageid = $main->editor_of_file($file); } } # Go to the relevant editor and row if ( defined $pageid ) { $main->on_nth_pane($pageid); my $page = $main->notebook->GetPage($pageid); $page->goto_line_centerize($line); $page->SetFocus; } return; } ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Load the existing bookmarks $self->load; # Prepare to be shown $self->CenterOnParent; return $self; } ###################################################################### # Event Handlers sub delete_clicked { my $self = shift; my $list = $self->list; # Find the selected bookmark my $id = $list->GetSelection; my $name = $list->GetString($id); my $bookmark = Padre::DB::Bookmark->fetch_name($name); # Delete the bookmark $bookmark->delete if $bookmark; $list->Delete($id); # Update button state $self->refresh; } sub delete_all_clicked { my $self = shift; # Remove all bookmarks and reload Padre::DB::Bookmark->truncate; $self->list->Clear; # Update button state $self->refresh; } ###################################################################### # Support Methods sub load { my $self = shift; my $names = Padre::DB::Bookmark->select_names; if (@$names) { $self->list->Clear; foreach my $name (@$names) { $self->list->Append( $name, $name ); } $self->list->SetSelection(0); } else { $self->list->Clear; $self->delete->Disable; $self->delete_all->Disable; } # Reflow the dialog $self->Fit; return; } sub refresh { my $self = shift; # When in goto mode, the OK button should only be enabled if # there is something selected to goto. unless ( $self->set->IsShown ) { if ( $self->list->GetSelection == Wx::NOT_FOUND ) { $self->ok->Disable; } else { $self->ok->Enable; } } # The Delete button should only be enabled if a bookmark is selected. if ( $self->list->GetSelection == Wx::NOT_FOUND ) { $self->delete->Disable; } else { $self->delete->Enable; } # The Delete All button should only be enabled if there is a list if ( $self->list->IsEmpty ) { $self->delete_all->Disable; } else { $self->delete_all->Enable; } return; } sub clean { my $class = shift; my $name = shift; $name =~ s/\s+/ /g; $name =~ s/^\s+//; $name =~ s/\s+$//; return $name; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Dialog/Snippet.pm�����������������������������������������������������������0000644�0001750�0001750�00000005123�12237327555�016533� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Dialog::Snippet; use 5.008; use strict; use warnings; use Params::Util (); use Padre::DB (); use Padre::Wx::FBP::Snippet (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::Snippet'; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); my $filter = $self->filter; my $select = $self->select; my $lock = $self->main->lock( 'DB', 'UPDATE' ); # Fill the filter $filter->Clear; $filter->Append(@$_) foreach $self->filters; $filter->SetSelection(0); # Populate the snippet list $self->refilter; # Reflow the layout and prepare to show $self->select->SetFocus; $self->GetSizer->SetSizeHints($self); return $self; } ###################################################################### # Event Handlers sub refresh { my $self = shift; my $value = $self->value; $self->preview->SetValue($value); } sub refilter { my $self = shift; my $lock = $self->main->lock( 'DB', 'UPDATE' ); my $select = $self->select; my $filter = $self->filter->GetClientData( $self->filter->GetSelection ); $select->Clear; foreach my $name ( $self->names($filter) ) { $select->Append(@$name); } $select->SetSelection(0); $self->refresh; } sub insert_snippet { my $self = shift; my $lock = $self->main->lock('UPDATE'); my $editor = $self->current->editor or return; $editor->insert_text( $self->value ); } ###################################################################### # Support Methods sub filters { my $self = shift; my $select = Padre::DB->selectall_arrayref('SELECT DISTINCT category FROM snippets ORDER BY category'); my @filters = ( [ Wx::gettext('All'), '' ], map { [ $_->[0] => $_->[0] ] } @$select ); return @filters; } sub names { my $self = shift; my $filter = shift; my $where = $filter ? 'WHERE category = ?' : ''; my @param = $filter ? ($filter) : (); my @names = ( map { [ $_->name => $_->id ] } Padre::DB::Snippets->select( "$where ORDER BY category, name", @param, ) ); return @names; } sub value { my $self = shift; my $select = $self->select; my $id = $select->GetClientData( $select->GetSelection ); unless ( Params::Util::_POSINT($id) ) { return ''; } # Load the snippet local $@; my $snippet = Padre::DB::Snippets->load($id); return $snippet ? $snippet->snippet : ''; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Icon.pm���������������������������������������������������������������������0000644�0001750�0001750�00000007030�12237327555�014601� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Icon; # It turns out that icon management needs to be more complex than just # a few utility functions in Padre::Wx, and that it needs an entire # library of its own. # This library attempts to integrate padre with the freedesktop.org # icon specifications using a highly limited and mostly # wrong implementation of the algorithms they describe. # http://standards.freedesktop.org/icon-naming-spec # http://standards.freedesktop.org/icon-theme-spec # Initially we only support the use of icons in directories bundled # with Padre. Later, we'll probably be forced by distro-packagers and # users to support integration with system icon themes. use 5.008; use strict; use warnings; use File::Spec (); use Params::Util (); use Padre::Util (); use Padre::Wx (); our $VERSION = '1.00'; # For now apply a single common configuration use constant SIZE => '16x16'; use constant EXT => '.png'; use constant THEMES => ( 'gnome218', 'padre' ); use constant ICONS => Padre::Util::sharedir('icons'); # Supports the use of theme-specific "hints", # when we want to substitute a technically incorrect # icon on a theme by theme basis. my %HINT = ( 'gnome218' => {}, ); # Lay down some defaults from our common # constants my %PREFS = ( size => SIZE, ext => EXT, icons => ICONS, ); our $DEFAULT_ICON_NAME = 'status/padre-fallback-icon'; our $DEFAULT_ICON; # Convenience access to the official Padre icon sub PADRE { return icon( 'logo', { size => '64x64' } ); } # On windows, you actually need to provide it with a native icon file that # contains multiple sizes so it can choose from it. sub PADRE_ICON_FILE { my $ico = File::Spec->catfile( ICONS, 'padre', 'all', 'padre.ico' ); return Wx::IconBundle->new($ico); } ##################################################################### # Icon Resolver # Find an icon bitmap and convert to a real Wx::Icon in a single call sub icon { my $image = find(@_); my $icon = Wx::Icon->new; $icon->CopyFromBitmap($image); return $icon; } # For now, assume the people using this are competent # and don't bother to check params. # TO DO: Clearly this assumption can't last... sub find { my $name = shift; my $prefs = shift; # If you _really_ are competant ;), # prefer size, icons, ext # over the defaults my %pref = Params::Util::_HASH($prefs) ? ( %PREFS, %$prefs ) : %PREFS; # Search through the theme list foreach my $theme (THEMES) { my $hinted = ( $HINT{$theme} and $HINT{$theme}->{$name} ) ? $HINT{$theme}->{$name} : $name; my $file = File::Spec->catfile( $pref{icons}, $theme, $pref{size}, ( split /\//, $hinted ) ) . $pref{ext}; next unless -f $file; return Wx::Bitmap->new( $file, Wx::BITMAP_TYPE_PNG ); } if ( defined $DEFAULT_ICON ) { # fallback with a pretty ? return $DEFAULT_ICON; } elsif ( $name ne $DEFAULT_ICON_NAME ) { # setup and return the default icon $DEFAULT_ICON = find($DEFAULT_ICON_NAME); return $DEFAULT_ICON if defined $DEFAULT_ICON; } # THIS IS BAD! require Carp; # NOTE: This crash is mandatory. If you pass undef or similarly # wrong things to AddTool, you get a segfault and nobody likes # segfaults, right? Carp::confess("Could not find icon '$name'!"); } # Some things like Wx::AboutDialogInfo want a _real_ Wx::Icon sub cast_to_icon { my $icon = Wx::Icon->new; $icon->CopyFromBitmap(shift); return $icon; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Output.pm�������������������������������������������������������������������0000644�0001750�0001750�00000025124�12237327555�015215� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Output; # Class for the output window at the bottom of Padre. # This currently has very little customisation code in it, # but that will change in future. use 5.008; use strict; use warnings; use utf8; use Encode (); use File::Spec (); use Params::Util (); use Padre::Feature (); use Padre::Wx::Role::Main (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Context (); use Padre::Wx 'RichText'; use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Padre::Wx::Role::View Padre::Wx::Role::Context Wx::RichTextCtrl }; ###################################################################### # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->bottom; # Create the underlying object my $self = $class->SUPER::new( $panel, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_READONLY | Wx::TE_MULTILINE | Wx::TE_DONTWRAP | Wx::NO_FULL_REPAINT_ON_RESIZE, ); # Do custom start-up stuff here $self->clear; $self->set_font; # see #351: output should be blank by default at start-up. #$self->AppendText( Wx::gettext('No output') ); Wx::Event::EVT_TEXT_URL( $self, $self, sub { shift->on_text_url(@_); }, ); $self->context_bind; if (Padre::Feature::STYLE_GUI) { $self->main->theme->apply($self); } return $self; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'bottom'; } sub view_label { Wx::gettext('Output'); } sub view_close { shift->main->show_output(0); } ###################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; $self->context_append_options( $menu => 'main_output_panel' ); return; } ###################################################################### # Event Handlers sub on_text_url { my $self = shift; my $event = shift; my $string = $event->GetString or return; require URI; my $uri = URI->new($string) or return; TRACE("Output URI clicked: $uri") if DEBUG; my $file = $uri->file or return; my $path = File::Spec->rel2abs($file) or return; my $line = $uri->fragment || 1; return unless -e $path; TRACE("Output Path: $path") if DEBUG; TRACE("Output Line: $line") if DEBUG; # Open the file and jump to the appropriate line $self->main->setup_editor($path); my $current = $self->current; if ( $current->filename eq $path ) { $current->editor->goto_line_centerize( $line - 1 ); } else { TRACE(" Current doc does not match our expectations") if DEBUG; } } ##################################################################### # Process Execution # If this is the first time a command has been run, # set up the ProcessStream bindings. sub setup_bindings { my $self = shift; return 1 if $Wx::Perl::ProcessStream::VERSION; require Wx::Perl::ProcessStream; if ( $Wx::Perl::ProcessStream::VERSION < .20 ) { $self->main->error( sprintf( Wx::gettext( 'Wx::Perl::ProcessStream is version %s' . ' which is known to cause problems. Get at least 0.20 by typing' . "\ncpan Wx::Perl::ProcessStream" ), $Wx::Perl::ProcessStream::VERSION ) ); return 1; } Wx::Perl::ProcessStream::EVT_WXP_PROCESS_STREAM_STDOUT( $self, sub { $_[1]->Skip(1); $_[0]->style_neutral; $_[0]->AppendText( $_[1]->GetLine . "\n" ); return; }, ); Wx::Perl::ProcessStream::EVT_WXP_PROCESS_STREAM_STDERR( $self, sub { $_[1]->Skip(1); $_[0]->style_bad; $_[0]->AppendText( $_[1]->GetLine . "\n" ); return; }, ); Wx::Perl::ProcessStream::EVT_WXP_PROCESS_STREAM_EXIT( $self, sub { $_[1]->Skip(1); $_[1]->GetProcess->Destroy; $_[0]->current->main->menu->run->enable; }, ); return 1; } ##################################################################### # General Methods # From Sean Healy on wxPerl mailing list. # Tweaked to avoid strings copying as much as possible. sub AppendText { my $self = shift; my $use_ansi = $self->main->config->main_output_ansi; if ( utf8::is_utf8( $_[0] ) ) { if ($use_ansi) { $self->_handle_ansi_escapes( $_[0] ); } else { $self->SUPER::AppendText( $_[0] ); } } else { my $text = Encode::decode( 'utf8', $_[0] ); if ($use_ansi) { $self->_handle_ansi_escapes($text); } else { $self->SUPER::AppendText($text); } } # Scroll down to the latest position # Maybe we should check for a setting # so user can set if they want scroll $self->ShowPosition( $self->GetLastPosition ); return (); } SCOPE: { # TO DO: This should be some sort of style file, # but the main editor style support is too wacky # to add this at the moment. my $fg_colors = [ Wx::Colour->new('#000000'), # black Wx::Colour->new('#FF0000'), # red Wx::Colour->new('#00FF00'), # green Wx::Colour->new('#FFFF00'), # yellow Wx::Colour->new('#0000FF'), # blue Wx::Colour->new('#FF00FF'), # magenta Wx::Colour->new('#00FFFF'), # cyan Wx::Colour->new('#FFFFFF'), # white undef, Wx::Colour->new('#000000'), # reset to default (black) ]; my $bg_colors = [ Wx::Colour->new('#000000'), # black Wx::Colour->new('#FF0000'), # red Wx::Colour->new('#00FF00'), # green Wx::Colour->new('#FFFF00'), # yellow Wx::Colour->new('#0000FF'), # blue Wx::Colour->new('#FF00FF'), # magenta Wx::Colour->new('#00FFFF'), # cyan Wx::Colour->new('#FFFFFF'), # white undef, Wx::Colour->new('#FFFFFF'), # reset to default (white) ]; sub _handle_ansi_escapes { my $self = shift; my $newtext = shift; # Read the next TEXT CONTROL-SEQUENCE pair my $style = $self->GetDefaultStyle; my $ansi_found = 0; while ( $newtext =~ m{ \G (.*?) \033\[ ( (?: \d+ (?:;\d+)* )? ) m }xcg ) { $ansi_found = 1; my $ctrl = $2; # First print the text preceding the control sequence $self->_handle_links($1); # Split the sequence on ; -- this may be specific to the graphics 'm' sequences, but # we don't handle any others at the moment (see regexp above) my @cmds = split /;/, $ctrl; foreach my $cmd (@cmds) { if ( $cmd >= 0 and $cmd < 30 ) { # For all these, we need the font object: my $font = $style->GetFont; if ( $cmd == 0 ) { # reset $style->SetTextColour( $fg_colors->[9] ); # reset text color $style->SetBackgroundColour( $bg_colors->[9] ); # reset bg color # reset bold/italic/underlined state $font->SetWeight(Wx::FONTWEIGHT_NORMAL); $font->SetUnderlined(0); $font->SetStyle(Wx::FONTSTYLE_NORMAL); } elsif ( $cmd == 1 ) { # bold $font->SetWeight(Wx::FONTWEIGHT_BOLD); } elsif ( $cmd == 2 ) { # faint $font->SetWeight(Wx::FONTWEIGHT_LIGHT); } elsif ( $cmd == 3 ) { # italic $font->SetStyle(Wx::FONTSTYLE_ITALIC); } elsif ( $cmd == 4 || $cmd == 21 ) { # underline (21==double, but we can't do that) $font->SetUnderlined(1); } elsif ( $cmd == 22 ) { # reset bold and faint $font->SetWeight(Wx::FONTWEIGHT_NORMAL); } elsif ( $cmd == 24 ) { # reset underline $font->SetUnderlined(0); } $style->SetFont($font); } # the high range is supposed to be 'high intensity' as supported by aixterm elsif ( $cmd >= 30 && $cmd < 40 or $cmd >= 90 && $cmd < 100 ) { # foreground $cmd -= $cmd > 40 ? 90 : 30; my $color = $fg_colors->[$cmd]; if ( defined $color ) { $style->SetTextColour($color); $self->SetDefaultStyle($style); } } # the high range is supposed to be 'high intensity' as supported by aixterm elsif ( $cmd >= 40 && $cmd < 50 or $cmd >= 100 && $cmd < 110 ) { # background $cmd -= $cmd > 50 ? 100 : 40; my $color = $bg_colors->[$cmd]; if ( defined $color ) { $style->SetBackgroundColour($color); } } $self->SetDefaultStyle($style); } # end foreach command in the sequence } # end while more control sequences # the remaining text if ( defined( pos($newtext) ) ) { $self->_handle_links( substr( $newtext, pos($newtext) ) ); } unless ($ansi_found) { $self->_handle_links($newtext); } } # based on _handle_ansi_escapes sub _handle_links { my $self = shift; my $newtext = shift; my $link_found = 0; # matches Perl error messages that look like: <error> at <file> line 45. while ( $newtext =~ m{ \G (.*?) \s at \s (.*) \s line \s (\d+).$ }xcg ) { $link_found = 1; my ( $file, $line ) = ( $2, $3 ); # first print the text preceding the link # TO DO: You can't make SUPER calls to different methods $self->SUPER::AppendText($1); $self->SUPER::AppendText(' at '); # Turn the filename into a file: uri $self->BeginURL("file:$file#$line"); $self->BeginUnderline; $self->BeginTextColour( $bg_colors->[4] ); $self->AppendText("$file"); $self->EndTextColour; $self->EndUnderline; $self->EndURL; $self->AppendText(" line $line."); } # the remaining text if ( defined pos($newtext) ) { $self->SUPER::AppendText( substr( $newtext, pos($newtext) ) ); } unless ($link_found) { $self->SUPER::AppendText($newtext); } } } sub select { my $self = shift; my $parent = $self->GetParent; $parent->SetSelection( $parent->GetPageIndex($self) ); return; } sub SetBackgroundColour { my $self = shift; my $arg = shift; if ( defined Params::Util::_STRING($arg) ) { $arg = Wx::Colour->new($arg); } return $self->SUPER::SetBackgroundColour($arg); } sub clear { my $self = shift; $self->SetBackgroundColour('#FFFFFF'); $self->Remove( 0, $self->GetLastPosition ); $self->Refresh; return 1; } sub style_good { $_[0]->SetBackgroundColour('#CCFFCC'); $_[0]->Refresh; } sub style_bad { $_[0]->SetBackgroundColour('#FFCCCC'); $_[0]->Refresh; } sub style_neutral { $_[0]->SetBackgroundColour('#FFFFFF'); $_[0]->Refresh; } sub style_busy { $_[0]->SetBackgroundColour('#CCCCCC'); $_[0]->Refresh; } sub set_font { my $self = shift; my $font = Wx::Font->new( 9, Wx::TELETYPE, Wx::NORMAL, Wx::NORMAL ); my $name = $self->config->editor_font; if ( defined $name and length $name ) { $font->SetNativeFontInfoUserDesc($name); } my $style = $self->GetDefaultStyle; $style->SetFont($font); $self->SetDefaultStyle($style); return; } sub relocale { # do nothing } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Left.pm���������������������������������������������������������������������0000644�0001750�0001750�00000007236�12237327555�014613� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Left; # The left notebook for tool views use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::AuiNotebook }; sub new { my $class = shift; my $main = shift; my $aui = $main->aui; my $unlock = $main->config->main_lockinterface ? 0 : 1; # Create the basic object my $self = $class->SUPER::new( $main, -1, Wx::DefaultPosition, Wx::Size->new( 200, 500 ), # Used when floating Wx::AUI_NB_SCROLL_BUTTONS | Wx::AUI_NB_TOP | Wx::BORDER_NONE | Wx::AUI_NB_CLOSE_ON_ACTIVE_TAB ); # Add ourself to the window manager $aui->AddPane( $self, Padre::Wx->aui_pane_info( Name => 'left', CaptionVisible => $unlock, Floatable => $unlock, Dockable => $unlock, Movable => $unlock, Resizable => 1, PaneBorder => 0, CloseButton => 0, DestroyOnClose => 0, MaximizeButton => 0, Position => 4, Layer => 2, BestSize => [ 220, -1 ], )->Left->Hide, ); $aui->caption( left => Wx::gettext('Project Tools'), ); return $self; } ##################################################################### # Page Management sub show { my $self = shift; my $page = shift; # Are we currently showing the page my $position = $self->GetPageIndex($page); if ( $position >= 0 ) { # Already showing, switch to it $self->SetSelection($position); return; } # Add the page $self->AddPage( $page, $page->view_label, 1, ); if ( $page->can('view_icon') ) { my $pos = $self->GetPageIndex($page); $self->SetPageBitmap( $pos, $page->view_icon ); } $page->Show; $self->Show; $self->aui->GetPane($self)->Show; Wx::Event::EVT_AUINOTEBOOK_PAGE_CLOSE( $self, $self, sub { shift->on_close(@_); } ); if ( $page->can('view_start') ) { $page->view_start; } return; } sub hide { my $self = shift; my $page = shift; my $position = $self->GetPageIndex($page); unless ( $position >= 0 ) { # Not showing this return 1; } # Shut down the page if it is running something if ( $page->can('view_stop') ) { $page->view_stop; } # Remove the page $page->Hide; $self->RemovePage($position); # Is this the last page? if ( $self->GetPageCount == 0 ) { $self->Hide; $self->aui->GetPane($self)->Hide; } return; } # Allows for content-adaptive labels sub refresh { my $self = shift; foreach my $i ( 0 .. $self->GetPageCount - 1 ) { $self->SetPageText( $i, $self->GetPage($i)->view_label ); } return; } sub relocale { my $self = shift; foreach my $i ( 0 .. $self->GetPageCount - 1 ) { $self->SetPageText( $i, $self->GetPage($i)->view_label ); } return; } # It is unscalable for the view notebooks to have to know what they might contain # and then re-implement the show/hide logic (probably wrong). # Instead, tunnel the close action to the tool and let the tool decide how to go # about closing itself (which will usually be by delegating up to the main window). sub on_close { my $self = shift; my $event = shift; # Tunnel the request through to the tool if possible. my $position = $event->GetSelection; my $tool = $self->GetPage($position); unless ( $tool->can('view_close') ) { # HACK: Crash in a controller manner for the moment. # Later just let this crash uncontrolably :) my $class = ref $tool; die "Panel tool $class does define 'view_close' method"; } $tool->view_close; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Right.pm��������������������������������������������������������������������0000644�0001750�0001750�00000007401�12237327555�014770� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Right; # The right notebook for tool views use 5.008; use strict; use warnings; use Padre::Constant (); use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::AuiNotebook }; sub new { my $class = shift; my $main = shift; my $aui = $main->aui; my $unlock = $main->config->main_lockinterface ? 0 : 1; # Create the basic object my $self = $class->SUPER::new( $main, -1, Wx::DefaultPosition, Wx::Size->new( 160, 500 ), # Used when floating Wx::AUI_NB_SCROLL_BUTTONS | Wx::AUI_NB_TOP | Wx::BORDER_NONE | Wx::AUI_NB_CLOSE_ON_ACTIVE_TAB ); # Add ourself to the window manager $aui->AddPane( $self, Padre::Wx->aui_pane_info( Name => 'right', Resizable => 1, PaneBorder => 0, CloseButton => 0, DestroyOnClose => 0, MaximizeButton => 1, Position => 3, Layer => 3, CaptionVisible => $unlock, Floatable => $unlock, Dockable => $unlock, Movable => $unlock, BestSize => [ 260, -1 ], )->Right->Hide, ); $aui->caption( right => Wx::gettext('Document Tools'), ); return $self; } ##################################################################### # Page Management sub show { my $self = shift; my $page = shift; # Are we currently showing the page my $position = $self->GetPageIndex($page); if ( $position >= 0 ) { # Already showing, switch to it $self->SetSelection($position); return; } # Add the page # NOTE: Only the Right panel adds tools at the left, the rest do so on the right $self->InsertPage( 0, $page, $page->view_label, 1, ); if ( $page->can('view_icon') ) { my $pos = $self->GetPageIndex($page); $self->SetPageBitmap( $pos, $page->view_icon ); } $page->Show; $self->Show; $self->aui->GetPane($self)->Show; Wx::Event::EVT_AUINOTEBOOK_PAGE_CLOSE( $self, $self, sub { shift->on_close(@_); } ); if ( $page->can('view_start') ) { $page->view_start; } return; } sub hide { my $self = shift; my $page = shift; my $position = $self->GetPageIndex($page); unless ( $position >= 0 ) { # Not showing this return 1; } # Shut down the page if it is running something if ( $page->can('view_stop') ) { $page->view_stop; } # Remove the page $page->Hide; $self->RemovePage($position); # Is this the last page? if ( $self->GetPageCount == 0 ) { $self->Hide; $self->aui->GetPane($self)->Hide; } return; } # Allows for content-adaptive labels sub refresh { my $self = shift; foreach my $i ( 0 .. $self->GetPageCount - 1 ) { $self->SetPageText( $i, $self->GetPage($i)->view_label ); } return; } sub relocale { my $self = shift; foreach my $i ( 0 .. $self->GetPageCount - 1 ) { $self->SetPageText( $i, $self->GetPage($i)->view_label ); } return; } # It is unscalable for the view notebooks to have to know what they might contain # and then re-implement the show/hide logic (probably wrong). # Instead, tunnel the close action to the tool and let the tool decide how to go # about closing itself (which will usually be by delegating up to the main window). sub on_close { my $self = shift; my $event = shift; # Tunnel the request through to the tool if possible. my $position = $event->GetSelection; my $tool = $self->GetPage($position); unless ( $tool->can('view_close') ) { # HACK: Crash in a controller manner for the moment. # Later just let this crash uncontrolably :) my $class = ref $tool; die "Panel tool $class does define 'view_close' method"; } $tool->view_close; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/TextEntryDialog/������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�016430� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/TextEntryDialog/History.pm��������������������������������������������������0000644�0001750�0001750�00000003242�12237327555�020441� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::TextEntryDialog::History; use 5.008; use strict; use warnings; use Params::Util (); use Padre::DB (); use Padre::Wx (); use Class::Adapter::Builder ISA => 'Wx::TextEntryDialog', AUTOLOAD => 1; our $VERSION = '1.00'; our $COMPATIBLE = '0.26'; sub new { my $class = shift; my @params = @_; # Instead of using the default value directly search using it # as a type value in the database history table. my $type = $params[3]; $params[3] = Padre::DB::History->previous($type); if ( Params::Util::_INSTANCE( $params[3], 'Padre::DB::History' ) ) { $params[3] = $params[3]->name; } unless ( defined $params[3] ) { $params[3] = ''; } # Create the object my $object = Wx::TextEntryDialog->new(@params); # Create the adapter my $self = $class->SUPER::new($object); # Remember what we suggested to them $self->{type} = $type; $self->{suggested} = $params[3]; return $self; } sub ShowModal { my $self = shift; # Get the return value as normal my $rv = $self->{OBJECT}->ShowModal(@_); unless ( $rv == Wx::ID_OK ) { # They hit Cancel return $rv; } # Shortcut return if they didn't enter anything my $value = $self->GetValue; unless ( defined $value and $value ne '' ) { return $rv; } # If they entered something different add it to the history. unless ( defined $self->{suggested} and $self->{suggested} eq $value ) { Padre::DB::History->create( type => $self->{type}, name => $value, ); } return $rv; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ListView.pm�����������������������������������������������������������������0000644�0001750�0001750�00000003644�12237327555�015466� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::ListView; # A custom subclass of Wx::ListView with additional convenience methods use 5.008; use strict; use warnings; use Padre::Wx (); our $VERSION = '1.00'; our @ISA = 'Wx::ListView'; sub lock_update { Wx::WindowUpdateLocker->new( $_[0] ); } # Set all columns at once and autosize sub init { my $self = shift; my @headers = @_; my $lock = $self->lock_update; # Add the columns foreach my $i ( 0 .. $#headers ) { $self->InsertColumn( $i, $headers[$i] ); $self->SetColumnWidth( $i, Wx::LIST_AUTOSIZE ); } # Resize to the headers, ensuring the last column is the longest foreach my $i ( 0 .. $#headers ) { $self->SetColumnWidth( $i, Wx::LIST_AUTOSIZE_USEHEADER ); } return; } sub set_item_bold { my $self = shift; my $item = $self->GetItem(shift); my $weight = shift() ? Wx::FONTWEIGHT_BOLD : Wx::FONTWEIGHT_NORMAL; my $font = $item->GetFont; $font->SetWeight($weight); $item->SetFont($font); $self->SetItem($item); return 1; } sub tidy { my $self = shift; my $lock = $self->lock_update; foreach my $i ( 0 .. $self->GetColumnCount - 1 ) { $self->SetColumnWidth( $i, Wx::LIST_AUTOSIZE_USEHEADER ); my $header = $self->GetColumnWidth($i); $self->SetColumnWidth( $i, Wx::LIST_AUTOSIZE ); if ( $header > $self->GetColumnWidth($i) ) { $self->SetColumnWidth( $i, $header ); } } return; } sub tidy_headers { my $self = shift; my $lock = $self->lock_update; foreach my $i ( 0 .. $self->GetColumnCount - 1 ) { $self->SetColumnWidth( $i, Wx::LIST_AUTOSIZE_USEHEADER ); } return; } sub tidy_content { my $self = shift; my $lock = $self->lock_update; foreach my $i ( 0 .. $self->GetColumnCount - 1 ) { $self->SetColumnWidth( $i, Wx::LIST_AUTOSIZE ); } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Scintilla.pm����������������������������������������������������������������0000644�0001750�0001750�00000075033�12237327555�015643� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Scintilla; # Utility package for integrating Wx::Scintilla with Padre use 5.008; use strict; use warnings; use Params::Util (); use Class::Inspector (); use Padre::Config (); use Padre::MIME (); use Wx::Scintilla::Constant (); use Padre::Locale::T; our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; ###################################################################### # Syntax Highlighters # Supported non-Scintilla colourising modules my %MODULE = ( 'Padre::Document::Perl::Lexer' => { name => _T('PPI Experimental'), mime => { 'application/x-perl' => 1, } }, 'Padre::Document::Perl::PPILexer' => { name => _T('PPI Standard'), mime => { 'application/x-perl' => 1, } }, ); # Current highlighter for each mime type my %HIGHLIGHTER = ( 'application/x-perl' => Padre::Config->read->lang_perl5_lexer, ); sub highlighter { my $mime = _MIME( $_[1] ); foreach my $type ( $mime->superpath ) { return $HIGHLIGHTER{$type} if $HIGHLIGHTER{$type}; } return ''; } sub add_highlighter { my $class = shift; my $module = shift; my $params = shift; # Check the highlighter params unless ( Class::Inspector->installed($module) ) { die "Missing or invalid highlighter $module"; } if ( $MODULE{$module} ) { die "Duplicate highlighter registration $module"; } unless ( Params::Util::_HASH($params) ) { die "Missing or invalid highlighter params"; } unless ( defined Params::Util::_STRING( $params->{name} ) ) { die "Missing or invalid highlighter name"; } unless ( Params::Util::_ARRAY( $params->{mime} ) ) { die "Missing or invalid highlighter mime list"; } # Register the highlighter module my %mime = map { $_ => 1 } @{ $params->{mime} }; $MODULE{$module} = { name => $params->{name}, mime => \%mime, }; # Bind the mime types to the highlighter foreach my $mime ( keys %mime ) { $HIGHLIGHTER{$mime} = $module; } return 1; } sub remove_highlighter { my $class = shift; my $module = shift; # Unregister the highlighter module my $deleted = delete $MODULE{$module} or return; # Unbind the mime types for the highlighter foreach my $mime ( keys %HIGHLIGHTER ) { next unless $HIGHLIGHTER{$mime} eq $module; delete $HIGHLIGHTER{$mime}; } return 1; } ###################################################################### # Content Lexers my %LEXER = ( 'text/x-abc' => Wx::Scintilla::Constant::SCLEX_NULL, 'text/x-actionscript' => Wx::Scintilla::Constant::SCLEX_CPP, 'text/x-adasrc' => Wx::Scintilla::Constant::SCLEX_ADA, # CONFIRMED 'text/x-asm' => Wx::Scintilla::Constant::SCLEX_ASM, # CONFIRMED 'application/x-bibtex' => Wx::Scintilla::Constant::SCLEX_NULL, 'application/x-bml' => Wx::Scintilla::Constant::SCLEX_NULL, 'text/x-bat' => Wx::Scintilla::Constant::SCLEX_BATCH, # CONFIRMED 'text/x-csrc' => Wx::Scintilla::Constant::SCLEX_CPP, # CONFIRMED 'text/x-cobol' => Wx::Scintilla::Constant::SCLEX_COBOL, # CONFIRMED 'text/x-c++src' => Wx::Scintilla::Constant::SCLEX_CPP, # CONFIRMED 'text/css' => Wx::Scintilla::Constant::SCLEX_CSS, # CONFIRMED 'text/x-eiffel' => Wx::Scintilla::Constant::SCLEX_EIFFEL, # CONFIRMED 'text/x-forth' => Wx::Scintilla::Constant::SCLEX_FORTH, # CONFIRMED 'text/x-fortran' => Wx::Scintilla::Constant::SCLEX_FORTRAN, # CONFIRMED 'text/x-haskell' => Wx::Scintilla::Constant::SCLEX_HASKELL, # CONFIRMED 'text/html' => Wx::Scintilla::Constant::SCLEX_HTML, # CONFIRMED 'application/javascript' => Wx::Scintilla::Constant::SCLEX_ESCRIPT, # CONFIRMED 'application/json' => Wx::Scintilla::Constant::SCLEX_ESCRIPT, # CONFIRMED 'application/x-latex' => Wx::Scintilla::Constant::SCLEX_LATEX, # CONFIRMED 'application/x-lisp' => Wx::Scintilla::Constant::SCLEX_LISP, # CONFIRMED 'text/x-patch' => Wx::Scintilla::Constant::SCLEX_DIFF, # CONFIRMED 'application/x-shellscript' => Wx::Scintilla::Constant::SCLEX_BASH, 'text/x-java' => Wx::Scintilla::Constant::SCLEX_CPP, # CONFIRMED 'text/x-lua' => Wx::Scintilla::Constant::SCLEX_LUA, # CONFIRMED 'text/x-makefile' => Wx::Scintilla::Constant::SCLEX_MAKEFILE, # CONFIRMED 'text/x-matlab' => Wx::Scintilla::Constant::SCLEX_MATLAB, # CONFIRMED 'text/x-pascal' => Wx::Scintilla::Constant::SCLEX_PASCAL, # CONFIRMED 'application/x-perl' => Wx::Scintilla::Constant::SCLEX_PERL, # CONFIRMED 'text/x-povray' => Wx::Scintilla::Constant::SCLEX_POV, 'application/x-psgi' => Wx::Scintilla::Constant::SCLEX_PERL, # CONFIRMED 'text/x-python' => Wx::Scintilla::Constant::SCLEX_PYTHON, # CONFIRMED 'application/x-php' => Wx::Scintilla::Constant::SCLEX_PHPSCRIPT, # CONFIRMED 'application/x-r' => Wx::Scintilla::Constant::SCLEX_R, # CONFIRMED 'application/x-ruby' => Wx::Scintilla::Constant::SCLEX_RUBY, # CONFIRMED 'text/x-sql' => Wx::Scintilla::Constant::SCLEX_SQL, # CONFIRMED 'application/x-tcl' => Wx::Scintilla::Constant::SCLEX_TCL, # CONFIRMED 'text/vbscript' => Wx::Scintilla::Constant::SCLEX_VBSCRIPT, # CONFIRMED 'text/x-config' => Wx::Scintilla::Constant::SCLEX_CONF, 'text/xml' => Wx::Scintilla::Constant::SCLEX_XML, # CONFIRMED 'text/x-yaml' => Wx::Scintilla::Constant::SCLEX_YAML, # CONFIRMED 'application/x-pir' => Wx::Scintilla::Constant::SCLEX_NULL, # CONFIRMED 'application/x-pasm' => Wx::Scintilla::Constant::SCLEX_NULL, # CONFIRMED 'application/x-perl6' => 102, # TODO Wx::Scintilla::Constant::PERL_6 'text/plain' => Wx::Scintilla::Constant::SCLEX_NULL, # CONFIRMED # for the lack of a better XS lexer (vim?) 'text/x-perlxs' => Wx::Scintilla::Constant::SCLEX_CPP, 'text/x-perltt' => Wx::Scintilla::Constant::SCLEX_HTML, 'text/x-csharp' => Wx::Scintilla::Constant::SCLEX_CPP, 'text/x-pod' => Wx::Scintilla::Constant::SCLEX_PERL, ); # Must ALWAYS return a valid lexer (defaulting to AUTOMATIC as a last resort) sub lexer { my $mime = _MIME( $_[1] ); return Wx::Scintilla::Constant::SCLEX_AUTOMATIC unless $mime->type; # Search the mime type super path for a lexer foreach my $type ( $mime->superpath ) { if ( $HIGHLIGHTER{$type} ) { return Wx::Scintilla::Constant::SCLEX_CONTAINER; } return $LEXER{$type} if $LEXER{$type}; } # Fall through to Scintilla's autodetection return Wx::Scintilla::Constant::SCLEX_AUTOMATIC; } ###################################################################### # Key Words # Taken mostly from src/scite/src/ properties files. # Keyword lists are defined here in MIME type order my %KEYWORDS = (); # Support for the unknown mime type $KEYWORDS{''} = []; $KEYWORDS{'application/php'} = [ q{ and array as bool boolean break case cfunction class const continue declare default die directory do double echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exit extends false float for foreach function global goto if include include_once int integer isset list namespace new null object old_function or parent print real require require_once resource return static stdclass string switch true unset use var while xor abstract catch clone exception final implements interface php_user_filter private protected public this throw try __class__ __dir__ __file__ __function__ __line__ __method__ __namespace__ __sleep __wakeup }, ]; $KEYWORDS{'application/javascript'} = [ q{ abstract boolean break byte case catch char class const continue debugger default delete do double else enum export extends final finally float for function goto if implements import in instanceof int interface long native new package private protected public return short static super switch synchronized this throw throws transient try typeof var void volatile while with }, ]; # Inspired from Perl 6 vim syntax file # https://github.com/petdance/vim-perl/blob/master/syntax/perl6.vim $KEYWORDS{'application/x-perl6'} = [ join( '', # Perl 6 routine declaration keywords q{macro sub submethod method multi proto only rule token regex category}, # Perl 6 module keywords q{module class role package enum grammar slang subset}, # Perl 6 variable keywords q{self}, # Perl 6 include keywords q{use require}, # Perl 6 conditional keywords q{if else elsif unless}, # Perl 6 variable storage keywords q{let my our state temp has constant}, # Perl 6 repeat keywords q{for loop repeat while until gather given}, # Perl flow control keywords q{take do when next last redo return contend maybe defer default exit make continue break goto leave async lift}, # Perl 6 type constraints keywords q{is as but trusts of returns handles where augment supersede}, # Perl 6 closure traits keywords q{BEGIN CHECK INIT START FIRST ENTER LEAVE KEEP UNDO NEXT LAST PRE POST END CATCH CONTROL TEMP}, # Perl 6 exception keywords q{die fail try warn}, # Perl 6 property keywords q{prec irs ofs ors export deep binary unary reparsed rw parsed cached readonly defequiv will ref copy inline tighter looser equiv assoc required}, # Perl 6 number keywords q{NaN Inf}, # Perl 6 pragma keywords q{oo fatal}, # Perl 6 type keywords q{Object Any Junction Whatever Capture Match Signature Proxy Matcher Package Module Class Grammar Scalar Array Hash KeyHash KeySet KeyBag Pair List Seq Range Set Bag Mapping Void Undef Failure Exception Code Block Routine Sub Macro Method Submethod Regex Str Blob Char Byte Codepoint Grapheme StrPos StrLen Version Num Complex num complex Bit bit bool True False Increasing Decreasing Ordered Callable AnyChar Positional Associative Ordering KeyExtractor Comparator OrderingPair IO KitchenSink Role Int int int1 int2 int4 int8 int16 int32 int64 Rat rat rat1 rat2 rat4 rat8 rat16 rat32 rat64 Buf buf buf1 buf2 buf4 buf8 buf16 buf32 buf64 UInt uint uint1 uint2 uint4 uint8 uint16 uint32 uint64 Abstraction utf8 utf16 utf32}, # Perl 6 operator keywords q{div x xx mod also leg cmp before after eq ne le lt gt ge eqv ff fff and andthen Z X or xor orelse extra m mm rx s tr}, ) ]; # Ruby keywords # The list is obtained from src/scite/src/ruby.properties $KEYWORDS{'application/x-ruby'} = [ q{ __FILE__ and def end in or self unless __LINE__ begin defined? ensure module redo super until BEGIN break do false next rescue then when END case else for nil retry true while alias class elsif if not return undef yield } ]; # VB keyword list is obtained from src/scite/src/vb.properties $KEYWORDS{'text/vbscript'} = [ q{ addressof alias and as attribute base begin binary boolean byref byte byval call case cdbl cint clng compare const csng cstr currency date decimal declare defbool defbyte defcur defdate defdbl defdec defint deflng defobj defsng defstr defvar dim do double each else elseif empty end enum eqv erase error event exit explicit false for friend function get global gosub goto if imp implements in input integer is len let lib like load lock long loop lset me mid midb mod new next not nothing null object on option optional or paramarray preserve print private property public raiseevent randomize redim rem resume return rset seek select set single static step stop string sub text then time to true type typeof unload until variant wend while with withevents xor }, ]; # ActionScript keyword list is obtained from src/scite/src/cpp.properties $KEYWORDS{'text/x-actionscript'} = [ q{ add and break case catch class continue default delete do dynamic else eq extends false finally for function ge get gt if implements import in instanceof interface intrinsic le lt ne new not null or private public return set static super switch this throw true try typeof undefined var void while with } , q{ Array Arguments Accessibility Boolean Button Camera Color ContextMenu ContextMenuItem Date Error Function Key LoadVars LocalConnection Math Microphone Mouse MovieClip MovieClipLoader NetConnection NetStream Number Object PrintJob Selection SharedObject Sound Stage String StyleSheet System TextField TextFormat TextSnapshot Video Void XML XMLNode XMLSocket _accProps _focusrect _global _highquality _parent _quality _root _soundbuftime arguments asfunction call capabilities chr clearInterval duplicateMovieClip escape eval fscommand getProperty getTimer getURL getVersion gotoAndPlay gotoAndStop ifFrameLoaded Infinity -Infinity int isFinite isNaN length loadMovie loadMovieNum loadVariables loadVariablesNum maxscroll mbchr mblength mbord mbsubstring MMExecute NaN newline nextFrame nextScene on onClipEvent onUpdate ord parseFloat parseInt play prevFrame prevScene print printAsBitmap printAsBitmapNum printNum random removeMovieClip scroll set setInterval setProperty startDrag stop stopAllSounds stopDrag substring targetPath tellTarget toggleHighQuality trace unescape unloadMovie unLoadMovieNum updateAfterEvent } , ]; # Ada keyword list is obtained from src/scite/src/ada.properties $KEYWORDS{'text/x-adasrc'} = [ # Ada keywords q{ abort abstract accept access aliased all array at begin body case constant declare delay delta digits do else elsif end entry exception exit for function generic goto if in is limited loop new null of others out package pragma private procedure protected raise range record renames requeue return reverse select separate subtype tagged task terminate then type until use when while with } . # Ada Operators q{abs and mod not or rem xor}, ]; $KEYWORDS{'text/x-csharp'} = [ # C# keywords q{ abstract as base bool break by byte case catch char checked class const continue decimal default delegate do double else enum equals event explicit extern false finally fixed float for foreach goto if implicit in int interface internal into is lock long namespace new null object on operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while } . # C# contextual keywords q{ add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var where yield } ]; # COBOL keyword list is obtained from src/scite/src/cobol.properties $KEYWORDS{'text/x-cobol'} = [ q{ configuration data declaratives division environment environment-division file file-control function i-o i-o-control identification input input-output linkage local-storage output procedure program program-id receive-control section special-names working-storage }, q{ accept add alter apply assign call chain close compute continue control convert copy count delete display divide draw drop eject else enable end-accept end-add end-call end-chain end-compute end-delete end-display end-divide end-evaluate end-if end-invoke end-multiply end-perform end-read end-receive end-return end-rewrite end-search end-start end-string end-subtract end-unstring end-write erase evaluate examine exec execute exit go goback generate if ignore initialize initiate insert inspect invoke leave merge move multiply open otherwise perform print read receive release reload replace report reread rerun reserve reset return rewind rewrite rollback run search seek select send set sort start stop store string subtract sum suppress terminate then transform unlock unstring update use wait when wrap write }, q{ access acquire actual address advancing after all allowing alphabet alphabetic alphabetic-lower alphabetic-upper alphanumeric alphanumeric-edited also alternate and any are area areas as ascending at attribute author auto auto-hyphen-skip auto-skip automatic autoterminate background-color background-colour backward basis beep before beginning bell binary blank blink blinking block bold bottom box boxed by c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 cancel cbl cd centered cf ch chaining changed character characters chart class clock-units cobol code code-set col collating color colour column com-reg comma command-line commit commitment common communication comp comp-0 comp-1 comp-2 comp-3 comp-4 comp-5 comp-6 comp-x compression computational computational-1 computational-2 computational-3 computational-4 computational-5 computational-6 computational-x computational console contains content control-area controls conversion converting core-index corr corresponding crt crt-under csp currency current-date cursor cycle cyl-index cyl-overflow date date-compiled date-written day day-of-week dbcs de debug debug-contents debug-item debug-line debug-name debug-sub-1 debug-sub-2 debug-sub-3 debugging decimal-point default delimited delimiter depending descending destination detail disable disk disp display-1 display-st down duplicates dynamic echo egcs egi emi empty-check encryption end end-of-page ending enter entry eol eop eos equal equals error escape esi every exceeds exception excess-3 exclusive exhibit extend extended-search external externally-described-key factory false fd fh--fcd fh--keydef file-id file-limit file-limits file-prefix filler final first fixed footing for foreground-color foreground-colour footing format from full giving global greater grid group heading high high-value high-values highlight id in index indexed indic indicate indicator indicators inheriting initial installation into invalid invoked is japanese just justified kanji kept key keyboard label last leading left left-justify leftline length length-check less limit limits lin linage linage-counter line line-counter lines lock lock-holding locking low low-value low-values lower lowlight manual mass-update master-index memory message method mode modified modules more-labels multiple name named national national-edited native nchar negative next no no-echo nominal not note nstd-reels null nulls number numeric numeric-edited numeric-fill o-fill object object-computer object-storage occurs of off omitted on oostackptr optional or order organization other others overflow overline packed-decimal padding page page-counter packed-decimal paragraph password pf ph pic picture plus pointer pop-up pos position positioning positive previous print-control print-switch printer printer-1 printing prior private procedure-pointer procedures proceed process processing prompt protected public purge queue quote quotes random range rd readers ready record record-overflow recording records redefines reel reference references relative remainder remarks removal renames reorg-criteria repeated replacing reporting reports required resident return-code returning reverse reverse-video reversed rf rh right right-justify rolling rounded s01 s02 s03 s04 s05 same screen scroll sd secure security segment segment-limit selective self selfclass sentence separate sequence sequential service setshadow shift-in shift-out sign size skip1 skip2 skip3 sort-control sort-core-size sort-file-size sort-merge sort-message sort-mode-size sort-option sort-return source source-computer space spaces space-fill spaces standard standard-1 standard-2 starting status sub-queue-1 sub-queue-2 sub-queue-3 subfile super symbolic sync synchronized sysin sysipt syslst sysout syspch syspunch system-info tab tallying tape terminal terminal-info test text than through thru time time-of-day time-out timeout times title to top totaled totaling trace track-area track-limit tracks trailing trailing-sign transaction true type typedef underline underlined unequal unit until up updaters upon upper upsi-0 upsi-1 upsi-2 upsi-3 upsi-4 upsi-5 upsi-6 upsi-7 usage user using value values variable varying when-compiled window with words write-only write-verify writerszero zero zero-fill zeros zeroes }, ]; # C/C++ keyword list is obtained from src/scite/src/cpp.properties $KEYWORDS{'text/x-csrc'} = [ q{ and and_eq asm auto bitand bitor bool break case catch char class compl const const_cast continue default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new not not_eq operator or or_eq private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq } ]; # Haskell keyword list is obtained from src/scite/src/haskell.properties $KEYWORDS{'text/x-haskell'} = [ # Haskell 98 q{case class data default deriving do else hiding if import in infix infixl infixr instance let module newtype of then type where forall foreign } , # Haskell Foreign Function Interface (FFI) ( q{export label dynamic safe threadsafe unsafe stdcall ccall prim}, ]; # Java keyword list is obtained from src/scite/src/cpp.properties $KEYWORDS{'text/x-java'} = [ q{ abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try var void volatile while } ]; # Pascal keyword list is obtained from src/scite/src/pascal.properties $KEYWORDS{'text/x-pascal'} = [ # Pascal keywords q{absolute abstract and array as asm assembler automated begin case cdecl class const constructor deprecated destructor dispid dispinterface div do downto dynamic else end except export exports external far file final finalization finally for forward function goto if implementation in inherited initialization inline interface is label library message mod near nil not object of on or out overload override packed pascal platform private procedure program property protected public published raise record register reintroduce repeat resourcestring safecall sealed set shl shr static stdcall strict string then threadvar to try type unit unsafe until uses var varargs virtual while with xor } . # Smart pascal highlighting q{add default implements index name nodefault read readonly remove stored write writeonly} . # Pascal package #TODO only package dpk should get this list q{package contains requires}, ]; $KEYWORDS{'application/x-perl'} = [ # Perl Keywords q{ NULL __FILE__ __LINE__ __PACKAGE__ __DATA__ __END__ AUTOLOAD BEGIN CORE DESTROY END EQ GE GT INIT LE LT NE CHECK abs accept alarm and atan2 bind binmode bless caller chdir chmod chomp chop chown chr chroot close closedir cmp connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eq eval exec exists exit exp fcntl fileno flock for foreach fork format formline ge getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst le length link listen local localtime lock log lstat lt map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push quotemeta qu rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn while write xor given when default say state UNITCHECK }, ]; # 8 different keyword lists for povray $KEYWORDS{'text/x-povray'} = [ # structure keyword1 == SCE_POV_DIRECTIVE q{ declare local undef default macro if else while end include version debug error warning switch case range break ifdef indef fopen fclose read write render statistics }, # objects SCE_POV_WORD2 q{ blob box bicubic_patch object light_source camera cylinder cubic global_settings height_field isosurface julia_fractal sor sphere sphere_sweep superellipsoid torus triangle quadric quartic sky_sphere plane poly polygon } . q{ looks_like bounded_by contained_by clipped_by } . q{ union intersection difference }, # patterns SCE_POV_WORD3 q{ agate bozo checker cells bumps brick facets dents crackle hexagon gradient granite spotted spiral1 ripples marble leopard spiral2 wrinkles }, # transforms SCE_POV_WORD4 q{ translate rotate scale transform matrix point_at look_at }, # modifiers - SCE_POV_WORD5 q{ }, ## float functions - SCE_POV_WORD6 q{ abs acos acosh asc asin asinh atan atanh atan2 ceil cos cosh defined degrees dimensions dimension_size div exp file_exists floor int inside ln log max min mod pow radians rand seed select sin sinh sqrt strcmp strlen tan tanh val vdot vlength } . ## vector functions q{ min_extent max_extent trace vaxis_rotate vcross vrotate vnormalize vturbulence } . ## string functions q{ chr concat str strlwr strupr substr vstr }, ## reserved identifiers SCE_POV_WORD7 q{ x y z red green blue alpha filter rgb rgbf rgba rgbfa u v }, ]; # Python keywords # The list is obtained from src/scite/src/python.properties $KEYWORDS{'text/x-python'} = [ q{ and as assert break class continue def del elif else except exec finally for from global if import in is lambda None not or pass print raise return try while with yield }, ]; # YAML keyword list is obtained from src/scite/src/yaml.properties $KEYWORDS{'text/x-yaml'} = [ q{ true false yes no }, ]; # HTML keywords contains all kinds of things $KEYWORDS{'text/html'} = [ join( ' ', # HTML elements q{a abbr acronym address applet area b base basefont bdo big blockquote body br button caption center cite code col colgroup dd del dfn dir div dl dt em fieldset font form frame frameset h1 h2 h3 h4 h5 h6 head hr html i iframe img input ins isindex kbd label legend li link map menu meta noframes noscript object ol optgroup option p param pre q s samp script select small span strike strong style sub sup table tbody td textarea tfoot th thead title tr tt u ul var xml xmlns }, # HTML attributes q{abbr accept-charset accept accesskey action align alink alt archive axis background bgcolor border cellpadding cellspacing char charoff charset checked cite class classid clear codebase codetype color cols colspan compact content coords data datafld dataformatas datapagesize datasrc datetime declare defer dir disabled enctype event face for frame frameborder headers height href hreflang hspace http-equiv id ismap label lang language leftmargin link longdesc marginwidth marginheight maxlength media method multiple name nohref noresize noshade nowrap object onblur onchange onclick ondblclick onfocus onkeydown onkeypress onkeyup onload onmousedown onmousemove onmouseover onmouseout onmouseup onreset onselect onsubmit onunload profile prompt readonly rel rev rows rowspan rules scheme scope selected shape size span src standby start style summary tabindex target text title topmargin type usemap valign value valuetype version vlink vspace width text password checkbox radio submit reset file hidden image ^data- }, # HTML 5 elements q{ address article aside audio base canvas command details datalist embed figure figcaption footer header hgroup keygen mark menu meter nav output progress ruby rt rp section source time video wbr }, # HTML 5 attributes q{ async autocomplete autofocus contenteditable contextmenu draggable form formaction formenctype formmethod formnovalidate formtarget list manifest max min novalidate pattern placeholder required reversed role sandbox scoped seamless sizes spellcheck srcdoc step }, ), # Embedded Javascript $KEYWORDS{'application/javascript'}->[0], # Embedded Python q{ and as assert break class continue def del elif else except exec finally for from global if import in is lambda None not or pass print raise return try while with yield }, # Embedded VBScript $KEYWORDS{'text/vbscript'}->[0], # Embedded PHP $KEYWORDS{'application/php'}->[0], ]; #ToDo this needs to be checked # Embedded BASH $KEYWORDS{'application/x-shellscript'} = [ q{ alias bg bind break builtin caller cd command compgen complete compopt continue declare dirs disown echo enable eval exec exit export false fc fg getopts hash help history jobs kill let local logout mapfile popd printf pushd pwd read readarray readonly return set shift shopt source suspend test times trap true type typeset ulimit umask unalias unset wait }, q{ awk grep sed }, q{ case done elif else esac for function select then time until while }, ]; # Clean the keywords foreach my $list ( values %KEYWORDS ) { foreach my $i ( 0 .. $#$list ) { $list->[$i] =~ s/\A\s+//; $list->[$i] =~ s/\s+\Z//; $list->[$i] =~ s/\s+/ /g; } } sub keywords { my $mime = _MIME( $_[1] ); foreach my $type ( $mime->superpath ) { next unless $KEYWORDS{$type}; return $KEYWORDS{$type}; } return; } ###################################################################### # Support Functions sub _MIME { my $it = shift; if ( Params::Util::_INSTANCE( $it, 'Padre::Document' ) ) { $it = $it->mime; } if ( Params::Util::_INSTANCE( $it, 'Padre::MIME' ) ) { return $it; } return Padre::MIME->find($it); } sub _TYPE { my $it = shift; if ( Params::Util::_INSTANCE( $it, 'Padre::Document' ) ) { $it = $it->mime; } if ( Params::Util::_INSTANCE( $it, 'Padre::MIME' ) ) { $it = $it->type; } return $it || ''; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Panel/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014402� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Panel/DebugOutput.pm��������������������������������������������������������0000644�0001750�0001750�00000005321�12237327555�017220� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Panel::DebugOutput; use 5.010; use strict; use warnings; use utf8; use Padre::Wx::Role::View; use Padre::Wx::FBP::DebugOutput (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::View Padre::Wx::FBP::DebugOutput }; use constant { RED => Wx::Colour->new('red'), DARK_GREEN => Wx::Colour->new( 0x00, 0x90, 0x00 ), BLUE => Wx::Colour->new('blue'), GRAY => Wx::Colour->new('gray'), DARK_GRAY => Wx::Colour->new( 0x7f, 0x7f, 0x7f ), BLACK => Wx::Colour->new('black'), }; ####### # new ####### sub new { my $class = shift; my $main = shift; my $panel = shift || $main->bottom; # # Create the panel my $self = $class->SUPER::new($panel); return $self; } ############### # Make Padre::Wx::Role::View happy ############### sub view_panel { 'bottom'; } sub view_label { Wx::gettext('Debug Output'); } sub view_close { $_[0]->main->show_debugoutput(0); } sub view_icon { Padre::Wx::Icon::find('actions/morpho3'); } sub view_start { return; } sub view_stop { return; } ############### # Make Padre::Wx::Role::View happy end ############### ####### # Method debug_output ####### sub debug_output { my $self = shift; my $output = shift; $self->{output}->SetForegroundColour(RED); $self->{output}->ChangeValue($output); # auto focus to panel debug output $self->main->debugoutput->SetFocus; return; } ####### # Method debug_output_black ####### sub debug_output_black { my $self = shift; my $output = shift; $self->{output}->SetForegroundColour(BLACK); $self->{output}->ChangeValue($output); # auto focus to panel debug output $self->main->debugoutput->SetFocus; return; } ####### # Method debug_output_blue ####### sub debug_output_blue { my $self = shift; my $output = shift; $self->{output}->SetForegroundColour(BLUE); $self->{output}->ChangeValue($output); # auto focus to panel debug output $self->main->debugoutput->SetFocus; return; } ####### # Method debug_output_dark_gray ####### sub debug_output_dark_gray { my $self = shift; my $output = shift; $self->{output}->SetForegroundColour(DARK_GRAY); $self->{output}->ChangeValue($output); # auto focus to panel debug output $self->main->debugoutput->SetFocus; return; } ######## # debug_status ######## sub debug_status { my $self = shift; my $status = shift; $self->{status}->SetLabel($status); return; } ######## # debug launch options ######## sub debug_launch_options { my $self = shift; my $options = shift || 'none'; $self->{dl_options}->SetLabel($options); return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Panel/TaskList.pm�����������������������������������������������������������0000644�0001750�0001750�00000011346�12237327555�016513� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Panel::TaskList; use 5.008; use strict; use warnings; use Padre::Role::Task (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Context (); use Padre::Wx::FBP::TaskList (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Idle Padre::Wx::Role::View Padre::Wx::Role::Context Padre::Wx::FBP::TaskList }; ###################################################################### # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->bottom; my $self = $class->SUPER::new($panel); # Temporary store for the task list. $self->{model} = []; # Remember the last document we were looking at $self->{document} = ''; # Create the image list even though we don't use much of it my $images = Wx::ImageList->new( 16, 16 ); $self->{images} = { folder => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_FOLDER', 'wxART_OTHER_C', [ 16, 16 ], ), ), file => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_NORMAL_FILE', 'wxART_OTHER_C', [ 16, 16 ], ), ), result => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_GO_FORWARD', 'wxART_OTHER_C', [ 16, 16 ], ), ), }; $self->{tree}->AssignImageList($images); Wx::Event::EVT_TREE_ITEM_ACTIVATED( $self, $self->{tree}, sub { $_[0]->idle_method( item_clicked => $_[1]->GetItem ); }, ); # Register for refresh calls $main->add_refresh_listener($self); $self->context_bind; return $self; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'bottom'; } sub view_label { Wx::gettext('Task List'); } sub view_close { $_[0]->task_reset; $_[0]->main->show_tasks(0); } ###################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; $self->context_append_options( $menu => 'main_tasks_panel' ); return; } ###################################################################### # Refresh and Search sub refresh { my $self = shift; my $current = shift or return; my $document = $current->document; my $search = $self->{search}; my $tree = $self->{tree}; # Flush and hide the list if there is no active document unless ($document) { my $lock = $self->lock_update; $search->Hide; $tree->Hide; $tree->Clear; $self->{model} = []; $self->{document} = ''; return; } # Ensure the widget is visible $search->Show(1); $tree->Show(1); # Clear search when it is a different document my $id = Scalar::Util::refaddr($document); if ( $id ne $self->{document} ) { $search->ChangeValue(''); $self->{document} = $id; } # Unlike the Function List widget we copied to make this, # don't bother with a background task, since this is much quicker. my $regexp = $current->config->main_tasks_regexp; my $text = $document->text_get; my @items = (); SCOPE: { local $@; eval { while ( $text =~ /$regexp/gim ) { push @items, { text => $1 || '<no text>', 'pos' => pos($text) }; } }; $self->main->error( sprintf( Wx::gettext('%s in TODO regex, check your config.'), $@, ) ) if $@; } while ( $text =~ /#\s*(Ticket #\d+.*?)$/gim ) { push @items, { text => $1, 'pos' => pos($text) }; } if ( @items == 0 ) { $tree->Clear; $self->{model} = []; return; } # Update the model and rerender $self->{model} = \@items; $self->render; } # Populate the list with search results sub render { my $self = shift; my $model = $self->{model}; my $search = $self->{search}; my $tree = $self->{tree}; # Quote the search string to make it safer my $string = $search->GetValue; if ( $string eq '' ) { $string = '.*'; } else { $string = quotemeta $string; } # Show the components and populate the function list SCOPE: { my $lock = $self->lock_update; $search->Show(1); $tree->Show(1); $tree->Clear; foreach my $task ( reverse @$model ) { my $text = $task->{text}; if ( $text =~ /$string/i ) { $tree->Insert( $text, 0 ); } } } return 1; } ###################################################################### # General Methods sub item_clicked { my $self = shift; my $item = shift or return; my $tree = $self->{tree}; my $data = $tree->GetPlData($item) or return; my $line = $data->{line} or return; my $editor = $self->current->editor or return; $editor->goto_pos_centerize($line); $editor->SetFocus; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Panel/Debugger.pm�����������������������������������������������������������0000644�0001750�0001750�00000104621�12237327555�016500� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Panel::Debugger; use 5.010; use strict; use warnings; no if $] > 5.017010, warnings => 'experimental::smartmatch'; use utf8; use Padre::Util (); use Padre::Constant (); use Padre::Wx (); use Padre::Wx::Util (); use Padre::Wx::Icon (); use Padre::Wx::Role::View (); use Padre::Wx::FBP::Debugger (); use Padre::Breakpoints (); use Padre::Logger; use Debug::Client 0.20 (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::View Padre::Wx::FBP::Debugger }; use constant { BLANK => qq{}, RED => Wx::Colour->new('red'), DARK_GREEN => Wx::Colour->new( 0x00, 0x90, 0x00 ), BLUE => Wx::Colour->new('blue'), GRAY => Wx::Colour->new('gray'), DARK_GRAY => Wx::Colour->new( 0x7f, 0x7f, 0x7f ), BLACK => Wx::Colour->new('black'), }; ####### # new ####### sub new { my $class = shift; my $main = shift; my $panel = shift || $main->right; # Create the panel my $self = $class->SUPER::new($panel); $self->set_up; return $self; } ############### # Make Padre::Wx::Role::View happy ############### sub view_panel { 'right'; } sub view_label { Wx::gettext('Debugger'); } sub view_close { $_[0]->main->show_debugger(0); } sub view_icon { Padre::Wx::Icon::find('actions/morpho3'); } ############### # Make Padre::Wx::Role::View happy end ############### ####### # Method set_up ####### sub set_up { my $self = shift; my $main = $self->main; $self->{debug_client_version} = $Debug::Client::VERSION; $self->{debug_client_version} =~ s/^(\d.\d{2}).*/$1/; $self->{client} = undef; $self->{file} = undef; $self->{save} = {}; $self->{trace_status} = 'Trace = off'; $self->{var_val} = {}; $self->{local_values} = {}; $self->{global_values} = {}; $self->{set_bp} = 0; $self->{fudge} = 0; $self->{local_variables} = 0; $self->{global_variables} = 0; #turn off unless in project $self->{show_global_variables}->Disable; $self->{show_local_variables}->Disable; # $self->{show_local_variables}->SetValue(1); # $self->{local_variables} = 1; $self->{show_local_variables}->SetValue(0); $self->{local_variables} = 0; # Setup the debug button icons $self->{debug}->SetBitmapLabel( Padre::Wx::Icon::find('actions/morpho2') ); $self->{debug}->Enable; $self->{step_in}->SetBitmapLabel( Padre::Wx::Icon::find('actions/step_in') ); $self->{step_in}->Hide; $self->{step_over}->SetBitmapLabel( Padre::Wx::Icon::find('actions/step_over') ); $self->{step_over}->Hide; $self->{step_out}->SetBitmapLabel( Padre::Wx::Icon::find('actions/step_out') ); $self->{step_out}->Hide; $self->{run_till}->SetBitmapLabel( Padre::Wx::Icon::find('actions/run_till') ); $self->{run_till}->Hide; $self->{display_value}->SetBitmapLabel( Padre::Wx::Icon::find('stock/code/stock_macro-watch-variable') ); $self->{display_value}->Hide; $self->{quit_debugger}->SetBitmapLabel( Padre::Wx::Icon::find('actions/red_cross') ); $self->{quit_debugger}->Enable; $self->{list_action}->SetBitmapLabel( Padre::Wx::Icon::find('actions/4c-l') ); $self->{list_action}->Disable; $self->{dot}->SetBitmapLabel( Padre::Wx::Icon::find('actions/dot') ); $self->{dot}->Disable; $self->{view_around}->SetBitmapLabel( Padre::Wx::Icon::find('actions/76-v') ); $self->{view_around}->Disable; $self->{stacktrace}->SetBitmapLabel( Padre::Wx::Icon::find('actions/54-t') ); $self->{stacktrace}->Disable; $self->{module_versions}->SetBitmapLabel( Padre::Wx::Icon::find('actions/4d-m') ); $self->{module_versions}->Disable; $self->{all_threads}->SetBitmapLabel( Padre::Wx::Icon::find('actions/45-e') ); $self->{all_threads}->Disable; $self->{trace}->Disable; $self->{evaluate_expression}->SetBitmapLabel( Padre::Wx::Icon::find('actions/pux') ); $self->{evaluate_expression}->Disable; $self->{expression}->SetValue(BLANK); $self->{expression}->Disable; $self->{running_bp}->SetBitmapLabel( Padre::Wx::Icon::find('actions/bub') ); $self->{running_bp}->Disable; $self->{sub_names}->SetBitmapLabel( Padre::Wx::Icon::find('actions/53-s') ); $self->{sub_names}->Disable; $self->{display_options}->SetBitmapLabel( Padre::Wx::Icon::find('actions/6f-o') ); $self->{display_options}->Disable; $self->{watchpoints}->SetBitmapLabel( Padre::Wx::Icon::find('actions/wuw') ); $self->{watchpoints}->Disable; $self->{raw}->SetBitmapLabel( Padre::Wx::Icon::find('actions/raw') ); $self->{raw}->Disable; # Setup columns names and order here my @column_headers = qw( Variable Value ); my $index = 0; for my $column_header (@column_headers) { $self->{variables}->InsertColumn( $index++, Wx::gettext($column_header) ); } # Tidy the list Padre::Wx::Util::tidy_list( $self->{variables} ); return; } ####### # Composed Method, # display any relation db ####### sub update_variables { my $self = shift; my $var_val_ref = shift; my $local_values_ref = shift; my $global_values_ref = shift; my $editor = $self->current->editor; # clear ListCtrl items $self->{variables}->DeleteAllItems; my $index = 0; my $item = Wx::ListItem->new; foreach my $var ( keys %{$var_val_ref} ) { $item->SetId($index); $self->{variables}->InsertItem($item); $self->{variables}->SetItemTextColour( $index, BLACK ); $self->{variables}->SetItem( $index, 0, $var ); $self->{variables}->SetItem( $index++, 1, $var_val_ref->{$var} ); } if ( $self->{local_variables} == 1 ) { foreach my $var ( keys %{$local_values_ref} ) { $item->SetId($index); $self->{variables}->InsertItem($item); $self->{variables}->SetItemTextColour( $index, BLUE ); $self->{variables}->SetItem( $index, 0, $var ); $self->{variables}->SetItem( $index++, 1, $local_values_ref->{$var} ); } } if ( $self->{global_variables} == 1 ) { foreach my $var ( keys %{$global_values_ref} ) { $item->SetId($index); $self->{variables}->InsertItem($item); $self->{variables}->SetItemTextColour( $index, DARK_GRAY ); $self->{variables}->SetItem( $index, 0, $var ); $self->{variables}->SetItem( $index++, 1, $global_values_ref->{$var} ); } } # Tidy the list Padre::Wx::Util::tidy_list( $self->{variables} ); return; } ####### # sub debug_perl ####### sub debug_perl { my $self = shift; my $arg_ref = shift || { debug => 1 }; my $main = $self->main; my $current = $self->current; my $document = $current->document; my $editor = $current->editor; # test for valid perl document if ( !$document || $document->mimetype !~ m/perl/ ) { return; } # display panels $main->show_debugoutput(1); if ( $self->{client} ) { $main->error( Wx::gettext('Debugger is already running') ); return; } unless ( $document->isa('Padre::Document::Perl') ) { $main->error( Wx::gettext('Not a Perl document') ); return; } # Apply the user's save-on-run policy # TO DO: Make this code suck less my $config = $main->config; if ( $config->run_save eq 'same' ) { $main->on_save; } elsif ( $config->run_save eq 'all_files' ) { $main->on_save_all; } elsif ( $config->run_save eq 'all_buffer' ) { $main->on_save_all; } #TODO I think this is where the Fup filenames are comming from, see POD in main # Get the filename # my $filename = defined( $document->{file} ) ? $document->{file}->filename : undef; #changed due to define is deprecated in perl 5.15.7 my $filename; if ( defined $document->{file} ) { $filename = $document->{file}->filename; } else { $filename = undef; } # TODO: improve the message displayed to the user # If the document is not saved, simply return for now return unless $filename; #TODO how do we add debug options at startup such as threaded mode # Set up the debugger my $host = '127.0.0.1'; my $port = 24642 + int rand(1000); # TODO make this configurable? SCOPE: { local $ENV{PERLDB_OPTS} = "RemotePort=$host:$port"; my ( $cmd, $ref ) = $document->get_command($arg_ref); #TODO: consider pushing the chdir into run_command (as there is a hidden 'cd' in it) my $dir = Cwd::cwd; chdir $arg_ref->{run_directory} if ( exists( $arg_ref->{run_directory} ) ); $main->run_command($cmd); chdir $dir; } # Bootstrap the debugger # require Debug::Client; $self->{client} = Debug::Client->new( host => $host, port => $port, ); #ToDo remove when Debug::Client 0.22 is released. if ( $self->{debug_client_version} eq '0.20' ) { $self->{client}->listener; } $self->{file} = $filename; #Now we ask where are we #ToDo remove when Debug::Client 0.22 is released. if ( $self->{debug_client_version} eq '0.20' ) { $self->{client}->get; } $self->{client}->get_lineinfo; my $save = ( $self->{save}->{$filename} ||= {} ); if ( $self->{set_bp} == 0 ) { # get bp's from db and set b|B (remember it's a toggle) hence we do this only once $self->_get_bp_db; $self->{set_bp} = 1; } unless ( $self->_set_debugger ) { $main->error( Wx::gettext('Debugging failed. Did you check your program for syntax errors?') ); $self->debug_quit; return; } return 1; } ####### # sub _set_debugger ####### sub _set_debugger { my $self = shift; my $main = $self->main; my $current = $self->current; my $editor = $current->editor or return; my $file = $self->{client}->{filename} or return; my $row = $self->{client}->{row} or return; # Open the file if needed if ( $editor->{Document}->filename ne $file ) { $main->setup_editor($file); $editor = $main->current->editor; if ( $self->main->{breakpoints} ) { $self->main->{breakpoints}->on_refresh_click; } # we only want to do this if we are loading other files in this packages of ours $self->_bp_autoload(); } $editor->goto_line_centerize( $row - 1 ); #### TODO this was taken from the Padre::Wx::Syntax::start() and changed a bit. # They should be reunited soon !!!! (or not) $editor->MarkerDeleteAll(Padre::Constant::MARKER_LOCATION); $editor->MarkerAdd( $row - 1, Padre::Constant::MARKER_LOCATION ); # update variables and output $self->_output_variables; return 1; } ####### # sub running ####### sub running { my $self = shift; my $main = $self->main; unless ( $self->{client} ) { return; } return !!$self->current->editor; } ####### # sub debug_quit ####### sub debug_quit { my $self = shift; my $main = $self->main; $self->running or return; # Clean up the GUI artifacts $self->current->editor->MarkerDeleteAll( Padre::Constant::MARKER_LOCATION() ); # Detach the debugger $self->{client}->quit; delete $self->{client}; $self->{trace_status} = 'Trace = off'; $self->{trace}->SetValue(0); $self->{trace}->Disable; $self->{evaluate_expression}->Disable; $self->{expression}->Disable; $self->{stacktrace}->Disable; $self->{module_versions}->Disable; $self->{all_threads}->Disable; $self->{list_action}->Disable; $self->{dot}->Disable; $self->{view_around}->Disable; $self->{running_bp}->Disable; # $self->{add_watch}->Disable; # $self->{delete_watch}->Disable; $self->{raw}->Disable; $self->{watchpoints}->Disable; $self->{sub_names}->Disable; $self->{display_options}->Disable; $self->{step_in}->Hide; $self->{step_over}->Hide; $self->{step_out}->Hide; $self->{run_till}->Hide; $self->{display_value}->Hide; $self->{show_global_variables}->Disable; $self->{show_local_variables}->Disable; $self->{var_val} = {}; $self->{local_values} = {}; $self->{global_values} = {}; $self->update_variables( $self->{var_val}, $self->{local_values}, $self->{global_values} ); $self->{debug}->Show; # $self->show_debug_output(0); $main->show_debugoutput(0); return; } sub update_debug_user_interface { my $self = shift; my $output = shift; my $main = $self->main; my $module = $self->{client}->module || BLANK; $self->{client}->get_lineinfo; if ( $module eq '<TERMINATED>' ) { TRACE('TERMINATED') if DEBUG; $self->{trace_status} = 'Trace = off'; $main->{debugoutput}->debug_status( $self->{trace_status} ); $self->debug_quit; return; } if ( ! $output ) { #ToDo remove when Debug::Client 0.22 is released. if ( $self->{debug_client_version} eq '0.20' ) { $output = $self->{client}->buffer; } else { $output = $self->{client}->get_buffer; } } $main->{debugoutput}->debug_output( $output ); $self->_set_debugger; } ####### # Method debug_step_in ####### sub debug_step_in { my $self = shift; my @list_request; eval { @list_request = $self->{client}->step_in(); }; $self->update_debug_user_interface; return; } ####### # Method debug_step_over ####### sub debug_step_over { my $self = shift; my $main = $self->main; my @list_request; eval { @list_request = $self->{client}->step_over(); }; $self->update_debug_user_interface; return; } ####### # Method debug_step_out ####### sub debug_step_out { my $self = shift; my $main = $self->main; my @list_request; eval { @list_request = $self->{client}->step_out(); }; $self->update_debug_user_interface; return; } ####### # Method debug_run_till ####### sub debug_run_till { my $self = shift; my $param = shift; my $main = $self->main; my @list_request; eval { @list_request = $self->{client}->run($param); }; $self->update_debug_user_interface; return; } ####### # sub display_trace # TODO this is yuck! ####### sub _display_trace { my $self = shift; my $main = $self->main; $self->running or return; my $trace_on = ( @_ ? ( $_[0] ? 1 : 0 ) : 1 ); if ( $trace_on == 1 && $self->{trace_status} eq 'Trace = on' ) { return; } if ( $trace_on == 1 && $self->{trace_status} eq 'Trace = off' ) { # $self->{trace_status} = $self->{client}->_set_option('frame=6'); $self->{trace_status} = $self->{client}->toggle_trace(); $main->{debugoutput}->debug_status( $self->{trace_status} ); return; } if ( $trace_on == 0 && $self->{trace_status} eq 'Trace = off' ) { return; } if ( $trace_on == 0 && $self->{trace_status} eq 'Trace = on' ) { # $self->{trace_status} = $self->{client}->_set_option('frame=1'); $self->{trace_status} = $self->{client}->toggle_trace(); $main->{debugoutput}->debug_status( $self->{trace_status} ); return; } return; } ####### v1 #TODO Debug -> menu when in trunk ####### sub debug_perl_show_value { my $self = shift; my $main = $self->main; $self->running or return; my $text = $self->_debug_get_variable or return; my $value = eval { $self->{client}->get_value($text) }; if ($@) { $main->error( sprintf( Wx::gettext("Could not evaluate '%s'"), $text ) ); return; } $self->main->message("$text = $value"); return; } ####### v1 # sub _debug_get_variable $line ####### sub _debug_get_variable { my $self = shift; my $document = $self->current->document or return; my ( $location, $text ) = $document->get_current_symbol; if ( not $text or $text !~ m/^[\$@%\\]/smx ) { $self->main->error( sprintf( Wx::gettext( "'%s' does not look like a variable. First select a variable in the code and then try again."), $text ) ); return; } return $text; } ####### v1 # Method display_value ####### sub display_value { my $self = shift; $self->running or return; my $variable = $self->_debug_get_variable or return; $self->{var_val}{$variable} = BLANK; # $self->update_variables( $self->{var_val} ); $self->_output_variables; return; } ####### # Method quit ####### sub quit { my $self = shift; if ( $self->{client} ) { $self->debug_quit; } return; } ####### # Composed Method _output_variables ####### sub _output_variables { my $self = shift; my $document = $self->current->document; $self->{current_file} = $document->filename; foreach my $variable ( keys %{ $self->{var_val} } ) { my $value; eval { $value = $self->{client}->get_value($variable); }; if ($@) { #ignore error } else { my $search_text = 'Use of uninitialized value'; unless ( $value =~ m/$search_text/ ) { $self->{var_val}{$variable} = $value; } } } # only get local variables if required if ( $self->{local_variables} == 1 ) { $self->get_local_variables; } # Only enable global variables if we are debuging in a project # why dose $self->{project_dir} contain the root when no magic file present #TODO trying to stop debug X & V from crashing my @magic_files = qw { Makefile.PL Build.PL dist.ini }; my $in_project = 0; require File::Spec; foreach (@magic_files) { if ( -e File::Spec->catfile( $self->{project_dir}, $_ ) ) { $in_project = 1; } } if ($in_project) { $self->{show_global_variables}->Enable; if ( $self->{current_file} =~ m/pm$/ ) { $self->get_global_variables; } else { $self->{show_global_variables}->Disable; # get ride of stale values $self->{global_values} = {}; } } $self->update_variables( $self->{var_val}, $self->{local_values}, $self->{global_values} ); return; } ####### # Composed Method get_variables ####### sub get_local_variables { my $self = shift; my $auto_values = $self->{client}->get_y_zero; $auto_values =~ s/^([\$\@\%]\w+)/:;$1/xmg; my @auto = split m/^:;/xm, $auto_values; #remove ghost at begining shift @auto; # This is better I think, it's quicker $self->{local_values} = {}; foreach (@auto) { $_ =~ m/(.*) = (.*)/sm; if ( defined $1 ) { if ( defined $2 ) { $self->{local_values}->{$1} = $2; } else { $self->{local_values}->{$1} = BLANK; } } } return; } ####### # Composed Method get_variables ####### sub get_global_variables { my $self = shift; my $var_regex = '!(INC|ENV|SIG)'; my $auto_values = $self->{client}->get_x_vars($var_regex); $auto_values =~ s/^((?:[\$\@\%]\w+)|(?:[\$\@\%]\S+)|(?:File\w+))/:;$1/xmg; my @auto = split m/^:;/xm, $auto_values; #remove ghost at begining shift @auto; # This is better I think, it's quicker $self->{global_values} = {}; foreach (@auto) { $_ =~ m/(.*)(?: = | => )(.*)/sm; if ( defined $1 ) { if ( defined $2 ) { $self->{global_values}->{$1} = $2; } else { $self->{global_values}->{$1} = BLANK; } } } return; } ####### # Internal method _setup_db connector ####### sub _setup_db { my $self = shift; # set padre db relation $self->{debug_breakpoints} = ('Padre::DB::DebugBreakpoints'); return; } ####### # Internal Method _get_bp_db # display relation db ####### sub _get_bp_db { my $self = shift; my $editor = $self->current->editor; my $document = $self->current->document; $self->_setup_db(); $self->{project_dir} = $document->project_dir; $self->{current_file} = $document->filename; TRACE("current file from _get_bp_db: $self->{current_file}") if DEBUG; my $sql_select = 'ORDER BY filename ASC, line_number ASC'; my @tuples = $self->{debug_breakpoints}->select($sql_select); for ( 0 .. $#tuples ) { # if ( $tuples[$_][1] =~ m/^$self->{current_file}$/ ) { if ( $tuples[$_][1] eq $self->{current_file} ) { if ( $self->{client}->set_breakpoint( $tuples[$_][1], $tuples[$_][2] ) == 1 ) { $editor->MarkerAdd( $tuples[$_][2] - 1, Padre::Constant::MARKER_BREAKPOINT() ); } else { $editor->MarkerAdd( $tuples[$_][2] - 1, Padre::Constant::MARKER_NOT_BREAKABLE() ); #wright $tuples[$_][3] = 0 Padre::DB->do( 'update debug_breakpoints SET active = ? WHERE id = ?', {}, 0, $tuples[$_][0], ); } } } #TODO tidy up # no more bleading BP's for ( 0 .. $#tuples ) { if ( $tuples[$_][1] =~ m/^$self->{project_dir}/ ) { if ( $tuples[$_][1] ne $self->{current_file} ) { if ( $self->{client}->__send("f $tuples[$_][1]") !~ m/^No file matching/ ) { unless ( $self->{client}->set_breakpoint( $tuples[$_][1], $tuples[$_][2] ) ) { Padre::DB->do( 'update debug_breakpoints SET active = ? WHERE id = ?', {}, 0, $tuples[$_][0], ); } } } } } if ( $self->main->{breakpoints} ) { $self->main->{breakpoints}->on_refresh_click(); } #let's do some boot n braces $self->{client}->__send("f $self->{current_file}"); return; } ####### # Composed Method, _bp_autoload # for an autoloaded file (current) display breakpoints in editor if any ####### sub _bp_autoload { my $self = shift; my $current = $self->current; my $editor = $current->editor; my $document = $current->document; $self->_setup_db; #TODO is there a better way $self->{current_file} = $document->filename; my $sql_select = "WHERE filename = ?"; my @tuples = $self->{debug_breakpoints}->select( $sql_select, $self->{current_file} ); for ( 0 .. $#tuples ) { TRACE("show breakpoints autoload: self->{client}->set_breakpoint: $tuples[$_][1] => $tuples[$_][2]") if DEBUG; # autoload of breakpoints and mark file if ( $self->{client}->set_breakpoint( $tuples[$_][1], $tuples[$_][2] ) == 1 ) { $editor->MarkerAdd( $tuples[$_][2] - 1, Padre::Constant::MARKER_BREAKPOINT() ); } else { $editor->MarkerAdd( $tuples[$_][2] - 1, Padre::Constant::MARKER_NOT_BREAKABLE() ); #wright $tuples[$_][3] = 0 Padre::DB->do( 'update debug_breakpoints SET active = ? WHERE id = ?', {}, 0, $tuples[$_][0], ); if ( $self->main->{breakpoints} ) { $self->main->{breakpoints}->on_refresh_click(); } } } return; } ####### # Event Handler _on_list_item_selected # equivalent to p|x the varaible ####### sub _on_list_item_selected { my $self = shift; my $event = shift; my $main = $self->main; my $index = $event->GetIndex + 1; my $variable_name = $event->GetText; #ToDo Changed to use current internal hashes instead of asking perl5db for value, this also gets around a bug with 'File::HomeDir has tied variables' clobbering x @rray giving an empty array my $variable_value; my $black_size = keys %{ $self->{var_val} }; my $blue_size = keys %{ $self->{local_values} }; given ($index) { when ( $_ <= $black_size ) { $variable_value = $self->{var_val}->{$variable_name}; chomp $variable_value; $main->{debugoutput}->debug_output_black( $variable_name . ' = ' . $variable_value ); } when ( $_ <= ( $black_size + $blue_size ) ) { $variable_value = $self->{local_values}->{$variable_name}; chomp $variable_value; $main->{debugoutput}->debug_output_blue( $variable_name . ' = ' . $variable_value ); } default { $variable_value = $self->{global_values}->{$variable_name}; chomp $variable_value; $main->{debugoutput}->debug_output_dark_gray( $variable_name . ' = ' . $variable_value ); } } return; } ############################################### # event handler top row ####### # sub on_debug_clicked ####### sub on_debug_clicked { my $self = shift; $self->debug_perl; $self->update_debugger_buttons_on; } ####### # sub update_debugger_buttons_on ####### sub update_debugger_buttons_on { my $self = shift; my $arg_ref = shift; my $main = $self->main; return unless $self->{client}; $self->{quit_debugger}->Enable; # $self->show_debug_output(1); $main->show_debugoutput(1); $self->{step_in}->Show; $self->{step_over}->Show; $self->{step_out}->Show; $self->{run_till}->Show; $self->{display_value}->Show; $self->{show_local_variables}->Enable; $self->{trace}->Enable; $self->{evaluate_expression}->Enable; $self->{expression}->Enable; $self->{stacktrace}->Enable; $self->{module_versions}->Enable; $self->{all_threads}->Enable; $self->{list_action}->Enable; $self->{dot}->Enable; $self->{view_around}->Enable; $self->{running_bp}->Enable; # $self->{add_watch}->Enable; # $self->{delete_watch}->Enable; $self->{raw}->Enable; $self->{watchpoints}->Enable; $self->{sub_names}->Enable; $self->{display_options}->Enable; $self->{debug}->Hide; $main->aui->Update; if ( $main->{debugoutput} ) { $main->{debugoutput}->debug_output( $self->{client}->get_h_var('h') ); if ($arg_ref) { $main->{debugoutput}->debug_launch_options('To see all Debug Launch Parameters see menu'); } } #let's reload our breakpoints # $self->_get_bp_db(); $self->{set_bp} = 0; return; } ####### # sub step_in_clicked ####### sub on_step_in_clicked { my $self = shift; TRACE('step_in_clicked') if DEBUG; $self->debug_step_in(); return; } ####### # sub step_over_clicked ####### sub on_step_over_clicked { my $self = shift; TRACE('step_over_clicked') if DEBUG; $self->debug_step_over(); return; } ####### # sub step_out_clicked ####### sub on_step_out_clicked { my $self = shift; TRACE('step_out_clicked') if DEBUG; $self->debug_step_out(); return; } ####### # sub run_till_clicked ####### sub on_run_till_clicked { my $self = shift; TRACE('run_till_clicked') if DEBUG; $self->debug_run_till(); return; } ####### # sub display_value ####### sub on_display_value_clicked { my $self = shift; TRACE('display_value') if DEBUG; $self->display_value(); return; } ####### # sub quit_debugger_clicked ####### sub on_quit_debugger_clicked { my $self = shift; my $main = $self->main; TRACE('quit_debugger_clicked') if DEBUG; $self->debug_quit; $main->show_debugoutput(0); return; } ############################################### # show ####### # event on_show_local_variables_checked ####### sub on_show_local_variables_checked { my ( $self, $event ) = @_; if ( $event->IsChecked ) { $self->{local_variables} = 1; } else { $self->{local_variables} = 0; } $self->_output_variables; return; } ####### # event on_show_global_variables_checked ####### sub on_show_global_variables_checked { my ( $self, $event ) = @_; if ( $event->IsChecked ) { $self->{global_variables} = 1; } else { $self->{global_variables} = 0; } $self->_output_variables; return; } ################################################# # Output Options ####### # sub trace_clicked ####### sub on_trace_checked { my ( $self, $event ) = @_; if ( $event->IsChecked ) { $self->_display_trace(1); } else { $self->_display_trace(0); } return; } ####### # Event on_dot_clicked . ####### sub on_dot_clicked { my $self = shift; my $main = $self->main; $main->{debugoutput}->debug_output( $self->{client}->show_line() ); #reset editor to dot location $self->_set_debugger; return; } ####### # Event on_view_around_clicked v ####### sub on_view_around_clicked { my $self = shift; my $main = $self->main; $main->{debugoutput}->debug_output( $self->{client}->show_view() ); return; } ####### # Event handler on_list_action_clicked L ####### sub on_list_action_clicked { my $self = shift; my $main = $self->main; $main->{debugoutput}->debug_output( $self->{client}->show_breakpoints() ); return; } ####### # Event handler on_running_bp_set_clicked b|B ####### sub on_running_bp_clicked { my $bp_action_ref = Padre::Breakpoints->set_breakpoints_clicked; return; } sub update_debugger_breakpoint { my $self = shift; my $bp_action_ref = shift; my $main = $self->main; my $editor = $self->current->editor; my $document = $self->current->document; $self->{current_file} = $document->filename; if ( $self->{client} ) { if ( $bp_action_ref->{action} eq 'add' ) { my $result = $self->{client}->set_breakpoint( $self->{current_file}, $bp_action_ref->{line} ); if ( $result == 0 ) { # print "not breakable\n"; $editor->MarkerAdd( $bp_action_ref->{line} - 1, Padre::Constant::MARKER_NOT_BREAKABLE() ); $self->_setup_db; Padre::DB->do( 'update debug_breakpoints SET active = ? WHERE filename = ? AND line_number = ?', {}, 0, $self->{current_file}, $bp_action_ref->{line}, ); if ( $self->main->{breakpoints} ) { $self->main->{breakpoints}->on_refresh_click(); } } } if ( $bp_action_ref->{action} eq 'delete' ) { $self->{client}->remove_breakpoint( $self->{current_file}, $bp_action_ref->{line} ); } $main->{debugoutput}->debug_output( $self->{client}->__send('L b') ); } return; } ####### # Event handler on_module_versions_clicked M ####### sub on_module_versions_clicked { my $self = shift; my $main = $self->main; $main->{debugoutput}->debug_output( $self->{client}->__send('M') ); return; } ####### # Event handler on_stacktrace_clicked T ####### sub on_stacktrace_clicked { my $self = shift; my $main = $self->main; $main->{debugoutput}->debug_output( $self->{client}->get_stack_trace ); return; } ####### # Event handler on_all_threads_clicked E ####### sub on_all_threads_clicked { my $self = shift; my $main = $self->main; $main->{debugoutput}->debug_output( $self->{client}->__send_np('E') ); return; } ####### # Event handler on_display_options_clicked o ####### sub on_display_options_clicked { my $self = shift; my $main = $self->main; $main->{debugoutput}->debug_output( $self->{client}->get_options ); return; } ####### # Event handler on_evaluate_expression_clicked p|x ####### sub on_evaluate_expression_clicked { my $self = shift; my $main = $self->main; if ( $self->{client}->get_stack_trace =~ /ANON/ ) { $main->{debugoutput}->debug_output( ' You appear to be inside an __ANON__, suggest you use "Show Local Variables" to view contents'); return; } if ( $self->{expression}->GetValue() eq "" ) { $main->{debugoutput}->debug_output( '$_ = ' . $self->{client}->get_value ); } else { $main->{debugoutput}->debug_output( $self->{expression}->GetValue . " = " . $self->{client}->get_value( $self->{expression}->GetValue ) ); } return; } ####### # Event handler on_sub_names_clicked S ####### sub on_sub_names_clicked { my $self = shift; my $main = $self->main; $main->{debugoutput}->debug_output( $self->{client}->list_subroutine_names( $self->{expression}->GetValue ) ); return; } ####### # Event handler on_watchpoints_clicked w|W ####### sub on_watchpoints_clicked { my $self = shift; my $main = $self->main; if ( $self->{expression}->GetValue ne "" ) { if ( $self->{expression}->GetValue eq "*" ) { $main->{debugoutput}->debug_output( $self->{client}->__send( 'W ' . $self->{expression}->GetValue ) ); return; } # this is nasty, there must be a better way my $exp = "\\" . $self->{expression}->GetValue; if ( $self->{client}->__send('L w') =~ m/$exp/gm ) { my $del_watch = $self->{client}->__send( 'W ' . $self->{expression}->GetValue ); if ($del_watch) { $main->{debugoutput}->debug_output($del_watch); } else { $main->{debugoutput}->debug_output( $self->{client}->__send('L w') ); } return; } else { $self->{client}->__send( 'w ' . $self->{expression}->GetValue ); $main->{debugoutput}->debug_output( $self->{client}->__send('L w') ); return; } } else { $main->{debugoutput}->debug_output( $self->{client}->__send('L w') ); } return; } ####### # Event handler on_raw_clicked raw ####### sub on_raw_clicked { my $self = shift; my $main = $self->main; my $output; if ( $self->{expression}->GetValue =~ m/^h.?(\w*)/s ) { $output = $self->{client}->get_h_var($1) ; } else { $output = $self->{client}->__send_np( $self->{expression}->GetValue ); } $self->update_debug_user_interface($output); return; } ####### # Event handler on_stacktrace_clicked i ####### # sub on_nested_parents_clicked { # my $self = shift; # my $main = $self->main; # # $main->{debugoutput}->debug_output( $self->{client}->__send('i') ); # # return; # } ####### # Event handler on_running_bp_delete_clicked B ####### # sub on_running_bp_delete_clicked { # my $self = shift; # # return; # } ####### # Event handler on_add_watch_clicked w ####### # sub on_add_watch_clicked { # my $self = shift; # my $main = $self->main; # # if ( $self->{expression}->GetValue() ne "" ) { # # $main->{debugoutput}->debug_output( $self->{client}->__send( 'w ' . $self->{expression}->GetValue() ) ); # } # # #reset expression # $self->expression->SetValue(BLANK); # return; # } ####### # Event handler on_delete_watch_clicked W ####### # sub on_delete_watch_clicked { # my $self = shift; # my $main = $self->main; # # if ( $self->{expression}->GetValue() ne "" ) { # # $main->{debugoutput}->debug_output( $self->{client}->__send( 'W ' . $self->{expression}->GetValue() ) ); # } # # #reset expression # $self->expression->SetValue(BLANK); # return; # } ####### # Event handler on_launch_options - launch the debugger over-riding its auto-choices ####### sub on_launch_options { my $self = shift; my $main = $self->main; my $current = $self->current; my $document = $current->document; my $editor = $current->editor; my $filename; if ( defined $document->{file} ) { $filename = $document->{file}->filename; } # TODO: improve the message displayed to the user # If the document is not saved, simply return for now return unless $filename; my ( $cmd, $arg_ref ) = $document->get_command( { debug => 1 } ); require Padre::Wx::Dialog::DebugOptions; my $dialog = Padre::Wx::Dialog::DebugOptions->new( $main, ); $dialog->perl_interpreter->SetValue( $arg_ref->{perl} ); $dialog->perl_args->SetValue( $arg_ref->{perl_args} ); $dialog->find_script->SetValue( $arg_ref->{script} ); $dialog->run_directory->SetValue( $arg_ref->{run_directory} ); $dialog->script_options->SetValue( $arg_ref->{script_args} ); $dialog->find_script->SetFocus; if ( $dialog->ShowModal == Wx::ID_CANCEL ) { return; } $arg_ref->{perl} = $dialog->perl_interpreter->GetValue(); $arg_ref->{perl_args} = $dialog->perl_args->GetValue(); $arg_ref->{script} = $dialog->find_script->GetValue(); $arg_ref->{run_directory} = $dialog->run_directory->GetValue(); $arg_ref->{script_args} = $dialog->script_options->GetValue(); $dialog->Destroy; #save history for next time (when we might just hit run! { my $history = $main->lock( 'DB', 'refresh_recent' ); #save which script the user selected to run for this document Padre::DB::History->create( type => "run_script_" . File::Basename::fileparse($filename), name => $arg_ref->{script}, ); my $script_base = File::Basename::fileparse( $arg_ref->{script} ); Padre::DB::History->create( type => 'run_directory_' . $script_base, name => $arg_ref->{run_directory}, ); Padre::DB::History->create( type => "run_script_args_" . $script_base, name => $arg_ref->{script_args}, ); Padre::DB::History->create( type => "run_perl_" . $script_base, name => $arg_ref->{perl}, ); Padre::DB::History->create( type => "run_perl_args_" . $script_base, name => $arg_ref->{perl_args}, ); } #now run the debugger with the new command $self->debug_perl($arg_ref); # p $arg_ref; $self->update_debugger_buttons_on($arg_ref); return; } 1; __END__ =pod =head1 NAME Padre::Plugin::Debug::Panel::Debugger - Interface to the Perl debugger. =head1 DESCRIPTION Padre::Wx::Debugger provides a wrapper for the generalised L<Debug::Client>. It should really live at Padre::Debugger, but does not currently have sufficient abstraction from L<Wx>. =head1 METHODS =head2 new Simple constructor. =head2 debug_perl $main->debug_perl; Run current document under Perl debugger. An error is reported if current is not a Perl document. Returns true if debugger successfully started. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Panel/FoundInFiles.pm�������������������������������������������������������0000644�0001750�0001750�00000024317�12237327555�017304� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Panel::FoundInFiles; # Class for the output window at the bottom of Padre that is used to display # results from Find in Files searches. use 5.008; use strict; use warnings; use File::Spec (); use Params::Util (); use Padre::Wx (); use Padre::Role::Task (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Context (); use Padre::Wx::FBP::FoundInFiles (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Idle Padre::Wx::Role::View Padre::Wx::Role::Context Padre::Wx::FBP::FoundInFiles }; ###################################################################### # Constructor sub new { my $class = shift; my $main = shift; my $panel = shift || $main->bottom; my $self = $class->SUPER::new($panel); # Create the image list my $tree = $self->{tree}; my $images = Wx::ImageList->new( 16, 16 ); $self->{images} = { folder => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_FOLDER', 'wxART_OTHER_C', [ 16, 16 ], ), ), file => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_NORMAL_FILE', 'wxART_OTHER_C', [ 16, 16 ], ), ), result => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_GO_FORWARD', 'wxART_OTHER_C', [ 16, 16 ], ), ), }; $tree->AssignImageList($images); # Create the render data store and timer $self->{search} = undef; $self->{search_task} = undef; $self->{search_queue} = []; $self->{search_timer_id} = Wx::NewId(); $self->{search_timer} = Wx::Timer->new( $self, $self->{search_timer_id}, ); Wx::Event::EVT_TIMER( $self, $self->{search_timer_id}, sub { $self->search_timer( $_[1], $_[2] ); }, ); Wx::Event::EVT_TREE_ITEM_ACTIVATED( $self, $self->{tree}, sub { $_[0]->idle_method( item_clicked => $_[1]->GetItem, ); }, ); # $self->context_bind; # Initialise statistics $self->{files} = 0; $self->{matches} = 0; return $self; } ###################################################################### # Event Handlers # Called when the "Stop search" button is clicked sub stop_clicked { my $self = shift; $self->task_reset; $self->{stop}->Disable; } # Called when the "Repeat" button is clicked sub repeat_clicked { my $self = shift; # Stop any existing search $self->stop_clicked(@_); # Run the previous search again my $search = $self->{search} or return; $self->search(%$search); } # Called when the "Expand all" button is clicked sub expand_all_clicked { my $self = shift; my $tree = $self->{tree}; my $lock = $tree->lock_scroll; my $root = $tree->GetRootItem; my ( $child, $cookie ) = $tree->GetFirstChild($root); while ( $child->IsOk ) { $tree->Expand($child); ( $child, $cookie ) = $tree->GetNextChild( $root, $cookie ); } $self->{expand_all}->Disable; $self->{collapse_all}->Enable; } # Called when the "Collapse all" button is clicked sub collapse_all_clicked { my $self = shift; my $tree = $self->{tree}; my $lock = $tree->lock_scroll; my $root = $tree->GetRootItem; my ( $child, $cookie ) = $tree->GetFirstChild($root); while ( $child->IsOk ) { $tree->Collapse($child); ( $child, $cookie ) = $tree->GetNextChild( $root, $cookie ); } $self->{expand_all}->Enable; $self->{collapse_all}->Disable; } ###################################################################### # Padre::Role::Task Methods sub task_reset { TRACE( $_[0] ) if DEBUG; my $self = shift; # Reset any timers used by task message processing $self->{search_task} = undef; $self->{search_queue} = []; $self->{search_timer}->Stop; # Reset normally as well $self->SUPER::task_reset(@_); } ###################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; $self->context_append_options( $menu => 'main_foundinfiles_panel' ); return; } ###################################################################### # Search Methods sub search { my $self = shift; my %param = @_; # If we are given a root and no project, and the root path # is precisely the root of a project, switch so that the search # will automatically pick up the manifest/skip rules for it. if ( defined $param{root} and not exists $param{project} ) { my $project = $self->ide->project_manager->project( $param{root} ); $param{project} = $project if $project; } # Save a copy of the search in case we want to repeat it $self->{search} = {%param}; # Kick off the search task $self->task_reset; $self->task_request( task => 'Padre::Task::FindInFiles', on_run => 'search_run', on_message => 'search_message', on_finish => 'search_finish', %param, ); # After a previous search with many results the clear method can be # relatively slow, so instead of calling it first, delay calling it # until after we have dispatched the search to the worker thread. $self->clear; $self->{tree}->AddRoot('Root'); $self->{status}->SetLabel( sprintf( Wx::gettext(q{Searching for '%s' in '%s'...}), $param{search}->find_term, $param{root}, ) ); # Start the render timer $self->{search_timer}->Start(250); # Enable the stop button $self->{stop}->Enable; return 1; } sub search_run { TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = shift; $self->{search_task} = $task; } sub search_message { # TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = shift; push @{ $self->{search_queue} }, [@_]; } sub search_timer { # TRACE( $_[0] ) if DEBUG; $_[0]->search_render; } sub search_finish { TRACE( $_[0] ) if DEBUG; my $self = shift; # Render any final results $self->{search_timer}->Stop; $self->search_render; # Display the summary my $task = delete $self->{search_task} or return; my $term = $task->{search}->find_term; my $dir = $task->{root}; my $tree = $self->{tree}; if ( $self->{files} ) { $self->{status}->SetLabel( sprintf( Wx::gettext(q{Search complete, found '%s' %d time(s) in %d file(s) inside '%s'}), $term, $self->{matches}, $self->{files}, $task->{root}, ) ); # Only enable collapse all when we have results $self->{collapse_all}->Enable; } else { $self->{status}->SetLabel( sprintf( Wx::gettext(q{No results found for '%s' inside '%s'}), $term, $task->{root}, ) ); } # Clear support variables $self->task_reset; # Enable repeat and disable stop $self->{repeat}->Enable; $self->{stop}->Disable; return 1; } sub search_render { TRACE( $_[0] ) if DEBUG; my $self = shift; my $tree = $self->{tree}; my $root = $tree->GetRootItem; my $task = $self->{search_task} or return; my $queue = $self->{search_queue}; return unless @$queue; # Added to avoid crashes when calling methods on path objects require Padre::Wx::Directory::Path; # Add the file nodes to the tree my $images = $self->{images}; my $lock = $tree->lock_scroll; foreach my $entry (@$queue) { my $path = shift @$entry; my $name = $path->name; my $dir = File::Spec->catfile( $task->root, $path->dirs ); my $full = File::Spec->catfile( $task->root, $path->path ); my $image = $images->{file}; my $lines = scalar @$entry; if ( $lines > 1 ) { $full = sprintf( Wx::gettext('%s (%s results)'), $full, $lines, ); } # Add the item to the tree my $item = $tree->AppendItem( $root, $full, $image ); $tree->SetPlData( $item, { dir => $dir, file => $name, } ); # Add the lines nodes to the tree foreach my $row (@$entry) { # Tabs don't display properly my $msg = $row->[1]; $msg =~ s/\t/ /g; my $line = $tree->AppendItem( $item, "$row->[0]: $msg", $self->{images}->{result}, ); $tree->SetPlData( $line, { dir => $dir, file => $name, line => $row->[0], text => $row->[1], } ); } # Expand nodes $tree->Expand($root) unless $self->{files}; $tree->Expand($item); # Update statistics $self->{matches} += $lines; $self->{files} += 1; } # Flush the pending queue $self->{search_queue} = []; return 1; } # Opens the file at the correct line position # If no line is given, the function just opens the file # and sets the focus to it. sub open_file_at_line { my $self = shift; my $file = shift; my $main = $self->main; return unless -f $file; # Try to open the file now my $editor; if ( defined( my $page_id = $main->editor_of_file($file) ) ) { $editor = $main->notebook->GetPage($page_id); } else { $main->setup_editor($file); if ( defined( my $page_id = $main->editor_of_file($file) ) ) { $editor = $main->notebook->GetPage($page_id); } } # Center the current position on the found result's line if an editor is found. $editor->goto_line_centerize(@_) if @_; $editor->SetFocus; return; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'bottom'; } sub view_label { Wx::gettext('Find in Files'); } sub view_close { my $self = shift; $self->task_reset; $self->main->show_foundinfiles(0); $self->clear; } ##################################################################### # General Methods # Handle the clicking of a find result sub item_clicked { my $self = shift; my $item = shift; my $tree = $self->{tree}; my $data = $tree->GetPlData($item) or return; my $dir = $data->{dir} or return; my $file = $data->{file} or return; my $path = File::Spec->catfile( $dir, $file ); if ( defined $data->{line} ) { my $line = $data->{line} - 1; my $text = $data->{text}; $self->open_file_at_line( $path, $line, $text ); } else { $self->open_file_at_line($path); } } sub select { my $self = shift; my $parent = $self->GetParent; $parent->SetSelection( $parent->GetPageIndex($self) ); return; } sub clear { my $self = shift; my $lock = $self->{tree}->lock_scroll; $self->{files} = 0; $self->{matches} = 0; $self->{repeat}->Disable; $self->{expand_all}->Disable; $self->{collapse_all}->Disable; $self->{tree}->DeleteAllItems; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Panel/FindFast.pm�����������������������������������������������������������0000644�0001750�0001750�00000013071�12237327555�016450� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Panel::FindFast; use 5.008; use strict; use warnings; use Padre::Search (); use Padre::Wx::FBP::FindFast (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::FindFast'; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Immediately hide the panel to prevent display glitching $self->Hide; # Create a private pane in AUI $self->main->aui->AddPane( $self, Padre::Wx->aui_pane_info( Name => 'footer', PaneBorder => 0, Resizable => 1, CaptionVisible => 0, Layer => 1, PaneBorder => 0, )->Bottom->Hide, ); return $self; } ###################################################################### # Event Handlers sub on_char { my $self = shift; my $event = shift; unless ( $event->HasModifiers ) { my $key = $event->GetKeyCode; # Advance to the next match on enter if ( $key == Wx::K_RETURN ) { TRACE('on_char (return)') if DEBUG; if ( $self->{find_next}->IsEnabled ) { $self->search_next; } return $event->Skip(0); } # Return to the editor on escape if ( $key == Wx::K_ESCAPE ) { TRACE('on_char (escape)') if DEBUG; $self->cancel; return $event->Skip(0); } } $event->Skip(1); } sub on_text { TRACE('on_text') if DEBUG; my $self = shift; my $editor = $self->current->editor or return; my $lock = $self->lock_update; # Do we have a search if ( $self->refresh ) { # Reset the background colour $self->{find_term}->SetBackgroundColour( $self->base_colour ); } else { # Clear any existing select to prevent # showing a stale match result. my $position = $editor->GetCurrentPos; my $anchor = $editor->GetAnchor; unless ( $position == $anchor ) { $editor->SetAnchor($position); } return; } # Restart the search for each change unless ( $self->{find_term}->GetValue eq $editor->GetSelectedText ) { $editor->SetSelection( 0, 0 ); } # Run the search unless ( $self->main->search_next( $self->as_search ) ) { $self->{find_term}->SetBackgroundColour( $self->bad_colour ); } return; } sub on_kill_focus { my $self = shift; $self->hide; } sub cancel { TRACE('cancel') if DEBUG; my $self = shift; # Go back to where we were before if there is no match on close $self->restore; delete $self->{before}; # Shift focus to the editor $self->main->editor_focus; $self->hide; } sub restore { TRACE('restore') if DEBUG; my $self = shift; my $before = $self->{before} or return; my $editor = $self->current->editor or return; $editor->GetCurrentPos == $editor->GetAnchor or return; $editor->GetLineCount == $before->{lines} or return; # Set the selection my $lock = $editor->lock_update; $editor->SetCurrentPos( $before->{pos} ); $editor->SetAnchor( $before->{anchor} ); # Scroll to get the selection to the original position unless ( $editor->GetFirstDocumentLine == $before->{first} ) { $editor->ScrollToLine( $before->{first} ); } return 1; } # Start a fresh search with some text sub search_start { TRACE('search_start') if DEBUG; my $self = shift; my $text = shift; my $lock = $self->lock_update; $self->{find_term}->SetValue($text); $self->{find_term}->SelectAll; return; } # Advance the search to the next match sub search_next { TRACE('search_next') if DEBUG; my $self = shift; my $search = $self->as_search or return; my $editor = $self->current->editor or return; $self->main->search_next($search); } # Advance the search to the previous match sub search_previous { TRACE('search_previous') if DEBUG; my $self = shift; my $search = $self->as_search or return; my $editor = $self->current->editor or return; $self->main->search_previous($search); } ###################################################################### # Main Methods sub show { my $self = shift; my $editor = $self->current->editor or return; # Capture the selection location before we opened the panel $self->{before} = { lines => $editor->GetLineCount, pos => $editor->GetCurrentPos, anchor => $editor->GetAnchor, first => $editor->GetFirstDocumentLine, }; # Reset the panel $self->{find_term}->ChangeValue(''); $self->{find_term}->SetBackgroundColour( $self->base_colour ); $self->{find_term}->SetFocus; $self->refresh; # Show the AUI pane my $aui = $self->main->aui; $aui->GetPane('footer')->Show; $aui->Update; } sub hide { my $self = shift; my $aui = $self->main->aui; # Hide the AUI pane $aui->GetPane('footer')->Hide; $aui->Update; } sub refresh { my $self = shift; my $show = $self->as_search ? 1 : 0; $self->{find_next}->Enable($show); $self->{find_previous}->Enable($show); return $show; } ###################################################################### # Support Methods sub as_search { my $self = shift; Padre::Search->new( find_term => $self->{find_term}->GetValue, find_case => 0, ); } sub lock_update { my $self = shift; my $lock = Wx::WindowUpdateLocker->new( $self->{find_term} ); my $editor = $self->current->editor; if ($editor) { $lock = [ $lock, $editor->lock_update ]; } return $lock; } sub base_colour { Wx::SystemSettings::GetColour(Wx::SYS_COLOUR_WINDOW); } sub bad_colour { my $self = shift; my $base = $self->base_colour; return Wx::Colour->new( $base->Red, int( $base->Green * 0.5 ), int( $base->Blue * 0.5 ), ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Panel/Breakpoints.pm��������������������������������������������������������0000644�0001750�0001750�00000022765�12237327555�017245� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Panel::Breakpoints; use 5.010; use strict; use warnings; use Padre::Util (); use Padre::Breakpoints (); use Padre::Wx (); use Padre::Wx::Util (); use Padre::Wx::Icon (); use Padre::Wx::Role::View (); use Padre::Wx::FBP::Breakpoints (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::View Padre::Wx::FBP::Breakpoints }; use constant { RED => Wx::Colour->new('red'), DARK_GREEN => Wx::Colour->new( 0x00, 0x90, 0x00 ), BLUE => Wx::Colour->new('blue'), GRAY => Wx::Colour->new('gray'), DARK_GRAY => Wx::Colour->new( 0x7f, 0x7f, 0x7f ), BLACK => Wx::Colour->new('black'), }; ####### # new ####### sub new { my $class = shift; my $main = shift; my $panel = shift || $main->left; # Create the panel my $self = $class->SUPER::new($panel); $main->aui->Update; $self->set_up; return $self; } ############### # Make Padre::Wx::Role::View happy ############### sub view_panel { 'left'; } sub view_label { Wx::gettext('Breakpoints'); } sub view_close { $_[0]->main->show_breakpoints(0); } sub view_icon { Padre::Wx::Icon::find('actions/morpho3'); } sub view_start { my $self = shift; # Add the margins for the syntax markers foreach my $editor ( $self->main->editors ) { $editor->SetMarginWidth( 1, 16 ); } return; } sub view_stop { my $self = shift; # my $lock = $self->lock_update; # Remove the editor margins # foreach my $editor ( $self->main->editors ) { # $editor->SetMarginWidth( 1, 0 ); # } return; } ############### # Make Padre::Wx::Role::View happy end ############### ####### # Method set_up ####### sub set_up { my $self = shift; $self->{breakpoints_visable} = 0; # Setup the debug button icons $self->{refresh}->SetBitmapLabel( Padre::Wx::Icon::find('actions/view-refresh') ); $self->{refresh}->Enable; $self->{delete_not_breakable}->SetBitmapLabel( Padre::Wx::Icon::find('actions/window-close') ); $self->{delete_not_breakable}->Enable; $self->{set_breakpoints}->SetBitmapLabel( Padre::Wx::Icon::find('actions/breakpoints') ); $self->{set_breakpoints}->Enable; $self->{delete_project_bp}->SetBitmapLabel( Padre::Wx::Icon::find('actions/x-document-close') ); $self->{delete_project_bp}->Disable; # Update the checkboxes with their corresponding values in the # configuration $self->{show_project}->SetValue(0); $self->{show_project} = 0; $self->_setup_db; # TODO Active should be droped, just on show for now # Setup columns names, Active should be droped, just and order here # my @column_headers = qw( Path Line Active ); do not remove my @column_headers = qw( Path Line ); my $index = 0; for my $column_header (@column_headers) { $self->{list}->InsertColumn( $index++, Wx::gettext($column_header) ); } # Tidy the list Padre::Wx::Util::tidy_list( $self->{list} ); #ToDo I am prat, tidy_headers is for ListView not ListCtrl, need to ask alias # $self->{list}->tidy_headers; return; } ########################## # Event Handlers ####### # event handler delete_not_breakable_clicked ####### sub on_delete_not_breakable_clicked { my $self = shift; my $lock = $self->main->lock('DB'); my $editor = $self->current->editor; my $sql_where = "filename = ? AND active = 0"; my @tuples = $self->{debug_breakpoints}->select( "where $sql_where", $self->{current_file}, ); for ( 0 .. $#tuples ) { # say 'delete me'; $editor->MarkerDelete( $tuples[$_][2] - 1, Padre::Constant::MARKER_BREAKPOINT() ); $editor->MarkerDelete( $tuples[$_][2] - 1, Padre::Constant::MARKER_NOT_BREAKABLE() ); } $self->{debug_breakpoints}->delete_where( $sql_where, $self->{current_file}, ); $self->_update_list; return; } ####### # event handler on_refresh_click ####### sub on_refresh_click { my $self = shift; my $document = $self->current->document || return; return if $document->mimetype ne 'application/x-perl'; $self->{project_dir} = $document->project_dir; $self->{current_file} = $document->filename; $self->_update_list; return; } ####### # event handler breakpoint_clicked ####### sub on_set_breakpoints_clicked { my $self = shift; my $current = $self->current; my $document = $current->document; if ( $document->mimetype !~ m/perl/ ) { return; } #add / remove the breakpoint on the current line my $bp_action = Padre::Breakpoints->set_breakpoints_clicked; return $bp_action; } ####### # event handler on_show_project_click ####### sub on_show_project_click { my ( $self, $event ) = @_; if ( $event->IsChecked ) { $self->{show_project} = 1; $self->{delete_project_bp}->Enable; } else { $self->{show_project} = 0; $self->{delete_project_bp}->Disable; } $self->on_refresh_click; return; } ####### # event handler delete_project_bp_clicked ####### sub on_delete_project_bp_clicked { my $self = shift; my $lock = $self->main->lock('DB'); my $editor = $self->current->editor; my @tuples = $self->{debug_breakpoints}->select( 'ORDER BY filename ASC', ); for ( 0 .. $#tuples ) { if ( $tuples[$_][1] =~ m/^ $self->{project_dir} /sxm ) { $editor->MarkerDelete( $tuples[$_][2] - 1, Padre::Constant::MARKER_BREAKPOINT() ); $editor->MarkerDelete( $tuples[$_][2] - 1, Padre::Constant::MARKER_NOT_BREAKABLE() ); $self->{debug_breakpoints}->delete_where( "filename = ?", $tuples[$_][1], ); } } $self->on_refresh_click; return; } ####### # Event Handler _on_list_item_selected # equivalent to p|x the varaible ####### sub _on_list_item_selected { my $self = shift; my $event = shift; my $current = $self->current; my $editor = $current->editor or return; my $main = $self->main; my $index = $event->GetIndex; # zero based my $variable_name = $event->GetText; my $file = $self->{project_dir} . $variable_name or return; my $row = $self->{line_numbers}[$index] or return; # Open the file if needed if ( $editor->{Document}->filename ne $file ) { $main->setup_editor($file); $editor = $main->current->editor; if ( $self->main->{breakpoints} ) { $self->main->{breakpoints}->on_refresh_click; } } $editor->goto_line_centerize( $row - 1 ); $self->_update_list; return; } ############### # Debug Breakpoint DB ######## # internal method _setup_db connector ####### sub _setup_db { my $self = shift; # set padre db relation $self->{debug_breakpoints} = ('Padre::DB::DebugBreakpoints'); return; } ####### # internal method _add_bp_db ####### sub _add_bp_db { my $self = shift; $self->{debug_breakpoints}->create( filename => $self->{current_file}, line_number => $self->{current_line}, active => $self->{bp_active}, last_used => time(), ); return; } ####### # internal method _delete_bp_db ####### sub _delete_bp_db { my $self = shift; $self->{debug_breakpoints}->delete_where( "filename = ? AND line_number = ?", $self->{current_file}, $self->{current_line}, ); return; } ####### # Composed Method, # display any relation db ####### sub _update_list { my $self = shift; my $editor = $self->current->editor; # Clear ListCtrl items $self->{list}->DeleteAllItems; # my $sql_select = 'ORDER BY filename DESC, line_number DESC'; my $sql_select = 'ORDER BY filename ASC, line_number ASC'; my @tuples = $self->{debug_breakpoints}->select($sql_select); $self->{line_numbers} = []; my $index = 0; my $item = Wx::ListItem->new; my $project_dir = $self->{project_dir}; my $current_file = $self->{current_file}; if ( $^O eq 'MSWin32') { $project_dir =~ s/\\/\\\\/g; $current_file =~ s/\\/\\\\/g; } for ( 0 .. $#tuples ) { if ( $tuples[$_][1] =~ m/^ $project_dir /sxm ) { if ( $tuples[$_][1] =~ m/ $current_file $/sxm ) { $item->SetId($index); $self->{list}->InsertItem($item); if ( $tuples[$_][3] == 1 ) { $self->{list}->SetItemTextColour( $index, BLUE ); $editor->MarkerAdd( $tuples[$_][2] - 1, Padre::Constant::MARKER_BREAKPOINT() ); } else { $self->{list}->SetItemTextColour( $index, DARK_GRAY ); $editor->MarkerAdd( $tuples[$_][2] - 1, Padre::Constant::MARKER_NOT_BREAKABLE() ); } $self->{list}->SetItem( $index, 1, ( $tuples[$_][2] ) ); $tuples[$_][1] =~ s/^ $project_dir //sxm; $self->{list}->SetItem( $index, 0, ( $tuples[$_][1] ) ); $self->{line_numbers}[$index] = $tuples[$_][2]; #Do not remove comment, just on show for now, do not remove # $self->{list}->SetItem( $index++, 2, ( $tuples[$_][3] ) ); $index++; } if ( $self->{show_project} == 1 ) { # we need to switch around due to previously stripping project_dir if ( $current_file !~ m/ $tuples[$_][1] $/sxm ) { $item->SetId($index); $self->{list}->InsertItem($item); $self->{list}->SetItemTextColour( $index, DARK_GREEN ); if ( $tuples[$_][3] == 0 ) { $self->{list}->SetItemTextColour( $index, DARK_GRAY ); } $self->{list}->SetItem( $index, 1, ( $tuples[$_][2] ) ); $tuples[$_][1] =~ s/^ $project_dir //sxm; $self->{list}->SetItem( $index, 0, ( $tuples[$_][1] ) ); $self->{line_numbers}[$index] = $tuples[$_][2]; #Do not remove comment, just on show for now, do not remove # $self->{list}->SetItem( $index++, 2, ( $tuples[$_][3] ) ); $index++; } } } Padre::Wx::Util::tidy_list( $self->{list} ); } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������Padre-1.00/lib/Padre/Wx/Frame/����������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014375� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Frame/Null.pm���������������������������������������������������������������0000644�0001750�0001750�00000001047�12237327555�015657� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Frame::Null; # This is an empty null frame primarily designed to serve as a # Wx::PlThreadEvent conduit in the thread slave master mechanism. use 5.008; use strict; use warnings; use Wx (); use Padre::Wx::Role::Conduit (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Conduit Wx::Frame }; 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Frame/HTML.pm���������������������������������������������������������������0000644�0001750�0001750�00000003403�12237327555�015507� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Frame::HTML; # Provides a base class for dialogs that are built using dynamic HTML use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::HtmlWindow (); our $VERSION = '1.00'; our @ISA = 'Wx::Frame'; sub new { my $class = shift; # Get the params, and apply defaults my %param = ( parent => undef, id => -1, style => Wx::DEFAULT_FRAME_STYLE, title => '', pos => [ -1, -1 ], size => [ -1, -1 ], @_, ); # Create the dialog object my $self = $class->SUPER::new( $param{parent}, $param{id}, $param{title}, $param{pos}, $param{size}, $param{style}, ); %$self = %param; # Create the panel to hold the HTML widget $self->{panel} = Wx::Panel->new( $self, -1 ); $self->{sizer} = Wx::GridSizer->new( 1, 1, 10, 10 ); # Add the HTML renderer to the frame $self->{renderer} = Padre::Wx::HtmlWindow->new( $self->{panel}, -1, [ -1, -1 ], [ -1, -1 ], Wx::HW_NO_SELECTION, ); $self->{renderer}->SetBorders(0); $self->{sizer}->Add( $self->{renderer}, 1, # Growth proportion Wx::EXPAND, 5, # Border size ); # Tie the sizing to the panel $self->{panel}->SetSizer( $self->{sizer} ); $self->{panel}->SetAutoLayout(1); # Do an initial refresh to load the HTML $self->refresh; return $self; } sub refresh { my $self = shift; my $html = $self->html; $self->{renderer}->SetPage($html); return; } # The default renderer returns a fixed HTML string passed to the constructor. # Dialogs that work with dynamic state will build the HTML on the fly. sub html { $_[0]->{html}; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Frame/POD.pm����������������������������������������������������������������0000644�0001750�0001750�00000002526�12237327555�015372� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Frame::POD; =pod =head1 NAME Padre::Wx::Frame::POD - Simple Single-Document Pod2HTML Viewer =head1 SYNOPSIS # Create the Pod viewing window my $frame = Padre::Wx::Frame::POD->new; # Load a document with POD in it $frame->load_file('file.pod'); =head1 DESCRIPTION C<Padre::Wx::Frame::POD> provides a simple standalone window containing a Pod2HTML rendering widget, for displaying a single POD document as HTML. =head1 METHODS =cut use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::HtmlWindow (); use Padre::Wx::FBP::POD (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::FBP::POD'; =pod =head2 new The C<new> constructor creates a new, empty, frame for displaying Pod. =head2 load_file $frame->load_file( 'filename.pod' ); The C<load_file> method loads a named file into the POD viewer. =cut sub load_file { my $self = shift; $self->{html}->background_file(@_); } 1; =pod =head1 SUPPORT See the main L<Padre> documentation. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ComboBox/�������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�015052� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ComboBox/History.pm���������������������������������������������������������0000644�0001750�0001750�00000005331�12237327555�017064� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::ComboBox::History; =pod =head1 NAME Padre::Wx::ComboBox::History - A history-enabled Wx combobox =head1 SYNOPSIS $dialog->{search_text} = Padre::Wx::ComboBox::History->new( $self, -1, '', # Use the last history value Wx::DefaultPosition, Wx::DefaultSize, [ 'search' ], # The history queue to read from ); =head1 DESCRIPTION Padre::Wx::ComboBox::History is a normal Wx ComboBox widget, but enhanced with the ability to remember previously entered values and present the previous values as options the next time it is used. This type of input memory is fairly common in dialog boxes and other task inputs. The parameters are provided to the history box in a form compatible with an ordinary Wx::ComboBox to simplify integration with GUI generators such as L<Padre::Plugin::FormBuilder>. The "options" hash should contain exactly one value, which should be the key string for the history table. This can be a simple name, allowing the sharing of remembered history across several different dialogs. The "value" can be defined literally, or will be pulled from the most recent history entry if it set to the null string. =cut use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::DB (); our $VERSION = '1.00'; our @ISA = 'Wx::ComboBox'; sub new { my $class = shift; my @params = @_; # First key in the value list to overwrite with the history values. my $type = $params[5]->[0]; if ($type) { $params[5] = [ Padre::DB::History->recent($type) ]; # Initial text defaults to empty string $params[2] ||= ''; } my $self = $class->SUPER::new(@params); # Save the type, we'll need it later. $self->{type} = $type; $self; } sub refresh { my $self = shift; my $text = shift; $text = '' unless defined $text; $text = '' if $text =~ /\n/; # Refresh the recent values my @recent = Padre::DB::History->recent( $self->{type} ); # Update the Wx object from the list $self->Clear; if ( length $text ) { $self->SetValue($text); unless ( grep { $text eq $_ } @recent ) { $self->Append($text); } } foreach my $option (@recent) { $self->Append($option); } return 1; } # Save the current value of the combobox and return it as per GetValue sub SaveValue { my $self = shift; my $value = $self->GetValue; # If this is a value is not in our existing recent list, save it if ( length $value ) { if ( $self->FindString($value) == Wx::NOT_FOUND ) { Padre::DB::History->create( type => $self->{type}, name => $value, ); } } return $value; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ComboBox/FindTerm.pm��������������������������������������������������������0000644�0001750�0001750�00000003230�12237327555�017127� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::ComboBox::FindTerm; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::ComboBox::History (); our $VERSION = '1.00'; our @ISA = 'Padre::Wx::ComboBox::History'; ###################################################################### # Constructor sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Bind some default behaviour for all of these objects Wx::Event::EVT_TEXT( $self, $self, sub { shift->on_text(@_); }, ); # Make sure we are being created in a usable context unless ( $self->GetParent->can('as_search') ) { die "FindTerm created in parent without as_search"; } return $self; } ###################################################################### # Event Handlers sub on_text { my $self = shift; my $event = shift; my $lock = Wx::WindowUpdateLocker->new($self); # Show the bad colour if there is an illegal search if ( $self->GetValue eq '' or $self->GetParent->as_search ) { $self->SetBackgroundColour( $self->base_colour ); } else { $self->SetBackgroundColour( $self->bad_colour ); } $event->Skip(1); } ###################################################################### # Support Methods sub base_colour { Wx::SystemSettings::GetColour(Wx::SYS_COLOUR_WINDOW); } sub bad_colour { my $self = shift; my $base = $self->base_colour; return Wx::Colour->new( $base->Red, int( $base->Green * 0.5 ), int( $base->Blue * 0.5 ), ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Syntax.pm�������������������������������������������������������������������0000644�0001750�0001750�00000042337�12237327555�015210� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Syntax; use 5.008; use strict; use warnings; use Params::Util (); use Wx::Scintilla (); use Padre::Constant (); use Padre::Feature (); use Padre::Role::Task (); use Padre::Wx (); use Padre::Wx::Icon (); use Padre::Wx::Role::Idle (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Context (); use Padre::Wx::FBP::Syntax (); use Time::HiRes (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Idle Padre::Wx::Role::View Padre::Wx::Role::Context Padre::Wx::FBP::Syntax }; use constant { OK => 'status/padre-syntax-ok', ERROR => 'status/padre-syntax-error', WARNING => 'status/padre-syntax-warning', }; # Load the bitmap icons for the label my %ICON = ( ok => Padre::Wx::Icon::find(OK), error => Padre::Wx::Icon::find(ERROR), warning => Padre::Wx::Icon::find(WARNING), ); # perldiag error message classification my %MESSAGE = ( # (W) A warning (optional). 'W' => { label => Wx::gettext('Warning'), marker => Padre::Constant::MARKER_WARN, }, # (D) A deprecation (enabled by default). 'D' => { label => Wx::gettext('Deprecation'), marker => Padre::Constant::MARKER_WARN, }, # (S) A severe warning (enabled by default). 'S' => { label => Wx::gettext('Severe Warning'), marker => Padre::Constant::MARKER_WARN, }, # (F) A fatal error (trappable). 'F' => { label => Wx::gettext('Fatal Error'), marker => Padre::Constant::MARKER_ERROR, }, # (P) An internal error you should never see (trappable). 'P' => { label => Wx::gettext('Internal Error'), marker => Padre::Constant::MARKER_ERROR, }, # (X) A very fatal error (nontrappable). 'X' => { label => Wx::gettext('Very Fatal Error'), marker => Padre::Constant::MARKER_ERROR, }, # (A) An alien error message (not generated by Perl). 'A' => { label => Wx::gettext('Alien Error'), marker => Padre::Constant::MARKER_ERROR, }, ); sub new { my $class = shift; my $main = shift; my $panel = shift || $main->bottom; my $self = $class->SUPER::new($panel); # Hide the entries not visible by default $self->{help}->Hide; $self->{show_stderr}->Hide; # Additional properties $self->{model} = {}; $self->{length} = -1; if (Padre::Feature::SYNTAX_ANNOTATIONS) { $self->{annotations} = {}; } # Prepare the available images my $images = Wx::ImageList->new( 16, 16 ); $self->{images} = { ok => $images->Add( Padre::Wx::Icon::find(OK) ), error => $images->Add( Padre::Wx::Icon::find(ERROR) ), warning => $images->Add( Padre::Wx::Icon::find(WARNING) ), diagnostics => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_GO_FORWARD', 'wxART_OTHER_C', [ 16, 16 ], ), ), root => $images->Add( Wx::ArtProvider::GetBitmap( 'wxART_HELP_FOLDER', 'wxART_OTHER_C', [ 16, 16 ], ), ), }; $self->{tree}->AssignImageList($images); $self->Hide; if (Padre::Feature::STYLE_GUI) { $main->theme->apply( $self->{tree} ); } # Custom binding for the tree item activation Wx::Event::EVT_TREE_ITEM_ACTIVATED( $self, $self->{tree}, sub { $_[0]->idle_method( item_activated => $_[1]->GetItem ); }, ); $self->context_bind; return $self; } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { return 'bottom'; } sub view_label { Wx::gettext('Syntax Check'); } sub view_close { $_[0]->main->show_syntax(0); } sub view_start { my $self = shift; my $lock = $self->lock_update; # Add the margins for the syntax markers foreach my $editor ( $self->main->editors ) { $editor->SetMarginWidth( 1, 16 ); } } sub view_stop { my $self = shift; my $lock = $self->lock_update; # Clear out any state and tasks $self->task_reset; $self->clear; $self->set_label_bitmap(undef); # Remove the editor margins # commeted out as other functions pigy-back on this # foreach my $editor ( $self->main->editors ) { # $editor->SetMarginWidth( 1, 0 ); # } return; } ##################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; # Configure the display order $self->context_append_options( $menu => 'main_syntax_panel' ); return; } ##################################################################### # Event Handlers sub on_tree_item_selection_changed { my $self = shift; my $event = shift; my $item = $event->GetItem or return; my $issue = $self->{tree}->GetPlData($item); if ( $issue and $issue->{diagnostics} ) { $self->_update_help_page( $issue->{diagnostics} ); } else { $self->_update_help_page; } } sub show_stderr { my $self = shift; my $event = shift; my $stderr = $self->{model}->{stderr}; if ( defined $stderr ) { my $main = $self->main; $main->output->SetValue($stderr); $main->output->SetSelection( 0, 0 ); $main->show_output(1); } return; } ##################################################################### # General Methods sub item_activated { my $self = shift; my $item = shift or return; my $issue = $self->{tree}->GetPlData($item) or return; my $editor = $self->current->editor or return; my $line = $issue->{line}; # Does it point to somewhere valid? return unless defined $line; return if $line !~ /^\d+$/o; return if $editor->GetLineCount < $line; # Select the problem after the event has finished $self->idle_method( select_next_problem => $line - 1 ); } sub disable { my $self = shift; $self->clear; $self->set_label_bitmap(undef); $self->{tree}->Hide; return; } # Remove all markers and empty the list sub clear { my $self = shift; my $lock = $self->lock_update; # Remove the margins and indicators for the syntax markers foreach my $editor ( $self->main->editors ) { $editor->MarkerDeleteAll(Padre::Constant::MARKER_ERROR); $editor->MarkerDeleteAll(Padre::Constant::MARKER_WARN); # Clear out all indicators my $len = $editor->GetTextLength; if ( $len > 0 ) { $editor->SetIndicatorCurrent(Padre::Constant::INDICATOR_WARNING); $editor->IndicatorClearRange( 0, $len ); $editor->SetIndicatorCurrent(Padre::Constant::INDICATOR_ERROR); $editor->IndicatorClearRange( 0, $len ); } # Clear all annotations if it is available and the feature is enabled if (Padre::Feature::SYNTAX_ANNOTATIONS) { $editor->AnnotationClearAll; } } # Reset the annotation store if (Padre::Feature::SYNTAX_ANNOTATIONS) { $self->{annotations} = {}; } # Remove all items from the tool $self->{tree}->DeleteAllItems; # Hide "Show Standard Error" $self->{show_stderr}->Hide; # Clear the help page $self->_update_help_page; return; } # Nothing to implement here sub relocale { return; } sub refresh { my $self = shift; my $current = shift or return; my $document = $current->document; my $tree = $self->{tree}; my $lock = $self->lock_update; # Abort any in-flight checks $self->task_reset; # Hide the widgets when no files are open unless ($document) { $self->disable; return; } # Is there a syntax check task for this document type my $task = $document->task_syntax; unless ($task) { $self->disable; return; } # Shortcut if there is nothing in the document to compile if ( $document->is_unused ) { $self->disable; return; } # Ensure the widget is visible $tree->Show(1); # Recalculate our layout in case the view geometry # has changed from when we were hidden. $self->Layout; # Clear out the syntax check window, leaving the margin as is $tree->DeleteAllItems; $self->_update_help_page; # Fire the background task discarding old results $self->{task_start_time} = Time::HiRes::time; $self->task_request( task => $task, document => $document, ); return 1; } sub task_finish { my $self = shift; my $task = shift; # Properly validate and warn about older deprecated syntax models if ( Params::Util::_ARRAY0( $task->{model} ) ) { # Warn about the old array object from syntax task in debug mode TRACE( q{Syntax checker tasks should now return a hash containing an 'issues' array reference} . q{ and 'stderr' string keys instead of the old issues array reference} ) if DEBUG; # TODO remove compatibility for older syntax checker model if ( scalar @{ $task->{model} } == 0 ) { $self->{model} = {}; } else { $self->{model} = { issues => $task->{model}, stderr => undef, }; } } else { $self->{model} = $task->{model}; } $self->render; } sub render { my $self = shift; my $elapsed = Time::HiRes::time- $self->{task_start_time}; my $model = $self->{model} || {}; my $current = $self->current; my $editor = $current->editor or return; my $document = $current->document; my $filename = $current->filename; my $lock = $self->lock_update; # Show only the current error/warning annotation when you move or click on a line if (Padre::Feature::SYNTAX_ANNOTATIONS) { Wx::Event::EVT_LEFT_UP( $editor, sub { $_[0]->main->syntax->_show_current_annotation(1); $_[1]->Skip(1); } ); Wx::Event::EVT_KEY_UP( $editor, sub { $_[0]->main->syntax->_show_current_annotation(1); } ); } # NOTE: Recolor the document to make sure we do not accidentally # remove syntax highlighting while syntax checking $document->colourize; # Flush old results $self->clear; my $tree = $self->{tree}; my $images = $self->{images}; my $root = $tree->AddRoot('Root'); # If there are no errors or warnings, clear the syntax checker pane unless ( Params::Util::_HASH($model) ) { # Relative-to-the-project filename. # Check that the document has been saved. if ( defined $filename ) { my $project_dir = $document->project_dir; if ( defined $project_dir ) { $project_dir = quotemeta $project_dir; $filename =~ s/^$project_dir[\\\/]?//; } $tree->SetItemText( $root, sprintf( Wx::gettext('No errors or warnings found in %s within %3.2f secs.'), $filename, $elapsed ) ); } else { $tree->SetItemText( $root, sprintf( Wx::gettext('No errors or warnings found within %3.2f secs.'), $elapsed ) ); } $tree->SetItemImage( $root, $images->{ok} ); $self->set_label_bitmap('ok'); return; } $tree->SetItemImage( $root, $images->{root} ); $tree->SetItemText( $root, defined($filename) ? sprintf( Wx::gettext('Found %d issue(s) in %s within %3.2f secs.'), scalar @{ $model->{issues} }, $filename, $elapsed, ) : sprintf( Wx::gettext('Found %d issue(s) within %3.2f secs.'), scalar @{ $model->{issues} }, $elapsed, ) ); # Reset the annotations if (Padre::Feature::SYNTAX_ANNOTATIONS) { $self->{annotations} = {}; } my $worst = 'ok'; my $maxline = $editor->GetLineCount; my @issues = sort { $a->{line} <=> $b->{line} } @{ $model->{issues} }; foreach my $issue (@issues) { my $line = $issue->{line} - 1; my $message = $MESSAGE{ $issue->{type} || 'F' }; my $warn = $message->{marker} == Padre::Constant::MARKER_WARN; # Is this the worst thing we have encountered? unless ( $worst eq 'error' ) { $worst = $warn ? 'warning' : 'error'; } # Create the basic tree entry my $image = $warn ? $images->{warning} : $images->{error}; my $item = $tree->AppendItem( $root, sprintf( Wx::gettext('Line %d: (%s) %s'), $line + 1, $message->{label}, $issue->{message} ), $image, ); $tree->SetPlData( $item, $issue ); # Skip everything except for the current file next unless $issue->{file} eq '-'; next unless $issue->{line} <= $maxline; # Underline the syntax warning/error line with an orange or red squiggle indicator my $start = $editor->PositionFromLine($line); my $indent = $editor->GetLineIndentPosition($line); my $end = $editor->GetLineEndPosition($line); my $indicator = $warn ? Padre::Constant::INDICATOR_WARNING : Padre::Constant::INDICATOR_ERROR; # Change only the indicators $editor->SetIndicatorCurrent($indicator); $editor->IndicatorFillRange( $indent, $end - $indent ); $editor->MarkerAdd( $line, $message->{marker} ); # Collect annotations for later display # One annotated line contains multiple errors/warnings if (Padre::Feature::SYNTAX_ANNOTATIONS) { my $message = $issue->message; my $style = sprintf( '%c', $warn ? Padre::Constant::PADRE_WARNING : Padre::Constant::PADRE_ERROR ); if ( $self->{annotations}->{$line} ) { $self->{annotations}->{$line}->{message} .= "\n$message"; $self->{annotations}->{$line}->{style} .= $style x ( length($message) + 1 ); } else { $self->{annotations}->{$line} = { message => $message, style => $style x length($message), }; } } } # Hide the annotations if (Padre::Feature::SYNTAX_ANNOTATIONS) { $self->_show_current_annotation(0); } # Enable standard error output display button unless ( $self->{show_stderr}->IsShown ) { $self->{show_stderr}->Show(1); $self->Layout; } $tree->Expand($root); $tree->EnsureVisible($root); # Set the icon to the new state $self->set_label_bitmap($worst); return 1; } sub lock_update { my $self = shift; my $lock = $self->SUPER::lock_update; my $editor = $self->current->editor; if ($editor) { $lock = [ $lock, $editor->lock_update ]; } return $lock; } sub set_label_bitmap { my $self = shift; my $name = shift || ''; my $icon = $ICON{$name} || Wx::NullBitmap; my $method = $self->view_panel; my $panel = $self->main->$method(); my $position = $panel->GetPageIndex($self); $panel->SetPageBitmap( $position, $icon ); } # Show the current line error/warning if it exists or hide the previous annotation BEGIN { *_show_current_annotation = sub { my $self = shift; my $shown = shift; my $editor = $self->main->current->editor; my $line = $editor->LineFromPosition( $editor->GetCurrentPos ); my $annotation = $self->{annotations}->{$line}; my $visible = Wx::Scintilla::ANNOTATION_HIDDEN; $editor->AnnotationClearAll; if ($annotation) { $editor->AnnotationSetText( $line, $annotation->{message} ); $editor->AnnotationSetStyles( $line, $annotation->{style} ); $visible = Wx::Scintilla::ANNOTATION_BOXED; $self->_show_syntax_without_focus if $shown; } $editor->AnnotationSetVisible($visible); }; } # Shows the non-visible syntax check tab without # losing focus on the editor! sub _show_syntax_without_focus { my $self = shift; my $current = $self->current or return; my $main = $self->main; my $bottom = $main->bottom; # Are we currently showing the page my $position = $bottom->GetPageIndex( $main->syntax ); if ( $position >= 0 ) { # Already showing, switch to it $bottom->SetSelection($position); $current->editor->SetFocus; return; } return; } # Updates the help page. It shows the text if it is defined otherwise clears and hides it sub _update_help_page { my $self = shift; my $text = shift; # load the escaped HTML string into the shown page otherwise hide # if the text is undefined my $help = $self->{help}; if ( defined $text ) { require CGI; $text = CGI::escapeHTML($text); $text =~ s/\n/<br>/g; my $WARN_TEXT = $MESSAGE{'W'}->{label}; if ( $text =~ /^\((W\s+(\w+)|D|S|F|P|X|A)\)/ ) { my ( $category, $warning_category ) = ( $1, $2 ); my $category_label = ( $category =~ /^W/ ) ? $MESSAGE{'W'}->{label} : $MESSAGE{$1}->{label}; my $notes = defined($warning_category) ? "<code>no warnings '$warning_category'; # disable</code><br>" . "<code>use warnings '$warning_category'; # enable</code><br><br>" : ''; $text =~ s{^\((W\s+(\w+)|D|S|F|P|X|A)\)}{<h3>$category_label</h3>$notes}; } $help->SetPage($text); $help->Show; } else { $help->SetPage(''); $help->Hide; } # Sticky note light-yellow background $self->{help}->SetBackgroundColour( Wx::Colour->new( 0xFD, 0xFC, 0xBB ) ); # Relayout to actually hide/show the help page $self->Layout; } # Selects the next problem in the editor. # Wraps to the first one when at the end. sub select_next_problem { my $self = shift; my $editor = $self->current->editor or return; my $current_line = $editor->LineFromPosition( $editor->GetCurrentPos ); # Start with the first child my $tree = $self->{tree}; my $root = $tree->GetRootItem; my ( $child, $cookie ) = $tree->GetFirstChild($root); my $line_to_select = undef; while ( $child->IsOk ) { # Get the line and check that it is a valid line number my $issue = $tree->GetPlData($child) or return; my $line = $issue->{line}; if ( not defined($line) or ( $line !~ /^\d+$/o ) or ( $line > $editor->GetLineCount ) ) { ( $child, $cookie ) = $tree->GetNextChild( $root, $cookie ); next; } $line--; unless ($line_to_select) { # Record the line number of the first problem :) $line_to_select = $line; } if ( $line > $current_line ) { # Record the line number as the next line beyond the current one $line_to_select = $line; last; } # Get the next child if there is one ( $child, $cookie ) = $tree->GetNextChild( $root, $cookie ); } # Select the line in the editor if ($line_to_select) { $editor->goto_line_centerize($line_to_select); $editor->SetFocus; } } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Printout.pm�����������������������������������������������������������������0000644�0001750�0001750�00000007214�12237327555�015541� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Printout; use 5.008; use strict; use warnings; use Padre::Wx 'Print'; our $VERSION = '1.00'; our @ISA = 'Wx::Printout'; sub new { my $class = shift; my $editor = shift; my $self = $class->SUPER::new(@_); $self->{EDITOR} = $editor; $self->{PRINTED} = 0; return $self; } sub OnPrintPage { my ( $self, $page ) = @_; my $dc = $self->GetDC; return 0 unless defined $dc; $self->PrintScaling($dc); my $e = $self->{EDITOR}; if ( $page == 1 ) { $self->{PRINTED} = 0; } $self->{PRINTED} = $e->FormatRange( 1, $self->{PRINTED}, $e->GetLength, $dc, $dc, $self->{printRect}, $self->{pageRect} ); return 1; } sub GetPageInfo { my $self = shift; my ( $minPage, $maxPage, $selPageFrom, $selPageTo ) = ( 0, 0, 0, 0 ); my $dc = $self->GetDC; if ( not defined $dc ) { return ( $minPage, $maxPage, $selPageFrom, $selPageTo ); } $self->PrintScaling($dc); # get print page informations and convert to printer pixels my ( $x, $y ) = $self->GetPPIScreen; my $ppiScr = Wx::Size->new( $x, $y ); my $pageSize = Wx::Size->new( $self->GetPageSizeMM ); $pageSize->SetWidth( int( $pageSize->GetWidth * $ppiScr->GetWidth / 25.4 ) ); $pageSize->SetHeight( int( $pageSize->GetHeight * $ppiScr->GetHeight / 25.4 ) ); $self->{pageRect} = Wx::Rect->new( 0, 0, $pageSize->GetWidth, $pageSize->GetHeight ); # my $topLeft = $psdd->GetMarginTopLeft; my $left = 25.4; # $topLeft->x; my $top = 25.4; # $topLeft->y; # my $btmRight = $psdd->GetMarginBottomRight; my $right = Wx::Size->new( $self->GetPageSizeMM )->GetWidth - 50.8; # $btmRight->x; my $bottom = 25.4; # $btmRight->y; $top = int( $top * $ppiScr->GetHeight / 25.4 ); $bottom = int( $bottom * $ppiScr->GetHeight / 25.4 ); $left = int( $left * $ppiScr->GetWidth / 25.4 ); $right = int( $right * $ppiScr->GetWidth / 25.4 ); $self->{printRect} = Wx::Rect->new( int( $left * $dc->GetUserScale ), int( $top * $dc->GetUserScale ), $right, ( $pageSize->GetHeight - int( ( $top + $bottom ) * $dc->GetUserScale ) ) ); while ( $self->HasPage($maxPage) ) { $self->{PRINTED} = $self->{EDITOR}->FormatRange( 0, $self->{PRINTED}, $self->{EDITOR}->GetLength, $dc, $dc, $self->{printRect}, $self->{pageRect} ); $maxPage += 1; } $self->{PRINTED} = 0; if ( $maxPage > 0 ) { $minPage = 1; } $selPageFrom = $minPage; $selPageTo = $maxPage; return ( $minPage, $maxPage, $selPageFrom, $selPageTo ); } sub HasPage { my $self = shift; my $page = shift; return $self->{PRINTED} < $self->{EDITOR}->GetLength; } sub PrintScaling { my $self = shift; my $dc = shift; return 0 unless defined $dc; my ( $sx, $sy ) = $self->GetPPIScreen; my $ppiScr = Wx::Size->new( $sx, $sy ); if ( $ppiScr->GetWidth == 0 ) { # guessing 96 dpi $ppiScr->SetWidth(96); $ppiScr->SetHeight(96); } my ( $px, $py ) = $self->GetPPIPrinter; my $ppiPrt = Wx::Size->new( $px, $py ); if ( $ppiPrt->GetWidth == 0 ) { # scaling factor 1 $ppiPrt->SetWidth( $ppiScr->GetWidth ); $ppiPrt->SetHeight( $ppiScr->GetHeight ); } my $dcSize = $dc->GetSize; my ( $pax, $pay ) = $self->GetPageSizePixels; my $pageSize = Wx::Size->new( $pax, $pay ); # set user scale my $scale_x = ( $ppiPrt->GetWidth * $dcSize->GetWidth ) / ( $ppiScr->GetWidth * $pageSize->GetWidth ); my $scale_y = ( $ppiPrt->GetHeight * $dcSize->GetHeight ) / ( $ppiScr->GetHeight * $pageSize->GetHeight ); $dc->SetUserScale( $scale_x, $scale_y ); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Diff.pm���������������������������������������������������������������������0000644�0001750�0001750�00000015666�12237327555�014577� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Diff; use 5.008; use strict; use warnings; use Scalar::Util (); use Params::Util (); use Padre::Constant (); use Padre::Role::Task (); use Padre::Wx (); use Padre::Util (); use Padre::Wx::Dialog::Diff (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task }; ###################################################################### # Constructor and Accessors sub new { my $class = shift; my $main = shift; my $self = bless {@_}, $class; $self->{main} = $main; $self->{diffs} = {}; return $self; } ###################################################################### # Padre::Role::Task Methods sub task_finish { TRACE( $_[1] ) if DEBUG; my $self = shift; my $task = shift; my $chunks = Params::Util::_ARRAY0( $task->{data} ) or return; my $main = $self->{main}; my $editor = $main->current->editor or return; my $lock = $editor->lock_update; # Clear any old content $self->clear; my $delta = 0; $self->{diffs} = {}; for my $chunk (@$chunks) { my $marker_line = undef; my $lines_deleted = 0; my $lines_added = 0; for my $diff (@$chunk) { my ( $type, $line, $text ) = @$diff; TRACE("type: $type") if DEBUG; TRACE("line: $line") if DEBUG; TRACE("text: $text") if DEBUG; # TRACE("$type, $line, $text") if DEBUG; unless ($marker_line) { $marker_line = $line + $delta; $self->{diffs}->{$marker_line} = { message => undef, type => undef, old_text => undef, new_text => undef, }; } my $diff = $self->{diffs}->{$marker_line}; if ( $type eq '-' ) { $lines_deleted++; $diff->{old_text} .= $text; } else { $lines_added++; $diff->{new_text} .= $text; } } my $description; my $diff = $self->{diffs}->{$marker_line}; my $type; if ( $lines_deleted > 0 and $lines_added > 0 ) { # Line(s) changed $description = $lines_deleted > 1 ? sprintf( Wx::gettext('%d lines changed'), $lines_deleted ) : sprintf( Wx::gettext('%d line changed'), $lines_deleted ); $editor->MarkerDelete( $marker_line, $_ ) for ( Padre::Constant::MARKER_ADDED, Padre::Constant::MARKER_DELETED ); $editor->MarkerAdd( $marker_line, Padre::Constant::MARKER_CHANGED ); $type = 'C'; } elsif ( $lines_added > 0 ) { # Line(s) added $description = $lines_added > 1 ? sprintf( Wx::gettext('%d lines added'), $lines_added ) : sprintf( Wx::gettext('%d line added'), $lines_added ); $editor->MarkerDelete( $marker_line, $_ ) for ( Padre::Constant::MARKER_CHANGED, Padre::Constant::MARKER_DELETED ); $editor->MarkerAdd( $marker_line, Padre::Constant::MARKER_ADDED ); $type = 'A'; } elsif ( $lines_deleted > 0 ) { # Line(s) deleted $description = $lines_deleted > 1 ? sprintf( Wx::gettext('%d lines deleted'), $lines_deleted ) : sprintf( Wx::gettext('%d line deleted'), $lines_deleted ); $editor->MarkerDelete( $marker_line, $_ ) for ( Padre::Constant::MARKER_ADDED, Padre::Constant::MARKER_CHANGED ); $editor->MarkerAdd( $marker_line, Padre::Constant::MARKER_DELETED ); $type = 'D'; } else { # TODO No change... what to do there... ignore? :) $description = 'no change!'; $type = 'N'; } # Record lines added/deleted $diff->{lines_added} = $lines_added; $diff->{lines_deleted} = $lines_deleted; $diff->{type} = $type; $diff->{message} = $description; # Update the offset $delta = $delta + $lines_added - $lines_deleted; # TRACE("$description at line #$marker_line") if DEBUG; } $editor->SetMarginSensitive( 1, 1 ); my $myself = $self; Wx::Event::EVT_STC_MARGINCLICK( $editor, $editor, sub { my $self = shift; my $event = shift; if ( $event->GetMargin == 1 ) { $myself->show_diff_box( $editor->LineFromPosition( $event->GetPosition ), $editor, ); } # Keep processing $event->Skip(1); } ); return 1; } ###################################################################### # General Methods sub clear { my $self = shift; my $current = $self->{main}->current or return; my $editor = $current->editor or return; my $lock = $editor->lock_update; $editor->MarkerDeleteAll(Padre::Constant::MARKER_ADDED); $editor->MarkerDeleteAll(Padre::Constant::MARKER_CHANGED); $editor->MarkerDeleteAll(Padre::Constant::MARKER_DELETED); $self->{dialog}->Hide if $self->{dialog}; } sub refresh { TRACE( $_[0] ) if DEBUG; my $self = shift; my $current = shift or return; my $document = $current->document; # Cancel any existing diff task $self->task_reset; # Hide the widgets when no files are open unless ($document) { $self->clear; return; } # Shortcut if there is nothing to search for if ( $document->is_unused ) { return; } # Trigger the task to fetch the refresh data $self->task_request( task => 'Padre::Task::Diff', document => $document, ); } # Generic method to select next or previous difference sub _select_next_prev_difference { my $self = shift; my $select_next_diff = shift; my $current = $self->{main}->current or return; my $editor = $current->editor or return; # Sort lines in ascending order my @lines = sort { $a <=> $b } keys %{ $self->{diffs} }; # Lines in descending order if select previous diff is enabled @lines = reverse @lines unless $select_next_diff; my $current_line = $editor->LineFromPosition( $editor->GetCurrentPos ); my $line_to_select = undef; for my $line (@lines) { unless ( defined $line_to_select ) { $line_to_select = $line; } if ($select_next_diff) { # Next difference if ( $line > $current_line ) { $line_to_select = $line; last; } } else { # Previous difference if ( $line < $current_line ) { $line_to_select = $line; last; } } } if ( defined $line_to_select ) { # Select the line in the editor and show the diff box $editor->goto_line_centerize($line_to_select); $self->show_diff_box( $line_to_select, $editor ); } else { $self->{main}->error( Wx::gettext('No changes found') ); } } # Selects the next difference in the editor sub select_next_difference { $_[0]->_select_next_prev_difference(1); } # Selects the previous difference in the editor sub select_previous_difference { $_[0]->_select_next_prev_difference(0); } # Shows the difference dialog box for the provided line in the editor provided sub show_diff_box { my $self = shift; my $line = shift; my $editor = shift; my $diff = $self->{diffs}->{$line} or return; unless ( defined $self->{dialog} ) { $self->{dialog} = Padre::Wx::Dialog::Diff->new( $self->{main} ); } $self->{dialog}->show( $editor, $line, $diff, $editor->PointFromPosition( $editor->PositionFromLine( $line + 1 ) ) ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Menubar.pm������������������������������������������������������������������0000644�0001750�0001750�00000010152�12237327555�015301� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Menubar; use 5.008; use strict; use warnings; use Params::Util (); use Padre::Current (); use Padre::Feature (); use Padre::Util (); use Padre::Wx (); use Padre::Wx::Menu::File (); use Padre::Wx::Menu::Edit (); use Padre::Wx::Menu::Search (); use Padre::Wx::Menu::View (); use Padre::Wx::Menu::Perl (); use Padre::Wx::Menu::Refactor (); use Padre::Wx::Menu::Run (); use Padre::Wx::Menu::Tools (); use Padre::Wx::Menu::Window (); use Padre::Wx::Menu::Help (); our $VERSION = '1.00'; ##################################################################### # Construction, Setup, and Accessors use Class::XSAccessor { getters => { wx => 'wx', main => 'main', # Don't add accessors to here until they have been # upgraded to be fully encapsulated classes. file => 'file', edit => 'edit', search => 'search', view => 'view', perl => 'perl', refactor => 'refactor', run => 'run', debug => 'debug', plugins => 'plugins', window => 'window', help => 'help', } }; sub new { my $class = shift; my $main = shift; # Create the basic object my $self = bless { main => $main, wx => Wx::MenuBar->new, }, $class; # Create all child menus $self->{file} = Padre::Wx::Menu::File->new($main); $self->{edit} = Padre::Wx::Menu::Edit->new($main); $self->{search} = Padre::Wx::Menu::Search->new($main); $self->{view} = Padre::Wx::Menu::View->new($main); $self->{refactor} = Padre::Wx::Menu::Refactor->new($main); $self->{perl} = Padre::Wx::Menu::Perl->new($main); $self->{run} = Padre::Wx::Menu::Run->new($main); if (Padre::Feature::DEBUGGER) { require Padre::Wx::Menu::Debug; $self->{debug} = Padre::Wx::Menu::Debug->new($main); } $self->{plugins} = Padre::Wx::Menu::Tools->new($main); $self->{window} = Padre::Wx::Menu::Window->new($main); $self->{help} = Padre::Wx::Menu::Help->new($main); # Add the mimetype agnostic menus to the menu bar $self->append( $self->{file} ); $self->append( $self->{edit} ); $self->append( $self->{search} ); $self->append( $self->{view} ); $self->append( $self->{run} ); $self->append( $self->{plugins} ); $self->append( $self->{window} ); $self->append( $self->{help} ); # Save the default number of menus $self->{default} = $self->wx->GetMenuCount; return $self; } sub append { $_[0]->wx->Append( $_[1]->wx, $_[1]->title ); } sub insert { $_[0]->wx->Insert( $_[1], $_[2]->wx, $_[2]->title ); } sub remove { $_[0]->wx->Remove( $_[1] ); } ##################################################################### # Reflowing the Menu sub refresh { my $self = shift; my $plugins = shift; my $current = Padre::Current::_CURRENT(@_); my $menu = $self->wx->GetMenuCount ne $self->{default}; my $perl = !!( Params::Util::_INSTANCE( $current->document, 'Padre::Document::Perl' ) or Params::Util::_INSTANCE( $current->project, 'Padre::Project::Perl' ) ); # Add/Remove the Perl menu if ( $perl and not $menu ) { $self->insert( 4, $self->perl ); $self->insert( 5, $self->refactor ); if (Padre::Feature::DEBUGGER) { $self->insert( 7, $self->debug ); } } elsif ( $menu and not $perl ) { if (Padre::Feature::DEBUGGER) { $self->remove(7); # debug } $self->remove(5); # refactor $self->remove(4); # perl } # Refresh individual menus $self->file->refresh($current); $self->edit->refresh($current); $self->search->refresh($current); $self->view->refresh($current); $self->run->refresh($current); # Don't do to the effort of refreshing the Perl menu # unless we're actually showing it. if ($perl) { $self->perl->refresh($current); $self->refactor->refresh($current); if (Padre::Feature::DEBUGGER) { $self->debug->refresh($current); } } $self->plugins->refresh($current); $self->window->refresh($current); $self->help->refresh($current); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�013752� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/CPAN.pm�����������������������������������������������������������������0000644�0001750�0001750�00000017131�12237327555�015044� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::CPAN; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::HtmlWindow (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 235, 530 ], Wx::TAB_TRAVERSAL, ); Wx::Event::EVT_CHAR( $self, sub { shift->on_search_text(@_); }, ); $self->{m_notebook} = Wx::Notebook->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, ); $self->{search_panel} = Wx::Panel->new( $self->{m_notebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{search} = Wx::TextCtrl->new( $self->{search_panel}, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_TEXT( $self, $self->{search}, sub { shift->on_search_text(@_); }, ); $self->{search_list} = Wx::ListCtrl->new( $self->{search_panel}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_COL_CLICK( $self, $self->{search_list}, sub { shift->on_search_list_column_click(@_); }, ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{search_list}, sub { shift->on_list_item_selected(@_); }, ); $self->{recent_panel} = Wx::Panel->new( $self->{m_notebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{recent_list} = Wx::ListCtrl->new( $self->{recent_panel}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_COL_CLICK( $self, $self->{recent_list}, sub { shift->on_recent_list_column_click(@_); }, ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{recent_list}, sub { shift->on_list_item_selected(@_); }, ); $self->{refresh_recent} = Wx::Button->new( $self->{recent_panel}, -1, Wx::gettext("Refresh"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{refresh_recent}, sub { shift->on_refresh_recent_click(@_); }, ); $self->{favorite_panel} = Wx::Panel->new( $self->{m_notebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{favorite_list} = Wx::ListCtrl->new( $self->{favorite_panel}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_COL_CLICK( $self, $self->{favorite_list}, sub { shift->on_favorite_list_column_click(@_); }, ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{favorite_list}, sub { shift->on_list_item_selected(@_); }, ); $self->{refresh_favorite} = Wx::Button->new( $self->{favorite_panel}, -1, Wx::gettext("Refresh"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{refresh_favorite}, sub { shift->on_refresh_favorite_click(@_); }, ); $self->{doc} = Padre::Wx::HtmlWindow->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::STATIC_BORDER, ); $self->{doc}->SetBackgroundColour( Wx::Colour->new( 253, 252, 187 ) ); $self->{synopsis} = Wx::Button->new( $self, -1, Wx::gettext("Insert Synopsis"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{synopsis}, sub { shift->on_synopsis_click(@_); }, ); $self->{metacpan} = Wx::Button->new( $self, -1, Wx::gettext("MetaCPAN..."), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{metacpan}, sub { shift->on_metacpan_click(@_); }, ); $self->{install} = Wx::Button->new( $self, -1, Wx::gettext("Install"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{install}, sub { shift->on_install_click(@_); }, ); my $search_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $search_sizer->Add( $self->{search}, 1, Wx::ALIGN_CENTER_VERTICAL, 0 ); my $search_panel_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $search_panel_sizer->Add( $search_sizer, 0, Wx::ALL | Wx::EXPAND, 1 ); $search_panel_sizer->Add( $self->{search_list}, 1, Wx::ALL | Wx::EXPAND, 1 ); $self->{search_panel}->SetSizerAndFit($search_panel_sizer); $self->{search_panel}->Layout; my $recent_panel_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $recent_panel_sizer->Add( $self->{recent_list}, 1, Wx::ALL | Wx::EXPAND, 5 ); $recent_panel_sizer->Add( $self->{refresh_recent}, 0, Wx::ALIGN_CENTER | Wx::ALL, 1 ); $self->{recent_panel}->SetSizerAndFit($recent_panel_sizer); $self->{recent_panel}->Layout; my $favorite_panel_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $favorite_panel_sizer->Add( $self->{favorite_list}, 1, Wx::ALL | Wx::EXPAND, 5 ); $favorite_panel_sizer->Add( $self->{refresh_favorite}, 0, Wx::ALIGN_CENTER | Wx::ALL, 1 ); $self->{favorite_panel}->SetSizerAndFit($favorite_panel_sizer); $self->{favorite_panel}->Layout; $self->{m_notebook}->AddPage( $self->{search_panel}, Wx::gettext("Search"), 1 ); $self->{m_notebook}->AddPage( $self->{recent_panel}, Wx::gettext("Recent"), 0 ); $self->{m_notebook}->AddPage( $self->{favorite_panel}, Wx::gettext("Favorite"), 0 ); my $button_sizer = Wx::FlexGridSizer->new( 2, 2, 0, 0 ); $button_sizer->SetFlexibleDirection(Wx::BOTH); $button_sizer->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $button_sizer->Add( $self->{synopsis}, 0, Wx::ALL | Wx::EXPAND, 2 ); $button_sizer->Add( $self->{metacpan}, 0, Wx::ALL, 2 ); $button_sizer->Add( $self->{install}, 0, Wx::ALL | Wx::EXPAND, 2 ); my $main_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $main_sizer->Add( $self->{m_notebook}, 1, Wx::EXPAND | Wx::ALL, 5 ); $main_sizer->Add( $self->{doc}, 1, Wx::ALL | Wx::EXPAND, 1 ); $main_sizer->Add( $button_sizer, 0, Wx::EXPAND, 5 ); $self->SetSizer($main_sizer); $self->Layout; return $self; } sub on_search_text { $_[0]->main->error('Handler method on_search_text for event Padre::Wx::FBP::CPAN.OnChar not implemented'); } sub on_search_list_column_click { $_[0]->main->error('Handler method on_search_list_column_click for event search_list.OnListColClick not implemented'); } sub on_list_item_selected { $_[0]->main->error('Handler method on_list_item_selected for event search_list.OnListItemSelected not implemented'); } sub on_recent_list_column_click { $_[0]->main->error('Handler method on_recent_list_column_click for event recent_list.OnListColClick not implemented'); } sub on_refresh_recent_click { $_[0]->main->error('Handler method on_refresh_recent_click for event refresh_recent.OnButtonClick not implemented'); } sub on_favorite_list_column_click { $_[0]->main->error('Handler method on_favorite_list_column_click for event favorite_list.OnListColClick not implemented'); } sub on_refresh_favorite_click { $_[0]->main->error('Handler method on_refresh_favorite_click for event refresh_favorite.OnButtonClick not implemented'); } sub on_synopsis_click { $_[0]->main->error('Handler method on_synopsis_click for event synopsis.OnButtonClick not implemented'); } sub on_metacpan_click { $_[0]->main->error('Handler method on_metacpan_click for event metacpan.OnButtonClick not implemented'); } sub on_install_click { $_[0]->main->error('Handler method on_install_click for event install.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Replace.pm��������������������������������������������������������������0000644�0001750�0001750�00000013244�12237327555�015677� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Replace; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::ComboBox::FindTerm (); use Padre::Wx::ComboBox::History (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Replace"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); Wx::Event::EVT_CLOSE( $self, sub { shift->on_close(@_); }, ); my $m_staticText2 = Wx::StaticText->new( $self, -1, Wx::gettext("Search &Term:"), ); $self->{find_term} = Padre::Wx::ComboBox::FindTerm->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [ "search", ], ); Wx::Event::EVT_COMBOBOX( $self, $self->{find_term}, sub { shift->refresh(@_); }, ); Wx::Event::EVT_TEXT( $self, $self->{find_term}, sub { shift->refresh(@_); }, ); my $m_staticline2 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText3 = Wx::StaticText->new( $self, -1, Wx::gettext("Replace &With:"), ); $self->{replace_term} = Padre::Wx::ComboBox::History->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [ "replace", ], ); Wx::Event::EVT_TEXT( $self, $self->{replace_term}, sub { shift->refresh(@_); }, ); my $m_staticline3 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{find_case} = Wx::CheckBox->new( $self, -1, Wx::gettext("&Case Sensitive"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{find_regex} = Wx::CheckBox->new( $self, -1, Wx::gettext("Regular E&xpression"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_CHECKBOX( $self, $self->{find_regex}, sub { shift->refresh(@_); }, ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{find_next} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("&Find Next"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{find_next}, sub { shift->find_next_clicked(@_); }, ); $self->{replace} = Wx::Button->new( $self, -1, Wx::gettext("&Replace"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{replace}->SetDefault; Wx::Event::EVT_BUTTON( $self, $self->{replace}, sub { shift->replace_clicked(@_); }, ); $self->{replace_all} = Wx::Button->new( $self, -1, Wx::gettext("Replace &All"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{replace_all}, sub { shift->replace_all_clicked(@_); }, ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{cancel}, sub { shift->on_close(@_); }, ); my $fgSizer2 = Wx::FlexGridSizer->new( 2, 2, 0, 10 ); $fgSizer2->AddGrowableCol(1); $fgSizer2->SetFlexibleDirection(Wx::BOTH); $fgSizer2->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer2->Add( $self->{find_case}, 1, Wx::ALL, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{find_next}, 0, Wx::ALL, 5 ); $buttons->Add( $self->{replace}, 0, Wx::ALL, 5 ); $buttons->Add( $self->{replace_all}, 0, Wx::ALL, 5 ); $buttons->Add( 30, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $m_staticText2, 0, Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); $vsizer->Add( $self->{find_term}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline2, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $m_staticText3, 0, Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); $vsizer->Add( $self->{replace_term}, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline3, 0, Wx::EXPAND | Wx::ALL, 5 ); $vsizer->Add( $fgSizer2, 1, Wx::BOTTOM | Wx::EXPAND, 5 ); $vsizer->Add( $self->{find_regex}, 0, Wx::ALL, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($hsizer); $self->Layout; return $self; } sub find_term { $_[0]->{find_term}; } sub replace_term { $_[0]->{replace_term}; } sub find_case { $_[0]->{find_case}; } sub find_regex { $_[0]->{find_regex}; } sub find_next { $_[0]->{find_next}; } sub replace { $_[0]->{replace}; } sub replace_all { $_[0]->{replace_all}; } sub on_close { $_[0]->main->error('Handler method on_close for event Padre::Wx::FBP::Replace.OnClose not implemented'); } sub refresh { $_[0]->main->error('Handler method refresh for event find_term.OnCombobox not implemented'); } sub find_next_clicked { $_[0]->main->error('Handler method find_next_clicked for event find_next.OnButtonClick not implemented'); } sub replace_clicked { $_[0]->main->error('Handler method replace_clicked for event replace.OnButtonClick not implemented'); } sub replace_all_clicked { $_[0]->main->error('Handler method replace_all_clicked for event replace_all.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Outline.pm��������������������������������������������������������������0000644�0001750�0001750�00000002517�12237327555�015744� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Outline; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::TreeCtrl (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 195, 530 ], Wx::TAB_TRAVERSAL, ); $self->{search} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SIMPLE_BORDER, ); $self->{tree} = Padre::Wx::TreeCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TR_HAS_BUTTONS | Wx::TR_HIDE_ROOT | Wx::TR_LINES_AT_ROOT | Wx::TR_SINGLE | Wx::NO_BORDER, ); my $main_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $main_sizer->Add( $self->{search}, 0, Wx::EXPAND, 1 ); $main_sizer->Add( $self->{tree}, 1, Wx::ALL | Wx::EXPAND, 1 ); $self->SetSizer($main_sizer); $self->Layout; return $self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/DebugOutput.pm����������������������������������������������������������0000644�0001750�0001750�00000003634�12237327555�016575� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::DebugOutput; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 500, 300 ], Wx::TAB_TRAVERSAL, ); $self->{status} = Wx::StaticText->new( $self, -1, Wx::gettext("Status"), ); $self->{debug_launch_options} = Wx::StaticText->new( $self, -1, Wx::gettext("Debug Launch Options:"), ); $self->{dl_options} = Wx::StaticText->new( $self, -1, Wx::gettext("none"), ); $self->{output} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_MULTILINE | Wx::TE_READONLY | Wx::SIMPLE_BORDER, ); my $top_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $top_sizer->Add( $self->{status}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $top_sizer->Add( 0, 0, 1, Wx::EXPAND, 5 ); $top_sizer->Add( $self->{debug_launch_options}, 0, Wx::ALL, 5 ); $top_sizer->Add( $self->{dl_options}, 0, Wx::ALL, 5 ); $top_sizer->Add( 0, 0, 1, Wx::EXPAND, 5 ); my $main_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $main_sizer->Add( $top_sizer, 0, Wx::ALIGN_RIGHT | Wx::ALL | Wx::EXPAND, 2 ); $main_sizer->Add( $self->{output}, 1, Wx::ALL | Wx::EXPAND, 0 ); $self->SetSizer($main_sizer); $self->Layout; return $self; } sub status { $_[0]->{status}; } sub dl_options { $_[0]->{dl_options}; } sub output { $_[0]->{output}; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Find.pm�����������������������������������������������������������������0000644�0001750�0001750�00000010473�12237327555�015205� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Find; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::ComboBox::FindTerm (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Find"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); Wx::Event::EVT_CLOSE( $self, sub { shift->on_close(@_); }, ); my $m_staticText2 = Wx::StaticText->new( $self, -1, Wx::gettext("Search &Term:"), ); $self->{find_term} = Padre::Wx::ComboBox::FindTerm->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [ "search", ], ); Wx::Event::EVT_TEXT( $self, $self->{find_term}, sub { shift->refresh(@_); }, ); my $m_staticline2 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{find_regex} = Wx::CheckBox->new( $self, -1, Wx::gettext("Regular E&xpression"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{find_reverse} = Wx::CheckBox->new( $self, -1, Wx::gettext("Search &Backwards"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{find_case} = Wx::CheckBox->new( $self, -1, Wx::gettext("&Case Sensitive"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{find_next} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("&Find Next"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{find_next}->SetDefault; Wx::Event::EVT_BUTTON( $self, $self->{find_next}, sub { shift->find_next_clicked(@_); }, ); $self->{find_all} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("Find &All"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{cancel}, sub { shift->on_close(@_); }, ); my $fgSizer2 = Wx::FlexGridSizer->new( 2, 2, 0, 10 ); $fgSizer2->AddGrowableCol(1); $fgSizer2->SetFlexibleDirection(Wx::BOTH); $fgSizer2->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer2->Add( $self->{find_regex}, 1, Wx::ALL, 5 ); $fgSizer2->Add( $self->{find_reverse}, 1, Wx::ALL, 5 ); $fgSizer2->Add( $self->{find_case}, 1, Wx::ALL, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{find_next}, 0, Wx::ALL, 5 ); $buttons->Add( $self->{find_all}, 0, Wx::ALL, 5 ); $buttons->Add( 30, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $m_staticText2, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); $vsizer->Add( $self->{find_term}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline2, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $fgSizer2, 1, Wx::BOTTOM | Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($hsizer); $self->Layout; return $self; } sub find_term { $_[0]->{find_term}; } sub find_regex { $_[0]->{find_regex}; } sub find_reverse { $_[0]->{find_reverse}; } sub find_case { $_[0]->{find_case}; } sub find_next { $_[0]->{find_next}; } sub find_all { $_[0]->{find_all}; } sub on_close { $_[0]->main->error('Handler method on_close for event Padre::Wx::FBP::Find.OnClose not implemented'); } sub refresh { $_[0]->main->error('Handler method refresh for event find_term.OnText not implemented'); } sub find_next_clicked { $_[0]->main->error('Handler method find_next_clicked for event find_next.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/TaskList.pm�������������������������������������������������������������0000644�0001750�0001750�00000002521�12237327555�016056� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::TaskList; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 500, 300 ], Wx::TAB_TRAVERSAL, ); $self->{search} = Wx::SearchCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::STATIC_BORDER, ); unless ( Wx::MAC ) { $self->{search}->ShowSearchButton(1); } $self->{search}->ShowCancelButton(0); $self->{tree} = Wx::TreeCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TR_DEFAULT_STYLE | Wx::NO_BORDER, ); my $bSizer122 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer122->Add( $self->{search}, 0, Wx::EXPAND, 5 ); $bSizer122->Add( $self->{tree}, 1, Wx::EXPAND, 5 ); $self->SetSizer($bSizer122); $self->Layout; return $self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/SessionManager.pm�������������������������������������������������������0000644�0001750�0001750�00000006607�12237327555�017247� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::SessionManager; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Session Manager"), Wx::DefaultPosition, [ 480, 300 ], Wx::DEFAULT_DIALOG_STYLE, ); $self->{list} = Wx::ListCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_COL_CLICK( $self, $self->{list}, sub { shift->list_col_click(@_); }, ); Wx::Event::EVT_LIST_ITEM_ACTIVATED( $self, $self->{list}, sub { shift->list_item_activated(@_); }, ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{list}, sub { shift->list_item_selected(@_); }, ); $self->{autosave} = Wx::CheckBox->new( $self, -1, Wx::gettext("Save session automatically"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{m_staticline46} = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{open} = Wx::Button->new( $self, -1, Wx::gettext("Open Session"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{open}->SetDefault; Wx::Event::EVT_BUTTON( $self, $self->{open}, sub { shift->open_clicked(@_); }, ); $self->{delete} = Wx::Button->new( $self, -1, Wx::gettext("Delete Session"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{delete}, sub { shift->delete_clicked(@_); }, ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); my $bSizer120 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer120->Add( $self->{open}, 0, Wx::ALL, 5 ); $bSizer120->Add( $self->{delete}, 0, Wx::ALL, 5 ); $bSizer120->Add( 0, 0, 1, Wx::EXPAND, 5 ); $bSizer120->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $bSizer119 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer119->Add( $self->{list}, 1, Wx::ALL | Wx::EXPAND, 5 ); $bSizer119->Add( $self->{autosave}, 0, Wx::ALL | Wx::EXPAND, 5 ); $bSizer119->Add( $self->{m_staticline46}, 0, Wx::EXPAND | Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); $bSizer119->Add( $bSizer120, 0, Wx::EXPAND, 5 ); $self->SetSizer($bSizer119); $self->Layout; return $self; } sub list_col_click { $_[0]->main->error('Handler method list_col_click for event list.OnListColClick not implemented'); } sub list_item_activated { $_[0]->main->error('Handler method list_item_activated for event list.OnListItemActivated not implemented'); } sub list_item_selected { $_[0]->main->error('Handler method list_item_selected for event list.OnListItemSelected not implemented'); } sub open_clicked { $_[0]->main->error('Handler method open_clicked for event open.OnButtonClick not implemented'); } sub delete_clicked { $_[0]->main->error('Handler method delete_clicked for event delete.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Debugger.pm�������������������������������������������������������������0000644�0001750�0001750�00000043112�12237327555�016045� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Debugger; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 235, 530 ], Wx::TAB_TRAVERSAL, ); $self->{debug} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{debug}->SetToolTip( Wx::gettext("Run Debug\nBLUE MORPHO CATERPILLAR \ncool bug") ); Wx::Event::EVT_BUTTON( $self, $self->{debug}, sub { shift->on_debug_clicked(@_); }, ); $self->{step_in} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW | Wx::NO_BORDER, ); $self->{step_in}->SetToolTip( Wx::gettext("s [expr]\nSingle step. Executes until the beginning of another statement, descending into subroutine calls. If an expression is supplied that includes function calls, it too will be single-stepped.") ); Wx::Event::EVT_BUTTON( $self, $self->{step_in}, sub { shift->on_step_in_clicked(@_); }, ); $self->{step_over} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW | Wx::NO_BORDER, ); $self->{step_over}->SetToolTip( Wx::gettext("n [expr]\nNext. Executes over subroutine calls, until the beginning of the next statement. If an expression is supplied that includes function calls, those functions will be executed with stops before each statement.") ); Wx::Event::EVT_BUTTON( $self, $self->{step_over}, sub { shift->on_step_over_clicked(@_); }, ); $self->{step_out} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW | Wx::NO_BORDER, ); $self->{step_out}->SetToolTip( Wx::gettext("r\nContinue until the return from the current subroutine. Dump the return value if the PrintRet option is set (default).") ); Wx::Event::EVT_BUTTON( $self, $self->{step_out}, sub { shift->on_step_out_clicked(@_); }, ); $self->{run_till} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW | Wx::NO_BORDER, ); $self->{run_till}->SetToolTip( Wx::gettext("c [line|sub]\nContinue, optionally inserting a one-time-only breakpoint at the specified line or subroutine.") ); Wx::Event::EVT_BUTTON( $self, $self->{run_till}, sub { shift->on_run_till_clicked(@_); }, ); $self->{display_value} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW | Wx::NO_BORDER, ); $self->{display_value}->SetToolTip( Wx::gettext("Display Value") ); Wx::Event::EVT_BUTTON( $self, $self->{display_value}, sub { shift->on_display_value_clicked(@_); }, ); $self->{quit_debugger} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW | Wx::NO_BORDER, ); $self->{quit_debugger}->SetToolTip( Wx::gettext("Quit Debugger") ); Wx::Event::EVT_BUTTON( $self, $self->{quit_debugger}, sub { shift->on_quit_debugger_clicked(@_); }, ); $self->{variables} = Wx::ListCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{variables}, sub { shift->_on_list_item_selected(@_); }, ); $self->{show_local_variables} = Wx::CheckBox->new( $self, -1, Wx::gettext("Show Local Variables"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{show_local_variables}->SetToolTip( Wx::gettext("y [level [vars]]\nDisplay all (or some) lexical variables (mnemonic: mY variables) in the current scope or level scopes higher. You can limit the variables that you see with vars which works exactly as it does for the V and X commands. Requires the PadWalker module version 0.08 or higher; will warn if this isn't installed. Output is pretty-printed in the same style as for V and the format is controlled by the same options.") ); Wx::Event::EVT_CHECKBOX( $self, $self->{show_local_variables}, sub { shift->on_show_local_variables_checked(@_); }, ); $self->{show_global_variables} = Wx::CheckBox->new( $self, -1, Wx::gettext("Show Global Variables"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{show_global_variables}->SetToolTip( Wx::gettext("working now with some gigery pokery to get around\nIntermitent Error, You can't FIRSTKEY with the %~ hash") ); Wx::Event::EVT_CHECKBOX( $self, $self->{show_global_variables}, sub { shift->on_show_global_variables_checked(@_); }, ); $self->{trace} = Wx::CheckBox->new( $self, -1, Wx::gettext("Trace"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{trace}->SetToolTip( Wx::gettext("t\nToggle trace mode (see also the AutoTrace option).") ); Wx::Event::EVT_CHECKBOX( $self, $self->{trace}, sub { shift->on_trace_checked(@_); }, ); $self->{dot} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{dot}->SetToolTip( Wx::gettext(". Return to the executed line.") ); Wx::Event::EVT_BUTTON( $self, $self->{dot}, sub { shift->on_dot_clicked(@_); }, ); $self->{view_around} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{view_around}->SetToolTip( Wx::gettext("v [line] View window around line.") ); Wx::Event::EVT_BUTTON( $self, $self->{view_around}, sub { shift->on_view_around_clicked(@_); }, ); $self->{list_action} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{list_action}->SetToolTip( Wx::gettext("L [abw]\nList (default all) actions, breakpoints and watch expressions") ); Wx::Event::EVT_BUTTON( $self, $self->{list_action}, sub { shift->on_list_action_clicked(@_); }, ); $self->{running_bp} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{running_bp}->SetToolTip( Wx::gettext("Toggle running breakpoints (update DB)\nb\nSets breakpoint on current line\nB line\nDelete a breakpoint from the specified line.") ); Wx::Event::EVT_BUTTON( $self, $self->{running_bp}, sub { shift->on_running_bp_clicked(@_); }, ); $self->{module_versions} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{module_versions}->SetToolTip( Wx::gettext("M\nDisplay all loaded modules and their versions.") ); Wx::Event::EVT_BUTTON( $self, $self->{module_versions}, sub { shift->on_module_versions_clicked(@_); }, ); $self->{stacktrace} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{stacktrace}->SetToolTip( Wx::gettext("T\nProduce a stack backtrace.") ); Wx::Event::EVT_BUTTON( $self, $self->{stacktrace}, sub { shift->on_stacktrace_clicked(@_); }, ); $self->{all_threads} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{all_threads}->SetToolTip( Wx::gettext("E\nDisplay all thread ids the current one will be identified: <n>.") ); Wx::Event::EVT_BUTTON( $self, $self->{all_threads}, sub { shift->on_all_threads_clicked(@_); }, ); $self->{display_options} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{display_options}->SetToolTip( Wx::gettext("o\nDisplay all options.\n\no booloption ...\nSet each listed Boolean option to the value 1.\n\no anyoption? ...\nPrint out the value of one or more options.\n\no option=value ...\nSet the value of one or more options. If the value has internal whitespace, it should be quoted. For example, you could set o pager=\"less -MQeicsNfr\" to call less with those specific options. You may use either single or double quotes, but if you do, you must escape any embedded instances of same sort of quote you began with, as well as any escaping any escapes that immediately precede that quote but which are not meant to escape the quote itself. In other words, you follow single-quoting rules irrespective of the quote; eg: o option='this isn't bad' or o option=\"She said, \"Isn't it?\"\" .\n\nFor historical reasons, the =value is optional, but defaults to 1 only where it is safe to do so--that is, mostly for Boolean options. It is always better to assign a specific value using = . The option can be abbreviated, but for clarity probably should not be. Several options can be set together. See Configurable Options for a list of these.") ); Wx::Event::EVT_BUTTON( $self, $self->{display_options}, sub { shift->on_display_options_clicked(@_); }, ); $self->{m_staticline32} = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{evaluate_expression} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{evaluate_expression}->SetToolTip( Wx::gettext("Evaluate expression\n\t\$ -> p\n\t\@ -> x\n\t% -> x\n\np expr \nSame as print {\$DB::OUT} expr in the current package. In particular, because this is just Perl's own print function.\n\nx [maxdepth] expr\nEvaluates its expression in list context and dumps out the result in a pretty-printed fashion. Nested data structures are printed out recursively,") ); Wx::Event::EVT_BUTTON( $self, $self->{evaluate_expression}, sub { shift->on_evaluate_expression_clicked(@_); }, ); $self->{sub_names} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{sub_names}->SetToolTip( Wx::gettext("S [[!]regex]\nList subroutine names [not] matching the regex.") ); Wx::Event::EVT_BUTTON( $self, $self->{sub_names}, sub { shift->on_sub_names_clicked(@_); }, ); $self->{watchpoints} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{watchpoints}->SetToolTip( Wx::gettext("w expr\nAdd a global watch-expression. Whenever a watched global changes the debugger will stop and display the old and new values.\n\nW expr\nDelete watch-expression\nW *\nDelete all watch-expressions.") ); Wx::Event::EVT_BUTTON( $self, $self->{watchpoints}, sub { shift->on_watchpoints_clicked(@_); }, ); $self->{raw} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{raw}->SetToolTip( Wx::gettext("Raw\nYou can enter what ever debug command you want!") ); Wx::Event::EVT_BUTTON( $self, $self->{raw}, sub { shift->on_raw_clicked(@_); }, ); $self->{expression} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, [ 130, -1 ], ); $self->{expression}->SetToolTip( Wx::gettext("Expression To Evaluate") ); my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( $self->{debug}, 0, Wx::ALL, 1 ); $button_sizer->Add( $self->{step_in}, 0, Wx::ALL, 5 ); $button_sizer->Add( $self->{step_over}, 0, Wx::ALL, 5 ); $button_sizer->Add( $self->{step_out}, 0, Wx::ALL, 5 ); $button_sizer->Add( $self->{run_till}, 0, Wx::ALL, 5 ); $button_sizer->Add( $self->{display_value}, 0, Wx::ALL, 5 ); $button_sizer->Add( $self->{quit_debugger}, 0, Wx::ALL, 5 ); my $checkbox_sizer = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("Show"), ), Wx::VERTICAL, ); $checkbox_sizer->Add( $self->{show_local_variables}, 0, Wx::ALL, 2 ); $checkbox_sizer->Add( $self->{show_global_variables}, 0, Wx::ALL, 5 ); my $bSizer11 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer11->Add( $self->{trace}, 0, Wx::ALL, 5 ); $bSizer11->Add( $self->{dot}, 0, Wx::ALL, 5 ); $bSizer11->Add( $self->{view_around}, 0, Wx::ALL, 5 ); $bSizer11->Add( $self->{list_action}, 0, Wx::ALL, 5 ); my $option_button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $option_button_sizer->Add( $self->{running_bp}, 0, Wx::ALL, 5 ); $option_button_sizer->Add( $self->{module_versions}, 0, Wx::ALL, 5 ); $option_button_sizer->Add( $self->{stacktrace}, 0, Wx::ALL, 5 ); $option_button_sizer->Add( $self->{all_threads}, 0, Wx::ALL, 5 ); $option_button_sizer->Add( $self->{display_options}, 0, Wx::ALL, 5 ); my $with_options = Wx::BoxSizer->new(Wx::HORIZONTAL); $with_options->Add( $self->{evaluate_expression}, 0, Wx::ALL, 5 ); $with_options->Add( $self->{sub_names}, 0, Wx::ALL, 5 ); $with_options->Add( $self->{watchpoints}, 0, Wx::ALL, 5 ); $with_options->Add( $self->{raw}, 0, Wx::ALL, 5 ); my $expression = Wx::BoxSizer->new(Wx::HORIZONTAL); $expression->Add( $self->{expression}, 1, Wx::ALL, 5 ); my $debug_output_options = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("Debug-Output Options"), ), Wx::VERTICAL, ); $debug_output_options->Add( $bSizer11, 0, Wx::EXPAND, 5 ); $debug_output_options->Add( $option_button_sizer, 0, Wx::EXPAND, 5 ); $debug_output_options->Add( $self->{m_staticline32}, 0, Wx::EXPAND | Wx::ALL, 5 ); $debug_output_options->Add( $with_options, 0, Wx::EXPAND, 5 ); $debug_output_options->Add( $expression, 0, Wx::EXPAND, 5 ); my $bSizer10 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer10->Add( $button_sizer, 0, Wx::EXPAND, 5 ); $bSizer10->Add( $self->{variables}, 1, Wx::ALL | Wx::EXPAND, 5 ); $bSizer10->Add( $checkbox_sizer, 0, Wx::EXPAND, 5 ); $bSizer10->Add( $debug_output_options, 0, Wx::EXPAND, 5 ); $self->SetSizer($bSizer10); $self->Layout; return $self; } sub show_local_variables { $_[0]->{show_local_variables}; } sub trace { $_[0]->{trace}; } sub expression { $_[0]->{expression}; } sub on_debug_clicked { $_[0]->main->error('Handler method on_debug_clicked for event debug.OnButtonClick not implemented'); } sub on_step_in_clicked { $_[0]->main->error('Handler method on_step_in_clicked for event step_in.OnButtonClick not implemented'); } sub on_step_over_clicked { $_[0]->main->error('Handler method on_step_over_clicked for event step_over.OnButtonClick not implemented'); } sub on_step_out_clicked { $_[0]->main->error('Handler method on_step_out_clicked for event step_out.OnButtonClick not implemented'); } sub on_run_till_clicked { $_[0]->main->error('Handler method on_run_till_clicked for event run_till.OnButtonClick not implemented'); } sub on_display_value_clicked { $_[0]->main->error('Handler method on_display_value_clicked for event display_value.OnButtonClick not implemented'); } sub on_quit_debugger_clicked { $_[0]->main->error('Handler method on_quit_debugger_clicked for event quit_debugger.OnButtonClick not implemented'); } sub _on_list_item_selected { $_[0]->main->error('Handler method _on_list_item_selected for event variables.OnListItemSelected not implemented'); } sub on_show_local_variables_checked { $_[0]->main->error('Handler method on_show_local_variables_checked for event show_local_variables.OnCheckBox not implemented'); } sub on_show_global_variables_checked { $_[0]->main->error('Handler method on_show_global_variables_checked for event show_global_variables.OnCheckBox not implemented'); } sub on_trace_checked { $_[0]->main->error('Handler method on_trace_checked for event trace.OnCheckBox not implemented'); } sub on_dot_clicked { $_[0]->main->error('Handler method on_dot_clicked for event dot.OnButtonClick not implemented'); } sub on_view_around_clicked { $_[0]->main->error('Handler method on_view_around_clicked for event view_around.OnButtonClick not implemented'); } sub on_list_action_clicked { $_[0]->main->error('Handler method on_list_action_clicked for event list_action.OnButtonClick not implemented'); } sub on_running_bp_clicked { $_[0]->main->error('Handler method on_running_bp_clicked for event running_bp.OnButtonClick not implemented'); } sub on_module_versions_clicked { $_[0]->main->error('Handler method on_module_versions_clicked for event module_versions.OnButtonClick not implemented'); } sub on_stacktrace_clicked { $_[0]->main->error('Handler method on_stacktrace_clicked for event stacktrace.OnButtonClick not implemented'); } sub on_all_threads_clicked { $_[0]->main->error('Handler method on_all_threads_clicked for event all_threads.OnButtonClick not implemented'); } sub on_display_options_clicked { $_[0]->main->error('Handler method on_display_options_clicked for event display_options.OnButtonClick not implemented'); } sub on_evaluate_expression_clicked { $_[0]->main->error('Handler method on_evaluate_expression_clicked for event evaluate_expression.OnButtonClick not implemented'); } sub on_sub_names_clicked { $_[0]->main->error('Handler method on_sub_names_clicked for event sub_names.OnButtonClick not implemented'); } sub on_watchpoints_clicked { $_[0]->main->error('Handler method on_watchpoints_clicked for event watchpoints.OnButtonClick not implemented'); } sub on_raw_clicked { $_[0]->main->error('Handler method on_raw_clicked for event raw.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/PluginManager.pm��������������������������������������������������������0000644�0001750�0001750�00000012034�12237327555�017051� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::PluginManager; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx::Role::Main (); use Padre::Wx 'Html'; our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Plug-in Manager"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE | Wx::RESIZE_BORDER, ); $self->SetSizeHints( [ 720, 460 ], Wx::DefaultSize ); $self->SetMinSize( [ 720, 460 ] ); $self->{m_splitter2} = Wx::SplitterWindow->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_3D, ); $self->{m_splitter2}->SetSashGravity(0.0); $self->{m_panel5} = Wx::Panel->new( $self->{m_splitter2}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{list} = Wx::ListCtrl->new( $self->{m_panel5}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{list}, sub { shift->_on_list_item_selected(@_); }, ); $self->{m_panel4} = Wx::Panel->new( $self->{m_splitter2}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{details} = Wx::Panel->new( $self->{m_panel4}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{plugin_name} = Wx::StaticText->new( $self->{details}, -1, Wx::gettext("plugin name"), ); $self->{plugin_name}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{plugin_version} = Wx::StaticText->new( $self->{details}, -1, Wx::gettext("plugin version"), ); $self->{plugin_status} = Wx::StaticText->new( $self->{details}, -1, Wx::gettext("plugin status"), ); $self->{plugin_status}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{whtml} = Wx::HtmlWindow->new( $self->{details}, -1, Wx::DefaultPosition, Wx::DefaultSize, ); $self->{action} = Wx::Button->new( $self->{details}, -1, Wx::gettext("Enable"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{action}, sub { shift->action_clicked(@_); }, ); $self->{preferences} = Wx::Button->new( $self->{details}, -1, Wx::gettext("Preferences"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{preferences}, sub { shift->preferences_clicked(@_); }, ); $self->{cancel} = Wx::Button->new( $self->{details}, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{cancel}->SetDefault; my $bSizer109 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer109->Add( $self->{list}, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->{m_panel5}->SetSizerAndFit($bSizer109); $self->{m_panel5}->Layout; $self->{labels} = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->{labels}->Add( $self->{plugin_name}, 0, Wx::ALIGN_BOTTOM | Wx::ALL, 5 ); $self->{labels}->Add( 5, 0, 0, Wx::EXPAND, 5 ); $self->{labels}->Add( $self->{plugin_version}, 0, Wx::ALIGN_BOTTOM | Wx::BOTTOM | Wx::RIGHT, 6 ); $self->{labels}->Add( 50, 0, 1, Wx::EXPAND, 5 ); $self->{labels}->Add( $self->{plugin_status}, 0, Wx::ALIGN_BOTTOM | Wx::ALL, 5 ); my $bSizer113 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer113->Add( $self->{action}, 0, Wx::ALL, 5 ); $bSizer113->Add( $self->{preferences}, 0, Wx::BOTTOM | Wx::RIGHT | Wx::TOP, 5 ); $bSizer113->Add( 50, 0, 1, Wx::EXPAND, 5 ); $bSizer113->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $bSizer110 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer110->Add( $self->{labels}, 0, Wx::EXPAND, 5 ); $bSizer110->Add( $self->{whtml}, 1, Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer110->Add( $bSizer113, 0, Wx::EXPAND, 5 ); $self->{details}->SetSizerAndFit($bSizer110); $self->{details}->Layout; my $bSizer135 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer135->Add( $self->{details}, 1, Wx::EXPAND, 0 ); $self->{m_panel4}->SetSizerAndFit($bSizer135); $self->{m_panel4}->Layout; $self->{m_splitter2}->SplitVertically( $self->{m_panel5}, $self->{m_panel4}, 190, ); my $bSizer108 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer108->Add( $self->{m_splitter2}, 1, Wx::EXPAND, 5 ); $self->SetSizerAndFit($bSizer108); $self->Layout; return $self; } sub _on_list_item_selected { $_[0]->main->error('Handler method _on_list_item_selected for event list.OnListItemSelected not implemented'); } sub action_clicked { $_[0]->main->error('Handler method action_clicked for event action.OnButtonClick not implemented'); } sub preferences_clicked { $_[0]->main->error('Handler method preferences_clicked for event preferences.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/FindInFiles.pm����������������������������������������������������������0000644�0001750�0001750�00000011775�12237327555�016465� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::FindInFiles; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::Choice::Files (); use Padre::Wx::ComboBox::FindTerm (); use Padre::Wx::ComboBox::History (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Find in Files"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); Wx::Event::EVT_KEY_UP( $self, sub { shift->on_key_up(@_); }, ); my $m_staticText2 = Wx::StaticText->new( $self, -1, Wx::gettext("Search &Term:"), ); $self->{find_term} = Padre::Wx::ComboBox::FindTerm->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [ "search", ], ); Wx::Event::EVT_TEXT( $self, $self->{find_term}, sub { shift->refresh(@_); }, ); my $m_staticText3 = Wx::StaticText->new( $self, -1, Wx::gettext("Directory:"), ); $self->{find_directory} = Padre::Wx::ComboBox::History->new( $self, -1, "", Wx::DefaultPosition, [ 250, -1 ], [ "find_directory", ], ); $self->{directory} = Wx::Button->new( $self, -1, Wx::gettext("&Browse"), Wx::DefaultPosition, [ 50, -1 ], ); Wx::Event::EVT_BUTTON( $self, $self->{directory}, sub { shift->directory(@_); }, ); my $m_staticText4 = Wx::StaticText->new( $self, -1, Wx::gettext("File Types:"), ); $self->{find_types} = Padre::Wx::Choice::Files->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{find_types}->SetSelection(0); my $m_staticline2 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{find_regex} = Wx::CheckBox->new( $self, -1, Wx::gettext("&Regular Expression"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{find_case} = Wx::CheckBox->new( $self, -1, Wx::gettext("&Case Sensitive"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{find} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("&Find"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{find}->SetDefault; $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); my $bSizer4 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer4->Add( $self->{find_directory}, 1, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $bSizer4->Add( $self->{directory}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT | Wx::RIGHT, 5 ); my $fgSizer2 = Wx::FlexGridSizer->new( 2, 2, 0, 0 ); $fgSizer2->AddGrowableCol(1); $fgSizer2->SetFlexibleDirection(Wx::BOTH); $fgSizer2->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer2->Add( $m_staticText2, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $self->{find_term}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $fgSizer2->Add( $m_staticText3, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $bSizer4, 1, Wx::EXPAND, 5 ); $fgSizer2->Add( $m_staticText4, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $self->{find_types}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{find}, 0, Wx::ALL, 5 ); $buttons->Add( 20, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $fgSizer2, 1, Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline2, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $self->{find_regex}, 0, Wx::ALL, 5 ); $vsizer->Add( $self->{find_case}, 0, Wx::ALL, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($hsizer); $self->Layout; return $self; } sub find_term { $_[0]->{find_term}; } sub find_directory { $_[0]->{find_directory}; } sub find_types { $_[0]->{find_types}; } sub find_regex { $_[0]->{find_regex}; } sub find_case { $_[0]->{find_case}; } sub find { $_[0]->{find}; } sub on_key_up { $_[0]->main->error('Handler method on_key_up for event Padre::Wx::FBP::FindInFiles.OnKeyUp not implemented'); } sub refresh { $_[0]->main->error('Handler method refresh for event find_term.OnText not implemented'); } sub directory { $_[0]->main->error('Handler method directory for event directory.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���Padre-1.00/lib/Padre/Wx/FBP/SLOC.pm�����������������������������������������������������������������0000644�0001750�0001750�00000012157�12237327555�015066� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::SLOC; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Project Statistics"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); $self->{root} = Wx::StaticText->new( $self, -1, '', ); $self->{root}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline48 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText210 = Wx::StaticText->new( $self, -1, Wx::gettext("Files:"), ); $self->{files} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText213 = Wx::StaticText->new( $self, -1, Wx::gettext("Code Lines:"), ); $self->{code} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText215 = Wx::StaticText->new( $self, -1, Wx::gettext("Comments Lines:"), ); $self->{comment} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText217 = Wx::StaticText->new( $self, -1, Wx::gettext("Blank Lines:"), ); $self->{blank} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText218 = Wx::StaticText->new( $self, -1, Wx::gettext("Constructive Cost Model (COCOMO)"), ); $m_staticText218->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline50 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText219 = Wx::StaticText->new( $self, -1, Wx::gettext("Mythical Man Months:"), ); $self->{pax_months} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText221 = Wx::StaticText->new( $self, -1, Wx::gettext("Estimated Project Years:"), ); $self->{cal_years} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText223 = Wx::StaticText->new( $self, -1, Wx::gettext("Number of Developers:"), ); $self->{dev_count} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText225 = Wx::StaticText->new( $self, -1, Wx::gettext("Development Cost (USD):"), ); $self->{dev_cost} = Wx::StaticText->new( $self, -1, '', ); my $m_staticline49 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{cancel}->SetDefault; my $fgSizer29 = Wx::FlexGridSizer->new( 4, 2, 10, 20 ); $fgSizer29->AddGrowableCol(1); $fgSizer29->SetFlexibleDirection(Wx::HORIZONTAL); $fgSizer29->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer29->Add( $m_staticText210, 0, Wx::EXPAND, 5 ); $fgSizer29->Add( $self->{files}, 0, Wx::ALIGN_RIGHT, 5 ); $fgSizer29->Add( $m_staticText213, 0, Wx::EXPAND, 5 ); $fgSizer29->Add( $self->{code}, 0, Wx::ALIGN_RIGHT, 5 ); $fgSizer29->Add( $m_staticText215, 0, Wx::EXPAND, 5 ); $fgSizer29->Add( $self->{comment}, 0, Wx::ALIGN_RIGHT, 5 ); $fgSizer29->Add( $m_staticText217, 0, Wx::EXPAND, 5 ); $fgSizer29->Add( $self->{blank}, 0, Wx::ALIGN_RIGHT, 5 ); my $fgSizer30 = Wx::FlexGridSizer->new( 4, 2, 10, 20 ); $fgSizer30->AddGrowableCol(1); $fgSizer30->SetFlexibleDirection(Wx::HORIZONTAL); $fgSizer30->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer30->Add( $m_staticText219, 0, Wx::EXPAND, 5 ); $fgSizer30->Add( $self->{pax_months}, 0, Wx::ALIGN_RIGHT, 5 ); $fgSizer30->Add( $m_staticText221, 0, Wx::EXPAND, 5 ); $fgSizer30->Add( $self->{cal_years}, 0, Wx::ALIGN_RIGHT, 5 ); $fgSizer30->Add( $m_staticText223, 0, Wx::EXPAND, 5 ); $fgSizer30->Add( $self->{dev_count}, 0, Wx::ALIGN_RIGHT, 5 ); $fgSizer30->Add( $m_staticText225, 0, Wx::EXPAND, 5 ); $fgSizer30->Add( $self->{dev_cost}, 0, Wx::ALIGN_RIGHT, 5 ); my $bSizer124 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer124->SetMinSize( [ 150, -1 ] ); $bSizer124->Add( 0, 0, 1, Wx::EXPAND, 5 ); $bSizer124->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $bSizer123 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer123->Add( $self->{root}, 0, Wx::ALL | Wx::EXPAND, 5 ); $bSizer123->Add( $m_staticline48, 0, Wx::EXPAND, 5 ); $bSizer123->Add( $fgSizer29, 0, Wx::ALL | Wx::EXPAND, 5 ); $bSizer123->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer123->Add( $m_staticText218, 0, Wx::ALL, 5 ); $bSizer123->Add( $m_staticline50, 0, Wx::BOTTOM | Wx::EXPAND, 5 ); $bSizer123->Add( $fgSizer30, 1, Wx::ALL | Wx::EXPAND, 5 ); $bSizer123->Add( $m_staticline49, 0, Wx::EXPAND, 5 ); $bSizer123->Add( $bSizer124, 0, Wx::EXPAND, 5 ); $self->SetSizerAndFit($bSizer123); $self->Layout; return $self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Preferences.pm����������������������������������������������������������0000644�0001750�0001750�00000150633�12237327555�016571� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Preferences; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::Choice::Theme (); use Padre::Wx::Editor (); use Padre::Wx::ListView (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Padre Preferences"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE | Wx::RESIZE_BORDER, ); $self->{treebook} = Wx::Treebook->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, ); my $m_panel5 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText186 = Wx::StaticText->new( $m_panel5, -1, Wx::gettext("Function List"), ); $m_staticText186->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline361 = Wx::StaticLine->new( $m_panel5, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText6 = Wx::StaticText->new( $m_panel5, -1, Wx::gettext("Sort Order:"), ); $self->{main_functions_order} = Wx::Choice->new( $m_panel5, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_functions_order}->SetSelection(0); my $m_staticText190 = Wx::StaticText->new( $m_panel5, -1, Wx::gettext("Task List"), ); $m_staticText190->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline40 = Wx::StaticLine->new( $m_panel5, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText11 = Wx::StaticText->new( $m_panel5, -1, Wx::gettext("Item Regular Expression:"), ); $self->{main_tasks_regexp} = Wx::TextCtrl->new( $m_panel5, -1, "", Wx::DefaultPosition, [ 400, -1 ], ); my $m_staticText187 = Wx::StaticText->new( $m_panel5, -1, Wx::gettext("Miscellaneous"), ); $m_staticText187->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline37 = Wx::StaticLine->new( $m_panel5, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{window_list_shorten_path} = Wx::CheckBox->new( $m_panel5, -1, Wx::gettext("Shorten the common path in window list"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{main_output_ansi} = Wx::CheckBox->new( $m_panel5, -1, Wx::gettext("Coloured text in output window (ANSI)"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{info_on_statusbar} = Wx::CheckBox->new( $m_panel5, -1, Wx::gettext("Show low priority info messages on status bar (not in a popup)"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_panel4 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText36111 = Wx::StaticText->new( $m_panel4, -1, Wx::gettext("Content Assist"), ); $m_staticText36111->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline411 = Wx::StaticLine->new( $m_panel4, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{autocomplete_always} = Wx::CheckBox->new( $m_panel4, -1, Wx::gettext("Autocomplete always while typing"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{autocomplete_method} = Wx::CheckBox->new( $m_panel4, -1, Wx::gettext("Autocomplete new methods in packages"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{autocomplete_subroutine} = Wx::CheckBox->new( $m_panel4, -1, Wx::gettext("Autocomplete new functions in scripts"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText271 = Wx::StaticText->new( $m_panel4, -1, Wx::gettext("Minimum length of suggestions"), ); $self->{lang_perl5_autocomplete_min_suggestion_len} = Wx::SpinCtrl->new( $m_panel4, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_ARROW_KEYS, 1, 64, 1, ); my $m_staticText281 = Wx::StaticText->new( $m_panel4, -1, Wx::gettext("Maximum number of suggestions"), ); $self->{lang_perl5_autocomplete_max_suggestions} = Wx::SpinCtrl->new( $m_panel4, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_ARROW_KEYS, 5, 256, 5, ); my $m_staticText291 = Wx::StaticText->new( $m_panel4, -1, Wx::gettext("Minimum characters for autocomplete"), ); $self->{lang_perl5_autocomplete_min_chars} = Wx::SpinCtrl->new( $m_panel4, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_ARROW_KEYS, 1, 16, 1, ); my $m_staticText3511 = Wx::StaticText->new( $m_panel4, -1, Wx::gettext("Brace Assist"), ); $m_staticText3511->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline4111 = Wx::StaticLine->new( $m_panel4, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{autocomplete_brackets} = Wx::CheckBox->new( $m_panel4, -1, Wx::gettext("Autocomplete brackets"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{autocomplete_multiclosebracket} = Wx::CheckBox->new( $m_panel4, -1, Wx::gettext("Add another closing bracket if there already is one"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText35111 = Wx::StaticText->new( $m_panel4, -1, Wx::gettext("POD"), ); $m_staticText35111->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline41111 = Wx::StaticLine->new( $m_panel4, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{editor_fold_pod} = Wx::CheckBox->new( $m_panel4, -1, Wx::gettext("Auto-fold POD markup when code folding enabled"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_panel10 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText1931 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Tool Positions"), ); $m_staticText1931->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline451 = Wx::StaticLine->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText195 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Project Browser"), ); $self->{main_directory_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_directory_panel}->SetSelection(0); my $m_staticText194 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Function List"), ); $self->{main_functions_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_functions_panel}->SetSelection(0); my $m_staticText1961 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("File Outline"), ); $self->{main_outline_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_outline_panel}->SetSelection(0); my $m_staticText1971 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Task List"), ); $self->{main_tasks_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_tasks_panel}->SetSelection(0); $self->{label_cpan} = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("CPAN Explorer"), ); $self->{label_cpan}->Hide; $self->{main_cpan_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_cpan_panel}->SetSelection(0); $self->{main_cpan_panel}->Hide; $self->{label_vcs} = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Version Control"), ); $self->{label_vcs}->Hide; $self->{main_vcs_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_vcs_panel}->SetSelection(0); $self->{main_vcs_panel}->Hide; my $m_staticText201 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Syntax Check"), ); $self->{main_syntax_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_syntax_panel}->SetSelection(0); my $m_staticText202 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Output"), ); $self->{main_output_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_output_panel}->SetSelection(0); my $m_staticText203 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Find in Files"), ); $self->{main_foundinfiles_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_foundinfiles_panel}->SetSelection(0); my $m_staticText204 = Wx::StaticText->new( $m_panel10, -1, Wx::gettext("Replace In Files"), ); $self->{main_replaceinfiles_panel} = Wx::Choice->new( $m_panel10, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{main_replaceinfiles_panel}->SetSelection(0); my $m_panel2 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText191 = Wx::StaticText->new( $m_panel2, -1, Wx::gettext("Startup"), ); $m_staticText191->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline41 = Wx::StaticLine->new( $m_panel2, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText41 = Wx::StaticText->new( $m_panel2, -1, Wx::gettext("Open Files:"), ); $self->{startup_files} = Wx::Choice->new( $m_panel2, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{startup_files}->SetSelection(0); $self->{main_singleinstance} = Wx::CheckBox->new( $m_panel2, -1, Wx::gettext("Command line files open in existing Padre instance"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{startup_splash} = Wx::CheckBox->new( $m_panel2, -1, Wx::gettext("Show splash screen"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText192 = Wx::StaticText->new( $m_panel2, -1, Wx::gettext("New File Creation"), ); $m_staticText192->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline42 = Wx::StaticLine->new( $m_panel2, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText8 = Wx::StaticText->new( $m_panel2, -1, Wx::gettext("Default Newline Format:"), ); $self->{default_line_ending} = Wx::Choice->new( $m_panel2, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{default_line_ending}->SetSelection(0); my $m_staticText5 = Wx::StaticText->new( $m_panel2, -1, Wx::gettext("Default Project Directory:"), ); $self->{default_projects_directory} = Wx::DirPickerCtrl->new( $m_panel2, -1, "", Wx::gettext("Select a folder"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DIRP_DEFAULT_STYLE, ); my $m_staticText193 = Wx::StaticText->new( $m_panel2, -1, Wx::gettext("Editor Options"), ); $m_staticText193->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline43 = Wx::StaticLine->new( $m_panel2, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{editor_wordwrap} = Wx::CheckBox->new( $m_panel2, -1, Wx::gettext("Default word wrap on for each file"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{mid_button_paste} = Wx::CheckBox->new( $m_panel2, -1, Wx::gettext("Use X11 middle button paste style"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{editor_smart_highlight_enable} = Wx::CheckBox->new( $m_panel2, -1, Wx::gettext("Enable Smart highlighting while typing"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText196 = Wx::StaticText->new( $m_panel2, -1, Wx::gettext("Save and Close"), ); $m_staticText196->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline44 = Wx::StaticLine->new( $m_panel2, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{save_autoclean} = Wx::CheckBox->new( $m_panel2, -1, Wx::gettext("Clean up file content on saving (for supported document types)"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_panel3 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText341 = Wx::StaticText->new( $m_panel3, -1, Wx::gettext("Editor Style"), ); $m_staticText341->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{editor_style} = Padre::Wx::Choice::Theme->new( $m_panel3, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{editor_style}->SetSelection(0); Wx::Event::EVT_CHOICE( $self, $self->{editor_style}, sub { shift->preview_refresh(@_); }, ); my $m_staticline21 = Wx::StaticLine->new( $m_panel3, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText10 = Wx::StaticText->new( $m_panel3, -1, Wx::gettext("Cursor blink rate (milliseconds - 0 = off, 500 = default)"), ); $self->{editor_cursor_blink} = Wx::TextCtrl->new( $m_panel3, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); $self->{editor_cursor_blink}->SetMaxLength(4); $self->{editor_right_margin_enable} = Wx::CheckBox->new( $m_panel3, -1, Wx::gettext("Show right margin at column"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_CHECKBOX( $self, $self->{editor_right_margin_enable}, sub { shift->preview_refresh(@_); }, ); $self->{editor_right_margin_column} = Wx::TextCtrl->new( $m_panel3, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); $self->{editor_right_margin_column}->SetMaxLength(3); Wx::Event::EVT_TEXT( $self, $self->{editor_right_margin_column}, sub { shift->preview_refresh(@_); }, ); my $m_staticText17 = Wx::StaticText->new( $m_panel3, -1, Wx::gettext("Editor Font"), ); $self->{editor_font} = Wx::FontPickerCtrl->new( $m_panel3, -1, Wx::NullFont, Wx::DefaultPosition, [ 200, -1 ], Wx::FNTP_USE_TEXTCTRL, ); $self->{editor_font}->SetMaxPointSize(100); Wx::Event::EVT_FONTPICKER_CHANGED( $self, $self->{editor_font}, sub { shift->preview_refresh(@_); }, ); my $m_staticText18 = Wx::StaticText->new( $m_panel3, -1, Wx::gettext("Editor Current Line Background Colour"), ); $self->{editor_currentline_color} = Wx::ColourPickerCtrl->new( $m_panel3, -1, Wx::Colour->new( 0, 0, 0 ), Wx::DefaultPosition, Wx::DefaultSize, Wx::CLRP_DEFAULT_STYLE, ); Wx::Event::EVT_COLOURPICKER_CHANGED( $self, $self->{editor_currentline_color}, sub { shift->preview_refresh(@_); }, ); my $m_staticText331 = Wx::StaticText->new( $m_panel3, -1, Wx::gettext("Appearance Preview"), ); $m_staticText331->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{preview} = Padre::Wx::Editor->new( $m_panel3, -1, ); my $m_panel11 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText2041 = Wx::StaticText->new( $m_panel11, -1, Wx::gettext("Bloat Reduction"), ); $m_staticText2041->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline471 = Wx::StaticLine->new( $m_panel11, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText205 = Wx::StaticText->new( $m_panel11, -1, Wx::gettext("Optional features can be disabled to simplify the user interface,\nreduce memory consumption and make Padre run faster.\n\nChanges to features are only applied when Padre is restarted."), ); $self->{feature_bookmark} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Editor Bookmark Support"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_folding} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Editor Code Folding"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_cursormemory} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Editor Cursor Memory"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_session} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Editor Session Support"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_syntax_check_annotations} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Editor Syntax Annotations"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_document_diffs} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Editor Diff Feature"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_cpan} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("CPAN Explorer Tool"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_debugger} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Graphical Debugger Tool"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_vcs_support} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Version Control Tool"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{feature_fontsize} = Wx::CheckBox->new( $m_panel11, -1, Wx::gettext("Change Font Size (Outside Preferences)"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_panel1 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText183 = Wx::StaticText->new( $m_panel1, -1, Wx::gettext("Indent Settings"), ); $m_staticText183->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline36 = Wx::StaticLine->new( $m_panel1, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{editor_indent_tab} = Wx::CheckBox->new( $m_panel1, -1, Wx::gettext("Use tabs instead of spaces"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText3 = Wx::StaticText->new( $m_panel1, -1, Wx::gettext("Indent Spaces:"), ); $self->{editor_indent_width} = Wx::SpinCtrl->new( $m_panel1, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_ARROW_KEYS, 1, 10, 8, ); my $m_staticText2 = Wx::StaticText->new( $m_panel1, -1, Wx::gettext("Tab Spaces:"), ); $self->{editor_indent_tab_width} = Wx::SpinCtrl->new( $m_panel1, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_ARROW_KEYS, 1, 16, 8, ); $self->{editor_indent_guess} = Wx::Button->new( $m_panel1, -1, Wx::gettext("Guess from Current Document"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{editor_indent_guess}, sub { shift->guess(@_); }, ); my $m_staticText184 = Wx::StaticText->new( $m_panel1, -1, Wx::gettext("Indent Detection"), ); $m_staticText184->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline34 = Wx::StaticLine->new( $m_panel1, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{editor_indent_auto} = Wx::CheckBox->new( $m_panel1, -1, Wx::gettext("Detect indent settings for each file"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText185 = Wx::StaticText->new( $m_panel1, -1, Wx::gettext("Autoindent"), ); $m_staticText185->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline351 = Wx::StaticLine->new( $m_panel1, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText4 = Wx::StaticText->new( $m_panel1, -1, Wx::gettext("Indent on Newline:"), ); $self->{editor_autoindent} = Wx::Choice->new( $m_panel1, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{editor_autoindent}->SetSelection(0); $self->{keybindings_panel} = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText59 = Wx::StaticText->new( $self->{keybindings_panel}, -1, Wx::gettext("&Filter:"), ); $self->{filter} = Wx::TextCtrl->new( $self->{keybindings_panel}, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_TEXT( $self, $self->{filter}, sub { shift->_update_list(@_); }, ); $self->{list} = Padre::Wx::ListView->new( $self->{keybindings_panel}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_COL_CLICK( $self, $self->{list}, sub { shift->_on_list_col_click(@_); }, ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{list}, sub { shift->_on_list_item_selected(@_); }, ); $self->{shortcut_label} = Wx::StaticText->new( $self->{keybindings_panel}, -1, Wx::gettext("Shortcut:"), ); $self->{ctrl} = Wx::CheckBox->new( $self->{keybindings_panel}, -1, Wx::gettext("Ctrl"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{alt} = Wx::CheckBox->new( $self->{keybindings_panel}, -1, Wx::gettext("Alt"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{plus1_label} = Wx::StaticText->new( $self->{keybindings_panel}, -1, Wx::gettext("+"), ); $self->{shift} = Wx::CheckBox->new( $self->{keybindings_panel}, -1, Wx::gettext("Shift"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{plus2_label} = Wx::StaticText->new( $self->{keybindings_panel}, -1, Wx::gettext("+"), ); $self->{key} = Wx::Choice->new( $self->{keybindings_panel}, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{key}->SetSelection(0); $self->{button_set} = Wx::Button->new( $self->{keybindings_panel}, -1, Wx::gettext("S&et"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{button_set}->SetToolTip( Wx::gettext("Sets the keyboard binding") ); Wx::Event::EVT_BUTTON( $self, $self->{button_set}, sub { shift->_on_set_button(@_); }, ); $self->{button_delete} = Wx::Button->new( $self->{keybindings_panel}, -1, Wx::gettext("&Delete"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{button_delete}->SetToolTip( Wx::gettext("Delete the keyboard binding") ); Wx::Event::EVT_BUTTON( $self, $self->{button_delete}, sub { shift->_on_delete_button(@_); }, ); $self->{button_reset} = Wx::Button->new( $self->{keybindings_panel}, -1, Wx::gettext("&Reset"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{button_reset}->SetToolTip( Wx::gettext("Reset to default shortcut") ); Wx::Event::EVT_BUTTON( $self, $self->{button_reset}, sub { shift->_on_reset_button(@_); }, ); my $m_panel8 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText197 = Wx::StaticText->new( $m_panel8, -1, Wx::gettext("Change Detection"), ); $m_staticText197->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline45 = Wx::StaticLine->new( $m_panel8, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText9 = Wx::StaticText->new( $m_panel8, -1, Wx::gettext("Local file update poll interval in seconds (0 to disable)"), ); $self->{update_file_from_disk_interval} = Wx::SpinCtrl->new( $m_panel8, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_ARROW_KEYS, 0, 10, 0, ); my $m_staticText198 = Wx::StaticText->new( $m_panel8, -1, Wx::gettext("Open HTTP Files"), ); $m_staticText198->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline46 = Wx::StaticLine->new( $m_panel8, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText31 = Wx::StaticText->new( $m_panel8, -1, Wx::gettext("Timeout (seconds)"), ); $self->{file_http_timeout} = Wx::SpinCtrl->new( $m_panel8, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_ARROW_KEYS, 10, 900, 10, ); my $m_staticText199 = Wx::StaticText->new( $m_panel8, -1, Wx::gettext("Open FTP Files"), ); $m_staticText199->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline47 = Wx::StaticLine->new( $m_panel8, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{file_ftp_passive} = Wx::CheckBox->new( $m_panel8, -1, Wx::gettext("Use FTP passive mode"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText33 = Wx::StaticText->new( $m_panel8, -1, Wx::gettext("Timeout (seconds)"), ); $self->{file_ftp_timeout} = Wx::SpinCtrl->new( $m_panel8, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::SP_ARROW_KEYS, 10, 900, 10, ); my $m_panel7 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText39 = Wx::StaticText->new( $m_panel7, -1, Wx::gettext("Language Integration"), ); $m_staticText39->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline10 = Wx::StaticLine->new( $m_panel7, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{lang_perl5_beginner} = Wx::CheckBox->new( $m_panel7, -1, Wx::gettext("Enable Perl beginner mode"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText34 = Wx::StaticText->new( $m_panel7, -1, Wx::gettext("Perl Executable:"), ); $self->{run_perl_cmd} = Wx::TextCtrl->new( $m_panel7, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText26 = Wx::StaticText->new( $m_panel7, -1, Wx::gettext("Perl Ctags File:"), ); $self->{lang_perl5_tags_file} = Wx::FilePickerCtrl->new( $m_panel7, -1, "", Wx::gettext("Select a file"), "*.*", Wx::DefaultPosition, Wx::DefaultSize, Wx::FLP_DEFAULT_STYLE, ); my $m_staticText189 = Wx::StaticText->new( $m_panel7, -1, Wx::gettext("Script Execution"), ); $m_staticText189->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline39 = Wx::StaticLine->new( $m_panel7, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{run_use_external_window} = Wx::CheckBox->new( $m_panel7, -1, Wx::gettext("Use external window for execution"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText35 = Wx::StaticText->new( $m_panel7, -1, Wx::gettext("Perl Arguments"), ); $self->{run_interpreter_args_default} = Wx::TextCtrl->new( $m_panel7, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText36 = Wx::StaticText->new( $m_panel7, -1, Wx::gettext("Include directory: -I<dir>\nEnable tainting checks: -T\nEnable many useful warnings: -w\nEnable all warnings: -W\nDisable all warnings: -X"), ); my $m_staticText37 = Wx::StaticText->new( $m_panel7, -1, Wx::gettext("Script Arguments"), ); $self->{run_script_args_default} = Wx::TextCtrl->new( $m_panel7, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); my $m_panel6 = Wx::Panel->new( $self->{treebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); my $m_staticText391 = Wx::StaticText->new( $m_panel6, -1, Wx::gettext("Language Integration"), ); $m_staticText391->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline101 = Wx::StaticLine->new( $m_panel6, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{lang_perl6_auto_detection} = Wx::CheckBox->new( $m_panel6, -1, Wx::gettext("Detect Perl 6 files"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{save} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("&Save"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{save}->SetDefault; $self->{advanced} = Wx::Button->new( $self, -1, Wx::gettext("&Advanced..."), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{advanced}, sub { shift->advanced(@_); }, ); $self->{cancel} = Wx::Button->new( $self, -1, Wx::gettext("&Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{cancel}, sub { shift->cancel(@_); }, ); my $fgSizer241 = Wx::FlexGridSizer->new( 1, 2, 5, 5 ); $fgSizer241->SetFlexibleDirection(Wx::BOTH); $fgSizer241->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer241->Add( $m_staticText6, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer241->Add( $self->{main_functions_order}, 0, Wx::EXPAND, 5 ); my $bSizer116 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer116->Add( $m_staticText186, 0, Wx::ALL, 5 ); $bSizer116->Add( $m_staticline361, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer116->Add( $fgSizer241, 0, Wx::ALL, 5 ); $bSizer116->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer116->Add( $m_staticText190, 0, Wx::ALL, 5 ); $bSizer116->Add( $m_staticline40, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer116->Add( $m_staticText11, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $bSizer116->Add( $self->{main_tasks_regexp}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::BOTTOM | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer116->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer116->Add( $m_staticText187, 0, Wx::ALL, 5 ); $bSizer116->Add( $m_staticline37, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer116->Add( $self->{window_list_shorten_path}, 0, Wx::ALL, 5 ); $bSizer116->Add( $self->{main_output_ansi}, 0, Wx::ALL, 5 ); $bSizer116->Add( $self->{info_on_statusbar}, 0, Wx::ALL, 5 ); $m_panel5->SetSizerAndFit($bSizer116); $m_panel5->Layout; my $fgSizer411 = Wx::FlexGridSizer->new( 6, 2, 5, 5 ); $fgSizer411->SetFlexibleDirection(Wx::BOTH); $fgSizer411->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer411->Add( $m_staticText271, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 0 ); $fgSizer411->Add( $self->{lang_perl5_autocomplete_min_suggestion_len}, 0, Wx::ALL, 0 ); $fgSizer411->Add( $m_staticText281, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 0 ); $fgSizer411->Add( $self->{lang_perl5_autocomplete_max_suggestions}, 0, Wx::ALL, 0 ); $fgSizer411->Add( $m_staticText291, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 0 ); $fgSizer411->Add( $self->{lang_perl5_autocomplete_min_chars}, 0, Wx::ALL, 0 ); my $fgSizer413 = Wx::FlexGridSizer->new( 1, 1, 0, 0 ); $fgSizer413->SetFlexibleDirection(Wx::BOTH); $fgSizer413->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer413->Add( 0, 0, 1, Wx::EXPAND, 5 ); $fgSizer413->Add( $self->{editor_fold_pod}, 0, Wx::ALL, 5 ); $fgSizer413->Add( 0, 0, 1, Wx::EXPAND, 5 ); my $bSizer41 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer41->Add( $m_staticText36111, 0, Wx::ALL, 5 ); $bSizer41->Add( $m_staticline411, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer41->Add( $self->{autocomplete_always}, 0, Wx::ALL, 5 ); $bSizer41->Add( $self->{autocomplete_method}, 0, Wx::ALL, 5 ); $bSizer41->Add( $self->{autocomplete_subroutine}, 0, Wx::ALL, 5 ); $bSizer41->Add( $fgSizer411, 0, Wx::ALL, 5 ); $bSizer41->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer41->Add( $m_staticText3511, 0, Wx::ALL, 5 ); $bSizer41->Add( $m_staticline4111, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer41->Add( $self->{autocomplete_brackets}, 0, Wx::ALL, 5 ); $bSizer41->Add( $self->{autocomplete_multiclosebracket}, 0, Wx::ALL, 5 ); $bSizer41->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer41->Add( $m_staticText35111, 0, Wx::ALL, 5 ); $bSizer41->Add( $m_staticline41111, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer41->Add( $fgSizer413, 0, 0, 5 ); $m_panel4->SetSizerAndFit($bSizer41); $m_panel4->Layout; my $fgSizer29 = Wx::FlexGridSizer->new( 10, 2, 5, 20 ); $fgSizer29->SetFlexibleDirection(Wx::BOTH); $fgSizer29->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer29->Add( $m_staticText195, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_directory_panel}, 0, 0, 5 ); $fgSizer29->Add( $m_staticText194, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_functions_panel}, 0, 0, 5 ); $fgSizer29->Add( $m_staticText1961, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_outline_panel}, 0, 0, 5 ); $fgSizer29->Add( $m_staticText1971, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_tasks_panel}, 0, 0, 5 ); $fgSizer29->Add( $self->{label_cpan}, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_cpan_panel}, 0, 0, 5 ); $fgSizer29->Add( $self->{label_vcs}, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_vcs_panel}, 0, 0, 5 ); $fgSizer29->Add( $m_staticText201, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_syntax_panel}, 0, 0, 5 ); $fgSizer29->Add( $m_staticText202, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_output_panel}, 0, 0, 5 ); $fgSizer29->Add( $m_staticText203, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_foundinfiles_panel}, 0, 0, 5 ); $fgSizer29->Add( $m_staticText204, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer29->Add( $self->{main_replaceinfiles_panel}, 0, 0, 5 ); my $bSizer118 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer118->Add( $m_staticText1931, 0, Wx::ALL, 5 ); $bSizer118->Add( $m_staticline451, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer118->Add( $fgSizer29, 0, Wx::ALL, 5 ); $m_panel10->SetSizerAndFit($bSizer118); $m_panel10->Layout; my $fgSizer30 = Wx::FlexGridSizer->new( 1, 2, 5, 5 ); $fgSizer30->SetFlexibleDirection(Wx::BOTH); $fgSizer30->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer30->Add( $m_staticText41, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer30->Add( $self->{startup_files}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::EXPAND, 5 ); my $fgSizer28 = Wx::FlexGridSizer->new( 2, 2, 5, 5 ); $fgSizer28->SetMinSize( [ 400, -1 ] ); $fgSizer28->AddGrowableCol(1); $fgSizer28->SetFlexibleDirection(Wx::BOTH); $fgSizer28->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer28->Add( $m_staticText8, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer28->Add( $self->{default_line_ending}, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer28->Add( $m_staticText5, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer28->Add( $self->{default_projects_directory}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::EXPAND, 5 ); my $bSizer117 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer117->Add( $m_staticText191, 0, Wx::ALL, 5 ); $bSizer117->Add( $m_staticline41, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer117->Add( $fgSizer30, 0, Wx::ALL, 5 ); $bSizer117->Add( $self->{main_singleinstance}, 0, Wx::ALL, 5 ); $bSizer117->Add( $self->{startup_splash}, 0, Wx::ALL, 5 ); $bSizer117->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer117->Add( $m_staticText192, 0, Wx::ALL, 5 ); $bSizer117->Add( $m_staticline42, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer117->Add( $fgSizer28, 0, Wx::ALL, 5 ); $bSizer117->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer117->Add( $m_staticText193, 0, Wx::ALL, 5 ); $bSizer117->Add( $m_staticline43, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer117->Add( $self->{editor_wordwrap}, 0, Wx::ALL, 5 ); $bSizer117->Add( $self->{mid_button_paste}, 0, Wx::ALL, 5 ); $bSizer117->Add( $self->{editor_smart_highlight_enable}, 0, Wx::ALL, 5 ); $bSizer117->Add( 0, 10, 0, 0, 5 ); $bSizer117->Add( $m_staticText196, 0, Wx::ALL, 5 ); $bSizer117->Add( $m_staticline44, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer117->Add( $self->{save_autoclean}, 0, Wx::ALL, 5 ); $bSizer117->Add( 0, 10, 0, Wx::EXPAND, 5 ); $m_panel2->SetSizerAndFit($bSizer117); $m_panel2->Layout; my $fgSizer91 = Wx::FlexGridSizer->new( 1, 2, 0, 0 ); $fgSizer91->SetFlexibleDirection(Wx::BOTH); $fgSizer91->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer91->Add( $m_staticText341, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer91->Add( $self->{editor_style}, 0, Wx::ALL, 5 ); my $fgSizer4 = Wx::FlexGridSizer->new( 4, 2, 0, 20 ); $fgSizer4->AddGrowableCol(1); $fgSizer4->SetFlexibleDirection(Wx::BOTH); $fgSizer4->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer4->Add( $m_staticText10, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer4->Add( $self->{editor_cursor_blink}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer4->Add( $self->{editor_right_margin_enable}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer4->Add( $self->{editor_right_margin_column}, 0, Wx::ALL, 5 ); $fgSizer4->Add( $m_staticText17, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer4->Add( $self->{editor_font}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer4->Add( $m_staticText18, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer4->Add( $self->{editor_currentline_color}, 0, Wx::ALL | Wx::EXPAND, 5 ); my $bSizer4 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer4->Add( $fgSizer91, 0, 0, 5 ); $bSizer4->Add( $m_staticline21, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer4->Add( $fgSizer4, 0, 0, 0 ); $bSizer4->Add( $m_staticText331, 0, Wx::ALL, 5 ); $bSizer4->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer4->Add( $self->{preview}, 1, Wx::EXPAND, 5 ); $m_panel3->SetSizerAndFit($bSizer4); $m_panel3->Layout; my $bSizer121 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer121->Add( $m_staticText2041, 0, Wx::ALL, 5 ); $bSizer121->Add( $m_staticline471, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer121->Add( $m_staticText205, 0, Wx::BOTTOM | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer121->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer121->Add( $self->{feature_bookmark}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_folding}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_cursormemory}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_session}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_syntax_check_annotations}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_document_diffs}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_cpan}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_debugger}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_vcs_support}, 0, Wx::ALL, 5 ); $bSizer121->Add( $self->{feature_fontsize}, 0, Wx::ALL, 5 ); $m_panel11->SetSizerAndFit($bSizer121); $m_panel11->Layout; my $fgSizer24 = Wx::FlexGridSizer->new( 2, 2, 5, 5 ); $fgSizer24->SetFlexibleDirection(Wx::BOTH); $fgSizer24->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer24->Add( $m_staticText3, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer24->Add( $self->{editor_indent_width}, 0, 0, 5 ); $fgSizer24->Add( $m_staticText2, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer24->Add( $self->{editor_indent_tab_width}, 0, 0, 5 ); my $bSizer114 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer114->Add( $self->{editor_indent_tab}, 0, Wx::ALL, 5 ); $bSizer114->Add( $fgSizer24, 0, Wx::ALL, 5 ); my $bSizer1131 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer1131->Add( $bSizer114, 1, Wx::EXPAND, 5 ); $bSizer1131->Add( 20, 0, 0, 0, 5 ); $bSizer1131->Add( $self->{editor_indent_guess}, 1, Wx::ALIGN_LEFT | Wx::ALIGN_TOP | Wx::ALL, 5 ); my $fgSizer23 = Wx::FlexGridSizer->new( 2, 2, 5, 5 ); $fgSizer23->SetFlexibleDirection(Wx::BOTH); $fgSizer23->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer23->Add( $m_staticText4, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer23->Add( $self->{editor_autoindent}, 0, 0, 5 ); my $bSizer113 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer113->Add( $m_staticText183, 0, Wx::ALL, 5 ); $bSizer113->Add( $m_staticline36, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer113->Add( $bSizer1131, 0, 0, 5 ); $bSizer113->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer113->Add( $m_staticText184, 0, Wx::ALL, 5 ); $bSizer113->Add( $m_staticline34, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer113->Add( $self->{editor_indent_auto}, 0, Wx::ALL, 5 ); $bSizer113->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer113->Add( $m_staticText185, 0, Wx::ALL, 5 ); $bSizer113->Add( $m_staticline351, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer113->Add( $fgSizer23, 0, Wx::ALL, 5 ); $m_panel1->SetSizerAndFit($bSizer113); $m_panel1->Layout; my $filter_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $filter_sizer->Add( $m_staticText59, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $filter_sizer->Add( $self->{filter}, 1, Wx::ALL, 5 ); my $ctrl_alt_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $ctrl_alt_sizer->Add( $self->{ctrl}, 0, Wx::ALL, 5 ); $ctrl_alt_sizer->Add( $self->{alt}, 0, Wx::ALL, 5 ); my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( $self->{button_set}, 0, Wx::ALL, 5 ); $button_sizer->Add( $self->{button_delete}, 0, Wx::ALL, 5 ); $button_sizer->Add( $self->{button_reset}, 0, Wx::ALL, 5 ); my $bottom_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $bottom_sizer->Add( 15, 0, 0, Wx::EXPAND, 0 ); $bottom_sizer->Add( $self->{shortcut_label}, 0, Wx::ALIGN_CENTER, 5 ); $bottom_sizer->Add( 0, 0, 1, Wx::EXPAND, 5 ); $bottom_sizer->Add( $ctrl_alt_sizer, 1, Wx::EXPAND, 5 ); $bottom_sizer->Add( $self->{plus1_label}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $bottom_sizer->Add( $self->{shift}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $bottom_sizer->Add( $self->{plus2_label}, 0, Wx::ALIGN_CENTER | Wx::ALL, 5 ); $bottom_sizer->Add( $self->{key}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $bottom_sizer->Add( 0, 0, 1, Wx::EXPAND, 5 ); $bottom_sizer->Add( $button_sizer, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT, 0 ); $bottom_sizer->Add( 15, 0, 0, Wx::EXPAND, 0 ); my $sizer = Wx::BoxSizer->new(Wx::VERTICAL); $sizer->Add( $filter_sizer, 0, Wx::EXPAND, 5 ); $sizer->Add( $self->{list}, 1, Wx::ALL | Wx::EXPAND, 5 ); $sizer->Add( $bottom_sizer, 0, Wx::EXPAND, 0 ); $self->{keybindings_panel}->SetSizerAndFit($sizer); $self->{keybindings_panel}->Layout; my $fgSizer34 = Wx::FlexGridSizer->new( 1, 2, 5, 5 ); $fgSizer34->SetFlexibleDirection(Wx::BOTH); $fgSizer34->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer34->Add( $m_staticText9, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer34->Add( $self->{update_file_from_disk_interval}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT | Wx::EXPAND, 5 ); my $fgSizer35 = Wx::FlexGridSizer->new( 1, 2, 5, 5 ); $fgSizer35->SetFlexibleDirection(Wx::BOTH); $fgSizer35->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer35->Add( $m_staticText31, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer35->Add( $self->{file_http_timeout}, 0, 0, 5 ); my $fgSizer36 = Wx::FlexGridSizer->new( 1, 2, 5, 5 ); $fgSizer36->SetFlexibleDirection(Wx::BOTH); $fgSizer36->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer36->Add( $m_staticText33, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer36->Add( $self->{file_ftp_timeout}, 0, 0, 5 ); my $bSizer120 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer120->Add( $m_staticText197, 0, Wx::ALL, 5 ); $bSizer120->Add( $m_staticline45, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer120->Add( $fgSizer34, 0, Wx::ALL, 5 ); $bSizer120->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer120->Add( $m_staticText198, 0, Wx::ALL, 5 ); $bSizer120->Add( $m_staticline46, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer120->Add( $fgSizer35, 0, Wx::ALL, 5 ); $bSizer120->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer120->Add( $m_staticText199, 0, Wx::ALL, 5 ); $bSizer120->Add( $m_staticline47, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer120->Add( $self->{file_ftp_passive}, 0, Wx::ALL, 5 ); $bSizer120->Add( $fgSizer36, 0, Wx::ALL, 5 ); $m_panel8->SetSizerAndFit($bSizer120); $m_panel8->Layout; my $fgSizer25 = Wx::FlexGridSizer->new( 2, 2, 5, 5 ); $fgSizer25->SetMinSize( [ 500, -1 ] ); $fgSizer25->AddGrowableCol(1); $fgSizer25->SetFlexibleDirection(Wx::BOTH); $fgSizer25->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer25->Add( $m_staticText34, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer25->Add( $self->{run_perl_cmd}, 0, Wx::EXPAND, 5 ); $fgSizer25->Add( $m_staticText26, 0, Wx::ALIGN_CENTER_VERTICAL, 5 ); $fgSizer25->Add( $self->{lang_perl5_tags_file}, 0, Wx::EXPAND, 5 ); my $fgSizer71 = Wx::FlexGridSizer->new( 5, 2, 0, 0 ); $fgSizer71->SetFlexibleDirection(Wx::BOTH); $fgSizer71->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_ALL); $fgSizer71->Add( $m_staticText35, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer71->Add( $self->{run_interpreter_args_default}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer71->Add( 0, 0, 1, Wx::EXPAND, 5 ); $fgSizer71->Add( $m_staticText36, 0, Wx::ALL, 5 ); $fgSizer71->Add( $m_staticText37, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer71->Add( $self->{run_script_args_default}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer71->Add( 0, 0, 1, Wx::EXPAND, 5 ); my $bSizer71 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer71->Add( $m_staticText39, 0, Wx::ALL, 5 ); $bSizer71->Add( $m_staticline10, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer71->Add( $self->{lang_perl5_beginner}, 0, Wx::ALL, 5 ); $bSizer71->Add( $fgSizer25, 0, Wx::ALL, 5 ); $bSizer71->Add( 0, 10, 0, Wx::EXPAND, 5 ); $bSizer71->Add( $m_staticText189, 0, Wx::ALL, 5 ); $bSizer71->Add( $m_staticline39, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer71->Add( $self->{run_use_external_window}, 0, Wx::ALL, 5 ); $bSizer71->Add( $fgSizer71, 0, 0, 5 ); $m_panel7->SetSizerAndFit($bSizer71); $m_panel7->Layout; my $fgSizer711 = Wx::FlexGridSizer->new( 5, 2, 0, 0 ); $fgSizer711->SetFlexibleDirection(Wx::BOTH); $fgSizer711->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_ALL); $fgSizer711->Add( $self->{lang_perl6_auto_detection}, 0, Wx::ALL, 5 ); my $bSizer711 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer711->Add( $m_staticText391, 0, Wx::ALL, 5 ); $bSizer711->Add( $m_staticline101, 0, Wx::BOTTOM | Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $bSizer711->Add( $fgSizer711, 0, 0, 5 ); $m_panel6->SetSizerAndFit($bSizer711); $m_panel6->Layout; $self->{treebook}->AddPage( $m_panel5, Wx::gettext("Appearance"), 1 ); $self->{treebook}->AddPage( $m_panel4, Wx::gettext("Autocomplete"), 0 ); $self->{treebook}->AddPage( $m_panel10, Wx::gettext("Screen Layout"), 0 ); $self->{treebook}->AddPage( $m_panel2, Wx::gettext("Behaviour"), 0 ); $self->{treebook}->AddPage( $m_panel3, Wx::gettext("Editor Style"), 0 ); $self->{treebook}->AddPage( $m_panel11, Wx::gettext("Features"), 0 ); $self->{treebook}->AddPage( $m_panel1, Wx::gettext("Indentation"), 0 ); $self->{treebook}->AddPage( $self->{keybindings_panel}, Wx::gettext("Key Bindings"), 0 ); $self->{treebook}->AddPage( $m_panel8, Wx::gettext("File Handling"), 0 ); $self->{treebook}->AddPage( $m_panel7, Wx::gettext("Language - Perl 5"), 0 ); $self->{treebook}->AddPage( $m_panel6, Wx::gettext("Language - Perl 6"), 0 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{save}, 0, Wx::ALL, 5 ); $buttons->Add( $self->{advanced}, 0, Wx::ALL, 5 ); $buttons->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $self->{treebook}, 1, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( 0, 0, 0, Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::ALIGN_RIGHT, 5 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($hsizer); $self->Layout; return $self; } sub treebook { $_[0]->{treebook}; } sub main_functions_order { $_[0]->{main_functions_order}; } sub main_tasks_regexp { $_[0]->{main_tasks_regexp}; } sub window_list_shorten_path { $_[0]->{window_list_shorten_path}; } sub main_output_ansi { $_[0]->{main_output_ansi}; } sub info_on_statusbar { $_[0]->{info_on_statusbar}; } sub autocomplete_always { $_[0]->{autocomplete_always}; } sub autocomplete_method { $_[0]->{autocomplete_method}; } sub autocomplete_subroutine { $_[0]->{autocomplete_subroutine}; } sub lang_perl5_autocomplete_min_suggestion_len { $_[0]->{lang_perl5_autocomplete_min_suggestion_len}; } sub lang_perl5_autocomplete_max_suggestions { $_[0]->{lang_perl5_autocomplete_max_suggestions}; } sub lang_perl5_autocomplete_min_chars { $_[0]->{lang_perl5_autocomplete_min_chars}; } sub autocomplete_brackets { $_[0]->{autocomplete_brackets}; } sub autocomplete_multiclosebracket { $_[0]->{autocomplete_multiclosebracket}; } sub editor_fold_pod { $_[0]->{editor_fold_pod}; } sub main_directory_panel { $_[0]->{main_directory_panel}; } sub main_functions_panel { $_[0]->{main_functions_panel}; } sub main_outline_panel { $_[0]->{main_outline_panel}; } sub main_tasks_panel { $_[0]->{main_tasks_panel}; } sub main_cpan_panel { $_[0]->{main_cpan_panel}; } sub main_vcs_panel { $_[0]->{main_vcs_panel}; } sub main_syntax_panel { $_[0]->{main_syntax_panel}; } sub main_output_panel { $_[0]->{main_output_panel}; } sub main_foundinfiles_panel { $_[0]->{main_foundinfiles_panel}; } sub main_replaceinfiles_panel { $_[0]->{main_replaceinfiles_panel}; } sub startup_files { $_[0]->{startup_files}; } sub main_singleinstance { $_[0]->{main_singleinstance}; } sub startup_splash { $_[0]->{startup_splash}; } sub default_line_ending { $_[0]->{default_line_ending}; } sub default_projects_directory { $_[0]->{default_projects_directory}; } sub editor_wordwrap { $_[0]->{editor_wordwrap}; } sub mid_button_paste { $_[0]->{mid_button_paste}; } sub editor_smart_highlight_enable { $_[0]->{editor_smart_highlight_enable}; } sub save_autoclean { $_[0]->{save_autoclean}; } sub editor_style { $_[0]->{editor_style}; } sub editor_cursor_blink { $_[0]->{editor_cursor_blink}; } sub editor_right_margin_enable { $_[0]->{editor_right_margin_enable}; } sub editor_right_margin_column { $_[0]->{editor_right_margin_column}; } sub editor_font { $_[0]->{editor_font}; } sub editor_currentline_color { $_[0]->{editor_currentline_color}; } sub preview { $_[0]->{preview}; } sub feature_bookmark { $_[0]->{feature_bookmark}; } sub feature_folding { $_[0]->{feature_folding}; } sub feature_cursormemory { $_[0]->{feature_cursormemory}; } sub feature_session { $_[0]->{feature_session}; } sub feature_syntax_check_annotations { $_[0]->{feature_syntax_check_annotations}; } sub feature_document_diffs { $_[0]->{feature_document_diffs}; } sub feature_cpan { $_[0]->{feature_cpan}; } sub feature_debugger { $_[0]->{feature_debugger}; } sub feature_vcs_support { $_[0]->{feature_vcs_support}; } sub feature_fontsize { $_[0]->{feature_fontsize}; } sub editor_indent_tab { $_[0]->{editor_indent_tab}; } sub editor_indent_width { $_[0]->{editor_indent_width}; } sub editor_indent_tab_width { $_[0]->{editor_indent_tab_width}; } sub editor_indent_auto { $_[0]->{editor_indent_auto}; } sub editor_autoindent { $_[0]->{editor_autoindent}; } sub update_file_from_disk_interval { $_[0]->{update_file_from_disk_interval}; } sub file_http_timeout { $_[0]->{file_http_timeout}; } sub file_ftp_passive { $_[0]->{file_ftp_passive}; } sub file_ftp_timeout { $_[0]->{file_ftp_timeout}; } sub lang_perl5_beginner { $_[0]->{lang_perl5_beginner}; } sub run_perl_cmd { $_[0]->{run_perl_cmd}; } sub lang_perl5_tags_file { $_[0]->{lang_perl5_tags_file}; } sub run_use_external_window { $_[0]->{run_use_external_window}; } sub run_interpreter_args_default { $_[0]->{run_interpreter_args_default}; } sub run_script_args_default { $_[0]->{run_script_args_default}; } sub lang_perl6_auto_detection { $_[0]->{lang_perl6_auto_detection}; } sub preview_refresh { $_[0]->main->error('Handler method preview_refresh for event editor_style.OnChoice not implemented'); } sub guess { $_[0]->main->error('Handler method guess for event editor_indent_guess.OnButtonClick not implemented'); } sub _update_list { $_[0]->main->error('Handler method _update_list for event filter.OnText not implemented'); } sub _on_list_col_click { $_[0]->main->error('Handler method _on_list_col_click for event list.OnListColClick not implemented'); } sub _on_list_item_selected { $_[0]->main->error('Handler method _on_list_item_selected for event list.OnListItemSelected not implemented'); } sub _on_set_button { $_[0]->main->error('Handler method _on_set_button for event button_set.OnButtonClick not implemented'); } sub _on_delete_button { $_[0]->main->error('Handler method _on_delete_button for event button_delete.OnButtonClick not implemented'); } sub _on_reset_button { $_[0]->main->error('Handler method _on_reset_button for event button_reset.OnButtonClick not implemented'); } sub advanced { $_[0]->main->error('Handler method advanced for event advanced.OnButtonClick not implemented'); } sub cancel { $_[0]->main->error('Handler method cancel for event cancel.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/ReplaceInFiles.pm�������������������������������������������������������0000644�0001750�0001750�00000012541�12237327555�017150� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::ReplaceInFiles; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::Choice::Files (); use Padre::Wx::ComboBox::FindTerm (); use Padre::Wx::ComboBox::History (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Replace in Files"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); my $m_staticText2 = Wx::StaticText->new( $self, -1, Wx::gettext("Search &Term:"), ); $self->{find_term} = Padre::Wx::ComboBox::FindTerm->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [ "search", ], ); Wx::Event::EVT_TEXT( $self, $self->{find_term}, sub { shift->refresh(@_); }, ); my $m_staticText21 = Wx::StaticText->new( $self, -1, Wx::gettext("Replace With:"), ); $self->{replace_term} = Padre::Wx::ComboBox::History->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [ "replace", ], ); Wx::Event::EVT_TEXT( $self, $self->{replace_term}, sub { shift->refresh(@_); }, ); my $m_staticText3 = Wx::StaticText->new( $self, -1, Wx::gettext("Directory:"), ); $self->{find_directory} = Padre::Wx::ComboBox::History->new( $self, -1, "", Wx::DefaultPosition, [ 250, -1 ], [ "find_directory", ], ); $self->{directory} = Wx::Button->new( $self, -1, Wx::gettext("&Browse"), Wx::DefaultPosition, [ 50, -1 ], ); Wx::Event::EVT_BUTTON( $self, $self->{directory}, sub { shift->directory(@_); }, ); my $m_staticText4 = Wx::StaticText->new( $self, -1, Wx::gettext("File Types:"), ); $self->{find_types} = Padre::Wx::Choice::Files->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{find_types}->SetSelection(0); my $m_staticline2 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{find_case} = Wx::CheckBox->new( $self, -1, Wx::gettext("&Case Sensitive"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{find_regex} = Wx::CheckBox->new( $self, -1, Wx::gettext("&Regular Expression"), Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{replace} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("&Replace"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{replace}->SetDefault; $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); my $bSizer4 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer4->Add( $self->{find_directory}, 1, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $bSizer4->Add( $self->{directory}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT | Wx::RIGHT, 5 ); my $fgSizer2 = Wx::FlexGridSizer->new( 2, 2, 0, 0 ); $fgSizer2->AddGrowableCol(1); $fgSizer2->SetFlexibleDirection(Wx::BOTH); $fgSizer2->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer2->Add( $m_staticText2, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $self->{find_term}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $fgSizer2->Add( $m_staticText21, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $self->{replace_term}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer2->Add( $m_staticText3, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $bSizer4, 1, Wx::EXPAND, 5 ); $fgSizer2->Add( $m_staticText4, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $self->{find_types}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{replace}, 0, Wx::ALL, 5 ); $buttons->Add( 20, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $fgSizer2, 1, Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline2, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $self->{find_regex}, 0, Wx::ALL, 5 ); $vsizer->Add( $self->{find_case}, 0, Wx::ALL, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($hsizer); $self->Layout; return $self; } sub find_term { $_[0]->{find_term}; } sub replace_term { $_[0]->{replace_term}; } sub find_directory { $_[0]->{find_directory}; } sub find_types { $_[0]->{find_types}; } sub find_case { $_[0]->{find_case}; } sub find_regex { $_[0]->{find_regex}; } sub replace { $_[0]->{replace}; } sub refresh { $_[0]->main->error('Handler method refresh for event find_term.OnText not implemented'); } sub directory { $_[0]->main->error('Handler method directory for event directory.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/DebugOptions.pm���������������������������������������������������������0000644�0001750�0001750�00000012436�12237327555�016730� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::DebugOptions; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::ComboBox::History (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Debug Launch Parameters"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); $self->{m_staticText4} = Wx::StaticText->new( $self, -1, Wx::gettext("Perl interpreter:"), ); $self->{perl_interpreter} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); $self->{perl_interpreter}->SetMinSize( [ 280, -1 ] ); $self->{m_staticText8} = Wx::StaticText->new( $self, -1, Wx::gettext("Perl Options:"), ); $self->{perl_args} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); $self->{m_staticText5} = Wx::StaticText->new( $self, -1, Wx::gettext("Perl Script to run:"), ); $self->{find_script} = Padre::Wx::ComboBox::History->new( $self, -1, "", Wx::DefaultPosition, [ 250, -1 ], [ "find_script", ], ); $self->{script} = Wx::Button->new( $self, -1, Wx::gettext("&Browse"), Wx::DefaultPosition, [ 50, -1 ], ); Wx::Event::EVT_BUTTON( $self, $self->{script}, sub { shift->browse_scripts(@_); }, ); $self->{m_staticText51} = Wx::StaticText->new( $self, -1, Wx::gettext("Perl Script options:"), ); $self->{script_options} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); $self->{m_staticText241} = Wx::StaticText->new( $self, -1, Wx::gettext("Run in Directory:"), ); $self->{run_directory} = Padre::Wx::ComboBox::History->new( $self, -1, "", Wx::DefaultPosition, [ 250, -1 ], [ "run_directory", ], ); $self->{browse_run_directory} = Wx::Button->new( $self, -1, Wx::gettext("&Browse"), Wx::DefaultPosition, [ 50, -1 ], ); Wx::Event::EVT_BUTTON( $self, $self->{browse_run_directory}, sub { shift->browse_run_directory(@_); }, ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $debug = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("Launch Debugger"), Wx::DefaultPosition, Wx::DefaultSize, ); $debug->SetDefault; my $cancel = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); my $bSizer4 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer4->Add( $self->{find_script}, 1, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $bSizer4->Add( $self->{script}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT | Wx::RIGHT, 5 ); my $bSizer41 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer41->Add( $self->{run_directory}, 1, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 5 ); $bSizer41->Add( $self->{browse_run_directory}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT | Wx::RIGHT, 5 ); my $fgSizer1 = Wx::FlexGridSizer->new( 2, 2, 0, 10 ); $fgSizer1->AddGrowableCol(1); $fgSizer1->SetFlexibleDirection(Wx::BOTH); $fgSizer1->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer1->Add( $self->{m_staticText4}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer1->Add( $self->{perl_interpreter}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{m_staticText8}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer1->Add( $self->{perl_args}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{m_staticText5}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer1->Add( $bSizer4, 1, Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{m_staticText51}, 0, Wx::ALL, 5 ); $fgSizer1->Add( $self->{script_options}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{m_staticText241}, 0, Wx::ALL, 5 ); $fgSizer1->Add( $bSizer41, 1, Wx::EXPAND, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $debug, 0, Wx::ALL, 5 ); $buttons->Add( 100, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $cancel, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $fgSizer1, 1, Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($sizer); $self->Layout; return $self; } sub perl_interpreter { $_[0]->{perl_interpreter}; } sub perl_args { $_[0]->{perl_args}; } sub find_script { $_[0]->{find_script}; } sub script_options { $_[0]->{script_options}; } sub run_directory { $_[0]->{run_directory}; } sub browse_scripts { $_[0]->main->error('Handler method browse_scripts for event script.OnButtonClick not implemented'); } sub browse_run_directory { $_[0]->main->error('Handler method browse_run_directory for event browse_run_directory.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/VCS.pm������������������������������������������������������������������0000644�0001750�0001750�00000014455�12237327555�014764� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::VCS; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 195, 530 ], Wx::TAB_TRAVERSAL, ); $self->{add} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{add}->SetToolTip( Wx::gettext("Schedule the file or directory for addition to the repository") ); Wx::Event::EVT_BUTTON( $self, $self->{add}, sub { shift->on_add_click(@_); }, ); $self->{delete} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{delete}->SetToolTip( Wx::gettext("Schedule the file or directory for deletion from the repository") ); Wx::Event::EVT_BUTTON( $self, $self->{delete}, sub { shift->on_delete_click(@_); }, ); $self->{update} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{update}->SetToolTip( Wx::gettext("Bring changes from the repository into the working copy") ); Wx::Event::EVT_BUTTON( $self, $self->{update}, sub { shift->on_update_click(@_); }, ); $self->{commit} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{commit}->SetToolTip( Wx::gettext("Send changes from your working copy to the repository") ); Wx::Event::EVT_BUTTON( $self, $self->{commit}, sub { shift->on_commit_click(@_); }, ); $self->{revert} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{revert}->SetToolTip( Wx::gettext("Restore pristine working copy file (undo most local edits)") ); Wx::Event::EVT_BUTTON( $self, $self->{revert}, sub { shift->on_revert_click(@_); }, ); $self->{refresh} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{refresh}->SetToolTip( Wx::gettext("Refresh the status of working copy files and directories") ); Wx::Event::EVT_BUTTON( $self, $self->{refresh}, sub { shift->on_refresh_click(@_); }, ); $self->{list} = Wx::ListCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_COL_CLICK( $self, $self->{list}, sub { shift->on_list_column_click(@_); }, ); $self->{show_normal} = Wx::CheckBox->new( $self, -1, Wx::gettext("Normal"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_CHECKBOX( $self, $self->{show_normal}, sub { shift->on_show_normal_click(@_); }, ); $self->{show_unversioned} = Wx::CheckBox->new( $self, -1, Wx::gettext("Unversioned"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_CHECKBOX( $self, $self->{show_unversioned}, sub { shift->on_show_unversioned_click(@_); }, ); $self->{show_ignored} = Wx::CheckBox->new( $self, -1, Wx::gettext("Ignored"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_CHECKBOX( $self, $self->{show_ignored}, sub { shift->on_show_ignored_click(@_); }, ); $self->{status} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, [ -1, 50 ], Wx::TE_MULTILINE | Wx::TE_READONLY, ); my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( $self->{add}, 0, Wx::ALL, 1 ); $button_sizer->Add( $self->{delete}, 0, Wx::ALL, 1 ); $button_sizer->Add( $self->{update}, 0, Wx::ALL, 1 ); $button_sizer->Add( $self->{commit}, 0, Wx::ALL, 1 ); $button_sizer->Add( $self->{revert}, 0, Wx::ALL, 1 ); $button_sizer->Add( $self->{refresh}, 0, Wx::ALL, 1 ); my $checkbox_sizer = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("Show"), ), Wx::VERTICAL, ); $checkbox_sizer->Add( $self->{show_normal}, 0, Wx::ALL, 2 ); $checkbox_sizer->Add( $self->{show_unversioned}, 0, Wx::ALL, 2 ); $checkbox_sizer->Add( $self->{show_ignored}, 0, Wx::ALL, 2 ); my $main_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $main_sizer->Add( $button_sizer, 0, Wx::ALL | Wx::EXPAND, 5 ); $main_sizer->Add( $self->{list}, 1, Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $main_sizer->Add( $checkbox_sizer, 0, Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $main_sizer->Add( $self->{status}, 0, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizer($main_sizer); $self->Layout; return $self; } sub on_add_click { $_[0]->main->error('Handler method on_add_click for event add.OnButtonClick not implemented'); } sub on_delete_click { $_[0]->main->error('Handler method on_delete_click for event delete.OnButtonClick not implemented'); } sub on_update_click { $_[0]->main->error('Handler method on_update_click for event update.OnButtonClick not implemented'); } sub on_commit_click { $_[0]->main->error('Handler method on_commit_click for event commit.OnButtonClick not implemented'); } sub on_revert_click { $_[0]->main->error('Handler method on_revert_click for event revert.OnButtonClick not implemented'); } sub on_refresh_click { $_[0]->main->error('Handler method on_refresh_click for event refresh.OnButtonClick not implemented'); } sub on_list_column_click { $_[0]->main->error('Handler method on_list_column_click for event list.OnListColClick not implemented'); } sub on_show_normal_click { $_[0]->main->error('Handler method on_show_normal_click for event show_normal.OnCheckBox not implemented'); } sub on_show_unversioned_click { $_[0]->main->error('Handler method on_show_unversioned_click for event show_unversioned.OnCheckBox not implemented'); } sub on_show_ignored_click { $_[0]->main->error('Handler method on_show_ignored_click for event show_ignored.OnCheckBox not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Special.pm��������������������������������������������������������������0000644�0001750�0001750�00000005550�12237327555�015705� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Special; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Insert Special Values"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); $self->{select} = Wx::Choice->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{select}->SetSelection(0); Wx::Event::EVT_CHOICE( $self, $self->{select}, sub { shift->refresh(@_); }, ); $self->{preview} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, [ 300, 50 ], Wx::TE_MULTILINE | Wx::TE_READONLY, ); $self->{preview}->SetBackgroundColour( Wx::SystemSettings::GetColour( Wx::SYS_COLOUR_MENU ) ); $self->{preview}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{m_staticline221} = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{insert} = Wx::Button->new( $self, -1, Wx::gettext("Insert"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{insert}->SetDefault; Wx::Event::EVT_BUTTON( $self, $self->{insert}, sub { shift->insert_preview(@_); }, ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{insert}, 0, Wx::ALL, 5 ); $buttons->Add( 0, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $self->{select}, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $self->{preview}, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $self->{m_staticline221}, 0, Wx::EXPAND | Wx::ALL, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::EXPAND, 5 ); $self->SetSizerAndFit($hsizer); $self->Layout; return $self; } sub select { $_[0]->{select}; } sub preview { $_[0]->{preview}; } sub insert { $_[0]->{insert}; } sub cancel { $_[0]->{cancel}; } sub refresh { $_[0]->main->error('Handler method refresh for event select.OnChoice not implemented'); } sub insert_preview { $_[0]->main->error('Handler method insert_preview for event insert.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/About.pm����������������������������������������������������������������0000644�0001750�0001750�00000060032�12237327555�015373� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::About; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("About"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); $self->{notebook} = Wx::Notebook->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, ); $self->{padre} = Wx::Panel->new( $self->{notebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{padre}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 91, 0, "" ) ); $self->{splash} = Wx::StaticBitmap->new( $self->{padre}, -1, Wx::NullBitmap, Wx::DefaultPosition, [ 400, 250 ], ); $self->{m_staticText6511} = Wx::StaticText->new( $self->{padre}, -1, Wx::gettext("Perl Application Development and Refactoring Environment"), ); $self->{m_staticText6511}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{creator} = Wx::StaticText->new( $self->{padre}, -1, Wx::gettext("Created by G\x{e1}bor Szab\x{f3}"), ); $self->{m_staticline271} = Wx::StaticLine->new( $self->{padre}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{m_staticText34} = Wx::StaticText->new( $self->{padre}, -1, Wx::gettext("Copyright 2008–2013 The Padre Development Team Padre is free software; \nyou can redistribute it and/or modify it under the same terms as Perl 5."), ); $self->{m_staticText67} = Wx::StaticText->new( $self->{padre}, -1, Wx::gettext("Blue butterfly on a green leaf splash image is based on work \nby Jerry Charlotte (blackbutterfly)"), ); $self->{m_staticText67}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 90, 0, "" ) ); $self->{m_staticText35} = Wx::StaticText->new( $self->{padre}, -1, Wx::gettext("Padre contains icons from GNOME, you can redistribute it and/or \nmodify then under the terms of the GNU General Public License as published by the \nFree Software Foundation; version 2 dated June, 1991."), ); $self->{development} = Wx::Panel->new( $self->{notebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{m_staticText1} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Gabor Szabo"), ); $self->{m_staticText2} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Adam Kennedy"), ); $self->{m_staticText3} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Ahmad Zawawi"), ); $self->{m_staticText4} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Peter Lavender"), ); $self->{m_staticText66} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Sebastian Willing"), ); $self->{m_staticText571} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Jerome Quelin"), ); $self->{m_staticText69} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Steffen Muller"), ); $self->{m_staticText70} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Zeno Gantner"), ); $self->{m_staticText721} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Andrew Bramble"), ); $self->{m_staticText8} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Breno G. de Oliveira"), ); $self->{m_staticText55} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Fayland Lam"), ); $self->{m_staticText73} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Kevin Dawson"), ); $self->{m_staticText65} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Ryan Niebur"), ); $self->{m_staticText561} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Heiko Jansen"), ); $self->{m_staticText6} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Alexandr Ciornii"), ); $self->{m_staticText40} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Cezary Morga"), ); $self->{m_staticText39} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Brian Cassidy"), ); $self->{m_staticText411} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Chris Dolan"), ); $self->{m_staticText64} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Patrick Donelan"), ); $self->{m_staticText53} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Tom Eliaz"), ); $self->{m_staticText711} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Burak Gursoy"), ); $self->{m_staticText611} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Kenichi Ishigaki"), ); $self->{m_staticText60} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Keedi Kim"), ); $self->{m_staticText621} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Max Maischein"), ); $self->{m_staticText63} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Olivier Mengue"), ); $self->{m_staticText671} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Paweł Murias"), ); $self->{m_staticText42} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Claudio Ramirez"), ); $self->{m_staticText58} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Kaare Rasmussen"), ); $self->{m_staticText68} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Petar Shangov"), ); $self->{m_staticText59} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Kartik Thakore"), ); $self->{m_staticText5} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Aaron Trevena"), ); $self->{m_staticText56} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Gabriel Vieira"), ); $self->{m_staticText7} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Blake Willmarth"), ); $self->{m_staticText54} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("code4pay"), ); $self->{m_staticText541} = Wx::StaticText->new( $self->{development}, -1, Wx::gettext("Sven Dowideit"), ); $self->{translation} = Wx::Panel->new( $self->{notebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{m_staticText4723} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Arabic"), ); $self->{m_staticText4723}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{ahmad_zawawi} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Ahmad Zawawi"), ); $self->{m_staticText4721} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Chinese (Simplified)"), ); $self->{m_staticText4721}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{fayland_lam} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Fayland Lam"), ); $self->{chuanren_wu} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Chuanren Wu"), ); $self->{m_staticText4722} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Chinese (Traditional)"), ); $self->{m_staticText4722}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{matthew_lien} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Matthew Lien"), ); $self->{m_staticText47221} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Czech"), ); $self->{m_staticText47221}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{marcela_maslanova} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Marcela Maslanova"), ); $self->{m_staticText47222} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Dutch"), ); $self->{m_staticText47222}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{dirk_de_nijs} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Dirk De Nijs"), ); $self->{m_staticText47223} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("French"), ); $self->{m_staticText47223}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{jerome_quelin} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Jerome Quelin"), ); $self->{olivier_mengue} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Olivier Mengue"), ); $self->{m_staticText47224} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("German"), ); $self->{m_staticText47224}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{heiko_jansen} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Heiko Jansen"), ); $self->{sebastian_willing} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Sebastian Willing"), ); $self->{zeno_gantner} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Zeno Gantner"), ); $self->{m_staticText47225} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Hebrew"), ); $self->{m_staticText47225}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{omer_zak} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Omer Zak"), ); $self->{shlomi_fish} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Shlomi Fish"), ); $self->{amir_e_aharoni} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Amir E. Aharoni"), ); $self->{m_staticText47226} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Hungarian"), ); $self->{m_staticText47226}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{gyorgy_pasztor} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Gyorgy Pasztor"), ); $self->{m_staticText47227} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Italian"), ); $self->{m_staticText47227}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{simone_blandino} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Simone Blandino"), ); $self->{m_staticText47228} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Japanese"), ); $self->{m_staticText47228}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{kenichi_ishigaki} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Kenichi Ishigaki"), ); $self->{m_staticText47229} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Korean"), ); $self->{m_staticText47229}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{keedi_kim} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Keedi Kim"), ); $self->{m_staticText472210} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Norwegian"), ); $self->{m_staticText472210}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{kjetil_skotheim} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Kjetil Skotheim"), ); $self->{m_staticText472211} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Polish"), ); $self->{m_staticText472211}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{cezary_morga} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Cezary Morga"), ); $self->{marek_roszkowski} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Marek Roszkowski"), ); $self->{m_staticText472212} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Portuguese (Brazil)"), ); $self->{m_staticText472212}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{breno_g_de_oliveira} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Breno G. de Oliveira"), ); $self->{gabriel_vieira} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Gabriel Vieira"), ); $self->{m_staticText472213} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Spanish"), ); $self->{m_staticText472213}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{paco_alguacil} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Paco Alguacil"), ); $self->{enrique_nell} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Enrique Nell"), ); $self->{m_staticText472214} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Russian"), ); $self->{m_staticText472214}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{andrew_shitov} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Andrew Shitov"), ); $self->{m_staticText472215} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Turkish"), ); $self->{m_staticText472215}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); $self->{burak_gursoy} = Wx::StaticText->new( $self->{translation}, -1, Wx::gettext("Burak Gursoy"), ); $self->{Information} = Wx::Panel->new( $self->{notebook}, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TAB_TRAVERSAL, ); $self->{output} = Wx::TextCtrl->new( $self->{Information}, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_MULTILINE | Wx::TE_NO_VSCROLL | Wx::TE_READONLY, ); $self->{output}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 76, 90, 90, 0, "" ) ); my $close_button = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); $close_button->SetDefault; my $bSizer81 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer81->Add( $self->{m_staticText34}, 0, Wx::ALL, 5 ); $bSizer81->Add( $self->{m_staticText67}, 0, Wx::ALL, 5 ); $bSizer81->Add( $self->{m_staticText35}, 0, Wx::ALL, 5 ); my $bSizer17 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer17->Add( $self->{splash}, 0, Wx::ALIGN_CENTER | Wx::TOP, 5 ); $bSizer17->Add( $self->{m_staticText6511}, 0, Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); $bSizer17->Add( $self->{creator}, 0, Wx::ALL, 5 ); $bSizer17->Add( $self->{m_staticline271}, 0, Wx::EXPAND | Wx::ALL, 0 ); $bSizer17->Add( $bSizer81, 1, Wx::EXPAND, 5 ); $self->{padre}->SetSizerAndFit($bSizer17); $self->{padre}->Layout; my $gSizer3 = Wx::GridSizer->new( 0, 3, 0, 0 ); $gSizer3->Add( $self->{m_staticText1}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText2}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText3}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText4}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText66}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText571}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText69}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText70}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText721}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText8}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText55}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText73}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText65}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText561}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText6}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText40}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText39}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText411}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText64}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText53}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText711}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText611}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText60}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText621}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText63}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText671}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText42}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText58}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText68}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText59}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText5}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText56}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText7}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText54}, 0, Wx::ALL, 5 ); $gSizer3->Add( $self->{m_staticText541}, 0, Wx::ALL, 5 ); my $bSizer3 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer3->Add( $gSizer3, 0, Wx::EXPAND, 5 ); $self->{development}->SetSizerAndFit($bSizer3); $self->{development}->Layout; my $bSizer623 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer623->Add( $self->{m_staticText4723}, 0, Wx::ALL, 4 ); $bSizer623->Add( $self->{ahmad_zawawi}, 0, Wx::ALL, 2 ); my $bSizer621 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer621->Add( $self->{m_staticText4721}, 0, Wx::ALL, 4 ); $bSizer621->Add( $self->{fayland_lam}, 0, Wx::ALL, 2 ); $bSizer621->Add( $self->{chuanren_wu}, 0, Wx::ALL, 2 ); my $bSizer622 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer622->Add( $self->{m_staticText4722}, 0, Wx::ALL, 4 ); $bSizer622->Add( $self->{matthew_lien}, 0, Wx::ALL, 2 ); my $bSizer6221 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6221->Add( $self->{m_staticText47221}, 0, Wx::ALL, 4 ); $bSizer6221->Add( $self->{marcela_maslanova}, 0, Wx::ALL, 2 ); my $bSizer6222 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6222->Add( $self->{m_staticText47222}, 0, Wx::ALL, 4 ); $bSizer6222->Add( $self->{dirk_de_nijs}, 0, Wx::ALL, 2 ); my $bSizer6223 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6223->Add( $self->{m_staticText47223}, 0, Wx::ALL, 4 ); $bSizer6223->Add( $self->{jerome_quelin}, 0, Wx::ALL, 2 ); $bSizer6223->Add( $self->{olivier_mengue}, 0, Wx::ALL, 2 ); my $bSizer6224 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6224->Add( $self->{m_staticText47224}, 0, Wx::ALL, 4 ); $bSizer6224->Add( $self->{heiko_jansen}, 0, Wx::ALL, 2 ); $bSizer6224->Add( $self->{sebastian_willing}, 0, Wx::ALL, 2 ); $bSizer6224->Add( $self->{zeno_gantner}, 0, Wx::ALL, 2 ); my $bSizer6225 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6225->Add( $self->{m_staticText47225}, 0, Wx::ALL, 5 ); $bSizer6225->Add( $self->{omer_zak}, 0, Wx::ALL, 2 ); $bSizer6225->Add( $self->{shlomi_fish}, 0, Wx::ALL, 2 ); $bSizer6225->Add( $self->{amir_e_aharoni}, 0, Wx::ALL, 2 ); my $bSizer6226 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6226->Add( $self->{m_staticText47226}, 0, Wx::ALL, 5 ); $bSizer6226->Add( $self->{gyorgy_pasztor}, 0, Wx::ALL, 5 ); my $bSizer6227 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6227->Add( $self->{m_staticText47227}, 0, Wx::ALL, 4 ); $bSizer6227->Add( $self->{simone_blandino}, 0, Wx::ALL, 2 ); my $bSizer6228 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6228->Add( $self->{m_staticText47228}, 0, Wx::ALL, 4 ); $bSizer6228->Add( $self->{kenichi_ishigaki}, 0, Wx::ALL, 2 ); my $bSizer6229 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer6229->Add( $self->{m_staticText47229}, 0, Wx::ALL, 4 ); $bSizer6229->Add( $self->{keedi_kim}, 0, Wx::ALL, 2 ); my $bSizer62210 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer62210->Add( $self->{m_staticText472210}, 0, Wx::ALL, 4 ); $bSizer62210->Add( $self->{kjetil_skotheim}, 0, Wx::ALL, 2 ); my $bSizer62211 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer62211->Add( $self->{m_staticText472211}, 0, Wx::ALL, 4 ); $bSizer62211->Add( $self->{cezary_morga}, 0, Wx::ALL, 2 ); $bSizer62211->Add( $self->{marek_roszkowski}, 0, Wx::ALL, 2 ); my $bSizer62212 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer62212->Add( $self->{m_staticText472212}, 0, Wx::ALL, 4 ); $bSizer62212->Add( $self->{breno_g_de_oliveira}, 0, Wx::ALL, 2 ); $bSizer62212->Add( $self->{gabriel_vieira}, 0, Wx::ALL, 2 ); my $bSizer62213 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer62213->Add( $self->{m_staticText472213}, 0, Wx::ALL, 4 ); $bSizer62213->Add( $self->{paco_alguacil}, 0, Wx::ALL, 2 ); $bSizer62213->Add( $self->{enrique_nell}, 0, Wx::ALL, 2 ); my $bSizer62214 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer62214->Add( $self->{m_staticText472214}, 0, Wx::ALL, 4 ); $bSizer62214->Add( $self->{andrew_shitov}, 0, Wx::ALL, 2 ); my $bSizer62215 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer62215->Add( $self->{m_staticText472215}, 0, Wx::ALL, 4 ); $bSizer62215->Add( $self->{burak_gursoy}, 0, Wx::ALL, 2 ); my $gSizer311 = Wx::GridSizer->new( 0, 3, 0, 0 ); $gSizer311->Add( $bSizer623, 0, 0, 4 ); $gSizer311->Add( $bSizer621, 0, 0, 4 ); $gSizer311->Add( $bSizer622, 0, 0, 4 ); $gSizer311->Add( $bSizer6221, 0, 0, 4 ); $gSizer311->Add( $bSizer6222, 0, 0, 4 ); $gSizer311->Add( $bSizer6223, 0, 0, 4 ); $gSizer311->Add( $bSizer6224, 0, 0, 4 ); $gSizer311->Add( $bSizer6225, 0, 0, 4 ); $gSizer311->Add( $bSizer6226, 0, 0, 4 ); $gSizer311->Add( $bSizer6227, 0, 0, 4 ); $gSizer311->Add( $bSizer6228, 0, 0, 4 ); $gSizer311->Add( $bSizer6229, 0, 0, 4 ); $gSizer311->Add( $bSizer62210, 0, 0, 4 ); $gSizer311->Add( $bSizer62211, 0, 0, 4 ); $gSizer311->Add( $bSizer62212, 0, 0, 4 ); $gSizer311->Add( $bSizer62213, 0, 0, 4 ); $gSizer311->Add( $bSizer62214, 0, 0, 4 ); $gSizer311->Add( $bSizer62215, 0, 0, 4 ); my $bSizer31 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer31->Add( $gSizer311, 0, Wx::EXPAND, 0 ); $self->{translation}->SetSizerAndFit($bSizer31); $self->{translation}->Layout; my $bSizer32 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer32->Add( $self->{output}, 1, Wx::ALIGN_CENTER | Wx::ALL | Wx::EXPAND, 10 ); $self->{Information}->SetSizerAndFit($bSizer32); $self->{Information}->Layout; $self->{notebook}->AddPage( $self->{padre}, Wx::gettext("Padre"), 0 ); $self->{notebook}->AddPage( $self->{development}, Wx::gettext("Development"), 1 ); $self->{notebook}->AddPage( $self->{translation}, Wx::gettext("Translation"), 0 ); $self->{notebook}->AddPage( $self->{Information}, Wx::gettext("Information"), 0 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( 0, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $close_button, 0, Wx::ALL, 5 ); my $bSizer45 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer45->Add( $self->{notebook}, 0, Wx::EXPAND | Wx::ALL, 5 ); $bSizer45->Add( $buttons, 1, Wx::EXPAND, 5 ); $self->SetSizerAndFit($bSizer45); $self->Layout; return $self; } sub notebook { $_[0]->{notebook}; } sub creator { $_[0]->{creator}; } sub ahmad_zawawi { $_[0]->{ahmad_zawawi}; } sub fayland_lam { $_[0]->{fayland_lam}; } sub chuanren_wu { $_[0]->{chuanren_wu}; } sub matthew_lien { $_[0]->{matthew_lien}; } sub marcela_maslanova { $_[0]->{marcela_maslanova}; } sub dirk_de_nijs { $_[0]->{dirk_de_nijs}; } sub jerome_quelin { $_[0]->{jerome_quelin}; } sub olivier_mengue { $_[0]->{olivier_mengue}; } sub heiko_jansen { $_[0]->{heiko_jansen}; } sub sebastian_willing { $_[0]->{sebastian_willing}; } sub zeno_gantner { $_[0]->{zeno_gantner}; } sub omer_zak { $_[0]->{omer_zak}; } sub shlomi_fish { $_[0]->{shlomi_fish}; } sub amir_e_aharoni { $_[0]->{amir_e_aharoni}; } sub gyorgy_pasztor { $_[0]->{gyorgy_pasztor}; } sub simone_blandino { $_[0]->{simone_blandino}; } sub kenichi_ishigaki { $_[0]->{kenichi_ishigaki}; } sub keedi_kim { $_[0]->{keedi_kim}; } sub kjetil_skotheim { $_[0]->{kjetil_skotheim}; } sub cezary_morga { $_[0]->{cezary_morga}; } sub marek_roszkowski { $_[0]->{marek_roszkowski}; } sub breno_g_de_oliveira { $_[0]->{breno_g_de_oliveira}; } sub gabriel_vieira { $_[0]->{gabriel_vieira}; } sub paco_alguacil { $_[0]->{paco_alguacil}; } sub enrique_nell { $_[0]->{enrique_nell}; } sub andrew_shitov { $_[0]->{andrew_shitov}; } sub burak_gursoy { $_[0]->{burak_gursoy}; } sub output { $_[0]->{output}; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Patch.pm����������������������������������������������������������������0000644�0001750�0001750�00000010161�12237327555�015356� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Patch; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Patch"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE | Wx::RESIZE_BORDER, ); $self->{file1} = Wx::Choice->new( $self, -1, Wx::DefaultPosition, [ 200, -1 ], [], ); $self->{file1}->SetSelection(0); $self->{action} = Wx::RadioBox->new( $self, -1, Wx::gettext("Action"), Wx::DefaultPosition, Wx::DefaultSize, [ "Patch", "Diff", ], 1, Wx::RA_SPECIFY_COLS, ); $self->{action}->SetSelection(0); Wx::Event::EVT_RADIOBOX( $self, $self->{action}, sub { shift->on_action(@_); }, ); $self->{against} = Wx::RadioBox->new( $self, -1, Wx::gettext("Against"), Wx::DefaultPosition, Wx::DefaultSize, [ "File-2", "SVN", ], 2, Wx::RA_SPECIFY_COLS, ); $self->{against}->SetSelection(0); $self->{against}->Disable; Wx::Event::EVT_RADIOBOX( $self, $self->{against}, sub { shift->on_against(@_); }, ); $self->{file2} = Wx::Choice->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{file2}->SetSelection(0); $self->{file2}->SetMinSize( [ 200, -1 ] ); $self->{process} = Wx::Button->new( $self, -1, Wx::gettext("Process"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{process}, sub { shift->process_clicked(@_); }, ); my $close_button = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); $close_button->SetDefault; $self->{m_staticline5} = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $file_1 = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("File-1"), ), Wx::VERTICAL, ); $file_1->Add( $self->{file1}, 0, Wx::ALL, 5 ); my $sbSizer2 = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("Options"), ), Wx::HORIZONTAL, ); $sbSizer2->Add( 0, 0, 1, Wx::EXPAND, 5 ); $sbSizer2->Add( $self->{action}, 0, Wx::ALL, 5 ); $sbSizer2->Add( 0, 0, 1, Wx::EXPAND, 5 ); $sbSizer2->Add( $self->{against}, 0, Wx::ALL, 5 ); my $file_2 = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("File-2"), ), Wx::VERTICAL, ); $file_2->Add( $self->{file2}, 1, Wx::ALL, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( 0, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $self->{process}, 0, Wx::ALL, 5 ); $buttons->Add( 0, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $close_button, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $file_1, 0, Wx::EXPAND, 5 ); $vsizer->Add( $sbSizer2, 1, Wx::EXPAND, 5 ); $vsizer->Add( $file_2, 0, Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 3 ); $vsizer->Add( $self->{m_staticline5}, 0, Wx::EXPAND | Wx::ALL, 5 ); my $sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizer->Add( $vsizer, 0, Wx::ALL, 1 ); $self->SetSizerAndFit($sizer); $self->Layout; return $self; } sub file1 { $_[0]->{file1}; } sub action { $_[0]->{action}; } sub against { $_[0]->{against}; } sub file2 { $_[0]->{file2}; } sub process { $_[0]->{process}; } sub on_action { $_[0]->main->error('Handler method on_action for event action.OnRadioBox not implemented'); } sub on_against { $_[0]->main->error('Handler method on_against for event against.OnRadioBox not implemented'); } sub process_clicked { $_[0]->main->error('Handler method process_clicked for event process.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Document.pm�������������������������������������������������������������0000644�0001750�0001750�00000016314�12237327555�016103� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Document; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Document Information"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); $self->{filename} = Wx::StaticText->new( $self, -1, '', ); $self->{filename}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $m_staticline30 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText156 = Wx::StaticText->new( $self, -1, Wx::gettext("Document Type"), ); $self->{document_type} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText158 = Wx::StaticText->new( $self, -1, Wx::gettext("Document Class"), ); $self->{document_class} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText160 = Wx::StaticText->new( $self, -1, Wx::gettext("MIME Type"), ); $self->{mime_type} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText162 = Wx::StaticText->new( $self, -1, Wx::gettext("Encoding"), ); $self->{encoding} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText164 = Wx::StaticText->new( $self, -1, Wx::gettext("Newline Type"), ); $self->{newline_type} = Wx::StaticText->new( $self, -1, '', ); my $m_staticline31 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{document_label} = Wx::StaticText->new( $self, -1, Wx::gettext("Document"), ); $self->{selection_label} = Wx::StaticText->new( $self, -1, Wx::gettext("Selection"), ); $self->{selection_label}->SetForegroundColour( Wx::SystemSettings::GetColour( Wx::SYS_COLOUR_GRAYTEXT ) ); my $m_staticText168 = Wx::StaticText->new( $self, -1, Wx::gettext("Lines"), ); $self->{document_lines} = Wx::StaticText->new( $self, -1, '', ); $self->{selection_lines} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText171 = Wx::StaticText->new( $self, -1, Wx::gettext("Words"), ); $self->{document_words} = Wx::StaticText->new( $self, -1, '', ); $self->{selection_words} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText174 = Wx::StaticText->new( $self, -1, Wx::gettext("Characters (All)"), ); $self->{document_characters} = Wx::StaticText->new( $self, -1, '', ); $self->{selection_characters} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText177 = Wx::StaticText->new( $self, -1, Wx::gettext("Characters (Visible)"), ); $self->{document_visible} = Wx::StaticText->new( $self, -1, '', ); $self->{selection_visible} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText180 = Wx::StaticText->new( $self, -1, Wx::gettext("File Size (Bytes)"), ); $self->{document_bytes} = Wx::StaticText->new( $self, -1, '', ); $self->{selection_bytes} = Wx::StaticText->new( $self, -1, '', ); my $m_staticText206 = Wx::StaticText->new( $self, -1, Wx::gettext("Source Lines of Code"), ); $self->{document_sloc} = Wx::StaticText->new( $self, -1, '', ); $self->{selection_sloc} = Wx::StaticText->new( $self, -1, '', ); my $m_staticline32 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{cancel}->SetDefault; my $fgSizer21 = Wx::FlexGridSizer->new( 5, 2, 0, 10 ); $fgSizer21->AddGrowableCol(1); $fgSizer21->SetFlexibleDirection(Wx::HORIZONTAL); $fgSizer21->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer21->Add( $m_staticText156, 0, Wx::ALL, 5 ); $fgSizer21->Add( $self->{document_type}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer21->Add( $m_staticText158, 0, Wx::ALL, 5 ); $fgSizer21->Add( $self->{document_class}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer21->Add( $m_staticText160, 0, Wx::ALL, 5 ); $fgSizer21->Add( $self->{mime_type}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer21->Add( $m_staticText162, 0, Wx::ALL, 5 ); $fgSizer21->Add( $self->{encoding}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer21->Add( $m_staticText164, 0, Wx::ALL, 5 ); $fgSizer21->Add( $self->{newline_type}, 0, Wx::ALL | Wx::EXPAND, 5 ); my $fgSizer22 = Wx::FlexGridSizer->new( 2, 3, 0, 10 ); $fgSizer22->SetFlexibleDirection(Wx::BOTH); $fgSizer22->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer22->Add( 0, 0, 1, Wx::EXPAND, 5 ); $fgSizer22->Add( $self->{document_label}, 0, Wx::ALL, 5 ); $fgSizer22->Add( $self->{selection_label}, 0, Wx::ALL, 5 ); $fgSizer22->Add( $m_staticText168, 0, Wx::ALL, 5 ); $fgSizer22->Add( $self->{document_lines}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $self->{selection_lines}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $m_staticText171, 0, Wx::ALL, 5 ); $fgSizer22->Add( $self->{document_words}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $self->{selection_words}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $m_staticText174, 0, Wx::ALL, 5 ); $fgSizer22->Add( $self->{document_characters}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $self->{selection_characters}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $m_staticText177, 0, Wx::ALL, 5 ); $fgSizer22->Add( $self->{document_visible}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $self->{selection_visible}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $m_staticText180, 0, Wx::ALL, 5 ); $fgSizer22->Add( $self->{document_bytes}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $self->{selection_bytes}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $m_staticText206, 0, Wx::ALL, 5 ); $fgSizer22->Add( $self->{document_sloc}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); $fgSizer22->Add( $self->{selection_sloc}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 5 ); my $bSizer111 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer111->Add( 0, 0, 1, Wx::EXPAND, 5 ); $bSizer111->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $bSizer110 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer110->Add( $self->{filename}, 0, Wx::ALL | Wx::EXPAND, 5 ); $bSizer110->Add( $m_staticline30, 0, Wx::BOTTOM | Wx::EXPAND, 5 ); $bSizer110->Add( $fgSizer21, 0, Wx::EXPAND, 5 ); $bSizer110->Add( $m_staticline31, 0, Wx::BOTTOM | Wx::EXPAND | Wx::TOP, 5 ); $bSizer110->Add( $fgSizer22, 0, Wx::EXPAND, 5 ); $bSizer110->Add( $m_staticline32, 0, Wx::EXPAND | Wx::TOP, 5 ); $bSizer110->Add( $bSizer111, 1, Wx::EXPAND, 5 ); my $bSizer109 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer109->Add( $bSizer110, 1, Wx::EXPAND, 5 ); $self->SetSizerAndFit($bSizer109); $self->Layout; return $self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/POD.pm������������������������������������������������������������������0000644�0001750�0001750�00000002250�12237327555�014741� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::POD; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::HtmlWindow (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Frame }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("POD Viewer"), Wx::DefaultPosition, [ 500, 300 ], Wx::DEFAULT_FRAME_STYLE | Wx::RESIZE_BORDER | Wx::TAB_TRAVERSAL, ); $self->{html} = Padre::Wx::HtmlWindow->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::HW_SCROLLBAR_AUTO, ); my $gSizer3 = Wx::GridSizer->new( 1, 1, 0, 0 ); $gSizer3->Add( $self->{html}, 0, Wx::EXPAND, 5 ); $self->SetSizer($gSizer3); $self->Layout; return $self; } sub html { $_[0]->{html}; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/FoundInFiles.pm���������������������������������������������������������0000644�0001750�0001750�00000007756�12237327555�016664� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::FoundInFiles; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::TreeCtrl (); use File::ShareDir (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 500, 300 ], Wx::TAB_TRAVERSAL, ); $self->{status} = Wx::StaticText->new( $self, -1, '', ); $self->{repeat} = Wx::BitmapButton->new( $self, -1, Wx::Bitmap->new( File::ShareDir::dist_file( "Padre", "icons/gnome218/16x16/actions/view-refresh.png" ), Wx::BITMAP_TYPE_ANY ), Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{repeat}->SetToolTip( Wx::gettext("Refresh Search") ); Wx::Event::EVT_BUTTON( $self, $self->{repeat}, sub { shift->repeat_clicked(@_); }, ); $self->{expand_all} = Wx::BitmapButton->new( $self, -1, Wx::Bitmap->new( File::ShareDir::dist_file( "Padre", "icons/gnome218/16x16/actions/zoom-in.png" ), Wx::BITMAP_TYPE_ANY ), Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{expand_all}->SetToolTip( Wx::gettext("Expand All") ); Wx::Event::EVT_BUTTON( $self, $self->{expand_all}, sub { shift->expand_all_clicked(@_); }, ); $self->{collapse_all} = Wx::BitmapButton->new( $self, -1, Wx::Bitmap->new( File::ShareDir::dist_file( "Padre", "icons/gnome218/16x16/actions/zoom-out.png" ), Wx::BITMAP_TYPE_ANY ), Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{collapse_all}->SetToolTip( Wx::gettext("Collapse All") ); Wx::Event::EVT_BUTTON( $self, $self->{collapse_all}, sub { shift->collapse_all_clicked(@_); }, ); $self->{stop} = Wx::BitmapButton->new( $self, -1, Wx::Bitmap->new( File::ShareDir::dist_file( "Padre", "icons/gnome218/16x16/actions/stop.png" ), Wx::BITMAP_TYPE_ANY ), Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{stop}->SetToolTip( Wx::gettext("Stop Search") ); Wx::Event::EVT_BUTTON( $self, $self->{stop}, sub { shift->stop_clicked(@_); }, ); $self->{tree} = Padre::Wx::TreeCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TR_FULL_ROW_HIGHLIGHT | Wx::TR_HAS_BUTTONS | Wx::TR_HIDE_ROOT | Wx::TR_SINGLE | Wx::NO_BORDER, ); my $top_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $top_sizer->Add( $self->{status}, 0, Wx::ALIGN_BOTTOM | Wx::ALL, 2 ); $top_sizer->Add( 0, 0, 1, Wx::EXPAND, 5 ); $top_sizer->Add( $self->{repeat}, 0, Wx::ALIGN_BOTTOM | Wx::BOTTOM | Wx::LEFT | Wx::TOP, 2 ); $top_sizer->Add( $self->{expand_all}, 0, Wx::ALIGN_BOTTOM | Wx::BOTTOM | Wx::LEFT | Wx::TOP, 2 ); $top_sizer->Add( $self->{collapse_all}, 0, Wx::ALIGN_BOTTOM | Wx::BOTTOM | Wx::LEFT | Wx::TOP, 2 ); $top_sizer->Add( $self->{stop}, 0, Wx::ALIGN_BOTTOM | Wx::ALL, 2 ); my $main_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $main_sizer->Add( $top_sizer, 0, Wx::ALIGN_RIGHT | Wx::ALL | Wx::EXPAND, 0 ); $main_sizer->Add( $self->{tree}, 1, Wx::EXPAND, 0 ); $self->SetSizer($main_sizer); $self->Layout; return $self; } sub repeat_clicked { $_[0]->main->error('Handler method repeat_clicked for event repeat.OnButtonClick not implemented'); } sub expand_all_clicked { $_[0]->main->error('Handler method expand_all_clicked for event expand_all.OnButtonClick not implemented'); } sub collapse_all_clicked { $_[0]->main->error('Handler method collapse_all_clicked for event collapse_all.OnButtonClick not implemented'); } sub stop_clicked { $_[0]->main->error('Handler method stop_clicked for event stop.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������Padre-1.00/lib/Padre/Wx/FBP/FindFast.pm�������������������������������������������������������������0000644�0001750�0001750�00000006401�12237327555�016017� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::FindFast; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use File::ShareDir (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::NO_BORDER, ); $self->{cancel} = Wx::BitmapButton->new( $self, Wx::ID_CANCEL, Wx::Bitmap->new( File::ShareDir::dist_file( "Padre", "icons/padre/16x16/actions/x-document-close.png" ), Wx::BITMAP_TYPE_ANY ), Wx::DefaultPosition, Wx::DefaultSize, Wx::NO_BORDER, ); Wx::Event::EVT_BUTTON( $self, $self->{cancel}, sub { shift->cancel(@_); }, ); my $m_staticText154 = Wx::StaticText->new( $self, -1, Wx::gettext("Find:"), ); $self->{find_term} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_NO_VSCROLL | Wx::TE_PROCESS_ENTER | Wx::WANTS_CHARS, ); Wx::Event::EVT_CHAR( $self->{find_term}, sub { $self->on_char($_[1]); }, ); Wx::Event::EVT_TEXT( $self, $self->{find_term}, sub { shift->on_text(@_); }, ); $self->{find_previous} = Wx::Button->new( $self, -1, Wx::gettext("&Previous"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{find_previous}, sub { shift->search_previous(@_); }, ); $self->{find_next} = Wx::Button->new( $self, -1, Wx::gettext("&Next"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{find_next}, sub { shift->search_next(@_); }, ); my $bSizer79 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer79->Add( $self->{cancel}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::BOTTOM | Wx::LEFT | Wx::RIGHT, 3 ); $bSizer79->Add( $m_staticText154, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::BOTTOM | Wx::LEFT | Wx::RIGHT, 3 ); $bSizer79->Add( $self->{find_term}, 1, Wx::ALIGN_CENTER_VERTICAL | Wx::BOTTOM | Wx::LEFT | Wx::RIGHT, 3 ); $bSizer79->Add( $self->{find_previous}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::BOTTOM | Wx::LEFT | Wx::RIGHT, 3 ); $bSizer79->Add( $self->{find_next}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::BOTTOM | Wx::LEFT | Wx::RIGHT, 3 ); $self->SetSizerAndFit($bSizer79); $self->Layout; return $self; } sub find_term { $_[0]->{find_term}; } sub cancel { $_[0]->main->error('Handler method cancel for event cancel.OnButtonClick not implemented'); } sub on_char { $_[0]->main->error('Handler method on_char for event find_term.OnChar not implemented'); } sub on_text { $_[0]->main->error('Handler method on_text for event find_term.OnText not implemented'); } sub search_previous { $_[0]->main->error('Handler method search_previous for event find_previous.OnButtonClick not implemented'); } sub search_next { $_[0]->main->error('Handler method search_next for event find_next.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Text.pm�����������������������������������������������������������������0000644�0001750�0001750�00000003441�12237327555�015246� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Text; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, '', Wx::DefaultPosition, [ 300, 300 ], Wx::DEFAULT_DIALOG_STYLE | Wx::RESIZE_BORDER, ); $self->{text} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_MULTILINE, ); $self->{text}->SetMinSize( [ 250, 250 ] ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{close} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{close}->SetDefault; my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( 20, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $self->{close}, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $self->{text}, 1, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::EXPAND, 5 ); $self->SetSizer($hsizer); $self->Layout; return $self; } sub text { $_[0]->{text}; } sub close { $_[0]->{close}; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Expression.pm�����������������������������������������������������������0000644�0001750�0001750�00000006347�12237327555�016471� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Expression; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Evaluate Expression"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE | Wx::RESIZE_BORDER, ); $self->{code} = Wx::ComboBox->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [ "Padre::Current->config", "Padre::Current->editor", "Padre::Current->document", "Padre::Current->ide", "Padre::Current->ide->task_manager", "Padre::Wx::Display->dump", "\\\@INC, \\%INC", ], Wx::TE_PROCESS_ENTER, ); Wx::Event::EVT_COMBOBOX( $self, $self->{code}, sub { shift->on_combobox(@_); }, ); Wx::Event::EVT_TEXT( $self, $self->{code}, sub { shift->on_text(@_); }, ); Wx::Event::EVT_TEXT_ENTER( $self, $self->{code}, sub { shift->on_text_enter(@_); }, ); $self->{evaluate} = Wx::Button->new( $self, -1, Wx::gettext("Evaluate"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{evaluate}, sub { shift->evaluate_clicked(@_); }, ); $self->{watch} = Wx::ToggleButton->new( $self, -1, Wx::gettext("Watch"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_TOGGLEBUTTON( $self, $self->{watch}, sub { shift->watch_clicked(@_); }, ); $self->{output} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_MULTILINE | Wx::TE_READONLY, ); $self->{output}->SetMinSize( [ 500, 400 ] ); $self->{output}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 76, 90, 90, 0, "" ) ); my $bSizer36 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer36->Add( $self->{code}, 1, Wx::EXPAND | Wx::LEFT | Wx::TOP, 5 ); $bSizer36->Add( $self->{evaluate}, 0, Wx::LEFT | Wx::TOP, 5 ); $bSizer36->Add( $self->{watch}, 0, Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); my $bSizer35 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer35->Add( $bSizer36, 0, Wx::EXPAND, 3 ); $bSizer35->Add( $self->{output}, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($bSizer35); $self->Layout; return $self; } sub on_combobox { $_[0]->main->error('Handler method on_combobox for event code.OnCombobox not implemented'); } sub on_text { $_[0]->main->error('Handler method on_text for event code.OnText not implemented'); } sub on_text_enter { $_[0]->main->error('Handler method on_text_enter for event code.OnTextEnter not implemented'); } sub evaluate_clicked { $_[0]->main->error('Handler method evaluate_clicked for event evaluate.OnButtonClick not implemented'); } sub watch_clicked { $_[0]->main->error('Handler method watch_clicked for event watch.OnToggleButton not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Breakpoints.pm����������������������������������������������������������0000644�0001750�0001750�00000010757�12237327555�016613� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Breakpoints; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 195, 530 ], Wx::TAB_TRAVERSAL, ); $self->{delete_not_breakable} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{delete_not_breakable}->SetToolTip( Wx::gettext("Delete MARKER_NOT_BREAKABLE\nCurrent File Only") ); Wx::Event::EVT_BUTTON( $self, $self->{delete_not_breakable}, sub { shift->on_delete_not_breakable_clicked(@_); }, ); $self->{refresh} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{refresh}->SetToolTip( Wx::gettext("Refresh List") ); Wx::Event::EVT_BUTTON( $self, $self->{refresh}, sub { shift->on_refresh_click(@_); }, ); $self->{set_breakpoints} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{set_breakpoints}->SetToolTip( Wx::gettext("Set Breakpoints (toggle)") ); Wx::Event::EVT_BUTTON( $self, $self->{set_breakpoints}, sub { shift->on_set_breakpoints_clicked(@_); }, ); $self->{list} = Wx::ListCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LC_REPORT | Wx::LC_SINGLE_SEL, ); Wx::Event::EVT_LIST_ITEM_SELECTED( $self, $self->{list}, sub { shift->_on_list_item_selected(@_); }, ); $self->{show_project} = Wx::CheckBox->new( $self, -1, Wx::gettext("project"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{show_project}->SetToolTip( Wx::gettext("show breakpoints in project") ); Wx::Event::EVT_CHECKBOX( $self, $self->{show_project}, sub { shift->on_show_project_click(@_); }, ); $self->{delete_project_bp} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); $self->{delete_project_bp}->SetToolTip( Wx::gettext("Delete all project Breakpoints") ); Wx::Event::EVT_BUTTON( $self, $self->{delete_project_bp}, sub { shift->on_delete_project_bp_clicked(@_); }, ); my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( $self->{delete_not_breakable}, 0, Wx::ALL, 5 ); $button_sizer->Add( 0, 0, 1, Wx::EXPAND, 5 ); $button_sizer->Add( $self->{refresh}, 0, Wx::ALL, 5 ); $button_sizer->Add( $self->{set_breakpoints}, 0, Wx::ALL, 5 ); my $checkbox_sizer = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("Show"), ), Wx::HORIZONTAL, ); $checkbox_sizer->Add( $self->{show_project}, 0, Wx::ALL, 2 ); $checkbox_sizer->Add( 0, 0, 1, Wx::EXPAND, 5 ); $checkbox_sizer->Add( $self->{delete_project_bp}, 0, Wx::ALL, 5 ); my $bSizer10 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer10->Add( $button_sizer, 0, Wx::EXPAND, 5 ); $bSizer10->Add( $self->{list}, 1, Wx::ALL | Wx::EXPAND, 5 ); $bSizer10->Add( $checkbox_sizer, 0, Wx::EXPAND, 5 ); $self->SetSizer($bSizer10); $self->Layout; return $self; } sub on_delete_not_breakable_clicked { $_[0]->main->error('Handler method on_delete_not_breakable_clicked for event delete_not_breakable.OnButtonClick not implemented'); } sub on_refresh_click { $_[0]->main->error('Handler method on_refresh_click for event refresh.OnButtonClick not implemented'); } sub on_set_breakpoints_clicked { $_[0]->main->error('Handler method on_set_breakpoints_clicked for event set_breakpoints.OnButtonClick not implemented'); } sub _on_list_item_selected { $_[0]->main->error('Handler method _on_list_item_selected for event list.OnListItemSelected not implemented'); } sub on_show_project_click { $_[0]->main->error('Handler method on_show_project_click for event show_project.OnCheckBox not implemented'); } sub on_delete_project_bp_clicked { $_[0]->main->error('Handler method on_delete_project_bp_clicked for event delete_project_bp.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������Padre-1.00/lib/Padre/Wx/FBP/Sync.pm�����������������������������������������������������������������0000644�0001750�0001750�00000020267�12237327555�015243� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Sync; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Padre Sync"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); my $m_staticText12 = Wx::StaticText->new( $self, -1, Wx::gettext("Server:"), ); $self->{txt_remote} = Wx::TextCtrl->new( $self, -1, "http://sync.perlide.org/", Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText13 = Wx::StaticText->new( $self, -1, Wx::gettext("Status:"), ); $self->{lbl_status} = Wx::StaticText->new( $self, -1, Wx::gettext("Logged out"), ); $self->{lbl_status}->SetFont( Wx::Font->new( Wx::NORMAL_FONT->GetPointSize, 70, 90, 92, 0, "" ) ); my $line1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText2 = Wx::StaticText->new( $self, -1, Wx::gettext("Email:"), ); $self->{login_email} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText3 = Wx::StaticText->new( $self, -1, Wx::gettext("Password:"), ); $self->{login_password} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_PASSWORD, ); $self->{btn_login} = Wx::Button->new( $self, -1, Wx::gettext("Login"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{btn_login}, sub { shift->btn_login(@_); }, ); my $m_staticText8 = Wx::StaticText->new( $self, -1, Wx::gettext("Email:"), ); $self->{txt_email} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText9 = Wx::StaticText->new( $self, -1, Wx::gettext("Confirm:"), ); $self->{txt_email_confirm} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText6 = Wx::StaticText->new( $self, -1, Wx::gettext("Password:"), ); $self->{txt_password} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_PASSWORD, ); my $m_staticText7 = Wx::StaticText->new( $self, -1, Wx::gettext("Confirm:"), ); $self->{txt_password_confirm} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_PASSWORD, ); $self->{btn_register} = Wx::Button->new( $self, -1, Wx::gettext("Register"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{btn_register}, sub { shift->btn_register(@_); }, ); my $line = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{btn_local} = Wx::Button->new( $self, -1, Wx::gettext("Upload"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{btn_local}->Disable; Wx::Event::EVT_BUTTON( $self, $self->{btn_local}, sub { shift->btn_local(@_); }, ); $self->{btn_remote} = Wx::Button->new( $self, -1, Wx::gettext("Download"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{btn_remote}->Disable; Wx::Event::EVT_BUTTON( $self, $self->{btn_remote}, sub { shift->btn_remote(@_); }, ); $self->{btn_delete} = Wx::Button->new( $self, -1, Wx::gettext("Delete"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{btn_delete}->Disable; Wx::Event::EVT_BUTTON( $self, $self->{btn_delete}, sub { shift->btn_delete(@_); }, ); $self->{btn_ok} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{btn_ok}, sub { shift->btn_ok(@_); }, ); my $fgSizer3 = Wx::FlexGridSizer->new( 2, 2, 0, 0 ); $fgSizer3->AddGrowableCol(1); $fgSizer3->SetFlexibleDirection(Wx::BOTH); $fgSizer3->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer3->Add( $m_staticText12, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 3 ); $fgSizer3->Add( $self->{txt_remote}, 0, Wx::ALL | Wx::EXPAND, 3 ); $fgSizer3->Add( $m_staticText13, 0, Wx::ALL, 3 ); $fgSizer3->Add( $self->{lbl_status}, 1, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL | Wx::EXPAND, 3 ); my $fgSizer1 = Wx::FlexGridSizer->new( 3, 2, 0, 0 ); $fgSizer1->AddGrowableCol(1); $fgSizer1->SetFlexibleDirection(Wx::HORIZONTAL); $fgSizer1->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer1->Add( $m_staticText2, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 3 ); $fgSizer1->Add( $self->{login_email}, 1, Wx::ALL | Wx::EXPAND, 3 ); $fgSizer1->Add( $m_staticText3, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 3 ); $fgSizer1->Add( $self->{login_password}, 0, Wx::ALL | Wx::EXPAND, 3 ); $fgSizer1->Add( 0, 0, 1, Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{btn_login}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 3 ); my $sbSizer1 = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("Authentication"), ), Wx::VERTICAL, ); $sbSizer1->Add( $fgSizer1, 0, Wx::EXPAND, 5 ); my $fgSizer2 = Wx::FlexGridSizer->new( 6, 2, 0, 0 ); $fgSizer2->AddGrowableCol(1); $fgSizer2->SetFlexibleDirection(Wx::HORIZONTAL); $fgSizer2->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer2->Add( $m_staticText8, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 3 ); $fgSizer2->Add( $self->{txt_email}, 0, Wx::ALL | Wx::EXPAND, 3 ); $fgSizer2->Add( $m_staticText9, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 3 ); $fgSizer2->Add( $self->{txt_email_confirm}, 0, Wx::ALL | Wx::EXPAND, 3 ); $fgSizer2->Add( $m_staticText6, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 3 ); $fgSizer2->Add( $self->{txt_password}, 0, Wx::ALL | Wx::EXPAND, 3 ); $fgSizer2->Add( $m_staticText7, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 3 ); $fgSizer2->Add( $self->{txt_password_confirm}, 0, Wx::ALL | Wx::EXPAND, 3 ); $fgSizer2->Add( 0, 0, 1, Wx::EXPAND, 5 ); $fgSizer2->Add( $self->{btn_register}, 0, Wx::ALIGN_RIGHT | Wx::ALL, 3 ); my $sbSizer2 = Wx::StaticBoxSizer->new( Wx::StaticBox->new( $self, -1, Wx::gettext("Registration"), ), Wx::VERTICAL, ); $sbSizer2->Add( $fgSizer2, 1, Wx::EXPAND, 5 ); my $bSizer7 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer7->Add( $sbSizer1, 1, Wx::EXPAND, 5 ); $bSizer7->Add( 10, 0, 0, Wx::EXPAND, 5 ); $bSizer7->Add( $sbSizer2, 1, Wx::EXPAND, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{btn_local}, 0, Wx::ALL, 3 ); $buttons->Add( $self->{btn_remote}, 0, Wx::ALL, 3 ); $buttons->Add( $self->{btn_delete}, 0, Wx::ALL, 3 ); $buttons->Add( 50, 0, 1, Wx::EXPAND, 3 ); $buttons->Add( $self->{btn_ok}, 0, Wx::ALL, 3 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $fgSizer3, 0, Wx::EXPAND, 5 ); $vsizer->Add( $line1, 0, Wx::BOTTOM | Wx::EXPAND | Wx::TOP, 5 ); $vsizer->Add( $bSizer7, 1, Wx::EXPAND, 5 ); $vsizer->Add( $line, 0, Wx::BOTTOM | Wx::EXPAND | Wx::TOP, 5 ); $vsizer->Add( $buttons, 0, Wx::ALIGN_RIGHT | Wx::EXPAND, 0 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($hsizer); $self->Layout; return $self; } sub btn_login { $_[0]->main->error('Handler method btn_login for event btn_login.OnButtonClick not implemented'); } sub btn_register { $_[0]->main->error('Handler method btn_register for event btn_register.OnButtonClick not implemented'); } sub btn_local { $_[0]->main->error('Handler method btn_local for event btn_local.OnButtonClick not implemented'); } sub btn_remote { $_[0]->main->error('Handler method btn_remote for event btn_remote.OnButtonClick not implemented'); } sub btn_delete { $_[0]->main->error('Handler method btn_delete for event btn_delete.OnButtonClick not implemented'); } sub btn_ok { $_[0]->main->error('Handler method btn_ok for event btn_ok.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Syntax.pm���������������������������������������������������������������0000644�0001750�0001750�00000004346�12237327555�015615� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Syntax; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); use Padre::Wx::HtmlWindow (); use Padre::Wx::TreeCtrl (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Panel }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::DefaultPosition, [ 500, 300 ], Wx::TAB_TRAVERSAL, ); $self->{tree} = Padre::Wx::TreeCtrl->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::TR_FULL_ROW_HIGHLIGHT | Wx::TR_SINGLE | Wx::NO_BORDER, ); Wx::Event::EVT_TREE_SEL_CHANGED( $self, $self->{tree}, sub { shift->on_tree_item_selection_changed(@_); }, ); $self->{help} = Padre::Wx::HtmlWindow->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::NO_BORDER, ); $self->{show_stderr} = Wx::Button->new( $self, -1, Wx::gettext("Show Standard Error"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{show_stderr}, sub { shift->show_stderr(@_); }, ); my $bSizer38 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer38->Add( $self->{tree}, 3, Wx::ALL | Wx::EXPAND, 0 ); $bSizer38->Add( $self->{help}, 2, Wx::ALL | Wx::EXPAND, 0 ); my $bSizer39 = Wx::BoxSizer->new(Wx::HORIZONTAL); $bSizer39->Add( $self->{show_stderr}, 0, Wx::ALL | Wx::BOTTOM | Wx::TOP, 2 ); my $bSizer37 = Wx::BoxSizer->new(Wx::VERTICAL); $bSizer37->Add( $bSizer38, 1, Wx::EXPAND, 0 ); $bSizer37->Add( $bSizer39, 0, Wx::EXPAND, 0 ); $self->SetSizer($bSizer37); $self->Layout; return $self; } sub on_tree_item_selection_changed { $_[0]->main->error('Handler method on_tree_item_selection_changed for event tree.OnTreeSelChanged not implemented'); } sub show_stderr { $_[0]->main->error('Handler method show_stderr for event show_stderr.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Diff.pm�����������������������������������������������������������������0000644�0001750�0001750�00000006643�12237327555�015201� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Diff; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Diff"), Wx::DefaultPosition, [ 431, 345 ], Wx::DEFAULT_DIALOG_STYLE | Wx::RESIZE_BORDER, ); $self->{prev_diff} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); Wx::Event::EVT_BUTTON( $self, $self->{prev_diff}, sub { shift->on_prev_diff_click(@_); }, ); $self->{next_diff} = Wx::BitmapButton->new( $self, -1, Wx::NullBitmap, Wx::DefaultPosition, Wx::DefaultSize, Wx::BU_AUTODRAW, ); Wx::Event::EVT_BUTTON( $self, $self->{next_diff}, sub { shift->on_next_diff_click(@_); }, ); $self->{left_side_label} = Wx::StaticText->new( $self, -1, Wx::gettext("Left side"), ); $self->{left_editor} = Wx::ScintillaTextCtrl->new( $self, -1, ); $self->{right_side_label} = Wx::StaticText->new( $self, -1, Wx::gettext("Right side"), ); $self->{right_editor} = Wx::ScintillaTextCtrl->new( $self, -1, ); $self->{close} = Wx::Button->new( $self, -1, Wx::gettext("Close"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{close}, sub { shift->on_close_click(@_); }, ); my $navigation_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $navigation_sizer->Add( $self->{prev_diff}, 0, Wx::ALL, 1 ); $navigation_sizer->Add( $self->{next_diff}, 0, Wx::ALL, 1 ); my $left_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $left_sizer->Add( $self->{left_side_label}, 0, Wx::ALIGN_CENTER_HORIZONTAL | Wx::ALL, 5 ); $left_sizer->Add( $self->{left_editor}, 1, Wx::ALL | Wx::EXPAND, 0 ); my $right_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $right_sizer->Add( $self->{right_side_label}, 0, Wx::ALIGN_CENTER | Wx::ALL, 5 ); $right_sizer->Add( $self->{right_editor}, 1, Wx::ALL | Wx::EXPAND, 0 ); my $editor_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $editor_sizer->Add( $left_sizer, 1, Wx::EXPAND, 5 ); $editor_sizer->Add( $right_sizer, 1, Wx::EXPAND, 5 ); my $button_sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $button_sizer->Add( 0, 0, 1, Wx::EXPAND, 5 ); $button_sizer->Add( $self->{close}, 0, Wx::ALL, 2 ); my $main_sizer = Wx::BoxSizer->new(Wx::VERTICAL); $main_sizer->Add( $navigation_sizer, 0, Wx::ALIGN_RIGHT, 5 ); $main_sizer->Add( $editor_sizer, 1, Wx::EXPAND, 5 ); $main_sizer->Add( $button_sizer, 0, Wx::EXPAND, 5 ); $self->SetSizer($main_sizer); $self->Layout; return $self; } sub on_prev_diff_click { $_[0]->main->error('Handler method on_prev_diff_click for event prev_diff.OnButtonClick not implemented'); } sub on_next_diff_click { $_[0]->main->error('Handler method on_next_diff_click for event next_diff.OnButtonClick not implemented'); } sub on_close_click { $_[0]->main->error('Handler method on_close_click for event close.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/ModuleStarter.pm��������������������������������������������������������0000644�0001750�0001750�00000011626�12237327555�017120� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::ModuleStarter; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Module Starter"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); $self->{m_staticText4} = Wx::StaticText->new( $self, -1, Wx::gettext("Module Name:"), ); $self->{module} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); $self->{module}->SetMinSize( [ 280, -1 ] ); $self->{module}->SetToolTip( Wx::gettext("You can now add multiple module names, ie: Foo::Bar, Foo::Bar::Two (csv)") ); $self->{m_staticText8} = Wx::StaticText->new( $self, -1, Wx::gettext("Author:"), ); $self->{identity_name} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); $self->{m_staticText5} = Wx::StaticText->new( $self, -1, Wx::gettext("Email Address:"), ); $self->{identity_email} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); my $m_staticText6 = Wx::StaticText->new( $self, -1, Wx::gettext("Builder:"), ); $self->{module_starter_builder} = Wx::Choice->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{module_starter_builder}->SetSelection(0); $self->{m_staticText7} = Wx::StaticText->new( $self, -1, Wx::gettext("License:"), ); $self->{module_starter_license} = Wx::Choice->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{module_starter_license}->SetSelection(0); $self->{m_staticText3} = Wx::StaticText->new( $self, -1, Wx::gettext("Parent Directory:"), ); $self->{module_starter_directory} = Wx::DirPickerCtrl->new( $self, -1, "", Wx::gettext("Select a folder"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DIRP_DEFAULT_STYLE, ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $ok = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("OK"), Wx::DefaultPosition, Wx::DefaultSize, ); $ok->SetDefault; Wx::Event::EVT_BUTTON( $self, $ok, sub { shift->ok_clicked(@_); }, ); my $cancel = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); my $fgSizer1 = Wx::FlexGridSizer->new( 2, 2, 0, 10 ); $fgSizer1->AddGrowableCol(1); $fgSizer1->SetFlexibleDirection(Wx::BOTH); $fgSizer1->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer1->Add( $self->{m_staticText4}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer1->Add( $self->{module}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{m_staticText8}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer1->Add( $self->{identity_name}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{m_staticText5}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer1->Add( $self->{identity_email}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer1->Add( $m_staticText6, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer1->Add( $self->{module_starter_builder}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{m_staticText7}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer1->Add( $self->{module_starter_license}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer1->Add( $self->{m_staticText3}, 0, Wx::ALL, 5 ); $fgSizer1->Add( $self->{module_starter_directory}, 0, Wx::ALL | Wx::EXPAND, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $ok, 0, Wx::ALL, 5 ); $buttons->Add( 100, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $cancel, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $fgSizer1, 1, Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($sizer); $self->Layout; return $self; } sub module { $_[0]->{module}; } sub identity_name { $_[0]->{identity_name}; } sub identity_email { $_[0]->{identity_email}; } sub module_starter_builder { $_[0]->{module_starter_builder}; } sub module_starter_license { $_[0]->{module_starter_license}; } sub module_starter_directory { $_[0]->{module_starter_directory}; } sub ok_clicked { $_[0]->main->error('Handler method ok_clicked for event ok.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/WhereFrom.pm������������������������������������������������������������0000644�0001750�0001750�00000004045�12237327555�016221� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::WhereFrom; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module, edit the original .fbp file and regenerate. # DO NOT MODIFY BY HAND! use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("New Installation Survey"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); my $label = Wx::StaticText->new( $self, -1, Wx::gettext("Where did you hear about Padre?"), ); my $from = Wx::ComboBox->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, [], ); my $line = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $ok = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("OK"), ); my $cancel = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Skip question without giving feedback"), ); my $question = Wx::BoxSizer->new(Wx::HORIZONTAL); $question->Add( $label, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $question->Add( $from, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $ok, 0, Wx::ALL, 5 ); $buttons->Add( 0, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $cancel, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $question, 1, Wx::ALIGN_RIGHT, 0 ); $vsizer->Add( $line, 0, Wx::EXPAND | Wx::LEFT | Wx::RIGHT, 5 ); $vsizer->Add( $buttons, 1, Wx::ALIGN_RIGHT | Wx::EXPAND, 0 ); my $hsizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $hsizer->Add( $vsizer, 1, Wx::EXPAND, 5 ); $self->SetSizer($hsizer); $self->Layout; $hsizer->Fit($self); return $self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Bookmarks.pm������������������������������������������������������������0000644�0001750�0001750�00000007455�12237327555�016263� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Bookmarks; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Bookmarks"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); $self->{set_label} = Wx::StaticText->new( $self, -1, Wx::gettext("Set Bookmark:"), ); $self->{set_label}->Hide; $self->{set} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, Wx::DefaultSize, ); $self->{set}->Hide; $self->{set_line} = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{set_line}->Hide; $self->{m_staticText2} = Wx::StaticText->new( $self, -1, Wx::gettext("Existing Bookmarks:"), ); $self->{list} = Wx::ListBox->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], Wx::LB_NEEDED_SB | Wx::LB_SINGLE, ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{ok} = Wx::Button->new( $self, Wx::ID_OK, Wx::gettext("OK"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{ok}->SetDefault; $self->{delete} = Wx::Button->new( $self, -1, Wx::gettext("&Delete"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{delete}, sub { shift->delete_clicked(@_); }, ); $self->{delete_all} = Wx::Button->new( $self, -1, Wx::gettext("Delete &All"), Wx::DefaultPosition, Wx::DefaultSize, ); Wx::Event::EVT_BUTTON( $self, $self->{delete_all}, sub { shift->delete_all_clicked(@_); }, ); my $cancel = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); my $existing = Wx::BoxSizer->new(Wx::HORIZONTAL); $existing->Add( $self->{m_staticText2}, 0, Wx::ALL, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{ok}, 0, Wx::ALL, 5 ); $buttons->Add( $self->{delete}, 0, Wx::ALL, 5 ); $buttons->Add( $self->{delete_all}, 0, Wx::ALL, 5 ); $buttons->Add( 20, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $cancel, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $self->{set_label}, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::LEFT | Wx::RIGHT | Wx::TOP, 5 ); $vsizer->Add( $self->{set}, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $self->{set_line}, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $existing, 1, Wx::EXPAND, 5 ); $vsizer->Add( $self->{list}, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); $self->{sizer} = Wx::BoxSizer->new(Wx::HORIZONTAL); $self->{sizer}->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($self->{sizer}); $self->Layout; return $self; } sub set_label { $_[0]->{set_label}; } sub set { $_[0]->{set}; } sub set_line { $_[0]->{set_line}; } sub list { $_[0]->{list}; } sub ok { $_[0]->{ok}; } sub delete { $_[0]->{delete}; } sub delete_all { $_[0]->{delete_all}; } sub delete_clicked { $_[0]->main->error('Handler method delete_clicked for event delete.OnButtonClick not implemented'); } sub delete_all_clicked { $_[0]->main->error('Handler method delete_all_clicked for event delete_all.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/FBP/Snippet.pm��������������������������������������������������������������0000644�0001750�0001750�00000010064�12237327555�015743� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::FBP::Snippet; ## no critic # This module was generated by Padre::Plugin::FormBuilder::Perl. # To change this module edit the original .fbp file and regenerate. # DO NOT MODIFY THIS FILE BY HAND! use 5.008005; use utf8; use strict; use warnings; use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::Dialog }; sub new { my $class = shift; my $parent = shift; my $self = $class->SUPER::new( $parent, -1, Wx::gettext("Insert Snippet"), Wx::DefaultPosition, Wx::DefaultSize, Wx::DEFAULT_DIALOG_STYLE, ); my $filter_label = Wx::StaticText->new( $self, -1, Wx::gettext("Filter:"), ); $self->{filter} = Wx::Choice->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{filter}->SetSelection(0); Wx::Event::EVT_CHOICE( $self, $self->{filter}, sub { shift->refilter(@_); }, ); my $name_label = Wx::StaticText->new( $self, -1, Wx::gettext("Snippet:"), ); $self->{select} = Wx::Choice->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, [], ); $self->{select}->SetSelection(0); Wx::Event::EVT_CHOICE( $self, $self->{select}, sub { shift->refresh(@_); }, ); my $m_staticline4 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); my $m_staticText11 = Wx::StaticText->new( $self, -1, Wx::gettext("Preview:"), ); $self->{preview} = Wx::TextCtrl->new( $self, -1, "", Wx::DefaultPosition, [ 300, 200 ], Wx::TE_MULTILINE | Wx::TE_READONLY, ); $self->{preview}->SetBackgroundColour( Wx::SystemSettings::GetColour( Wx::SYS_COLOUR_MENU ) ); my $m_staticline1 = Wx::StaticLine->new( $self, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::LI_HORIZONTAL, ); $self->{insert} = Wx::Button->new( $self, -1, Wx::gettext("Insert"), Wx::DefaultPosition, Wx::DefaultSize, ); $self->{insert}->SetDefault; Wx::Event::EVT_BUTTON( $self, $self->{insert}, sub { shift->insert_snippet(@_); }, ); $self->{cancel} = Wx::Button->new( $self, Wx::ID_CANCEL, Wx::gettext("Cancel"), Wx::DefaultPosition, Wx::DefaultSize, ); my $fgSizer2 = Wx::FlexGridSizer->new( 2, 2, 0, 10 ); $fgSizer2->AddGrowableCol(1); $fgSizer2->SetFlexibleDirection(Wx::BOTH); $fgSizer2->SetNonFlexibleGrowMode(Wx::FLEX_GROWMODE_SPECIFIED); $fgSizer2->Add( $filter_label, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $self->{filter}, 0, Wx::ALL | Wx::EXPAND, 5 ); $fgSizer2->Add( $name_label, 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALL, 5 ); $fgSizer2->Add( $self->{select}, 0, Wx::ALL | Wx::EXPAND, 5 ); my $buttons = Wx::BoxSizer->new(Wx::HORIZONTAL); $buttons->Add( $self->{insert}, 0, Wx::ALL, 5 ); $buttons->Add( 0, 0, 1, Wx::EXPAND, 5 ); $buttons->Add( $self->{cancel}, 0, Wx::ALL, 5 ); my $vsizer = Wx::BoxSizer->new(Wx::VERTICAL); $vsizer->Add( $fgSizer2, 1, Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline4, 0, Wx::EXPAND | Wx::ALL, 5 ); $vsizer->Add( $m_staticText11, 0, Wx::LEFT | Wx::TOP, 5 ); $vsizer->Add( $self->{preview}, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $m_staticline1, 0, Wx::ALL | Wx::EXPAND, 5 ); $vsizer->Add( $buttons, 0, Wx::EXPAND, 5 ); my $sizer = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizer->Add( $vsizer, 1, Wx::ALL | Wx::EXPAND, 5 ); $self->SetSizerAndFit($sizer); $self->Layout; return $self; } sub filter { $_[0]->{filter}; } sub select { $_[0]->{select}; } sub preview { $_[0]->{preview}; } sub insert { $_[0]->{insert}; } sub cancel { $_[0]->{cancel}; } sub refilter { $_[0]->main->error('Handler method refilter for event filter.OnChoice not implemented'); } sub refresh { $_[0]->main->error('Handler method refresh for event select.OnChoice not implemented'); } sub insert_snippet { $_[0]->main->error('Handler method insert_snippet for event insert.OnButtonClick not implemented'); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Directory.pm����������������������������������������������������������������0000644�0001750�0001750�00000044524�12237327555�015666� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Directory; use 5.008; use strict; use warnings; use Params::Util (); use Padre::Current (); use Padre::Util (); use Padre::Feature (); use Padre::Role::Task (); use Padre::Wx (); use Padre::Wx::Role::Timer (); use Padre::Wx::Role::View (); use Padre::Wx::Role::Main (); use Padre::Wx::Role::Context (); use Padre::Wx::Directory::TreeCtrl (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = qw{ Padre::Role::Task Padre::Wx::Role::Timer Padre::Wx::Role::View Padre::Wx::Role::Main Padre::Wx::Role::Context Wx::Panel }; use Class::XSAccessor { getters => { root => 'root', tree => 'tree', search => 'search', }, }; ###################################################################### # Constructor # Creates the Directory Left Panel with a Search field # and the Directory Browser sub new { TRACE( $_[0] ) if DEBUG; my $class = shift; my $main = shift; # Create the parent panel, which will contain the search and tree my $self = $class->SUPER::new( $main->directory_panel, -1, Wx::DefaultPosition, Wx::DefaultSize, ); # Where is the current root directory of the tree $self->{root} = ''; # Modes (browse or search) $self->{searching} = 0; # Flag to ignore tree events when an automated process is # making large numbers of automated changes. $self->{ignore} = 0; # Create the search control my $search = $self->{search} = Wx::SearchCtrl->new( $self, -1, '', Wx::DefaultPosition, Wx::DefaultSize, Wx::TE_PROCESS_ENTER ); # Set the descriptive text for the search button. # This line is causing an error on Ubuntu due to some Wx problems. # see https://bugs.launchpad.net/ubuntu/+source/padre/+bug/485012 # Supporting Ubuntu seems to be more important than having this text: if ( Padre::Util::DISTRO() ne 'UBUNTU' ) { $search->SetDescriptiveText( Wx::gettext('Search') ); } # Use a long and obvious 3 second dwell timer for text events Wx::Event::EVT_TEXT( $self, $search, sub { return if $_[0]->{ignore}; $_[0]->dwell_start( 'on_text', 333 ); }, ); Wx::Event::EVT_SEARCHCTRL_CANCEL_BTN( $self, $search, sub { return if $_[0]->{ignore}; $_[0]->{search}->SetValue(''); # Don't wait for dwell in this case, # shortcut and trigger immediately. $_[0]->dwell_stop('on_text'); $_[0]->on_text; }, ); # Create the render interval timer when searching $self->{find_timer_id} = Wx::NewId(); $self->{find_timer} = Wx::Timer->new( $self, $self->{find_timer_id}, ); Wx::Event::EVT_TIMER( $self, $self->{find_timer_id}, sub { $self->find_timer( $_[1], $_[2] ); }, ); # Create the tree control $self->{tree} = Padre::Wx::Directory::TreeCtrl->new($self); $self->{tree}->SetPlData( $self->{tree}->GetRootItem, Padre::Wx::Directory::Path->directory, ); Wx::Event::EVT_TREE_ITEM_EXPANDED( $self, $self->{tree}, sub { return if $_[0]->{ignore}; shift->on_expand(@_); } ); # Fill the panel my $sizerv = Wx::BoxSizer->new(Wx::VERTICAL); my $sizerh = Wx::BoxSizer->new(Wx::HORIZONTAL); $sizerv->Add( $self->{search}, 0, Wx::ALL | Wx::EXPAND, 0 ); $sizerv->Add( $self->{tree}, 1, Wx::ALL | Wx::EXPAND, 0 ); $sizerh->Add( $sizerv, 1, Wx::ALL | Wx::EXPAND, 0 ); # Fits panel layout $self->SetSizerAndFit($sizerh); $sizerh->SetSizeHints($self); $self->context_bind; if (Padre::Feature::STYLE_GUI) { $self->main->theme->apply( $self->{tree} ); } return $self; } ###################################################################### # Padre::Role::Task Methods sub task_reset { my $self = shift; # As a convenience, reset any timers used by task message processing $self->{find_timer}->Stop; # Reset normally as well $self->SUPER::task_reset(@_); } sub task_request { my $self = shift; my $current = $self->current; my $project = $current->project; unless ( defined $project ) { $project = $current->ide->project_manager->project( $current->config->main_directory_root ); } return $self->SUPER::task_request( @_, project => $project, ); } ###################################################################### # Padre::Wx::Role::View Methods sub view_panel { 'left'; } sub view_label { Wx::gettext('Project'); } sub view_close { shift->main->show_directory(0); } sub view_stop { TRACE( $_[0] ) if DEBUG; $_[0]->task_reset; $_[0]->dwell_stop('on_text'); # Just in case } ###################################################################### # Padre::Wx::Role::Context Methods sub context_menu { my $self = shift; my $menu = shift; $self->context_append_method( $menu, Wx::gettext('Refresh'), 'rebrowse', ); $menu->AppendSeparator; $self->context_append_options( $menu, 'main_directory_panel', ); return; } ###################################################################### # Event Handlers # If it is a project, caches search field content while it is typed and # searchs for files that matchs the type word. sub on_text { TRACE( $_[0] ) if DEBUG; my $self = shift; my $search = $self->{search}; # Operations in here often trigger secondary event triggers that # we definitely don't want to fire. Temporarily suppress them. $self->{ignore}++; if ( $self->{searching} ) { if ( $search->IsEmpty ) { # Leaving search mode TRACE("Leaving search mode") if DEBUG; $self->{searching} = 0; $self->task_reset; $self->clear; $self->refill; $self->rebrowse; } else { # Changing search term TRACE("Changing search term") if DEBUG; $self->find; } } else { if ( $search->IsEmpty ) { # Nothing to do # NOTE: I don't understand why this should ever fire, # but it does seem to fire very late when the directory # browser changes projects directories. # TRACE("WARNING: This should never fire") if DEBUG; } else { # Entering search mode TRACE("Entering search mode") if DEBUG; $self->{files} = $self->tree->GetChildrenPlData; $self->{expand} = $self->tree->expanded; $self->{searching} = 1; $search->ShowCancelButton(1); $self->find; } } # Stop ignoring user events $self->{ignore}--; return 1; } sub on_expand { my $self = shift; my $event = shift; my $item = $event->GetItem; my $path = $self->{tree}->GetPlData($item); return $self->browse($path); } ###################################################################### # General Methods # The search term if we have one sub term { $_[0]->{search}->GetValue; } # Are we in search mode? sub searching { $_[0]->{search}->IsEmpty ? 0 : 1; } # Updates the gui, so each compoment can update itself # according to the new state. sub clear { TRACE( $_[0] ) if DEBUG; my $self = shift; my $lock = $self->lock_update; $self->{search}->SetValue(''); $self->{search}->ShowCancelButton(0); $self->{tree}->DeleteChildren( $self->{tree}->GetRootItem ); return; } # Refill the tree from storage sub refill { my $self = shift; my $tree = $self->{tree}; my $root = $tree->GetRootItem; my $files = delete $self->{files} or return; my $expand = delete $self->{expand} or return; my $lock = $self->lock_update; my @stack = (); shift @$files; # Suppress events while rebuilding the tree $self->{ignore}++; foreach my $path (@$files) { while (@stack) { # If we are not the child of the deepest element in # the stack, move up a level and try again last if $tree->GetPlData( $stack[-1] )->is_parent($path); # We have finished filling the directory. # Now it (maybe) has children, we can expand it. my $complete = pop @stack; if ( $expand->{ $tree->GetPlData($complete)->unix } ) { $tree->Expand($complete); } } # If there is anything left on the stack it is our parent my $parent = $stack[-1] || $root; # Add the next item to that parent my $item = $tree->AppendItem( $parent, # Parent $path->name, # Label $tree->{images}->{ $path->image }, # Icon -1, # Icon (Selected) Wx::TreeItemData->new($path), # Embedded data ); # If it is a folder, it goes onto the stack if ( $path->type == 1 ) { push @stack, $item; } } # Apply the same Expand logic above to any remaining stack elements while (@stack) { my $complete = pop @stack; if ( $expand->{ $tree->GetPlData($complete)->unix } ) { $tree->Expand($complete); } } # If we moved during the fill, move back my $first = ( $tree->GetFirstChild($root) )[0]; $tree->ScrollTo($first) if $first->IsOk; # End suppressing events $self->{ignore}--; return 1; } ###################################################################### # Directory Tree Methods # Updates the gui if needed, calling Searcher and Browser respectives # refresh function. # Called outside Directory.pm, on directory browser focus and item dragging sub refresh { TRACE( $_[0] ) if DEBUG; my $self = shift; my $current = Padre::Current::_CURRENT(@_); my $manager = $current->ide->project_manager; # NOTE: Without a file open, Padre does not consider itself to # have a "current project". We should probably try to find a way # to correct this in future. # NOTE: There's a semi-working hacky fix just for the directory # browser here now, but really it needs to be integrated more deeply. my $config = $current->config; my $project = $current->project; my $root = $project ? $project->root : $config->main_directory_root; if ( $root and not $project ) { if ( $manager->project_exists($root) ) { $project = $manager->project($root); } } my @options = ( order => $config->main_directory_order, ); # Switch project states if needed unless ( $self->{root} eq $root ) { my $manager = $current->ide->project_manager; # Save the current model data to the cache # if we potentially need it again later. if ( $manager->project_exists( $self->{root} ) ) { require Padre::Cache; my $stash = Padre::Cache->stash( __PACKAGE__ => $manager->project( $self->{root} ), ); if ( $self->{searching} ) { # Save the stored browse state %$stash = ( root => $self->{root}, files => $self->{files}, expand => $self->{expand}, ); } else { # Capture the browse state fresh. %$stash = ( root => $self->{root}, files => $self->tree->GetChildrenPlData, expand => $self->tree->expanded, ); } } # Flush the now-unusable local state $self->clear; $self->{root} = $root; $self->{files} = undef; $self->{expand} = undef; # Do we have an (out of date) cached state we can use? # If so, display it immediately and update it later on. if ( defined $project ) { require Padre::Cache; my $stash = Padre::Cache->stash( __PACKAGE__ => $project, ); if ( $stash->{root} ) { # We have a cached state $self->{files} = $stash->{files}; $self->{expand} = $stash->{expand}; $self->refill; $self->rebrowse; } else { $self->task_reset; $self->browse; } } else { $self->task_reset; $self->browse; } } return 1; } sub relocale { my $self = shift; my $search = $self->{search}; # Reset the descriptive text if ( Padre::Util::DISTRO() ne 'UBUNTU' ) { $search->SetDescriptiveText( Wx::gettext('Search') ); } return 1; } ###################################################################### # Browse Methods # Rebrowse issues a browse task for ALL currently expanded nodes in the # browse tree. This will cause all changes on disk to be reflected in the # visible browse tree. sub rebrowse { TRACE( $_[0] ) if DEBUG; my $self = shift; my $expanded = $self->{tree}->GetExpandedPlData; $self->task_reset; $self->browse(@$expanded); } sub browse { TRACE( $_[0] ) if DEBUG; my $self = shift; return if $self->searching; # Switch tasks to the browse task $self->task_request( task => 'Padre::Wx::Directory::Browse', on_message => 'browse_message', on_finish => 'browse_finish', list => [ @_ ? @_ : Padre::Wx::Directory::Path->directory ], ); return; } sub browse_message { TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = shift; my $parent = shift; # Find the parent, discarding the message if we can't find it my $tree = $self->{tree}; my $cursor = $tree->GetRootItem; foreach my $name ( $parent->path ) { # Locate the child to descend to. # Discard the entire message if the target child doesn't exist. $cursor = $tree->GetChildByText( $cursor, $name ) or return 1; } # Mix the returned files into the existing entries. # If there aren't any existing entries, this shortcuts quite nicely. my ( $child, $cookie ) = $tree->GetFirstChild($cursor); my $position = 0; while (@_) { # Are we past the last entry? unless ( $child->IsOk ) { my $path = shift; $tree->AppendItem( $cursor, # Parent $path->name, # Label $tree->{images}->{ $path->image }, # Icon -1, # Icon (Selected) Wx::TreeItemData->new($path), # Embedded data ); next; } # Are we before, after, or a duplicate my $chd = $tree->GetPlData($child); if ( not defined $_[0] or not defined $chd ) { # NOTE: This should never happen, but it does and it # crashes padre in the compare method when calling # is_directory on the object. # This should have been fixed by commit #18174 but # we will leave this code for a while in case it # isn't actually fixed. unless ( defined $chd ) { my $label = $tree->GetItemText($child) || 'undef'; my $project = $self->current->project->root; warn "GetPlData is bizarely undef for position=$position, child=$child, label=$label, project=$project"; } $self->main->error( Wx::gettext('Hit unfixed bug in directory browser, disabling it') ); $self->main->show_directory(0); return 1; } my $compare = $self->compare( $_[0], $chd ); if ( $compare > 0 ) { # Deleted entry, remove the current position my $delete = $child; ( $child, $cookie ) = $tree->GetNextChild( $cursor, $cookie ); $tree->Delete($delete); } elsif ( $compare < 0 ) { # New entry, insert before the current position my $path = shift; $tree->InsertItem( $cursor, # Parent $position, # Before $path->name, # Label $tree->{images}->{ $path->image }, # Icon -1, # Icon (Selected) Wx::TreeItemData->new($path), # Embedded data ); $position++; } else { # Already exists, discard the duplicate ( $child, $cookie ) = $tree->GetNextChild( $cursor, $cookie ); $position++; shift @_; } } # Remove any deleted trailing entries while ( $child->IsOk ) { # Deleted entry, remove the current position my $delete = $child; ( $child, $cookie ) = $tree->GetNextChild( $cursor, $cookie ); $tree->Delete($delete); } return 1; } sub browse_finish { TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = shift; } ###################################################################### # Incremental Search Methods sub find { TRACE( $_[0] ) if DEBUG; my $self = shift; return unless $self->searching; # Switch tasks to the find task $self->task_reset; $self->task_request( task => 'Padre::Wx::Directory::Search', on_message => 'find_message', on_finish => 'find_finish', filter => $self->term, ); # Set up the queue for result messages $self->{find_queue} = []; # Start the find render timer $self->{find_timer}->Start(250); # Make sure no existing files are listed $self->{tree}->DeleteChildren( $self->{tree}->GetRootItem ); return; } sub find_message { TRACE( $_[2]->unix ) if DEBUG; my $self = shift; my $task = shift; my $path = Params::Util::_INSTANCE( shift, 'Padre::Wx::Directory::Path' ) or return; push @{ $self->{find_queue} }, $path; } # We have hit a find_message render interval sub find_timer { TRACE( $_[0] ) if DEBUG; $_[0]->find_render; } sub find_finish { TRACE( $_[0] ) if DEBUG; my $self = shift; my $task = shift; # Halt the render timer $self->{find_timer}->Stop; # Render any final results $self->find_render; } # Add any matching file to the tree sub find_render { TRACE( $_[0] ) if DEBUG; my $self = shift; my $queue = $self->{find_queue}; return unless @$queue; # Because this should never be called from inside some larger # update locker, lets risk the use of our own more targetted locking # instead of using the official main->lock functionality. # Allow the lock to release naturally at the end of the method. my $tree = $self->tree; my $lock = $tree->lock_scroll; # Add all outstanding files foreach my $file (@$queue) { # Find where we need to start creating nodes from my $cursor = $tree->GetRootItem; my @base = (); my @dirs = $file->path; pop @dirs; while (@dirs) { my $name = shift @dirs; my $child = $tree->GetLastChild($cursor); if ( $child->IsOk and $tree->GetPlData($child)->name eq $name ) { $cursor = $child; push @base, $name; } else { unshift @dirs, $name; last; } } # Will we need to expand anything at the end? my $expand = @dirs ? $cursor : undef; # Create any new child directories while (@dirs) { my $name = shift @dirs; my $path = Padre::Wx::Directory::Path->directory( @base, $name ); my $item = $tree->AppendItem( $cursor, # Parent $path->name, # Label $tree->{images}->{folder}, # Icon -1, # Wx identifier Wx::TreeItemData->new($path), # Embedded data ); $cursor = $item; push @base, $name; } # Create the file itself $tree->AppendItem( $cursor, $file->name, $tree->{images}->{package}, -1, Wx::TreeItemData->new($file), ); # Expand anything we created. $tree->ExpandAllChildren($expand) if $expand; } # Reset the message queue $self->{find_queue} = []; } ###################################################################### # Panel Migration (Experimental) # Compare two paths to see which should be first sub compare { my $self = shift; my $left = shift; my $right = shift; return ( $right->is_directory <=> $left->is_directory or lc( $left->name ) cmp lc( $right->name ) ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/ScrollLock.pm���������������������������������������������������������������0000644�0001750�0001750�00000006016�12237327555�015763� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::ScrollLock; =pod =head1 NAME Padre::Wx::ScrollLock - Lock objects to prevent unintended scrolling =head1 SYNOPSIS SCOPE: { my $lock = $padre_wx_treectrl->lock_scroll; # Change the tree here } # The tree will unlock before here =head1 DESCRIPTION By default several Wx objects will auto-scroll to the location of an expand event or similar actions, as if it had been triggered by a human. This class provides an implementation of a "scroll lock" for short-lived sections of fully self-contained code that will be updating the structure or content of a tree control or other scrolling object. When created, the lock will create a Wx update locker for speed and flicker free changes to the object. It will also remember the current scroll position of the object. When destroyed, the lock will move the scroll position back to the original location if it has been changed in the process of an operation and then release the update lock. The result is that all operations on the object should occur with the tree appearing to stay fixed in place. Note that the lock MUST be short-lived, as it does not integrate with the rest of Padre's locking system. You should already have all the data needed to change the object prepared and ready to go before you create the lock. =cut use 5.008; use strict; use warnings; use Params::Util (); use Padre::Wx (); our $VERSION = '1.00'; sub new { my $class = shift; my $object = shift; unless ( Params::Util::_INSTANCE( $object, 'Wx::Window' ) ) { die "Did not provide a Wx::Window to lock"; } unless ( $object->can('SetScrollPos') ) { die "Did not provide a Wx::Window with a SetScrollPos method"; } # Create the object and record the scroll position return bless { object => $object, scrolly => $object->GetScrollPos(Wx::VERTICAL), locker => Wx::WindowUpdateLocker->new($object), }, $class; } sub cancel { $_[0]->{cancel} = 1; } sub apply { $_[0]->{object}->SetScrollPos( Wx::VERTICAL, $_[0]->{scrolly}, 0, ); } sub DESTROY { # Return the scroll position to the previous position ### NOTE: This just sets it to the top for now. unless ( $_[0]->{cancel} ) { $_[0]->apply; } # We don't need to explicitly release the Wx lock, it will be # deleted (and thus have it's own DESTROY logic fire) during # hash cleanup after this method completes. } 1; =pod =head1 TODO Find a way to prevent scrolling in native Wx and remove this class entirely. This whole exercise feels like a bit of a waste of time, because it emulates a more simple behaviour out of complex behaviour just because we can't disable the complex behaviour. =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Display.pm������������������������������������������������������������������0000644�0001750�0001750�00000011726�12237327555�015325� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Display; =pod =head1 NAME Padre::Wx::Display - Utility functions for physical display geometry =head1 DESCRIPTION This module provides a collection of utility functions relating to the physical display geometry of the host Padre is running on. These functions help choose the most visually elegant default sizes and positions for Padre windows, and allow Padre to adapt when the screen geometry of the host changes (which can be fairly common in the case of powerful multi-screen developer computers). =head1 FUNCTIONS =cut use 5.008; use strict; use warnings; use List::Util (); use Padre::Wx (); our $VERSION = '1.00'; use constant GOLDEN_RATIO => 1.618; ###################################################################### # Main Functions =pod =head2 perfect my $boolean = Padre::Wx::Display->perfect( Padre::Current->main ); The default Wx implementation of IsShownOnScreen is a bit weird, and while it may be technically correct as far as Wx is concerned it does not necesarily represent what a typical human expects, which is that the application is on an active plugged in monitor and that it is entirely on the monitor. The C<perfect> method takes a L<Wx::TopLevelWindow> object (which incorporates either a L<Wx::Dialog> or a L<Wx::Frame>) and determines if the window meets the warm and fuzzy human criteria for a usable location. Returns true if so, or false otherwise. =cut sub perfect { my $class = shift; my $window = shift; # Anything that isn't a regular framed window is acceptable return 1 if $window->IsIconized; return 1 if $window->IsMaximized; return 1 if $window->IsFullScreen; # Are we entirely within the usable area of a single display. my $rect = $window->GetScreenRect; foreach ( 0 .. Wx::Display::GetCount() - 1 ) { my $display = Wx::Display->new($_); if ( $display->GetGeometry->ContainsRect($rect) ) { return 1; } } return 0; } =pod =head2 primary Locates and returns the primary display as a L<Wx::Display> object. =cut sub primary { my $primary = ''; foreach ( 0 .. Wx::Display::GetCount() - 1 ) { $primary = Wx::Display->new($_); last if $primary->IsPrimary; } return $primary; } =pod =head2 primary_default Generate a L<Wx::Rect> (primarily for the L<Padre::Wx::Main> window) which is a landscape-orientation golden-ratio rectangle on the primary display with a 10% margin. =cut sub primary_default { my $primary = primary(); return _rect_golden( _rect_scale_margin( $primary->GetClientArea, 0.9, ), ); } sub dump { my $self = shift; my @displays = (); # Due to the way it is mapped into Wx.pm # this must NOT be called as a method. my $count = Wx::Display::GetCount(); foreach ( 0 .. $count - 1 ) { my $display = Wx::Display->new($_); push @displays, { Primary => $display->IsPrimary, Geometry => $self->dump_rect( $display->GetGeometry ), ClientArea => $self->dump_rect( $display->GetClientArea ), }; } return { Count => $count, DisplayList => \@displays, }; } sub dump_rect { my $self = shift; my $rect = shift; my %hash = (); foreach (qw{ Top Bottom Left Right Height Width }) { my $method = "Get$_"; $hash{$_} = $rect->$method(); } return \%hash; } ###################################################################### # Support Functions # Convert a Wx::Rect object to a string sub _rect_as_string { my $rect = shift; return join( ',', $rect->x, $rect->y, $rect->width, $rect->height, ); } # Convert a string back into a Wx::Rect sub _rect_from_string { Wx::Rect->new( split /,/, $_[0] ); } # Scale a rect by some ratio at the centre sub _rect_scale { my $rect = shift; my $ratio = shift; my $margin = ( 1 - $ratio ) / 2; $rect->width( int( $rect->width * $ratio ) ); $rect->height( int( $rect->height * $ratio ) ); $rect->x( $rect->x + int( $rect->width * $margin ) ); $rect->y( $rect->y + int( $rect->height * $margin ) ); return $rect; } # Scale a rect by some ration at the centre, # while retaining a consistent margin. sub _rect_scale_margin { my $rect = shift; my $ratio = shift; my $marginr = ( 1 - $ratio ) / 2; my $marginx = int( $rect->width * $marginr ); my $marginy = int( $rect->height * $marginr ); my $margin = ( $marginx > $marginy ) ? $marginy : $marginx; $rect->width( $rect->width - $margin * 2 ); $rect->height( $rect->height - $margin * 2 ); $rect->x( $rect->x + $margin ); $rect->y( $rect->y + $margin ); return $rect; } # Shrink long size to meet the (landscape) golden (aspect) ratio. sub _rect_golden { my $rect = shift; if ( $rect->width > ( $rect->height * GOLDEN_RATIO ) ) { # Shrink left from the right $rect->width( int( $rect->height * GOLDEN_RATIO ) ); } else { # Shrink up from the bottom $rect->height( int( $rect->width / GOLDEN_RATIO ) ); } return $rect; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������Padre-1.00/lib/Padre/Wx/Nth.pm����������������������������������������������������������������������0000644�0001750�0001750�00000003101�12237327555�014435� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Nth; # Provides rules and functionality to be triggered on a particular # numbered startup of Padre. use 5.008; use strict; use warnings; our $VERSION = '1.00'; # Even if more than one rule matches, only ever bother the user once # during a single instance of Padre. Multiple popups suck. sub nth { my $class = shift; my $main = shift; my $nth = shift; my $config = $main->config; # Is it Padre's birthday? my @t = localtime time; if ( $t[4] == 6 and $t[3] == 20 ) { # If we have already shown the birthday popup this year, # don't show it again. And don't bug the user about anything else # on our birthday so we don't spoil the party. my $year = $t[5] + 1900; return 1 if $config->nth_birthday == $year; # Save the new nth_birthday value now in case something goes wrong, # so we don't get locked into a crashing loop. $config->set( nth_birthday => $year ); $config->write; # Ask if they want to come to the party my $rv = $main->yes_no( "Today is Padre's Birthday!\n" . "Would you like join the party and thank the developers?", "OMG!", ); $main->action('help.live_support') if $rv; return 1; } # if ( $nth > 2 and not $config->nth_feedback ) { # require Padre::Wx::Dialog::WhereFrom; # my $dialog = Padre::Wx::Dialog::WhereFrom->new($main); # $dialog->run; # $dialog->Destroy; # return 1; # } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Wx/Notebook.pm�����������������������������������������������������������������0000644�0001750�0001750�00000016052�12237327555�015475� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Wx::Notebook; =pod =head1 NAME Padre::Wx::Notebook - Notebook that holds a set of editor objects =head1 DESCRIPTION B<Padre::Wx::Notebook> implements the tabbed notebook in the main window that stores the editors for open documents in Padre. =head1 METHODS =cut use 5.008; use strict; use warnings; use Params::Util (); use Padre::Wx (); use Padre::Wx::Role::Main (); our $VERSION = '1.00'; our @ISA = qw{ Padre::Wx::Role::Main Wx::AuiNotebook }; ###################################################################### # Constructor and Accessors sub new { my $class = shift; my $main = shift; my $aui = $main->aui; # Create the basic object my $self = $class->SUPER::new( $main, -1, Wx::DefaultPosition, Wx::DefaultSize, Wx::AUI_NB_TOP | Wx::BORDER_NONE | Wx::AUI_NB_SCROLL_BUTTONS | Wx::AUI_NB_TAB_MOVE | Wx::AUI_NB_CLOSE_ON_ACTIVE_TAB | Wx::AUI_NB_WINDOWLIST_BUTTON ); # Add ourself to the main window $aui->AddPane( $self, Padre::Wx->aui_pane_info( Name => 'notebook', Resizable => 1, PaneBorder => 0, Movable => 1, CaptionVisible => 0, CloseButton => 0, MaximizeButton => 0, Floatable => 1, Dockable => 1, Layer => 1, )->Center, ); $aui->caption( 'notebook' => Wx::gettext('Files'), ); Wx::Event::EVT_AUINOTEBOOK_PAGE_CHANGED( $self, $self, sub { shift->on_auinotebook_page_changed(@_); }, ); Wx::Event::EVT_AUINOTEBOOK_PAGE_CLOSE( $main, $self, sub { shift->on_close(@_); }, ); return $self; } ###################################################################### # GUI Methods sub refresh { my $self = shift; # Hand off to the refresh_notebook method for each # of the individual editors. foreach my $editor ( $self->editors ) { $editor->refresh_notebook; } return; } # Do a normal refresh on relocale, that should be enough sub relocale { $_[0]->refresh; } ###################################################################### # Main Methods =pod =head2 show_file $notebook->show_file('/home/user/path/script.pl'); The C<show_file> method takes a single parameter of a fully resolved filesystem path, finds the notebook page containing the editor for that file, and sets that editor to be the currently selected foreground page. Returns true if found and displayed, or false otherwise. =cut sub show_file { my $self = shift; my $file = shift or return; foreach my $i ( 0 .. $self->GetPageCount - 1 ) { my $editor = $self->GetPage($i) or next; my $document = $editor->{Document} or next; my $filename = $document->filename; if ( defined $filename and $file eq $filename ) { $self->SetSelection($i); return 1; } } return; } ###################################################################### # Event Handlers sub on_auinotebook_page_changed { my $self = shift; my $main = $self->main; my $lock = $main->lock( 'UPDATE', 'refresh', 'refresh_outline' ); my $editor = $self->current->editor; if ($editor) { my $page_history = $main->{page_history}; my $current = Scalar::Util::refaddr($editor); @$page_history = grep { $_ != $current } @$page_history; push @$page_history, $current; } # Hide the Find Fast panel when this changes $main->show_findfast(0); $main->ide->plugin_manager->plugin_event('editor_changed'); } ###################################################################### # Introspection and Convenience =pod =head2 pageids my @ids = $notebook->pageids; Return a list of all current tab ids (integers) within the notebook. =cut sub pageids { return ( 0 .. $_[0]->GetPageCount - 1 ); } =pod =head2 pages my @pages = $notebook->pages; Return a list of all notebook tabs. Those are the real objects, not page ids, and should be L<Padre::Wx::Editor> objects (although they are not guarenteed to be). =cut sub pages { my $self = shift; return map { $self->GetPage($_) } $self->pageids; } =pod =head2 editors my @editors = $notebook->editors; Return a list of all current editors. Those are the real objects, not page ids, and are guarenteed to be L<Padre::Wx::Editor> objects. Note: for now, this has the same meaning as the C<pages> method, but this will change once we get specialised non-text entry tabs. =cut sub editors { return grep { Params::Util::_INSTANCE( $_, 'Padre::Wx::Editor' ) } $_[0]->pages; } =pod =head2 documents my @document = $notebook->documents; Return a list of all current documents, in the specific order they are open in the notepad. =cut sub documents { return map { $_->{Document} } $_[0]->editors; } =pod =head2 prefix The C<prefix> method scans the list of all local documents, and finds the common root directory for all of them. =cut sub prefix { my $self = shift; my $found = 0; my @prefix = (); foreach my $i ( 0 .. $self->GetPageCount - 1 ) { my $document = $self->GetPage($i)->{Document} or next; my $file = $document->file or next; $file->isa('Padre::File::Local') or next; unless ( $found++ ) { @prefix = $file->splitvdir; next; } # How deep do the paths match my @path = $file->splitvdir; if ( @prefix > @path ) { foreach ( 0 .. $#path ) { unless ( $prefix[$_] eq $path[$_] ) { @path = @path[ 0 .. $_ - 1 ]; last; } } @prefix = @path; } else { foreach ( 0 .. $#prefix ) { unless ( $prefix[$_] eq $path[$_] ) { @prefix = @prefix[ 0 .. $_ - 1 ]; last; } } } } return @prefix; } # Build a page id to label map # returns list of ARRAY refs # in each ARRAY ref the first value is the label # the second value is the full path sub labels { my $self = shift; my @prefix = $self->prefix; my @labels = (); foreach my $i ( 0 .. $self->GetPageCount - 1 ) { my $document = $self->GetPage($i)->{Document}; unless ($document) { push @labels, undef; next; } # "Untitled N" files my $file = $document->file; unless ($file) { my $title = $self->GetPageText($i); $title =~ s/[ *]+//; push @labels, [ $title, $title ]; next; } # Show local files relative to the common prefix if ( $file->isa('Padre::File::Local') ) { my @path = $file->splitall; @path = @path[ scalar(@prefix) .. $#path ]; push @labels, [ File::Spec->catfile(@path), $file->filename ]; next; } # Show the full path to non-local files push @labels, [ $file->{filename}, $file->{filename} ]; } return @labels; } sub find_pane_by_label { my $self = shift; my $label = shift; my @labels = $self->labels; my ($id) = grep { $label eq $labels[$_][0] } 0 .. $#labels; return $id; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/TaskQueue.pm�������������������������������������������������������������������0000644�0001750�0001750�00000003136�12237327555�015225� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::TaskQueue; # A stripped down and heavily modified version of Thread::Queue, # more amenable to the needs of Padre. use 5.008005; use strict; use warnings; use threads; use threads::shared 1.33; our $VERSION = '1.00'; our @CARP_NOT = 'threads::shared'; sub new { my @queue : shared = (); bless \@queue, $_[0]; } sub enqueue { my $self = shift; lock($self); push @$self, map { shared_clone($_) } @_; return cond_signal(@$self); } sub pending { my $self = shift; lock($self); return scalar @$self; } # Dequeue returns all queue elements, and blocks on an empty queue sub dequeue { my $self = shift; lock($self); # Wait for there to be anything in the queue while ( not @$self ) { cond_wait(@$self); } # Return multiple items my @items = (); push @items, shift(@$self) while @$self; return @items; } # Pull a single queue element, and block on an empty queue sub dequeue1 { my $self = shift; lock($self); # Wait for there to be anything in the queue while ( not @$self ) { cond_wait(@$self); } return shift @$self; } # Return items from the head of a queue with no blocking sub dequeue_nb { my $self = shift; lock($self); # Return multiple items my @items = (); push @items, shift @$self while @$self; return @items; } # Return a single item from the head of the queue with no blocking sub dequeue1_nb { my $self = shift; lock($self); return shift @$self; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/ServerManager.pm���������������������������������������������������������������0000644�0001750�0001750�00000020244�12237327555�016056� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::ServerManager; # Second generation Padre sync client, which operates via background tasks # and is not bound tightly to any front end GUI objects. use 5.008; use strict; use warnings; use Carp (); use File::Spec (); use JSON::XS (); use Padre::Constant (); use Padre::Role::Task (); use Padre::Role::PubSub (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; our @ISA = qw{ Padre::Role::Task Padre::Role::PubSub }; # Subscribable Events use constant { SERVER_VERSION => 'server_version', SERVER_ERROR => 'server_error', LOGIN_SUCCESS => 'login_success', LOGIN_FAILURE => 'login_failure', PUSH_SUCCESS => 'push_success', PUSH_FAILURE => 'push_failure', PULL_SUCCESS => 'pull_success', PULL_FAILURE => 'pull_failure', }; ###################################################################### # Constructor sub new { my $class = shift; my $self = bless { @_, version => undef, user => undef, }, $class; # Check and default params unless ( $self->{ide} ) { Carp::croak("Did not provide ide param to Padre::ServerManager"); } return $self; } sub server { $_[0]->{server}; } sub user { $_[0]->{user}; } ###################################################################### # Server Discovery sub version { my $self = shift; # Reset task state and send the request $self->task_reset; $self->task_get( on_finish => 'version_finish', url => 'version', ); } sub version_finish { my $self = shift; my $response = shift->response; my $json = $self->decode($response); unless ( $json ) { return $self->publish( SERVER_ERROR, $response ); } $self->{server} = $json->{server}; $self->publish( SERVER_VERSION ); } ###################################################################### # Login Task sub login { my $self = shift; # Do we have the things we need my $config = $self->config; my $email = $config->identity_email or return undef; my $password = $config->config_sync_password or return undef; # Reset task state and send the request $self->task_reset; $self->task_post( on_finish => 'login_finish', url => 'login', query => { email => $email, password => $password, }, ); } sub login_finish { my $self = shift; my $response = shift->response; my $json = $self->decode($response); # Handle the positive case first, it is simpler if ( $json ) { $self->{user} = $json->{user}; $self->publish( LOGIN_SUCCESS ); return 1; } # Handle the failed login case $self->publish( LOGIN_FAILURE ); } ###################################################################### # Registration Task sub register { my $self = shift; # Do we have the things we need my $config = $self->config; my $email = $config->identity_email or return undef; my $password = $config->config_sync_password or return undef; # Reset task state and send the request $self->task_reset; $self->task_post( on_finish => 'register_finish', url => 'register', query => { email => $email, password => $password, }, ); } sub register_finish { my $self = shift; my $response = shift->response; my $json = $self->decode($response); # TODO: To be completed $self->publish("on_register", $response); } ###################################################################### # Configuration Pull Task sub pull { my $self = shift; my $config = $self->config; my $email = $config->identity_email or return undef; my $password = $config->config_sync_password or return undef; # Fetch the server configuration $self->task_reset; $self->task_get( on_finish => 'pull_finish', url => 'config', query => { email => $email, password => $password, }, ); return 1; } sub pull_finish { my $self = shift; my $config = $self->config; my $response = shift->response; my $json = $self->decode($response); unless ( $json ) { return $self->publish( PULL_FAILURE ); } # Apply the server settings to the current instance my $server = $json->{config}->{data}; if (Params::Util::_HASH0($server)) { foreach my $name ( $config->settings ) { my $meta = $config->meta($name); if ($meta->store == Padre::Constant::HUMAN) { if (exists $server->{$name}) { $config->apply($name, $server->{$name}); } else { $config->apply($name, $config->default($name)); } } } } return $self->publish( PULL_SUCCESS, $json->{config} ); } ###################################################################### # Configuration Push Task sub push { my $self = shift; # Do we have the things we need my $config = $self->config; my $email = $config->identity_email or return undef; my $password = $config->config_sync_password or return undef; # Send configuration to the server $self->task_reset; $self->task_post( on_finish => 'push_finish', url => 'config', query => { email => $email, password => $password, data => $self->encode( $self->config->human->as_hash ), }, ); return 1; } sub push_finish { my $self = shift; my $response = shift->response; my $json = $self->decode($response); unless ( $json ) { return $self->publish( PUSH_FAILURE ); } return $self->publish( PUSH_SUCCESS, $json->{config} ); } ###################################################################### # Configuration Delete Task sub delete { my $self = shift; # Delete configuration from the server $self->task_reset; $self->task_delete( on_finish => 'delete_finish', url => 'config', ); return 1; } sub delete_finish { my $self = shift; my $response = shift->response; my $json = $self->decode($response); # TODO: To be completed $self->publish("on_delete", $response); } ###################################################################### # Logout Task sub logout { my $self = shift; # Allow a logout action no matter what state we are in $self->task_reset; $self->task_get( on_finish => 'logout_finish', url => 'logout', ); return 1; } sub logout_finish { my $self = shift; my $response = shift->response; my $json = $self->decode($response); # TODO: To be completed $self->publish("on_logout", $response); } ###################################################################### # Telemetry Task sub telemetry { my $self = shift; # Don't reset, telemetry occurs in parallel $self->task_post( on_finish => 'telemetry_finish', url => 'telemetry', ); } sub telemetry_finish { my $self = shift; my $response = shift->response; my $json = $self->decode($response); # TODO: To be completed $self->publish("on_telemetry", $response); } ###################################################################### # Padre::Task::LWP Integration sub task_get { shift->task_request( method => 'GET', @_, ); } sub task_delete { shift->task_request( method => 'DELETE', @_, ); } sub task_post { my $self = shift; my %param = @_; if ( $param{query} and $param{content_type} and $param{content_type} eq 'text/json' ) { $param{query} = $self->encode($param{query}); } $self->task_request( method => 'POST', %param, ); } sub task_request { my $self = shift; my $server = $self->baseurl or return; my %param = @_; my $url = join( '/', $server, delete $param{url} ) . '.json'; $self->SUPER::task_request( %param, task => 'Padre::Task::LWP', url => $url, ); } sub baseurl { my $self = shift; my $server = $self->config->config_sync_server; $server =~ s/\/$// if $server; return $server; } sub config { $_[0]->{ide}->config; } sub encode { require JSON::XS; JSON::XS->new->encode( $_[1] ); } sub decode { my $self = shift; my $response = shift or return undef; require HTTP::Response; $response->is_success or return undef; local $@; my $json = eval { require JSON::XS; JSON::XS->new->decode( $response->decoded_content ); }; if ( $@ or not $json ) { return undef; } return $json; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/PPI/���������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�013375� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/PPI/Transform.pm���������������������������������������������������������������0000644�0001750�0001750�00000002510�12237327555�015714� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::PPI::Transform; =pod =head1 NAME Padre::PPI::Transform - PPI::Transform integration with Padre =head1 DESCRIPTION B<Padre::PPI::Transform> is a clear subclass of L<PPI::Transform> which adds C<apply> integration with L<PPI::Document> objects. It otherwise adds no significant functionality. You should inherit transform objects from this class instead of directly from L<PPI::Transform> to ensure that this L<PPI::Document> support is fully initialised. =cut use 5.008; use strict; use warnings; use PPI::Transform (); our $VERSION = '1.00'; our @ISA = 'PPI::Transform'; __PACKAGE__->register_apply_handler( 'Padre::Document::Perl', sub { my $padre = shift; my $ppi = $padre->ppi_get; return $ppi; }, sub { my $padre = shift; my $ppi = shift; $padre->ppi_set($ppi); return 1; }, ); 1; =pod =head1 SEE ALSO L<PPI::Transform> =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT AND LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/PPI/EndifyPod.pm���������������������������������������������������������������0000644�0001750�0001750�00000005430�12237327555�015626� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::PPI::EndifyPod; =pod =head1 NAME Padre::PPI::EndifyPod - Move fragmented POD to the end of a Perl document =head1 SYNOPSIS my $transform = Padre::PPI::EndifyPod->new; $transform->apply( Padre::Current->document ); =cut use 5.008; use strict; use warnings; use Padre::PPI::Transform (); our $VERSION = '1.00'; our @ISA = 'Padre::PPI::Transform'; ###################################################################### # Transform Methods sub document { my $self = shift; my $document = shift; # Find all the POD fragments my $pod = $document->find('PPI::Token::Pod'); unless ( defined $pod ) { Padre::Current->main->error( Wx::gettext('Error while searching for POD') ); return undef; } unless ($pod) { Padre::Current->main->error( Wx::gettext('This document does not contain any POD') ); return 0; } unless ( @$pod > 1 ) { Padre::Current->main->error( Wx::gettext('Only one POD fragment, will not try to merge') ); return 0; } # Create a single merged POD fragment my $merged = PPI::Token::Pod->merge(@$pod); unless ($merged) { Padre::Current->main->error( Wx::gettext('Failed to merge the POD fragments') ); return undef; } # Strip all the fragments out of the document foreach my $element (@$pod) { next if $element->delete; $document->current->error( Wx::gettext('Failed to delete POD fragment') ); return undef; } # Does the document already have an __END__ block? my $end = $document->child(-1); if ( $end and $end->isa('PPI::Statement::End') ) { # Make sure there's sufficient newlines at the end $end->last_element->content =~ /(\n*)\z/; my $newlines = length $1; my $needed = 2 - $newlines; if ( $needed > 0 ) { $end->last_element->{content} .= join '', ("\n") x $needed; } # Append the merged Pod $end->add_element($merged); } else { # Generate the end block my $statement = PPI::Statement::End->new; $statement->add_element( PPI::Token::Separator->new("__END__") ); $statement->add_element( PPI::Token::Whitespace->new("\n") ); $statement->add_element( PPI::Token::End->new("\n") ); $statement->add_element($merged); # Add it to the document $document->add_element( PPI::Token::Whitespace->new("\n") ); $document->add_element($statement); } return 1; } 1; =pod =head1 SEE ALSO L<Padre::PPI::Transform>, L<PPI::Transform> =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT AND LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/PPI/UpdateCopyright.pm���������������������������������������������������������0000644�0001750�0001750�00000010102�12237327555�017050� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::PPI::UpdateCopyright; =pod =head1 NAME Padre::PPI::UpdateCopyright - Demonstration transform =head1 SYNOPSIS my $transform = Padre::PPI::UpdateCopyright->new( name => 'Adam Kennedy' ); $transform->apply( Padre::Current->document ); =head1 DESCRIPTION C<Padre::PPI::UpdateCopyright> provides a demonstration of a typical L<Padre::Transform> class. This class implements a document transform that will take the name of an author and update the copyright statement to refer to the current year, if it does not already do so. =head1 METHODS =cut use 5.008; use strict; use warnings; use Params::Util (); use Padre::Current (); use Padre::PPI::Transform (); our $VERSION = '1.00'; our @ISA = 'Padre::PPI::Transform'; ##################################################################### # Constructor and Accessors =pod =head2 new my $transform = Padre::PPI::UpdateCopyright->new( name => 'Adam Kennedy' ); The C<new> constructor creates a new transform object for a specific author. It takes a single C<name> parameter that should be the name (or longer string) for the author. Specifying the name is required to allow the changing of a subset of copyright statements that refer to you from a larger set in a file. =cut sub new { my $self = shift->SUPER::new(@_); # We need a name unless ( defined Params::Util::_STRING( $self->name ) ) { # Try to pull a name from your config $self->{name} = Padre::Current->config->identity_name; } unless ( defined Params::Util::_STRING( $self->name ) ) { die 'Did not provide a valid name param'; } return $self; } =pod =head2 name The C<name> accessor returns the author name that the transform will be searching for copyright statements of. =cut sub name { $_[0]->{name}; } ##################################################################### # Transform Methods sub document { my $self = shift; my $document = Params::Util::_INSTANCE( shift, 'PPI::Document' ) or return; # Find things to transform my $name = quotemeta $self->name; my $regexp = qr/\bcopyright\b.*$name/mi; my $elements = $document->find( sub { $_[1]->isa('PPI::Token::Pod') or return ''; $_[1]->content =~ $regexp or return ''; return 1; } ); return unless defined $elements; return 0 unless $elements; # Try to transform any elements my $changes = 0; my $change = sub { my $copyright = shift; my $thisyear = ( localtime time )[5] + 1900; my @year = $copyright =~ m/(\d{4})/g; if ( @year == 1 ) { # Handle the single year format if ( $year[0] == $thisyear ) { # No change return $copyright; } else { # Convert from single year to multiple year $changes++; $copyright =~ s/(\d{4})/$1 - $thisyear/; return $copyright; } } if ( @year == 2 ) { # Handle the range format if ( $year[1] == $thisyear ) { # No change return $copyright; } else { # Change the second year to the current one $changes++; $copyright =~ s/$year[1]/$thisyear/; return $copyright; } } # Huh? die "Invalid or unknown copyright line '$copyright'"; }; # Attempt to transform each element my $pattern = qr/\b(copyright.*?)((?:\d{4}\s*-\s*)?\d{4})(.*$name)/mi; foreach my $element (@$elements) { $element->{content} =~ s/$pattern/$1 . $change->($2) . $3/eg; } return $changes; } 1; =pod =head1 TO DO May need to overload some methods to forcefully prevent Document objects becoming children of another Node. =head1 SUPPORT See the L<support section|PPI/SUPPORT> in the main module. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2009-2010 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Breakpoints.pm�����������������������������������������������������������������0000644�0001750�0001750�00000005204�12237327555�015575� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Breakpoints; #ToDo Q is this package wrong in the wronge location use 5.010; use strict; use warnings; our $VERSION = '1.00'; ####### # function set_breakpoints_clicked # this is a toggle function based on current status ####### sub set_breakpoints_clicked { my $bp_line = $_[1]; my $debug_breakpoints = ('Padre::DB::DebugBreakpoints'); my $editor = Padre::Current->editor; my $current_file = $editor->{Document}->filename; $bp_line = $editor->GetCurrentLine unless defined $bp_line; $bp_line++; my %bp_action; $bp_action{line} = $bp_line; if ( $#{ $debug_breakpoints->select( "WHERE filename = ? AND line_number = ?", $current_file, $bp_line ) } >= 0 ) { # say 'delete me'; $editor->MarkerDelete( $bp_line - 1, Padre::Constant::MARKER_BREAKPOINT() ); $editor->MarkerDelete( $bp_line - 1, Padre::Constant::MARKER_NOT_BREAKABLE() ); $debug_breakpoints->delete_where( "filename = ? AND line_number = ?", $current_file, $bp_line ); $bp_action{action} = 'delete'; } else { # say 'create me'; $editor->MarkerAdd( $bp_line - 1, Padre::Constant::MARKER_BREAKPOINT() ); $debug_breakpoints->create( filename => $current_file, line_number => $bp_line, active => 1, last_used => time(), ); $bp_action{action} = 'add'; } #update the breakpoint panel if ( $editor->main->{breakpoints} ) { # say 'set_breakpoint_clicked -> on_refresh_clicked 1'; $editor->main->{breakpoints}->on_refresh_click(); } #update the debugger client - if we're currently debugging if ( $editor->main->{debugger} ) { # say 'set_breakpoint_clicked -> on_refresh_clicked 2'; $editor->main->{debugger}->update_debugger_breakpoint(\%bp_action); } return \%bp_action; } ####### # function show_breakpoints # to be called when showing current file ####### sub show_breakpoints { my $editor = Padre::Current->editor; my $debug_breakpoints = ('Padre::DB::DebugBreakpoints'); my $current_file = $editor->{Document}->filename; my $sql_select = "WHERE filename = ? ORDER BY line_number ASC"; my @tuples = eval { $debug_breakpoints->select( $sql_select, $current_file ); }; if ($@) { return; } for ( 0 .. $#tuples ) { if ( $tuples[$_][3] == 1 ) { $editor->MarkerAdd( $tuples[$_][2] - 1, Padre::Constant::MARKER_BREAKPOINT() ); } else { $editor->MarkerAdd( $tuples[$_][2] - 1, Padre::Constant::MARKER_NOT_BREAKABLE() ); } } return; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Lock.pm������������������������������������������������������������������������0000644�0001750�0001750�00000005127�12237327555�014210� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Lock; use 5.008; use strict; use warnings; use Carp (); our $VERSION = '1.00'; sub new { my $class = shift; my $locker = shift; my $self = bless [$locker], $class; # Enable the locks my $db = 0; my $aui = 0; my $config = 0; my $busy = 0; my $update = 0; foreach (@_) { if ( $_ ne uc $_ ) { $locker->method_increment($_); push @$self, 'method_decrement'; } elsif ( $_ eq 'CONFIG' ) { # Have CONFIG take an implicit DB lock as well so # that any writes for DB locks opened while the CONFIG # lock is open are aggregated into a single commit with # DB writes from a config unlock. $locker->config_increment unless $config; $locker->db_increment unless $db; $config = 1; $db = 1; } elsif ( $_ eq 'UPDATE' ) { $locker->update_increment unless $update; $update = 1; } elsif ( $_ eq 'REFRESH' ) { $locker->method_increment; push @$self, 'method_decrement'; } elsif ( $_ eq 'DB' ) { $locker->db_increment unless $db; $db = 1; } elsif ( $_ eq 'AUI' ) { $locker->aui_increment unless $aui; $aui = 1; } elsif ( $_ eq 'BUSY' ) { $locker->busy_increment unless $busy; $busy = 1; } else { Carp::croak("Unknown or unsupported special lock '$_'"); } } # Regardless of which order we were given the locks, the unlocking # definitely has to be done in a specific order. # # Putting DB last means that actions involving a database commit # will APPEAR to happen faster. However, this could be somewhat # disconcerting for long commits, because there will be user input # lag immediately after it appears to be "complete". If this # becomes a problem, move the DB to first so actions appear to be # slower, but the UI is immediately available once updated. # # Because configuration involves a database write, we always do it # before we release the database lock. push @$self, 'busy_decrement' if $busy; push @$self, 'aui_decrement' if $aui; push @$self, 'update_decrement' if $update; push @$self, 'db_decrement' if $db; push @$self, 'config_decrement' if $config; return $self; } # Disable locking on destruction sub DESTROY { my $locker = shift @{ $_[0] } or return; foreach ( @{ $_[0] } ) { # NOTE: DO NOT CONVERT TO A GREP. # Depending on what happens in the method call, this # destroy handler may need to behave reentrantly. $locker->$_() if $locker->can($_); } } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Sync.pm������������������������������������������������������������������������0000644�0001750�0001750�00000020422�12237327555�014227� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Sync; =pod =head1 NAME Padre::Sync - Utility functions for handling remote Configuration Syncing =head1 DESCRIPTION The C<Padre::Sync> class contains logic for communicating with a remote L<Madre::Sync> server. This class interacts with the L<Padre::Wx::Dialog::Sync> class for user interface display. =head1 METHODS =cut use 5.008; use strict; use warnings; use Carp (); use File::Spec (); use Scalar::Util (); use Params::Util (); use JSON::XS (); use LWP::UserAgent (); use HTTP::Cookies (); use HTTP::Request::Common (); use Padre::Current (); use Padre::Constant (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; ##################################################################### # Constructor and Accessors =pod =head2 C<new> The constructor returns a new C<Padre::Sync> object, but you should normally access it via the main Padre object: my $manager = Padre->ide->config_sync; First argument should be a Padre object. =cut sub new { my $class = shift; my $ide = Params::Util::_INSTANCE( shift, 'Padre' ); Carp::croak("Failed to create Padre::Sync") unless $ide; # Create the useragent. # We need this to handle login actions. # Save cookies for state management from Padre session to session # NOTE: Is this even wanted? Remove at padre close? my $ua = LWP::UserAgent->new( timeout => 10, cookie_jar => HTTP::Cookies->new( file => File::Spec->catfile( Padre::Constant::CONFIG_DIR, 'lwp_cookies.dat', ), autosave => 1, ) ); my $self = bless { ide => $ide, state => 'not_logged_in', ua => $ua, @_, }, $class; return $self; } =pod =head2 C<main> A convenience method to get to the main window. =cut sub main { $_[0]->{ide}->wx->main; } =pod =head2 C<config> A convenience method to get to the config object =cut sub config { $_[0]->{ide}->config; } =pod =head2 C<ua> A convenience method to get to the useragent object =cut sub ua { $_[0]->{ua}; } =pod =head2 C<register> Attempts to register a user account with the information provided on the Sync server. Parameters: a list of key value pairs to be interpreted as POST parameters Returns error string if user state is already logged in or serverside error occurs. =cut sub register { my $self = shift; my %params = @_; if ( $self->{state} ne 'not_logged_in' ) { return 'Failure: cannot register account, user already logged in.'; } # BUG: This crashes if server is unavailable. my $server = $self->server or return 'Failure: no server found.'; my $response = $self->POST( "$server/register", 'Content-Type' => 'application/json', 'Content' => $self->encode( \%params ), ); if ( $response->code == 201 ) { return 'Account registered successfully. Please log in.'; } local $@; my $h = eval { $self->decode( $response->content ); }; return "Registration failure(Server): $h->{error}" if $h->{error}; return "Registration failure(Padre): $@" if $@; return "Registration failure(unknown)"; } =pod =head2 C<login> Will log in to remote Sync server using given credentials. State will be updated if login successful. =cut sub login { my $self = shift; if ( $self->{state} ne 'not_logged_in' ) { return 'Failure: cannot log in, user already logged in.'; } my $server = $self->server or return 'Failure: no server found.'; my $response = $self->POST( "$server/login", [ {@_} ] ); if ( $response->content !~ /Wrong username or password/i and ( $response->code == 200 or $response->code == 302 ) ) { $self->{state} = 'logged_in'; return 'Logged in successfully.'; } return 'Login Failure.'; } =pod =head2 C<logout> If currently logged in, will log the Sync session out from the server. State will be updated. =cut sub logout { my $self = shift; if ( $self->{state} ne 'logged_in' ) { return 'Failure: cannot logout, user not logged in.'; } my $server = $self->server or return 'Failure: no server found.'; my $response = $self->GET("$server/logout"); if ( $response->code == 200 ) { $self->{state} = 'not_logged_in'; return 'Logged out successfully.'; } return 'Failed to log out.'; } =pod =head2 C<server_delete> Given a logged in session, will attempt to delete the config currently stored on the Sync server (if one currently exists). Will fail if not logged in. =cut sub server_delete { my $self = shift; if ( $self->{state} ne 'logged_in' ) { return 'Failure: user not logged in.'; } my $server = $self->server or return 'Failure: no server found.'; my $response = $self->DELETE("$server/config"); if ( $response->code == 204 ) { return 'Configuration deleted successfully.'; } return 'Failed to delete serverside configuration file.'; } =pod =head2 C<local_to_server> Given a logged in session, will attempt to place the current local config to the Sync server. =cut sub local_to_server { my $self = shift; if ( $self->{state} ne 'logged_in' ) { return 'Failure: user not logged in.'; } # NOTE: There has be a better way to do this my $conf = $self->config->human; my %copy = %$conf; my $server = $self->server or return 'Failure: no server found.'; my $response = $self->PUT( "$server/config", 'Content-Type' => 'application/json', 'Content' => $self->encode( \%copy ), ); if ( $response->code == 204 ) { return 'Configuration uploaded successfully.'; } return 'Failed to upload configuration file to server.'; } =pod =head2 C<server_to_local> Given a logged in session, will replace the local config with what is stored on the server. TODO: is validation of config before replacement required? =cut sub server_to_local { my $self = shift; if ( $self->{state} ne 'logged_in' ) { return 'Failure: user not logged in.'; } my $server = $self->server or return 'Failure: no server found.'; my $response = $self->GET( "$server/config", 'Accept' => 'application/json', ); local $@; my $json; eval { $json = $self->decode( $response->content ); }; return 'Failed to deserialize serverside configuration.' if $@; # Apply each setting to the global config. should only be HUMAN # settings. delete $json->{Version}; delete $json->{version}; my @errors; my $config = $self->config; for my $key ( keys %$json ) { my $meta = eval { $config->meta($key); }; unless ( $meta and $meta->store == Padre::Constant::HUMAN ) { # Skip unknown or non-HUMAN settings next; } eval { $config->apply( $key, $json->{$key} ); }; push @errors, $@ if $@; } $config->write; if ( $response->code == 200 && @errors == 0 ) { return 'Configuration downloaded and applied successfully.'; } elsif ( $response->code == 200 && @errors ) { warn @errors; return 'Configuration downloaded successfully, some errors encountered applying to your current configuration.'; } return 'Failed to download serverside configuration file to local Padre instance.'; } =pod =head2 C<english_status> Will return a string explaining current state of Sync dependent on $self->{state} =cut sub english_status { my $self = shift; return 'User is not currently logged into the system.' if $self->{state} eq 'not_logged_in'; return 'User is currently logged into the system.' if $self->{state} eq 'logged_in'; return "State unknown: $self->{state}"; } ###################################################################### # Support Methods sub encode { JSON::XS->new->encode( $_[1] ); } sub decode { JSON::XS->new->decode( $_[1] ); } sub server { my $self = shift; my $server = $self->config->config_sync_server; $server =~ s/\/$// if $server; return $server; } sub GET { shift->ua->request( HTTP::Request::Common::GET(@_) ); } sub POST { shift->ua->request( HTTP::Request::Common::POST(@_) ); } sub PUT { shift->ua->request( HTTP::Request::Common::PUT(@_) ); } sub DELETE { shift->ua->request( HTTP::Request::Common::DELETE(@_) ); } 1; =pod =head1 SEE ALSO L<Padre>, L<Padre::Config> =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Startup.pm���������������������������������������������������������������������0000644�0001750�0001750�00000013301�12237327555�014753� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Startup; =pod =head1 NAME Padre::Startup - Padre start-up related configuration settings =head1 DESCRIPTION Padre stores host-related data in a combination of an easily transportable YAML file for personal settings and a powerful and robust SQLite-based configuration database for host settings and state data. Unfortunately, fully loading and validating these configurations can be relatively expensive and may take some time. A limited number of these settings need to be available extremely early in the Padre bootstrapping process. The F<startup.yml> file is automatically written at the same time as the regular configuration files, and is read without validating during early start-up. L<Padre::Startup::Config> is a small convenience module for reading and writing the F<startup.yml> file. =head1 FUNCTIONS =cut use 5.008005; use strict; use warnings; use File::Spec (); use Padre::Constant (); our $VERSION = '1.00'; my $SPLASH = undef; ##################################################################### # Main Startup Procedure # Runs the (as light as possible) startup process for Padre. # Returns true if we should continue with the startup. # Returns false if we should abort the startup and exit. sub startup { # Start with the default settings my %setting = ( main_singleinstance => Padre::Constant::DEFAULT_SINGLEINSTANCE, main_singleinstance_port => Padre::Constant::DEFAULT_SINGLEINSTANCE_PORT, threads => 1, threads_stacksize => 0, startup_splash => 0, VERSION => 0, ); # Load and overlay the startup.yml file if ( -f Padre::Constant::CONFIG_STARTUP ) { %setting = ( %setting, startup_config() ); } # Attempt to connect to the single instance server if ( $setting{main_singleinstance} ) { # This blocks for about 1 second require IO::Socket; my $socket = IO::Socket::INET->new( PeerAddr => '127.0.0.1', PeerPort => $setting{main_singleinstance_port}, Proto => 'tcp', Type => IO::Socket::SOCK_STREAM(), ); if ($socket) { if (Padre::Constant::WIN32) { my $pid = ''; my $read = $socket->sysread( $pid, 10 ); if ( defined $read and $read == 10 ) { # Got the single instance PID $pid =~ s/\s+\s//; require Padre::Util::Win32; Padre::Util::Win32::AllowSetForegroundWindow($pid); } } foreach my $file (@ARGV) { my $path = File::Spec->rel2abs($file); $socket->print("open $path\n"); } $socket->print("focus\n"); $socket->close; return 0; } } if ( $setting{threads} ) { # Load a limited subset of Wx early so that we can be sure that # the Wx::PlThreadEvent works in child threads. The thread # modules must be loaded before Wx so that threading in Wx works require threads; require threads::shared; require Wx; # Allowing custom tuning of the stack size my $size = $setting{threads_stacksize}; threads->set_stack_size($size) if $size; # Second-generation version of the threading optimisation, with # worker threads spawned of a single initial early spawned # "slave master" thread. This dramatically reduces the overhead # of spawning a thread, because it doesn't need to copy all the # stuff in the parent thread. require Padre::Wx::App; require Padre::TaskWorker; Padre::Wx::App->new; Padre::TaskWorker->master; } # Don't show the splash screen if they user doesn't want it return 1 unless $setting{startup_splash}; # Don't show the splash screen during testing otherwise # it will spoil the flashy surprise when they upgrade. if ( $ENV{HARNESS_ACTIVE} or $ENV{PADRE_NOSPLASH} ) { return 1; } # The splash screen seems to be unusually slow on GTK # and significantly slows down startup. So on this platform # we only show the splash screen once when the version changes. if ( Padre::Constant::UNIX and $setting{VERSION} eq $VERSION ) { return 1; } # Show the splash image now we are starting a new instance # Shows Padre's splash screen if this is the first time # It is saved as BMP as it seems (from wxWidgets documentation) # that it is the most portable format (and we don't need to # call Wx::InitAllImageHeaders() or whatever) # Start by finding the base share directory. my $share = undef; if ( $ENV{PADRE_DEV} ) { require FindBin; no warnings; $share = File::Spec->catdir( $FindBin::Bin, File::Spec->updir, 'share', ); } else { require File::ShareDir; $share = File::ShareDir::dist_dir('Padre'); } # Locate the splash image without resorting to the use # of any Padre::Util functions whatsoever. my $splash = File::Spec->catfile( $share, 'padre-splash-ccnc.png' ); # Use CCNC-licensed version if it exists and fallback # to the boring splash so that we can bundle it in # Debian without their packaging team needing to apply # any custom patches to the code, just delete the file. unless ( -f $splash ) { $splash = File::Spec->catfile( $share, 'padre-splash.png', ); } # Load just enough modules to get Wx bootstrapped # to the point it can show the splash screen. require Wx; $SPLASH = Wx::SplashScreen->new( Wx::Bitmap->new( $splash, Wx::wxBITMAP_TYPE_PNG() ), Wx::wxSPLASH_CENTRE_ON_SCREEN() | Wx::wxSPLASH_TIMEOUT(), 3500, undef, -1 ); return 1; } sub startup_config { open( my $FILE, '<', Padre::Constant::CONFIG_STARTUP ) or return (); my @buffer = <$FILE>; close $FILE or return (); chomp @buffer; return @buffer; } # Destroy the splash screen if it exists sub destroy_splash { if ($SPLASH) { $SPLASH->Destroy; $SPLASH = 1; } } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Config/������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014152� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Config/Project.pm��������������������������������������������������������������0000644�0001750�0001750�00000002562�12237327555�016133� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Config::Project; # Configuration and state data that describes project policies. use 5.008; use strict; use warnings; use Scalar::Util (); use File::Basename (); use YAML::Tiny (); use Params::Util (); our $VERSION = '1.00'; ###################################################################### # Constructor sub new { my $class = shift; bless {@_}, $class; } sub dirname { $_[0]->{dirname}; } sub fullname { $_[0]->{fullname}; } sub read { my $class = shift; # Check the file my $fullname = shift; unless ( defined $fullname and -f $fullname and -r $fullname ) { return; } # Load the user configuration my $hash = YAML::Tiny::LoadFile($fullname); return unless Params::Util::_HASH0($hash); # Create the object, saving the file name and directory for later usage return $class->new( %$hash, fullname => $fullname, dirname => File::Basename::dirname($fullname), ); } # # my $new = $config->clone; # sub clone { my $self = shift; my $class = Scalar::Util::blessed($self); return $class->new(%$self); } # NOTE: Once we add the ability to edit the project settings, make sure # we strip out the path value before we save them. 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Config/Setting.pm��������������������������������������������������������������0000644�0001750�0001750�00000010103�12237327555�016130� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Config::Setting; # Simple data class for a configuration setting use 5.008; use strict; use warnings; use Carp (); use File::Spec (); use Params::Util (); use Padre::Constant (); our $VERSION = '1.00'; use Class::XSAccessor { getters => [ qw{ name type store startup restart default project options help } ], }; ###################################################################### # Constructor sub new { my $class = shift; my $self = bless {@_}, $class; # Param checking unless ( $self->name ) { Carp::croak("Missing or invalid name"); } unless ( _TYPE( $self->type ) ) { Carp::croak("Missing or invalid type for config '$self->{name}'"); } unless ( _STORE( $self->store ) ) { Carp::croak("Missing or invalid store for config '$self->{name}'"); } unless ( exists $self->{default} ) { Carp::croak("Missing or invalid default for config '$self->{name}'"); } if ( defined $self->{options} ) { unless ( Params::Util::_HASH( $self->{options} ) ) { Carp::croak("Invalid or empty options for config '$self->{name}'"); } } # Path settings are subject to some special constraints if ( $self->type == Padre::Constant::PATH ) { # It is illegal to store paths in the human config if ( $self->store == Padre::Constant::HUMAN ) { Carp::croak("PATH value not in HOST store for config '$self->{name}'"); } # You cannot (yet) define option lists for paths if ( defined $self->{options} ) { Carp::croak("PATH values cannot define options for config '$self->{name}'"); } } # Normalise $self->{project} = !!$self->project; $self->{restart} = !!$self->restart; return $self; } # Generate the code to implement the setting sub code { my $self = shift; my $name = $self->name; my $store = $self->store; # Don't return loaded values not in the valid option list # "$self" in this code refs to the Padre::Config parent object return <<"END_PERL" if defined $self->{options}; sub $name { my \$self = shift; my \$config = \$self->[$store]; if ( exists \$config->{$name} ) { my \$options = \$self->meta('$name')->options; my \$value = \$config->{$name}; if ( defined \$value and exists \$options->{\$value} ) { return \$value; } } return \$DEFAULT{$name}; } END_PERL # Vanilla code for everything other than PATH entries return <<"END_PERL" unless $self->type == Padre::Constant::PATH; package Padre::Config; sub $name { my \$config = \$_[0]->[$store]; return \$config->{$name} if exists \$config->{$name}; return \$DEFAULT{$name}; } END_PERL # Relative paths for project-specific paths return <<"END_PERL" if $store == Padre::Constant::PROJECT; package Padre::Config; sub $name { my \$config = \$_[0]->[$store]; if ( \$config ) { my \$dirname = \$config->dirname; my \$relative = \$config->{$name}; if ( defined \$relative ) { my \$literal = File::Spec->catfile( \$dirname, \$relative, ); return \$literal if -e \$literal; } } return \$DEFAULT{$name}; } END_PERL # Literal paths for HOST values unless Portable mode is enabled return <<"END_PERL" unless Padre::Constant::PORTABLE; package Padre::Config; sub $name { my \$config = \$_[0]->[$store]; if ( exists \$config->{$name} and -e \$config->{$name} ) { return \$config->{$name}; } return \$DEFAULT{$name}; } END_PERL # Auto-translating accessors for Portable mode return <<"END_PERL"; package Padre::Config; use Padre::Portable (); sub $name { my \$config = \$_[0]->[$store]; my \$path = ( exists \$config->{$name} and -e \$config->{$name} ) ? \$config->{$name} : \$DEFAULT{$name}; return Padre::Portable::thaw(\$path); } END_PERL } ##################################################################### # Support Functions sub _TYPE { return !!( defined $_[0] and not ref $_[0] and $_[0] =~ /^[0-4]\z/ ); } sub _STORE { return !!( defined $_[0] and not ref $_[0] and $_[0] =~ /^[0-2]\z/ ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Config/Human.pm����������������������������������������������������������������0000644�0001750�0001750�00000005203�12237327555�015570� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Config::Human; =pod =head1 NAME Padre::Config::Human - Padre configuration for personal preferences =head1 DESCRIPTION This class implements the personal preferences of Padre's users. See L<Padre::Config> for more information on the various types of preferences supported by Padre. All human settings are stored in a hash as top-level keys (no hierarchy). The hash is then dumped in F<config.yml>, a L<YAML> file in Padre's preferences directory (see L<Padre::Config>). =head1 METHODS =cut use 5.008; use strict; use warnings; use Scalar::Util (); use Storable (); use YAML::Tiny (); use Params::Util (); use Padre::Constant (); our $VERSION = '1.00'; =pod =head2 create my $config = Padre::Config::Human->create; Create and return an empty user configuration. (Almost empty, since it will still store the configuration schema revision - see L</"version">). No parameters. =cut sub create { my $class = shift; my $self = bless {}, $class; $self->write; return $self; } =pod =head2 read my $config = Padre::Config::Human->read; Load & return the user configuration from the YAML file. Return C<undef> in case of failure. No parameters. =cut sub read { my $class = shift; # Load the user configuration my $hash = {}; if ( -e Padre::Constant::CONFIG_HUMAN ) { $hash = eval { YAML::Tiny::LoadFile(Padre::Constant::CONFIG_HUMAN); }; } unless ( Params::Util::_HASH0($hash) ) { return; } # Create and return the object return bless $hash, $class; } =head2 write $config->write; (Over-)write user configuration to the YAML file. No parameters. =cut sub write { my $self = shift; # Save the unblessed clone of the user configuration hash YAML::Tiny::DumpFile( Padre::Constant::CONFIG_HUMAN, $self->as_hash, ); return 1; } =pod =head2 clone my $object = $config->clone; Creates a cloned copy of the configuration object. =cut sub clone { my $self = shift; my $class = Scalar::Util::blessed($self); return bless {%$self}, $class; } =pod =head2 as_hash my $hash = $config->as_hash; Creates a cloned copy of the configuration object as a plain hash reference. =cut sub as_hash { my $self = shift; return Storable::dclone( +{ %$self } ); } 1; __END__ =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Config/Host.pm�����������������������������������������������������������������0000644�0001750�0001750�00000005762�12237327555�015447� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Config::Host; # Configuration and state data related to the host that Padre is running on. use 5.008; use strict; use warnings; use Scalar::Util (); our $VERSION = '1.00'; # -- constructors # # my $config = Padre::Config::Host->_new( $href ); # # create & return a new config object. if $href is not supplied, the config # object will be empty. this constructor is private and should not be used # outside this class. # sub _new { my ( $class, $href ) = @_; $href ||= {}; bless $href, $class; return $href; } # # my $config = Padre::Config::Host->read; # sub read { my $class = shift; # Read in the config data require Padre::DB; my %hash = map { $_->name => $_->value } Padre::DB::HostConfig->select; # Create and return the object return $class->_new( \%hash ); } # -- public methods # # my $new = $config->clone; # sub clone { my $self = shift; my $class = Scalar::Util::blessed($self); return bless {%$self}, $class; } # # $config->write; # sub write { my $self = shift; require Padre::DB; # This code can run before we have a ::Main object. # As a result, it uses slightly bizarre locking code to make sure it runs # inside a transaction correctly in both cases (has a ::Main, or not) my $main = eval { # If ::Main isn't even loaded, we don't need the more # intensive Padre::Current call. It also prevents loading # the Wx subsystem when we are running light and headless # with no GUI at all. if ($Padre::Wx::Main::VERSION) { local $@; require Padre::Current; Padre::Current->main; } }; my $lock = $main ? $main->lock('DB') : undef; Padre::DB->begin unless $lock; Padre::DB::HostConfig->truncate; foreach my $name ( sort keys %$self ) { Padre::DB::HostConfig->create( name => $name, value => $self->{$name}, ); } Padre::DB->commit unless $lock; return 1; } 1; __END__ =pod =head1 NAME Padre::Config::Host - Padre configuration storing host state data =head1 DESCRIPTION This class implements the state data of the host on which Padre is running. See L<Padre::Config> for more information on the various types of preferences supported by Padre. All those state data are stored in a database managed with C<Padre::DB>. Refer to this module for more information on how this works. =head1 PUBLIC API =head2 Constructors =over 4 =item read my $config = Padre::Config::Host->read; Load & return the host configuration from the database. Return C<undef> in case of failure. No parameters. =back =head2 Object methods =over 4 =item write $config->write; (Over-)write host configuration to the database. No parameters. =back =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������Padre-1.00/lib/Padre/Config/Patch.pm����������������������������������������������������������������0000644�0001750�0001750�00000000645�12237327555�015564� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Config::Patch; # Support library for writing config file migration scripts use 5.008; use strict; use warnings; use YAML::Tiny (); use Exporter (); use Padre::Config (); our $VERSION = '1.00'; 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Config/Apply.pm����������������������������������������������������������������0000644�0001750�0001750�00000016754�12237327555�015622� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Config::Apply; =pod =head1 NAME Padre::Config::Apply - Implements on-the-fly configuration changes =head1 SYNOPSIS # When the view state of the directory changes we update the menu # check status and show/hide the panel inside of an update lock. sub main_directory { my $main = shift; my $new = shift; my $item = $main->menu->view->{directory}; my $lock = $main->lock( 'UPDATE', 'AUI' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( directory => $new ); } =head1 DESCRIPTION B<Padre::Config::Apply> allows L<Padre> to apply changes to configuration to the IDE on the fly instead of requiring a restart. Centralising the implementation of this functionality allows loading to be delayed until dynamic config change is actually required, and allow changes to configuration to be made by several different parts of Padre, including both the simple and advanced Preferences dialogs, and the online configuration sync system. =head2 Methodology Functions in this module are named after the matching configuration property, and are called by L<Padre::Config/apply> when the value being set is different to the current value. Because functions are B<only> called when the configuration value has changed, functions where are not required to do change detection of their own. Functions are called with three parameters. The first parameter is the L<Padre::Wx::Main> main window object, the second is the new value of the configuration property, and the third is the previous value of the configuration property. =cut use 5.008; use strict; use warnings; use Padre::Feature (); our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; ###################################################################### # Apply Functions sub main_title { $_[0]->lock('refresh_title'); } sub main_statusbar_template { $_[0]->lock('refresh_title'); } sub main_singleinstance { my $main = shift; my $new = shift; if ($new) { $main->single_instance_start; } else { $main->single_instance_stop; } return 1; } sub main_singleinstance_port { my $main = shift; if ( $main->config->main_singleinstance ) { # Restart on the new port or the next attempt # to use it will produce a new instance. $main->single_instance_stop; $main->single_instance_start; } } sub main_lockinterface { my $main = shift; my $new = shift; # Update the lock status $main->aui->lock_panels($new); # The toolbar can't dynamically switch between # tearable and non-tearable so rebuild it. # TO DO: Review this assumption # (Ticket #668) no warnings; if ($Padre::Wx::ToolBar::DOCKABLE) { $main->rebuild_toolbar; } return 1; } sub main_functions { my $main = shift; my $new = shift; my $item = $main->menu->view->{functions}; my $lock = $main->lock( 'UPDATE', 'AUI', 'refresh_functions' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( functions => $new ); } sub main_functions_panel { apply_panel( functions => @_ ); } sub main_functions_order { $_[0]->lock('refresh_functions'); } sub main_outline { my $main = shift; my $new = shift; my $item = $main->menu->view->{outline}; my $lock = $main->lock( 'UPDATE', 'AUI', 'refresh_outline' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( main_outline => $new ); } sub main_outline_panel { apply_panel( outline => @_ ); } sub main_directory { my $main = shift; my $new = shift; my $item = $main->menu->view->{directory}; my $lock = $main->lock( 'UPDATE', 'AUI', 'refresh_directory' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( directory => $new ); } sub main_directory_panel { apply_panel( directory => @_ ); } sub main_directory_order { $_[0]->lock('refresh_directory'); } sub main_directory_root { $_[0]->lock('refresh_directory'); } sub main_output { my $main = shift; my $new = shift; my $item = $main->menu->view->{output}; my $lock = $main->lock( 'UPDATE', 'AUI' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( output => $new ); } sub main_output_panel { apply_panel( output => @_ ); } sub main_tasks { my $main = shift; my $new = shift; my $item = $main->menu->view->{tasks}; my $lock = $main->lock( 'UPDATE', 'AUI' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( tasks => $new ); } sub main_tasks_panel { apply_panel( tasks => @_ ); } sub main_syntax { my $main = shift; my $new = shift; my $item = $main->menu->view->{syntax}; my $lock = $main->lock( 'UPDATE', 'AUI', 'refresh_syntax' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( syntax => $new ); } sub main_syntax_panel { apply_panel( syntax => @_ ); } sub main_vcs { my $main = shift; my $new = shift; my $item = $main->menu->view->{vcs}; my $lock = $main->lock( 'UPDATE', 'AUI', 'refresh_vcs' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( vcs => $new ); } sub main_vcs_panel { apply_panel( vcs => @_ ); } sub main_cpan { my $main = shift; my $new = shift; my $item = $main->menu->view->{cpan}; my $lock = $main->lock( 'UPDATE', 'AUI' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( cpan => $new ); } sub main_cpan_panel { apply_panel( cpan => @_ ); } sub main_debugger { my $main = shift; my $new = shift; my $item = $main->menu->debug->{debugger}; my $lock = $main->lock( 'UPDATE', 'AUI' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( debugger => $new ); } sub main_breakpoints { my $main = shift; my $new = shift; my $item = $main->menu->debug->{breakpoints}; my $lock = $main->lock( 'UPDATE', 'AUI' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( breakpoints => $new ); } sub main_debugoutput { my $main = shift; my $new = shift; my $item = $main->menu->debug->{debugoutput}; my $lock = $main->lock( 'UPDATE', 'AUI' ); $item->Check($new) if $new != $item->IsChecked; $main->show_view( debugoutput => $new ); } sub main_toolbar { $_[0]->show_toolbar( $_[1] ); } sub editor_linenumbers { $_[0]->editor_linenumbers( $_[1] ); } sub editor_eol { $_[0]->editor_eol( $_[1] ); } sub editor_whitespace { $_[0]->editor_whitespace( $_[1] ); } sub editor_intentationguides { $_[0]->editor_indentationguides( $_[1] ); } sub editor_folding { my $main = shift; my $show = shift; if ($Padre::Feature::VERSION) { Padre::Feature::FOLDING() or return; } else { $main->feature_folding or return; } if ( $main->can('editor_folding') ) { $main->editor_folding($show); } } sub editor_currentline { $_[0]->editor_currentline( $_[1] ); } sub editor_currentline_color { $_[0]->editor_currentline_color( $_[1] ); } sub editor_rightmargin { $_[0]->editor_rightmargin( $_[1] ); } sub editor_font { $_[0]->restyle; } sub editor_style { $_[0]->restyle; } ###################################################################### # Support Functions sub apply_panel { my $name = shift; my $main = shift; my $has = "has_$name"; return unless $main->$has(); return unless $main->find_view( $main->$name() ); $main->show_view( $name => 0 ); $main->show_view( $name => 1 ); } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������Padre-1.00/lib/Padre/PPI.pm�������������������������������������������������������������������������0000644�0001750�0001750�00000014415�12237327555�013750� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::PPI; use 5.008; use strict; use warnings; use PPI (); our $VERSION = '1.00'; ##################################################################### # Assorted Search Functions sub find_unmatched_brace { $_[1]->isa('PPI::Statement::UnmatchedBrace') and return 1; $_[1]->isa('PPI::Structure') or return ''; $_[1]->start and $_[1]->finish and return ''; return 1; } # scans a document for variable declarations and # sorts them into three categories: # lexical (my) # our (our, doh) # dynamic (local) # package (use vars) # Returns a hash reference containing the three category names # each pointing at a hash which contains '$variablename' => locations. # locations is an array reference containing one or more PPI-style # locations. Example: # { # lexical => { # '$foo' => [ [ 2, 3, 3], [ 6, 7, 7 ] ], # }, # ... # } # Thus, there are two places where a "my $foo" was declared. On line 2 col 3 # and line 6 col 7. sub get_all_variable_declarations { my $document = shift; my %vars; my $declarations = $document->find( sub { return 0 unless $_[1]->isa('PPI::Statement::Variable') or $_[1]->isa('PPI::Statement::Include'); return 1; }, ); my %our; my %lexical; my %dynamic; my %package; foreach my $decl (@$declarations) { if ( $decl->isa('PPI::Statement::Variable') ) { my $type = $decl->type; my @vars = $decl->variables; my $location = $decl->location; my $target_type; if ( $type eq 'my' ) { $target_type = \%lexical; } elsif ( $type eq 'our' ) { $target_type = \%our; } elsif ( $type eq 'local' ) { $target_type = \%dynamic; } foreach my $var (@vars) { $target_type->{$var} ||= []; push @{ $target_type->{$var} }, $location; } } # find use vars... elsif ( $decl->isa('PPI::Statement::Include') and $decl->module eq 'vars' and $decl->type eq 'use' ) { # do it the low-tech way my $string = $decl->content; my $location = $decl->location; my @vars = $string =~ /([\%\@\$][\w_:]+)/g; foreach my $var (@vars) { $package{$var} ||= []; push @{ $package{$var} }, $location; } } } # end foreach declaration return ( { our => \%our, lexical => \%lexical, dynamic => \%dynamic, package => \%package } ); } ##################################################################### # Stuff that should be in PPI itself sub element_depth { my $cursor = shift; my $depth = 0; while ( $cursor = $cursor->parent ) { $depth += 1; } return $depth; } # TO DO: PPIx::IndexOffsets or something similar might help. # TO DO: See the 71... tests. If we don#t flush locations there, this breaks. sub find_token_at_location { my $document = shift; my $location = shift; if ( not defined $document or not $document->isa('PPI::Document') or not defined $location or not ref($location) eq 'ARRAY' ) { require Carp; Carp::croak("find_token_at_location() requires a PPI::Document and a PPI-style location as arguments"); } $document->index_locations; foreach my $token ( $document->tokens ) { my $tloc = $token->location; return $token->previous_token if $tloc->[0] > $location->[0] or ( $tloc->[0] == $location->[0] and $tloc->[1] > $location->[1] ); } return (); # old way that would only handle beginning of tokens; Should probably simply go away.; Should probably simply go away. #my $variable_token = $document->find_first( # sub { # my $elem = $_[1]; # return 0 if not $elem->isa('PPI::Token'); # my $loc = $elem->location; # return 0 if $loc->[0] != $location->[0] or $loc->[1] != $location->[1]; # return 1; # }, #); # #return $variable_token; } # given either a PPI::Token::Symbol (i.e. a variable) # or a PPI::Token which contains something that looks like # a variable (quoted vars, interpolated vars in regexes...) # find where that variable has been declared lexically. # Doesn't find stuff like "use vars...". sub find_variable_declaration { my $cursor = shift; return () if not $cursor or not $cursor->isa("PPI::Token"); my ( $varname, $token_str ); if ( $cursor->isa("PPI::Token::Symbol") ) { $varname = $cursor->symbol; $token_str = $cursor->content; } else { my $content = $cursor->content; if ( $content =~ /((?:\$#?|[@%*])[\w:']+)/ ) { $varname = $1; $token_str = $1; } } return () if not defined $varname; $varname =~ s/^\$\#/@/; my $document = $cursor->top; my $declaration; my $prev_cursor; while (1) { $prev_cursor = $cursor; $cursor = $cursor->parent; if ( $cursor->isa("PPI::Structure::Block") or $cursor == $document ) { my @elems = $cursor->elements; foreach my $elem (@elems) { # Stop scanning this scope if we're at the branch we're coming # from. This is to ignore declarations later in the block. last if $elem == $prev_cursor; if ( $elem->isa("PPI::Statement::Variable") and grep { $_ eq $varname } $elem->variables ) { $declaration = $elem; last; } # find use vars ... elsif ( $elem->isa("PPI::Statement::Include") and $elem->module eq 'vars' and $elem->type eq 'use' ) { # do it the low-tech way my $string = $elem->content; my @vars = $string =~ /([\%\@\$][\w_:]+)/g; if ( grep { $varname eq $_ } @vars ) { $declaration = $elem; last; } } } last if $declaration or $cursor == $document; } # this is for "foreach my $i ..." elsif ( $cursor->isa("PPI::Statement::Compound") and $cursor->type =~ /^for/ ) { my @elems = $cursor->elements; foreach my $elem (@elems) { # Stop scanning this scope if we're at the branch we're coming # from. This is to ignore declarations later in the block. last if $elem == $prev_cursor; if ( $elem->isa("PPI::Token::Word") and $elem->content =~ /^(?:my|our)$/ ) { my $nelem = $elem->snext_sibling; if ( defined $nelem and $nelem->isa("PPI::Token::Symbol") and $nelem->symbol eq $varname || $nelem->content eq $token_str ) { $declaration = $nelem; last; } } } last if $declaration or $cursor == $document; } } # end while not top level return $declaration; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Desktop.pm���������������������������������������������������������������������0000644�0001750�0001750�00000010563�12237327555�014731� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Desktop; =pod =head1 NAME Padre::Desktop - Support library for Padre desktop integration =head1 DESCRIPTION This module provides a collection of functionality related to operating system integration. It is intended to serve as a repository for code relating to file extensions, desktop shortcuts, and so on. This module is intended to be loadable without having to load the main Padre code tree. The workings of this module are currently undocumented. =cut use 5.008005; use strict; use warnings; use File::Spec (); use Padre::Constant (); our $VERSION = '1.00'; =pod =head3 C<find_padre_location> Note: this only works under WIN32 Returns Padre's executable path and parent folder as C<(padre_exe, padre_exe_dir)>. Returns C<undef> if not found. =cut sub find_padre_location { return unless Padre::Constant::WIN32; require File::Which; my $padre_executable = File::Which::which('padre.exe'); #exit if we could not find Padre's executable in PATH if ($padre_executable) { require File::Basename; my $padre_exe_dir = File::Basename::dirname($padre_executable); return ( $padre_executable, $padre_exe_dir ); } else { return; } } sub desktop { if (Padre::Constant::WIN32) { #TODO Support Vista/Win7 UAC (User Account Control) # Find Padre's executable my ( $padre_exe, $padre_exe_dir ) = find_padre_location(); return 0 unless $padre_exe; # Write to the registry to get the "Edit with Padre" in the # right-click-shell-context menu require Win32::TieRegistry; my $Registry; Win32::TieRegistry->import( TiedRef => \$Registry, Delimiter => '/', ArrayValues => 1, ); $Registry->Delimiter('/'); $Registry->{'HKEY_CLASSES_ROOT/*/shell/'} = { 'Edit with Padre/' => { 'Command/' => { '' => 'c:\\strawberry\\perl\\bin\\padre.exe "%1"' }, } } or return 0; # create Padre's desktop shortcut require File::HomeDir; my $padre_lnk = File::Spec->catfile( File::HomeDir->my_desktop, 'Padre.lnk', ); return 1 if -f $padre_lnk; # NOTE: Use Padre::Perl to make this distribution agnostic require Win32::Shortcut; my $link = Win32::Shortcut->new; $link->{Description} = 'Padre - The Perl IDE'; $link->{Path} = $padre_exe; $link->{WorkingDirectory} = $padre_exe_dir; $link->Save($padre_lnk); $link->Close; return 1; } if (Padre::Constant::UNIX) { # create Padre's desktop shortcut require File::HomeDir; my $padre_desktop = File::Spec->catfile( File::HomeDir->my_desktop, 'padre.desktop', ); return 1 if -f $padre_desktop; require Padre::Util; my $icon_file = Padre::Util::sharedir('/icons/padre/64x64/logo.png'); open my $FH, '>', $padre_desktop or die "Could not open $padre_desktop for writing\n"; print $FH <<END; [Desktop Entry] Encoding=UTF-8 Name=Padre Comment=The Perl IDE Exec=padre Icon=$icon_file Categories=Application;Development;Perl;IDE Version=1.0 Type=Application Terminal=0 END close $FH; chmod 0755, $padre_desktop; # make executable return 1; } return 0; } sub quicklaunch { if (Padre::Constant::WIN32) { # Find Padre's executable my ( $padre_exe, $padre_exe_dir ) = find_padre_location(); return 0 unless $padre_exe; # Code stolen and modified from File::HomeDir, which doesn't # natively support the non-local APPDATA folder. require Win32; my $dir = File::Spec->catdir( Win32::GetFolderPath( Win32::CSIDL_APPDATA(), 1 ), 'Microsoft', 'Internet Explorer', 'Quick Launch', ); return 0 unless $dir and -d $dir; # Where the file should be specifically my $padre_lnk = File::Spec->catfile( $dir, 'Padre.lnk' ); return 1 if -f $padre_lnk; # NOTE: Use Padre::Perl to make this distribution agnostic require Win32::Shortcut; my $link = Win32::Shortcut->new; $link->{Path} = $padre_exe; $link->{WorkingDirectory} = $padre_exe_dir; $link->Save($padre_lnk); $link->Close; return 1; } return 0; } 1; __END__ =pod =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Help.pm������������������������������������������������������������������������0000644�0001750�0001750�00000004236�12237327555�014210� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Help; use 5.008; use strict; use warnings; our $VERSION = '1.00'; # Constructor. # No need to override this, just override help_init sub new { my $self = bless {}, $_[0]; # Initialize $self->help_init; return $self; } # Initialize help sub help_init { warn "help_init, You need to override this to do something useful with help search"; } # Renders the help topic content into XHTML sub help_render { warn "help_render, You need to override this to do something useful with help search"; } # Returns the help topic list sub help_list { warn "help_list, You need to override this to do something useful with help search"; } 1; __END__ =head1 NAME Padre::Help - Padre Help Provider API =head1 DESCRIPTION The C<Padre::Help> class provides a base class, default implementation and API documentation for help provision support in L<Padre>. In order to setup a help system for a document type called C<XYZ> one has to do the following: Create a module called C<Padre::Help::XYZ> that subclasses the C<Padre::Help> module and override 3 methods: C<help_init>, C<help_list> and C<help_render>. In the class representing the Document (C<Padre::Document::XYZ>) one should override the C<get_help_provider> method and return an object of the help provide module. In our case it should contain require Padre::Help::XYZ; return Padre::Help::XYZ->new; (TO DO: Maybe it should only return the name of the module) The C<help_init> method is called by the new method of C<Padre::Help> once for every document of C<XYZ> kind. (TO DO: maybe it should be only once for every document type, and not once for every document of that type). C<help_list> should return a reference to an array holding the possible strings the system can provide help for. C<help_render> is called by one of the keywords, it should return the HTML to be displayed as help and another string which is the location of the help. Usually a path to a file that will be used in the title of the window. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Plugin/������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�014203� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Plugin/PopularityContest.pm����������������������������������������������������0000644�0001750�0001750�00000023124�12237327555�020263� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Plugin::PopularityContest; # Note to developers: This module collects data and transmit it to the Padre # dev team over the Internet. Be very careful which data you collect and # always check that it is listed in the following POD and keep this module # very very good commented. Each user should be able to verify what it does. =pod =head1 NAME Padre::Plugin::PopularityContest - The Padre Popularity Contest =head1 DESCRIPTION The Padre Popularity Contest is a plug-in that collects various information about your Padre installation as it runs, and reports that information over the Internet to a central server. The information collected from the Popularity Contest plug-in is used by the development team to track the adoption rate of different features, to help set the default configuration values, and to prioritise development focus. In other words, to make life better for you in the next release, and the ones after that. =head2 What information will we collect? At the moment, the following information is collected: =over =item Run time of Padre (Time between start and exit of Padre) =item Type of operating system (platform only: Windows, Linux, Mac, etc.) =item Padre version number =item Perl, Wx and wxWidgets version numbers =item Number of times each menu option is used (directly or via shortcut or toolbar) =item MIME type of files (like C<text/plain> or C<application/perl>) which are opened in Padre =back In addition, a random process ID for Padre is created and transmitted just to identify multiple reports from a single running instance of Padre. It doesn't match or contain your OS process ID but it allows us to count duplicate reports from a single running copy only once. A new ID is generated each time you start Padre and it doesn't allow any identification of you or your computer. The following information may be added sooner or later: =over =item Enabled/disabled features (like: are tool tips enabled or not?) =item Selected Padre language =back =head2 I feel observed. Disable this module and no information would be transmitted at all. All information is anonymous and can't be tracked to you, but it helps the developer team to know which functions and features are used and which aren't. This is an open source project and you're invited to check what this module does by just opening F<Padre/Plugin/PopularityContest.pm> and check that it does. =head2 What information WON'T we collect? There are some things we can be B<very> clear about. 1. We will B<NEVER> begin to collect information of any kind without you first explicitly telling us we are allowed to collect that type of information. 2. We will B<NEVER> copy any information that would result in a violation of your legal rights, including copyright. That means we won't collect, record, or transmit the contents of any file. 3. We will B<NEVER> transmit the name of any file, or the cryptographic hash of any file, or any other unique identifier of any file, although we may need to record them locally as index keys or for optimisation purposes. 3. We will B<NEVER> transmit any information that relates to you personally unless you have given it to us already (in which case we'll only send an account identifier, not the details themselves). 4. We will B<NEVER> transmit any information about your operating system, or any information about your network that could possibly compromise security in any way. 5. We will take as much care as we can to ensure that the collection, analysis, compression and/or transmission of your information consumes as little resources as possible, and we will in particular attempt to minimize the resource impact while you are actively coding. Finally, if you really don't trust us (or you aren't allowed to trust us because you work inside a secure network) then we encourage you to delete this plug-in entirely. =cut use 5.008; use strict; use warnings; use Config (); use Scalar::Util (); use Padre::Plugin (); use Padre::Constant (); our $VERSION = '1.00'; our @ISA = 'Padre::Plugin'; # Track the number of times actions are used our %ACTION = (); ###################################################################### # Padre::Plugin Methods sub padre_interfaces { return ( 'Padre::Plugin' => '0.91', 'Padre::Task' => '0.91', 'Padre::Task::LWP' => '0.91', 'Padre::Util::SVN' => '0.91', 'Padre::Wx::Dialog::Text' => '0.91', ); } sub plugin_name { 'Padre Popularity Contest'; } # Core plugins may reuse the page icon sub plugin_icon { require Padre::Wx::Icon; Padre::Wx::Icon::find('logo'); } sub plugin_enable { my $self = shift; $self->SUPER::plugin_enable; # Load the config $self->{config} = $self->config_read; # Enable data collection everywhere in Padre $self->ide->{_popularity_contest} = $self; # Enable counting on all events: my $actions = $self->ide->actions; foreach ( keys %$actions ) { my $action = $actions->{$_}; my $name = $action->name; # Don't add my event twice in case someone diables/enables me: next if exists $ACTION{$name}; $ACTION{$name} = 0; $action->add_event( sub { $ACTION{$name}++; } ); } return 1; } # Called when the plugin is disabled by the user or due to an exit-call for Padre sub plugin_disable { my $self = shift; # End data collection delete $self->ide->{_popularity_contest}; # Send a report using the data we collected so far $self->report; # Save the config (if set) if ( $self->{config} ) { $self->config_write( delete $self->{config} ); } # Make sure our task class is unloaded $self->unload('Padre::Plugin::PopularityContext::Ping'); return 1; } sub menu_plugins_simple { # TO DO: Add menu options to force sending of a report and to show # the contents of a report. return shift->plugin_name => [ Wx::gettext("About") => '_about', Wx::gettext("Show current report") => 'report_show', ]; } # Add one to the usage statistic of an item sub count { # Item to count my $self = shift; my $item = shift; $self->{stats} = {} if ( !defined( $self->{stats} ) ) or ( ref( $self->{stats} ) ne 'HASH' ); # We want to keep our namespace limited to a reduced amount of chars: $item =~ s/[^\w\.\-\+]+/\_/g; ++$self->{stats}->{$item}; return 1; } # Compile the report hash sub _generate { my $self = shift; my %report = (); # The instance ID id generated randomly on Padre's start-up, it is used # to identify multiple reports from one running instance of Padre and # to throw away old data once a fresh report with newer data arrives from # the same instance ID. Otherwise we would double-count the data from # the first report (once at the first and once at the second report which # also includs it). $report{'padre.instance'} = $self->ide->{instance_id}; # Versioning information require Padre::Util::SVN; my $revision = Padre::Util::SVN::padre_revision(); if ( defined $revision ) { # This is a developer build $report{'dev'} = 1; $report{'padre.version'} = $Padre::VERSION; $report{'padre.revision'} = $revision; } else { # This is a regular build $report{'padre.version'} = $Padre::VERSION; } # The OS is transmitted as Win32, Linux or MAC (or other common names) $report{'perl.osname'} = $^O; $report{'perl.archname'} = $Config::Config{archname}; # The time this Padre has been running until now $report{'padre.uptime'} = time - $^T; # Perl and WxWidgets version numbers. They help to know which minimal # version could be required $report{'perl.version'} = scalar($^V) . ''; $report{'perl.wxversion'} = $Wx::VERSION; $report{'wx.version_string'} = Wx::wxVERSION_STRING(); # Add all the action tracking data foreach ( grep { $ACTION{$_} } sort keys %ACTION ) { $report{"action.$_"} = $ACTION{$_}; } # Add the stats data if ( defined( $self->{stats} ) and ( ref( $self->{stats} ) eq 'HASH' ) ) { foreach ( keys( %{ $self->{stats} } ) ) { $report{$_} = $self->{stats}->{$_}; } } return \%report; } # Report data to server sub report { my $self = shift; #my $report = $self->_generate; # my $server = $self->config->config_sync_server; # my $url = join '/', $server, $VERSION, $report->{instance_id}; # my $query = { # instance_id => # data => JSON::encode_json($report), # }; # TO DO: Enable as soon as the server is functional: # $self->task_request( # task => 'Padre::Task::LWP'->new( # method => 'POST', # url => 'http://padre.perlide.org/popularity_contest.cgi', # query => \%STATS, # ); return 1; } sub report_show { my $self = shift; my $report = $self->_generate; # Display the report as YAML for mid-level readability require YAML::Tiny; my $yaml = YAML::Tiny::Dump($report); # Show the result in a text box require Padre::Wx::Dialog::Text; Padre::Wx::Dialog::Text->show( $self->main, Wx::gettext('Popularity Contest Report'), $yaml, ); } ###################################################################### # Private Methods sub _about { my $self = shift; my $about = Wx::AboutDialogInfo->new; $about->SetName(__PACKAGE__); $about->SetDescription("Trying to figure out what do people use?\n"); Wx::AboutBox($about); return; } 1; =pod =head1 SUPPORT See the support section of the main L<Padre> module. =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Plugin/Devel.pm����������������������������������������������������������������0000644�0001750�0001750�00000016431�12237327555�015615� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Plugin::Devel; use 5.008; use strict; use warnings; use Padre::Wx (); use Padre::Util (); use Padre::Plugin (); our $VERSION = '1.00'; our @ISA = 'Padre::Plugin'; ##################################################################### # Padre::Plugin Methods sub padre_interfaces { return ( 'Padre::Plugin' => 0.91, 'Padre::Wx' => 0.91, 'Padre::Wx::Main' => 0.91, 'Padre::Wx::TextEntryDialog::History' => 0.85, ); } sub plugin_name { Wx::gettext('Padre Developer Tools'); } # Core plugins may reuse the page icon sub plugin_icon { require Padre::Wx::Icon; Padre::Wx::Icon::find('logo'); } sub plugin_enable { my $self = shift; # Load our configuration # (Used for testing purposes) $self->{config} = $self->config_read; return 1; } sub plugin_disable { my $self = shift; # Save our configuration # (Used for testing purposes) if ( $self->{config} ) { $self->{config}->{foo}++; $self->config_write( delete( $self->{config} ) ); } else { $self->config_write( { foo => 1 } ); } # Close the introspection tool if ( $self->{expression} ) { delete( $self->{expression} )->Destroy; } # Unload our dialog classes $self->unload( qw{ Padre::Wx::Dialog::Expression Padre::Wx::FBP::Expression } ); return 1; } sub menu_plugins_simple { my $self = shift; return $self->plugin_name => [ Wx::gettext('Evaluate &Expression') . '...' => 'expression', '---' => undef, Wx::gettext('Run &Document inside Padre') => 'eval_document', Wx::gettext('Run &Selection inside Padre') => 'eval_selection', '---' => undef, Wx::gettext('&Load All Padre Modules') => 'load_everything', Wx::gettext('Simulate &Crash') => 'simulate_crash', Wx::gettext('Simulate Background &Exception') => 'simulate_task_exception', Wx::gettext('Simulate &Background Crash') => 'simulate_task_crash', Wx::gettext('&Start/Stop sub trace') => 'trace_sub_startstop', '---' => undef, sprintf( Wx::gettext('&wxWidgets %s Reference'), '2.8.12' ) => sub { Padre::Wx::launch_browser('http://docs.wxwidgets.org/2.8.12/'); }, Wx::gettext('&Scintilla Reference') => sub { Padre::Wx::launch_browser('http://www.scintilla.org/ScintillaDoc.html'); }, Wx::gettext('wxPerl &Live Support') => sub { Padre::Wx::launch_irc('wxperl'); }, '---' => undef, Wx::gettext('&About') => 'show_about', ]; } ##################################################################### # Plugin Methods sub expression { my $self = shift; my $main = $self->main; unless ( $self->{expression} ) { # Load and show the expression dialog require Padre::Wx::Dialog::Expression; $self->{expression} = Padre::Wx::Dialog::Expression->new($main); } $self->{expression}->Show; $self->{expression}->SetFocus; return; } sub eval_document { my $self = shift; my $document = $self->current->document or return; return $self->_dump_eval( $document->text_get ); } sub eval_selection { my $self = shift; my $document = $self->current->document or return; return $self->_dump_eval( $self->current->text ); } sub trace_sub_startstop { my $self = shift; my $main = $self->current->main; if ( defined( $self->{trace_sub_before} ) ) { delete $self->{trace_sub_before}; delete $self->{trace_sub_after}; $main->info( Wx::gettext('Sub-tracing stopped') ); return; } eval 'use Aspect;'; if ($@) { $main->error( Wx::gettext('Error while loading Aspect, is it installed?') . "\n$@" ); return; } eval ' $self->{trace_sub_before} = before { print STDERR "enter ".shift->{sub_name}."\n"; } call qr/^Padre::/; $self->{trace_sub_after} = after { print STDERR "leave ".shift->{sub_name}."\n"; } call qr/^Padre::/; '; $main->info( Wx::gettext('Sub-tracing started') ); } sub simulate_crash { require POSIX; POSIX::_exit(); } # Simulate a background thread that does an uncaught exception/die sub simulate_task_exception { require Padre::Task::Eval; Padre::Task::Eval->new( run => 'sleep 5; die "This is a debugging task that simply crashes after running for 5 seconds!";', finish => 'warn "This should never be reached";', )->schedule; } # Simulate a background thread that does a hard exit/segfault sub simulate_task_crash { require Padre::Task::Eval; Padre::Task::Eval->new( run => 'sleep 5; exit(1);', finish => 'warn "This should never be reached";', )->schedule; } sub show_about { my $self = shift; my $about = Wx::AboutDialogInfo->new; $about->SetName('Padre::Plugin::Devel'); $about->SetDescription( Wx::gettext("A set of unrelated tools used by the Padre developers\n") ); Wx::AboutBox($about); return; } sub load_everything { my $self = shift; my $main = $self->current->main; # Find the location of Padre.pm my $padre = $INC{'Padre.pm'}; my $parent = substr( $padre, 0, -3 ); # Find everything under Padre:: with a matching version require File::Find::Rule; my @children = grep { not $INC{$_} } map {"Padre/$_->[0]"} grep { defined( $_->[1] ) and $_->[1] eq $VERSION } map { [ $_, Padre::Util::parse_variable( File::Spec->catfile( $parent, $_ ) ) ] } File::Find::Rule->name('*.pm')->file->relative->in($parent); $main->message( sprintf( Wx::gettext('Found %s unloaded modules'), scalar @children ) ); return unless @children; # Load all of them (ignoring errors) my $loaded = 0; foreach my $child (@children) { eval { require $child; }; next if $@; $loaded++; } # Say how many classes we loaded $main->message( sprintf( Wx::gettext('Loaded %s modules'), $loaded ) ); } # Takes a string, which it evals and then dumps to Output sub _dump_eval { my $self = shift; my $code = shift; # Evecute the code and handle errors my @rv = eval $code; if ($@) { $self->current->main->error( sprintf( Wx::gettext("Error: %s"), $@ ) ); return; } return $self->_dump(@rv); } sub _dump { my $self = shift; my $main = $self->current->main; # Generate the dump string and set into the output window require Devel::Dumpvar; $main->output->SetValue( Devel::Dumpvar->new( to => 'return' )->dump(@_) ); $main->output->SetSelection( 0, 0 ); $main->show_output(1); return; } 1; =pod =encoding utf8 =head1 NAME Padre::Plugin::Devel - tools used by the Padre developers =head1 DESCRIPTION =head2 Run Document inside Padre Executes and evaluates the contents of the current (saved or unsaved) document within the current Padre process, and then dumps the result of the evaluation to Output. =head2 Dump Current Document =head2 Dump Top IDE Object =head2 Dump %INC and @INC Dumps the %INC hash to Output =head2 Enable/Disable logging =head2 Enable/Disable trace when logging =head2 Simulate crash =head2 wxWidgets 2.8.12 Reference =head2 C<Scintilla> reference Documentation for C<Wx::Scintilla>, a Scintilla source code editing component for wxWidgets =head2 C<wxPerl> Live Support Connects to C<#wxperl> on C<irc.perl.org>, where people can answer queries on wxPerl problems/usage. =head2 About =head1 AUTHOR Gábor Szabó; =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Plugin/My.pm�������������������������������������������������������������������0000644�0001750�0001750�00000006363�12237327555�015146� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Plugin::My; use 5.010; use strict; use warnings; use utf8; use Padre::Plugin (); our $VERSION = '1.00'; use parent qw(Padre::Plugin); ####### # Define Padre Interfaces required ####### sub padre_interfaces { return ( 'Padre::Plugin' => 0.94, 'Padre::Constant' => 0.94, 'Padre::Unload' => 0.94, ); } # Child modules we need to unload when disabled use constant CHILDREN => qw{ Padre::Plugin::My }; ####### # Called by padre to know the plugin name ####### sub plugin_name { return Wx::gettext('My Plugin'); } sub menu_plugins_simple { my $self = shift; return $self->plugin_name => [ 'About' => sub { $self->show_about }, # 'Another Menu Entry' => sub { $self->other_method }, # 'A Sub-Menu...' => [ # 'Sub-Menu Entry' => sub { $self->yet_another_method }, # ], ]; } # Core plugins may reuse the page icon sub plugin_icon { require Padre::Wx::Icon; Padre::Wx::Icon::find('logo'); } ##################################################################### # Custom Methods sub show_about { my $self = shift; # Locate this plugin my $path = File::Spec->catfile( Padre::Constant::CONFIG_DIR, qw{ plugins Padre Plugin My.pm } ); # Generate the About dialog my $about = Wx::AboutDialogInfo->new; $about->SetName('My Plug-in'); $about->SetDescription( <<"END_MESSAGE" ); The philosophy behind Padre is that every Perl programmer should be able to easily modify and improve their own editor. To help you get started, we've provided you with your own plug-in. It is located in your configuration directory at: $path Open it with with Padre and you'll see an explanation on how to add items. END_MESSAGE # Show the About dialog Wx::AboutBox($about); return; } sub other_method { my $self = shift; my $main = $self->main; $main->message( 'Hi from My Plugin', 'Other method' ); # my $name = $main->prompt('What is your name?', 'Title', 'UNIQUE_KEY_TO_REMEMBER'); # $main->message( "Hello $name", 'Welcome' ); # my $doc = Padre::Current->document; # my $text = $doc->text_get; # my $count = length($text); # my $filename = $doc->filename; # $main->message( "Filename: $filename\nCount: $count", 'Current file' ); # my $doc = Padre::Current->document; # my $text = $doc->text_get; # $text =~ s/[ \t]+$//m; # $doc->text_set( $text ); return; } ######## # plugin_disable ######## sub plugin_disable { my $self = shift; # Close the dialog if it is hanging around # $self->clean_dialog; # Unload all our child classes for my $package (CHILDREN) { require Padre::Unload; Padre::Unload->unload($package); } $self->SUPER::plugin_disable(@_); return 1; } 1; __END__ =pod =head1 NAME Padre::Plugin::My - My personal plug-in =head1 DESCRIPTION This is your personal plug-in. Update it to fit your needs. And if it does interesting stuff, please consider sharing it on C<CPAN>! =head1 COPYRIGHT & LICENSE Currently it's copyrighted (c) 2008-2010 by The Padre development team as listed in Padre.pm... But update it and it will become copyrighted (c) You C<< <you@example.com> >>! How exciting! :-) =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Plugin/PopularityContest/������������������������������������������������������0000755�0001750�0001750�00000000000�12237340740�017712� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Plugin/PopularityContest/Ping.pm�����������������������������������������������0000644�0001750�0001750�00000001663�12237327555�021164� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Plugin::PopularityContest::Ping; # First-generation live call to the Popularity Contest server use 5.008; use strict; use warnings; use URI (); use Padre::Task::LWP (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::LWP'; sub new { my $class = shift; # Prepare the information to send my %data = ( padre => $VERSION, perl => $], osname => $^O, ); if ( $0 =~ /padre$/ ) { my $dir = $0; $dir =~ s/padre$//; require Padre::Util::SVN; my $revision = Padre::Util::SVN::directory_revision($dir); $data{svn} = $revision if -d "$dir.svn"; } # Hand off to the parent constructor return $class->SUPER::new( url => 'http://perlide.org/popularity/v1/ping.html', query => \%data, ); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������Padre-1.00/lib/Padre/Search.pm����������������������������������������������������������������������0000644�0001750�0001750�00000026310�12237327555�014522� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Search; =pod =head1 NAME Padre::Search - The Padre Search API =head2 SYNOPSIS # Create the search object my $search = Padre::Search->new( find_term => 'foo', ); # Execute the search on the current editor $search->search_next(Padre::Current->editor); =head2 DESCRIPTION This is the Padre Search API. It allows the creation of abstract search object that can independently search and/or replace in an editor object. =head2 METHODS =cut use 5.008; use strict; use warnings; use Carp (); use Encode (); use List::Util (); use Scalar::Util (); use Params::Util (); our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; sub new { my $class = shift; my $self = bless {@_}, $class; # Check params unless ( defined $self->find_term ) { die "Did not provide 'find_term' search term"; } unless ( length $self->find_term ) { # Pointless zero-length search return; } # Apply defaults $self->{find_case} ||= 0; $self->{find_regex} ||= 0; $self->{find_reverse} ||= 0; # Pre-compile the search unless ( defined $self->search_regex ) { return; } return $self; } sub find_term { $_[0]->{find_term}; } sub find_case { $_[0]->{find_case}; } sub find_regex { $_[0]->{find_regex}; } sub find_reverse { $_[0]->{find_reverse}; } sub replace_term { $_[0]->{replace_term}; } sub search_regex { my $self = shift; # Escape the raw search term my $term = $self->find_term; if ( $self->find_regex ) { # Escape non-trailing $ so they won't interpolate $term =~ s/\$(?!\z)/\\\$/g; } else { # Escape everything $term = quotemeta $term; } # Compile the regex my $search_regex = eval { $self->find_case ? qr/$term/m : qr/$term/mi }; return if $@; return $search_regex; } sub equals { my $self = shift; my $search = Params::Util::_INSTANCE( shift, 'Padre::Search' ) or return; return Scalar::Util::refaddr($self) == Scalar::Util::refaddr($search); } ##################################################################### # Command Abstraction sub search_next { my $self = shift; if ( $self->find_reverse ) { return $self->search_up(@_); } else { return $self->search_down(@_); } } sub search_previous { my $self = shift; if ( $self->find_reverse ) { return $self->search_down(@_); } else { return $self->search_up(@_); } } sub replace_next { my $self = shift; if ( $self->find_reverse ) { return $self->replace_up(@_); } else { return $self->replace_down(@_); } } sub replace_previous { my $self = shift; if ( $self->find_reverse ) { return $self->replace_down(@_); } else { return $self->replace_up(@_); } } ##################################################################### # Content Abstraction sub search_down { my $self = shift; my $editor = _EDITOR(shift); $self->editor_search_down( $editor, @_ ); } sub search_up { my $self = shift; my $editor = _EDITOR(shift); $self->editor_search_up( $editor, @_ ); } sub search_count { my $self = shift; if ( Params::Util::_INSTANCE( $_[0], 'Padre::Wx::Editor' ) ) { return $self->editor_search_count(@_); } elsif ( Params::Util::_SCALAR0( $_[0] ) ) { return $self->scalar_search_count(@_); } die "Missing or invalid content object"; } sub replace { my $self = shift; my $editor = _EDITOR(shift); $self->editor_replace_down( $editor, @_ ); } sub replace_down { my $self = shift; my $editor = _EDITOR(shift); $self->editor_replace_down( $editor, @_ ); } sub replace_up { my $self = shift; my $editor = _EDITOR(shift); $self->editor_replace_up( $editor, @_ ); } sub replace_all { my $self = shift; if ( Params::Util::_INSTANCE( $_[0], 'Padre::Wx::Editor' ) ) { return $self->editor_replace_all(@_); } elsif ( Params::Util::_SCALAR0( $_[0] ) ) { return $self->scalar_replace_all(@_); } die "Missing or invalid content object"; } ##################################################################### # Editor Interaction sub editor_search_down { my $self = shift; my $editor = _EDITOR(shift); # Execute the search and move to the resulting location my ( $start, $end, @matches ) = $self->matches( text => $editor->GetText, regex => $self->search_regex, from => $editor->GetSelectionStart, to => $editor->GetSelectionEnd, ); return unless defined $start; # Highlight the found item $editor->match( $self, $start, $end ); } sub editor_search_up { my $self = shift; my $editor = _EDITOR(shift); # Execute the search and move to the resulting location my ( $start, $end, @matches ) = $self->matches( text => $editor->GetText, regex => $self->search_regex, from => $editor->GetSelectionStart, to => $editor->GetSelectionEnd, backwards => 1, ); return unless defined $start; # Highlight the found item $editor->match( $self, $start, $end ); } sub editor_search_count { my $self = shift; my $editor = _EDITOR(shift); # Execute the regex search for all matches $self->match_count( $editor->GetText, $self->search_regex, ); } sub editor_replace_down { my $self = shift; my $editor = _EDITOR(shift); my $from = $editor->GetSelectionStart; my $to = $editor->GetSelectionEnd; # Execute the search so we can establish if we have already # selected a match. my ( $start, $end, @matches ) = $self->matches( text => $editor->GetText, regex => $self->search_regex, from => $from, to => $from, ); return unless @matches; # Are we perfectly selecting a match already unless ( $from == $to ) { foreach my $i ( 0 .. $#matches ) { my $match = $matches[$i]; next unless $match->[0] == $from; next unless $match->[1] == $to; # The selection matches, replace it $editor->ReplaceSelection( $self->replace_term ); # Shortcut if there are no more matches return unless $#matches; # Move to the next match if ( $i == $#matches ) { # Wrap to the beginning of the document $start = $matches[0]->[0]; $end = $matches[0]->[1]; } else { my $delta = $editor->GetSelectionEnd - $to; my $down = $matches[ $i + 1 ]; $start = $down->[0] + $delta; $end = $down->[1] + $delta; } last; } } $editor->match( $self, $start, $end ); } sub editor_replace_up { my $self = shift; my $editor = _EDITOR(shift); my $from = $editor->GetSelectionStart; my $to = $editor->GetSelectionEnd; # Execute the search so we can establish if we have already # selected a match. my ( $start, $end, @matches ) = $self->matches( text => $editor->GetTextRange( 0, $editor->GetLength ), regex => $self->search_regex, from => $from, to => $from, ); return unless @matches; # Are we perfectly selecting a match already unless ( $from == $to ) { foreach my $i ( 0 .. $#matches ) { my $match = $matches[$i]; next unless $match->[0] == $from; next unless $match->[1] == $to; # The selection matches, replace it $editor->ReplaceSelection( $self->replace_term ); # Shortcut if there are no more matches return unless $#matches; # Move to the next match if ( $i == 0 ) { # Wrap to the end of the document my $delta = $editor->GetSelectionEnd - $to; $start = $matches[-1]->[0] + $delta; $end = $matches[-1]->[1] + $delta; } else { my $up = $matches[ $i - 1 ]; $start = $up->[0]; $end = $up->[1]; } last; } } $editor->match( $self, $start, $end ); } sub editor_replace_all { my $self = shift; my $editor = _EDITOR(shift); # Execute the search for all matches my ( undef, undef, @matches ) = $self->matches( text => $editor->GetTextRange( 0, $editor->GetLength ), regex => $self->search_regex, from => $editor->GetSelectionStart, to => $editor->GetSelectionEnd, ); return 0 unless @matches; # Replace all matches, returning the number we replaced my $replace = $self->replace_term; @matches = map { [ @$_, $replace ] } reverse @matches; require Padre::Delta; Padre::Delta->new( position => @matches )->to_editor($editor); } ##################################################################### # Scalar Interaction sub scalar_search_count { my $self = shift; my $scalar = shift; unless ( Params::Util::_SCALAR0($scalar) ) { die "Failed to provide SCALAR to count in"; } # Execute the regex search for all matches $self->match_count( $$scalar, $self->search_regex, ); } sub scalar_replace_all { my $self = shift; my $scalar = shift; unless ( Params::Util::_SCALAR0($scalar) ) { die "Failed to provide SCALAR to count in"; } # Prepare the search and replace my $search = $self->search_regex; my $replace = $self->replace_term; # Do the replacement my $count = $$scalar =~ s/$search/$replace/g; # Return the replace count return $count; } ##################################################################### # Core Search Methods =pod =head2 matches my ($first_char, $last_char, @all) = $search->matches( text => $search_text, regex => $search_regexp, from => $from, to => $to, backwards => $reverse, ); Parameters: * The text in which we need to search * The regular expression * The offset within the text where we the last match started so the next forward match must start after this. * The offset within the text where we the last match ended so the next backward match must end before this. * backward bit (1 = search backward, 0 = search forward) =cut sub matches { my $self = shift; my %param = @_; # Searches run in unicode my $text = Encode::encode( 'utf-8', delete $param{text} ); my $regex = Encode::encode( 'utf-8', delete $param{regex} ); # Find all matches for the regex my @matches = (); my $submatch = $param{submatch} || 0; while ( $text =~ /$regex/g ) { push @matches, [ $-[$submatch], $+[$submatch] ]; } unless (@matches) { return ( undef, undef ); } my $pair = []; my $from = $param{from} || 0; my $to = $param{to} || 0; if ( $param{backwards} ) { # Search backwards $pair = List::Util::first { $from >= $_->[1] } reverse @matches; $pair = $matches[-1] unless $pair; } else { # Search forwards $pair = List::Util::first { $to <= $_->[0] } @matches; $pair = $matches[0] unless $pair; } return ( @$pair, @matches ); } # NOTE: This current fails to work with multi-line search expressions sub match_lines { my $self = shift; my @lines = split /\n/, Encode::encode( 'utf-8', shift ); my $regex = shift; # Apply the search regex as a filter return map { [ $_ + 1, $lines[$_] ] } grep { $lines[$_] =~ /$regex/ } ( 0 .. $#lines ); } sub match_count { my $self = shift; my $text = Encode::encode( 'utf-8', shift ); my $regex = shift; my $count = () = $text =~ /$regex/g; return $count; } ###################################################################### # Support Functions sub _EDITOR { unless ( Params::Util::_INSTANCE( $_[0], 'Padre::Wx::Editor' ) ) { Carp::croak("Missing or invalid Padre::Ex::Editor param"); } return $_[0]; } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Manual.pod���������������������������������������������������������������������0000644�0001750�0001750�00000001233�11452515377�014674� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������=head1 NAME Padre::Manual - The Primary Padre Documentation =head1 DESCRIPTION This is a stub for what will eventually become the Padre manual. Currently this serves as a launch point for each of the child documents that make up the nascent "manual". =head2 Padre Developer Guide If you would like to help improve Padre see L<Padre::Manual::Hacking> for information on checking out the Padre source code, how to work with it, file bugs, and on. =head2 Padre Translation Guild If you would like to translate Padre into your local language, see the online documentation for more details. L<http://padre.perlide.org/wiki/TranslationIntro> TO BE COMPLETED ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/��������������������������������������������������������������������������0000755�0001750�0001750�00000000000�12237340741�013647� 5����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/LWP.pm��������������������������������������������������������������������0000644�0001750�0001750�00000011130�12237327555�014653� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::LWP; =pod =head1 NAME Padre::Task::LWP - Generic HTTP client background processing task =head1 SYNOPSIS # Fire and forget HTTP request Padre::Task::LWP->new( request => HTTP::Request->new( GET => 'http://perlide.org', ), )->schedule; =head1 DESCRIPTION Sending and receiving data via HTTP. =head1 METHODS =cut use 5.008005; use strict; use warnings; use Padre::Constant (); use Params::Util (); use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; use Class::XSAccessor { getters => { cookie_file => 'cookie_file', request => 'request', response => 'response', } }; ###################################################################### # Constructor =pod =head2 new my $task = Padre::Task::LWP->new( method => 'GET', url => 'http://perlide.org', ); The C<new> constructor creates a L<Padre::Task> for a background HTTP request. It takes a single addition parameter C<request> which is a fully-prepared L<HTTP::Request> object for the request. Returns a new L<Padre::Task::LWP> object, or throws an exception on error. =cut sub new { my $self = shift->SUPER::new( @_, # Temporarily disable the ability to fully specify the request request => undef, response => undef, ); unless ( $self->{url} ) { Carp::croak("Missing or invalid 'request' for Padre::Task::LWP"); } return $self; } =pod =head2 request The C<request> method returns the L<HTTP::Request> object that was provided to the constructor. =head2 response Before the C<run> method has been fired the C<response> method returns C<undef>. After the C<run> method has been fired the C<response> method returns the L<HTTP::Response> object for the L<LWP::UserAgent> request. Typically, you would use this in the C<finish> method for the task, if you wish to take any further actions in L<Padre> based on the result of the HTTP call. =cut ###################################################################### # Padre::Task Methods sub run { my $self = shift; # Generate the formal request my $method = $self->{method} || 'GET'; my $url = $self->{url}; my $query = $self->{query}; if ( Params::Util::_HASH0($query) ) { $query = join '&', map { my $value = $query->{$_} || ''; $value =~ s/(\W)/"%".uc(unpack("H*",$1))/ge; $value =~ s/\%20/\+/g; $_ . '=' . $value; } ( sort keys %$query ); } if ( $method eq 'GET' and defined $query ) { $url .= '?' . $query; } require HTTP::Request; my $request = HTTP::Request->new( $method, $url ); if ( $method eq 'POST' ) { $request->content_type( $self->{content_type} || 'application/x-www-form-urlencoded' ); $request->content( $query || '' ); } my $headers = Params::Util::_HASH0( $self->{headers} ) || {}; foreach my $name ( sort keys %$headers ) { $request->header( $name => $headers->{$name} ); } $self->{request} = $request; # Hang on to the usage of cookies... do we really need this? require HTTP::Cookies; my $cookie_jar = undef; if ( $self->cookie_file ) { $cookie_jar = HTTP::Cookies->new( file => $self->cookie_file, autosave => 1, ); } # Initialise the user agent require LWP::UserAgent; my $useragent = LWP::UserAgent->new( agent => "Padre/$VERSION", timeout => 60, cookie_jar => $cookie_jar, ); unless (Padre::Constant::WIN32) { $useragent->env_proxy; } # Execute the request. # It's not up to us to judge success or failure at this point, # we just do the heavy lifting of the request itself. $self->tell_status( join ' ', $method, $url, '...', ); $self->{response} = $useragent->request($request); $self->tell_status( join ' ', $method, $url, '-->', $self->{response}->code, $self->{response}->message, ); # Remove the CODE references from the response. # They aren't needed any more, and they won't survive # the serialization back to the main thread. delete $self->{response}->{handlers}; return 1; } 1; __END__ =pod =head1 SEE ALSO This class inherits from C<Padre::Task> and its instances can be scheduled using C<Padre::TaskManager>. The transfer of the objects to and from the worker threads is implemented with L<Storable>. =head1 AUTHOR Steffen Mueller C<smueller@cpan.org> =head1 COPYRIGHT AND LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/CPAN.pm�������������������������������������������������������������������0000644�0001750�0001750�00000020037�12237327555�014740� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::CPAN; use 5.008005; use strict; use warnings; use Padre::Task (); use Padre::Constant (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; # Maximum number of MetaCPAN results use constant MAX_RESULTS => 97; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Assert required command parameter unless ( defined $self->{command} ) { die "Failed to provide a command to the CPAN task\n"; } return $self; } ###################################################################### # Padre::Task Methods sub run { my $self = shift; # Create empty model $self->{model} = []; # Pull things off the task so we won't need to serialize # it back up to the parent Wx thread at the end of the task. return unless defined $self->{command}; my $command = $self->{command}; return unless defined $self->{query}; my $query = delete $self->{query}; if ( $command eq 'search' ) { # Autocomplete search using MetaCPAN JSON API $self->{model} = $self->metacpan_autocomplete($query); } elsif ( $command eq 'pod' ) { # Find the POD's HTML and SYNOPSIS section # using MetaCPAN JSON API $self->{model} = $self->metacpan_pod($query); } elsif ( $command eq 'recent' ) { # Find MetaCPAN's top recent distributions $self->{model} = $self->metacpan_recent; } elsif ( $command eq 'favorite' ) { # Find MetaCPAN's top favorite distributions $self->{model} = $self->metacpan_favorite; } else { TRACE("Unimplemented $command. Please fix!") if DEBUG; } return 1; } # # Adopted from https://github.com/CPAN-API/metacpan-web # sub metacpan_autocomplete { my ( $self, $query ) = @_; # Convert :: to spaces so we dont crash request :) $query =~ s/::/ /g; # Create an array of query keywords that are separated by spaces my @query = split( /\s+/, $query ); # The documentation Module-Name that should be analyzed my $should = [ map { ( { field => { 'documentation.analyzed' => "$_*" } }, { field => { 'documentation.camelcase' => "$_*" } } ) } grep { $_ } @query ]; push @{$should}, map { ( { field => { 'author' => "$_" } }, ) } map { uc $_ } grep {$_} @query; # The distribution we do not want in our search my @ROGUE_DISTRIBUTIONS = qw(kurila perl_debug perl-5.005_02+apache1.3.3+modperl pod2texi perlbench spodcxx); # The ElasticSearch query in Perl my %payload = ( track_scores => 1, query => { filtered => { query => { bool => { should => $should } # ToDo see #1488 comment:7 itcharlie++ # custom_score => { # query => { bool => { should => $should } }, # script => "_score - doc['documentation'].stringValue.length()/100" # }, }, filter => { and => [ { not => { filter => { or => [ map { { term => { 'file.distribution' => $_ } } } @ROGUE_DISTRIBUTIONS ] } } }, { exists => { field => 'documentation' } }, { term => { 'file.indexed' => \1 } }, { term => { 'file.status' => 'latest' } }, { not => { filter => { term => { 'file.authorized' => \0 } } } } ] } } }, sort => [ { "_score" => {}, author => { order => "asc" }, distribution => { order => "asc" }, documentation => { order => "asc" } } ], fields => [qw(documentation release author distribution)], size => MAX_RESULTS, ); # Convert ElasticSearch Perl query to a JSON request require JSON::XS; my $json_request = JSON::XS::encode_json( \%payload ); TRACE("Content => $json_request") if DEBUG; # POST the json request to api.metacpan.org require LWP::UserAgent; my $ua = LWP::UserAgent->new( agent => "Padre/$VERSION" ); $ua->timeout(10); $ua->env_proxy unless Padre::Constant::WIN32; my $response = $ua->post( 'http://api.metacpan.org/v0/file/_search', Content => $json_request, ); unless ( $response->is_success ) { TRACE( sprintf( "Got '%s' from metacpan.org", $response->status_line ) ) if DEBUG; return []; } # Decode json response then cleverly map it for the average joe :) my $data = JSON::XS::decode_json( $response->decoded_content ); my @results = map { $_->{fields} } @{ $data->{hits}->{hits} || [] }; # And return its reference return \@results; } # Load module's POD using MetaCPAN API # retrieves the SYNOPSIS section from that POD and returns a POD2HTML text sub metacpan_pod { my ( $self, $rec ) = @_; my ( $module, $download_url ) = ( $rec->{module}, $rec->{download_url} ); # Load module's POD using MetaCPAN API require LWP::UserAgent; my $ua = LWP::UserAgent->new( agent => "Padre/$VERSION" ); $ua->timeout(10); $ua->env_proxy unless Padre::Constant::WIN32; my $url = "http://api.metacpan.org/v0/pod/$module?content-type=text/x-pod"; my $response = $ua->get($url); unless ( $response->is_success ) { TRACE( sprintf( "Got '%s for %s", $response->status_line, $url ) ) if DEBUG; return { html => '<b>' . sprintf( Wx::gettext(qq{No documentation for '%s'}), $module ) . '</b>', synopsis => '', distro => $module, download_url => $download_url, }; } # The pod text is here my $pod = $response->decoded_content; # Convert POD to HTML require Padre::Pod2HTML; my $pod_html = Padre::Pod2HTML->pod2html($pod); # Find the SYNOPSIS section my ( $synopsis, $section ) = ( '', '' ); for my $pod_line ( split /^/, $pod ) { if ( $pod_line =~ /^=head1\s+(\S+)/ ) { $section = $1; } elsif ( $section eq 'SYNOPSIS' ) { # Add leading-spaces-trimmed line to synopsis $pod_line =~ s/^\s+//g; $synopsis .= $pod_line; } } return { html => $pod_html, synopsis => $synopsis, distro => $module, download_url => $download_url, }, } # Retrieves the most recent CPAN distributions sub metacpan_recent { my $self = shift; # Load most recent distributions using MetaCPAN API require LWP::UserAgent; my $ua = LWP::UserAgent->new( agent => "Padre/$VERSION" ); $ua->timeout(10); $ua->env_proxy unless Padre::Constant::WIN32; my $url = "http://api.metacpan.org/v0/release/?sort=date:desc" . "&size=" . MAX_RESULTS . "&fields=name,distribution,abstract,download_url"; my $response = $ua->get($url); unless ( $response->is_success ) { TRACE( sprintf( "Got '%s for %s", $response->status_line, $url ) ); return; } # Decode json response then cleverly map it for the average joe :) require JSON::XS; my $data = JSON::XS::decode_json( $response->decoded_content ); my @results = map { $_->{fields} } @{ $data->{hits}->{hits} || [] }; # Fix up the results a bit to workaround undefined stuff for my $result (@results) { $result->{abstract} = '' unless defined $result->{abstract}; } return \@results; } # Retrieves the most favorite CPAN distributions sub metacpan_favorite { my $self = shift; my %payload = ( "query" => { "match_all" => {} }, "facets" => { "leaderboard" => { "terms" => { "field" => "distribution", "size" => MAX_RESULTS, }, }, }, size => 0, ); # Convert ElasticSearch Perl query to a JSON request require JSON::XS; my $json_request = JSON::XS::encode_json( \%payload ); # Load most favorite distributions using MetaCPAN API require LWP::UserAgent; my $ua = LWP::UserAgent->new( agent => "Padre/$VERSION" ); $ua->timeout(10); $ua->env_proxy unless Padre::Constant::WIN32; my $response = $ua->post( 'http://api.metacpan.org/v0/favorite/_search', Content => $json_request, ); unless ( $response->is_success ) { TRACE( sprintf( "Got '%s' from metacpan.org", $response->status_line ) ) if DEBUG; return []; } # Decode json response then cleverly map it for the average joe :) my $data = JSON::XS::decode_json( $response->decoded_content ); my @results = map {$_} @{ $data->{facets}->{leaderboard}->{terms} || [] }; return \@results; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/FunctionList.pm�����������������������������������������������������������0000644�0001750�0001750�00000004336�12237327555�016644� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::FunctionList; # Function list refresh task, done mainly as a full-feature proof of concept. use 5.008005; use strict; use warnings; use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Padre::Task Methods sub run { my $self = shift; # Pull the text off the task so we won't need to serialize # it back up to the parent Wx thread at the end of the task. my @functions = $self->find( delete $self->{text} ); # Sort it appropriately my $order = $self->{order} || ''; if ( $order eq 'alphabetical' ) { # Alphabetical (aka 'abc') # Ignore case and leading non-word characters my @expected = (); my @unknown = (); foreach my $function (@functions) { if ( $function =~ /^([^a-zA-Z0-9]*)(.*)$/ ) { push @expected, [ $function, $1, lc($2) ]; } else { push @unknown, $function; } } @expected = map { $_->[0] } sort { $a->[2] cmp $b->[2] || length( $a->[1] ) <=> length( $b->[1] ) || $a->[1] cmp $b->[1] || $a->[0] cmp $b->[0] } @expected; @unknown = sort { lc($a) cmp lc($b) || $a cmp $b } @unknown; @functions = ( @expected, @unknown ); } elsif ( $order eq 'alphabetical_private_last' ) { # As above, but with private functions last my @expected = (); my @unknown = (); foreach my $function (@functions) { if ( $function =~ /^([^a-zA-Z0-9]*)(.*)$/ ) { push @expected, [ $function, $1, lc($2) ]; } else { push @unknown, $function; } } @expected = map { $_->[0] } sort { length( $a->[1] ) <=> length( $b->[1] ) || $a->[1] cmp $b->[1] || $a->[2] cmp $b->[2] || $a->[0] cmp $b->[0] } @expected; @unknown = sort { lc($a) cmp lc($b) || $a cmp $b } @unknown; @functions = ( @expected, @unknown ); } $self->{list} = \@functions; return 1; } ###################################################################### # Padre::Task::FunctionList Methods # Show an empty function list by default sub find { return (); } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/Outline.pm����������������������������������������������������������������0000644�0001750�0001750�00000003117�12237327555�015636� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Outline; # Outline refresh task, done mainly as a full-feature proof of concept. use 5.008005; use strict; use warnings; use Params::Util ('_INSTANCE'); use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Just convert the document to text for now. # Later, we'll suck in more data from the project and # other related documents to create an outline tree more awesomely. unless ( _INSTANCE( $self->{document}, 'Padre::Document' ) ) { die "Failed to provide a document to the outline task"; } # Remove the document entirely as we do this, # as it won't be able to survive serialisation. my $document = delete $self->{document}; $self->{text} = $document->text_get; return $self; } ###################################################################### # Padre::Task Methods sub run { my $self = shift; # Pull the text off the task so we won't need to serialize # it back up to the parent Wx thread at the end of the task. my $text = delete $self->{text}; # Generate the outline $self->{data} = $self->find($text); return 1; } ###################################################################### # Padre::Task::Outline Methods # Show an empty function list by default sub find { return []; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/Pod2HTML.pm���������������������������������������������������������������0000644�0001750�0001750�00000003211�12237327555�015503� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Pod2HTML; # Render POD (or files containing POD) to HTML suitable for a Help # or documentation browser. use 5.008; use strict; use warnings; use File::Spec (); use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor and Accessors sub new { my $self = shift->SUPER::new(@_); # We need either a file name or the POD if ( defined $self->{file} ) { unless ( File::Spec->file_name_is_absolute( $self->{file} ) ) { $self->{file} = File::Spec->rel2abs( $self->{file} ); } unless ( -f $self->{file} and -r _ ) { return undef; } } elsif ( not defined $self->{text} ) { return undef; } return $self; } sub file { $_[0]->{file}; } sub html { $_[0]->{html}; } sub errstr { $_[0]->{errstr}; } ###################################################################### # Padre::Task Methods sub run { my $self = shift; my $html = ''; # Generate the HTML require Padre::Pod2HTML; if ( defined $self->{file} ) { local $@; $html = eval { Padre::Pod2HTML->file2html( $self->{file} ); }; if ($@) { $self->{errstr} = "Error while rendering '$self->{file}'"; return 1; } } else { local $@; $html = eval { Padre::Pod2HTML->pod2html( $self->{text} ); }; if ($@) { $self->{errstr} = "Error while rendering POD"; return 1; } } # Save the HTML and return $self->{html} = $html; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/OpenResource.pm�����������������������������������������������������������0000644�0001750�0001750�00000003015�12237327555�016625� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::OpenResource; use 5.008; use strict; use warnings; use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; sub run { my $self = shift; # Search and ignore version control and Dist::Zilla folders if the user wants require File::Find::Rule; my $rule = File::Find::Rule->new; if ( $self->{skip_vcs_files} ) { $rule->or( $rule->new->directory->name( 'CVS', '.svn', '.git', 'blib', '.build' )->prune->discard, $rule->new ); } $rule->file; if ( $self->{skip_using_manifest_skip} ) { my $manifest_skip = File::Spec->catfile( $self->{directory}, 'MANIFEST.SKIP', ); if ( -e $manifest_skip ) { require ExtUtils::Manifest; ExtUtils::Manifest->import('maniskip'); my $maniskip = maniskip($manifest_skip); $rule->exec( sub { return not $maniskip->( $_[2] ); } ); } } # Generate a sorted file list based on filename $self->{matched} = [ sort { File::Basename::fileparse($a) cmp File::Basename::fileparse($b) } $rule->in( $self->{directory} ) ]; return 1; } 1; __END__ =head1 AUTHOR Ahmad M. Zawawi C<< <ahmad.zawawi at gmail.com> >> =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/Transform.pm��������������������������������������������������������������0000644�0001750�0001750�00000004046�12237327555�016174� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Transform; # A Transform task is used to automatically calculate and apply a change # to the content of a Padre::Wx::Transform. # # It does so via the following steps: # # 1. Apply a readonly lock to the editor # 2. Capture the text content of the editor # 3. Send the content to the background for transformation # 4. Transform the content in the background # 5. Calculate a Padre::Delta to apply the changes # 6. Return the delta to the foreground # 7. Apply the delta to the editor and release the lock use 5.008; use strict; use warnings; use Storable (); use Params::Util (); use Padre::Role::Task (); our $VERSION = '1.00'; our $COMPATIBLE = '0.93'; our @ISA = 'Padre::Task'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); # We must have an owner and it must be an editor my $editor = Padre::Role::Task->task_owner( $self->{owner} ); unless ( Params::Util::_INSTANCE( $editor, 'Padre::Wx::Editor' ) ) { die "Task owner is not a Padre::Wx::Editor object"; } # Check the transform object unless ( Params::Util::_INSTANCE( $self->{transform}, 'Padre::Transform' ) ) { die "The transform param is not a Padre::Transform object"; } return $self; } sub transform { $_[0]->{transform}; } sub prepare { my $self = shift; my $owner = $self->{owner}; my $editor = Padre::Role::Task->task_owner($owner) or return; my $text = $editor->GetText; $self->{input} = \$text; return 1; } sub run { my $self = shift; my $input = delete $self->{input}; my $delta = $self->transform->scalar_delta($input); $self->{delta} = $delta; return 1; } # Apply the resulting delta to the editor, if it still exists sub finish { my $self = shift; my $editor = Padre::Role::Task->task_owner( $self->{owner} ) or return; my $delta = $self->{delta} or return; $delta->to_editor($editor); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/LaunchDefaultBrowser.pm���������������������������������������������������0000644�0001750�0001750�00000001403�12237327555�020276� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::LaunchDefaultBrowser; # The Wx::LaunchDefaultBrowser function blocks until the default # browser has been launched. For something like a heavily loaded down # Firefox, this can take perhaps a minute. # This task moves the function into the background. use 5.008; use strict; use warnings; use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; sub run { # We don't need to load all of Padre::Wx for this, # but we do need the minimum bits of wxWidgets. require Wx; Wx::LaunchDefaultBrowser( $_[0]->{url} ); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/Run.pm��������������������������������������������������������������������0000644�0001750�0001750�00000003647�12237327555�014773� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Run; # Generic task for executing programs via system() and streaming # their output back to the main program. use 5.008005; use strict; use warnings; use Params::Util (); use Padre::Task (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; sub new { TRACE( $_[0] ) if DEBUG; my $class = shift; my $self = $class->SUPER::new(@_); # Params and defaults $self->{timeout} ||= 10; unless ( Params::Util::_ARRAY( $self->{cmd} ) ) { die "Failed to provide command to execute"; } return $self; } sub run { TRACE( $_[0] ) if DEBUG; my $self = shift; # Set up for execution require IPC::Run; my $timeout = IPC::Run::timeout( $self->{timeout} ); my $stdin = ''; my $stdout = ''; my $stderr = ''; # Start the process and wait for output TRACE( "Running " . join( @{ $self->{cmd} } ) ) if DEBUG; my $handle = IPC::Run::start( $self->{cmd}, \$stdin, \$stdout, \$stderr, $timeout, ); # Wait for output and send them to the handlers local $@ = ''; eval { while (1) { if ( $stdout =~ s/^(.*?)\n// ) { $self->stdout("$1"); next; } $handle->pump; } }; if ($@) { if ( $@ =~ /^process ended prematurely/ ) { # Normal exit TRACE("Process stopped normally") if DEBUG; $handle->kill_kill; # Just in case return 1; } # Otherwise, we probably hit the timeout TRACE("Process crashed ($@)") if DEBUG; $self->{errstr} = $@; $handle->kill_kill; } return 1; } # By default, stream STDOUT to the main window status bar. # Any serious user of this task will want to do something different # with the stdout and will override this method. sub stdout { TRACE( $_[1] ) if DEBUG; my $self = shift; $self->tell_status( $_[0] ); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/LexicalReplaceVariable.pm�������������������������������������������������0000644�0001750�0001750�00000004643�12237327555�020547� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::LexicalReplaceVariable; use 5.008; use strict; use warnings; use Padre::Task::PPI (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::PPI'; =pod =head1 NAME Padre::Task::LexicalReplaceVariable - Lexically variable replace using L<PPI> =head1 SYNOPSIS my $replacer = Padre::Task::LexicalReplaceVariable->new( document => $document_obj, location => [ $line, $column ], # the position of *any* occurrence of the variable replacement => '$foo', ); $replacer->schedule; =head1 DESCRIPTION Given a location in the document (line/column), determines the name of the variable at this position, finds where the variable was defined, and B<lexically> replaces all occurrences with another variable. The replacement can either be provided explicitly by the user (using the C<replacement> option) or the user may set the C<to_camel_case> or C<from_camel_case> options. In that case the variable will be converted to/from camel case. With the latter options, C<ucfirst> will force the upper-casing of the first letter (as is typical with global variables). =cut sub process { my $self = shift; my $ppi = shift or return; my $location = $self->{location}; my %opt; $opt{replacement} = $self->{replacement} if defined $self->{replacement}; $opt{to_camel_case} = $self->{to_camel_case} if defined $self->{to_camel_case}; $opt{from_camel_case} = $self->{from_camel_case} if defined $self->{from_camel_case}; $opt{'ucfirst'} = $self->{'ucfirst'}; my $munged = eval { require PPIx::EditorTools::RenameVariable; PPIx::EditorTools::RenameVariable->new->rename( ppi => $ppi, line => $location->[0], column => $location->[1], %opt, ); }; if ($@) { $self->{error} = $@; return; } # Save the results $self->{munged} = $munged->code; $self->{location} = $munged->element->location; return; } 1; __END__ =head1 SEE ALSO This class inherits from C<Padre::Task::PPI>. =head1 AUTHOR Steffen Mueller C<smueller@cpan.org> =head1 COPYRIGHT AND LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/IntroduceTemporaryVariable.pm���������������������������������������������0000644�0001750�0001750�00000004202�12237327555�021520� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::IntroduceTemporaryVariable; use 5.008; use strict; use warnings; use Padre::Task::PPI (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::PPI'; =pod =head1 NAME Padre::Task::IntroduceTemporaryVariable - Introduces a temporary variable using L<PPI> =head1 SYNOPSIS my $tempvarmaker = Padre::Task::IntroduceTemporaryVariable->new( document => $document_obj, start_location => [$line, $column], # or just character position end_location => [$line, $column], # or ppi-style location varname => '$foo', ); $tempvarmaker->schedule; =head1 DESCRIPTION Given a region of code within a statement, replaces that code with a temporary variable. Declares and initializes the temporary variable right above the statement that included the selected expression. Usually, you simply set C<start_position> to what C<< $editor->GetSelectionStart >> returns and C<end_position> to C<< $editor->GetSelectionEnd - 1 >>. =cut sub process { my $self = shift; my $ppi = shift or return; # Transform the document my $munged = eval { require PPIx::EditorTools::IntroduceTemporaryVariable; PPIx::EditorTools::IntroduceTemporaryVariable->new->introduce( ppi => $ppi, start_location => $self->{start_location}, end_location => $self->{end_location}, varname => $self->{varname}, ); }; if ($@) { $self->{error} = $@; return; } # TO DO: passing this back and forth is probably hyper-inefficient, but such is life. $self->{munged} = $munged->code; $self->{location} = $munged->element->location; return; } 1; __END__ =head1 SEE ALSO This class inherits from C<Padre::Task::PPI>. =head1 AUTHOR Steffen Mueller C<smueller@cpan.org> =head1 COPYRIGHT AND LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/FindInFiles.pm������������������������������������������������������������0000644�0001750�0001750�00000011271�12237327555�016351� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::FindInFiles; use 5.008; use strict; use warnings; use File::Spec (); use Padre::Task (); use Padre::Search (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Automatic project integration if ( exists $self->{project} ) { $self->{root} ||= $self->{project}->root; $self->{skip} = $self->{project}->ignore_skip; delete $self->{project}; } # Property defaults unless ( defined $self->{binary} ) { $self->{binary} = 0; } unless ( defined $self->{skip} ) { $self->{skip} = []; } unless ( defined $self->{maxsize} ) { require Padre::Current; $self->{maxsize} = Padre::Current->config->editor_file_size_limit; } # Create the embedded search object unless ( $self->{search} ) { $self->{search} = Padre::Search->new( find_term => $self->{find_term}, find_case => $self->{find_case}, find_regex => $self->{find_regex}, ) or return; } return $self; } sub root { $_[0]->{root}; } ###################################################################### # Padre::Task Methods sub run { require Module::Manifest; require Padre::Wx::Directory::Path; my $self = shift; my $root = $self->{root}; my $output = $self->{output}; my @queue = Padre::Wx::Directory::Path->directory; # Prepare the skip rules my $rule = Module::Manifest->new; $rule->parse( skip => $self->{skip} ); # Recursively scan for files while (@queue) { # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE( __PACKAGE__ . 'task has been cancelled' ) if DEBUG; $self->tell_status; return 1; } my $parent = shift @queue; my @path = $parent->path; my $dir = File::Spec->catdir( $root, @path ); # Read the file list for the directory # NOTE: Silently ignore any that fail. Anything we don't have # permission to see inside of them will just be invisible. opendir DIRECTORY, $dir or next; my @list = sort readdir DIRECTORY; closedir DIRECTORY; # Notify our parent we are working on this directory $self->tell_status( "Searching... " . $parent->unix ); my @children = (); foreach my $file (@list) { my $skip = 0; next if $file =~ /^\.+\z/; next if $file =~ /^\.svn$/; next if $file =~ /^\.git$/; # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE( __PACKAGE__ . 'task has been cancelled' ) if DEBUG; $self->tell_status; return 1; } # Confirm the file still exists and get stat details my $fullname = File::Spec->catdir( $dir, $file ); my @fstat = stat($fullname); unless ( -e _ ) { # The file dissapeared mid-search? next; } # Handle non-files if ( -d _ ) { my $object = Padre::Wx::Directory::Path->directory( @path, $file ); next if $rule->skipped( $object->unix ); push @children, $object; next; } unless ( -f _ ) { warn "Unknown or unsupported file type for $fullname"; next; } # This is a file my $object = Padre::Wx::Directory::Path->file( @path, $file ); next if $rule->skipped( $object->unix ); # Skip if the file is too big if ( $fstat[7] > $self->{maxsize} ) { TRACE("Skipped $fullname: File size $fstat[7] exceeds maximum of $self->{maxsize}") if DEBUG; next; } # Unless specifically told otherwise, only read text files unless ( $self->{binary} or -T _ ) { next; } # Read the entire file open( my $fh, '<', $fullname ) or next; my $buffer = do { local $/; <$fh> }; close $fh; # Is this the correct MIME type if ( $self->{mime} ) { require Padre::MIME; my $type = Padre::MIME->detect( file => $fullname, text => $buffer, ); unless ( defined $type and $type eq $self->{mime} ) { # TRACE("Skipped $fullname: Not a $self->{mime} (got " . ($type || 'undef') . ")") if DEBUG; next; } } # Hand off to the compiled search object my @lines = $self->{search}->match_lines( $buffer, $self->{search}->search_regex, ); next unless @lines; TRACE( "Found " . scalar(@lines) . " matches in " . $fullname ) if DEBUG; # Found results, inform our owner $self->tell_owner( $object, @lines ); # If the task wants manual output capture as well, # then save the result as well. if ($output) { push @$output, [ $object, @lines ]; } } unshift @queue, @children; } # Notify our parent we are finished searching $self->tell_status; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/Eval.pm�������������������������������������������������������������������0000644�0001750�0001750�00000005066�12237327555�015113� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Eval; =pod =head1 NAME Padre::Task::Eval - Task for executing arbitrary code via a string eval =head1 SYNOPSIS my $task = Padre::Task::Eval->new( prepare => '1 + 1', run => 'my $foo = sub { 2 + 3 }; $foo->();', finish => '$_[0]->{prepare}', ); $task->prepare; $task->run; $task->finish; =head1 DESCRIPTION B<Padre::Task::Eval> is a stub class used to implement testing and other miscellaneous functionality. It takes three named string parameters matching each of the three execution phases. When each phase of the task is run, the string will be eval'ed and the result will be stored in the same has key as the source string. If the key does not exist at all, nothing will be executed for that phase. Regardless of the execution result (or the non-execution of the phase) each phase will always return true. However, if the string eval throws an exception it will escape the task object (although when run properly inside of a task handle it should be caught by the handle). =head1 METHODS This class contains now additional methods beyond the defaults provided by the L<Padre::Task> API. =cut use 5.008005; use strict; use warnings; use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; our $AUTOLOAD = undef; sub prepare { # Only optionally override unless ( exists $_[0]->{prepare} ) { return shift->SUPER::prepare(@_); } $_[0]->{prepare} = eval $_[0]->{prepare}; die $@ if $@; return 1; } sub run { # Only optionally override unless ( exists $_[0]->{run} ) { return shift->SUPER::run(@_); } $_[0]->{run} = eval $_[0]->{run}; die $@ if $@; return 1; } sub finish { # Only optionally override unless ( exists $_[0]->{run} ) { return shift->SUPER::finish(@_); } $_[0]->{finish} = eval $_[0]->{finish}; die $@ if $@; return 1; } sub AUTOLOAD { my $self = shift; my $slot = $AUTOLOAD =~ m/^.*::(.*)\z/s; if ( exists $self->{$slot} ) { $self->{$slot} = eval $_[0]->{$slot}; die $@ if $@; } else { die("No such handler '$slot'"); } return 1; } sub DESTROY { } 1; =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/FindVariableDeclaration.pm������������������������������������������������0000644�0001750�0001750�00000003363�12237327555�020716� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::FindVariableDeclaration; use 5.008; use strict; use warnings; use Padre::Task::PPI (); our $VERSION = '1.00'; our @ISA = 'Padre::Task::PPI'; =pod =head1 NAME Padre::Task::FindVariableDeclaration - Finds where a variable was declared using L<PPI> =head1 SYNOPSIS # Find declaration of variable at cursor my $task = Padre::Task::FindVariableDeclaration->new( document => $document_obj, location => [ $line, $column ], # ppi-style location is okay, too ); $task->schedule; =head1 DESCRIPTION Finds out where a variable has been declared. If unsuccessful, a message box tells the user about that glorious fact. If a declaration is found, the cursor will jump to it. =cut sub process { my $self = shift; my $ppi = shift or return; my $location = $self->{location}; my $result = eval { require PPIx::EditorTools::FindVariableDeclaration; PPIx::EditorTools::FindVariableDeclaration->new->find( ppi => $ppi, line => $location->[0], column => $location->[1] ); }; if ($@) { $self->{error} = $@; return; } # If we found it, save the location if ( defined $result ) { $self->{location} = $result->element->location; } return; } 1; __END__ =head1 SEE ALSO This class inherits from C<Padre::Task::PPI>. =head1 AUTHOR Steffen Mueller C<smueller@cpan.org> =head1 COPYRIGHT AND LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/Browser.pm����������������������������������������������������������������0000644�0001750�0001750�00000001412�12237327555�015636� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Browser; use 5.008; use strict; use warnings; use threads; use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; sub prepare { my $self = shift; $self->{method} ||= 'error'; return 0 if $self->{method} eq 'error'; return 1; } sub run { my $self = shift; my $method = $self->{method}; require Padre::Browser; my $browser = Padre::Browser->new; unless ( $browser->can($method) ) { die "Browser does not support '$method'"; } $self->{result} = $browser->$method( $self->{document}, $self->{args} ); return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/SLOC.pm�������������������������������������������������������������������0000644�0001750�0001750�00000007462�12237327555�014766� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::SLOC; use 5.008; use strict; use warnings; use File::Spec (); use Padre::Task (); use Padre::SLOC (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Automatic project integration if ( exists $self->{project} ) { $self->{root} ||= $self->{project}->root; $self->{skip} = $self->{project}->ignore_skip; delete $self->{project}; } # Property defaults unless ( defined $self->{binary} ) { $self->{binary} = 0; } unless ( defined $self->{skip} ) { $self->{skip} = []; } unless ( defined $self->{maxsize} ) { require Padre::Current; $self->{maxsize} = Padre::Current->config->editor_file_size_limit; } return $self; } sub root { $_[0]->{root}; } ###################################################################### # Padre::Task Methods sub run { require Module::Manifest; require Padre::Wx::Directory::Path; my $self = shift; my $root = $self->{root}; my $output = $self->{output}; my @queue = Padre::Wx::Directory::Path->directory; # Prepare the skip rules my $rule = Module::Manifest->new; $rule->parse( skip => $self->{skip} ); # Recursively scan for files while (@queue) { # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE( __PACKAGE__ . ' task has been cancelled' ) if DEBUG; $self->tell_status; return 1; } my $parent = shift @queue; my @path = $parent->path; my $dir = File::Spec->catdir( $root, @path ); # Read the file list for the directory # NOTE: Silently ignore any that fail. Anything we don't have # permission to see inside of them will just be invisible. opendir DIRECTORY, $dir or next; my @list = sort readdir DIRECTORY; closedir DIRECTORY; # Notify our parent we are working on this directory $self->tell_status( "Searching... " . $parent->unix ); my @children = (); foreach my $file (@list) { my $skip = 0; next if $file =~ /^\.+\z/; next if $file =~ /^\.svn$/; next if $file =~ /^\.git$/; # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE( __PACKAGE__ . ' task has been cancelled' ) if DEBUG; $self->tell_status; return 1; } # Confirm the file still exists and get stat details my $fullname = File::Spec->catdir( $dir, $file ); my @fstat = stat($fullname); unless ( -e _ ) { # The file dissapeared mid-search? next; } # Handle non-files if ( -d _ ) { my $object = Padre::Wx::Directory::Path->directory( @path, $file ); next if $rule->skipped( $object->unix ); push @children, $object; next; } unless ( -f _ ) { warn "Unknown or unsupported file type for $fullname"; next; } # This is a file my $object = Padre::Wx::Directory::Path->file( @path, $file ); next if $rule->skipped( $object->unix ); # Skip if the file is too big if ( $fstat[7] > $self->{maxsize} ) { TRACE("Skipped $fullname: File size $fstat[7] exceeds maximum of $self->{maxsize}") if DEBUG; next; } # Unless specifically told otherwise, only read text files unless ( $self->{binary} or -T _ ) { next; } # Scan the code for this file my $sloc = Padre::SLOC->new; $sloc->add_file($fullname) or next; # Found results, inform our owner $self->tell_owner( $object, $sloc ); # If the task wants totals calculated in the # background then do them now. $output->add($sloc) if $output; } unshift @queue, @children; } # Notify our parent we are finished searching $self->tell_status; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/ReplaceInFiles.pm���������������������������������������������������������0000644�0001750�0001750�00000012017�12237327555�017043� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::ReplaceInFiles; use 5.008; use strict; use warnings; use File::Spec (); use Time::HiRes (); use Padre::Search (); use Padre::Task (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Automatic project integration if ( exists $self->{project} ) { $self->{root} ||= $self->{project}->root; $self->{skip} = $self->{project}->ignore_skip; delete $self->{project}; } # Property defaults unless ( defined $self->{dryrun} ) { $self->{dryrun} = 0; } unless ( defined $self->{binary} ) { $self->{binary} = 0; } unless ( defined $self->{skip} ) { $self->{skip} = []; } unless ( defined $self->{maxsize} ) { require Padre::Current; $self->{maxsize} = Padre::Current->config->editor_file_size_limit; } # Create the embedded search object unless ( $self->{search} ) { $self->{search} = Padre::Search->new( find_term => $self->{find_term}, find_case => $self->{find_case}, find_regex => $self->{find_regex}, replace_term => $self->{replace_term}, ) or return; } return $self; } sub root { $_[0]->{root}; } ###################################################################### # Padre::Task Methods sub run { require Module::Manifest; require Padre::Wx::Directory::Path; my $self = shift; my $root = $self->{root}; my @queue = Padre::Wx::Directory::Path->directory; # Prepare the skip rules my $rule = Module::Manifest->new; $rule->parse( skip => $self->{skip} ); # Recursively scan for files while (@queue) { # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE('Padre::Wx::Directory::Search task has been cancelled') if DEBUG; $self->tell_status; return 1; } my $parent = shift @queue; my @path = $parent->path; my $dir = File::Spec->catdir( $root, @path ); # Read the file list for the directory # NOTE: Silently ignore any that fail. Anything we don't have # permission to see inside of them will just be invisible. opendir DIRECTORY, $dir or next; my @list = sort readdir DIRECTORY; closedir DIRECTORY; # Notify our parent we are working on this directory $self->tell_status( "Searching... " . $parent->unix ); my @children = (); foreach my $file (@list) { my $skip = 0; next if $file =~ /^\.+\z/; next if $file =~ /^\.svn$/; next if $file =~ /^\.git$/; # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE('Padre::Wx::Directory::Search task has been cancelled') if DEBUG; $self->tell_status; return 1; } # Confirm the file still exists and get stat details my $fullname = File::Spec->catdir( $dir, $file ); my @fstat = stat($fullname); unless ( -e _ ) { # The file dissapeared mid-search? next; } # Handle non-files if ( -d _ ) { my $object = Padre::Wx::Directory::Path->directory( @path, $file ); next if $rule->skipped( $object->unix ); push @children, $object; next; } unless ( -f _ ) { warn "Unknown or unsupported file type for $fullname"; next; } unless ( -w _ ) { warn "No write permissions for $fullname"; next; } # This is a file my $object = Padre::Wx::Directory::Path->file( @path, $file ); next if $rule->skipped( $object->unix ); # Skip if the file is too big if ( $fstat[7] > $self->{maxsize} ) { TRACE("Skipped $fullname: File size $fstat[7] exceeds maximum of $self->{maxsize}") if DEBUG; next; } # Unless specifically told otherwise, only read text files unless ( $self->{binary} or -T _ ) { next; } # Read the entire file open( my $fh, '<', $fullname ) or next; binmode($fh); my $buffer = do { local $/; <$fh> }; close $fh; # Is this the correct MIME type if ( $self->{mime} ) { require Padre::MIME; my $type = Padre::MIME->detect( file => $fullname, text => $buffer, ); unless ( defined $type and $type eq $self->{mime} ) { TRACE( "Skipped $fullname: Not a $self->{mime} (got " . ( $type || 'undef' ) . ")" ) if DEBUG; next; } } # Allow the search object to do the main work local $@; my $count = eval { $self->{search}->replace_all( \$buffer ) }; if ($@) { TRACE("Replace crashed in $fullname") if DEBUG; $self->tell_owner( $object, -1 ); next; } next unless $count; # Save the changed file TRACE("Replaced $count matches in $fullname") if DEBUG; unless ( $self->{dryrun} ) { open( my $fh, '>', $fullname ) or next; binmode($fh); local $/; $fh->print($buffer); close $fh; } # Made changes, inform out owner $self->tell_owner( $object, $count ); } unshift @queue, @children; } # Notify our parent we are finished searching $self->tell_status; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/VCS.pm��������������������������������������������������������������������0000644�0001750�0001750�00000011320�12237327555�014645� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::VCS; use 5.008005; use strict; use warnings; use Padre::Task (); use Padre::Util (); use File::Temp (); use File::Spec (); use Padre::Logger; use Try::Tiny; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; use constant { VCS_STATUS => 'status', VCS_UPDATE => 'update', VCS_ADD => 'add', VCS_DELETE => 'delete', VCS_REVERT => 'revert', VCS_COMMIT => 'commit', }; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Assert required document parameter unless ( Params::Util::_INSTANCE( $self->{document}, 'Padre::Document' ) ) { die "Failed to provide a document to the VCS task\n"; } # Assert required command parameter unless ( defined $self->{command} ) { die "Failed to provide a command to the VCS task\n"; } # Remove the document entirely as we do this, # as it won't be able to survive serialisation. my $document = delete $self->{document}; # Obtain project's Version Control System (VCS) $self->{vcs} = $document->project->vcs; # Obtain document project dir $self->{project_dir} = $document->project_dir; return $self; } ###################################################################### # Padre::Task Methods sub run { my $self = shift; # Create empty model $self->{model} = []; # Pull things off the task so we won't need to serialize # it back up to the parent Wx thread at the end of the task. return unless $self->{command}; my $command = delete $self->{command}; return unless $self->{vcs}; my $vcs = $self->{vcs}; return unless $self->{project_dir}; my $project_dir = delete $self->{project_dir}; # bail out if a version control system is not currently supported return unless ( $vcs eq Padre::Constant::SUBVERSION or $vcs eq Padre::Constant::GIT ); if ( $command eq VCS_STATUS ) { if ( $vcs eq Padre::Constant::SUBVERSION ) { $self->{model} = $self->_find_svn_status($project_dir); } elsif ( $vcs eq Padre::Constant::GIT ) { $self->{model} = $self->_find_git_status($project_dir); } else { die VCS_STATUS . " is not supported for $vcs\n"; } } else { die "$command is not currently supported\n"; } return 1; } sub _find_svn_status { my ( $self, $project_dir ) = @_; my @model = (); # Find the svn command line my $svn = File::Which::which('svn') or return \@model; # Handle spaces in executable path under win32 $svn = qq{"$svn"} if Padre::Constant::WIN32; #Now uses run in dir my $svn_info_ref = Padre::Util::run_in_directory_two( cmd => "$svn --no-ignore --verbose status", dir => $project_dir, option => '0' ); my %svn_info = %{$svn_info_ref}; if ( $svn_info{output} ) { for my $line ( split /^/, $svn_info{output} ) { # Remove newlines and an extra CR (carriage return) chomp($line); $line =~ s/\r//g; if ( $line =~ /^(\?|I)\s+(.+?)$/ ) { # Handle unversioned and ignored objects push @model, { status => $1, revision => '', author => '', path => $2, fullpath => File::Spec->catfile( $project_dir, $2 ), }; } elsif ( $line =~ /^(.)\s+\d+\s+(\d+)\s+(\w+)\s+(.+?)$/ ) { # Handle other cases push @model, { status => $1, revision => $2, author => $3, path => $4, fullpath => File::Spec->catfile( $project_dir, $4 ), }; } else { # Log the event but do not do anything drastic # about it TRACE("Cannot understand '$line'") if DEBUG; } } } return \@model; } sub _find_git_status { my ( $self, $project_dir ) = @_; my @model = (); # Find the git command line my $git = File::Which::which('git') or return \@model; # Handle spaces in executable path under win32 $git = qq{"$git"} if Padre::Constant::WIN32; #Now uses run in dir my $git_info_ref = Padre::Util::run_in_directory_two( cmd => "$git status --short", dir => $project_dir, option => '0' ); my %git_info = %{$git_info_ref}; if ( $git_info{output} ) { for my $line ( split /^/, $git_info{output} ) { chomp($line); if ( $line =~ /^(..)\s+(.+?)(?:\s\->\s(.+?))?$/ ) { # Handle stuff my $status = $1; my $path = defined $3 ? $3 : $2; $status =~ s/(^\s+)|(\s+$)//; $status =~ s/\?\?/?/; push @model, { status => $status, revision => '', author => '', path => $path, fullpath => File::Spec->catfile( $project_dir, $path ), }; } else { # Log the event but do not do anything drastic # about it TRACE("Cannot understand '$line'") if DEBUG; } } } return \@model; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/File.pm�������������������������������������������������������������������0000644�0001750�0001750�00000005632�12237327555�015102� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::File; =pod =head1 NAME Padre::Task::File - File operations in the background =head1 SYNOPSIS # Recursively delete Padre::Task::File->new( remove => 'C:\foo\bar\baz', )->schedule; =head1 DESCRIPTION The L<File::Remove> CPAN module is a specialised package for deleting files or recursively deleting directories. As well as providing the basic support for recursive deletion, it adds several other important features such as removing readonly limits on the fly, taking ownership of files if permitted, and moving the current working directory out of the deletion path so that directory cursors won't block the deletion (a particular problem on Windows). The task takes the name of a single file or directory to delete (for now), and proceeds to attempt a recursive deletion of the file or directory via the L<File::Remove> C<remove> method. In the future, this module will also support more types of file operations and support the execution of a list of operations. =head1 METHODS =cut use 5.008; use strict; use warnings; use File::Spec (); use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor =pod =head2 new my $task = Padre::Task::File->new( remove => '/foo/bar/baz', ); Creates a new deletion task. Takes a single parameter C<remove> which B<must> be an absolute path to the file to delete (as the "current directory" may change between the time the removal task is created and when it is executed). =cut sub new { my $self = shift->SUPER::new(@_); # Check the path to remove unless ( defined $self->remove ) { die "Missing or invalid path"; } unless ( File::Spec->file_name_is_absolute( $self->remove ) ) { die "File path is not absolute"; } return $self; } =pod =head2 remove The C<remove> accessor returns the absolute path of the file or directory the task will try to delete (or tried to delete in the case of completed tasks). =cut sub remove { $_[0]->{remove}; } ###################################################################### # Padre::Task Methods sub run { my $self = shift; # Do not check for the path existing at prepare time as this involves # a blocking stat call. Better to just pass it through and do the file # existance check and any resulting shortcuts in the background. my $path = $self->remove; unless ( -e $path ) { return 1; } # Hand off to the specialist module require File::Remove; $self->{removed} = [ File::Remove::remove( \1, $path ) ]; return 1; } 1; =pod =head1 SEE ALSO L<Padre>, L<Padre::Task>, L<File::Remove> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The full text of the license can be found in the LICENSE file included with this module. =cut ������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/PPI.pm��������������������������������������������������������������������0000644�0001750�0001750�00000004537�12237327555�014656� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::PPI; use 5.008; use strict; use warnings; use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; =pod =head1 NAME Padre::Task::PPI - Generic L<PPI> background processing task =head1 SYNOPSIS package Padre::Task::MyFancyTest; use strict; use base 'Padre::Task::PPI'; # Will be called after ppi-parsing: sub process { my $self = shift; my $ppi = shift or return; my $result = ...expensive_calculation_using_ppi... $self->{result} = $result; return; } 1; # elsewhere: Padre::Task::MyFancyTest->new( text => 'parse-this!', )->schedule; =head1 DESCRIPTION This is a base class for all tasks that need to do expensive calculations using L<PPI>. The class will setup a L<PPI::Document> object from a given piece of code and then call the C<process_ppi> method on the task object and pass the L<PPI::Document> as first argument. You can either let C<Padre::Task::PPI> fetch the Perl code for parsing from the current document or specify it as the "C<text>" parameter to the constructor. Note: If you don't supply the document text and there is no currently open document to fetch it from, C<new()> will simply return the empty list instead of a C<Padre::Task::PPI> object. =cut sub new { my $self = shift->SUPER::new(@_); if ( $self->{document} ) { $self->{text} = delete( $self->{document} )->text_get; } return $self; } sub run { my $self = shift; my $text = delete $self->{text}; # Parse the document and hand off to the task require PPI::Document; $self->process( PPI::Document->new( \$text ) ); return 1; } # Default null processing sub process { return 1; } 1; __END__ =head1 SEE ALSO This class inherits from C<Padre::Task> and its instances can be scheduled using C<Padre::TaskManager>. The transfer of the objects to and from the worker threads is implemented with L<Storable>. =head1 AUTHOR Steffen Mueller C<smueller@cpan.org> =head1 COPYRIGHT AND LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/Syntax.pm�����������������������������������������������������������������0000644�0001750�0001750�00000002754�12237327555�015513� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Syntax; use 5.008; use strict; use warnings; use Carp (); use Params::Util (); use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Just convert the document to text for now. # Later, we'll suck in more data from the project and # other related documents to do syntax checks more awesomely. unless ( Params::Util::_INSTANCE( $self->{document}, 'Padre::Document' ) ) { die "Failed to provide a document to the syntax check task"; } # Remove the document entirely as we do this, # as it won't be able to survive serialisation. my $document = delete $self->{document}; $self->{text} = $document->text_get; $self->{project} = $document->project_dir; $self->{filename} = $document->filename; return $self; } ###################################################################### # Padre::Task Methods sub run { my $self = shift; # Pull the text off the task so we won't need to serialize # it back up to the parent Wx thread at the end of the task. my $text = delete $self->{text}; # Get the syntax model object $self->{model} = $self->syntax($text); return 1; } sub syntax { return {}; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������Padre-1.00/lib/Padre/Task/RecentFiles.pm������������������������������������������������������������0000644�0001750�0001750�00000004722�12237327555�016425� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::RecentFiles; use 5.008; use strict; use warnings; use Padre::Task (); use Padre::Constant (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Check params unless ( $self->{want} ) { die "Missing or invalid want param"; } return $self; } ###################################################################### # Padre::Task Methods # Fetch the state data at the last moment, to maximise accuracy. sub prepare { TRACE( $_[0] ) if DEBUG; my $self = shift; # Save the list of open files require Padre::Current; $self->{open} = [ grep { defined $_ } map { $_->filename } Padre::Current->main->documents ]; # Load the last 100 recent files require Padre::DB; $self->{history} = Padre::DB::History->recent( 'files', 100 ); return 1; } sub run { TRACE( $_[0] ) if DEBUG; my $self = shift; # Index the open files my %skip = map { $_ => 1 } @{ $self->{open} }; # Iterate through our candidates my @recent = (); foreach my $file ( @{ $self->{history} } ) { next if $skip{$file}; # TRACE("Checking $file\n") if DEBUG; # Abort the task if we've been cancelled if ( $self->cancelled ) { TRACE( __PACKAGE__ . ' task cancelled' ) if DEBUG; return 1; } if (Padre::Constant::WIN32) { # NOTE: Does anyone know a smarter way to do this? next unless -f $file; } else { # Try a non-blocking "-f" (doesn't work in all cases) # File does not exist or is not accessable. # NOTE: O_NONBLOCK does not exist on Windows, kaboom require Fcntl; sysopen( my $fh, $file, Fcntl::O_RDONLY | Fcntl::O_NONBLOCK ) or next; close $fh; } # This file looks good, do we have enough? push @recent, $file; if ( @recent >= $self->{want} ) { last; } } # Completed without crashing or failure, return the list $self->{recent} = \@recent; return 1; } sub finish { TRACE( $_[0] ) if DEBUG; my $self = shift; # If we ran successfully, hand off the list of known-good files # to the menu to populate it. if ( $self->{recent} ) { require Padre::Current; Padre::Current->main->menu->file->refill_recent( $self->{recent} ); } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������Padre-1.00/lib/Padre/Task/Diff.pm�������������������������������������������������������������������0000644�0001750�0001750�00000013602�12237327555�015067� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Diff; use 5.010; use strict; use warnings; use Padre::Task (); use Padre::Util (); use Padre::Util::SVN (); use Algorithm::Diff (); use Encode (); use File::Basename (); use File::Spec (); use File::Which (); use File::Temp (); use Params::Util (); use Padre::Logger qw(TRACE); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Constructor sub new { my $self = shift->SUPER::new(@_); # Just convert the document to text for now. # Later, we'll suck in more data from the project and # other related documents to do differences calculation more awesomely. unless ( Params::Util::_INSTANCE( $self->{document}, 'Padre::Document' ) ) { die "Failed to provide a document to the diff task\n"; } # Remove the document entirely as we do this, # as it won't be able to survive serialisation. my $document = delete $self->{document}; # Obtain document full filename my $file = $document->{file}; $self->{filename} = $file ? $file->filename : undef; # Obtain project's Version Control System (VCS) if ( $document->project ) { $self->{vcs} = $document->project->vcs; } # Obtain document text $self->{text} = $document->text_get; # Obtain document encoding scheme $self->{encoding} = $document->encoding; # Obtain document project dir $self->{project_dir} = $document->project_dir; return $self; } ###################################################################### # Padre::Task Methods sub run { my $self = shift; # Pull the text off the task so we won't need to serialize # it back up to the parent Wx thread at the end of the task. my $text = delete $self->{text}; my $vcs = delete $self->{vcs}; my $filename = delete $self->{filename}; my $project_dir = delete $self->{project_dir}; my $encoding = delete $self->{encoding}; # Compare between VCS and local buffer document my $data; $data = $self->_find_vcs_diff( $vcs, $project_dir, $filename, $text, $encoding ) if $vcs; unless ($data) { # Compare between saved and current buffer document $data = $self->_find_local_diff( $text, $filename, $encoding ); } $self->{data} = $data; return 1; } # Find local differences between current unsaved document and saved document sub _find_local_diff { my ( $self, $text, $filename, $encoding ) = @_; my $content = $filename ? _slurp( $filename, $encoding ) : undef; my $data = []; if ( $content and $text ) { $data = $self->_find_diffs( $$content, $text ); } return $data; } # Find differences between VCS versioned document and current document sub _find_vcs_diff { my ( $self, $vcs, $project_dir, $filename, $text, $encoding ) = @_; return $self->_find_svn_diff( $filename, $text, $encoding ) if $vcs eq Padre::Constant::SUBVERSION; return $self->_find_git_diff( $project_dir, $filename, $text, $encoding ) if $vcs eq Padre::Constant::GIT; #TODO implement the rest of the VCS like mercurial, bazaar TRACE("Unhandled $vcs") if DEBUG; return; } # Generate a fast diff between the editor buffer and the original # file in the .svn folder # Contributed by submersible_toaster sub _find_svn_diff { my ( $self, $filename, $text, $encoding ) = @_; # Find the svn command line my $svn = File::Which::which('svn') or return; # Handle spaces in svn executable path under win32 $svn = qq{"$svn"} if Padre::Constant::WIN32; my ( $file, $dir, $suffix ) = File::Basename::fileparse($filename); TRACE("dir: $dir") if DEBUG; my $svn_client_info_ref = Padre::Util::run_in_directory_two( cmd => $svn . ' cat ' . $filename, dir => $dir, option => '0' ); my $svn_output = $svn_client_info_ref->{output}; TRACE("svn output: $svn_output") if DEBUG; return $self->_find_diffs( $svn_output, $text ); } # Reads the contents of a file, and decode it using document encoding scheme sub _slurp { my ( $file, $encoding ) = @_; open my $fh, '<', $file or return ''; binmode $fh; local $/ = undef; my $content = <$fh>; close $fh; # Decode the content $content = Encode::decode( $encoding, $content ); return \$content; } # Find differences between git versioned document and current document sub _find_git_diff { my ( $self, $project_dir, $filename, $text, $encoding ) = @_; # Create a temporary file for standard output redirection my $out = File::Temp->new( UNLINK => 1 ); $out->close; # Create a temporary file for standard error redirection my $err = File::Temp->new( UNLINK => 1 ); $err->close; # Find the git command line my $git = File::Which::which('git') or return; # Handle spaces in git executable path under win32 $git = qq{"$git"} if Padre::Constant::WIN32; # 'git --no-pager show' command my $path = File::Spec->abs2rel( $filename, $project_dir ); $path =~ s/\\/\//g if Padre::Constant::WIN32; my @cmd = ( $git, '--no-pager', 'show', "HEAD:" . $path, '1>' . $out->filename, '2>' . $err->filename, ); TRACE("git command: @cmd") if DEBUG; # We need shell redirection (list context does not give that) # Run command in directory Padre::Util::run_in_directory( join( ' ', @cmd ), $project_dir ); # Slurp git command standard input and output my $stdout = _slurp( $out->filename, $encoding ); my $stderr = _slurp( $err->filename, $encoding ); if ( defined($stderr) and ( $$stderr eq '' ) and defined($stdout) ) { TRACE("git stdout: $$stdout") if DEBUG; return $self->_find_diffs( $$stdout, $text ); } return; } # Find differences between original text and unsaved text sub _find_diffs { my ( $self, $original_text, $unsaved_text ) = @_; my @original_seq = split /^/, $original_text; my @unsaved_seq = split /^/, $unsaved_text; my @diff = Algorithm::Diff::diff( \@original_seq, \@unsaved_seq ); return \@diff; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/Addition.pm���������������������������������������������������������������0000644�0001750�0001750�00000001172�12237327555�015751� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::Addition; use 5.008005; use strict; use warnings; use Padre::Task (); our $VERSION = '1.00'; our @ISA = 'Padre::Task'; sub new { shift->SUPER::new( prepare => 0, run => 0, finish => 0, @_, ); } sub prepare { $_[0]->{prepare}++; return 1; } sub run { my $self = shift; $self->{run}++; $self->{z} = $self->{x} + $self->{y}; return 1; } sub finish { $_[0]->{finish}++; return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/BackupUnsaved.pm����������������������������������������������������������0000644�0001750�0001750�00000002664�12237327555�016760� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::BackupUnsaved; use 5.008; use strict; use warnings; use File::Spec (); use Padre::Task (); use Padre::Constant (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task'; ###################################################################### # Padre::Task Methods # Fetch the state data at the last moment, to maximise accuracy. sub prepare { TRACE( $_[0] ) if DEBUG; my $self = shift; my $new_count; # Save the list of open files require Padre::Current; $self->{changes} = { map { ( $_->filename || 'NEW' . ( ++$new_count ) ) => $_->text_get, } grep { $_->is_modified } Padre::Current->main->documents }; return 1; } sub run { TRACE( $_[0] ) if DEBUG; my $self = shift; my $filename = File::Spec->catfile( Padre::Constant::CONFIG_DIR, "unsaved_$$.storable", ); # Remove the (bulky) changes from the task object so it # won't need to be sent back up to the main thread. my $changes = delete $self->{changes}; if (%$changes) { # Save the content (quickly) require Storable; Storable::lock_nstore( $changes, $filename ); } else { # No changed files, remove backup file require File::Remove; File::Remove::remove($filename) if -e $filename; } return 1; } 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������Padre-1.00/lib/Padre/Task/FindUnmatchedBrace.pm�����������������������������������������������������0000644�0001750�0001750�00000003166�12237327555�017671� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Task::FindUnmatchedBrace; use 5.008; use strict; use warnings; use Padre::Task::PPI (); use Padre::Logger; our $VERSION = '1.00'; our @ISA = 'Padre::Task::PPI'; =pod =head1 NAME Padre::Task::FindUnmatchedBrace - C<PPI> based unmatched brace finder =head1 SYNOPSIS my $task = Padre::Task::FindUnmatchedBrace->new( document => $padre_document, ); $task->schedule; =head1 DESCRIPTION Finds the location of unmatched braces in a C<Padre::Document::Perl>. If there is no unmatched brace, a message box tells the user about that glorious fact. If there is one, the cursor will jump to it. =cut sub process { TRACE('process') if DEBUG; my $self = shift; my $ppi = shift or return; my $result = eval { require PPIx::EditorTools::FindUnmatchedBrace; PPIx::EditorTools::FindUnmatchedBrace->new->find( ppi => $ppi ); }; if ($@) { $self->{error} = $@; return; } # An undef brace throws a die here. # undef = no error found. if ( defined $result ) { # Remember for gui update $self->{location} = $result->element->location; } return; } 1; __END__ =pod =head1 SEE ALSO This class inherits from C<Padre::Task::PPI>. =head1 AUTHOR Steffen Mueller C<smueller@cpan.org> =head1 COPYRIGHT AND LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre/Delta.pm�����������������������������������������������������������������������0000644�0001750�0001750�00000022544�12237327555�014353� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre::Delta; =pod =head1 NAME Padre::Delta - A very simple diff object that can be applied to editors fast =head1 SYNOPSIS my $editor = Padre::Current->editor; my $from = $editor->GetText; my $to = transform_function($from); Padre::Delta->from_scalars( \$from => \$to )->to_editor($editor); =head1 DESCRIPTION As a refactoring IDE many different modules and tools may wish to calculate changes to a document in the background and then apply the changes in the foreground. B<Padre::Delta> objects provide a mechanism for defining change to an editor, with the representation stored in a way that is extremely well aligned with the L<Padre::Wx::Editor> and L<Wx::Scintilla> APIs. By doing as much preliminary calculations as possible in the background and passing a Padre::Delta object back to the parent, the amount of time spent blocking in the foreground is kept to an absolute minimum. =head1 METHODS =cut use 5.008; use strict; use warnings; our $VERSION = '1.00'; ###################################################################### # Constructors =pod # Alter a document by line range, in loose form my $delta1 = Padre::Delta->new( 'line', [ 1, 1, 'Content' ], # Insert a single line [ 4, 3, '' ], # Remove a single line [ 6, 9, 'Alternate' ], # Replace three lines with one )->tidy; # Alter a document by character range in tight form my $delta2 = Padre::Delta->new( 'position', [ 35, 37, 'fghjkl' ], # Replace two characters with six [ 23, 27, '' ], # Remove four characters [ 12, 12, 'abcd' ], # Insert four characters ); The C<new> constructor takes a replacement mode and a list of targets and returns the delta object, which can then be applied to a C<SCALAR> reference of L<Padre::Wx::Editor> object. The first parameter should be the replacement mode. This will be either C<'line'> for line range deltas as per the F<diff> program, or C<'position'> for character position range deltas which operate at a lower level and directly on top of the position system of L<Wx::Scintilla>. After the replacement mode, the constructor is provided with an arbitrarily sized list of replacement targets. Each replacement target should be an C<ARRAY> reference containing three elements which will be the start of the range to be removed, the end of the range to be removed, and the text to replace the range with. The start of the range must always be a lower value than the end of the range. While providing a high to low range may incidentall work on some operating systems, on others it can cause L<Wx::Scintilla> to segfault. Each replacement target will both remove existing content and replace it with new content. To achieve a simple insert, both range positions should be set to the same value at the position you wish to insert at. To achieve a simple deletion the replacement string should be set to the null string. The ordering of the replacement target is critically important. When the changes applied they will always be made naively and in the same order as supplied to the constructor. Because a change early in the document will alter the positions of all content after it, you should be very careful to ensure that your change makes sense if applied in the supplied order. If the positions of your replacement targets are not inherently precalculated to adjust for content changes, you should supply your changes from the bottom of the document upwards. Returns the new L<Padre::Delta> object. =cut sub new { my $class = shift; return bless { mode => shift, targets => [@_], }, $class; } =pod =head2 mode The C<mode> accessor indicates if the replacement will be done using line numbers or character positions. Returns C<'line'> or C<'position'>. =cut sub mode { $_[0]->{mode}; } =pod =head2 null The C<null> method returns true if the delta contains zero changes to the document and thus has no effect, or false if the delta contains any changes to the document. The ability to create null deltas allows refactoring to indicate a successful transform resulting in no changes to the current document, as opposed to some other response indicating a failure to apply the transform or similar response. =cut sub null { !scalar @{ $_[0]->{targets} }; } =pod =head2 from_diff my $delta = Padre::Delta->from_diff( Algorithm::Diff::diff( \@from => \@to ) ); The C<from_diff> method takes a list of hunk structures as returned by the L<Algorithm::Diff> function C<diff> and creates a new delta that will apply that diff to a document. Returns a new L<Padre::Delta> object. =cut sub from_diff { my $class = shift; my @targets = (); # Build the series of target replacements my $delta = 0; while (@_) { my $hunk = shift; foreach my $change (@$hunk) { my $previous = $targets[-1]; my $operation = $change->[0]; my $pos = $change->[1]; if ( $operation eq '-' ) { my $start = $pos + $delta--; if ( $previous and $previous->[1] == $pos ) { $previous->[1]++; next; } push @targets, [ $start, $start + 1, '' ]; next; } if ( $operation eq '+' ) { my $text = $change->[2] . "\n"; if ( $previous and $previous->[1] == $pos ) { $previous->[2] .= $text; } else { push @targets, [ $pos, $pos, $text ]; } $delta++; next; } die "Unknown operation: '$operation'"; } } return $class->new( 'line', @targets ); } =pod =head2 from_scalars my $delta = Padre::Delta->from_scalars( \$from => \$to ); The C<from_scalars> method takes a pair of documents "from" and "to" and creates a L<Padre::Delta> object that when applied to document "from" will convert it into document "to". The documents are provided as SCALAR references to avoid the need for superfluous copies of what may be relatively large strings. Returns a new L<Padre::Delta> object. =cut sub from_scalars { my $self = shift; # Split the scalar refs into lines my @from = split /\n/, ${ shift() }; my @to = split /\n/, ${ shift() }; # Diff the two line sets require Algorithm::Diff; my @diff = Algorithm::Diff::diff( \@from => \@to ); # Hand off to the diff-based constructor return $self->from_diff(@diff); } ###################################################################### # Main Methods =pod =head2 tidy Padre::Delta->new( line => @lines )->tidy->to_editor($editor); The C<tidy> method is provided as a convenience for situations where the quality of the replacement targets passed to the constructor is imperfect. To ensure that changes are applied quickly and editor objects are locked for the shortest time possible, the replacement targets in the delta are considered to have an inherent order and are always applied naively. For situations where the replacement targets do B<not> have an inherent order, applying them in the order provided will result in a corrupted transform. Calling tidy on a delta object will correct ranges that are not provided in low to high order and sort them so changes are applied from the bottom of the document upwards to avoid document corruption. Returns the same L<Padre::Delta> object as a convenience so that the tidy method can be used in changed calls as demonstrated above. =cut sub tidy { my $self = shift; my $targets = $self->{targets}; # Correct out-of-order ranges foreach my $t (@$targets) { next unless $t->[0] > $t->[1]; @$t = ( $t->[1], $t->[0], $t->[2] ); } # Sort from bottom to top @$targets = sort { $b->[0] <=> $a->[0] } @$targets; return $self; } =pod =head2 to_editor my $changes = $delta->to_editor($editor); The C<to_editor> method applies the changes in a delta object to a L<Padre::Wx::Editor> instance. The changes are applied in the most simple and direct manner possible, wrapped in a single Undo action for easy of reversion, and in an update locker for speed. Return the number of changes made to the text contained in the editor, which may be zero in the case of a null delta. =cut sub to_editor { my $self = shift; # Shortcut if nothing to do return 0 if $self->null; # Prepare to apply to the editor my $editor = shift; my $mode = $self->{mode}; my $targets = $self->{targets}; my $lock = $editor->lock_update; if ( $mode eq 'line' ) { # Apply positions based on lines $editor->BeginUndoAction; foreach my $target (@$targets) { $editor->SetTargetStart( $editor->PositionFromLine( $target->[0] ) ); $editor->SetTargetEnd( $editor->PositionFromLine( $target->[1] ) ); $editor->ReplaceTarget( $target->[2] ); } $editor->EndUndoAction; } elsif ( $mode eq 'position' ) { # Apply positions based on raw character positions $editor->BeginUndoAction; foreach my $target (@$targets) { $editor->SetTargetStart( $target->[0] ); $editor->SetTargetEnd( $target->[1] ); $editor->ReplaceTarget( $target->[2] ); } $editor->EndUndoAction; } return scalar @$targets; } =pod =head1 COPYRIGHT & LICENSE Copyright 2008-2013 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut 1; # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/lib/Padre.pm�����������������������������������������������������������������������������0000644�0001750�0001750�00000047614�12237327555�013327� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Padre; # See POD at end for documentation use 5.008005; use strict; use warnings; use utf8; # Non-Padre modules we need in order to do the single-instance # check should be loaded early to simplify the load order. use version (); use Carp (); use Cwd (); use File::Spec (); use File::HomeDir (); use Scalar::Util (); use List::Util (); use YAML::Tiny (); use DBI (); use DBD::SQLite (); our $VERSION = '1.00'; our $COMPATIBLE = '0.95'; # Since everything is used OO-style, we will be require'ing # everything other than the bare essentials use Padre::Constant (); use Padre::Config (); use Padre::DB (); use Padre::Logger; # Generate faster accessors use Class::XSAccessor 1.13 { getters => { original_cwd => 'original_cwd', opts => 'opts', config => 'config', task_manager => 'task_manager', plugin_manager => 'plugin_manager', project_manager => 'project_manager', sync_manager => 'sync_manager', }, accessors => { actions => 'actions', shortcuts => 'shortcuts', instance_id => 'instance_id', }, }; sub import { unless ( $_[1] and $_[1] eq ':everything' ) { return; } # Find the location of Padre.pm my $padre = $INC{'Padre.pm'}; my $parent = substr( $padre, 0, -3 ); # Find everything under Padre:: with a matching version, # which almost certainly means it is part of the main Padre release. require File::Find::Rule; require Padre::Util; my @children = grep { not $INC{$_} } map {"Padre/$_->[0]"} grep { defined( $_->[1] ) and $_->[1] eq $VERSION } map { [ $_, Padre::Util::parse_variable( File::Spec->catfile( $parent, $_ ) ) ] } File::Find::Rule->name('*.pm')->file->relative->in($parent); # Load all of them (ignoring errors) my $loaded = 0; my %skip = map { $_ => 1 } qw{ Padre/CPAN.pm Padre/Test.pm }; if (Padre::Constant::WIN32) { $skip{'Padre/Util/Win32.pm'} = 1; } foreach my $child (@children) { # Evil modules we should avoid next if $skip{$child}; # We are not permitted to tread in plugin territory next if $child =~ /^Padre\/Plugin\//; eval { require $child; }; next if $@; $loaded++; } return $loaded; } my $SINGLETON = undef; # Access to the Singleton post-construction sub ide { $SINGLETON or Carp::croak('Padre->new has not been called yet'); } # The order of initialisation here is VERY important sub new { Carp::croak('Padre->new already called. Use Padre->ide') if $SINGLETON; my $class = shift; my %opts = @_; # Create the empty object my $self = $SINGLETON = bless { # Parsed command-line options opts => \%opts, # Wx Attributes wx => undef, # Project Storage project_manager => undef, # Plugin Storage plugin_manager => undef, }, $class; # Create our instance ID: for ( 1 .. 64 ) { $self->{instance_id} .= chr( ( 48 .. 57, 65 .. 90, 97 .. 122 )[ int( rand(62) ) ] ); } # Save the start-up dir before anyone can move us. $self->{original_cwd} = Cwd::cwd(); # Set up a raw (non-Padre::Locker) transaction around the rest of the constructor. Padre::DB->begin; # Load (and sync if needed) the configuration $self->{config} = Padre::Config->read; # Initialise our registries $self->actions( {} ); $self->shortcuts( {} ); # Create the project manager require Padre::ProjectManager; $self->{project_manager} = Padre::ProjectManager->new; # Create the plugin manager require Padre::PluginManager; $self->{plugin_manager} = Padre::PluginManager->new($self); # Create the main window require Padre::Wx::App; my $wx = Padre::Wx::App->create($self); # Create the task manager require Padre::TaskManager; $self->{task_manager} = Padre::TaskManager->new( threads => 1, maximum => $self->config->threads_maximum, conduit => $wx->conduit, ); # Create the server manager # require Padre::ServerManager; # $self->{server_manager} = Padre::ServerManager->new( # ide => $self, # ); # Startup completed, let go of the database Padre::DB->commit; return $self; } sub wx { no warnings 'once'; $Wx::wxTheApp; } sub run { my $self = shift; # If we are on Windows, disable Win32::SetChildShowWindow so that # calls to system() or qx() won't spawn visible command line windows. if (Padre::Constant::WIN32) { require Win32; Win32::SetChildShowWindow( Win32::SW_HIDE() ); } # Allow scripts to detect that they are being executed within Padre local $ENV{PADRE_VERSION} = $VERSION; TRACE("Padre->run was called version $VERSION") if DEBUG; # Make WxWidgets translate the default buttons local $ENV{LANGUAGE} = Padre::Constant::UNIX ? $self->config->locale : $ENV{LANGUAGE}; # Clean arguments (with a bad patch for saving URLs) # Windows has trouble deleting the work directory of a process, # so reset file to full path if (Padre::Constant::WIN32) { $self->{ARGV} = [ map { if (/\:/) { $_; } else { File::Spec->rel2abs( $_, $self->{original_cwd} ); } } @ARGV ]; } else { $self->{ARGV} = \@ARGV; } # FIX ME: RT #1 This call should be delayed until after the # window was opened but my Wx skills do not exist. --Steffen SCOPE: { # Lock rendering and the database while the plugins are loading # to prevent them doing anything weird or slow. my $lock = $self->wx->main->lock('DB'); $self->plugin_manager->load_plugins; } TRACE("Plugins loaded") if DEBUG; # Move our current dir to the user's documents directory by default if (Padre::Constant::WIN32) { # Windows has trouble deleting the work directory of a process, # so we change the working dir my $documents = File::HomeDir->my_documents; if ( defined $documents ) { chdir $documents; } } # HACK: Uncomment this to locate difficult-to-find crashes # that are throw silent exceptions. # local $SIG{__DIE__} = sub { print @_; die $_[0] }; TRACE("Killing the splash screen") if DEBUG; if ($Padre::Startup::VERSION) { require Padre::Unload; Padre::Startup->destroy_splash; Padre::Unload::unload('Padre::Startup'); } TRACE("Processing the action queue") if DEBUG; if ( defined $self->opts->{actionqueue} ) { foreach my $action ( split( /\,/, $self->opts->{actionqueue} ) ) { next if $action eq ''; # Skip empty action names unless ( defined $self->actions->{$action} ) { warn 'Action "$action" queued from command line but does not exist'; next; } # Add the action to the queue $self->wx->queue->add($action); } } TRACE("Switching into runtime mode") if DEBUG; $self->wx->MainLoop; } 1; __END__ =pod =head1 NAME Padre - Perl Application Development and Refactoring Environment =head1 SYNOPSIS Padre is a text editor aimed to be an IDE for Perl. After installation you should be able to just type in padre and get the editor working. Padre development started in June 2008 and made a lot of progress but there are still lots of missing features and the development is still very fast. =head1 Getting Started After installing Padre you can start it by typing B<padre> on the command line. On Windows that would be Start/Run padre.bat You can start new files File/New (C<Ctrl+N>) or open existing files File/Open (C<Ctrl+O>). You can edit the file and save it using File/Save (C<Ctrl+S>). You can run the script by pressing Run/Run Script (C<F5>) By default Padre uses the same Perl interpreter for executing code that it uses for itself but this will be configurable later. =head1 FEATURES Instead of duplicating all the text here, let us point you to the web site of Padre L<http://padre.perlide.org/> where we keep a list of existing and planned features. We are creating detailed explanation about every feature in our wiki: L<http://padre.perlide.org/trac/wiki/Features/> =head1 DESCRIPTION =head2 Configuration The application maintains its configuration information in a directory called F<.padre>. =head2 Other On Strawberry Perl you can associate .pl file extension with F<C:\strawberry\perl\bin\wxperl> and then you can start double clicking on the application. It should work... Run This (C<F5>) - run the current buffer with the current Perl this currently only works with files with F<.pl> extensions. Run Any (C<Ctrl+F5>) - run any external application First time it will prompt you to a command line that you have to type in such as perl /full/path/to/my/script.pl ...then it will execute this every time you press C<Ctrl+F5> or the menu option. Currently C<Ctrl+F5> does not save any file. (This will be added later.) You can edit the command line using the Run/Setup menu item. Please Note that you can use C<$ENV{PADRE_VERSION}> to detect whether the script is running inside Padre or not. =head2 Navigation Ctrl+2 Quick Fix Ctrl+. Next Problem Ctrl+H opens a help window where you can see the documentation of any Perl module. Just use open (in the help window) and type in the name of a module. Ctrl+Shift+H Highlight the name of a module in the editor and then press Ctrl+Shift+H. It will open the help window for the module whose name was highlighted. In the help window you can also start typing the name of a module. When the list of the matching possible modules is small enough you'll be able to open the drop-down list and select the name. The "small enough" is controlled by two configuration options in the Edit/Setup menu: Max Number of modules Min Number of modules This feature only works after you have indexed all the modules on your computer. Indexing is currently done by running the following command: padre --index =head1 SQLite Padre is using an SQLite database (F<~/.padre/config.db>) for two things. Part of the preferences/configuration information is kept there and it is used for the POD reader. =head1 Documentation POD reader Padre currently can index (the names of) all the modules on your system and it was planned to have a search capability for modules/functions/etc. =head1 Plug-ins There is a highly experimental but quite simple plug-in system. A plug-in is a module in the C<Padre::Plugin::*> namespace. At start-up time Padre looks for all such modules in C<@INC> and in its own private directory and loads them. Every plug-in must be a subclass of L<Padre::Plugin> and follow the rules defined in the L<Padre::Plugin> API documentation. See also L<Padre::PluginManager> and L<Padre::PluginBuilder> While Padre is running there is a menu option to show the plug-in configuration window that shows the list of all the plug-ins. TO DO: What to do if a newer version of the same plug-in was installed? TO DO: What to do if a module was removed ? Shall we keep its data in the configuration file or remove it? TO DO: Padre should offer an easy but simple way for plug-in authors to declare configuration variables and automatically generate both configuration file and configuration dialog. Padre should also allow for full customization of both for those more advanced in Wx. =head2 Tab and space conversion Tab to Space and Space to Tab conversions ask the number of spaces each tab should substitute. It currently works everywhere. We probably should add a mode to operate only at the beginning of the lines or better yet only at the indentation levels. Delete All Ending space does just what it says. Delete Leading Space will ask How many leading spaces and act accordingly. =head1 ARCHITECTURE =over 4 =item Padre.pm is the main module. =item L<Padre::Autosave> describes some of our plans for an auto-save mechanism. It is not implemented yet. (There is also some description elsewhere in this document). =item L<Padre::Config> reads/writes the configuration files. There is an SQLite database and a YAML file to keep various pieces of information. The database holds host related configuration values while the YAML file holds personal configuration options. The SQLite database holds the list of modules available on the system. It will also contain indexing of the documentation Looking at the C<X<>> entries of modules List of functions =item L<Padre::DB> The SQLite database abstraction for storing Padre's internal data. =item L<Padre::Document> is an abstraction class to deal with a single document. =over 4 =item L<Padre::Document::PASM> =item L<Padre::Document::PIR> =item L<Padre::Document::Perl> =back =item L<Padre::PluginBuilder> =item L<Padre::PluginManager> locates and loads the plug-ins. =item L<Padre::Plugin> Should be the base class of all plug-ins. =item L<Padre::Pod2HTML> =item L<Padre::PPI> =item L<Padre::Project> Abstract class understanding what a project is. =item L<Padre::Project::Perl> Is a Perl specific project. These are work in process. Not yet used. =item L<Padre::TaskManager> Managing background tasks. =item L<Padre::Task> Background tasks. =item L<Padre::Util> Various utility functions. =back =head2 Wx GUI The C<Padre::Wx::*> namespace is supposed to deal with all the Wx related code. =over 4 =item L<Padre::Wx> =item L<Padre::Wx::App> is the L<Wx::App> subclass. Does not really do much. =item L<Padre::Wx::Dialog::Bookmarks> =item L<Padre::Wx::Dialog::Find> This is the main Find dialog =item L<Padre::Wx::Panel::FindFast> This is the newer Firefox like inline search box. =item L<Padre::Wx::Dialog::PluginManager> =item L<Padre::Wx::Dialog::Preferences> =item L<Padre::Wx::Dialog::Snippets> =item L<Padre::Wx::FileDropTarget> The code for drag and drop =item L<Padre::Wx::Editor> holds an editor text control instance (one for each buffer/file). This is a subclass of L<Wx::Scintilla::TextCtrl> also known as Scintilla. =item L<Padre::Wx::ComboBox::History> =item L<Padre::Wx::TextEntryDialog::History> =item L<Padre::Wx::Main> This is the main window, most of the code is currently there. =item L<Padre::Wx::Menu> handles everything the menu should know and do. =item L<Padre::Wx::Output> the output window at the bottom of the editor displaying the output of running code using C<F5>. =item L<Padre::Wx::HtmlWindow> =item L<Padre::Wx::Frame::POD> =item L<Padre::Wx::Popup> not in use. =item L<Padre::Wx::Printout> Implementing the printing capability of Padre. =item L<Padre::Wx::SyntaxCheck> Implementing the continuous syntax check of Perl code. =item L<Padre::Wx::ToolBar> handles everything the toolbar should know and do. =back =head1 METHODS The C<Padre> class itself provides a number of convenience methods. =head2 C<ide> my $ide = Padre->ide; The static C<ide> method returns the L<Padre> singleton object if the IDE has been created, or throws an exception if the IDE has not been created. =head2 C<new> my $ide = Padre->new(%options); The C<new> constructor creates the new singleton L<Padre> object, or throws an exception if the IDE has already been created. It takes a set of parsed command line options as a parameter, storing them until they are needed at startup. =head2 C<wx> my $app = Padre->wx; The static C<wx> method is a convenience wrapper around the underlying global variable C<$Wx::TheApp> provided by the L<Wx> module. For convenience reasons, it can also be used as an instance method. Returns a L<Wx::App> object, or C<undef> if the application object has not yet been created. =head2 C<run> $padre->run; The C<run> method starts the Padre IDE and enters the Wx main loop. =head1 BUGS Before submitting a bug please talk to the Padre developers on IRC: #padre on irc.perl.org. You can use this web based IRC client: L<http://padre.perlide.org/irc.html?channel=padre> Please submit your bugs at L<http://padre.perlide.org/trac/> =head1 SUPPORT See also L<http://padre.perlide.org/contact.html> =head1 COPYRIGHT Copyright 2008-2013 The Padre development team as listed in Padre.pm. L<http://padre.perlide.org/> =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. =head1 DISCLAIMER OF WARRANTY BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. =head1 ACKNOWLEDGEMENTS =encoding utf8 =head2 The Padre development team The developers of Padre in alphabetical order: Aaron Trevena (TEEJAY) Ahmad Zawawi أحمد محمد زواوي (AZAWAWI) Adam Kennedy (ADAMK) E<lt>adamk@cpan.orgE<gt> Alexandr Ciornii (CHORNY) Blake Willmarth (BLAKEW) Breno G. de Oliveira (GARU) Brian Cassidy (BRICAS) Burak Gürsoy (BURAK) E<lt>burak@cpan.orgE<gt> Cezary Morga (THEREK) E<lt>cm@therek.netE<gt> Chris Dolan (CHRISDOLAN) Claudio Ramirez (NXADM) E<lt>nxadm@cpan.orgE<gt> Fayland Lam (FAYLAND) E<lt>fayland@gmail.comE<gt> Gabriel Vieira (GABRIELMAD) Gábor Szabó - גאבור סבו (SZABGAB) E<lt>szabgab@gmail.comE<gt> Heiko Jansen (HJANSEN) E<lt>heiko_jansen@web.deE<gt> Jérôme Quelin (JQUELIN) E<lt>jquelin@cpan.orgE<gt> Kaare Rasmussen (KAARE) E<lt>kaare@cpan.orgE<gt> Keedi Kim - 김도형 (KEEDI) Kenichi Ishigaki - 石垣憲一 (ISHIGAKI) E<lt>ishigaki@cpan.orgE<gt> Kevin Dawson (BOWTIE) E<lt>bowtie@cpan.orgE<gt> Mark Grimes E<lt>mgrimes@cpan.orgE<gt> Max Maischein (CORION) Olivier MenguE<eacute> (DOLMEN) Patrick Donelan (PDONELAN) E<lt>pat@patspam.comE<gt> Paweł Murias (PMURIAS) Petar Shangov (PSHANGOV) Peter Lavender (PLAVEN) Ryan Niebur (RSN) E<lt>rsn@cpan.orgE<gt> Sebastian Willing (SEWI) Steffen Müller (TSEE) E<lt>smueller@cpan.orgE<gt> Zeno Gantner (ZENOG) =head2 Translators =head3 Arabic Ahmad M. Zawawi - أحمد محمد زواوي (AZAWAWI) =head3 Chinese (Simplified) Fayland Lam (FAYLAND) =head3 Chinese (Traditional) BlueT - Matthew Lien - 練喆明 (BLUET) E<lt>bluet@cpan.orgE<gt> Chuanren Wu =head3 Dutch Dirk De Nijs (ddn123456) =head3 English Everyone on the team =head3 French Jérôme Quelin (JQUELIN) Olivier MenguE<eacute> (DOLMEN) =head3 German Heiko Jansen (HJANSEN) Sebastian Willing (SEWI) Zeno Gantner (ZENOG) =head3 Hebrew Omer Zak - עומר זק Shlomi Fish - שלומי פיש (SHLOMIF) Amir E. Aharoni - אמיר א. אהרוני =head3 Hungarian György Pásztor (GYU) =head3 Italian Simone Blandino (SBLANDIN) =head3 Japanese Kenichi Ishigaki - 石垣憲一 (ISHIGAKI) =head3 Korean Keedi Kim - 김도형 (KEEDI) =head3 Russian Andrew Shitov =head3 Polish Cezary Morga (THEREK) Marek Roszkowski (EviL) E<lt>evil@evil.devil.is-my.nameE<gt> =head3 Portuguese (Brazilian) Breno G. de Oliveira (GARU) =head3 Spanish Paco Alguacil (PacoLinux) Enrique Nell (ENELL) =head3 Czech Marcela Mašláňová (mmaslano) Marek Roszkowski (EviL) E<lt>evil@evil.devil.is-my.nameE<gt> =head3 Norwegian Kjetil Skotheim (KJETIL) =head3 Turkish Burak Gürsoy (BURAK) E<lt>burak@cpan.orgE<gt> =head2 Thanks Mattia Barbon for providing wxPerl. Part of the code was copied from his Wx::Demo application. Herbert Breunung for letting me work on Kephra. Octavian Rasnita for early testing and bug reports. Tatsuhiko Miyagawa for consulting on our I18N and L10N support. =cut # Copyright 2008-2013 The Padre development team as listed in Padre.pm. # LICENSE # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl 5 itself. ��������������������������������������������������������������������������������������������������������������������Padre-1.00/LICENSE����������������������������������������������������������������������������������0000644�0001750�0001750�00000000323�11621731266�012151� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. The applicable licenses can be found in the files COPYING (GPLv1) and ARTISTIC (Artistic License). �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Padre-1.00/MANIFEST���������������������������������������������������������������������������������0000644�0001750�0001750�00000045633�12237340464�012312� 0����������������������������������������������������������������������������������������������������ustar �pete����������������������������pete�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Artistic Changes COPYING eg/actionscript/helloworld.as eg/ada/helloworld.ada eg/cobol/helloworld.cbl eg/haskell/helloworld.hs eg/hello.html eg/hello.pasm eg/java/HelloWorld.java eg/pascal/helloworld.pas eg/perl5/cmd.pl eg/perl5/cyrillic_test.pl eg/perl5/hello_foo.pl eg/perl5/hello_world.pl eg/perl5/perl5.pod eg/perl5/shell.pl eg/perl5/sleep.pl eg/perl5/stderr.pl eg/perl5_with_perl6_example.pod eg/perl6/hello.p6 eg/perl6/outline_test.p6 eg/perl6/perl6.pod eg/perl6/Perl6Class.pm eg/perl6/Perl6Grammar.p6 eg/php/hello.php eg/python/hello_py eg/README eg/ruby/add.rb eg/ruby/hello_world.rb eg/ruby/hello_world_rb eg/sql/query.sql eg/syntax_demo.css eg/syntax_demo.js eg/syntax_demo.json eg/tcl/hello_tcl eg/tcl/portable_tcl eg/theme/style_perl5.pl eg/theme/style_sql.sql eg/xml/xml_example inc/Module/Install.pm inc/Module/Install/Base.pm inc/Module/Install/Can.pm inc/Module/Install/Fetch.pm inc/Module/Install/Makefile.pm inc/Module/Install/Metadata.pm inc/Module/Install/Msgfmt.pm inc/Module/Install/PRIVATE/Padre.pm inc/Module/Install/Scripts.pm inc/Module/Install/Share.pm inc/Module/Install/Win32.pm inc/Module/Install/With.pm inc/Module/Install/WriteAll.pm lib/Padre.pm lib/Padre/Autosave.pm lib/Padre/Breakpoints.pm lib/Padre/Browser.pm lib/Padre/Browser/Document.pm lib/Padre/Browser/POD.pm lib/Padre/Browser/PseudoPerldoc.pm lib/Padre/Cache.pm lib/Padre/Command.pm lib/Padre/Comment.pm lib/Padre/Config.pm lib/Padre/Config/Apply.pm lib/Padre/Config/Host.pm lib/Padre/Config/Human.pm lib/Padre/Config/Patch.pm lib/Padre/Config/Project.pm lib/Padre/Config/Setting.pm lib/Padre/Constant.pm lib/Padre/CPAN.pm lib/Padre/Current.pm lib/Padre/DB.pm lib/Padre/DB/Bookmark.pm lib/Padre/DB/History.pm lib/Padre/DB/HostConfig.pm lib/Padre/DB/LastPositionInFile.pm lib/Padre/DB/Plugin.pod lib/Padre/DB/RecentlyUsed.pm lib/Padre/DB/Session.pm lib/Padre/DB/SessionFile.pm lib/Padre/DB/Snippets.pod lib/Padre/DB/Timeline.pm lib/Padre/Delta.pm lib/Padre/Desktop.pm lib/Padre/Document.pm lib/Padre/Document/CSharp.pm lib/Padre/Document/CSharp/FunctionList.pm lib/Padre/Document/Java.pm lib/Padre/Document/Java/FunctionList.pm lib/Padre/Document/Patch.pm lib/Padre/Document/Perl.pm lib/Padre/Document/Perl/Autocomplete.pm lib/Padre/Document/Perl/Beginner.pm lib/Padre/Document/Perl/FunctionList.pm lib/Padre/Document/Perl/Help.pm lib/Padre/Document/Perl/Lexer.pm lib/Padre/Document/Perl/Outline.pm lib/Padre/Document/Perl/PPILexer.pm lib/Padre/Document/Perl/QuickFix.pm lib/Padre/Document/Perl/QuickFix/IncludeModule.pm lib/Padre/Document/Perl/QuickFix/StrictWarnings.pm lib/Padre/Document/Perl/Starter.pm lib/Padre/Document/Perl/Starter/Style.pm lib/Padre/Document/Perl/Syntax.pm lib/Padre/Document/Python.pm lib/Padre/Document/Python/FunctionList.pm lib/Padre/Document/Ruby.pm lib/Padre/Document/Ruby/FunctionList.pm lib/Padre/Feature.pm lib/Padre/File.pm lib/Padre/File/FTP.pm lib/Padre/File/HTTP.pm lib/Padre/File/Local.pm lib/Padre/Help.pm lib/Padre/Locale.pm lib/Padre/Locale/Format.pm lib/Padre/Locale/T.pm lib/Padre/Lock.pm lib/Padre/Locker.pm lib/Padre/Logger.pm lib/Padre/Manual.pod lib/Padre/Manual/Hacking.pod lib/Padre/MIME.pm lib/Padre/Perl.pm lib/Padre/Plugin.pm lib/Padre/Plugin/Devel.pm lib/Padre/Plugin/My.pm lib/Padre/Plugin/PopularityContest.pm lib/Padre/Plugin/PopularityContest/Ping.pm lib/Padre/PluginBuilder.pm lib/Padre/PluginHandle.pm lib/Padre/PluginManager.pm lib/Padre/Pod2HTML.pm lib/Padre/Portable.pm lib/Padre/PPI.pm lib/Padre/PPI/EndifyPod.pm lib/Padre/PPI/Transform.pm lib/Padre/PPI/UpdateCopyright.pm lib/Padre/Project.pm lib/Padre/Project/Null.pm lib/Padre/Project/Perl.pm lib/Padre/Project/Perl/DZ.pm lib/Padre/Project/Perl/EUMM.pm lib/Padre/Project/Perl/MB.pm lib/Padre/Project/Perl/MI.pm lib/Padre/Project/Perl/Temp.pm lib/Padre/Project/Temp.pm lib/Padre/ProjectManager.pm lib/Padre/QuickFix.pm lib/Padre/Role/PubSub.pm lib/Padre/Role/Task.pm lib/Padre/Search.pm lib/Padre/ServerManager.pm lib/Padre/SLOC.pm lib/Padre/Startup.pm lib/Padre/SVN.pm lib/Padre/Sync.pm lib/Padre/Task.pm lib/Padre/Task/Addition.pm lib/Padre/Task/BackupUnsaved.pm lib/Padre/Task/Browser.pm lib/Padre/Task/CPAN.pm lib/Padre/Task/Diff.pm lib/Padre/Task/Eval.pm lib/Padre/Task/File.pm lib/Padre/Task/FindInFiles.pm lib/Padre/Task/FindUnmatchedBrace.pm lib/Padre/Task/FindVariableDeclaration.pm lib/Padre/Task/FunctionList.pm lib/Padre/Task/IntroduceTemporaryVariable.pm lib/Padre/Task/LaunchDefaultBrowser.pm lib/Padre/Task/LexicalReplaceVariable.pm lib/Padre/Task/LWP.pm lib/Padre/Task/OpenResource.pm lib/Padre/Task/Outline.pm lib/Padre/Task/Pod2HTML.pm lib/Padre/Task/PPI.pm lib/Padre/Task/RecentFiles.pm lib/Padre/Task/ReplaceInFiles.pm lib/Padre/Task/Run.pm lib/Padre/Task/SLOC.pm lib/Padre/Task/Syntax.pm lib/Padre/Task/Transform.pm lib/Padre/Task/VCS.pm lib/Padre/TaskHandle.pm lib/Padre/TaskManager.pm lib/Padre/TaskQueue.pm lib/Padre/TaskWorker.pm lib/Padre/Template.pm lib/Padre/Test.pm lib/Padre/Transform.pm lib/Padre/Unload.pm lib/Padre/Util.pm lib/Padre/Util/CommandLine.pm lib/Padre/Util/FileBrowser.pm lib/Padre/Util/SVN.pm lib/Padre/Util/Win32.pm lib/Padre/Wx.pm lib/Padre/Wx/Action.pm lib/Padre/Wx/ActionLibrary.pm lib/Padre/Wx/ActionQueue.pm lib/Padre/Wx/App.pm lib/Padre/Wx/AuiManager.pm lib/Padre/Wx/Bottom.pm lib/Padre/Wx/Browser.pm lib/Padre/Wx/Choice/Files.pm lib/Padre/Wx/Choice/Theme.pm lib/Padre/Wx/ComboBox/FindTerm.pm lib/Padre/Wx/ComboBox/History.pm lib/Padre/Wx/Command.pm lib/Padre/Wx/Constant.pm lib/Padre/Wx/CPAN.pm lib/Padre/Wx/CPAN/Listview.pm lib/Padre/Wx/Dialog/About.pm lib/Padre/Wx/Dialog/Advanced.pm lib/Padre/Wx/Dialog/Bookmarks.pm lib/Padre/Wx/Dialog/DebugOptions.pm lib/Padre/Wx/Dialog/Diff.pm lib/Padre/Wx/Dialog/Document.pm lib/Padre/Wx/Dialog/Expression.pm lib/Padre/Wx/Dialog/FilterTool.pm lib/Padre/Wx/Dialog/Find.pm lib/Padre/Wx/Dialog/FindInFiles.pm lib/Padre/Wx/Dialog/Form.pm lib/Padre/Wx/Dialog/Goto.pm lib/Padre/Wx/Dialog/HelpSearch.pm lib/Padre/Wx/Dialog/ModuleStarter.pm lib/Padre/Wx/Dialog/OpenResource.pm lib/Padre/Wx/Dialog/OpenURL.pm lib/Padre/Wx/Dialog/Patch.pm lib/Padre/Wx/Dialog/PerlFilter.pm lib/Padre/Wx/Dialog/PluginManager.pm lib/Padre/Wx/Dialog/Positions.pm lib/Padre/Wx/Dialog/Preferences.pm lib/Padre/Wx/Dialog/QuickMenuAccess.pm lib/Padre/Wx/Dialog/RefactorSelectFunction.pm lib/Padre/Wx/Dialog/RegexEditor.pm lib/Padre/Wx/Dialog/Replace.pm lib/Padre/Wx/Dialog/ReplaceInFiles.pm lib/Padre/Wx/Dialog/SessionManager.pm lib/Padre/Wx/Dialog/SessionManager2.pm lib/Padre/Wx/Dialog/SessionSave.pm lib/Padre/Wx/Dialog/Shortcut.pm lib/Padre/Wx/Dialog/SLOC.pm lib/Padre/Wx/Dialog/Snippet.pm lib/Padre/Wx/Dialog/Special.pm lib/Padre/Wx/Dialog/Sync.pm lib/Padre/Wx/Dialog/Text.pm lib/Padre/Wx/Dialog/Warning.pm lib/Padre/Wx/Dialog/WhereFrom.pm lib/Padre/Wx/Dialog/WindowList.pm lib/Padre/Wx/Diff.pm lib/Padre/Wx/Diff2.pm lib/Padre/Wx/Directory.pm lib/Padre/Wx/Directory/Browse.pm lib/Padre/Wx/Directory/Path.pm lib/Padre/Wx/Directory/Search.pm lib/Padre/Wx/Directory/TreeCtrl.pm lib/Padre/Wx/Display.pm lib/Padre/Wx/Editor.pm lib/Padre/Wx/Editor/Lock.pm lib/Padre/Wx/Editor/Menu.pm lib/Padre/Wx/FBP/About.pm lib/Padre/Wx/FBP/Bookmarks.pm lib/Padre/Wx/FBP/Breakpoints.pm lib/Padre/Wx/FBP/CPAN.pm lib/Padre/Wx/FBP/Debugger.pm lib/Padre/Wx/FBP/DebugOptions.pm lib/Padre/Wx/FBP/DebugOutput.pm lib/Padre/Wx/FBP/Diff.pm lib/Padre/Wx/FBP/Document.pm lib/Padre/Wx/FBP/Expression.pm lib/Padre/Wx/FBP/Find.pm lib/Padre/Wx/FBP/FindFast.pm lib/Padre/Wx/FBP/FindInFiles.pm lib/Padre/Wx/FBP/FoundInFiles.pm lib/Padre/Wx/FBP/ModuleStarter.pm lib/Padre/Wx/FBP/Outline.pm lib/Padre/Wx/FBP/Patch.pm lib/Padre/Wx/FBP/PluginManager.pm lib/Padre/Wx/FBP/POD.pm lib/Padre/Wx/FBP/Preferences.pm lib/Padre/Wx/FBP/Replace.pm lib/Padre/Wx/FBP/ReplaceInFiles.pm lib/Padre/Wx/FBP/SessionManager.pm lib/Padre/Wx/FBP/SLOC.pm lib/Padre/Wx/FBP/Snippet.pm lib/Padre/Wx/FBP/Special.pm lib/Padre/Wx/FBP/Sync.pm lib/Padre/Wx/FBP/Syntax.pm lib/Padre/Wx/FBP/TaskList.pm lib/Padre/Wx/FBP/Text.pm lib/Padre/Wx/FBP/VCS.pm lib/Padre/Wx/FBP/WhereFrom.pm lib/Padre/Wx/FileDropTarget.pm lib/Padre/Wx/Frame/HTML.pm lib/Padre/Wx/Frame/Null.pm lib/Padre/Wx/Frame/POD.pm lib/Padre/Wx/FunctionList.pm lib/Padre/Wx/HtmlWindow.pm lib/Padre/Wx/Icon.pm lib/Padre/Wx/Left.pm lib/Padre/Wx/ListView.pm lib/Padre/Wx/Main.pm lib/Padre/Wx/Menu.pm lib/Padre/Wx/Menu/Debug.pm lib/Padre/Wx/Menu/Edit.pm lib/Padre/Wx/Menu/File.pm lib/Padre/Wx/Menu/Help.pm lib/Padre/Wx/Menu/Perl.pm lib/Padre/Wx/Menu/Refactor.pm lib/Padre/Wx/Menu/Run.pm lib/Padre/Wx/Menu/Search.pm lib/Padre/Wx/Menu/Tools.pm lib/Padre/Wx/Menu/View.pm lib/Padre/Wx/Menu/Window.pm lib/Padre/Wx/Menubar.pm lib/Padre/Wx/Notebook.pm lib/Padre/Wx/Nth.pm lib/Padre/Wx/Outline.pm lib/Padre/Wx/Output.pm lib/Padre/Wx/Panel/Breakpoints.pm lib/Padre/Wx/Panel/Debugger.pm lib/Padre/Wx/Panel/DebugOutput.pm lib/Padre/Wx/Panel/FindFast.pm lib/Padre/Wx/Panel/FoundInFiles.pm lib/Padre/Wx/Panel/TaskList.pm lib/Padre/Wx/Popup.pm lib/Padre/Wx/Printout.pm lib/Padre/Wx/Progress.pm lib/Padre/Wx/ReplaceInFiles.pm lib/Padre/Wx/Right.pm lib/Padre/Wx/Role/Conduit.pm lib/Padre/Wx/Role/Config.pm lib/Padre/Wx/Role/Context.pm lib/Padre/Wx/Role/Dialog.pm lib/Padre/Wx/Role/Idle.pm lib/Padre/Wx/Role/Main.pm lib/Padre/Wx/Role/Timer.pm lib/Padre/Wx/Role/View.pm lib/Padre/Wx/Scintilla.pm lib/Padre/Wx/ScrollLock.pm lib/Padre/Wx/SelectionLock.pm lib/Padre/Wx/StatusBar.pm lib/Padre/Wx/Style.pm lib/Padre/Wx/Syntax.pm lib/Padre/Wx/TaskList.pm lib/Padre/Wx/TextEntryDialog/History.pm lib/Padre/Wx/Theme.pm lib/Padre/Wx/ToolBar.pm lib/Padre/Wx/TreeCtrl.pm lib/Padre/Wx/Util.pm lib/Padre/Wx/VCS.pm LICENSE Makefile.PL MANIFEST This list of files META.yml Padre.fbp padre.yml privinc/Module/Install/PRIVATE/Padre.pm README script/padre script/padre-client share/doc/perlopquick/Artistic share/doc/perlopquick/Copying share/doc/perlopquick/perlopquick.pod share/doc/perlopquick/README share/examples/absolute_beginner/01_hello_world.pl share/examples/absolute_beginner/02_time.pl share/examples/absolute_beginner/03_good_morning.pl share/examples/absolute_beginner/04_math.pl share/examples/absolute_beginner/05_do_it_again.pl share/examples/absolute_beginner/06_salat.pl share/examples/absolute_beginner/07_short_salat.pl share/examples/absolute_beginner/README share/examples/wx/01_simple_frame.pl share/examples/wx/02_label.pl share/examples/wx/03_button.pl share/examples/wx/04_button_with_event.pl share/examples/wx/05_button_with_event_and_message_box.pl share/examples/wx/21_progress_bar.pl share/examples/wx/22_notebook.pl share/examples/wx/23_menu.pl share/examples/wx/24_simple_editor_window.pl share/examples/wx/30_editor.pl share/examples/wx/31_repl.pl share/examples/wx/40_draw.pl share/examples/wx/41-drag-image.pl share/examples/wx/42-drag-image-no-tail.pl share/examples/wx/img/padre_logo_64x64.png share/icons/gnome218/16x16/actions/document-new.png share/icons/gnome218/16x16/actions/document-open.png share/icons/gnome218/16x16/actions/document-print.png share/icons/gnome218/16x16/actions/document-properties.png share/icons/gnome218/16x16/actions/document-save-as.png share/icons/gnome218/16x16/actions/document-save.png share/icons/gnome218/16x16/actions/edit-copy.png share/icons/gnome218/16x16/actions/edit-cut.png share/icons/gnome218/16x16/actions/edit-find-replace.png share/icons/gnome218/16x16/actions/edit-find.png share/icons/gnome218/16x16/actions/edit-paste.png share/icons/gnome218/16x16/actions/edit-redo.png share/icons/gnome218/16x16/actions/edit-select-all.png share/icons/gnome218/16x16/actions/edit-undo.png share/icons/gnome218/16x16/actions/go-down.png share/icons/gnome218/16x16/actions/go-next.png share/icons/gnome218/16x16/actions/go-previous.png share/icons/gnome218/16x16/actions/go-up.png share/icons/gnome218/16x16/actions/list-add.png share/icons/gnome218/16x16/actions/list-remove.png share/icons/gnome218/16x16/actions/player_play.png share/icons/gnome218/16x16/actions/stock_data-save.png share/icons/gnome218/16x16/actions/stock_update-data.png share/icons/gnome218/16x16/actions/stop.png share/icons/gnome218/16x16/actions/view-refresh.png share/icons/gnome218/16x16/actions/window-close.png share/icons/gnome218/16x16/actions/zoom-in.png share/icons/gnome218/16x16/actions/zoom-out.png share/icons/gnome218/16x16/places/folder-saved-search.png share/icons/gnome218/16x16/places/stock_folder.png share/icons/gnome218/16x16/status/info.png share/icons/gnome218/16x16/stock/code/stock_macro-insert-breakpoint.png share/icons/gnome218/16x16/stock/code/stock_macro-jump-back.png share/icons/gnome218/16x16/stock/code/stock_macro-stop-after-command.png share/icons/gnome218/16x16/stock/code/stock_macro-stop-after-procedure.png share/icons/gnome218/16x16/stock/code/stock_macro-watch-variable.png share/icons/gnome218/16x16/stock/code/stock_tools-macro.png share/icons/gnome218/16x16/stock/generic/stock_example.png share/icons/gnome218/README.txt share/icons/padre/16x16/actions/42-b.png share/icons/padre/16x16/actions/45-e.png share/icons/padre/16x16/actions/4c-l.png share/icons/padre/16x16/actions/4d-m.png share/icons/padre/16x16/actions/53-s.png share/icons/padre/16x16/actions/54-t.png share/icons/padre/16x16/actions/57-w.png share/icons/padre/16x16/actions/62-b.png share/icons/padre/16x16/actions/65-e.png share/icons/padre/16x16/actions/69-i.png share/icons/padre/16x16/actions/6f-o.png share/icons/padre/16x16/actions/70-p.png share/icons/padre/16x16/actions/74-t.png share/icons/padre/16x16/actions/76-v.png share/icons/padre/16x16/actions/77-w.png share/icons/padre/16x16/actions/breakpoints.png share/icons/padre/16x16/actions/bub.png share/icons/padre/16x16/actions/dot.png share/icons/padre/16x16/actions/metared.png share/icons/padre/16x16/actions/morpho.png share/icons/padre/16x16/actions/morpho2.png share/icons/padre/16x16/actions/morpho3.png share/icons/padre/16x16/actions/pux.png share/icons/padre/16x16/actions/raw.png share/icons/padre/16x16/actions/red_cross.png share/icons/padre/16x16/actions/run_till.png share/icons/padre/16x16/actions/step_in.png share/icons/padre/16x16/actions/step_out.png share/icons/padre/16x16/actions/step_over.png share/icons/padre/16x16/actions/toggle-comments.png share/icons/padre/16x16/actions/wuw.png share/icons/padre/16x16/actions/x-document-close.png share/icons/padre/16x16/logo.png share/icons/padre/16x16/status/padre-fallback-icon.png share/icons/padre/16x16/status/padre-plugin-crashed.png share/icons/padre/16x16/status/padre-plugin-disabled.png share/icons/padre/16x16/status/padre-plugin-enabled.png share/icons/padre/16x16/status/padre-plugin-error.png share/icons/padre/16x16/status/padre-plugin-incompatible.png share/icons/padre/16x16/status/padre-plugin.png share/icons/padre/16x16/status/padre-syntax-error.png share/icons/padre/16x16/status/padre-syntax-ok.png share/icons/padre/16x16/status/padre-syntax-warning.png share/icons/padre/16x16/status/padre-tasks-load.png share/icons/padre/16x16/status/padre-tasks-running.png share/icons/padre/64x64/logo.png share/icons/padre/64x64/morpho.png share/icons/padre/all/padre.ico share/icons/padre/README.txt share/languages/perl5/perl5.yml share/languages/perl5/perlapi_current.yml share/locale/ar.po share/locale/cz.po share/locale/de.po share/locale/es-es.po share/locale/fa.po share/locale/fr.po share/locale/he.po share/locale/hu.po share/locale/it-it.po share/locale/ja.po share/locale/ko.po share/locale/messages.pot share/locale/nl-nl.po share/locale/no.po share/locale/pl.po share/locale/pt-br.po share/locale/ru.po share/locale/tr.po share/locale/zh-cn.po share/locale/zh-tw.po share/padre-splash-ccnc.png share/padre-splash.png share/padre.desktop share/padre.desktop.README share/ppm/README.txt share/README.txt share/templates/perl5/01_compile_t.tt share/templates/perl5/module_install_dsl_pl.tt share/templates/perl5/module_install_pl.tt share/templates/perl5/module_pm.tt share/templates/perl5/script_pl.tt share/templates/perl5/test_t.tt share/templates/perl6/script_p6.tt share/themes/default.txt share/themes/evening.txt share/themes/night.txt share/themes/notepad.txt share/themes/solarized_dark.txt share/themes/solarized_light.txt share/themes/ultraedit.txt t/01_compile.t t/02_new.t t/03_db.t t/04_config.t t/05_project.t t/06_utils.t t/07_version.t t/08_style.t t/09_search.t t/10_delta.t t/11_svn.t t/12_mime.t t/13_findinfiles.t t/14_warnings.t t/15_locale.t t/16_locale_format.t t/17_messages.t t/18_newline.t t/19_search.t t/20_comment.t t/21_sloc.t t/31_task_queue.t t/32_task_worker.t t/33_task_chain.t t/34_task_master.t t/35_task_handle.t t/36_task_eval.t t/37_task_signal.t t/38_task_manager.t t/39_task_nothreads.t t/40_display.t t/41_editor.t t/42_document.t t/43_frame_html.t t/50_browser.t t/61_directory_path.t t/74_history_combobox.t t/75_autocomplete.t t/76_preferences.t t/82_plugin_manager.t t/83_autosave.t t/85_commandline.t t/90_autocomplete.t t/91_vi.t t/92_padre_file.t t/93_padre_filename_win.t t/94_padre_file_remote.t t/95_edit_patch.t t/96_help_about.t t/97_debug_debugger.t t/98_debug_breakpoints.t t/99_debug_debugoutput.t t/author_tests/pod-coverage.t t/collection/Config-Tiny/Changes t/collection/Config-Tiny/lib/Config/Tiny.pm t/collection/Config-Tiny/Makefile.PL t/collection/Config-Tiny/t/01_compile.t t/collection/Config-Tiny/t/02_main.t t/collection/Config-Tiny/test.conf t/collection/Padre-Null/foo.pl t/collection/Padre-Null/padre.yml t/csharp/functionlist.t t/files/beginner/boolean_expression_or.pl t/files/beginner/boolean_expression_pipes.pl t/files/beginner/chomp.pl t/files/beginner/else_if.pl t/files/beginner/elseif.pl t/files/beginner/grep_always_true.pl t/files/beginner/match_default_scalar.pl t/files/beginner/my_argv.pl t/files/beginner/return_stronger_than_or.pl t/files/beginner/SearchTask.pm t/files/beginner/split1.pl t/files/beginner/split2.pl t/files/beginner/substitute_in_map.pl t/files/beginner/unintented_glob.pl t/files/beginner/warning.pl t/files/Debugger.pm t/files/debugme.pl t/files/error_near.pl t/files/error_stack.pl t/files/find_variable_declaration_1.pm t/files/find_variable_declaration_2.pm t/files/hello_with_warn.pl t/files/hiding_errors.pl t/files/lexically_rename_variable.pl t/files/method_declarator_1.pm t/files/method_declarator_2.pm t/files/method_declarator_3.pm t/files/missing_brace_1.pl t/files/missing_semicolon.pl t/files/no_strict.pl t/files/one_char.pl t/files/perl_functions.pl t/files/plugins/Padre/Plugin/A.pm t/files/plugins/Padre/Plugin/B.pm t/files/plugins/Padre/Plugin/C.pm t/java/functionlist.t t/lib/Padre.pm t/lib/Padre/Editor.pm t/lib/Padre/NullWindow.pm t/lib/Padre/Plugin/Test/Plugin.pm t/lib/Padre/Plugin/TestPlugin.pm t/lib/Padre/Win32.pm t/perl/functionlist.t t/perl/general.t t/perl/project.t t/perl/project_temp.t t/perl/starter.t t/perl/syntax.t t/perl/zerolengthperl t/python/functionlist.t t/ruby/functionlist.t t/win32/002-menu.t t/win32/010-file-new.t t/win32/011-file-open.t t/win32/012-file-open-selection.t win32/padre-rc.h win32/padre-rc.rc.in win32/padre.c win32/padre.exe.manifest.in win32/padre.ico win32/README winxs/Makefile.PL winxs/Win32.xs xt/actions.t xt/actiontest.t xt/badcode.t xt/blockers.t xt/compile.t xt/copyright.t xt/crashtest.t xt/critic-core.ini xt/critic-core.t xt/critic-util.ini xt/critic-util.t xt/eol.t xt/files/broken.bin xt/files/rename_variable_stress_test.pl xt/files/TODO_test.pm xt/meta.t xt/mimetype.t xt/perl-beginner.t xt/pmv.t xt/pod.t xt/pragmas.t xt/test-plugin.t �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������